*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:16px;line-height:1.5;color:var(--c-text);background:var(--c-surface)}h1{font-size:22px;line-height:1.3;margin:0 0 var(--s-md)}p{margin:0 0 var(--s-md);max-width:65ch}.muted{color:var(--c-textMuted)}.small{font-size:13px}:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px}label{display:block;font-weight:600;margin-bottom:var(--s-xs)}input,select{width:100%;min-height:44px;padding:var(--s-sm) var(--s-md);font:inherit;color:var(--c-text);background:var(--c-bg);border:1px solid var(--c-inputBorder);border-radius:var(--r-sm)}button{min-height:44px;padding:var(--s-sm) var(--s-lg);font:inherit;font-weight:600;color:var(--c-onPrimary);background:var(--c-primary);border:0;border-radius:var(--r-sm);cursor:pointer}button:hover{background:var(--c-primaryActive)}button:disabled{opacity:.6;cursor:default}button.link{background:none;color:var(--c-primary);padding:var(--s-sm) 0;text-decoration:underline}.note{min-height:1.5em;color:var(--c-textMuted);margin-top:var(--s-md)}.loading{padding:var(--s-xl)}.signin{min-height:100%;display:grid;place-items:center;padding:var(--s-lg)}.signin-card{width:100%;max-width:400px;padding:var(--s-xl);background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--r-md)}.signin-card form{display:grid;gap:var(--s-md)}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100%}.side{display:flex;flex-direction:column;gap:var(--s-sm);padding:var(--s-lg);background:var(--c-bg);border-right:1px solid var(--c-border)}.brand{font-weight:700;font-size:18px;color:var(--c-primary);margin-bottom:var(--s-md)}.ws-label{font-size:13px;color:var(--c-textMuted);font-weight:600;margin:0}.side ul{list-style:none;padding:0;margin:var(--s-md) 0 0}.side a{display:block;padding:var(--s-sm) var(--s-md);border-radius:var(--r-sm);color:var(--c-text);text-decoration:none}.side a:hover{background:var(--c-surface)}.side a.active{background:var(--c-primaryTint);color:var(--c-primaryActive);font-weight:600}.side-foot{margin-top:auto;display:grid;justify-items:start;gap:var(--s-xs);padding-top:var(--s-lg);word-break:break-all}.content{padding:var(--s-xxl)}@media(max-width:760px){.shell{grid-template-columns:1fr}.side{border-right:0;border-bottom:1px solid var(--c-border)}.content{padding:var(--s-lg)}}h2{font-size:18px;margin:var(--s-xl) 0 var(--s-sm)}.filters{display:flex;flex-wrap:wrap;gap:var(--s-md);align-items:end;margin-bottom:var(--s-lg)}.filters label{font-size:13px;display:grid;gap:var(--s-xs)}.filters select,.filters input{width:auto;min-width:140px}.table{width:100%;border-collapse:collapse;background:var(--c-bg);border:1px solid var(--c-border);margin-bottom:var(--s-lg)}.table th,.table td{text-align:left;padding:var(--s-sm) var(--s-md);border-bottom:1px solid var(--c-border);vertical-align:top}.table th{font-size:13px;color:var(--c-textMuted);font-weight:600}.table a{color:var(--c-primary);font-weight:600}.badge{display:inline-block;padding:2px var(--s-sm);border-radius:var(--r-sm);font-size:13px;font-weight:700;white-space:nowrap}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-xl);align-items:start}.detail dl{display:grid;grid-template-columns:max-content 1fr;gap:var(--s-sm) var(--s-lg);margin:0}.detail dt{color:var(--c-textMuted);font-size:13px;font-weight:600;padding-top:2px}.detail dd{margin:0}.photo{width:100%;height:auto;border-radius:var(--r-md);border:1px solid var(--c-border)}.pre{white-space:pre-wrap}@media(max-width:900px){.detail-grid{grid-template-columns:1fr}.table{display:block;overflow-x:auto}}.ai-read h3{font-size:16px;margin:var(--s-md) 0 var(--s-xs)}.ai-read .li{padding-left:var(--s-lg);position:relative}.ai-read .li:before{content:"•";position:absolute;left:var(--s-xs)}h3{font-size:16px;margin:var(--s-lg) 0 var(--s-sm)}.split{display:grid;grid-template-columns:260px 1fr;gap:var(--s-xl);align-items:start}.list{display:grid;gap:var(--s-xs)}.list-item{background:var(--c-bg);color:var(--c-text);border:1px solid var(--c-border);text-align:left;font-weight:400;display:flex;justify-content:space-between;gap:var(--s-sm)}.list-item:hover{background:var(--c-surface)}.list-item.active{background:var(--c-primaryTint);color:var(--c-primaryActive);border-color:var(--c-primary);font-weight:600}.panel{background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--s-lg);margin-bottom:var(--s-lg)}.panel h2{margin-top:0}.contact-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-sm);margin-bottom:var(--s-sm)}.row{display:flex;flex-wrap:wrap;gap:var(--s-md);align-items:center;margin-top:var(--s-md)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-md);margin-bottom:var(--s-md)}.form-grid label{font-size:13px;display:grid;gap:var(--s-xs)}.form-grid .wide{grid-column:1 / -1}button.link.danger{color:var(--c-danger)}@media(max-width:900px){.split,.contact-row,.form-grid{grid-template-columns:1fr}}.late{font-weight:700;color:var(--c-danger)}.tabs{margin-bottom:var(--s-lg)}.spacer{flex:1}.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-md);align-items:start}.board-col h2{font-size:15px;margin-top:0}.board .panel{padding:var(--s-md);margin-bottom:var(--s-sm)}.file-button{display:inline-block;margin-top:var(--s-sm);padding:var(--s-sm) var(--s-lg);background:var(--c-primary);color:var(--c-onPrimary);border-radius:var(--r-sm);font-weight:600;cursor:pointer}.file-button input{position:absolute;width:1px;height:1px;opacity:0}.file-button:focus-within{outline:3px solid var(--c-primary);outline-offset:2px}@media(max-width:900px){.board{grid-template-columns:1fr}}.panel a{color:var(--c-primary);font-weight:600}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--s-lg);align-items:start}.map{height:70vh;min-height:420px;border:1px solid var(--c-border);border-radius:var(--r-md);overflow:hidden}.map-side h2{margin-top:0}.key,.plain{list-style:none;padding:0;margin:0 0 var(--s-lg);display:grid;gap:var(--s-sm)}.dot{display:inline-block;width:14px;height:14px;border-radius:var(--r-pill);border:2px solid var(--c-bg);box-shadow:0 0 0 1px var(--c-border);vertical-align:-2px}.dot.ring{background:var(--c-primaryTint);border-color:var(--c-primary)}@media(max-width:900px){.map-layout{grid-template-columns:1fr}}.split.brand-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.color-row{display:flex;align-items:center;gap:var(--s-md);margin-bottom:var(--s-sm)}.color-row input[type=color]{width:56px;min-height:40px;padding:2px}.color-row code{color:var(--c-textMuted)}.report-preview{border:1px solid var(--c-border);border-radius:var(--r-md);overflow:hidden}.rp-head{display:flex;align-items:center;gap:var(--s-md);padding:var(--s-md) var(--s-lg)}.rp-head img{max-height:40px;max-width:140px;object-fit:contain;background:var(--c-bg);border-radius:var(--r-sm);padding:2px}.rp-nologo{font-size:13px;opacity:.8}.rp-body{padding:var(--s-lg)}.rp-title{font-weight:700;font-size:18px;margin-bottom:var(--s-xs)}.file-button+.link{margin-left:var(--s-md)}.check{display:flex!important;align-items:center;gap:var(--s-sm);font-size:15px!important;grid-column:1 / -1}.check input,.table input[type=checkbox]{width:20px;min-height:20px;height:20px}.link-button{display:inline-flex;align-items:center;min-height:44px;padding:var(--s-sm) var(--s-lg);border:1px solid var(--c-primary);border-radius:var(--r-sm);color:var(--c-primary);font-weight:600;text-decoration:none}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s-md);margin-bottom:var(--s-xl)}.tile{display:grid;gap:var(--s-xs);padding:var(--s-lg);background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--r-md);color:var(--c-text);text-decoration:none}a.tile:hover{border-color:var(--c-primary)}.tile-n{font-size:32px;font-weight:700;line-height:1}.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--s-lg)}.chart{margin:0;padding:var(--s-lg);background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--r-md)}.chart figcaption{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--s-sm)}.chart-box{position:relative}.chart svg{width:100%;height:auto;display:block}.tip{position:absolute;top:0;right:0;background:var(--c-text);color:var(--c-bg);font-size:13px;padding:var(--s-xs) var(--s-sm);border-radius:var(--r-sm)}.table.narrow{max-width:420px}.table td.num,.num{text-align:right;font-variant-numeric:tabular-nums}
