:root { --ink:#14181c; --paper:#e7e9e3; --card:#f8f8f5; --cinnabar:#c8382b; --slate:#5c6670; --verdigris:#2e6e64; --ochre:#b0842c; --line:#c9ccc3; --soft:#dee0d9; --display:"Arial Narrow","Aptos Narrow",sans-serif; --body:Georgia,"Times New Roman",serif; --mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace; }
* { box-sizing:border-box; } body { margin:0; color:var(--ink); background:var(--paper); font:14px/1.5 var(--body); } button { cursor:pointer; font:inherit; } a { color:inherit; text-decoration:none; }
.portal-app { display:grid; grid-template-columns:220px 1fr; min-height:100vh; }
.sidebar { position:sticky; top:0; height:100vh; overflow:auto; padding:19px 0; color:#b6bdc3; background:var(--ink); }
.portal-brand { display:flex; align-items:center; gap:10px; padding:0 19px 20px; border-bottom:1px solid #2a3138; }
.portal-brand strong { display:block; color:var(--card); font-size:19px; line-height:1; }.portal-brand small { display:block; margin-top:4px; color:#79828a; font:9px var(--display); letter-spacing:.3em; text-transform:uppercase; }
.seal { position:relative; display:block; flex:none; width:31px; height:31px; background:var(--cinnabar); border-radius:15%; }.seal::before { content:""; position:absolute; left:21%; right:21%; top:28%; height:7%; background:var(--card); }.seal::after { content:""; position:absolute; left:37%; bottom:16%; width:25%; aspect-ratio:1; border:4px solid var(--card); border-radius:50%; }
.sidebar nav { padding:16px 12px; }.sidebar nav p { margin:17px 6px 7px; color:#5f6971; font:600 9px var(--display); letter-spacing:.16em; text-transform:uppercase; }.sidebar nav p:first-child { margin-top:0; }.sidebar nav a { display:flex; align-items:center; justify-content:space-between; padding:7px 10px; border-left:2px solid transparent; color:#b6bdc3; font:13px var(--display); }.sidebar nav a:hover,.sidebar nav a.active { color:var(--card); background:#1c2126; }.sidebar nav a.active { border-left-color:var(--cinnabar); font-weight:700; }.sidebar nav b { padding:1px 5px; color:#fff; background:var(--cinnabar); border-radius:2px; font:10px var(--mono); }.sidebar-footer { display:flex; gap:7px; align-items:center; padding:13px 19px; color:#69747c; border-top:1px solid #2a3138; font:9px var(--mono); }.demo-badge { padding:3px 5px; color:#f7dedb; border:1px solid var(--cinnabar); }
.portal-main { min-width:0; }.portal-topbar { position:sticky; top:0; z-index:10; display:flex; align-items:center; gap:17px; flex-wrap:wrap; padding:13px 23px; background:var(--card); border-bottom:1px solid var(--line); }.portal-kicker { color:var(--slate); font:9px var(--mono); text-transform:uppercase; letter-spacing:.09em; }.portal-topbar h1 { margin:1px 0 0; font:700 21px var(--display); letter-spacing:.04em; text-transform:uppercase; }.top-context { display:flex; gap:8px; flex-wrap:wrap; }.top-context span { padding:5px 9px; color:var(--slate); background:var(--paper); border:1px solid var(--line); font:10px var(--mono); }.top-context .live { display:flex; gap:7px; align-items:center; color:var(--verdigris); border-color:var(--verdigris); }.live i { width:7px; height:7px; display:block; background:var(--verdigris); border-radius:50%; }.portal-user { display:flex; align-items:center; gap:9px; margin-left:auto; color:var(--slate); font:10px var(--mono); }.avatar { display:grid; place-items:center; width:27px; height:27px; color:var(--card); background:var(--ink); font:600 11px var(--display); }.portal-user button,.panel header button { padding:4px 7px; color:var(--slate); background:transparent; border:1px solid var(--line); font:10px var(--display); letter-spacing:.08em; text-transform:uppercase; }.portal-content { padding:17px 23px 55px; }.portal-notice { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:10px 13px; margin-bottom:17px; color:var(--slate); background:#eff0eb; border-left:3px solid var(--ochre); font:11px var(--mono); }.portal-notice strong { color:var(--ink); }.portal-notice button { padding:0; color:var(--slate); border:0; background:transparent; font:10px var(--display); text-transform:uppercase; letter-spacing:.08em; }
.metric-tiles { display:grid; grid-template-columns:repeat(6,1fr); margin-bottom:17px; background:var(--card); border:1px solid var(--line); }.metric-tile { padding:15px; border-right:1px solid var(--soft); }.metric-tile:last-child { border-right:0; }.metric-tile label { display:block; color:var(--slate); font:600 9px var(--display); letter-spacing:.11em; text-transform:uppercase; }.metric-tile strong { display:block; margin-top:5px; font:700 31px/1 var(--display); }.metric-tile strong small { color:var(--slate); font:500 12px var(--display); }.metric-tile p { margin:5px 0 0; color:var(--slate); font:10px var(--mono); }.positive { color:var(--verdigris)!important; }.negative { color:var(--cinnabar)!important; }.warning { color:var(--ochre)!important; }
.portal-grid { display:grid; gap:17px; margin-bottom:17px; }.two-col { grid-template-columns:1.38fr 1fr; }.panel { min-width:0; background:var(--card); border:1px solid var(--line); }.panel header { display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; padding:12px 16px; border-bottom:1px solid var(--soft); }.panel h2 { margin:0; font:700 12px var(--display); letter-spacing:.1em; text-transform:uppercase; }.panel header small { color:var(--slate); font:10px var(--mono); }.panel header a { color:var(--slate); font:10px var(--display); letter-spacing:.09em; text-transform:uppercase; }.panel header a:hover { color:var(--cinnabar); }.map-canvas { position:relative; background:#e1e4dc; }.map-canvas svg { display:block; width:100%; height:auto; }.map-meta { position:absolute; top:13px; right:13px; padding:7px 9px; text-align:right; color:var(--slate); background:rgba(248,248,245,.94); border:1px solid var(--line); font:9px var(--mono); }.map-legend { position:absolute; left:13px; bottom:13px; display:grid; gap:5px; padding:9px 10px; color:var(--slate); background:rgba(248,248,245,.94); border:1px solid var(--line); font:9px var(--mono); }.map-legend i { display:inline-block; width:9px; height:9px; margin-right:6px; vertical-align:-1px; border-radius:50%; }.map-legend .green { background:var(--verdigris); }.map-legend .red { background:var(--cinnabar); }.map-legend .gray { border:2px solid var(--slate); }.map-legend .outline { width:10px; border:1px dashed var(--cinnabar); border-radius:0; }.hole-panel { padding-bottom:15px; }.hole-panel .eyebrow { color:var(--cinnabar); font:600 9px var(--display); letter-spacing:.13em; text-transform:uppercase; }.hole-chart { padding:15px 17px 0; }.hole-chart svg { width:100%; height:auto; }.hole-stats { display:grid; grid-template-columns:1fr 1fr; gap:12px 15px; padding:13px 17px 0; margin-top:4px; border-top:1px solid var(--soft); }.hole-stats span { display:block; color:var(--slate); font:600 9px var(--display); letter-spacing:.1em; text-transform:uppercase; }.hole-stats strong { display:block; margin-top:3px; font:13px var(--mono); }.hole-stats small { color:var(--slate); font-size:10px; }.warning-text { color:var(--ochre); }
.cycle-panel { margin-bottom:17px; }.cycle-table { padding:16px; }.cycle-machine { margin-bottom:16px; }.cycle-machine:last-child { margin-bottom:0; }.cycle-machine-head { display:flex; justify-content:space-between; gap:10px; color:var(--slate); font:10px var(--mono); }.cycle-machine-head strong { color:var(--ink); font:600 12px var(--display); }.cycle-band { display:flex; height:21px; margin-top:6px; overflow:hidden; }.cycle-band i { min-width:3px; transform:scaleX(0); transform-origin:left; animation:cycle-grow .54s cubic-bezier(.2,.8,.3,1) forwards; }.cycle-axis { display:flex; justify-content:space-between; padding-top:8px; margin-top:10px; color:var(--slate); border-top:1px solid var(--soft); font:9px var(--mono); }.cycle-legend { display:flex; flex-wrap:wrap; gap:13px; padding-top:13px; margin-top:12px; border-top:1px solid var(--soft); color:var(--slate); font:9px var(--mono); }.cycle-legend i { width:9px; height:9px; display:inline-block; margin-right:5px; vertical-align:-1px; }
.pareto { padding:20px 17px 18px; }.pareto-bars { display:flex; align-items:end; gap:14px; height:175px; padding:0 9px 0 17px; border-bottom:1px solid var(--line); }.pareto-bars i { flex:1; max-width:40px; background:var(--ochre); }.pareto-bars i:first-child { background:var(--cinnabar); }.pareto-bars i:nth-child(n+4) { background:var(--slate); }.pareto-labels { display:flex; gap:14px; padding:8px 9px 0 17px; color:var(--slate); font:8px var(--display); letter-spacing:.04em; text-transform:uppercase; }.pareto-labels span { flex:1; }.pareto p { padding-top:12px; margin:14px 0 0; color:var(--slate); border-top:1px solid var(--soft); font-size:13px; }.pareto p strong { color:var(--ink); }
.alerts-list { padding:0; }.alert-row { display:grid; grid-template-columns:3px 1fr auto; gap:10px; padding:11px 16px; border-bottom:1px solid var(--soft); }.alert-row:last-child { border-bottom:0; }.alert-sev { background:var(--slate); }.alert-sev.critical { background:var(--cinnabar); }.alert-sev.warning { background:var(--ochre); }.alert-title { margin:0 0 2px; font:600 12px var(--display); }.alert-detail { margin:0; color:var(--slate); font-size:12px; line-height:1.35; }.alert-time { color:var(--slate); font:9px var(--mono); white-space:nowrap; }.ack-button { align-self:start; padding:3px 6px; margin-top:6px; color:var(--verdigris); background:transparent; border:1px solid var(--verdigris); font:9px var(--display); letter-spacing:.07em; text-transform:uppercase; }.ack-button:hover { color:#fff; background:var(--verdigris); }.acknowledged { opacity:.48; }.acknowledged .alert-title::after { content:" · acknowledged"; color:var(--verdigris); font:10px var(--mono); }.records-panel { margin-top:0; }.records-table { overflow-x:auto; }.table-head,.table-row { display:grid; grid-template-columns:1.3fr 1.6fr 1fr .7fr .8fr; min-width:700px; gap:10px; padding:11px 16px; }.table-head { color:var(--slate); border-bottom:1px solid var(--line); font:600 9px var(--display); letter-spacing:.1em; text-transform:uppercase; }.table-row { border-bottom:1px solid var(--soft); font:10px var(--mono); }.table-row:last-child { border-bottom:0; }.verified { color:var(--verdigris); }
.work-orders-panel { margin-bottom:17px; }.work-order-list { padding:0 16px; }.work-order-list article { display:grid; grid-template-columns:78px 1fr auto; gap:13px; align-items:start; padding:13px 0; border-bottom:1px solid var(--soft); }.work-order-list article:last-child { border-bottom:0; }.work-status { display:inline-block; padding:3px 5px; text-align:center; font:600 9px var(--display); letter-spacing:.07em; text-transform:uppercase; }.work-status.active { color:#fff; background:var(--verdigris); }.work-status.planned { color:var(--ink); background:#e3e5df; }.work-status.review { color:#fff; background:var(--ochre); }.work-order-list strong { display:block; font:600 13px var(--display); letter-spacing:.02em; }.work-order-list p { margin:2px 0 0; color:var(--slate); font-size:12px; }.work-order-list time { color:var(--slate); text-align:right; font:10px var(--mono); }.work-order-list time small { font-size:9px; }.report-grid { margin-top:17px; }.report-card { padding:24px; background:var(--card); border:1px solid var(--line); }.report-card > span { color:var(--cinnabar); font:600 9px var(--display); letter-spacing:.13em; text-transform:uppercase; }.report-card h2 { margin:9px 0 7px; font:700 23px var(--display); text-transform:uppercase; letter-spacing:.02em; }.report-card p { max-width:48ch; margin:0 0 17px; color:var(--slate); font-size:13px; }.report-card button,.report-card a { padding:0; color:var(--ink); background:transparent; border:0; border-bottom:1px solid var(--cinnabar); font:600 10px var(--display); letter-spacing:.08em; text-transform:uppercase; }.report-card.dark { color:var(--card); background:var(--ink); border-color:var(--ink); }.report-card.dark p { color:#aeb6bb; }.report-card.dark a { color:var(--card); }
.asset-panel { margin-bottom:17px; }.asset-count { color:var(--slate); font:10px var(--mono); }.asset-list { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--soft); }.asset-list button { display:grid; gap:4px; padding:15px; text-align:left; background:var(--card); border:0; border-right:1px solid var(--soft); }.asset-list button:last-child { border-right:0; }.asset-list button:hover,.asset-list button.selected { background:#eff0eb; box-shadow:inset 0 2px 0 var(--cinnabar); }.asset-list b { font:600 13px var(--display); letter-spacing:.03em; }.asset-list span { min-height:28px; color:var(--slate); font:10px var(--mono); }.asset-list .state { font-style:normal; }.asset-detail { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; min-height:68px; padding:15px; color:var(--slate); background:#eff0eb; border-top:1px solid var(--line); }.asset-detail p { margin:0; font:12px var(--body); }.asset-detail h3 { margin:3px 0; color:var(--ink); font:600 17px var(--display); letter-spacing:.02em; }.asset-detail > div > span,.asset-detail dt { color:var(--slate); font:9px var(--mono); text-transform:uppercase; letter-spacing:.08em; }.asset-detail dl { display:flex; gap:18px; margin:0; }.asset-detail dd { margin:2px 0 0; color:var(--ink); font:10px var(--mono); }.asset-detail button { padding:6px 9px; color:var(--card); background:var(--ink); border:0; font:600 9px var(--display); letter-spacing:.08em; text-transform:uppercase; }
@keyframes cycle-grow { to { transform:scaleX(1); } }
.admin-workspace { margin-top:18px; }.admin-heading { display:flex; justify-content:space-between; gap:30px; align-items:end; padding:22px 0; }.admin-heading > div > span { color:var(--cinnabar); font:600 9px var(--display); letter-spacing:.14em; text-transform:uppercase; }.admin-heading h2 { margin:4px 0 0; font:700 26px var(--display); letter-spacing:.02em; text-transform:uppercase; }.admin-heading p { max-width:48ch; margin:0; color:var(--slate); font-size:13px; }.admin-grid { display:grid; grid-template-columns:1fr 1fr; gap:17px; margin-bottom:17px; }.admin-list { padding:0 16px; }.admin-row { display:flex; justify-content:space-between; gap:13px; padding:12px 0; border-bottom:1px solid var(--soft); }.admin-row:last-child { border-bottom:0; }.admin-row strong,.user-row strong { display:block; font:600 12px var(--display); letter-spacing:.02em; }.admin-row span,.user-row span { display:block; color:var(--slate); font:10px var(--mono); }.admin-row > div:last-child { text-align:right; }.state { display:inline-block; margin-top:4px; font:600 9px var(--display); letter-spacing:.08em; text-transform:uppercase; }.state.healthy,.state.active { color:var(--verdigris); }.state.review,.state.due-soon,.state.pending-review { color:var(--ochre); }.state.offline,.state.attention { color:var(--cinnabar); }.state.planned { color:var(--slate); }.user-list { display:grid; grid-template-columns:repeat(4,1fr); }.user-row { display:grid; grid-template-columns:30px 1fr; gap:9px; align-items:center; padding:15px; border-right:1px solid var(--soft); }.user-row > span { grid-column:2; }.user-row > b { grid-column:2; }.user-row:last-child { border-right:0; }.user-initial { display:grid; grid-row:span 2; place-items:center; width:28px; height:28px; color:var(--card); background:var(--ink); font:600 11px var(--display); }
.module-workspace { margin:0 0 17px; }.module-workspace-heading { display:flex; justify-content:space-between; gap:25px; align-items:end; padding:18px 0 14px; }.module-workspace-heading > div > span { color:var(--cinnabar); font:600 9px var(--display); letter-spacing:.14em; text-transform:uppercase; }.module-workspace-heading h2 { margin:4px 0 6px; font:700 27px var(--display); letter-spacing:.02em; text-transform:uppercase; }.module-workspace-heading p { max-width:74ch; margin:0; color:var(--slate); font-size:12px; }.sample-data-label { padding:4px 7px; color:var(--slate); border:1px solid var(--line); font:9px var(--mono); white-space:nowrap; }.module-tabs { display:flex; gap:6px; overflow:auto; padding:8px 0 12px; border-top:1px solid var(--line); }.module-tabs button { flex:none; padding:7px 9px; color:var(--slate); background:transparent; border:1px solid var(--line); font:600 10px var(--display); letter-spacing:.04em; white-space:nowrap; }.module-tabs button:hover,.module-tabs button.active { color:var(--card); background:var(--ink); border-color:var(--ink); }.module-detail { overflow:hidden; }.module-detail > header { display:flex; justify-content:space-between; gap:18px; align-items:start; padding:18px 18px 15px; border-bottom:1px solid var(--soft); }.module-detail h2 { margin:3px 0 5px; font:700 22px var(--display); letter-spacing:.02em; text-transform:uppercase; }.module-detail header p { max-width:72ch; margin:0; color:var(--slate); font-size:12px; }.module-content { display:grid; grid-template-columns:1.05fr .95fr; }.module-value-grid { display:grid; grid-template-columns:1fr 1fr; border-right:1px solid var(--soft); }.module-value-grid > div { min-height:85px; padding:14px; border-right:1px solid var(--soft); border-bottom:1px solid var(--soft); }.module-value-grid > div:nth-child(2n) { border-right:0; }.module-value-grid > div:nth-last-child(-n+2) { border-bottom:0; }.module-value-grid span { display:block; color:var(--slate); font:9px var(--mono); }.module-value-grid strong { display:block; margin-top:4px; font:700 21px var(--display); letter-spacing:.02em; }.capability-badge { display:inline-block; padding:3px 6px; font:600 9px var(--display); letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }.capability-badge.standard { color:var(--verdigris); background:#e6efec; }.capability-badge.optional { color:#6d5522; background:#f1ead5; }.module-value-grid .capability-badge { margin-top:5px; }.module-chart { margin:0; padding:15px; background:#eff0eb; }.module-chart figcaption { margin-bottom:12px; color:var(--slate); font:10px/1.4 var(--mono); }.module-bars { display:grid; gap:10px; }.module-bars > div { display:grid; grid-template-columns:94px 1fr 34px; gap:8px; align-items:center; }.module-bars span,.module-bars em { color:var(--slate); font:9px var(--mono); font-style:normal; }.module-bars i { display:block; height:8px; overflow:hidden; background:#d2d5ce; }.module-bars b { display:block; height:100%; background:var(--verdigris); transform-origin:left; animation:module-bar .6s ease both; }.module-bars > div:nth-child(2) b { background:var(--ochre); }.module-bars > div:nth-child(3) b,.module-bars > div:nth-child(4) b { background:var(--cinnabar); }.module-evidence { grid-column:1 / -1; display:flex; justify-content:space-between; gap:20px; align-items:end; padding:13px 15px; color:var(--card); background:var(--ink); }.module-evidence > span,.module-evidence small { color:#aeb6bb; font:9px var(--mono); }.module-evidence p { max-width:70ch; margin:0; color:#eff0eb; font-size:12px; }.module-loading,.module-error { padding:22px; margin:0; color:var(--slate); }.module-error strong { color:var(--cinnabar); }.module-error p { margin:4px 0 0; }
@keyframes module-bar { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@media (max-width:1150px) { .metric-tiles { grid-template-columns:repeat(3,1fr); }.metric-tile:nth-child(3) { border-right:0; }.metric-tile:nth-child(-n+3) { border-bottom:1px solid var(--soft); } }
@media (max-width:900px) { .portal-app { display:block; }.sidebar { position:static; height:auto; }.sidebar nav { display:none; }.sidebar-footer { display:none; }.portal-brand { padding:12px 18px; border-bottom:0; }.portal-topbar { position:static; }.top-context { order:3; width:100%; }.portal-content { padding:14px; }.two-col { grid-template-columns:1fr; }.metric-tiles,.asset-list { grid-template-columns:repeat(2,1fr); }.asset-list button:nth-child(2n) { border-right:0; }.asset-list button:nth-child(-n+2) { border-bottom:1px solid var(--soft); } }
@media (max-width:900px) { .module-content { grid-template-columns:1fr; }.module-value-grid { border-right:0; }.module-workspace-heading { align-items:start; } }
@media (max-width:700px) { .admin-heading,.admin-grid { display:grid; grid-template-columns:1fr; gap:12px; }.user-list { grid-template-columns:1fr 1fr; }.user-row:nth-child(2n) { border-right:0; }.user-row:nth-child(-n+2) { border-bottom:1px solid var(--soft); } }
@media (max-width:560px) { .portal-topbar { padding:12px 14px; }.portal-topbar h1 { font-size:18px; }.portal-user { margin-left:auto; }.portal-user > span:first-child { display:none; }.portal-notice { align-items:flex-start; flex-direction:column; }.metric-tiles,.asset-list { grid-template-columns:1fr 1fr; }.metric-tile:nth-child(2n) { border-right:0; }.metric-tile:nth-child(3) { border-right:1px solid var(--soft); }.metric-tile:nth-child(-n+4) { border-bottom:1px solid var(--soft); }.metric-tile:nth-child(5) { border-bottom:0; }.metric-tile:nth-child(6) { border-bottom:0; }.cycle-table { padding:13px; }.cycle-machine-head { display:grid; gap:2px; }.map-meta { font-size:8px; }.map-legend { font-size:8px; }.portal-user button { padding:4px; }.user-list { grid-template-columns:1fr; }.user-row { border-right:0; border-bottom:1px solid var(--soft); }.user-row:nth-child(-n+2) { border-bottom:1px solid var(--soft); }.asset-list button { border-right:0; }.asset-detail { display:grid; }.asset-detail dl { display:grid; gap:9px; } }
@media (max-width:560px) { .module-workspace-heading { display:grid; }.module-detail > header { display:grid; }.module-value-grid { grid-template-columns:1fr; }.module-value-grid > div { border-right:0; }.module-value-grid > div:nth-last-child(-n+2) { border-bottom:1px solid var(--soft); }.module-value-grid > div:last-child { border-bottom:0; }.module-bars > div { grid-template-columns:80px 1fr 30px; }.module-evidence { display:grid; } }
@media (prefers-reduced-motion:reduce) { .cycle-band i { animation:none; transform:scaleX(1); } }
.sidebar-head { display:flex; align-items:flex-start; justify-content:space-between; }.sidebar-close { display:none; }.icon-button { display:grid; place-items:center; width:32px; height:32px; padding:0; color:var(--slate); background:transparent; border:1px solid var(--line); }.icon-button:hover,.icon-button:focus-visible { color:var(--card); background:var(--cinnabar); border-color:var(--cinnabar); }.sidebar .icon-button { margin:0 12px 0 0; color:#b6bdc3; border-color:#34404a; }.sidebar nav a { position:relative; gap:10px; justify-content:flex-start; min-height:35px; border-radius:3px; border-left:0; }.sidebar nav a:focus-visible { outline:2px solid #f17e73; outline-offset:2px; }.sidebar nav a.disabled { color:#69747c; pointer-events:none; }.sidebar nav b { margin-left:auto; }.nav-icon { flex:none; width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }.sidebar-toggle { order:-1; color:var(--slate); }.sidebar-backdrop { position:fixed; inset:0; z-index:40; background:rgba(5,9,12,.5); }.sidebar-collapsed .portal-app { grid-template-columns:70px 1fr; }.sidebar-collapsed .portal-brand { justify-content:center; padding-inline:0; }.sidebar-collapsed .brand-word,.sidebar-collapsed .sidebar nav p,.sidebar-collapsed .nav-label,.sidebar-collapsed .sidebar-footer > span:last-child { display:none; }.sidebar-collapsed .sidebar nav { padding-inline:10px; }.sidebar-collapsed .sidebar nav a { justify-content:center; padding:8px; }.sidebar-collapsed .sidebar nav a:hover::after,.sidebar-collapsed .sidebar nav a:focus-visible::after { content:attr(aria-label); position:absolute; left:51px; z-index:20; padding:6px 8px; color:var(--card); background:var(--ink); border:1px solid #34404a; box-shadow:0 7px 18px rgba(0,0,0,.25); font:10px var(--mono); white-space:nowrap; }.sidebar-collapsed .sidebar-footer { justify-content:center; padding-inline:0; }.portal-view[hidden],.view-loading[hidden] { display:none; }.view-loading { display:grid; grid-template-columns:repeat(3,1fr); gap:17px; margin:18px 0; }.view-loading span { display:block; height:120px; background:linear-gradient(110deg,#dde0d9 8%,#f5f5f1 18%,#dde0d9 33%); background-size:200% 100%; animation:loading-shimmer 1.3s linear infinite; border:1px solid var(--line); }.breadcrumb { display:flex; gap:7px; align-items:center; margin:0 0 13px; color:var(--slate); font:10px var(--mono); }.breadcrumb span { color:var(--cinnabar); }.view-header { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; padding:7px 0 18px; }.view-header h2 { margin:2px 0 5px; color:var(--ink); font:700 31px var(--display); letter-spacing:.02em; text-transform:uppercase; }.view-header p:not(.view-eyebrow) { max-width:74ch; margin:0; color:var(--slate); font-size:13px; }.view-eyebrow { margin:0; color:var(--cinnabar); font:600 9px var(--display); letter-spacing:.15em; text-transform:uppercase; }.date-controls,.filter-controls { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }.date-controls button,.secondary-button,.filter-controls button,.filter-controls select,.filter-controls input,.view-header select { min-height:31px; padding:6px 9px; color:var(--slate); background:var(--card); border:1px solid var(--line); font:600 10px var(--display); letter-spacing:.07em; text-transform:uppercase; }.filter-controls input { min-width:230px; font-family:var(--body); letter-spacing:0; text-transform:none; }.date-controls button:hover,.date-controls button.active,.secondary-button:hover,.filter-controls button:hover { color:var(--card); background:var(--ink); border-color:var(--ink); }.status-strip { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin:0 0 17px; }.status-strip article { display:flex; gap:8px; align-items:flex-start; padding:10px; background:var(--card); border:1px solid var(--line); }.status-strip i { flex:none; width:8px; height:8px; margin-top:5px; background:var(--slate); border-radius:50%; }.status-strip .success i { background:var(--verdigris); }.status-strip .warning i { background:var(--ochre); }.status-strip .offline i { background:var(--cinnabar); }.status-strip strong,.status-strip span { display:block; }.status-strip strong { font:600 11px var(--display); letter-spacing:.03em; }.status-strip span { margin-top:2px; color:var(--slate); font:10px/1.35 var(--mono); }.view-grid { display:grid; gap:17px; margin-bottom:17px; }.two-up { grid-template-columns:1fr 1fr; }.three-up { grid-template-columns:repeat(3,1fr); }.chart-card { margin:0; padding:15px; background:var(--card); border:1px solid var(--line); }.chart-card figcaption { display:flex; justify-content:space-between; gap:10px; padding-bottom:13px; color:var(--slate); font:9px var(--mono); }.chart-card figcaption strong { color:var(--ink); font:700 12px var(--display); letter-spacing:.08em; text-transform:uppercase; }.chart-bars { display:flex; align-items:end; gap:9px; min-height:170px; padding:10px 0 0; border-bottom:1px solid var(--line); }.chart-bar { display:grid; grid-template-rows:1fr auto auto; flex:1; align-self:stretch; gap:5px; padding:0; color:var(--slate); background:transparent; border:0; text-align:left; font:9px var(--mono); }.chart-bar:hover i,.chart-bar:focus-visible i { background:var(--cinnabar); }.chart-bar i { display:block; align-self:end; height:var(--bar); min-height:4px; background:var(--verdigris); transform:scaleY(0); transform-origin:bottom; animation:bar-rise .65s cubic-bezier(.2,.8,.3,1) forwards; }.chart-bar:nth-child(2) i { background:var(--ochre); }.chart-bar:nth-child(n+3) i { background:var(--slate); }.chart-bar span { min-height:25px; overflow-wrap:anywhere; }.chart-bar b { color:var(--ink); font:600 10px var(--mono); }.chart-caption { margin:11px 0 0; color:var(--slate); font-size:11px; }.line-card svg { display:block; width:100%; height:auto; }.grid-line { stroke:#dce0d9; stroke-width:1; }.chart-line { fill:none; stroke:var(--cinnabar); stroke-width:3; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:800; stroke-dashoffset:800; animation:line-draw 1s ease forwards; }.chart-area { fill:rgba(200,56,43,.1); opacity:0; animation:area-in .6s .4s ease forwards; }.chart-axis { display:flex; justify-content:space-between; gap:4px; color:var(--slate); font:9px var(--mono); }.panel h3,.report-card h3 { margin:0; font:700 13px var(--display); letter-spacing:.09em; text-transform:uppercase; }.activity-card ol { display:grid; gap:0; padding:0 16px; margin:0; list-style:none; }.activity-card li { display:grid; grid-template-columns:52px 1fr; gap:10px; padding:12px 0; color:var(--slate); border-bottom:1px solid var(--soft); font-size:12px; }.activity-card li:last-child { border-bottom:0; }.activity-card time { color:var(--cinnabar); font:10px var(--mono); }.sample-pill { padding:3px 6px; color:var(--slate); background:var(--paper); border:1px solid var(--line); font:9px var(--mono); }.map-card { overflow:hidden; }.project-map { position:relative; overflow:hidden; background:#e1e4dc; }.project-map svg { display:block; width:100%; height:auto; }.map-progress .done { fill:var(--verdigris); }.map-progress .progress { fill:var(--cinnabar); }.map-progress .planned { fill:var(--paper); stroke:var(--slate); stroke-width:2; }.asset-marker circle { fill:var(--cinnabar); stroke:var(--card); stroke-width:4; }.asset-marker text { fill:var(--ink); font:600 12px var(--mono); }.asset-marker.healthy circle { fill:var(--verdigris); }.asset-marker.warning circle { fill:var(--ochre); }.asset-marker.offline circle { fill:var(--slate); stroke-dasharray:3 2; }.project-map .map-legend { z-index:1; }.map-legend .done { background:var(--verdigris); }.map-legend .progress { background:var(--cinnabar); }.map-legend .planned { border:2px solid var(--slate); }.map-legend .boundary { width:10px; border:1px dashed var(--cinnabar); border-radius:0; }.data-table { overflow:auto; margin-bottom:17px; background:var(--card); border:1px solid var(--line); }.data-row { display:grid; grid-template-columns:1.3fr 1.2fr 1.2fr .9fr .75fr auto; gap:12px; align-items:center; min-width:780px; padding:11px 15px; color:var(--slate); border-bottom:1px solid var(--soft); font:11px var(--mono); }.data-row:last-child { border-bottom:0; }.data-row strong { display:block; color:var(--ink); font:600 12px var(--display); letter-spacing:.03em; }.data-row small { display:block; margin-top:2px; color:var(--slate); font:9px/1.35 var(--mono); }.data-head { color:var(--slate); background:#eff0eb; font:600 9px var(--display); letter-spacing:.1em; text-transform:uppercase; }.table-action { padding:5px 7px; color:var(--slate); background:transparent; border:1px solid var(--line); font:600 9px var(--display); letter-spacing:.07em; text-transform:uppercase; }.table-action:hover,.table-action:focus-visible { color:var(--card); background:var(--ink); border-color:var(--ink); }.state { margin:0; padding:3px 6px; border-radius:2px; background:#eef0ec; }.state-healthy,.state-active,.state-verified { color:var(--verdigris); }.state-review,.state-warning,.state-due-soon,.state-attention { color:#88661d; }.state-offline { color:var(--cinnabar); }.pager { display:flex; justify-content:flex-end; align-items:center; gap:8px; margin-top:-6px; color:var(--slate); font:9px var(--mono); }.pager button { padding:4px 7px; color:var(--slate); background:transparent; border:1px solid var(--line); font:9px var(--display); }.pager button:disabled { opacity:.5; cursor:not-allowed; }.empty-row { padding:30px; color:var(--slate); text-align:center; font:12px var(--body); }.asset-inspector { display:flex; justify-content:space-between; align-items:end; gap:20px; padding:15px; }.asset-inspector > div > span,.asset-inspector dt { color:var(--slate); font:9px var(--mono); text-transform:uppercase; }.asset-inspector h3 { margin:3px 0; font-size:17px; }.asset-inspector p { margin:0; color:var(--slate); font-size:12px; }.asset-inspector dl { display:flex; gap:18px; margin:0; }.asset-inspector dd { margin:3px 0 0; color:var(--ink); font:10px var(--mono); }.timeline-list { padding:15px; }.timeline-row { padding:12px 0; border-bottom:1px solid var(--soft); }.timeline-row:last-child { border-bottom:0; }.timeline-row header { display:flex; justify-content:space-between; gap:12px; color:var(--slate); font:10px var(--mono); }.timeline-row header strong { color:var(--ink); font:600 12px var(--display); }.timeline-row header span { margin-left:5px; }.timeline-row header b { font-weight:400; }.state-timeline { display:flex; height:26px; margin-top:7px; overflow:hidden; background:#eef0ec; }.state-timeline i { min-width:4px; background:var(--verdigris); transform:scaleX(0); transform-origin:left; animation:cycle-grow .55s ease forwards; }.state-timeline i.setup { background:#6f8791; }.state-timeline i.transit { background:#8e9da4; }.state-timeline i.standby { background:var(--ochre); }.state-timeline i.idle { background:var(--cinnabar); }.state-timeline i.offline { background:var(--slate); }.state-timeline i span { display:none; }.timeline-legend { display:flex; flex-wrap:wrap; gap:12px; padding:12px 15px; color:var(--slate); border-top:1px solid var(--soft); font:9px var(--mono); }.timeline-legend i { display:inline-block; width:9px; height:9px; margin-right:4px; background:var(--verdigris); }.timeline-legend i.setup { background:#6f8791; }.timeline-legend i.transit { background:#8e9da4; }.timeline-legend i.standby { background:var(--ochre); }.timeline-legend i.idle { background:var(--cinnabar); }.timeline-legend i.offline { background:var(--slate); }.work-order-row { display:grid; grid-template-columns:84px 1fr auto auto; gap:13px; align-items:start; padding:14px 16px; border-bottom:1px solid var(--soft); }.work-order-row:last-child { border-bottom:0; }.work-order-row strong { display:block; font:600 13px var(--display); }.work-order-row p { margin:3px 0; color:var(--slate); font-size:12px; }.work-order-row small,.work-order-row time { color:var(--slate); font:9px var(--mono); }.work-status { padding:4px 5px; color:var(--ink); background:#e3e5df; font:600 9px var(--display); text-align:center; letter-spacing:.07em; text-transform:uppercase; }.work-status.in-progress { color:#fff; background:var(--verdigris); }.work-status.review { color:#fff; background:var(--ochre); }.progress-line { height:7px; overflow:hidden; background:#e2e4de; }.progress-line i { display:block; height:100%; background:var(--verdigris); transform-origin:left; animation:bar-rise .55s ease forwards; }.report-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:17px; margin-bottom:17px; }.report-grid .report-card { margin:0; }.report-card button { color:var(--ink); }.report-card.dark button { color:var(--card); }.module-summary { display:grid; grid-template-columns:1.05fr .95fr; }.module-summary .chart-card { border:0; border-left:1px solid var(--soft); }.optional-note { display:inline-block; margin-top:4px; color:#6d5522; font:9px var(--mono); }.capability-badge.standard { color:var(--verdigris); background:#e6efec; }.capability-badge.optional { color:#6d5522; background:#f1ead5; }.capability-badge.roadmap { color:#5c6670; background:#e1e4e5; }.capability-badge.advisory { color:#6e5877; background:#eee6f1; }.inline-loading { display:flex; gap:8px; padding:26px; background:var(--card); border:1px solid var(--line); }.inline-loading span { width:8px; height:8px; background:var(--slate); border-radius:50%; animation:loading-pulse .9s ease-in-out infinite alternate; }.inline-loading span:nth-child(2) { animation-delay:.15s; }.inline-loading span:nth-child(3) { animation-delay:.3s; }.release-list { padding:0 16px; margin:0; list-style:none; }.release-list li { display:grid; grid-template-columns:64px 95px 1fr; gap:10px; padding:13px 0; border-bottom:1px solid var(--soft); }.release-list li:last-child { border-bottom:0; }.release-list strong { font:700 15px var(--display); }.release-list time,.release-list span { color:var(--slate); font:9px var(--mono); }.release-list p { margin:0; color:var(--slate); font-size:12px; }.admin-list .admin-row small { display:block; margin-top:3px; color:var(--slate); font:9px var(--mono); }.metric-tile strong.is-updating { color:var(--cinnabar); transform:translateY(-2px); transition:.25s ease; }
@keyframes loading-shimmer { to { background-position:-200% 0; } } @keyframes bar-rise { to { transform:scaleY(1); } } @keyframes line-draw { to { stroke-dashoffset:0; } } @keyframes area-in { to { opacity:1; } } @keyframes loading-pulse { to { opacity:.25; transform:translateY(-3px); } }
@media (max-width:900px) { .portal-app,.sidebar-collapsed .portal-app { display:block; }.sidebar { position:fixed; z-index:50; top:0; left:0; width:min(290px,85vw); height:100dvh; transform:translateX(-105%); transition:transform .25s ease; box-shadow:8px 0 30px rgba(0,0,0,.25); }.sidebar-open .sidebar { transform:translateX(0); }.sidebar nav { display:block; }.sidebar-close { display:grid; }.sidebar-collapsed .brand-word,.sidebar-collapsed .sidebar nav p,.sidebar-collapsed .nav-label,.sidebar-collapsed .sidebar-footer > span:last-child { display:initial; }.sidebar-collapsed .portal-brand { justify-content:flex-start; padding-inline:19px; }.sidebar-collapsed .sidebar nav { padding-inline:12px; }.sidebar-collapsed .sidebar nav a { justify-content:flex-start; padding:7px 10px; }.sidebar-collapsed .sidebar-footer { justify-content:flex-start; padding-inline:19px; }.sidebar-collapsed .sidebar nav a:hover::after,.sidebar-collapsed .sidebar nav a:focus-visible::after { display:none; }.portal-topbar { position:sticky; }.sidebar-toggle { order:0; }.topbar-title { min-width:0; }.portal-content { padding:14px; }.view-header { align-items:flex-start; flex-direction:column; }.two-up,.three-up,.status-strip,.report-grid { grid-template-columns:1fr; }.module-summary { grid-template-columns:1fr; }.module-summary .chart-card { border-left:0; border-top:1px solid var(--soft); }.view-loading { grid-template-columns:1fr; }.metric-tiles { grid-template-columns:repeat(2,1fr); }.metric-tile:nth-child(2n) { border-right:0; }.metric-tile:nth-child(n+3) { border-top:1px solid var(--soft); }.top-context { order:3; }.sidebar-footer { display:flex; } }
@media (max-width:600px) { .portal-topbar { gap:9px; padding:10px 14px; }.portal-topbar h1 { font-size:18px; }.portal-user > span:first-child,.top-context span:first-child { display:none; }.portal-user { margin-left:auto; }.portal-notice { font-size:9px; }.portal-notice button { display:none; }.filter-controls input { min-width:100%; }.filter-controls { width:100%; }.date-controls,.filter-controls { justify-content:flex-start; }.asset-inspector { display:grid; }.asset-inspector dl { display:grid; grid-template-columns:1fr 1fr; gap:9px; }.work-order-row { grid-template-columns:1fr; }.work-order-row time { text-align:left; }.release-list li { grid-template-columns:1fr; gap:4px; }.chart-bars { min-height:140px; }.project-map .map-legend { display:none; }.asset-marker text { font-size:9px; } }
@media (prefers-reduced-motion:reduce) { .sidebar,.chart-bar i,.chart-line,.chart-area,.progress-line i,.view-loading span,.inline-loading span { animation:none!important; transition:none!important; transform:none!important; stroke-dashoffset:0!important; opacity:1!important; } }
.map-workspace { display:grid; gap:12px; }.map-tabs { display:flex; gap:5px; overflow-x:auto; padding-bottom:2px; border-bottom:1px solid var(--line); scrollbar-color:var(--slate) transparent; }.map-tabs button { flex:none; min-height:34px; padding:7px 10px; color:var(--slate); background:transparent; border:1px solid transparent; border-bottom:2px solid transparent; font:600 10px var(--display); letter-spacing:.05em; text-transform:uppercase; white-space:nowrap; }.map-tabs button:hover,.map-tabs button:focus-visible,.map-tabs button.active { color:var(--ink); background:var(--card); border-color:var(--line); border-bottom-color:var(--cinnabar); }.map-controls { display:grid; gap:10px; padding:12px 15px; }.map-filter-row,.map-action-row { display:flex; align-items:end; gap:9px; flex-wrap:wrap; }.map-controls label,.export-options label { display:grid; gap:3px; color:var(--slate); font:600 9px var(--display); letter-spacing:.09em; text-transform:uppercase; }.map-controls select,.map-controls input,.export-options select { min-height:31px; padding:6px 8px; color:var(--ink); background:var(--card); border:1px solid var(--line); font:11px var(--body); letter-spacing:0; text-transform:none; }.map-search { min-width:min(340px,100%); flex:1; }.map-search input { width:100%; }.map-action-row fieldset,.export-layers { display:flex; flex-wrap:wrap; gap:6px 12px; padding:3px 0; margin:0; border:0; }.map-action-row legend,.export-layers legend { width:100%; padding:0; color:var(--slate); font:600 9px var(--display); letter-spacing:.09em; text-transform:uppercase; }.map-action-row fieldset label,.export-layers label { display:flex; align-items:center; gap:4px; color:var(--slate); font:9px var(--mono); letter-spacing:0; text-transform:none; }.map-action-row fieldset input,.export-layers input { min-height:auto; padding:0; accent-color:var(--cinnabar); }.map-button-group { display:flex; gap:5px; margin-left:auto; }.map-button-group button { min-height:31px; padding:6px 8px; color:var(--slate); background:var(--card); border:1px solid var(--line); font:600 10px var(--display); letter-spacing:.04em; text-transform:uppercase; }.map-button-group button:hover,.map-button-group button:focus-visible { color:var(--card); background:var(--ink); border-color:var(--ink); }.map-canvas-panel { overflow:hidden; }.map-canvas-panel > header { align-items:start; }.project-map { background:#e1e4dc; }.project-map svg { display:block; width:100%; min-height:310px; height:auto; }.map-base-terrain { background:#d8dfd2; }.map-base-terrain svg rect { fill:#d7ddd0; }.map-base-contrast { background:#e7e9e3; }.map-base-contrast svg rect { fill:#f0f1ed; }.map-transform { transform:scale(var(--map-scale)); transform-origin:center; transition:transform .25s ease; }.map-road { fill:none; stroke:#f8f8f5; stroke-width:27; }.map-design-line,.map-asbuilt-line { fill:none; stroke-width:3; }.map-design-line { stroke:var(--slate); stroke-dasharray:9 7; }.map-asbuilt-line { stroke:var(--cinnabar); }.map-boundary { fill:rgba(200,56,43,.07); stroke:var(--cinnabar); stroke-width:2; stroke-dasharray:8 7; }.map-coverage circle { fill:rgba(46,110,100,.12); stroke:rgba(46,110,100,.5); stroke-width:2; stroke-dasharray:5 6; }.map-structures rect { fill:var(--verdigris); stroke:var(--card); stroke-width:2; }.map-feature { cursor:pointer; outline:none; }.map-feature circle { fill:var(--verdigris); stroke:var(--card); stroke-width:4; }.map-feature text { fill:var(--ink); font:600 11px var(--mono); paint-order:stroke; stroke:var(--card); stroke-width:4px; stroke-linejoin:round; }.map-feature.alert circle,.map-feature.flagged circle { fill:var(--cinnabar); }.map-feature.offline circle { fill:var(--slate); stroke-dasharray:4 3; }.map-feature.progress circle { fill:var(--ochre); }.map-feature.planned circle { fill:var(--paper); stroke:var(--slate); stroke-width:2; }.map-feature:hover circle,.map-feature:focus-visible circle { stroke:var(--ink); stroke-width:5; }.map-coordinate-readout { padding:6px 12px; color:var(--slate); background:#eff0eb; border-top:1px solid var(--soft); font:9px var(--mono); }.map-detail-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:12px; }.map-detail dl { display:grid; grid-template-columns:repeat(2,1fr); gap:0; margin:0; }.map-detail dl div { padding:11px 15px; border-right:1px solid var(--soft); border-bottom:1px solid var(--soft); }.map-detail dl div:nth-child(2n) { border-right:0; }.map-detail dl div:nth-last-child(-n+2) { border-bottom:0; }.map-detail dt { color:var(--slate); font:600 9px var(--display); letter-spacing:.08em; text-transform:uppercase; }.map-detail dd { margin:3px 0 0; color:var(--ink); font:10px/1.45 var(--mono); }.module-kicker { color:var(--cinnabar); font:600 9px var(--display); letter-spacing:.12em; text-transform:uppercase; }.map-tab-summary { overflow:hidden; }.map-mini-grid { display:grid; grid-template-columns:repeat(4,1fr); }.map-mini-grid span { display:grid; gap:4px; padding:18px 10px; color:var(--slate); border-right:1px solid var(--soft); font:9px var(--mono); text-transform:uppercase; }.map-mini-grid span:last-child { border-right:0; }.map-mini-grid b { color:var(--ink); font:700 25px var(--display); }.map-list { display:grid; gap:0; padding:0 15px; margin:0; list-style:none; }.map-list li { display:grid; grid-template-columns:minmax(125px,.7fr) 1.3fr; gap:10px; align-items:center; padding:11px 0; color:var(--slate); border-bottom:1px solid var(--soft); font:10px var(--mono); }.map-list li:last-child { border-bottom:0; }.map-list button { justify-self:start; padding:0; color:var(--ink); background:transparent; border:0; border-bottom:1px solid var(--cinnabar); font:600 10px var(--display); letter-spacing:.05em; text-transform:uppercase; }.map-workspace > .map-legend { position:static; display:flex; flex-wrap:wrap; gap:9px 14px; padding:9px 11px; color:var(--slate); background:var(--card); border:1px solid var(--line); font:9px var(--mono); }.map-workspace > .map-legend i { display:inline-block; width:9px; height:9px; margin-right:5px; vertical-align:-1px; border-radius:50%; }.map-workspace > .map-legend .coverage { background:rgba(46,110,100,.45); }.map-empty { display:grid; place-items:center; min-height:310px; padding:30px; color:var(--slate); text-align:center; background:#eff0eb; }.map-empty strong { color:var(--ink); font:600 14px var(--display); text-transform:uppercase; }.map-empty p { margin:4px 0 13px; font-size:12px; }.export-dialog { width:min(760px,calc(100vw - 28px)); padding:0; color:var(--ink); background:var(--card); border:1px solid var(--ink); box-shadow:0 20px 70px rgba(0,0,0,.32); }.export-dialog::backdrop { background:rgba(20,24,28,.58); }.export-form > header { display:flex; justify-content:space-between; gap:15px; padding:18px; border-bottom:1px solid var(--line); }.export-form h3 { margin:3px 0 4px; font:700 23px var(--display); letter-spacing:.04em; text-transform:uppercase; }.export-form header p { max-width:54ch; margin:0; color:var(--slate); font-size:12px; }.dialog-close { width:28px; height:28px; padding:0; color:var(--slate); background:transparent; border:1px solid var(--line); font-size:20px; line-height:1; }.export-options { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:17px 18px; }.export-options select { width:100%; }.export-layers { padding:0 18px 15px; }.export-note { padding:10px 18px; margin:0; color:#6d5522; background:#f1ead5; border-top:1px solid #e0d5b5; border-bottom:1px solid #e0d5b5; font:10px/1.5 var(--mono); }.export-result { min-height:19px; padding:11px 18px 0; margin:0; color:var(--verdigris); font:10px var(--mono); }.export-form footer { display:flex; justify-content:flex-end; gap:8px; padding:15px 18px; }.primary-export { min-height:32px; padding:7px 10px; color:var(--card); background:var(--ink); border:1px solid var(--ink); font:600 10px var(--display); letter-spacing:.07em; text-transform:uppercase; }.primary-export:disabled { opacity:.55; cursor:wait; }
@media (max-width:900px) { .map-detail-grid { grid-template-columns:1fr; }.map-filter-row > label:not(.map-search) { flex:1; min-width:130px; }.map-action-row { align-items:start; }.map-button-group { width:100%; margin-left:0; }.map-button-group button { flex:1; } }
@media (max-width:600px) { .map-tabs { margin-inline:-14px; padding-inline:14px; }.map-controls { padding:11px; }.map-filter-row,.map-action-row { display:grid; grid-template-columns:1fr 1fr; }.map-search,.map-action-row fieldset { grid-column:1 / -1; min-width:0; }.map-controls select { width:100%; }.map-button-group { display:grid; grid-template-columns:repeat(3,1fr); }.project-map svg { min-height:260px; width:155%; max-width:none; margin-left:-27%; }.map-detail dl,.map-mini-grid { grid-template-columns:1fr 1fr; }.map-detail dl div:nth-child(2n) { border-right:0; }.map-detail dl div:nth-last-child(-n+2) { border-bottom:1px solid var(--soft); }.map-detail dl div:nth-last-child(-n+1) { border-bottom:0; }.map-mini-grid span:nth-child(2n) { border-right:0; }.map-mini-grid span:nth-child(-n+2) { border-bottom:1px solid var(--soft); }.map-list li { grid-template-columns:1fr; gap:4px; }.export-options { grid-template-columns:1fr; }.export-form footer { justify-content:stretch; }.export-form footer button { flex:1; }.export-dialog { width:calc(100vw - 18px); } }
@media (prefers-reduced-motion:reduce) { .map-transform { transition:none!important; } }