:root{ /* default skin: Tellus Green (brand) */
  --bg:#0b130e; --panel:#13201a; --panel2:#0e1813; --line:#1f3329;
  --text:#e8f3ec; --muted:#8ba99a; --accent:#22c55e; --accent2:#4ade80;
  --good:#34d399; --warn:#fbbf24; --bad:#f87171; --gate:#a78bfa;
  --radius:12px; font-size:15px;
}
body.light{ /* Daylight */
  --bg:#f3f6fb; --panel:#ffffff; --panel2:#eef2f8; --line:#d8e0ec;
  --text:#16202e; --muted:#5b6b82; --accent:#0891b2; --accent2:#0284c7;
  --good:#059669; --warn:#b45309; --bad:#dc2626; --gate:#7c3aed;
}
body.theme-midnight{ /* Midnight (original dark) */
  --bg:#0b0f17; --panel:#121826; --panel2:#0e1422; --line:#1f2a3d;
  --text:#e6edf7; --muted:#8b9bb4; --accent:#22d3ee; --accent2:#38bdf8;
  --good:#34d399; --warn:#fbbf24; --bad:#f87171; --gate:#a78bfa;
}
body.theme-graphite{ /* Graphite (neutral, amber accent) */
  --bg:#101113; --panel:#1a1c20; --panel2:#141518; --line:#2a2e35;
  --text:#e7e9ee; --muted:#9aa2b1; --accent:#f59e0b; --accent2:#fbbf24;
  --good:#34d399; --warn:#fbbf24; --bad:#f87171; --gate:#a78bfa;
}
body.theme-paper{ /* Paper (warm light) */
  --bg:#f5f1e8; --panel:#fffdf7; --panel2:#efe9db; --line:#ddd3bf;
  --text:#2b2620; --muted:#6b6353; --accent:#b45309; --accent2:#d97706;
  --good:#059669; --warn:#b45309; --bad:#dc2626; --gate:#7c3aed;
}
body.theme-tellusblue{ /* Tellus Blue — Tellus Power Group brand skin */
  --bg:#0a0f17; --panel:#101826; --panel2:#0d1420; --line:#1d2c40;
  --text:#e6eef7; --muted:#8aa0bb; --accent:#38bdf8; --accent2:#0ea5e9;
  --good:#34d399; --warn:#fbbf24; --bad:#f87171; --gate:#a78bfa;
}
/* theme picker dropdown */
.theme-menu{position:fixed;z-index:200;background:var(--panel);border:1px solid var(--line);
  border-radius:10px;padding:6px;box-shadow:0 10px 30px rgba(0,0,0,.35);display:flex;flex-direction:column;gap:2px;min-width:178px}
.theme-menu button{display:flex;align-items:center;width:100%;text-align:left;background:none;border:1px solid transparent;
  color:var(--text);border-radius:7px;padding:7px 10px;font-size:13px;cursor:pointer}
.theme-menu button:hover{background:var(--panel2);border-color:var(--line)}
.theme-menu button.cur{border-color:var(--accent);color:var(--accent);font-weight:700}
.theme-menu .ico{margin-right:7px;font-size:14px;width:18px;text-align:center;flex-shrink:0}
.theme-menu .sw{display:inline-block;width:14px;height:14px;border-radius:4px;margin-right:9px;flex-shrink:0;border:1px solid rgba(255,255,255,.18)}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--text);font-family:"Segoe UI",system-ui,sans-serif;min-height:100vh}
a{color:var(--accent)}
button{font-family:inherit}

/* ---------- shell ---------- */
header{display:flex;align-items:center;gap:14px;padding:10px 18px;border-bottom:1px solid var(--line);
  background:var(--panel);position:sticky;top:0;z-index:50}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;white-space:nowrap}
.brand .dot{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--accent),#6366f1);
  display:grid;place-items:center;color:#04141a;font-weight:900}
.search{flex:1;max-width:640px;display:flex;align-items:center;gap:8px;background:var(--panel2);
  border:1px solid var(--line);border-radius:10px;padding:8px 14px;color:var(--muted)}
.search input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:14px}
.kbd{border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:11px;color:var(--muted)}
.hbtn{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:9px;
  padding:7px 12px;cursor:pointer;font-size:14px}
.hbtn:hover{border-color:var(--accent)}
.layout{display:flex;min-height:calc(100vh - 53px)}
nav{width:196px;border-right:1px solid var(--line);background:var(--panel);padding:12px 8px;flex-shrink:0}
nav a{display:flex;gap:9px;align-items:center;color:var(--muted);text-decoration:none;padding:9px 12px;
  border-radius:9px;font-size:14px;margin-bottom:2px;border-left:3px solid transparent}
nav a.active{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 16%,transparent),transparent);color:var(--text);
  border-left-color:var(--accent)}
nav a:hover{color:var(--text)}
main{flex:1;padding:20px 24px;overflow-x:hidden;min-width:0}
h1{font-size:19px;margin-bottom:2px}
.sub{color:var(--muted);font-size:13px;margin-bottom:18px}
.section-title{font-size:12px;letter-spacing:1.6px;color:var(--muted);text-transform:uppercase;margin:22px 0 10px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* ---------- widgets ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:12px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;cursor:pointer}
.kpi:hover{border-color:var(--accent)}
.kpi .v{font-size:22px;font-weight:700;margin-top:2px}
.kpi .l{font-size:12px;color:var(--muted)}
.kpi .d{font-size:11px;margin-top:2px;color:var(--muted)}
.up{color:var(--good)} .down{color:var(--bad)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:980px){.grid2{grid-template-columns:1fr}}
/* report grid: give the wide yield table more room than the compact NCR chart */
.rgrid{display:grid;grid-template-columns:1.7fr 1fr;gap:20px;align-items:start;margin-bottom:6px}
@media(max-width:1100px){.rgrid{grid-template-columns:1fr}}

/* ---- Process Flow (horizontal lifecycle pipe — reference map) ---- */
.flowchip{font-size:12px;border:1px solid var(--line);border-radius:8px;padding:5px 9px;color:var(--muted);white-space:nowrap}
.flowchip.gate{border-color:var(--warn);color:var(--warn)}
.flowchip.gate::before{content:'◆ '}
.flowchip.accent{border-color:var(--accent);color:var(--accent)}
.pflow{display:flex;align-items:stretch;min-width:min-content;padding:4px 2px 10px}
.pnode{position:relative;flex:1 0 160px;min-width:160px;max-width:230px;background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:14px 13px;margin-right:26px;display:flex;flex-direction:column;gap:9px}
.pnode:last-child{margin-right:0}
.pnode::after{content:"▸";position:absolute;right:-19px;top:50%;transform:translateY(-50%);color:var(--accent2);font-size:22px;opacity:.85}
.pnode:last-child::after{content:""}
.pnode.start{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.pnode.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.pnode.pdone{border-color:var(--good)}
.pnode.pdim{opacity:.42}
.pcount{display:inline-block;min-width:18px;text-align:center;background:var(--accent);color:#04141a;border-radius:9px;font-size:11px;font-weight:800;padding:1px 6px;vertical-align:middle}
.pcount.done{background:var(--good)}
.pnum{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#04141a;font-weight:800;font-size:14px;display:grid;place-items:center}
.pnode.start .ptitle::after{content:" · START";color:var(--accent);font-weight:800;font-size:11px}
.ptitle{font-weight:700;font-size:14px;line-height:1.25}
.pchips{display:flex;flex-wrap:wrap;gap:5px}
.proutes{display:flex;flex-direction:column;gap:9px}
.proute{display:flex;flex-wrap:wrap;align-items:center;gap:5px}
.rlabel{font-size:10px;font-weight:800;padding:3px 7px;border-radius:6px;text-transform:uppercase;letter-spacing:.5px}
.rlabel.warn{background:var(--warn);color:#04141a}
.rlabel.good{background:var(--good);color:#04141a}

/* ---- step rows (planning wizard) ---- */
.prow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.prow .picn{font-size:15px;font-weight:800;flex-shrink:0;width:20px;text-align:center}
.prow .ptl{font-weight:600;font-size:14px}
@media(max-width:640px){.prow{flex-direction:column;align-items:stretch;gap:8px}.prow .btn{width:100%;text-align:center}}

/* ---------- kanban (forms) ---------- */
.kanban{display:flex;gap:14px;overflow-x:auto;padding-bottom:10px;align-items:flex-start}
.kcol{flex:0 0 270px;background:var(--panel2);border:1px solid var(--line);border-radius:var(--radius);
  display:flex;flex-direction:column;max-height:calc(100vh - 230px)}
.kcol-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;
  border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel2);
  border-radius:var(--radius) var(--radius) 0 0;z-index:1}
.kcol-title{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kcount{flex-shrink:0;font-size:11px;color:var(--muted);background:var(--panel);border:1px solid var(--line);
  border-radius:10px;padding:1px 8px}
.kcol-body{padding:9px;overflow-y:auto;display:flex;flex-direction:column;gap:9px}
.kcard{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:9px 10px;
  cursor:pointer;transition:border-color .15s,transform .15s}
.kcard:hover{border-color:var(--accent);transform:translateY(-1px)}
.kserials{font-size:13px;font-weight:600;line-height:1.3}
.kserials a{text-decoration:none}
.kmuted{color:var(--muted);font-weight:400}
.kemail{font-size:12px;color:var(--accent2);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kdate{font-size:11px;color:var(--muted);margin-top:3px}
.kprev{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ---------- production schedules ---------- */
.schedtbl{border-collapse:collapse;width:100%;font-size:12.5px}
.schedtbl{table-layout:auto}
.schedtbl th,.schedtbl td{border:1px solid var(--line);padding:5px 8px;text-align:left;
  min-width:150px;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.schedtbl thead th{position:sticky;background:var(--panel);font-weight:600;cursor:pointer}
.schedtbl thead tr:first-child th{top:0;z-index:2}
.schedtbl thead tr.filterrow th{top:30px;z-index:1;padding:2px 4px;cursor:default;font-weight:400}
.colfbtn{width:100%;background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:5px;
  cursor:pointer;font-size:11px;padding:1px 4px;font-family:inherit}
.colfbtn:hover{border-color:var(--accent);color:var(--text)}
.colfbtn.active{background:var(--accent);color:#04141a;border-color:var(--accent);font-weight:700}
.colfpop{position:fixed;z-index:1000;width:340px;max-width:94vw;max-height:calc(100vh - 20px);background:var(--panel);border:1px solid var(--line);
  border-radius:10px;box-shadow:0 12px 38px rgba(0,0,0,.5);padding:12px;display:flex;flex-direction:column;gap:9px}
.colfpop .cfsearch{width:100%;min-width:0;font-size:13px;padding:6px 8px}
.colfpop .cfall{font-size:13px;font-weight:600;display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:7px}
.colfpop .cflist{max-height:62vh;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding:2px 0}
.colfpop .cflist label{font-size:13.5px;display:flex;gap:10px;align-items:center;padding:9px 10px;border-radius:6px;
  cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:22px}
.colfpop .cflist label:hover{background:var(--panel2)}
.colfpop .cflist input[type=checkbox]{width:16px;height:16px;flex:0 0 auto;margin:0;cursor:pointer}
.colfpop .cfbtns{display:flex;gap:6px;border-top:1px solid var(--line);padding-top:6px}
.colfpop .cfbtns .btn{flex:1;padding:5px}
.schedtbl tbody td[contenteditable]{cursor:text}
.schedtbl tbody td[contenteditable]:focus{outline:2px solid var(--accent);outline-offset:-2px;background:var(--panel);white-space:normal}
.schedtbl tbody tr:nth-child(even){background:var(--panel2)}
.schedtbl tbody tr:hover{background:rgba(34,211,238,.08)}
.sheettab{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:8px;
  padding:6px 12px;cursor:pointer;font-size:13px;font-family:inherit;white-space:nowrap}
.sheettab:hover{border-color:var(--accent)}
.sheettab.active{background:var(--accent);color:#04141a;border-color:var(--accent);font-weight:600}

/* ---------- customizable sidebar ---------- */
.nav-sec{font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);
  padding:12px 12px 4px;display:flex;align-items:center;gap:6px}
.nav-sec-label{flex:1}
.nav-sec-label[contenteditable]{outline:1px dashed var(--line);border-radius:4px;padding:1px 5px;cursor:text}
.nav-grip{cursor:grab;color:var(--muted);font-size:13px}
.nav-secdel{cursor:pointer;color:var(--bad);font-size:12px}
.nav-drop{outline:2px dashed var(--accent);outline-offset:-2px;border-radius:8px}
.nav-tools{display:flex;flex-direction:column;gap:5px;padding:14px 6px 4px;margin-top:10px;border-top:1px solid var(--line)}
.navbtn{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:8px;
  padding:6px 10px;cursor:pointer;font-size:12px;font-family:inherit;text-align:left}
.navbtn:hover{border-color:var(--accent)}
.navbtn.primary{background:var(--accent);color:#04141a;border-color:var(--accent);font-weight:600}
nav a[draggable="true"]{cursor:grab}

/* ---------- login ---------- */
#appLogin{position:fixed;inset:0;z-index:5000;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:16px}
#appLogin .loginbox{width:330px;max-width:92vw;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:26px 22px;box-shadow:0 24px 70px rgba(0,0,0,.55)}
#whoami{font-size:13px}

/* ---------- pipeline ---------- */
.pipewrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px 18px 14px}
.pipe{display:flex;flex-wrap:wrap;row-gap:34px}
.node{position:relative;display:flex;flex-direction:column;align-items:center;width:7.65%;min-width:74px;cursor:pointer}
.node .shape{width:46px;height:46px;display:grid;place-items:center;font-weight:800;font-size:11.5px;
  background:var(--panel2);border:2px solid var(--line);border-radius:50%;transition:.15s;position:relative;z-index:2}
.node.gate .shape{border-radius:10px;transform:rotate(45deg);border-color:var(--gate)}
.node.gate .shape span{transform:rotate(-45deg)}
.node .nm{font-size:10.5px;color:var(--muted);margin-top:9px;text-align:center;line-height:1.25;max-width:86px}
.node .cnt{position:absolute;top:-9px;right:calc(50% - 32px);background:var(--accent);color:#04141a;font-weight:800;
  font-size:11px;border-radius:999px;padding:1px 7px;z-index:3}
.node.empty .cnt{background:var(--line);color:var(--muted)}
.node.alert .shape{border-color:var(--bad);box-shadow:0 0 12px rgba(248,113,113,.35);animation:pulse 1.6s infinite}
.node.alert .cnt{background:var(--bad);color:#fff}
@keyframes pulse{50%{box-shadow:0 0 20px rgba(248,113,113,.6)}}
.node:not(:last-child)::after{content:"";position:absolute;top:22px;left:calc(50% + 26px);
  width:calc(100% - 52px);height:2px;background:linear-gradient(90deg,var(--line),var(--accent2));opacity:.55;z-index:1}
.node:not(:last-child)::before{content:"▸";position:absolute;top:13px;right:-7px;color:var(--accent2);opacity:.7;z-index:1}
.node.selected .shape{border-color:var(--accent);box-shadow:0 0 14px rgba(34,211,238,.45)}
.legend{display:flex;gap:18px;margin-top:18px;font-size:11.5px;color:var(--muted);flex-wrap:wrap}
.legend i{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.legend .gi{border-radius:3px;transform:rotate(45deg)}

/* ---------- board ---------- */
.board{display:flex;gap:12px;overflow-x:auto;padding-bottom:10px}
.col{min-width:212px;flex:0 0 212px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}
.col.hl{border-color:var(--accent)}
.col h3{font-size:12px;padding:10px 12px;border-bottom:1px solid var(--line);color:var(--muted);display:flex;justify-content:space-between}
.col h3 b{color:var(--text)}
.cards{padding:9px;display:flex;flex-direction:column;gap:8px;min-height:60px}
.card{background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:9px;
  padding:9px 11px;cursor:pointer;transition:.12s}
.card:hover{transform:translateY(-2px);border-color:var(--accent)}
.card.fail{border-left-color:var(--bad)}
.card.prog{border-left-color:var(--warn)}
.card .sn{font-weight:700;font-size:13.5px}
.card .meta{font-size:11.5px;color:var(--muted);margin-top:3px;line-height:1.45}
.tag{display:inline-block;font-size:10px;font-weight:700;border-radius:5px;padding:1px 6px;margin:5px 4px 0 0}
.tag.fail{background:rgba(248,113,113,.16);color:var(--bad)}
.tag.att{background:rgba(251,191,36,.14);color:var(--warn)}
.tag.ok{background:rgba(52,211,153,.13);color:var(--good)}
.tag.prog{background:rgba(251,191,36,.14);color:var(--warn)}

/* ---------- tables & forms ---------- */
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);text-align:left;
  padding:8px 10px;border-bottom:1px solid var(--line)}
td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
tr:hover td{background:rgba(34,211,238,.04)}
.badge{display:inline-block;font-size:11px;font-weight:700;border-radius:6px;padding:2px 8px}
.b-open,.b-in_progress{background:rgba(251,191,36,.15);color:var(--warn)}
.b-planned,.b-queued,.b-pending{background:rgba(139,155,180,.15);color:var(--muted)}
.b-released{background:rgba(56,189,248,.15);color:var(--accent2)}
.b-complete,.b-passed,.b-closed,.b-shipped,.b-field{background:rgba(52,211,153,.15);color:var(--good)}
.b-failed,.b-scrapped,.b-critical,.b-major{background:rgba(248,113,113,.16);color:var(--bad)}
.b-minor{background:rgba(251,191,36,.15);color:var(--warn)}
input,select,textarea{background:var(--panel2);border:1px solid var(--line);color:var(--text);
  border-radius:8px;padding:8px 11px;font-size:14px;font-family:inherit;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--accent)}
select{min-width:130px;cursor:pointer}
.btn{background:var(--accent);color:#04141a;border:none;border-radius:8px;padding:8px 16px;font-weight:700;
  cursor:pointer;font-size:13.5px}
.btn:hover{filter:brightness(1.12)}
.btn.ghost{background:var(--panel2);color:var(--text);border:1px solid var(--line)}
.btn.danger{background:var(--bad);color:#fff}
.btn.good{background:var(--good);color:#06281c}
.btn:disabled{opacity:.45;cursor:not-allowed}
.formrow{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px}
.formrow label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--muted)}

/* ---------- bars ---------- */
.bars .bar{display:flex;align-items:center;gap:10px;margin-bottom:7px;font-size:12.5px}
.bars .bar .lbl{width:46px;color:var(--muted);font-weight:700}
.bars .bar .trk{flex:1;background:var(--panel2);border-radius:6px;height:16px;overflow:hidden}
.bars .bar .fil{height:100%;background:linear-gradient(90deg,var(--accent2),var(--accent));border-radius:6px}
.bars .bar.bad .fil{background:linear-gradient(90deg,#ef4444,var(--bad))}
.bars .bar .num{width:26px;text-align:right;font-weight:700}

/* ---------- modal ---------- */
.overlay{position:fixed;inset:0;background:rgba(4,8,15,.72);display:none;place-items:center;z-index:100}
.overlay.open{display:grid}
.modal{width:min(760px,94vw);max-height:88vh;overflow:auto;background:var(--panel);border:1px solid var(--line);
  border-radius:16px;padding:22px 24px}
.modal h2{font-size:17px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.modal .close{float:right;cursor:pointer;color:var(--muted);font-size:20px}
.tl{margin-top:14px;border-left:2px solid var(--line);padding-left:18px}
.tl .step{position:relative;padding:7px 0 7px 6px;font-size:13.5px;display:flex;gap:10px;flex-wrap:wrap}
.tl .step::before{content:"";position:absolute;left:-25px;top:13px;width:11px;height:11px;border-radius:50%;background:var(--line)}
.tl .step.done::before{background:var(--good)}
.tl .step.fail::before{background:var(--bad);box-shadow:0 0 8px rgba(248,113,113,.6)}
.tl .step.cur::before{background:var(--warn)}
.tl .who{color:var(--muted);font-size:12px}
.pill{font-size:11px;border:1px solid var(--line);border-radius:999px;padding:2px 9px;color:var(--muted)}
.pill.bad{border-color:var(--bad);color:var(--bad)}
.pill.warn{border-color:var(--warn);color:var(--warn)}
.pill.good{border-color:var(--good);color:var(--good)}
.actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap;align-items:center}

/* ---------- assistant ---------- */
#aiPanel{position:fixed;top:53px;right:-360px;width:350px;height:calc(100vh - 53px);background:var(--panel);
  border-left:1px solid var(--line);z-index:60;display:flex;flex-direction:column;transition:right .2s}
#aiPanel.open{right:0}
.ai-head{padding:12px 14px;border-bottom:1px solid var(--line);font-weight:700;font-size:14px;display:flex;justify-content:space-between}
.ai-head .x{cursor:pointer;color:var(--muted)}
.ai-log{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:9px}
.ai-msg{border-radius:10px;padding:9px 12px;font-size:13px;line-height:1.5;max-width:92%}
.ai-msg.bot{background:var(--panel2);border:1px solid var(--line)}
.ai-msg.me{background:rgba(34,211,238,.12);border:1px solid var(--accent);align-self:flex-end}
.ai-msg a{display:inline-block;margin-top:5px;font-size:12px}
.ai-input{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line)}
.ai-input input{flex:1}
.ai-input button{background:var(--accent);border:none;border-radius:8px;width:38px;font-size:16px;cursor:pointer;color:#04141a;font-weight:900}

/* ---------- search results ---------- */
.sr-group{margin-bottom:18px}
.sr-item{display:block;background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:10px 14px;margin-bottom:7px;text-decoration:none;color:var(--text)}
.sr-item:hover{border-color:var(--accent)}
.sr-item .t{font-weight:700;font-size:14px}
.sr-item .s{font-size:12px;color:var(--muted);margin-top:2px}

/* ---------- toast ---------- */
#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:var(--panel);
  border:1px solid var(--accent);border-radius:10px;padding:11px 20px;font-size:13.5px;display:none;z-index:200;
  max-width:80vw;box-shadow:0 8px 30px rgba(0,0,0,.4)}
#toast.err{border-color:var(--bad)}
#toast.show{display:block}

iframe.embed{width:100%;height:calc(100vh - 200px);border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.note{background:rgba(34,211,238,.07);border:1px solid var(--line);border-left:3px solid var(--accent);
  border-radius:10px;padding:12px 16px;font-size:13px;color:var(--muted);line-height:1.6;margin-bottom:14px}
@media(max-width:900px){nav span{display:none}nav{width:56px}nav a{justify-content:center;padding:9px 6px}}
