:root{--ink:#0b2a5b;--text:#0f172a;--paper:#fff;--line:#d5deee;--soft:#eef3fb;--mute:#5b6b86}*{box-sizing:border-box}body,html{margin:0;background:var(--paper);color:var(--text);font:14px/1.45 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:inherit}h1{color:var(--ink);font-size:22px;margin:0 0 4px}h2{font-size:16px;margin:0 0 10px}h3{font-size:14px;margin:0 0 8px}.shell{display:flex;min-height:100vh}.side{width:220px;border-right:1px solid var(--line);background:var(--soft);padding:18px 0;position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;flex-shrink:0}.side .brand{color:var(--ink);font-weight:700;padding:0 18px 16px;font-size:15px;border-bottom:1px solid var(--line);margin-bottom:8px}.side nav{flex:1 1;overflow:auto}.side nav a{display:block;padding:9px 18px;text-decoration:none;border-left:3px solid transparent}.side nav a:hover{background:#e1eafa}.side nav a.on{border-left-color:var(--ink);font-weight:700;background:var(--ink);color:#fff}.side .me{padding:12px 18px;border-top:1px solid var(--line);font-size:12px;color:var(--mute)}.main{flex:1 1;min-width:0;padding:24px 28px 60px}.top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:18px;flex-wrap:wrap}.sub{color:var(--mute)}.card{border:1px solid var(--line);border-radius:6px;padding:14px 16px;background:var(--paper)}.grid{display:grid;grid-gap:12px;gap:12px}.g4{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.g2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.kpi .n{font-size:26px;font-weight:700}.kpi .l{color:var(--mute);font-size:12px}.btn,button{font:inherit;cursor:pointer;border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:7px 14px;border-radius:5px;text-decoration:none;display:inline-block}.btn.sec,button.sec{background:var(--paper);color:var(--ink)}button:disabled{opacity:.4;cursor:not-allowed}button.sm{padding:3px 9px;font-size:12px}input,select,textarea{font:inherit;border:1px solid var(--ink);border-radius:5px;padding:7px 9px;background:var(--paper);color:var(--ink);max-width:100%}textarea{width:100%;min-height:70px}label{display:block;font-size:12px;color:var(--mute);margin:10px 0 3px}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--mute);border-bottom:1px solid var(--ink);white-space:nowrap}tr.click{cursor:pointer}tr.click:hover td{background:var(--soft)}.tw{overflow-x:auto;border:1px solid var(--line);border-radius:6px}.badge{display:inline-block;border:1px solid var(--ink);border-radius:99px;padding:1px 9px;font-size:12px;white-space:nowrap}.badge.solid{background:var(--ink);color:var(--paper)}.badge.dash{border-style:dashed}.bar{flex-wrap:wrap;margin-bottom:12px}.bar,.pager{display:flex;gap:8px;align-items:center}.pager{justify-content:flex-end;margin-top:10px}.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal{background:var(--paper);border:1px solid var(--ink);border-radius:8px;padding:20px;width:min(560px,100%);max-height:90vh;overflow:auto}.err{border-left:1px solid var(--ink);border:1px solid var(--ink);border-left-width:5px;padding:8px 12px;margin:10px 0}.empty{padding:28px;text-align:center;color:var(--mute)}.tl{list-style:none;padding:0;margin:0}.tl li{border-left:2px solid var(--ink);padding:0 0 12px 12px;margin-left:4px;position:relative}.tl li:before{content:"";position:absolute;left:-6px;top:4px;width:10px;height:10px;background:var(--ink);border-radius:50%}.kv{display:grid;grid-template-columns:140px 1fr;grid-gap:4px 10px;gap:4px 10px}.kv dt{color:var(--mute)}.kv dd{margin:0}.map{width:100%;height:340px;border:1px solid var(--ink);border-radius:6px;background:var(--soft)}.login{max-width:380px;margin:12vh auto;padding:28px 28px 24px;border:1px solid var(--line);border-top:5px solid var(--ink);border-radius:8px;box-shadow:0 8px 30px rgba(11,42,91,.1)}.mono{font-family:ui-monospace,Menlo,monospace;font-size:12px}.amber{border:2px solid var(--ink);background:repeating-linear-gradient(45deg,#fff,#fff 6px,#e6edf9 0,#e6edf9 12px)}@media (max-width:800px){.side{display:none}.main{padding:16px}}.fgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:0 14px;gap:0 14px;align-items:end}.fgrid input,.fgrid select{width:100%;padding:6px 9px}.fgrid .span2{grid-column:span 2}.fgrid .span3,.fgrid h3{grid-column:1/-1}.fgrid h3{margin:14px 0 0;padding-top:10px;border-top:1px solid var(--line,#e3e6ee)}.fgrid .chk{display:flex;align-items:center;gap:6px;color:inherit;font-size:13px;margin:10px 0 7px}.fgrid .chk input{width:auto}.fgrid .skills{display:flex;gap:16px;align-items:center;height:34px}@media (max-width:720px){.fgrid{grid-template-columns:1fr}.fgrid .span2{grid-column:auto}}