/* PhD Research Intelligence System – local stylesheet (no external assets; works offline) */
:root{
  --bg:#f6f7f9; --panel:#ffffff; --ink:#1b2430; --muted:#5b6675; --line:#dde2e8; --accent:#1f5f8b; --accent-ink:#ffffff;
  --g:#1e7a46; --g-bg:#e6f4ec; --a:#9a6200; --a-bg:#fff3d6; --r:#b3261e; --r-bg:#fde7e5; --gr:#5f6b78; --gr-bg:#eceff3;
  --viva:#0f3d5e; --prof:#5a2a82;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#12161c; --panel:#1a2028; --ink:#e6eaf0; --muted:#9aa6b4; --line:#2c3541; --accent:#5aa7dc; --accent-ink:#0b1117;
  --g:#5fcf8e; --g-bg:#173325; --a:#f0b44c; --a-bg:#3a2c10; --r:#ff8a80; --r-bg:#3d1a18; --gr:#a5b0bd; --gr-bg:#262d36; } }
:root[data-theme="dark"]{ --bg:#12161c; --panel:#1a2028; --ink:#e6eaf0; --muted:#9aa6b4; --line:#2c3541; --accent:#5aa7dc; --accent-ink:#0b1117;
  --g:#5fcf8e; --g-bg:#173325; --a:#f0b44c; --a-bg:#3a2c10; --r:#ff8a80; --r-bg:#3d1a18; --gr:#a5b0bd; --gr-bg:#262d36; }
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 "Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif}
a{color:var(--accent)}
header.top{display:flex;align-items:center;gap:16px;padding:10px 18px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;flex-wrap:wrap}
header.top .brand{font-weight:700;letter-spacing:.2px}
header.top .mode{padding:2px 10px;border-radius:12px;font-size:12px;font-weight:700;color:#fff;background:var(--accent)}
header.top .mode.viva{background:var(--viva)} header.top .mode.professor{background:var(--prof)}
nav.main{display:flex;gap:2px;flex-wrap:wrap}
nav.main a{padding:6px 10px;border-radius:6px;text-decoration:none;color:var(--ink)}
nav.main a:hover,nav.main a.on{background:var(--gr-bg)}
header.top form.q{margin-left:auto;display:flex;gap:6px}
input[type=text],input[type=search],input[type=password],textarea,select{font:inherit;padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink)}
textarea{width:100%;min-height:70px}
button,.btn{font:inherit;padding:7px 12px;border-radius:6px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);cursor:pointer;text-decoration:none;display:inline-block}
.btn.ghost,button.ghost{background:transparent;color:var(--accent)}
.btn.big{font-size:17px;padding:12px 18px;border-radius:8px}
.btn.disabled{border-color:var(--line);background:var(--gr-bg);color:var(--muted);cursor:not-allowed}
main{padding:18px;max-width:1500px;margin:0 auto}
h1{font-size:22px;margin:4px 0 14px} h2{font-size:17px;margin:20px 0 8px} h3{font-size:15px;margin:14px 0 6px}
.muted{color:var(--muted)} .small{font-size:12px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px}
.card .n{font-size:26px;font-weight:700} .card .l{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.4px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px;margin-bottom:14px;overflow-x:auto}
table{border-collapse:collapse;width:100%;background:var(--panel)}
th,td{border-bottom:1px solid var(--line);padding:5px 7px;text-align:left;vertical-align:top}
th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.3px;background:var(--panel);position:sticky;top:0}
td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.badge{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;font-weight:600;border:1px solid transparent;white-space:normal}
.badge.green{background:var(--g-bg);color:var(--g);border-color:var(--g)} .badge.amber{background:var(--a-bg);color:var(--a);border-color:var(--a)}
.badge.red{background:var(--r-bg);color:var(--r);border-color:var(--r)} .badge.grey{background:var(--gr-bg);color:var(--gr);border-color:var(--gr)}
.tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:10px}
.tabs a{padding:6px 10px;border:1px solid var(--line);border-radius:6px;text-decoration:none;color:var(--ink);background:var(--panel)}
.tabs a.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.chain{display:flex;flex-direction:column;gap:0}
.chain .step{display:grid;grid-template-columns:230px 1fr;gap:12px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.chain .arrow{text-align:center;color:var(--muted);font-size:18px;line-height:18px;margin:2px 0}
.chain .step .k{font-weight:700;color:var(--muted);font-size:12px;letter-spacing:.4px}
.btnrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px} @media (max-width:900px){.grid2{grid-template-columns:1fr}}
svg.chart{width:100%;height:auto;background:var(--panel)}
svg .grid{stroke:var(--line);stroke-width:1} svg .ax{fill:var(--muted);font-size:11px} svg .ax.small{font-size:9px} svg .ct{fill:var(--ink);font-size:12px;font-weight:600}
svg .pt{stroke:var(--panel);stroke-width:1} svg .pt.g{fill:var(--g)} svg .pt.a{fill:var(--a)} svg .pt.r{fill:var(--r)}
svg .mean{stroke:var(--ink);stroke-width:2} svg .err{stroke:var(--ink);stroke-width:1.2} svg .ref{stroke:var(--muted);stroke-dasharray:4 3}
svg .bar.g{fill:var(--g)} svg .bar.a{fill:var(--a)}
.matrix td{text-align:center;font-size:12px}
.notice{padding:10px 12px;border-radius:8px;border:1px solid var(--a);background:var(--a-bg);color:var(--ink);margin-bottom:12px}
.notice.red{border-color:var(--r);background:var(--r-bg)} .notice.green{border-color:var(--g);background:var(--g-bg)}
.pageview{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px} @media (max-width:1000px){.pageview{grid-template-columns:1fr}}
.pageimg{width:100%;border:1px solid var(--line);background:#fff}
.event{border-left:3px solid var(--line);padding:4px 10px;margin:6px 0}
.event.prof{border-color:var(--prof)} .event.owner{border-color:var(--accent)} .event.system{border-color:var(--a)}
.vivabox{font-size:22px;padding:14px;width:100%;border-radius:10px}
.quick{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:14px 0}
.quick a,.quick span{display:block;padding:18px 10px;text-align:center;font-weight:700;border-radius:10px;border:1px solid var(--line);background:var(--panel);text-decoration:none;color:var(--ink)}
.quick span{color:var(--muted);font-weight:500}
.vivacard{border:2px solid var(--viva);border-radius:12px;padding:16px;background:var(--panel);margin-bottom:14px}
.big-num{font-size:34px;font-weight:800}
.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.kv div{background:var(--bg);border-radius:8px;padding:8px} .kv b{display:block;font-size:11px;color:var(--muted);text-transform:uppercase}
.chooser{max-width:860px;margin:40px auto;display:grid;grid-template-columns:repeat(3,1fr);gap:14px} @media (max-width:800px){.chooser{grid-template-columns:1fr}}
.chooser .card{padding:22px} .chooser h2{margin-top:0}
footer{padding:14px 18px;color:var(--muted);font-size:12px;border-top:1px solid var(--line);margin-top:20px}
code,.mono{font-family:Consolas,"Cascadia Mono",Menlo,monospace;font-size:12px;word-break:break-all}
.vivacard svg.chart{max-width:460px}
.kv .wide{grid-column:1/-1}
svg .vl{fill:var(--ink);font-size:12px;font-weight:600} svg .base{stroke:var(--muted);stroke-width:1}
svg .bar.g:hover{opacity:.85}
:root{--s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a;--s4:#eda100;--s5:#e87ba4;--s6:#008300}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s6:#008300}}
:root[data-theme="dark"]{--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s6:#008300}
svg .ln{fill:none;stroke-width:2} svg .eb{stroke-width:1.4} svg .mk{stroke:var(--panel);stroke-width:2}
svg .ln.s1,svg .eb.s1{stroke:var(--s1)} svg .mk.s1{fill:var(--s1)} svg .ln.s2,svg .eb.s2{stroke:var(--s2)} svg .mk.s2{fill:var(--s2)}
svg .ln.s3,svg .eb.s3{stroke:var(--s3)} svg .mk.s3{fill:var(--s3)} svg .ln.s4,svg .eb.s4{stroke:var(--s4)} svg .mk.s4{fill:var(--s4)}
svg .ln.s5,svg .eb.s5{stroke:var(--s5)} svg .mk.s5{fill:var(--s5)} svg .ln.s6,svg .eb.s6{stroke:var(--s6)} svg .mk.s6{fill:var(--s6)}

.mx{text-align:center;font-weight:600}.mx.VERIFIED{background:var(--g-bg);color:var(--g)}.mx.AVAILABLE{background:#dbe9f7;color:#1f4f7a}
.mx.PARTIAL,.mx.TO_BE_VERIFIED{background:var(--a-bg);color:var(--a)}.mx.CONFLICT{background:var(--r-bg);color:var(--r)}.mx.MISSING{background:var(--gr-bg);color:var(--gr)}
@media (prefers-color-scheme: dark){.mx.AVAILABLE{background:#1d3550;color:#9cc4ec}}
