:root{--navy:#0B1A3A;--gold:#FFD24A;--ink:#1d2740;--mute:#5d6782;--line:#e3e6ee;--bg:#eef1f7;--ok:#2E7D32;--bad:#C62828}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
header{background:var(--navy);color:#fff;display:flex;align-items:center;gap:12px;padding:10px 14px;flex-wrap:wrap}
header b{color:var(--gold);letter-spacing:.3px}header nav{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
header a{color:#fff;text-decoration:none;padding:8px 12px;border-radius:8px;min-height:40px;display:inline-flex;align-items:center}
header a.on,header a:hover{background:rgba(255,255,255,.12)}
.card{background:#fff;border-radius:12px;padding:18px;margin:14px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.narrow{max-width:420px;margin:40px auto}
h1{font-size:20px;margin:0 0 10px}label{display:block;margin:10px 0;font-size:14px;color:var(--mute)}
input,select{display:block;width:100%;margin-top:4px;padding:10px;border:1px solid var(--line);border-radius:8px;font-size:16px;min-height:44px}
button,.btn{background:var(--navy);color:#fff;border:0;border-radius:8px;padding:10px 16px;font-size:15px;min-height:44px;cursor:pointer;text-decoration:none;display:inline-block}
button.ghost{background:#fff;color:var(--navy);border:1px solid var(--line)}.err{color:var(--bad)}.ok{color:var(--ok)}
table{width:100%;border-collapse:collapse;font-size:14px}td,th{padding:8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
code{background:#f5f6fa;padding:2px 6px;border-radius:6px;word-break:break-all}.scroll{overflow-x:auto}
.layout{display:flex;height:calc(100vh - 60px)}#map{flex:1}#side{width:320px;overflow-y:auto;background:#fff;border-left:1px solid var(--line)}
.dev{padding:12px 14px;border-bottom:1px solid var(--line);cursor:pointer;min-height:44px}.dev:hover,.dev.sel{background:#f5f6fa}
.dev .n{font-weight:600}.dev .m{font-size:13px;color:var(--mute)}.pill{font-size:12px;padding:2px 8px;border-radius:99px;margin-left:6px}
.live{background:#e6f4ea;color:var(--ok)}.stale{background:#fdecea;color:var(--bad)}.bar{padding:10px 14px;font-size:13px;color:var(--mute);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media (max-width:760px){.layout{flex-direction:column;height:auto}#map{height:60vh;flex:none}#side{width:100%;border-left:0}}
/* Phase 2 */
header .who{font-size:12px;color:#c9d1e6}
textarea{display:block;width:100%;margin-top:4px;padding:10px;border:1px solid var(--line);border-radius:8px;font-size:16px;min-height:80px;font-family:inherit}
input[type=checkbox],input[type=radio]{display:inline-block;width:auto;min-height:0;margin:0 6px 0 0;transform:scale(1.3)}
label.chk{display:flex;align-items:center;color:var(--ink);font-size:15px;min-height:40px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media (max-width:560px){.row2{grid-template-columns:1fr}}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.stat{display:block;border:1px solid var(--line);border-radius:10px;padding:12px;color:var(--ink);text-decoration:none;background:#fafbfe}
.stat span{display:block;font-size:13px;color:var(--mute)}.stat b{display:block;font-size:28px;color:var(--navy);margin:4px 0}.stat small{color:var(--mute)}
.stat.warn{border-color:#f3b4b4;background:#fff6f6}.stat.warn b{color:var(--bad)}
tr.overdue td{background:#fff1f1}tr.overdue td:first-child{border-left:4px solid var(--bad)}
.m{font-size:13px;color:var(--mute)}.inline{display:inline}form.inline button{min-height:36px;padding:6px 10px}
.thumb{width:72px;height:72px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.btn.wa{background:#25D366}.btn.ghost,a.ghost{background:#fff;color:var(--navy);border:1px solid var(--line)}
.tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0}
.tools input,.tools select{display:inline-block;width:auto;min-height:40px}
.pill.p-high,.sev-high,.sev-critical{background:#fdecea;color:var(--bad)}.pill.p-normal,.sev-medium{background:#fff4d6;color:#8a6100}.pill.p-low,.sev-low{background:#e6f4ea;color:var(--ok)}
.st-todo{background:#eef1f7;color:var(--mute)}.st-running{background:#e3f0ff;color:#1559b5}.st-paused{background:#fff4d6;color:#8a6100}.st-done{background:#e6f4ea;color:var(--ok)}
.guard{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 0;border-bottom:1px solid var(--line)}.guard .gn{flex:1 1 140px;font-weight:600}
.seg{display:flex;gap:4px;flex-wrap:wrap}.seg label{margin:0;display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;padding:6px 8px;color:var(--ink);font-size:14px}
.seg input{transform:none}
.stars{font-size:26px;color:var(--gold)}
