:root{
  --bg:#f4f5f7;--card:#fff;--ink:#14202e;--muted:#5d6b7a;--line:#dfe3e8;
  --brand:#0f2a44;--brand2:#1c4670;--accent:#e8731a;--accent-ink:#fff;
  --good:#1f7a4d;--warn:#b25e00;--bad:#b3261e;--chip:#eef1f5;--chip-on:#0f2a44;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0d141c;--card:#152130;--ink:#e7edf3;--muted:#98a7b6;--line:#26374a;
  --brand:#0a1a2b;--brand2:#1c4670;--chip:#1d2c3e;--chip-on:#e8731a;
}}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 Inter,system-ui,sans-serif;background:var(--bg);color:var(--ink)}
header{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;padding:22px 20px 18px}
.wrap{max-width:1180px;margin:0 auto;padding:0 16px}
header h1{margin:0;font-size:24px;letter-spacing:-.01em}
header h1 span{color:var(--accent)}
header p{margin:4px 0 0;color:#c9d6e3;font-size:14px}
nav.tabs{display:flex;gap:6px;margin-top:16px;flex-wrap:wrap}
nav.tabs button{background:rgba(255,255,255,.1);color:#fff;border:0;border-radius:8px 8px 0 0;padding:10px 16px;font:600 14px Inter,sans-serif;cursor:pointer}
nav.tabs button.on{background:var(--bg);color:var(--ink)}
main{padding:18px 0 60px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}
.filters{display:grid;gap:14px}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.lbl{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);min-width:78px}
.chip{border:1px solid var(--line);background:var(--chip);color:var(--ink);border-radius:999px;padding:6px 12px;font:500 13px Inter,sans-serif;cursor:pointer}
.chip.on{background:var(--chip-on);color:#fff;border-color:var(--chip-on)}
input[type=search],select{font:15px Inter,sans-serif;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink)}
input[type=search]{flex:1;min-width:220px}
.btn{background:var(--accent);color:var(--accent-ink);border:0;border-radius:8px;padding:9px 14px;font:600 14px Inter,sans-serif;cursor:pointer;text-decoration:none;display:inline-block}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.status{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin:16px 2px 10px;color:var(--muted);font-size:14px}
.status b{color:var(--ink);font-size:16px}
.list{display:grid;gap:10px}
.opp{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--brand2);border-radius:10px;padding:14px 16px;display:grid;grid-template-columns:1fr auto;gap:6px 16px}
.opp.hot{border-left-color:var(--accent)}
.opp h3{margin:0;font-size:16px;line-height:1.35}
.opp h3 a{color:inherit;text-decoration:none}
.opp h3 a:hover{text-decoration:underline}
.meta{color:var(--muted);font-size:13px;display:flex;flex-wrap:wrap;gap:4px 14px}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.tag{font-size:12px;padding:2px 8px;border-radius:999px;background:var(--chip);color:var(--ink)}
.tag.svc{background:rgba(232,115,26,.14);color:var(--accent)}
.tag.sa{background:rgba(31,122,77,.14);color:var(--good)}
.due{text-align:right;white-space:nowrap}
.due .d{font-weight:700;font-size:15px}
.due .left{font-size:12px;color:var(--muted)}
.due .left.soon{color:var(--bad);font-weight:600}
.opp>*{grid-column:1}.opp .due{grid-column:2;grid-row:1}.opp .side{grid-column:2;grid-row:2 / span 3}
.side{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end;gap:6px}
.empty,.note{padding:28px;text-align:center;color:var(--muted)}
.note.err{color:var(--bad)}
.grid3{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.region h2{margin:0 0 8px;font-size:16px}
.region .sub{font-size:12px;color:var(--muted);margin:-4px 0 10px}
.portal{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.portal a{min-width:0;overflow-wrap:anywhere;color:var(--ink);font-weight:600;text-decoration:none;font-size:14px}
.portal a:hover{color:var(--accent)}
.portal small{display:block;word-break:break-all;color:var(--muted);font-weight:400;font-size:12px}
.portal button{flex:none}
.grp{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:14px 0 2px}
.mini{font:600 12px Inter,sans-serif;padding:5px 9px;border-radius:6px;border:1px solid var(--line);background:var(--chip);color:var(--ink);cursor:pointer;text-decoration:none}
.howto{max-width:760px}
.howto h2{font-size:18px;margin:18px 0 6px}
.howto li{margin:4px 0}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--brand);color:#fff;padding:10px 16px;border-radius:8px;font-size:14px;opacity:0;transition:.2s;pointer-events:none}
.toast.show{opacity:1}
.spin{display:inline-block;width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:s 1s linear infinite;vertical-align:-3px;margin-right:8px}
@keyframes s{to{transform:rotate(360deg)}}
@media (max-width:640px){.opp{grid-template-columns:1fr}.opp .side,.opp .due{grid-column:1;grid-row:auto;align-items:flex-start;text-align:left}.lbl{min-width:100%}}
.muted{color:var(--muted)}
.radio{display:block;margin:6px 0;cursor:pointer}
input[type=email]{font:15px Inter,sans-serif;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink)}
.msg{padding:10px 12px;border-radius:8px;margin-bottom:12px;background:rgba(31,122,77,.12);color:var(--good);font-weight:600}
.msg.err{background:rgba(179,38,30,.1);color:var(--bad)}
.area{margin:18px 0 8px;font-size:16px;padding-bottom:4px;border-bottom:2px solid var(--accent)}
.rrow{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px}
.score{flex:none;width:40px;text-align:center;font-weight:700;color:#fff;border-radius:7px;padding:6px 0}
.score.hi{background:var(--good)}.score.mid{background:var(--warn)}.score.lo{background:#8a96a3}
.rrow a.t{font-weight:700;color:var(--ink);text-decoration:none}.rrow a.t:hover{text-decoration:underline}
.why{font-size:13px;font-style:italic}
.auto{font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;margin-left:6px;vertical-align:2px;background:var(--chip);color:var(--muted)}
.auto.on{background:rgba(31,122,77,.14);color:var(--good)}
.lh{display:flex;gap:10px;justify-content:space-between;align-items:flex-start;padding:8px 0;border-top:1px solid var(--line)}
.lh a{font-weight:600;color:var(--ink);text-decoration:none}.lh a:hover{color:var(--accent)}
.lh .src{font-size:12px;color:var(--muted)}
.newtag{background:var(--accent);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;margin-left:6px;vertical-align:2px}
.opp.scored{grid-template-columns:auto 1fr auto}
.opp.scored>*{grid-column:2}.opp.scored>.score{grid-column:1;grid-row:1 / span 4;align-self:start}
.opp.scored .due{grid-column:3;grid-row:1}.opp.scored .side{grid-column:3;grid-row:2 / span 4}
.opp .why{font-size:13px}
.rv{font-style:normal;font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;background:rgba(31,122,77,.14);color:var(--good);margin-left:4px}
@media (max-width:640px){.opp.scored{grid-template-columns:auto 1fr}.opp.scored .due,.opp.scored .side{grid-column:2;grid-row:auto;align-items:flex-start;text-align:left}}
