:root{--navy:#333c52;--olive:#879e3d;--olive-dark:#536a25;--olive-pale:#f0f3e4;--ink:#263147;--muted:#65728a;--line:#e0e5e0;--bg:#f6f7f8;--paper:#fff;--danger:#a54d39;--shadow:0 10px 30px rgba(36,48,58,.04)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 Inter,"Segoe UI",system-ui,sans-serif}
[hidden],.app-shell[hidden],#login[hidden],#backendWarning[hidden]{display:none!important}
button,input,select,textarea{font:inherit}
button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--olive-dark);background:var(--olive-dark);color:#fff;padding:10px 15px;border-radius:9px;cursor:pointer;text-decoration:none;font-weight:600;transition:background .16s,border-color .16s,transform .16s}
button:hover,.button:hover{background:#41561a;border-color:#41561a}
button:disabled{opacity:.5;cursor:wait;transform:none}
button.secondary{background:#fff;color:var(--navy);border-color:var(--line)}
button.secondary:hover{background:var(--olive-pale);border-color:#d7dfbf}
a{color:var(--olive-dark)}
:focus-visible{outline:3px solid #9ab647;outline-offset:2px}
.topbar{height:84px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px 28px;position:sticky;top:0;z-index:30}
.brand,.topbar-right,#identity{display:flex;align-items:center;gap:16px}
.brand-logo{width:158px;height:59px;object-fit:contain;object-position:left center}
.brand-copy{display:flex;flex-direction:column;border-left:1px solid var(--line);padding-left:15px;line-height:1.25}
.brand-copy strong{font-size:15px;color:var(--navy)}
.brand-copy span{color:var(--muted);font-size:12px;margin-top:3px}
.connection{display:inline-flex;align-items:center;gap:8px;background:var(--olive-pale);color:var(--olive-dark);padding:7px 13px;border-radius:100px;font-size:12px;font-weight:600}
.connection i,.status-dot{width:7px;height:7px;background:#65ae76;border-radius:50%;display:inline-block;flex:0 0 auto}
#identity{font-size:12px;color:var(--navy);font-weight:600;white-space:nowrap}
#identity button{font-size:12px;padding:8px 12px;font-weight:500}
.menu-toggle{display:none;background:#fff;color:var(--navy);border-color:var(--line);padding:7px 10px;font-size:20px}
.app-shell{display:grid;grid-template-columns:222px minmax(0,1fr);min-height:calc(100vh - 84px)}
.sidebar{background:#fff;border-right:1px solid var(--line);padding:23px 13px;position:sticky;top:84px;height:calc(100vh - 84px);display:flex;flex-direction:column;z-index:20}
.sidebar-label,.eyebrow{font-size:10px;letter-spacing:.16em;font-weight:800;color:var(--olive-dark)}
.sidebar-label{color:#77849a;padding:1px 12px 14px}
#tabs{display:grid;gap:5px;align-content:start}
#tabs button{width:100%;justify-content:flex-start;text-align:left;background:transparent;color:var(--muted);border:0;padding:12px 13px;font-weight:600;border-radius:10px}
#tabs button:hover{background:#f6f8f1;color:var(--navy)}
#tabs button.active{background:#eef2df;color:var(--olive-dark)}
.nav-icon{width:20px;display:inline-grid;place-items:center;font-size:18px;font-weight:400;color:#718095}
#tabs button.active .nav-icon{color:var(--olive-dark)}
.sidebar-footer{display:flex;gap:10px;align-items:flex-start;margin-top:auto;border-top:1px solid var(--line);padding:18px 11px 0;color:var(--olive-dark);font-size:11px}
.sidebar-footer strong,.sidebar-footer small{display:block}.sidebar-footer small{color:var(--muted);margin-top:2px;letter-spacing:0}
.workspace{min-width:0;width:100%;max-width:1620px;padding:32px clamp(18px,3vw,48px) 54px;margin:0 auto}
.page-heading{margin-bottom:25px}.page-heading h1{font-size:32px;line-height:1.16;margin:9px 0 4px;letter-spacing:-.035em;color:var(--navy)}.page-heading p{margin:0;color:var(--muted)}
h1,h2,h3{color:var(--navy)}h2{font-size:20px;line-height:1.3;letter-spacing:-.025em;margin:0 0 12px}h3{font-size:15px;margin:18px 0 10px}
p{color:var(--muted)}
.card,.metric,.dashboard-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.card{padding:23px;margin-bottom:18px}.card p:first-of-type{margin-top:0}
.narrow{max-width:450px;margin:9vh auto 24px;padding:32px}.narrow h1{font-size:28px;margin:8px 0}.narrow button{width:100%;margin-top:8px}
label{display:block;font-size:12px;font-weight:600;color:var(--navy);margin-bottom:14px}
input,select,textarea{display:block;width:100%;padding:10px 12px;margin-top:6px;border:1px solid #cfd8d1;border-radius:9px;color:var(--ink);background:#fff;min-height:41px}
textarea{min-height:96px;resize:vertical}
input[type=checkbox]{display:inline-block;width:auto;min-height:0;margin:0 6px 0 0;vertical-align:middle}
form .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:2px 17px}
.columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.table{overflow:auto;border:1px solid var(--line);border-radius:11px}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;background:#f6f8f3;color:var(--navy);white-space:nowrap}td,th{padding:12px 13px;border-bottom:1px solid var(--line);vertical-align:top}tr:last-child td{border-bottom:0}td button{font-size:11px;padding:5px 9px;margin:1px}td a{font-weight:600}
.notice{padding:12px 15px;background:#fff9eb;border:1px solid #eddcb3;border-radius:10px;color:#6f572e;margin-bottom:17px}
.muted{color:var(--muted)}.badge{display:inline-block;background:var(--olive-pale);color:var(--olive-dark);padding:3px 8px;border-radius:100px}
.toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:17px}.toolbar label{margin:0;min-width:185px}
.empty{padding:22px;color:var(--muted)}
#message{display:none;position:fixed;right:22px;bottom:22px;z-index:40;padding:13px 18px;border-radius:11px;box-shadow:0 14px 34px #2631472a;max-width:min(420px,calc(100vw - 40px))}
#message.error{display:block;background:#fff0ec;color:#873d2b;border:1px solid #f0c9be}
#message.ok{display:block;background:var(--olive-pale);color:var(--olive-dark);border:1px solid #d8e2ba}
#backendWarning{margin:12px auto;max-width:900px;background:#fff0ec;color:#873d2b;border:1px solid #f0c9be;border-radius:10px;padding:12px 16px}
.metrics,.dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}
.metric{padding:19px;min-width:0}.metric strong{display:block;font-size:28px;color:var(--navy);letter-spacing:-.04em;line-height:1.1;margin:14px 0 3px}.metric span{font-size:12px;color:var(--muted)}
.metric-icon{width:36px;height:36px;display:grid;place-items:center;background:var(--olive-pale);color:var(--olive-dark);border-radius:10px;font-size:18px}
.dashboard-intro{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.dashboard-intro p{margin:4px 0 0}.dashboard-date{padding:7px 12px;border:1px solid #d9e2c1;background:var(--olive-pale);border-radius:100px;color:var(--olive-dark);white-space:nowrap;font-size:12px;font-weight:600}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,1fr);gap:17px;align-items:start}
.dashboard-card{padding:20px;margin-bottom:17px}.dashboard-card h2{font-size:17px;margin:0 0 4px}.dashboard-card .subtitle{margin:0 0 15px;font-size:12px}
.dash-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 0;border-top:1px solid var(--line)}.dash-row:first-of-type{border-top:0}.dash-row strong{display:block;color:var(--navy);font-size:13px}.dash-row small{display:block;color:var(--muted);letter-spacing:0;margin-top:3px}.dash-row button{flex:0 0 auto}
.attention-count{font-weight:800;color:var(--olive-dark);font-size:20px;min-width:26px}.attention-count.warn{color:#b16b27}
.quick-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.quick-actions button{background:#fff;border-color:var(--line);color:var(--olive-dark);font-size:12px;padding:8px 10px}.quick-actions button:hover{background:var(--olive-pale)}
.dashboard-empty{padding:17px;background:#f8faf4;border-radius:10px;color:var(--muted);font-size:13px;margin-top:12px}
.coverage-item{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:14px 0;border-top:1px solid var(--line)}.coverage-item form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.coverage-item label{min-width:260px;margin:0}.coverage-item p{margin:8px 0}
pre{white-space:pre-wrap;word-break:break-word}details{margin:12px 0}summary{cursor:pointer;font-weight:600}
@media(max-width:1100px){.metrics,.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:760px){.topbar{height:70px;padding:8px 15px}.brand-logo{width:126px;height:48px}.brand-copy,.connection{display:none}.menu-toggle{display:inline-flex}.app-shell{display:block;min-height:calc(100vh - 70px)}.sidebar{position:fixed;top:70px;left:0;height:calc(100vh - 70px);width:245px;transform:translateX(-110%);transition:transform .2s;box-shadow:12px 0 32px #26314720}.sidebar.open{transform:translateX(0)}.workspace{padding:25px 16px 45px}.page-heading h1{font-size:27px}.columns{grid-template-columns:1fr}.coverage-item,.coverage-item form{align-items:stretch;flex-direction:column}.coverage-item label{min-width:0}#identity{font-size:0;gap:6px}#identity button{font-size:11px}.dashboard-intro{align-items:flex-start;flex-direction:column}.card{padding:17px}}
@media(max-width:520px){.metrics,.dashboard-metrics{grid-template-columns:1fr 1fr;gap:9px}.metric{padding:14px}.metric strong{font-size:24px}.dashboard-date{font-size:11px}.brand-logo{width:110px}.topbar{gap:5px}.dash-row{align-items:flex-start;flex-direction:column}.dash-row button{align-self:flex-start}}
.folder-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:18px}
.folder-group{border:1px solid #dce2d3;border-radius:14px;padding:16px;background:#fbfcf8;min-width:0}
.folder-group h3{margin:0 0 10px;color:#34413a}
.folder-group p{overflow-wrap:anywhere}
