/* FC Labz theme, shared with the Project Tracker: #111827 shell, #14b8a6 / #2dd4bf accent, the two-tone rule under the header. Dark only, like the tracker. */
:root{--bg:#0a0f18;--panel:#111827;--panel2:#182234;--panel3:#212d42;--border:#243043;--text:#e8edf5;--dim:#9ca3af;--faint:#6b7280;--accent:#14b8a6;--accent-lit:#2dd4bf;--on-accent:#04201d;--green:#10b981;--yellow:#f59e0b;--red:#ef4444;--blue:#3b82f6;
  --line:var(--border);--ink:var(--text);--mute:var(--dim);--card:var(--panel);--ok:var(--green);--bad:var(--red);--warn:var(--yellow)}
*{box-sizing:border-box;margin:0}
html,body{height:100%;overflow:hidden}
body{background:var(--bg);color:var(--text);font:14px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;display:flex;flex-direction:column}
#app{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0}
a{color:var(--accent-lit)}
:focus-visible{outline:2px solid var(--accent-lit);outline-offset:2px}

/* ---- header: logo + wordmark + the two pages ---- */
header{display:flex;align-items:center;gap:12px;padding:10px 16px;flex-wrap:wrap;background:var(--panel);flex-shrink:0;position:relative}
header::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--accent) 0%,var(--accent-lit) 55%,var(--accent) 100%)}
.brandmark{width:22px;height:22px;display:block;flex-shrink:0}
.wordmark{font-size:15px;font-weight:800;color:var(--accent-lit);letter-spacing:1.4px;flex-shrink:0;white-space:nowrap}
.tabs{display:flex;gap:4px;margin-left:6px}
.tabs button{background:none;border:1px solid transparent;border-radius:7px;padding:6px 14px;color:var(--dim);cursor:pointer;font:inherit;font-weight:600;white-space:nowrap}
.tabs button:hover{color:var(--text);border-color:var(--border)}
.tabs button.on{background:var(--panel2);color:var(--accent-lit);border-color:var(--border)}
header .who{color:var(--faint);font-size:12px;overflow-wrap:anywhere}
.sp{flex:1}

/* ---- page body: scrolls vertically, never sideways ---- */
main{flex:1;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;padding:18px 18px 70px}
.page{max-width:1280px;margin:0 auto;min-width:0}
main.full{padding:0;overflow:hidden;display:flex}
main.full iframe{flex:1;width:100%;border:0;display:block;background:var(--bg)}

h1.row{margin:4px 0 6px;font-size:21px;font-weight:700;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
h1.row button{font-size:12.5px}
h2{margin:26px 0 9px;font-size:13px;font-weight:700;color:var(--dim);text-transform:uppercase;letter-spacing:.07em}
h3{margin:14px 0 6px;font-size:14px;color:var(--dim)}
.sub{color:var(--dim);margin:0 0 14px;max-width:980px}
.small{font-size:12px}.mute{color:var(--dim)}.bad{color:var(--red)}.ok{color:var(--green)}

/* ---- cards, tiles ---- */
.card{background:var(--panel);border:1px solid var(--border);border-radius:11px;padding:14px 16px;margin-bottom:14px;min-width:0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(136px,1fr));gap:12px;margin-bottom:16px}
.grid .card{margin:0}
.tile{padding:12px 14px}.tile .num{font-size:24px;font-weight:700}
.num{font-size:24px;font-weight:700}.lab{color:var(--faint);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.note{padding:10px 14px;border-radius:9px;background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.35);margin-bottom:12px;overflow-wrap:anywhere}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* ---- tables: always inside a scroller, so a wide table never widens the page ---- */
.tw,.scrollbox{overflow:auto;max-width:100%;border:1px solid var(--border);border-radius:10px;background:var(--panel)}
.scrollbox{max-height:420px}
.card .tw,.card .scrollbox{border:0;background:none}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top}
th{color:var(--faint);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;position:sticky;top:0;background:var(--panel)}
tr:last-child td{border-bottom:0}
tr.sel td{background:rgba(20,184,166,.10)}
td{overflow-wrap:anywhere}

/* ---- tags, buttons, inputs ---- */
.tag{display:inline-block;padding:1px 9px;border-radius:99px;font-size:11.5px;font-weight:600;background:var(--panel3);color:var(--dim);white-space:nowrap}
.on-t{background:rgba(16,185,129,.16);color:var(--green)}.off-t{background:rgba(239,68,68,.16);color:var(--red)}.warn-t{background:rgba(245,158,11,.16);color:var(--yellow)}
button{font:inherit;color:var(--text)}
.b{background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);border-radius:7px;padding:6px 14px;font-size:12.5px;font-weight:650;cursor:pointer}
.b:hover{background:var(--accent-lit);border-color:var(--accent-lit)}
.b.sec{background:var(--panel2);color:var(--text);border-color:var(--border);font-weight:500}.b.sec:hover{border-color:var(--accent)}
.b.danger{background:transparent;color:var(--red);border-color:var(--red)}.b.danger:hover{background:rgba(239,68,68,.12)}
button:disabled{opacity:.45;cursor:default}
.linkbtn{background:none;border:0;color:var(--accent-lit);cursor:pointer;padding:0;font:inherit}.linkbtn:hover{text-decoration:underline}
input,select,textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:6px 9px;max-width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}
input:disabled,textarea:disabled{opacity:.6}
textarea{width:100%;min-height:130px;resize:vertical}
label{display:block;margin:10px 0 3px;color:var(--dim);font-size:12px}.row label{margin:0}
input[type=checkbox]{accent-color:var(--accent)}

/* ---- campaign bar, segmented filters ---- */
.seg{display:flex;gap:6px;margin:0 0 10px;flex-wrap:wrap}
.segbtn{background:var(--panel2);border:1px solid var(--border);border-radius:99px;padding:4px 13px;cursor:pointer;color:var(--text);font-size:12.5px}
.segbtn:hover{border-color:var(--accent)}
.segbtn.on{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:650}
.segbtn.add{border-style:dashed;color:var(--accent-lit)}
.camps{margin:0 0 16px}
.newcamp{display:flex;gap:6px;align-items:center}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--faint);margin-right:7px}.dot.on{background:var(--green);box-shadow:0 0 6px var(--green)}

.apgrid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px;align-items:start}
@media(max-width:960px){.apgrid{grid-template-columns:minmax(0,1fr)}}

/* ---- login, toast ---- */
.login{max-width:340px;margin:12vh auto;padding:0 16px;text-align:center}
.login img{width:46px;height:46px;margin-bottom:6px}.login .wordmark{display:block;margin-bottom:18px;font-size:17px}
.login input{width:100%;margin-bottom:10px;padding:10px}.login .b{width:100%;padding:10px}
.toast{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:9px 16px;font-size:12.5px;z-index:90;max-width:min(92vw,560px);box-shadow:0 8px 24px rgba(0,0,0,.4)}
.toast.err{border-color:var(--red);color:var(--red)}
@media(max-width:640px){main{padding:14px 12px 70px}header{padding:10px 12px}}
@media(max-width:640px){header .who{display:none}}

/* ---- light mode (per user: Settings > My account) ---- */
:root[data-theme=light]{--bg:#f3f6fb;--panel:#ffffff;--panel2:#f1f5fa;--panel3:#e4eaf3;--border:#d3dbe7;--text:#0f172a;--dim:#475569;--faint:#64748b;--accent:#0d9488;--accent-lit:#0f766e;--on-accent:#ffffff;--green:#059669;--yellow:#b45309;--red:#dc2626}
:root[data-theme=light] .toast{box-shadow:0 8px 24px rgba(15,23,42,.15)}
:root[data-theme=light] .wordmark{color:var(--accent)}
:root[data-theme=light] .b:not(.sec):not(.danger){color:#fff}
:root[data-theme=light] .segbtn.on{color:#fff}

/* ---- templates page ---- */
.tgrid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px;align-items:start}
@media(max-width:1000px){.tgrid{grid-template-columns:minmax(0,1fr)}}
.chip{background:var(--panel2);border:1px solid var(--border);border-radius:99px;padding:2px 10px;font-size:12px;cursor:pointer;font-family:ui-monospace,Menlo,monospace;color:var(--accent-lit)}.chip:hover:not(:disabled){border-color:var(--accent)}
.pvcard{position:sticky;top:0}.pvsubject{font-weight:650;margin:2px 0 10px;overflow-wrap:anywhere}
.pvframe{width:100%;height:340px;border:1px solid var(--border);border-radius:9px;background:#fff;display:block}
.drop{border:2px dashed var(--border);border-radius:11px;padding:18px;text-align:center;cursor:pointer;color:var(--dim)}
.drop:hover,.drop.over{border-color:var(--accent);background:rgba(20,184,166,.07);color:var(--text)}
.attrow{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--border)}.attrow:last-child{border-bottom:0}.attrow a{color:var(--accent-lit)}
select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:6px 8px;max-width:100%}

/* Autopilot: jump bar across the top of the long page */
.jump{position:sticky;top:0;z-index:5;display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:8px 0;margin-bottom:8px;background:var(--bg);border-bottom:1px solid var(--border)}

/* ---- New campaign wizard ---- */
.wz .wzbar{list-style:none;display:flex;gap:6px;flex-wrap:wrap;padding:0;margin:0 0 14px}
.wz .wzbar li{display:flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid var(--border);border-radius:99px;background:var(--panel2);color:var(--dim);font-size:12.5px}
.wz .wzbar li.on{border-color:var(--accent);color:var(--text);font-weight:650}.wz .wzbar li.done{color:var(--accent-lit)}
.wz .wzn{display:inline-flex;width:20px;height:20px;border-radius:50%;align-items:center;justify-content:center;background:var(--panel3);font-size:11px}.wz .wzbar li.on .wzn{background:var(--accent);color:var(--on-accent)}
.wznav{margin-top:16px;gap:8px}
.wzsum td{padding:5px 14px 5px 0;vertical-align:top}.wzsum td:first-child{color:var(--dim);white-space:nowrap}
.wzchecks{list-style:none;padding:0;margin:6px 0}.wzchecks li{padding:3px 0}.wzchecks li.ok{color:var(--green)}.wzchecks li.no{color:var(--yellow)}

/* Autopilot tiles: two rows of four, like the FCLending CRM */
.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:700px){.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
