:root{--ink:#272e40;--muted:#737b8e;--purple:#6b57d8;--purple-hover:#5844c3;--purple-soft:#efedfb;--surface:#fff;--ground:#f6f7f9;--line:#e8eaf0;--warning:#99601a;--warning-bg:#fff7e8;--success:#38806a;--radius:12px;--font:'Avenir Next','Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--ink);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,svg [tabindex]:focus-visible,summary:focus-visible{outline:3px solid #9d8df0;outline-offset:3px}button:disabled{cursor:default;opacity:.4}a{color:var(--purple)}svg.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;vertical-align:middle}[data-icon]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:16px;top:-60px;z-index:100;background:white;padding:12px;border-radius:8px}.skip-link:focus{top:10px}
.app-shell{display:grid;grid-template-columns:216px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100dvh;background:#fbfbfd;border-right:1px solid var(--line);padding:30px 16px 0;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);font-size:23px;line-height:1.05;font-weight:750;letter-spacing:-.8px;padding:0 9px}.brand-sub{display:block;color:var(--muted);font-size:12px;letter-spacing:.1px;font-weight:500;line-height:1.9}.brandmark{width:38px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--purple);color:white;box-shadow:0 4px 10px #6b57d81c}.brandmark svg{width:29px;height:29px;stroke:currentColor;fill:none;stroke-width:2.3;stroke-linecap:round}.brandmark circle{fill:var(--purple)}.workspace-switch{display:flex;align-items:center;gap:9px;padding:13px 9px;border:1px solid var(--line);border-radius:9px;background:white;margin:34px 0 25px;font-size:10px}.workspace-switch strong{font-size:11px;display:block}.workspace-switch small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.workspace-symbol{background:#eceff4;border-radius:6px;display:grid;place-items:center;width:28px;height:28px;font-size:13px;font-weight:700;color:#68748b}.workspace-lock{margin-left:auto;color:#9ca4b2}.workspace-lock .icon{width:13px}nav{display:flex;flex-direction:column;gap:6px}.nav{display:flex;align-items:center;gap:11px;text-align:left;padding:11px 12px;border:0;border-radius:8px;background:transparent;color:#73798a;font-size:12px;font-weight:550;white-space:nowrap}.nav:hover{background:#f0f0f6}.nav.active{background:var(--purple-soft);color:var(--purple);font-weight:650}.nav-count{margin-left:auto;min-width:22px;padding:1px 5px;border-radius:5px;background:#e6e1fa;font-size:10px;text-align:center}.nav:not(.active) .nav-count{background:#eff0f4;color:#7b8393}.sidebar-bottom{margin-top:auto;font-size:10px}.snapshot-state{display:flex;gap:7px;align-items:flex-start;padding:20px 6px;color:#626d7d}.status-dot{display:inline-block;width:6px;height:6px;background:#5ba58e;border-radius:50%;flex-shrink:0}.snapshot-state .status-dot{margin-top:5px}.sidebar-bottom small{display:block;color:#939aa8;font-size:10px;margin-top:3px}.session{border-top:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:19px 5px}.session-avatar{background:#e9e6f6;color:#8072ac;width:31px;height:31px;border-radius:50%}.main-shell{min-width:0}.topbar{height:69px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#ffffffbf;gap:16px}.breadcrumb,.topbar-right{display:flex;align-items:center;gap:13px;font-size:11px;color:#8b93a3}.breadcrumb strong{font-weight:550;color:#525c70}.breadcrumb>.icon{width:16px}.slash{color:#c6cbd5}.topbar-right{gap:20px}.city{display:flex;align-items:center;gap:5px;color:#6e7789}.city .icon{width:14px}.local-badge{display:flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid var(--line);border-radius:6px;background:white;color:#717a8a;font-size:10px}.local-badge .status-dot{background:#ad9be9}
main{padding:18px 28px 28px;max-width:1920px;margin:auto}.notice{display:flex;align-items:center;gap:9px;color:#7e879a;font-size:11px;padding:0 0 4px;position:relative}.notice>.icon,.notice>[data-icon]{color:#9893ad}.notice .icon{width:14px;height:14px}.notice-detail{margin-left:auto;flex-shrink:0}.notice-detail summary{cursor:pointer;color:#74708a}.notice-detail p{position:absolute;right:0;top:25px;z-index:5;background:white;border:1px solid var(--line);box-shadow:0 10px 35px #2833471a;border-radius:8px;padding:16px;max-width:340px;color:#677189;font-size:12px}.view-heading{display:flex;justify-content:space-between;align-items:center;gap:22px;margin:26px 0 24px}.view-heading h1{margin:0 0 7px;font-size:29px;line-height:1.2;letter-spacing:-1px;font-weight:650}.view-heading p{margin:0;color:#8b92a0;font-size:12px}.heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.badge{font-size:10px;color:#8790a0;white-space:nowrap}.secondary,.primary{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:7px;padding:9px 12px;font-size:11px;font-weight:600;line-height:1.5;white-space:nowrap}.secondary{border:1px solid #dedfe8;background:white;color:#616b7f;box-shadow:0 1px 2px #242e4404}.secondary .icon,.primary .icon{width:15px;height:15px}.secondary:hover{background:#f7f6fc;border-color:#c6bee7}.primary{border:1px solid var(--purple);background:var(--purple);color:white;box-shadow:0 3px 5px #6b57d815}.primary:hover{background:var(--purple-hover)}
.review-layout{display:grid;grid-template-columns:230px minmax(0,1fr) 286px;align-items:start;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);overflow:clip;box-shadow:0 3px 12px #29344b03}.requests{align-self:stretch;background:#fcfcfe;border-right:1px solid var(--line);padding:0 12px 12px}.queue-toggle{border:0;background:none;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:19px 4px 17px;cursor:default}.queue-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:12px}.queue-title .icon{width:15px;height:15px;color:#8c93a2}#queue-count{font-size:10px;font-weight:500;background:#edf0f4;color:#9097a6;padding:1px 6px;border-radius:4px}.queue-chevron{display:none}.search-field{position:relative;display:flex;align-items:center;gap:8px}.search-field>[data-icon]{position:absolute;left:10px;pointer-events:none;color:#9ba1b0}.search-field .icon{width:15px;height:15px}.search-field input{padding-left:33px}input,select,textarea{width:100%;border:1px solid #e0e3eb;border-radius:6px;background:white;color:#444e65;padding:9px 10px;font-size:11px;transition:border-color .15s}input::placeholder,textarea::placeholder{color:#9ba2b1}input:focus,select:focus,textarea:focus{border-color:#9c8ce3}textarea{resize:vertical;line-height:1.65;min-height:100px}.filter-row{display:flex;align-items:center;gap:7px;padding:11px 0}.filter-row label{margin:0;color:#a0a6b2;font-size:10px;flex-shrink:0}.filter-row select{border:0;background:transparent;padding:3px 1px;font-size:10px;color:#727a8c;width:100%;cursor:pointer}#case-list{max-height:850px;overflow:auto;scrollbar-width:thin;scrollbar-color:#dce0e9 transparent}.case{position:relative;display:block;width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:7px;padding:13px 11px;margin-bottom:4px;color:#667086}.case:hover{background:#f4f4f9}.case.selected{background:var(--purple-soft);border-color:#e7e1fa;color:#4c428b}.case-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}.case-index{color:#9da4b2;font-size:10px}.case-state{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-size:9px;color:#9a854d}.case-state .icon{width:11px;height:11px}.case strong{display:block;font-size:11px;line-height:1.6;font-weight:550}.case.selected strong{font-weight:650}.case small{display:flex;gap:6px;align-items:center;font-size:9px;color:#9ba2b1;margin-top:7px}.case small .icon{width:10px;height:10px}.case.selected small{color:#8c80b9}.case .route-state-dot{width:4px;height:4px;border-radius:50%;background:#75ab94}.case .route-state-dot.failed{background:#b5b9c4}.queue-empty{padding:25px 8px;font-size:11px;color:var(--muted)}.queue-empty strong{display:block;color:#515d72;margin-bottom:6px}
.route-work{padding:22px 24px;min-width:0}#request-card h2{font-size:20px;letter-spacing:-.45px;line-height:1.45;font-weight:650;margin:8px 0 13px}.route-topline{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;color:#969eae}.route-snapshot{color:#7d8e86;display:inline-flex;align-items:center;gap:4px}.route-snapshot .icon{width:12px;height:12px}.request-meta{display:flex;flex-wrap:wrap;gap:6px 12px;margin:12px 0}.tag{font-size:10px;display:inline-flex;align-items:center;gap:5px;color:#8b93a4;white-space:nowrap}.tag .icon{width:13px;height:13px;color:#969eae}.required-categories{display:flex;flex-wrap:wrap;gap:5px;margin:13px 0}.category-chip{border:1px solid #e5e4ed;padding:3px 7px;border-radius:5px;font-size:9px;color:#8a849e;background:#fcfbff}.warning{display:flex;align-items:flex-start;gap:8px;background:var(--warning-bg);color:#a48145;border:1px solid #f2e9d5;padding:10px 11px;border-radius:6px;font-size:10px;margin:15px 0 6px}.warning .icon{width:14px;height:14px;margin-top:1px}.warning strong{font-weight:600;display:block;color:#97713a;margin-bottom:1px}.map-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:19px 0 11px;font-size:11px}.map-head strong{display:flex;align-items:center;gap:6px;font-weight:550;color:#5d667b}.map-head>span{color:#9da4b1;font-size:9px}.map-head .status-dot{width:5px;height:5px;background:#9a88dd}.map-frame{position:relative;border:1px solid #e4e8eb;border-radius:9px;overflow:hidden;background:#f2f3ef}#map{position:relative;min-height:330px}#map svg.map-svg{display:block;width:100%;height:350px;touch-action:none;cursor:grab}#map svg.map-svg.dragging{cursor:grabbing}.map-caption{position:absolute;bottom:0;right:0;background:#ffffffbf;padding:2px 6px;font-size:8px;color:#8b949b;pointer-events:none}.map-caption a{pointer-events:auto;color:inherit}.map-controls{position:absolute;top:13px;right:12px;display:flex;flex-direction:column;box-shadow:0 2px 7px #37415116;border:1px solid #dfe3e6;border-radius:7px;overflow:hidden}.map-controls button{display:grid;place-items:center;width:30px;height:30px;border:0;background:#ffffffed;border-bottom:1px solid #e9ebee;color:#6e788a}.map-controls button:last-child{border-bottom:0}.map-controls button:hover{background:#eeeafa;color:var(--purple)}.map-controls .icon{width:15px;height:15px}.map-hint{position:absolute;bottom:24px;left:11px;display:flex;align-items:center;gap:5px;background:#ffffffde;border:1px solid #e7e8ea;border-radius:5px;padding:5px 7px;color:#8d92a0;font-size:8px;pointer-events:none}.legend-line{width:13px;height:3px;border-radius:2px;background:#8873de}.legend-dot{width:6px;height:6px;border:2px solid #dfa047;border-radius:50%;margin-left:6px}.map-leg-halo{fill:none;stroke:white;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.map-leg{cursor:pointer;fill:none;stroke:#8d78db;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.map-leg.selected{stroke:#d69b49;stroke-width:5}.map-leg-hit{stroke:transparent;stroke-width:17;fill:none;cursor:pointer;pointer-events:stroke}.map-marker{cursor:pointer;filter:drop-shadow(0 2px 3px #4f476b24)}.map-marker circle{fill:white;stroke:#8c74d9;stroke-width:2}.map-marker text{fill:#7961c7;pointer-events:none}.map-marker.selected circle{fill:#d69b49;stroke:white;stroke-width:3}.map-marker.selected text{fill:white}.map-location-label{fill:#758087;font-size:10px;font-weight:500;paint-order:stroke;stroke:#f4f4ef;stroke-width:4px;pointer-events:none}.map-road-label{fill:#a0a6a6;font-size:9px;paint-order:stroke;stroke:#f5f5f0;stroke-width:3px;pointer-events:none}.map-scale{fill:#8c959a;font-size:9px}.map-empty .map-controls,.map-empty .map-hint{display:none}.metric-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:20px 0 16px;border-bottom:1px solid var(--line)}.metric-row>div{border-right:1px solid var(--line);padding-right:6px}.metric-row>div:last-child{border:0}.metric-row span{display:flex;align-items:center;gap:5px;color:#949bab;font-size:9px;margin-bottom:5px}.metric-row .icon{width:12px;height:12px}.metric-row strong{font-size:19px;line-height:1.3;font-weight:550;letter-spacing:-.5px;display:block;color:#4b546b}.metric-row .unknown{font-size:13px;letter-spacing:0;color:#959baa;padding-top:4px}.audit-note{display:flex;gap:5px;align-items:flex-start;font-size:9px;color:#a1a7b3;margin:9px 0 0}.audit-note .icon{width:11px;height:11px;margin-top:2px}.timeline-heading{display:flex;align-items:center;justify-content:space-between;margin:24px 0 14px}.timeline-heading h3{font-size:12px;margin:0;font-weight:600}.timeline-heading>span{font-size:10px;color:#a1a7b4}.timeline-item{position:relative;display:grid;grid-template-columns:26px 1fr;gap:9px;width:100%;text-align:left;border:1px solid transparent;background:transparent;border-radius:7px;color:#677087;padding:10px 7px 10px 2px}.timeline-item:hover{background:#f9f8fd}.timeline-item.selected{background:#f4f0fc;border-color:#ece5f9}.stop-number{display:grid;place-items:center;width:23px;height:23px;border:1px solid #d8d0ee;background:white;color:#8d78b5;border-radius:50%;font-size:10px;z-index:1}.timeline-item.selected .stop-number{background:#dac397;border-color:#dac397;color:white}.stop-time{color:#a3a9b6;font-size:9px;display:block;margin-bottom:3px}.timeline-item strong{display:block;color:#60697c;font-weight:550;font-size:11px;line-height:1.6}.timeline-item small{display:flex;align-items:center;flex-wrap:wrap;gap:5px;font-size:9px;color:#a0a6b3;margin-top:4px}.timeline-item small .icon{width:11px;height:11px}.leg-row{position:relative;width:100%;text-align:left;border:0;background:none;padding:6px 8px 6px 36px;color:#b1b6c1;font-size:9px;border-radius:5px;display:flex;align-items:center;gap:6px}.leg-row .icon{width:11px;height:11px}.leg-row:before{content:'';position:absolute;left:13px;top:-5px;bottom:-5px;border-left:1px dashed #d9d3e7}.leg-row:hover,.leg-row.selected{background:#fff8ec;color:#b18d55}.evidence{margin-top:22px;border-top:1px solid var(--line);padding-top:16px;font-size:10px;color:#9097a6}.evidence summary{display:flex;align-items:center;gap:7px;cursor:pointer;list-style:none}.evidence summary:after{content:'+';margin-left:auto}.evidence[open] summary:after{content:'−'}.evidence summary .icon{width:14px;height:14px}pre{white-space:pre-wrap;overflow-wrap:anywhere;font:10px/1.65 var(--font);background:#f7f8fb;padding:13px;border-radius:6px}
.annotations{align-self:stretch;border-left:1px solid var(--line);padding:23px 19px;background:#fefeff}.annotation-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.annotation-top h2{font-size:13px;display:flex;gap:7px;align-items:center;margin:0;font-weight:600}.annotation-top h2 .icon{color:#9290a7;width:15px;height:15px}.annotation-top>span{font-size:9px;color:#aaaeb9}.annotation-intro{font-size:10px;color:#a0a6b3;line-height:1.7;margin:10px 0 20px;max-width:40ch}.target-wrap{border:1px solid #e8e4f2;background:#faf9fd;border-radius:7px;padding:11px 12px;margin-bottom:19px}.target-label{font-size:9px;color:#a09ab1}.target{font-size:11px;font-weight:550;line-height:1.6;color:#6c6288;margin:3px 0 7px}.subtle{border:0;background:none;padding:0;text-align:left;font-size:9px;color:#b0a4cc}.subtle:hover{color:var(--purple)}label{display:block;font-size:10px;font-weight:550;color:#838b9a;margin:14px 0 6px}.optional{font-size:9px;font-weight:400;color:#b2b7c1;margin-left:4px}.annotations .primary{width:100%;margin-top:15px;padding:10px;font-size:11px}.form-note{display:flex;gap:5px;font-size:9px;line-height:1.6;color:#a7acb7;margin:10px 0 0}.form-note .icon{width:11px;height:11px;margin-top:2px}.notes-heading{font-size:10px;font-weight:550;color:#858c9b;border-top:1px solid var(--line);padding-top:20px;margin-top:23px}.review-note{padding:13px 0;border-bottom:1px solid var(--line)}.review-note p{font-size:10px;color:#7d8597;line-height:1.75;white-space:pre-wrap;margin:8px 0}.review-note small{font-size:8px;color:#a6adba}.review-note button{padding:6px 0 0;font-size:9px;border:0;background:transparent;color:#9b8fbd}.note-anchor{display:flex;align-items:center;gap:5px;font-size:9px;color:#9f92b7}.note-anchor .icon{width:12px;height:12px}.empty{padding:25px 4px;color:#a5adba;font-size:10px;line-height:1.8}.empty h2{font-size:15px;color:#768096}.empty p{max-width:42ch}.empty-icon{color:#c4bcda;margin-bottom:9px}.empty-icon .icon{width:24px;height:24px}#form-status,#export-status{font-size:10px;color:var(--success);line-height:1.65}.hidden{display:none!important}.record{background:white;border:1px solid var(--line);padding:24px;margin:16px 0;border-radius:10px}.record h2{font-size:16px;letter-spacing:-.3px;margin:0 0 12px;font-weight:600}.record p{color:#9098a9;font-size:12px;max-width:75ch}.record dl{display:grid;grid-template-columns:180px 1fr;gap:13px;font-size:12px}.record dt{color:#939bab}.record dd{margin:0;overflow-wrap:anywhere;color:#647087}.planned{display:flex;gap:13px;background:#eeedf7;border:1px solid #e6e3f1;padding:20px;border-radius:9px;margin:20px 0;color:#8e83ae}.planned>.icon,.planned>[data-icon]{align-self:flex-start}.planned h2{font-size:13px;color:#7f759c;font-weight:600;margin:0 0 6px}.planned p{font-size:11px;color:#9a92ad;line-height:1.8;max-width:85ch;margin:0}.flow{display:grid;grid-template-columns:repeat(4,1fr);margin:26px 0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:white}.flow>div{padding:21px;border-right:1px solid var(--line)}.flow>div:last-child{border:0}.flow>div>[data-icon]{color:#a89bce;background:#f1eef9;padding:7px;border-radius:7px;margin-bottom:14px}.flow strong{display:block;font-size:12px;font-weight:550}.flow p{font-size:10px;color:#a0a7b4;margin-bottom:0}table{border-collapse:collapse;width:100%;font-size:11px}th,td{padding:14px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-weight:500;color:#9aa2b1;background:#fafbfe}td{color:#778195}.place-search{max-width:380px;margin:0 0 25px}#place-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}#place-list .record{margin:0}.place-meta{font-size:10px;color:#9b94ad}.record .source-link{display:inline-flex;gap:5px;align-items:center;font-size:11px;color:#8b7ab4;text-decoration:none}.record .source-link .icon{width:12px}.record details{font-size:10px;color:#a4a9b5}.record details summary{cursor:pointer}.data-empty{padding:30px;text-align:center}.data-empty h2{font-size:15px;color:#727d92}.data-empty p{font-size:12px;margin:auto;color:#a5adba}.dataset-counts{font-size:11px;color:#959dab;margin-bottom:20px}.dataset-counts strong{color:#7762b9;font-size:18px;font-weight:600;margin-right:4px}footer{display:flex;justify-content:space-between;gap:15px;padding:0 28px 20px;color:#b0b6c2;font-size:9px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:12px 20px;background:#514477;color:white;border:1px solid #6d608e;border-radius:9px;box-shadow:0 5px 25px #33285126;z-index:20;font-size:12px;max-width:90vw}.toast[hidden]{display:none}.mobile-jump{display:none}
@media(min-width:1650px){.review-layout{grid-template-columns:260px minmax(0,1fr) 310px}.route-work{padding:25px 30px}#map svg.map-svg{height:430px}.case strong{font-size:12px}.annotations{padding:25px 23px}.annotations label{font-size:11px}.annotations input,.annotations select,.annotations textarea{font-size:12px}}
@media(max-width:1320px){.app-shell{grid-template-columns:185px minmax(0,1fr)}.sidebar{padding-left:12px;padding-right:12px}.workspace-switch{padding:11px 7px}.workspace-switch small{font-size:9px}.workspace-lock{display:none}.nav{padding:11px 9px;gap:8px;font-size:11px}.topbar{padding:0 20px}main{padding:18px 20px 25px}.review-layout{grid-template-columns:205px minmax(0,1fr) 250px}.route-work{padding:20px 18px}.annotations{padding:22px 15px}.view-heading h1{font-size:27px}.heading-actions{gap:8px}.heading-actions .badge{display:none}#map svg.map-svg{height:330px}.map-hint{font-size:7px;gap:4px}.case{padding:11px 9px}.metric-row strong{font-size:17px}}
@media(max-width:1120px){.app-shell{grid-template-columns:76px minmax(0,1fr)}.sidebar{padding:25px 10px 0}.brand{padding:0;justify-content:center}.brand>span:last-child,.workspace-switch,.nav>span:not(:first-child),.snapshot-state,.session>span:last-child{display:none}.brandmark{width:36px;height:39px}.sidebar nav{margin-top:40px;gap:10px}.nav{padding:14px;justify-content:center}.nav .icon{width:19px;height:19px}.session{justify-content:center;padding:18px 0}.view-heading{gap:16px}.review-layout{grid-template-columns:198px minmax(0,1fr) 240px}.annotations{padding:21px 14px}.route-work{padding:20px 16px}.view-heading p{max-width:45ch}.map-hint{display:none}.map-controls{top:10px;right:10px}.topbar-right .city{display:none}}
@media(max-width:940px){.review-layout{grid-template-columns:220px minmax(0,1fr)}.annotations{grid-column:2;border-top:1px solid var(--line);border-left:0;background:#fcfcff;padding:24px}.requests{grid-row:1/3}.annotation-intro{max-width:65ch}.annotations form{display:grid;grid-template-columns:1fr 1fr;column-gap:15px}.annotations form label,.annotations form textarea,.annotations form input,.annotations form button,.annotations form p{grid-column:1/-1}.annotations form select{grid-column:auto}#map svg.map-svg{height:340px}.route-work{padding:22px}.map-hint{display:flex}.heading-actions .secondary{display:none}#place-list{grid-template-columns:1fr}.view-heading h1{font-size:25px}.flow>div{padding:15px}.flow p{font-size:9px}}
@media(max-width:700px){.app-shell{display:block}.sidebar{position:static;height:auto;display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;padding:16px 18px 0;background:white;border-right:0;border-bottom:1px solid var(--line)}.brand{justify-content:flex-start}.brand>span:last-child{display:block;font-size:20px}.brand-sub{font-size:10px}.brandmark{width:33px;height:37px;border-radius:10px}.sidebar nav{grid-column:1/-1;margin:0;flex-direction:row;justify-content:space-between;gap:5px}.nav{flex:1;padding:13px 7px;border-radius:0;border-bottom:2px solid transparent;gap:7px;font-size:10px}.nav.active{background:white;border-bottom-color:var(--purple)}.nav>span:nth-child(2){display:inline}.nav .icon{width:16px;height:16px}.sidebar-bottom{grid-row:1;grid-column:2}.session{border:0;padding:0}.session-avatar{width:28px;height:28px}.topbar{height:45px;padding:0 18px;background:#fafbfc}.breadcrumb{gap:8px;font-size:9px}.breadcrumb>[data-icon]{display:none}.local-badge{font-size:8px;padding:3px 6px;gap:4px}.topbar-right{gap:0}main{padding:13px 14px 25px}.notice{font-size:9px;line-height:1.7;gap:6px;align-items:flex-start}.notice>[data-icon]{margin-top:2px}.notice-detail{display:none}.view-heading{margin:23px 3px 20px}.view-heading h1{font-size:25px}.view-heading p{font-size:11px;max-width:38ch;line-height:1.8}.heading-actions{display:none}.review-layout{display:flex;flex-direction:column;overflow:clip}.requests{width:100%;padding:0 14px;border-right:0;border-bottom:1px solid var(--line)}.queue-toggle{cursor:pointer;padding:15px 2px}.queue-title{font-size:11px}.queue-chevron{display:inline-flex;color:#a3a9b6}.queue-chevron .icon{width:14px}.queue-toggle[aria-expanded=true] .queue-chevron{transform:rotate(180deg)}#queue-body{display:none;padding-bottom:12px}.requests.queue-open #queue-body{display:block}#case-list{max-height:300px}.case strong{font-size:12px}.case-top{margin-bottom:3px}.case small{margin-top:4px}.route-work{padding:18px 16px;width:100%}#request-card h2{font-size:21px;line-height:1.45;letter-spacing:-.6px;margin:9px 0 12px}.route-topline{font-size:9px}.route-snapshot{font-size:8px}.request-meta{gap:7px 12px}.tag{font-size:10px}.category-chip{font-size:9px}.mobile-jump{display:block;margin-top:14px}.mobile-jump .secondary{font-size:10px;padding:7px 10px}.warning{font-size:9px}.map-head{font-size:10px;gap:5px}.map-head>span{font-size:8px}#map svg.map-svg{height:335px}.map-hint{font-size:7px;left:8px;bottom:23px;padding:4px 5px}.map-controls{top:10px;right:8px}.metric-row{gap:6px}.metric-row strong{font-size:18px}.metric-row .unknown{font-size:12px}.metric-row span{font-size:8px;gap:3px}.metric-row .icon{width:10px;height:10px}.audit-note{font-size:8px}.timeline-item strong{font-size:12px}.timeline-item small,.stop-time{font-size:10px}.leg-row{font-size:9px;padding-top:8px;padding-bottom:8px}.annotations{width:100%;padding:23px 18px}.annotations form{display:block}.annotation-top h2{font-size:14px}.annotations input,.annotations select,.annotations textarea{font-size:12px;padding:10px}.annotations label{font-size:11px}.target{font-size:12px}.annotation-intro{font-size:11px}.form-note{font-size:10px}.review-note p{font-size:12px}.review-note small{font-size:9px}.annotations .primary{font-size:12px}.review-note button{font-size:10px}.empty{font-size:11px}.flow{grid-template-columns:1fr 1fr;gap:0}.flow>div{border-bottom:1px solid var(--line)}.flow>div:nth-child(2){border-right:0}.flow>div:nth-child(3){border-bottom:0}.flow p{font-size:10px}.view:not(#review)>.view-heading{display:block}.view:not(#review)>.view-heading>.primary{margin-top:16px}.view:not(#review)>.view-heading>.badge{display:inline-block;margin-top:10px}.record{padding:18px}.record dl{grid-template-columns:1fr;gap:4px}.record dd{margin-bottom:12px}.record h2{font-size:16px}.record table{display:block;overflow:auto}.record th,.record td{min-width:85px}.record td:nth-child(2){min-width:200px}footer{padding:0 18px 20px;font-size:8px}footer>span:last-child{max-width:23ch;text-align:right}}
@media(max-width:400px){.nav{gap:5px;font-size:9px;padding:12px 3px}.nav .icon{width:14px;height:14px}.breadcrumb>span:first-of-type:not([data-icon]){max-width:115px;overflow:hidden;white-space:nowrap}.local-badge{font-size:7px}.map-hint{display:none}.route-work{padding:16px 13px}.metric-row span{font-size:7px}.metric-row .icon{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* A readable research desk: secondary text still carries useful information. */
:root{--muted:#626c80}
.breadcrumb,.city{color:#6d778a}.breadcrumb strong{color:#48546a}.badge{color:#737d90}.notice{color:#758095}.view-heading p{color:#737e91}.nav{font-size:12px;color:#697285}.workspace-switch strong{font-size:12px}.workspace-switch small{color:#7e889b}.session,.snapshot-state{font-size:11px}.sidebar-bottom small{color:#7d8799}.local-badge{color:#747d8f}.case strong{font-size:12px;color:#576078}.case.selected strong{color:#5e4e99}.case-index{color:#8b94a6;font-size:10px}.case small{font-size:10px;color:#828c9e}.case-state{font-size:10px;color:#92743b}.case.selected small{color:#81739f}#case-list{max-height:calc(100dvh - 395px);min-height:350px}.search-field input{font-size:12px}.filter-row select,.filter-row label{font-size:11px;color:#7a8396}.queue-title{font-size:13px}.route-topline{font-size:11px;color:#8a94a5}.route-snapshot{color:#7d8983}.tag{font-size:11px;color:#798396}.category-chip{font-size:10px;color:#857a9b}.warning{font-size:11px;color:#927446}.warning strong{color:#8c672e}.map-head strong{font-size:12px;color:#657084}.map-head>span{font-size:10px;color:#8b94a3}.metric-row span{color:#7d889b;font-size:10px}.metric-row strong{color:#4c566e}.metric-row .unknown{color:#80899c}.audit-note{color:#8b94a3;font-size:10px}.timeline-item strong{font-size:12px;color:#5a657c}.timeline-item small,.stop-time{font-size:10px;color:#828c9e}.leg-row{color:#939caf;font-size:10px}.timeline-heading h3{font-size:13px}.timeline-heading>span{font-size:11px;color:#8c95a5}.annotation-top h2{font-size:14px}.annotation-top>span{color:#9099aa;font-size:10px}.annotation-intro{font-size:11px;color:#8b94a5}.target-label{color:#958ca6;font-size:10px}.target{font-size:12px;color:#6e618b}.subtle{color:#9987b8;font-size:10px}label{font-size:11px;color:#737f93}input,select,textarea{font-size:12px;color:#626c81}input::placeholder,textarea::placeholder{color:#99a2b2}.optional{color:#9ba4b4;font-size:10px}.form-note{color:#8d97a9;font-size:10px}.notes-heading{color:#818b9e;font-size:11px}.review-note p{font-size:11px;color:#748097}.review-note small{font-size:9px;color:#909bad}.review-note button{font-size:10px;color:#8a77ac}.note-anchor{font-size:10px;color:#9282a9}.empty{color:#929bad;font-size:11px}.record p{color:#7a8599}.planned p{color:#8b819f}.flow p{color:#8993a6}.record details{color:#8892a4}
@media(max-width:1320px){.case strong{font-size:11px}.nav{font-size:11px}.tag{font-size:10px}.warning{font-size:10px}.annotations input,.annotations select,.annotations textarea{font-size:11px}}
@media(max-width:940px){#case-list{max-height:calc(100dvh - 380px);min-height:350px}.case strong{font-size:12px}}
@media(max-width:700px){.nav{font-size:10px}#case-list{max-height:300px;min-height:0}.tag{font-size:11px}.view-heading p{font-size:12px}.route-topline{font-size:10px}.route-snapshot{font-size:9px}.warning{font-size:11px}.map-head strong{font-size:11px}.map-head>span{font-size:9px}.metric-row span{font-size:9px}.metric-row strong{font-size:19px}.annotations input,.annotations select,.annotations textarea{font-size:13px}.annotation-intro{font-size:12px}.target{font-size:13px}.review-note p{font-size:12px}.form-note{font-size:11px}.notice{font-size:10px}.annotation-top h2{font-size:15px}.timeline-item strong{font-size:13px}.timeline-item small,.stop-time{font-size:11px}.leg-row{font-size:11px}.empty{font-size:12px}}
@media(max-width:400px){.nav{font-size:9px}.tag{font-size:10px}.metric-row span{font-size:8px}.notice{font-size:9px}}
/* Text that informs a decision keeps at least a 4.5:1 contrast on white. */
.notice,.view-heading p,.badge,.case-index,.case small,.filter-row label,.filter-row select,.route-topline,.tag,.map-head>span,.metric-row span,.metric-row .unknown,.audit-note,.timeline-item small,.stop-time,.leg-row,.timeline-heading>span,.annotation-top>span,.annotation-intro,label,.optional,.form-note,.notes-heading,.review-note small,.empty,.evidence,.record dt,.record p,.record details,.flow p,.dataset-counts,td,.place-meta,.sidebar-bottom small,.session,.snapshot-state,.local-badge,.breadcrumb,.breadcrumb strong,.city,.workspace-switch small,footer{color:#697386}
input::placeholder,textarea::placeholder{color:#737b8b}.target-label{color:#7f718e}.subtle,.review-note button,.note-anchor{color:#7e6a9e}.case.selected small{color:#7a689b}.warning,.warning strong{color:#855f28}.planned h2,.planned p{color:#79688e}.map-head strong{color:#5f6c81}.map-hint{color:#697386}.map-caption{color:#63717b}.map-road-label{font-size:12px;fill:#828d91}.case-index{font-size:10px}.case strong{line-height:1.7}#map{height:350px;min-height:0}#map svg.map-svg{height:100%}
@media(min-width:1650px){#map{height:430px}}
@media(max-width:1320px){#map{height:330px}}
@media(max-width:940px){#map{height:340px}}
@media(max-width:700px){#map{height:335px}.notice{font-size:10px}.nav{font-size:10px}}
@media(max-width:400px){.notice{font-size:10px}.nav{font-size:9px}}
.nav-label-mobile{display:none}
@media(max-width:700px){.nav-label-mobile{display:inline}.nav-label-full{display:none}.nav{font-size:11px;min-height:45px}.nav .icon{width:16px;height:16px}.map-controls button{width:38px;height:38px}.annotations input,.annotations select,.annotations textarea{font-size:16px}.annotations label{font-size:12px}.annotations .primary{min-height:44px}.annotations .subtle{padding:4px 0}.timeline-item{min-height:52px}}
@media(max-width:360px){.nav{font-size:10px;gap:4px}.breadcrumb{font-size:8px}}
.map-marker.selected text{fill:#674311}.timeline-item.selected .stop-number{color:#674311}
@media(max-width:700px){.mobile-jump{margin-top:12px}.mobile-jump .secondary{width:100%;min-height:40px}.map-hint{font-size:8px}}
/* Shared Studio: the map workspace stays primary; actions live in quiet dialogs. */
[hidden]{display:none!important}.auth-screen{min-height:100dvh;display:grid;place-items:center;padding:30px 16px;background:#f3f3f8}.auth-card{width:min(100%,420px);padding:36px;border:1px solid #e7e5ee;border-radius:16px;background:white;box-shadow:0 12px 50px #40335908}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:32px;font-size:19px;letter-spacing:-.5px}.auth-logo{display:grid;place-items:center;background:#6b57d8;color:white;width:38px;height:42px;border-radius:12px;font-size:24px;font-weight:700;letter-spacing:-2px}.auth-card h1{font-size:25px;line-height:1.3;letter-spacing:-.6px;margin:0 0 10px}.auth-card>p{font-size:12px;color:#697386}.auth-card input{font-size:15px;padding:11px 12px}.auth-card label{margin-top:19px;font-size:12px}.auth-card .primary{width:100%;margin-top:26px;padding:12px;font-size:13px}.auth-card .auth-privacy{border-top:1px solid var(--line);padding-top:22px;margin-top:28px;font-size:10px}.auth-help{background:#f3f1fa;border-radius:8px;padding:12px;line-height:1.8}#login-status,#generate-error,#edit-error,#team-error{color:#9c4949;font-size:12px;line-height:1.7}.global-actions{display:flex;justify-content:flex-end;gap:9px;margin:20px 0 0}.global-actions .primary{font-size:12px;padding:10px 15px}#team-mobile{display:none}#global-error{padding:12px 14px;background:#fff0ef;border:1px solid #f2deda;border-radius:8px;font-size:12px;color:#9b5351}.job-banner{display:flex;align-items:center;gap:10px;margin-top:17px;padding:12px 16px;background:#efecfa;border:1px solid #e1dbf3;border-radius:8px;color:#716294;font-size:12px}.job-banner .subtle{margin-left:auto}.job-spinner{width:13px;height:13px;border:2px solid #d6ceed;border-top-color:#8772c5;border-radius:50%;animation:job-spin 1s linear infinite}@keyframes job-spin{to{transform:rotate(360deg)}}.status-dot.offline{background:#c19668}.team-button,.logout-button{width:100%;font-size:11px}.sidebar-bottom .nav{font-size:11px}#repeat-request{margin:5px 0 8px;font-size:10px}.review-author{display:flex;align-items:center;gap:6px;margin-bottom:10px}.author-avatar{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#eee9f8;color:#8870b4;font-size:10px;flex-shrink:0}.review-author strong{font-size:10px;font-weight:600;color:#657085}.review-author>span:last-child{margin-left:auto;color:#80899c;font-size:9px}.review-actions{display:flex;flex-wrap:wrap;gap:10px}.review-note .source-link{font-size:10px;color:#7f6a9f}.review-note .source-link .icon{width:11px}.table-scroll{overflow:auto}.run-record-top{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.run-record-top h2{margin-bottom:6px}.run-state{display:inline-block;white-space:nowrap;font-size:10px;padding:4px 8px;border-radius:5px;background:#eef3f0;color:#658273}.run-state.state-queued,.run-state.state-running{background:#f2eefa;color:#8773ad}.run-state.state-failed{background:#fff0ed;color:#a26458}.run-actions{margin:14px 0}.run-record details{margin-top:17px;font-size:11px;color:#788298}.run-record summary{cursor:pointer}.map-empty-message{padding:65px 28px}.studio-dialog{border:1px solid #e6e2ed;border-radius:15px;padding:0;width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 48px);color:var(--ink);box-shadow:0 25px 100px #25203326;background:#fff;overflow:auto}.studio-dialog::backdrop{background:#2a293c55;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:24px 28px 20px;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:2}.dialog-heading h2{font-size:20px;font-weight:600;letter-spacing:-.5px;margin:0 0 5px}.dialog-heading p{font-size:12px;color:#758095;margin:0}.icon-button{border:0;background:#f4f4f9;width:29px;height:29px;border-radius:7px;font-size:22px;line-height:1;color:#8a8499;flex-shrink:0}.dialog-body{padding:8px 28px 24px}.dialog-body label{font-size:12px;color:#657185;margin-top:18px}.dialog-body input,.dialog-body select,.dialog-body textarea{font-size:13px;padding:11px}.dialog-footer{display:flex;justify-content:flex-end;gap:10px;padding:18px 28px;background:#faf9fc;border-top:1px solid var(--line);position:sticky;bottom:0;z-index:2}.dialog-footer .primary,.dialog-footer .secondary{font-size:12px;padding:10px 16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.category-fieldset{margin:26px 0 0;padding:0;border:0}.category-fieldset legend{font-size:12px;color:#657185;font-weight:550;margin-bottom:5px}.category-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:9px}.category-options .check-option{display:flex;align-items:center;gap:7px;border:1px solid #e7e4ef;border-radius:6px;padding:9px;font-size:11px;margin:0;color:#788098;cursor:pointer}.check-option:has(input:checked){background:#f0ecfb;border-color:#c6b9ed;color:#756095}.check-option input{width:13px;height:13px;accent-color:var(--purple);margin:0;padding:0;flex-shrink:0}.check-option .icon{width:14px;height:14px}.advanced-fields{margin-top:25px;border-top:1px solid var(--line);padding-top:18px}.advanced-fields summary{font-size:12px;color:#817396;cursor:pointer}.advanced-fields select[multiple]{min-height:130px}.generation-disclosure{margin-top:25px;padding:12px;background:#f6f5fa;border-radius:7px;color:#7d768d;font-size:11px;line-height:1.8}.small-dialog{width:min(510px,calc(100vw - 32px))}.team-member{display:flex;align-items:center;gap:10px;padding:15px 0;border-bottom:1px solid var(--line)}.team-member strong{font-size:13px;font-weight:550}.team-member small{display:block;font-size:11px;color:#7e8899;margin-top:3px}.member-role{margin-left:auto;font-size:10px;color:#8b7aa3}.team-member .author-avatar{width:32px;height:32px;font-size:13px}#create-invite{margin-top:22px}#invite-result{background:#f7f5fc;border:1px solid #e8e3f3;padding:13px;border-radius:8px;margin-top:20px}#invite-result label{margin-top:0}#invite-url{font-size:11px}#invite-result .secondary{margin-top:10px}.history-item{padding:18px 0;border-bottom:1px solid var(--line)}.history-item strong{font-size:12px;font-weight:550}.history-item small{display:block;color:#8b94a4;font-size:10px;margin-top:6px}.history-item p{font-size:12px;line-height:1.8;color:#6b768c;white-space:pre-wrap}.session strong{font-weight:550}#runs>.planned{display:none}
@media(max-width:1120px){.team-button,.logout-button{justify-content:center}.sidebar-bottom .team-button span:nth-child(2),.sidebar-bottom .logout-button span:nth-child(2){display:none}.global-actions{margin-top:18px}}
@media(max-width:700px){.sidebar-bottom .team-button,.sidebar-bottom .logout-button{display:none}#team-mobile{display:inline-flex}.global-actions{justify-content:flex-start;gap:7px;margin-top:18px;flex-wrap:wrap}.global-actions .primary,.global-actions .secondary{font-size:11px;padding:9px 10px;min-height:39px}#refresh-all{display:none}.view-heading{margin-top:20px}.studio-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 28px);border-radius:12px}.dialog-heading{padding:19px 18px 16px}.dialog-heading h2{font-size:20px}.dialog-body{padding:4px 18px 20px}.dialog-body input,.dialog-body select,.dialog-body textarea{font-size:16px}.dialog-heading p{font-size:11px}.dialog-footer{padding:14px 18px}.dialog-footer .primary,.dialog-footer .secondary{min-height:43px}.form-grid{grid-template-columns:1fr}.category-options{grid-template-columns:1fr 1fr}.category-options .check-option{font-size:12px;padding:10px}.check-option input{width:16px;height:16px}.job-banner{font-size:11px;padding:11px}.auth-card{padding:28px}.auth-card input{font-size:16px}.run-record-top{display:block}.run-state{margin:8px 0}.review-author strong{font-size:12px}.review-author>span:last-child{font-size:10px}.review-actions{gap:15px}.review-note button{font-size:11px}#repeat-request{font-size:11px;margin-bottom:15px}}
@media(prefers-reduced-motion:reduce){.job-spinner{animation:none;border-color:#9b88c7}}
