:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--text);background:var(--bg);--bg:#f1f5f9;--surface:#fff;--surface-2:#f8fafc;--text:#163049;font-size:16px;--navy:#102a43;--teal:#087f8c;--muted:#64788b;--border:#dce5ed}*{box-sizing:border-box}body{margin:0}[hidden]{display:none!important}button,input,select{font:inherit}button,select,input{border:1px solid var(--border);border-radius:7px;padding:10px 12px;background:white;color:inherit}button{cursor:pointer;font-weight:600}button:hover{background:#eef5f8}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #38bdf8;outline-offset:2px}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--teal);color:white;border-color:var(--teal)}.primary:hover{background:#066774}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-1px}h2{font-size:18px;letter-spacing:-.3px}h3{font-size:18px;margin-bottom:20px}.eyebrow{font-size:12px;letter-spacing:1.8px;font-weight:750;color:#658199;margin-bottom:7px}small,.muted{font-size:13px;color:var(--muted)}label{font-size:14px;font-weight:600;display:flex;flex-direction:column;gap:8px}label input,label select{width:100%;font-weight:400}.check{flex-direction:row;align-items:center;gap:8px;white-space:nowrap}.check input{width:16px;height:16px;accent-color:var(--teal);margin:0}.brand-mark{display:grid;place-items:center;background:#14b8a6;color:#08283e;border-radius:12px;width:43px;height:43px;font-size:30px}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:var(--navy);color:#dbe9f2;padding:30px 20px;display:flex;flex-direction:column;gap:18px;z-index:800;overflow:auto}.brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.brand strong{font-size:23px;letter-spacing:2px}.brand small{display:block;color:#a2bacd;margin-top:3px}.nav-label{font-size:11px;letter-spacing:1.5px;color:#86a4bd}.nav{background:transparent;border:0;color:#bed0df;text-align:left;display:flex;align-items:center;gap:12px;padding:12px 10px;font-size:14px}.nav:hover,.nav.active{background:#24445e;color:#fff}.nav.active{box-shadow:inset 3px 0 #2dd4bf}.sidebar>.nav{margin-top:-12px}.side-divider{height:1px;background:#355067}.sidebar select{background:#18364f;color:#f0f6fa;border-color:#3a5368;padding:10px 7px;font-size:14px}.sidebar>label{color:#b3c8d9}.sidebar-bottom{margin-top:auto;display:flex;flex-direction:column;gap:12px;padding-top:30px}.source-summary{background:#153b47;border:1px solid #31626b;color:#b8ece6;font-size:12px;text-align:left;display:flex;align-items:center;gap:8px}.source-summary i{width:7px;height:7px;border-radius:50%;background:#2dd4bf;flex-shrink:0}.quiet{background:transparent;color:#b1c4d3;border:0;text-align:left;font-size:13px}main{margin-left:240px;padding:32px 34px;max-width:2000px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px;gap:20px}#breadcrumb{color:var(--muted);font-size:14px;margin-top:6px}.header-actions{display:flex;gap:16px;align-items:center;font-size:14px}.live-pill{color:#137a68;background:#dff4ec;padding:7px 10px;border-radius:20px;font-size:12px;font-weight:650;white-space:nowrap}.live-pill.stale{color:#9a5512;background:#fff0d8}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.metrics article{padding:19px 22px;background:white;border:1px solid var(--border);border-radius:10px;min-width:0}.metrics span{font-size:13px;color:#536c81;font-weight:600}.metrics strong{display:block;font-size:34px;font-weight:650;letter-spacing:-1px;margin:8px 0}.metrics small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.metrics article:first-child{border-top:3px solid var(--teal);padding-top:17px}.panel,.map-section{background:white;border:1px solid var(--border);border-radius:12px;overflow:hidden}.surface-heading{padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:12px}.surface-heading p{font-size:13px;color:var(--muted);margin-top:5px}.map-controls{display:flex;gap:20px;align-items:center;font-size:13px}.map-controls button{font-size:13px}.map-body{position:relative;height:530px;border-block:1px solid var(--border)}#map{height:100%;background:#fff}.map-empty{position:absolute;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;background:#f6f9fc}.map-key{position:absolute;z-index:500;bottom:18px;left:18px;background:#ffffffed;border:1px solid var(--border);border-radius:6px;padding:10px 14px;display:grid;grid-template-columns:1fr 1fr;font-size:11px;gap:5px;width:215px;color:#334e68;pointer-events:none}.map-key span:last-child{text-align:right}.gradient{grid-column:1/-1;height:6px;border-radius:6px;background:linear-gradient(90deg,#22c5cb,#6fd36c,#f6cb4a,#ee6d3c,#d53441)}.map-footer{padding:13px 20px;font-size:12px;color:var(--muted);display:flex;gap:15px;justify-content:space-between;align-items:center}.map-footer>span{max-width:650px;line-height:1.5}.map-footer label{font-size:12px;flex-direction:row;align-items:center;white-space:nowrap}.map-footer select{padding:5px;font-size:12px}.ap-icon{background:none;border:0}.ap-dot{width:38px;height:38px;background:#fff;border:3px solid #07998e;border-radius:50%;color:#143b50;display:grid;place-items:center;font-weight:750;font-size:13px;box-shadow:0 2px 10px #0c2b4933}.ap-dot.stale{border-color:#95a4b0;color:#7b8b97}.ap-dot.outdoor{border-radius:9px}.ap-label{position:absolute;top:39px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:600;background:#16344ae8;color:#fff;white-space:nowrap;padding:4px 6px;border-radius:4px;pointer-events:none}.ap-icon:hover .ap-dot{box-shadow:0 0 0 6px #00ada326}.building-marker{border-radius:10px;background:#103a55;color:white;min-width:96px;text-align:center;padding:8px 12px;border:2px solid #34c6b3;box-shadow:0 3px 12px #18384f33}.building-marker b{display:block;font-size:20px}.building-marker small{color:#d0e7eb;font-size:11px;white-space:nowrap}.lower-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:22px;margin-top:24px}.chart{height:195px;margin:0 22px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px}.chart svg{height:100%;width:100%;overflow:visible}.chart-footer{display:flex;justify-content:space-between;gap:10px;padding:15px 22px;font-size:12px;color:var(--muted)}#ranking{padding:0 22px 20px}.rank-row{display:grid;grid-template-columns:24px minmax(0,1fr) 44px;align-items:center;gap:10px;width:100%;background:none;border:0;border-bottom:1px solid #edf1f5;border-radius:0;padding:10px 0;text-align:left;font-size:12px}.rank-row>span:first-child{color:#8294a5}.rank-row b{font-size:16px;text-align:right}.rank-track{height:4px;background:#eaf1f5;border-radius:3px;margin-top:6px}.rank-track i{display:block;background:#199b9c;height:4px;border-radius:3px}.page-footer{display:flex;justify-content:space-between;margin-top:24px;font-size:12px;color:#6e8496}.notice{padding:12px 16px;background:#fff4de;border:1px solid #eddbb1;border-radius:8px;color:#84560e;margin-bottom:18px;font-size:14px}.table-scroll{max-height:550px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;background:#f5f8fb;color:#647c90;font-size:12px;position:sticky;top:0}td,th{padding:13px 18px;border-bottom:1px solid #e7edf2}td small{display:block;font-size:11px;margin-top:4px}.tag{font-size:11px;padding:4px 7px;border-radius:4px;background:#e3f4ee;color:#1c7568;white-space:nowrap}.tag.warn{background:#fff0d6;color:#956112}dialog{border:1px solid #d6e1ea;border-radius:14px;width:min(560px,94vw);max-height:90vh;padding:26px;color:#17374f;box-shadow:0 20px 80px #081d3a44}dialog::backdrop{background:#0e253c88;backdrop-filter:blur(3px)}.wide-dialog{width:min(920px,95vw)}.dialog-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:20px}.dialog-top button{border:0;background:#f1f5f8}.dialog-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:26px;flex-wrap:wrap}.detail-stat{font-size:48px;font-weight:650;margin:0 0 20px;color:#078a82}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;font-size:14px}.detail-grid dt{font-size:12px;color:var(--muted);margin-bottom:5px}.detail-grid dd{margin:0;overflow-wrap:anywhere}.manage-columns{display:grid;grid-template-columns:1fr 1fr;gap:36px}.manage-columns form{display:flex;flex-direction:column;gap:15px}.form-row{display:flex;gap:10px}.form-row>*{min-width:0;width:50%}.manage-columns p{line-height:1.6}.source-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:15px 0;border-bottom:1px solid var(--border);font-size:14px}.source-row p{grid-column:1/-1;font-size:12px;color:var(--muted)}#sourceRows{margin-top:15px}#sourcesDialog>p{font-size:14px;color:var(--muted);line-height:1.6}.placing-banner{position:absolute;z-index:700;top:15px;left:50%;transform:translateX(-50%);background:#113951;color:#fff;padding:10px 16px;border-radius:8px;font-size:14px;white-space:nowrap}.placing-banner button{padding:4px 8px;margin-left:12px;font-size:12px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#153c51;color:#fff;padding:14px 20px;border-radius:8px;z-index:5000;max-width:90vw;font-size:14px}.login-screen{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 20% 10%,#1b5571,#0c2137 70%);padding:25px}.login-card{background:#fff;padding:42px;border-radius:16px;width:min(440px,100%);display:flex;flex-direction:column;gap:20px;box-shadow:0 30px 100px #06111d88}.login-card .eyebrow{margin:0;font-size:10px}.login-card h1{font-size:30px}.login-card>p:not(.eyebrow){color:var(--muted);font-size:14px;line-height:1.6}.login-card #loginError{color:#b42335;font-size:13px}.leaflet-container{font:inherit}.leaflet-control-attribution{font-size:10px!important}.leaflet-tooltip{font:12px Segoe UI,Arial,sans-serif}.heat-canvas{position:absolute;pointer-events:none;opacity:.68}.table-empty{padding:35px;text-align:center;color:var(--muted)}

@media(min-width:1650px){.map-body{height:620px}}

@media(max-width:1150px){.sidebar{width:205px;padding:24px 15px}main{margin-left:205px;padding:24px 20px}.metrics{gap:10px}.metrics article{padding:15px}.metrics article:first-child{padding-top:13px}.metrics span{font-size:12px}.lower-grid{grid-template-columns:1fr}.map-footer{flex-wrap:wrap}.topbar{align-items:flex-start}.header-actions{gap:8px;flex-wrap:wrap;justify-content:flex-end}.map-body{height:480px}}

@media(max-width:760px){.sidebar{position:relative;width:100%;padding:15px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.brand{margin:0;grid-column:1/-1}.brand small{display:inline;margin-left:10px}.brand-mark{width:34px;height:34px;font-size:25px}.nav-label,.side-divider{display:none}.sidebar>.nav{margin:0}.sidebar-bottom{grid-column:1/-1;padding:0;margin:0;display:flex;flex-direction:row;flex-wrap:wrap}.sidebar-bottom .nav{padding:6px}.source-summary{margin-left:auto}.quiet{padding:6px}.sidebar>label{font-size:12px}.sidebar .nav{font-size:13px}.sidebar .check{font-size:12px}main{margin:0;padding:20px 12px}h1{font-size:25px}.eyebrow{font-size:10px}.header-actions{max-width:150px}.header-actions button{font-size:12px}.metrics{grid-template-columns:1fr 1fr}.metrics strong{font-size:29px}.surface-heading{padding:16px;align-items:flex-start;flex-wrap:wrap}.map-body{height:420px}.map-footer{padding:12px}.map-footer>span{font-size:11px}.manage-columns{grid-template-columns:1fr}.map-controls{gap:15px}.page-footer{gap:12px;font-size:10px}.placing-banner{white-space:normal;width:90%}.detail-grid{grid-template-columns:1fr}.ap-label{font-size:9px}.login-card{padding:28px}.map-key{width:175px}.map-key span:last-child{font-size:10px}}

.building-marker{min-width:64px;padding:4px 7px;border-radius:7px}.building-marker b{font-size:14px}.building-marker small{font-size:9px}.campus-heat-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-left:auto}.campus-heat-controls label{display:flex;flex-direction:row;align-items:center;gap:5px;font-size:11px;font-weight:600}.campus-heat-controls select{font-size:11px;padding:4px 6px}.campus-heat-controls input{width:85px;padding:0;accent-color:#0b9f98}.building-marker{width:78px!important;min-width:78px!important;max-width:78px!important;height:44px;padding:3px 4px!important;border-radius:6px;overflow:hidden}.building-marker b{font-size:13px!important;line-height:16px}.building-marker small{display:block;font-size:8px!important;line-height:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.building-marker.cluster{width:54px!important;min-width:54px!important;max-width:54px!important;height:42px;border-radius:50%;padding-top:5px!important}.building-marker.cluster b{font-size:14px!important;line-height:15px}.building-marker.cluster small{font-size:7px!important;line-height:9px;white-space:normal;overflow:visible;text-overflow:clip}.building-marker.single{width:46px!important;min-width:46px!important;max-width:46px!important;height:42px;border-radius:50%;padding-top:5px!important}.building-marker.single small{font-size:7px!important;line-height:9px}



@media print{

  #reportSection>.surface-heading,

  #reportOptions,

  .report-actions{display:none!important}

}





/* HUGIN redesign */

:root{

  --bg:#f7f9fb;--surface:#ffffff;--surface-2:#eef4f8;--border:#d9e1e8;--text:#0f2740;--text-muted:#5d7288;--primary:#005c8b;--primary-hover:#004d75;--success:#0f8f65;--warning:#b7791f;--danger:#b42335;--sidebar-bg:#ffffffcc;--sidebar-active:#e6f1f8;--card-radius:16px;--shadow-sm:0 10px 30px rgba(15,39,64,.08);--shadow-md:0 22px 70px rgba(15,39,64,.14)

}

:root[data-theme="dark"]{--bg:#071018;--surface:#0d1720;--surface-2:#12202b;--border:#1f3444;--text:#eaf1f6;--text-muted:#afc0cf;--primary:#1e88d8;--primary-hover:#3d9ee7;--success:#39c68f;--warning:#f0b84f;--danger:#ff6b7a;--sidebar-bg:#0b151ed9;--sidebar-active:rgba(0,92,139,.25);--shadow-sm:0 16px 40px rgba(0,0,0,.22);--shadow-md:0 30px 80px rgba(0,0,0,.35)}

html{background:var(--bg);color:var(--text)}body{background:radial-gradient(circle at 16% -10%,rgba(0,92,139,.12),transparent 36%),var(--bg);color:var(--text)}

button,select,input{background:var(--surface);color:var(--text);border-color:var(--border);border-radius:10px}button:hover{background:var(--surface-2)}.primary{background:var(--primary);border-color:var(--primary);color:#fff}.primary:hover{background:var(--primary-hover)}

.sidebar{background:var(--sidebar-bg);color:var(--text);border-right:1px solid var(--border);box-shadow:var(--shadow-sm);backdrop-filter:blur(16px)}.nav{color:var(--text-muted);border-radius:9px}.nav:hover,.nav.active{background:var(--sidebar-active);color:var(--primary);box-shadow:none}.nav.active{font-weight:750}.nav-label{color:var(--text-muted)}.side-divider{background:var(--border)}.sidebar select{background:var(--surface);color:var(--text);border-color:var(--border)}.sidebar>label{color:var(--text-muted)}.source-summary{background:var(--surface-2);border-color:var(--border);color:var(--text)}.quiet{color:var(--text-muted)}

.hugin-brand{align-items:flex-start}.raven-mark,.hugin-login-mark{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:linear-gradient(145deg,var(--surface-2),var(--surface));border:1px solid var(--border);box-shadow:var(--shadow-sm)}.raven-mark svg,.hugin-login-mark svg{width:46px;height:46px;fill:var(--text)}.brand strong{font-size:26px;color:var(--text)}.brand small{color:var(--text-muted);line-height:1.4}.brand-mark{background:var(--primary);color:white}.login-card .brand-mark{display:none}.hugin-login-mark{width:64px;height:64px}.login-card h1 span{display:block;color:var(--text-muted);font-size:24px;font-weight:500;letter-spacing:-.5px}.login-screen{background:radial-gradient(circle at 15% 10%,rgba(0,92,139,.30),transparent 35%),linear-gradient(135deg,#071018,#12344a)}.login-card{background:var(--surface);color:var(--text);box-shadow:var(--shadow-md)}

main{max-width:1900px}.topbar{background:color-mix(in srgb,var(--surface) 82%,transparent);border:1px solid var(--border);border-radius:18px;padding:14px 16px;box-shadow:var(--shadow-sm);backdrop-filter:blur(12px)}#globalSearch{min-width:min(420px,28vw)}#themeToggle{width:42px}.eyebrow{color:var(--text-muted)}#breadcrumb,small,.muted{color:var(--text-muted)}h1,h2,h3{color:var(--text)}

.metrics{grid-template-columns:repeat(4,minmax(180px,1fr))}.metrics article,.panel,.map-section,.dashboard-card,.building-picker{background:var(--surface);border-color:var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm)}.metrics article:first-child{border-top-color:var(--primary)}.metrics span,.report-card span{color:var(--text-muted)}.metrics strong,.report-card strong{color:var(--text)}

.dashboard-section{display:block;margin-bottom:22px}.dashboard-grid{display:grid;grid-template-columns:1.4fr .85fr;gap:18px}.dashboard-card.wide{min-height:240px}.distribution-list,.source-mini{display:grid;gap:12px;padding:0 22px 22px}.distribution-list div{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.distribution-list i{grid-column:1/-1;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--primary),#7fb7df)}.source-mini div{display:flex;justify-content:space-between;border-bottom:1px solid var(--border);padding-bottom:10px}.source-mini b{color:var(--text)}

.building-picker{display:flex;justify-content:space-between;align-items:end;gap:22px;padding:20px 22px;margin-bottom:20px}.building-picker p{color:var(--text-muted);font-size:14px;margin-top:4px}.building-picker label{min-width:min(460px,45vw)}

.surface-heading{border-bottom:1px solid var(--border)}.map-body{border-color:var(--border)}.map-empty{background:var(--surface-2)}.map-footer,.placement-tray{background:var(--surface);border-color:var(--border)}.placement-tray{background:var(--surface-2)!important}.unplaced-card,.report-card{background:var(--surface)!important;border-color:var(--border)!important;color:var(--text);box-shadow:var(--shadow-sm)!important}.map-key{background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--text);border-color:var(--border)}

table{color:var(--text)}th{background:var(--surface-2);color:var(--text-muted)}td,th{border-color:var(--border)}.table-empty{color:var(--text-muted)}.tag{background:rgba(15,143,101,.12);color:var(--success)}.tag.warn{background:rgba(183,121,31,.14);color:var(--warning)}dialog{background:var(--surface);color:var(--text);border-color:var(--border)}.dialog-top button{background:var(--surface-2)}

.model-section{margin-top:22px}.model-section.is-collapsed #modelGallery{display:none}.model-section-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.model-image-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.model-image-form select{min-width:180px}.model-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:10px;padding:12px 16px 16px}.model-card{border:1px solid var(--border);border-radius:10px;background:var(--surface-2);overflow:hidden}.model-card img,.model-placeholder{width:100%;height:82px;object-fit:cover;display:grid;place-items:center;font-size:32px;color:var(--primary);background:linear-gradient(135deg,var(--surface-2),var(--surface))}.model-card div:last-child{padding:8px 10px}.model-card strong{display:block;font-size:13px;line-height:1.3}.model-card small{display:block;margin-top:3px;font-size:11px}
.leaflet-container{background:var(--surface-2)}#toast{background:var(--text);color:var(--bg)}.live-pill{background:rgba(15,143,101,.12);color:var(--success)}.live-pill.stale{background:rgba(183,121,31,.14);color:var(--warning)}

@media(max-width:1150px){.dashboard-grid{grid-template-columns:1fr}.building-picker{align-items:stretch;flex-direction:column}.building-picker label{width:100%;min-width:0}#globalSearch{min-width:180px}}

@media(max-width:760px){.topbar{display:block}.header-actions{margin-top:14px;max-width:none}.dashboard-grid{grid-template-columns:1fr}.metrics{grid-template-columns:1fr}.sidebar{background:var(--sidebar-bg)}.raven-mark{width:44px;height:44px}.raven-mark svg{width:34px;height:34px}}

@media print{#reportSection>.surface-heading,#reportOptions,.report-actions{display:none!important}}

/* Compact header and portrait layouts */

[hidden]{display:none!important}

.hugin-brand{display:block;padding:0;margin-bottom:18px}.hugin-logo{display:block;width:100%;height:auto;border-radius:8px}.login-logo{margin:0 auto 22px;max-width:320px}.sidebar{width:220px;padding:18px 14px}.sidebar .side-divider{margin:12px 0}.sidebar .nav{padding:10px 12px}.sidebar-bottom{margin-top:24px}main{margin-left:220px;padding:18px 22px;min-width:0}.topbar{padding:10px 14px;margin-bottom:10px;gap:12px}.topbar h1{font-size:24px;margin:0;line-height:1.2}.topbar .eyebrow{display:none}#breadcrumb{margin:3px 0 0;font-size:12px}.header-actions{gap:8px;flex-wrap:wrap;margin:0}#globalSearch{min-width:0;width:220px}.header-actions input,.header-actions button{height:36px;padding:7px 10px}.header-filters{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(140px,1fr) minmax(180px,1fr) auto;gap:12px;align-items:end;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:14px}.header-filters label{margin:0;font-size:12px;min-width:0;gap:4px}.header-filters select{width:100%;min-width:0;height:36px;padding:6px 9px}.header-filters .check{align-self:center;white-space:nowrap}.surface-heading{padding:14px 18px;gap:12px}.surface-heading h2{font-size:17px}.surface-heading p{margin-top:4px}.notice{margin:10px 0 14px;padding:10px 12px}.model-image-form{max-width:100%}.model-image-form input{max-width:230px}.metrics{gap:12px}.metrics article{padding:16px}.metrics strong{font-size:30px}.table-scroll{overflow:auto}.topbar>div:first-child{flex-shrink:0}

@media(max-width:1200px){#globalSearch{width:180px}.header-filters{grid-template-columns:1.2fr 1fr 1.2fr}.header-filters .check{grid-column:1/-1}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{flex-wrap:wrap}.surface-heading{flex-wrap:wrap}.inventory-tools{min-width:0}.inventory-tools>input{min-width:0!important}}

@media(max-width:900px){.sidebar{position:relative;width:100%;height:auto;display:flex;flex-wrap:wrap;gap:4px;padding:10px 14px;border-right:0;border-bottom:1px solid var(--border)}.hugin-brand{width:145px;margin:0 14px 4px 0}.sidebar .nav-label,.sidebar .side-divider{display:none}.sidebar>.nav{flex:0 1 auto;margin:0;font-size:12px;padding:8px}.sidebar-bottom{position:static;width:100%;margin:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.sidebar-bottom .source-summary{margin:0;padding:7px;font-size:11px}.sidebar-bottom .quiet{margin:0;padding:7px}main{margin-left:0;padding:12px;width:100%}.dashboard-grid,.lower-grid{grid-template-columns:1fr}.header-filters{gap:8px}.topbar{display:flex}.header-actions{max-width:100%}.table-scroll table{min-width:650px}.dashboard-card{min-width:0}.map-body #map{height:48vh;min-height:300px}.report-body{padding:12px!important}.report-options{gap:6px!important}.model-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.manage-columns{grid-template-columns:1fr}}

@media(max-width:480px){.topbar{padding:10px}.topbar h1{font-size:22px}.header-actions{width:100%;display:flex}.header-actions #globalSearch{flex:1;width:100px}.header-actions .live-pill{font-size:10px;padding:6px}.header-actions #refresh{font-size:11px;padding:6px}.header-filters{grid-template-columns:1fr 1fr;padding:10px}.header-filters label:nth-child(3){grid-column:1/-1}.header-filters .check{grid-column:1/-1}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics article{padding:12px}.metrics strong{font-size:25px}.metrics span,.metrics small{font-size:11px}.surface-heading{padding:12px}.surface-heading input{width:100%;min-width:0}.inventory-tools{width:100%;flex-wrap:wrap}.inventory-tools>input{width:100%}.login-card{width:calc(100% - 24px);padding:24px;max-width:440px}.login-logo{max-width:280px}.model-gallery{padding:12px;gap:8px}.model-card strong{overflow-wrap:anywhere}.model-image-form select,.model-image-form input{width:100%;min-width:0;max-width:100%}dialog{max-width:calc(100vw - 20px);padding:16px}.map-footer{flex-wrap:wrap}.page-footer{flex-wrap:wrap}}

@media print{.header-filters{display:none!important}main{margin:0;padding:0}}

/* HUGIN identity, inventory and report charts */

.brand-lockup{display:flex;align-items:center;gap:4px;color:#162835;min-width:0}.brand-lockup .raven{width:64px;height:72px;object-fit:contain;flex-shrink:0}.brand-lockup>div{min-width:0}.brand-lockup strong{display:block;font-size:25px;letter-spacing:-1px;color:inherit}.brand-lockup span{display:block;font-size:13px;white-space:nowrap}.brand-lockup small{display:block;font-size:8px;letter-spacing:1.5px;color:inherit;margin-top:6px}.dark-raven{display:none!important}[data-theme=dark] .brand-lockup{color:#d5d6d8}[data-theme=dark] .light-raven{display:none!important}[data-theme=dark] .dark-raven{display:block!important}.login-card .brand-lockup{justify-content:center;margin-bottom:22px}.login-card .brand-lockup .raven{width:100px;height:115px}.login-card .brand-lockup strong{font-size:38px}.login-card .brand-lockup span{font-size:19px}.ui-icon{width:21px;height:21px;vertical-align:middle;flex-shrink:0}.nav{display:flex;align-items:center;gap:10px}.metrics article{position:relative;padding-left:68px}.metric-icon{position:absolute;top:17px;left:14px;display:grid;place-items:center;background:var(--surface-2);color:var(--primary);border-radius:50%;width:40px;height:40px}.metric-icon .ui-icon{width:23px;height:23px}.ap-identity{display:flex;gap:12px;align-items:center}.ap-thumb{width:54px;height:54px;object-fit:contain;border-radius:8px;background:var(--surface-2)}.erp-button{display:inline-flex;align-items:center;justify-content:center;background:#F58634;color:#172b3a;border:1px solid #F58634;border-radius:6px;padding:10px 14px;font-weight:650;text-decoration:none;font-size:13px}.collection-form{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:16px 0;border-bottom:1px solid var(--border);margin-bottom:18px}.collection-form h3{width:100%}.collection-form label{min-width:140px}.collection-form p{width:100%;font-size:13px}#centerSummary{margin-bottom:14px}#centerSummary summary{padding:14px;cursor:pointer;font-size:14px;font-weight:600}.donut-layout{display:flex;align-items:center;gap:18px;padding:18px;max-width:680px}.donut-layout svg{width:48%;max-width:220px;flex-shrink:0}.donut-layout ul{list-style:none;padding:0;margin:0;flex:1;min-width:0}.donut-layout li{display:flex;align-items:center;gap:7px;margin:10px 0;font-size:12px}.donut-layout li i{width:9px;height:9px;border-radius:50%;flex-shrink:0}.donut-layout li span{flex:1;overflow-wrap:anywhere}.chart svg{width:100%;height:auto}.report-section{break-inside:avoid}.report-table{overflow-x:auto}.report-options label{background:var(--surface)!important}.dashboard-section .chart{min-height:180px}.dialog-actions{flex-wrap:wrap}

.model-card img,.ap-thumb{background:transparent}

@media(max-width:900px){.sidebar .brand-lockup .raven{width:46px;height:48px}.sidebar .brand-lockup strong{font-size:19px}.sidebar .brand-lockup span{font-size:10px}.sidebar .brand-lockup small{font-size:6px}.metrics article{padding-left:62px}.inventory-tools label{flex:1;min-width:130px}.inventory-tools select{max-width:100%}}

@media(max-width:480px){.metrics article{padding:12px}.metric-icon{position:static;margin-bottom:8px}.donut-layout{gap:8px;padding:12px}.donut-layout svg{width:43%}.donut-layout li{font-size:11px}.ap-thumb{width:42px;height:42px}.collection-form label{min-width:0;flex:1}.collection-form button{width:100%}.login-card .brand-lockup .raven{width:80px}.login-card .brand-lockup strong{font-size:30px}.login-card .brand-lockup span{font-size:16px}}

@media print{.report-table{overflow:visible}.donut-layout{max-width:600px}.chart{break-inside:avoid}#centerSummary{display:none}}

@media(max-width:900px){.sidebar>.nav{width:calc(33.333% - 4px);flex:1 0 calc(33.333% - 4px);justify-content:center;white-space:normal;text-align:center;font-size:11px;gap:5px}.sidebar .hugin-brand{width:100%;margin:0}.sidebar .brand-lockup{justify-content:center}.sidebar-bottom .nav{width:auto}.sidebar-bottom{justify-content:center}.sidebar .ui-icon{width:18px;height:18px}}

@media(max-width:900px){.sidebar{flex-direction:row}.sidebar-bottom{flex-direction:row}}



#pickPdfBuilding{font-size:11px;padding:6px 10px;border-color:var(--primary);color:var(--primary);background:var(--surface)}#pickPdfBuilding:hover{background:var(--surface-2)}#campusPdfBuilding{max-width:min(320px,70vw)}@media(max-width:760px){.campus-heat-controls{width:100%;margin-left:0}.campus-heat-controls label{width:100%;justify-content:space-between}.campus-heat-controls select{max-width:62%}#pickPdfBuilding{width:100%}}





.coverage-note{font-size:13px;color:var(--muted);line-height:1.5}.coverage-legend{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 14px}.coverage-legend span,.coverage-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;color:#102a43}.coverage-bad,.coverage-pill.coverage-bad{background:#df5b61}.coverage-warn,.coverage-pill.coverage-warn{background:#f5c890}.coverage-mid,.coverage-pill.coverage-mid{background:#9bbdea}.coverage-good,.coverage-pill.coverage-good{background:#95c681}.coverage-ok,.coverage-pill.coverage-ok{background:#00f018}.report-table td small{display:block;margin-top:4px}

/* Monitoramento operacional e fluidez de planta */

.chart-options{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.chart-options .check{font-size:12px;color:var(--text-muted)}.chart text{paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}.monitor-row td{vertical-align:middle}.monitor-open{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;padding:0;text-align:left;color:var(--text);font-weight:750}.monitor-open:hover{background:transparent;color:var(--primary)}.monitor-led{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;font-size:13px;line-height:1}.monitor-led.danger,.monitor-row.danger .monitor-led{color:#fff;background:#d92332;box-shadow:0 0 0 4px rgba(217,35,50,.12)}.monitor-led.ok,.monitor-row.ok .monitor-led{color:#fff;background:#18a66a;box-shadow:0 0 0 4px rgba(24,166,106,.12)}.monitor-led.erp,.monitor-row.erp .monitor-led{color:#fff;background:#F58634;box-shadow:0 0 0 4px rgba(245,134,52,.14)}.monitor-row.danger{box-shadow:inset 4px 0 #d92332}.monitor-row.ok{box-shadow:inset 4px 0 #18a66a}.monitor-row.erp{box-shadow:inset 4px 0 #F58634}.blink-red,.monitor-led.blink-red{animation:hugin-blink-red 1s infinite}.blink-green,.monitor-led.blink-green{animation:hugin-blink-green 1.15s infinite}@keyframes hugin-blink-red{0%,100%{filter:brightness(1);box-shadow:0 0 0 4px rgba(217,35,50,.12)}50%{filter:brightness(1.45);box-shadow:0 0 0 8px rgba(217,35,50,.24)}}@keyframes hugin-blink-green{0%,100%{filter:brightness(1);box-shadow:0 0 0 4px rgba(24,166,106,.12)}50%{filter:brightness(1.35);box-shadow:0 0 0 8px rgba(24,166,106,.22)}}.offline-history{margin-top:20px;border-top:1px solid var(--border);padding-top:14px}.offline-history h3{font-size:14px;margin:0 0 10px}.offline-history ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.offline-history li{display:flex;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:9px;padding:8px 10px;background:var(--surface-2);font-size:12px}.offline-history li span{color:var(--text-muted)}.busy-inline{display:inline-block;width:15px;height:15px;border:2px solid rgba(0,92,139,.22);border-top-color:var(--primary);border-radius:50%;vertical-align:-3px;margin-right:7px;animation:login-spin .8s linear infinite}.is-working{position:relative;opacity:.78}.is-working::after{content:'Processando…';position:absolute;inset:auto 12px 12px auto;background:var(--text);color:var(--bg);padding:8px 10px;border-radius:999px;font-size:12px;font-weight:750;box-shadow:var(--shadow-sm)}.placing-mode #map{cursor:crosshair}.placing-banner{animation:placing-pulse 1.4s ease-in-out infinite}.unplaced-card{transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.unplaced-card:hover{transform:translateY(-2px);border-color:var(--primary)!important}.unplaced-card.dragging{transform:scale(.98);opacity:.55}@keyframes placing-pulse{0%,100%{box-shadow:0 0 0 0 rgba(0,92,139,.25)}50%{box-shadow:0 0 0 8px rgba(0,92,139,0)}}@media(max-width:760px){.offline-history li{display:block}.offline-history li span{display:block;margin-top:4px}.chart-options{width:100%;justify-content:space-between}}



.chart-toggle{margin-left:auto;white-space:nowrap;font-size:13px;color:var(--muted)}

.monitor-tag:disabled,.check input:disabled+span{opacity:.65;cursor:not-allowed}



.popup-actions{display:flex;gap:6px;margin-top:8px}.popup-actions button{border:1px solid var(--border);background:var(--surface);border-radius:7px;padding:5px 7px;font-size:12px;font-weight:700;line-height:1.2}.danger{border-color:#f5b08c!important;background:#F58634!important;color:#fff!important}.dialog-actions .danger{background:#F58634;color:#fff}



.chart-value-label rect{fill:color-mix(in srgb,var(--surface) 92%,transparent);stroke:var(--border);filter:drop-shadow(0 2px 5px rgba(18,48,73,.16))}.chart-value-label text{font-size:10px;font-weight:800;fill:var(--text)}



/* Ajustes 15/09: monitoramento limpo e impressão de relatórios */

.monitor-row.danger,.monitor-row.ok,.monitor-row.erp{box-shadow:none!important}

.monitor-led svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

.monitor-led.danger{color:#d92332!important;background:transparent!important;box-shadow:none!important}

.monitor-led.ok{color:#18a66a!important;background:transparent!important;box-shadow:none!important}

.monitor-led.erp{color:#F58634!important;background:transparent!important;box-shadow:none!important}

.monitor-led.blink-red{animation:hugin-wifi-red 1s infinite!important}

.monitor-led.blink-green{animation:hugin-wifi-green 1.15s infinite!important}

@keyframes hugin-wifi-red{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.25;transform:scale(1.18)}}

@keyframes hugin-wifi-green{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(1.14)}}

.report-tabs button{white-space:nowrap}

@media print{#reportOptions{display:none!important}.report-table table{width:100%;font-size:10px}.report-grid{grid-template-columns:repeat(2,1fr)!important}.report-card{break-inside:avoid}}

.placement-tray{padding:14px 18px;border-top:1px solid var(--border);background:var(--surface-2)}.placement-tray>div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.placement-tray input{width:100%;max-width:420px;margin-bottom:10px}.unplaced-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.unplaced-card{text-align:left;display:grid;gap:4px}.unplaced-card b,.unplaced-card small,.unplaced-card em{display:block}.unplaced-card em{font-size:11px;color:var(--text-muted);font-style:normal}

.advanced-settings-entry{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 22px 18px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.advanced-settings-entry strong,.advanced-settings-entry small{display:block}.advanced-settings-entry small{margin-top:3px}.grafana-settings-intro{margin:0 22px 18px;line-height:1.5}.grafana-settings-form{display:grid;gap:14px}.grafana-settings-grid{display:grid;grid-template-columns:2fr 1fr minmax(130px,.7fr) 1.4fr;gap:12px}.grafana-settings-form label{gap:6px}.grafana-token-status{min-height:18px;margin:0;color:var(--muted);font-size:12px}.grafana-settings-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.grafana-settings-actions .danger{color:#a23a32;border-color:#e1b5b0;background:#fff7f6}@media(max-width:760px){.grafana-settings-grid{grid-template-columns:1fr 1fr}.grafana-settings-grid label:first-child{grid-column:1/-1}}


/* Ajustes 15/09: relatório multi-seleção, impressão limpa e modal de AP */

.report-tabs-multi{align-items:center;gap:7px!important;padding:0 18px 12px!important;overflow-x:auto;flex-wrap:nowrap!important}

.report-tabs-multi button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:8px 12px!important;font-size:12px!important;line-height:1.1;white-space:nowrap;flex:0 0 auto}

.report-tabs-multi button span{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--surface-2);font-size:11px}

.report-tabs-multi button.active span{background:rgba(255,255,255,.2);color:#fff}

#detailDialog{max-width:min(640px,calc(100vw - 28px))}

#detailDialog .dialog-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap}

#detailDialog .dialog-actions button,#detailDialog .dialog-actions a{font-size:13px!important;padding:9px 12px!important;min-height:38px;white-space:nowrap}

.ap-connection-history .ap-mini-chart{min-height:120px;padding:6px 0}

.ap-connection-history .ap-mini-chart svg{max-height:190px}

@media(max-width:760px){#detailDialog .dialog-actions{justify-content:stretch}#detailDialog .dialog-actions button,#detailDialog .dialog-actions a{flex:1 1 190px}.report-tabs-multi button{font-size:11px!important;padding:7px 10px!important}}

@media print{

  @page{size:A4 portrait;margin:10mm}

  html,body{width:auto!important;height:auto!important;overflow:visible!important;background:#fff!important}

  .sidebar,.header-actions,#notice,.page-footer,.metrics,#reportOptions,#reportSection>.surface-heading,.report-actions,.topbar .header-actions{display:none!important}

  main{margin:0!important;padding:0!important;width:auto!important;overflow:visible!important}

  .topbar{display:block!important;margin:0 0 6mm!important;padding:0!important;border:0!important;box-shadow:none!important;background:#fff!important}

  #reportSection,.panel{display:block!important;border:0!important;box-shadow:none!important;background:#fff!important;overflow:visible!important}

  .report-body{display:block!important;padding:0!important;overflow:visible!important}

  .report-section{display:block!important;break-before:auto!important;page-break-before:auto!important;break-inside:auto!important;margin:0 0 8mm!important}

  .report-section.skip-print{display:none!important}

  .report-section:not(.skip-print)+.report-section:not(.skip-print){break-before:auto!important;page-break-before:auto!important}

  .report-table{overflow:visible!important;max-height:none!important}

  .report-table h3{break-after:avoid!important;margin:0 0 4mm!important;font-size:14px!important}

  .report-table table{width:100%!important;table-layout:auto!important;font-size:9.5px!important;border-collapse:collapse!important}

  .report-table th,.report-table td{padding:5px 6px!important;vertical-align:top!important}

  .report-grid{grid-template-columns:repeat(2,1fr)!important;gap:8px!important;margin-bottom:8mm!important}

  .report-card{break-inside:avoid!important;padding:10px!important}

  .chart svg{max-height:105mm!important;width:100%!important;height:auto!important}

  .donut-layout{max-width:100%!important;gap:8px!important;padding:8px!important;break-inside:avoid!important}

  .donut-layout svg{max-width:150px!important}

}



/* Correção: imprimir somente o conteúdo selecionado em Relatórios */

@media print{

  [hidden]{display:none!important}

  body.printing-report .sidebar,

  body.printing-report .topbar,

  body.printing-report .header-actions,

  body.printing-report #notice,

  body.printing-report .page-footer,

  body.printing-report #metrics,

  body.printing-report #dashboardSection,

  body.printing-report #buildingPicker,

  body.printing-report #mapSection,

  body.printing-report #inventorySection,

  body.printing-report #modelSection,

  body.printing-report #monitorSection,

  body.printing-report #lowerGrid,

  body.printing-report #reportOptions,

  body.printing-report #reportSection>.surface-heading,

  body.printing-report .report-section[data-report="summary"]{display:none!important}

  body.printing-report #reportSection{display:block!important;border:0!important;box-shadow:none!important;background:#fff!important;overflow:visible!important}

  body.printing-report #reportBody{display:block!important;padding:0!important;overflow:visible!important}

  body.printing-report .report-section{display:block!important;margin:0 0 8mm!important;break-before:auto!important;page-break-before:auto!important;break-inside:auto!important}

  body.printing-report .report-section.skip-print{display:none!important}

}



/* Gráficos do relatório com visual de card */

.report-chart-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.85fr);gap:14px;align-items:stretch}

.report-chart-card{border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm);padding:16px;min-width:0;overflow:hidden}

.report-chart-card>div:first-child{margin-bottom:10px}

.report-chart-card h3{font-size:15px;margin:0;color:var(--text)}

.report-chart-card p{font-size:12px;color:var(--text-muted);margin-top:4px}

.report-chart{height:230px!important;margin:0!important;padding:4px 6px;align-items:center;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 45%,transparent),transparent);border-radius:10px}

.report-chart svg{max-height:220px;width:100%;height:100%}

.report-chart-card .donut-layout{max-width:none;padding:4px 2px 0;min-height:230px;justify-content:center}

.report-chart-card .donut-layout svg{max-width:170px;width:42%}

.report-empty-chart{min-height:230px;display:grid;place-items:center;border:1px dashed var(--border);border-radius:12px;color:var(--text-muted);font-size:13px;background:var(--surface-2)}

@media(max-width:980px){.report-chart-grid{grid-template-columns:1fr}.report-chart{height:190px!important}.report-chart-card .donut-layout{min-height:190px}}

@media print{.report-chart-grid{grid-template-columns:1fr!important;gap:6mm!important}.report-chart-card{box-shadow:none!important;border:1px solid #d8e1ea!important;padding:8mm!important;break-inside:avoid!important}.report-chart{height:75mm!important}.report-chart svg{max-height:72mm!important}.report-empty-chart{min-height:45mm!important}.report-chart-card .donut-layout{min-height:55mm!important;padding:0!important}.report-chart-card .donut-layout svg{max-width:36mm!important}}





.projects-section{overflow:hidden}.project-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.project-actions input{min-width:280px}.project-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;padding:16px 18px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 70%,transparent),transparent)}.project-summary article{border:1px solid var(--border);border-radius:14px;background:var(--surface);padding:14px;box-shadow:var(--shadow-sm)}.project-summary span{font-size:12px;color:var(--text-muted);font-weight:700}.project-summary strong{display:block;font-size:24px;margin:5px 0;color:var(--text)}.project-summary small{display:block;color:var(--text-muted);font-size:12px;line-height:1.35}.project-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;padding:18px}.project-card{border:1px solid var(--border);border-left:5px solid var(--primary);border-radius:16px;background:var(--surface);padding:15px;box-shadow:var(--shadow-sm);display:grid;gap:12px}.project-card.wait{border-left-color:#d48a13}.project-card.new{border-left-color:#0ea5e9}.project-card.done{border-left-color:#10b981}.project-card-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.project-number{font-weight:800;color:var(--primary);font-size:13px}.project-priority{background:#fff2de;color:#965b00;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700}.project-card h3{font-size:15px;line-height:1.35;margin:0;color:var(--text)}.project-meta{display:grid;gap:2px}.project-meta span,.project-people small{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:700}.project-meta strong{font-size:14px}.project-tags{display:flex;gap:6px;flex-wrap:wrap}.project-tags span{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:5px 8px;font-size:12px;color:var(--text-muted)}.project-people{display:grid;grid-template-columns:auto 1fr;gap:3px 8px;align-items:center;border-top:1px solid var(--border);padding-top:10px}.project-people b{font-size:12px;font-weight:700}.project-link{justify-self:start;text-decoration:none;border:1px solid var(--border);border-radius:10px;padding:8px 11px;font-weight:800;color:var(--primary);background:var(--surface-2)}.project-loading,.project-error{grid-column:1/-1;border:1px dashed var(--border);border-radius:14px;padding:28px;text-align:center;color:var(--text-muted);display:grid;gap:8px;place-items:center}.project-loading i{width:32px;height:32px;border:4px solid #dbe8f3;border-top-color:var(--primary);border-radius:50%;animation:login-spin .8s linear infinite}.project-error strong{color:var(--text)}







.project-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:14px 18px 0}.project-tabs button{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:9px 13px;font-weight:800;color:var(--text-muted)}.project-tabs button.active{background:var(--primary);border-color:var(--primary);color:#fff}.project-tabs span{opacity:.8;margin-left:4px}.project-timeline{border-top:1px solid var(--border);padding-top:10px;display:grid;gap:8px}.project-timeline>strong{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.project-timeline div{display:grid;grid-template-columns:118px 1fr;gap:4px 8px;align-items:start;position:relative}.project-timeline span{font-size:11px;color:var(--text-muted);font-weight:700}.project-timeline b{font-size:12px;color:var(--text)}.project-timeline small{grid-column:2;font-size:11px;color:var(--text-muted);line-height:1.35}.project-timeline p{font-size:12px;color:var(--text-muted);margin:0}.project-card.done .project-priority{background:#e2f8ef;color:#047857}.project-card.wait .project-priority{background:#fff2de;color:#965b00}



/* Tabela de cobertura: cabeçalho fixo e linhas roláveis. */
#reportBody .report-section[data-report="coverage"] .report-table{max-height:calc(100vh - 250px);overflow:auto}#reportBody .report-section[data-report="coverage"] th{position:sticky;top:0;z-index:2;background:#edf4f7;box-shadow:0 1px 0 var(--border)}
.map-key{display:none!important}.ap-dot{background:transparent!important;border:0!important;box-shadow:none!important;font-size:17px!important;width:38px;height:38px}.ap-dot.stale{border:0!important}.ap-photo{width:30px;height:30px;object-fit:contain;display:block;filter:drop-shadow(0 0 1px #163049)}.ap-photo-round{border-radius:50%}.ap-fallback{display:block;font-size:17px;font-weight:800}.ap-label{top:40px;display:flex;flex-direction:column;align-items:center;line-height:1.2}.ap-label b{font-size:10px}.ap-label small{font-size:10px;color:#e6f4f5;white-space:nowrap}.building-marker,.building-marker.single,.building-marker.cluster{width:86px!important;min-width:86px!important;max-width:86px!important;height:34px!important;border-radius:8px!important;padding:3px 5px!important;overflow:hidden}.building-marker b,.building-marker.cluster b,.building-marker.single b{font-size:11px!important;line-height:14px!important;white-space:nowrap}.building-marker small,.building-marker.cluster small,.building-marker.single small{font-size:8px!important;line-height:10px!important;white-space:nowrap!important}
/* Compact inventory: keep AP rows readable while giving the list most of the viewport. */
#inventorySection .surface-heading{padding:14px 18px}#inventorySection .surface-heading h2{font-size:16px}#inventorySection .surface-heading p{font-size:12px}#inventorySection .table-scroll{max-height:calc(100vh - 260px);min-height:480px}#inventorySection table{font-size:12px}#inventorySection td,#inventorySection th{padding:8px 14px}#inventorySection td small{font-size:10px;margin-top:2px}#inventorySection .ap-identity{gap:10px}#inventorySection .ap-thumb{width:34px;height:34px}.model-section .surface-heading{padding:12px 16px}.model-section h2{font-size:15px}.model-section p{font-size:11px}.model-section-actions button,.model-image-form select,.model-image-form input,.model-image-form button{font-size:12px;padding:8px 10px}.model-image-form input{max-width:190px}
.pgd-toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.pgd-toolbar label{display:grid;gap:5px;font-size:12px;color:var(--text-muted)}.pgd-toolbar input{min-width:150px}.pgd-report{padding:22px}.pgd-document-heading{border-bottom:2px solid var(--primary);padding-bottom:14px;margin-bottom:18px}.pgd-document-heading .eyebrow{font-size:10px;letter-spacing:.09em}.pgd-document-heading h1{font-size:24px;margin:4px 0}.pgd-document-heading h2{font-size:18px;margin:0 0 7px;text-transform:capitalize}.pgd-document-heading>p:last-child,.pgd-report-section>p{font-size:12px;color:var(--text-muted);margin:4px 0 12px}.pgd-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0 24px}.pgd-summary article{border:1px solid var(--border);border-radius:10px;padding:14px;background:var(--surface-2)}.pgd-summary span{display:block;font-size:12px;color:var(--text-muted)}.pgd-summary strong{display:block;font-size:24px;margin-top:4px}.pgd-report-section{margin:24px 0}.pgd-report-section h2{font-size:17px;border-bottom:1px solid var(--border);padding-bottom:8px}.pgd-report-section>p{line-height:1.5}.pgd-table-wrap{overflow:auto}.pgd-table{min-width:950px;font-size:12px}.pgd-table td,.pgd-table th{padding:8px 9px;vertical-align:top}.pgd-table td small{color:var(--text-muted);overflow-wrap:anywhere}.pgd-open{display:inline-block;border-radius:20px;padding:4px 8px;background:#fff0d6;color:#905a0a;font-weight:700;white-space:nowrap}.pgd-warning{margin:12px 0}.pgd-document-footer{border-top:1px solid var(--border);margin-top:28px;padding-top:10px;color:var(--text-muted);font-size:10px}
@media(max-width:850px){.pgd-summary{grid-template-columns:1fr}.pgd-toolbar{width:100%}.pgd-toolbar label{flex:1}.pgd-report{padding:14px}}
@media print{@page{size:A4 portrait;margin:15mm}body.printing-pgd .sidebar,body.printing-pgd main>.topbar,body.printing-pgd main>.header-filters,body.printing-pgd main>#notice,body.printing-pgd main>#metrics,body.printing-pgd main>#dashboardSection,body.printing-pgd main>#mapSection,body.printing-pgd main>#centerSummary,body.printing-pgd main>#inventorySection,body.printing-pgd main>#implementationsSection,body.printing-pgd main>#ticketsSection,body.printing-pgd main>#reportSection,body.printing-pgd main>#monitorSection,body.printing-pgd main>#modelSection,body.printing-pgd main>#lowerGrid,body.printing-pgd main>.page-footer{display:none!important}body.printing-pgd main{display:block!important;margin:0!important;padding:0!important;max-width:none!important}body.printing-pgd main>#pgdSection{display:block!important;border:0!important;box-shadow:none!important;overflow:visible!important;background:#fff!important;color:#102840!important}body.printing-pgd #pgdSection>.pgd-screen-actions{display:none!important}body.printing-pgd #pgdReport{display:block!important;padding:0!important}body.printing-pgd .pgd-table-wrap{overflow:visible!important}body.printing-pgd .pgd-table{min-width:0!important;width:100%!important;font-size:7px!important}body.printing-pgd .pgd-table td,body.printing-pgd .pgd-table th{padding:3px 4px!important}body.printing-pgd .pgd-summary{grid-template-columns:repeat(3,1fr)!important}.pgd-report-section{break-inside:auto}.pgd-table tr{break-inside:avoid}body.printing-pgd .pgd-incidents-section{break-inside:avoid;page-break-inside:avoid}.pgd-incidents-section>h2,.pgd-incidents-section>p{break-after:avoid;page-break-after:avoid}.pgd-incidents-section .pgd-table-wrap{break-before:avoid;page-break-before:avoid}body.printing-pgd .pgd-warning{background:#fff8e8!important;color:#684800!important}body.printing-pgd[data-pgd-print="maintenance"] #pgdReport>.pgd-project-report{display:none!important}body.printing-pgd[data-pgd-print="projects"] #pgdReport>.pgd-maintenance-report{display:none!important}body.printing-pgd .pgd-cover{display:flex;height:267mm;min-height:267mm;break-after:page;page-break-after:always}body.printing-pgd .pgd-content-introduction{display:block;break-before:page;page-break-before:always}}

.pgd-auth-details{margin:18px 0 0;padding:14px 16px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2)}.pgd-auth-details>p{margin:0 0 14px;line-height:1.5;font-size:12px}.pgd-auth-details h3{font-size:14px;margin:0 0 8px}.pgd-auth-details ul{margin:0;padding-left:22px;line-height:1.6;font-size:12px}.pgd-auth-details small{color:var(--text-muted)}

.pgd-tabs,.pgd-actions,.pgd-form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 22px 14px}.pgd-tabs{border-bottom:1px solid var(--border)}.pgd-tabs button{border-radius:999px;font-size:13px;color:var(--muted)}.pgd-tabs button.active{background:#005c8b;color:#fff;border-color:#005c8b}.pgd-actions{justify-content:flex-end}.pgd-project-form{margin:0 22px 18px;padding:18px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.pgd-project-form h3{font-size:15px;margin:0 0 14px}.pgd-project-fields{display:grid;grid-template-columns:2fr 1.5fr 1fr;gap:12px}.pgd-project-fields label{display:grid;gap:6px;font-size:12px;color:var(--muted)}.pgd-project-fields input,.pgd-project-fields select,.pgd-project-fields textarea{width:100%;font-size:13px}.pgd-project-description{grid-column:1/3}.pgd-project-photos{grid-column:3}.pgd-project-photos small{font-size:11px}.pgd-form-actions{padding:14px 0 0}.pgd-form-actions span{font-size:12px;color:var(--muted)}.pgd-cover{display:none;position:relative;min-height:790px;flex-direction:column;align-items:center;text-align:center;padding:52px 30px 34px;background:#fff;color:#102840;box-sizing:border-box;break-after:page;page-break-after:always}.pgd-cover-brand{width:min(440px,82%);margin-top:15px}.pgd-logo{display:block;width:100%;height:auto}.pgd-cover-org{margin:46px 0 0;font-size:18px;font-weight:600;letter-spacing:.08em;color:#005c8b}.pgd-cover h1{max-width:620px;margin:145px 0 14px;font-family:Georgia,"Times New Roman",serif;font-size:25px;font-weight:500;line-height:1.35;color:#152f48}.pgd-cover h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:18px;font-weight:400;color:#152f48}.pgd-cover-page{position:absolute;bottom:16px;right:18px;font-size:10px;color:#52667b}.pgd-content-introduction{display:none;margin:0 0 22px}.pgd-content-introduction h1{font-family:Georgia,"Times New Roman",serif;font-size:21px;font-weight:500;border-bottom:1px solid var(--border);padding-bottom:7px}.pgd-introduction{font-size:13px;margin:16px 0;line-height:1.55}.pgd-project-card{display:grid;grid-template-columns:minmax(240px,1fr) 1.2fr;gap:14px;padding:14px 0;border-bottom:1px solid var(--border);break-inside:avoid}.pgd-project-card h3{font-size:15px;margin:7px 0}.pgd-project-card p{font-size:12px;line-height:1.5;margin:4px 0}.pgd-project-status{display:inline-block;padding:4px 8px;border-radius:999px;background:#e7f1f6;color:#005c8b;font-size:10px;font-weight:700}.pgd-project-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pgd-project-photo-grid figure{margin:0;break-inside:avoid}.pgd-project-photo-grid img{width:100%;max-height:180px;object-fit:contain;background:#f1f5f8;border:1px solid var(--border);border-radius:6px}.pgd-project-photo-grid figcaption{font-size:10px;color:var(--muted);padding:3px}.pgd-project-report,.pgd-maintenance-report{display:block}@media(max-width:850px){.pgd-cover{min-height:680px;padding:36px 20px 28px}.pgd-cover-org{margin-top:34px}.pgd-cover h1{margin-top:110px;font-size:21px}.pgd-project-fields{grid-template-columns:1fr}.pgd-project-description,.pgd-project-photos{grid-column:auto}.pgd-project-card{grid-template-columns:1fr}}@media print{.pgd-cover{height:267mm;min-height:267mm;padding:16mm 10mm 10mm}.pgd-cover-brand{width:122mm;margin-top:12mm}.pgd-cover-org{margin-top:22mm;font-size:16pt}.pgd-cover h1{margin-top:39mm;margin-bottom:6mm;font-size:17pt}.pgd-cover h2{font-size:13pt}.pgd-cover-page{bottom:2mm;right:2mm}.pgd-content-introduction h1{color:#005c8b}.pgd-project-card{grid-template-columns:1fr 1fr!important}.pgd-project-photo-grid img{max-height:130px}.pgd-report-section h2{color:#005c8b}.pgd-document-footer{color:#555}}
.pgd-coverage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin:12px 0}.pgd-coverage-grid figure{margin:0;break-inside:avoid}.pgd-coverage-grid figcaption{font-size:11px;font-weight:700;color:#005c8b;margin:0 0 5px}.pgd-coverage-plan{position:relative}.pgd-coverage-plan>img{display:block;width:100%;max-height:360px;object-fit:contain;border:1px solid var(--border);border-radius:6px}.pgd-coverage-ap{position:absolute;transform:translate(-50%,-50%);background:#005c8b;color:#fff;border:1px solid white;border-radius:999px;padding:2px 4px;font-size:7px;white-space:nowrap}@media print{.pgd-coverage-plan>img{max-height:260px}.pgd-coverage-ap{font-size:6px}}
.pgd-redes-report{display:block}.pgd-redes-report .pgd-report-section h3{font-size:13px;margin:14px 0 8px}.pgd-wide-table .pgd-table{min-width:0;width:100%;font-size:10px}.pgd-wide-table .pgd-table th,.pgd-wide-table .pgd-table td{padding:6px 5px;text-align:center;white-space:nowrap}.pgd-wide-table .pgd-table th:first-child{text-align:left;min-width:90px}.pgd-compact-table{min-width:0!important;width:min(100%,720px)}.pgd-worked-table{min-width:0!important;width:100%;font-size:10px}.pgd-worked-table td:nth-child(2){min-width:210px}.pgd-worked-table td:nth-child(4){min-width:170px}@media print{body.printing-pgd[data-pgd-print="redes"] #pgdReport>.pgd-maintenance-report,body.printing-pgd[data-pgd-print="redes"] #pgdReport>.pgd-project-report{display:none!important}body.printing-pgd[data-pgd-print="redes"] .pgd-wide-table .pgd-table{font-size:6.5px!important}body.printing-pgd[data-pgd-print="redes"] .pgd-wide-table .pgd-table th,body.printing-pgd[data-pgd-print="redes"] .pgd-wide-table .pgd-table td{padding:3px 2px!important}body.printing-pgd[data-pgd-print="redes"] .pgd-worked-table{font-size:7px!important}}

.access-form{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px}.access-form>strong{grid-column:1}.access-active{grid-column:2}.access-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.access-grid fieldset{border:1px solid var(--border);border-radius:8px;padding:8px}.access-grid legend{font-size:12px;font-weight:650}.access-grid label{display:inline-flex;gap:4px;align-items:center;margin-right:9px;font-size:12px}.access-save{grid-column:1/-1;justify-self:start}@media(max-width:700px){.access-active{grid-column:1}}
.password-reset-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.3fr) auto;align-items:end;gap:12px;border-top:1px solid var(--border);padding-top:12px}.password-reset-form>strong{align-self:center}.password-reset-form>label{display:grid;gap:5px;font-size:12px}.password-reset-form>label input{width:100%}.password-reset-form small{font-size:11px;color:var(--text-muted)}.password-reset-form button{justify-self:end;white-space:nowrap}@media(max-width:700px){.password-reset-form{grid-template-columns:1fr}.password-reset-form button{justify-self:start}}
.floor-area-tooltip{background:#17324d;color:#fff;border:0;border-radius:6px;font-size:12px;font-weight:650;box-shadow:0 1px 6px #13293a55;pointer-events:none}.leaflet-tooltip.floor-area-tooltip:before{display:none}.area-draw-panel{position:absolute;z-index:750;top:12px;left:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:min(560px,calc(100% - 24px));padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 24px #102a4333}.area-draw-panel strong,.area-draw-panel>span{grid-column:1/-1}.area-draw-panel>span{font-size:12px;color:var(--muted)}.area-draw-panel label{font-size:12px}.area-draw-panel button{font-size:12px}.floor-area-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(160px,1fr) minmax(100px,.6fr) auto auto;align-items:end;gap:8px;padding:10px 0;border-bottom:1px solid var(--border)}.floor-area-row label{font-size:12px}.floor-area-row button{font-size:12px;padding:8px 10px}.floor-area-row button.danger{color:#a12626;border-color:#edcaca;background:#fff8f8}@media(max-width:650px){.floor-area-row{grid-template-columns:1fr 1fr}.area-draw-panel{right:12px}}

.area-draw-points{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;max-height:92px;overflow:auto;padding:2px}.area-draw-point{display:flex;align-items:center;gap:2px;border:1px solid var(--border);border-radius:7px;background:var(--surface-alt,var(--surface));padding:2px}.area-draw-point.selected{outline:2px solid var(--accent,#087f8c)}.area-draw-point button{padding:4px 7px!important;border:0!important;background:transparent!important}.area-draw-point button:last-child{font-size:16px!important;color:var(--danger,#b42318)}.floor-area-vertex{background:transparent;border:0}.floor-area-vertex span{display:grid;place-items:center;width:28px;height:28px;border:2px solid #fff;border-radius:50%;background:#c62828;color:#fff;font-weight:700;font-size:12px;box-shadow:0 1px 5px #0008}.floor-area-vertex.selected span{background:#075985;transform:scale(1.15)}.area-draw-panel>button{min-height:34px}

.floor-area-row{grid-template-columns:minmax(120px,1fr) minmax(140px,1fr) minmax(95px,.55fr) 72px minmax(125px,.8fr) auto auto auto}.floor-area-row input[type=color],#areaDrawColor{height:36px;padding:3px;width:100%}.floor-area-opacity-label{min-width:125px}.floor-area-opacity-label output{font-size:11px;color:var(--muted);margin-left:4px}.floor-area-opacity-label input,#areaDrawOpacity{width:100%;padding:0}.area-draw-panel label:has(input[type=color]),.area-draw-panel label:has(input[type=range]){display:grid;gap:5px}.area-draw-panel output{float:right;color:var(--muted)}@media(max-width:1050px){.floor-area-row{grid-template-columns:1fr 1fr 1fr}.floor-area-row button{justify-self:start}}

.floor-area-label-marker{background:transparent;border:0;pointer-events:none}.floor-area-label{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:max-content;max-width:230px;min-width:50px;min-height:28px;padding:5px 9px;border:1px solid #fff;border-radius:7px;color:#fff;text-align:center;line-height:1.15;white-space:normal;overflow-wrap:anywhere;box-shadow:0 1px 5px #0005;pointer-events:none;font-size:clamp(9px,var(--area-label-size,12px),18px)}.floor-area-label strong{font-size:1em;font-weight:750}.floor-area-label small{font-size:.82em;opacity:.95}.floor-area-label .floor-area-sqm{font-size:.9em;font-weight:750;white-space:nowrap}.floor-area-label-marker.editable{cursor:move;pointer-events:auto}.floor-area-label-marker.editable .floor-area-label{cursor:move;pointer-events:auto;outline:1px dashed #fff8}.floor-area-label-size{min-width:85px}.floor-area-row{grid-template-columns:minmax(110px,1fr) minmax(120px,1fr) minmax(80px,.5fr) 66px minmax(112px,.7fr) 74px minmax(112px,.7fr) auto auto auto}.area-draw-panel{max-width:min(660px,calc(100% - 24px))}.area-draw-panel label:has(#areaDrawLabelSize),.area-draw-panel label:has(#areaDrawLabelOpacity){display:grid;gap:5px}.area-draw-panel input[type=range]{accent-color:var(--primary,#087f8c)}@media(max-width:1250px){.floor-area-row{grid-template-columns:repeat(4,minmax(120px,1fr))}.floor-area-row button{justify-self:start}}@media(max-width:650px){.floor-area-row{grid-template-columns:1fr 1fr}}

#floorAreaRows{display:grid;gap:12px;overflow-x:hidden}.floor-area-row{display:grid;grid-template-columns:minmax(110px,1.7fr) minmax(110px,1.3fr) minmax(82px,.9fr) minmax(62px,.65fr) minmax(112px,1.1fr) minmax(90px,.8fr) minmax(112px,1.1fr);align-items:end;gap:12px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.floor-area-row label{min-width:0;gap:6px;font-size:12px;white-space:nowrap}.floor-area-row label input,.floor-area-row label select{min-width:0;height:38px;padding:8px}.floor-area-row .floor-area-range{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 6px}.floor-area-row .floor-area-range span{grid-column:1}.floor-area-row .floor-area-range output{grid-column:2;grid-row:1;font-size:11px;color:var(--muted)}.floor-area-row .floor-area-range input[type=range]{grid-column:1/-1;width:100%;height:20px;padding:0}.floor-area-row input[type=color]{width:100%;min-width:0;height:38px;padding:3px}.floor-area-row>button{align-self:start;justify-self:start;min-height:38px;padding:8px 12px;font-size:12px;white-space:nowrap}.floor-area-row .floor-area-label-size input{font-size:13px}.floor-area-row .danger{white-space:nowrap}.floor-area-row>button:nth-of-type(1){grid-column:1;grid-row:2}.floor-area-row>button:nth-of-type(2){grid-column:2;grid-row:2}.floor-area-row>button:nth-of-type(3){grid-column:3;grid-row:2}.area-draw-panel .floor-area-range{display:grid;grid-template-columns:1fr auto;gap:4px 8px}.area-draw-panel .floor-area-range span{grid-column:1}.area-draw-panel .floor-area-range output{grid-column:2;grid-row:1}.area-draw-panel .floor-area-range input[type=range]{grid-column:1/-1;width:100%;margin:0}.wide-dialog{max-width:min(1050px,94vw);overflow-x:hidden}@media(max-width:900px){.floor-area-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.floor-area-row>button:nth-of-type(1),.floor-area-row>button:nth-of-type(2),.floor-area-row>button:nth-of-type(3){grid-row:auto;grid-column:auto}}@media(max-width:620px){.floor-area-row{grid-template-columns:repeat(2,minmax(0,1fr))}.floor-area-row>button{grid-row:auto!important;grid-column:auto!important}.floor-area-row>button:last-child{justify-self:end}}

label:has(:required){position:relative;padding-right:12px}label:has(:required)::after{content:'*';position:absolute;right:1px;top:0;color:#c62828;font-size:17px;font-weight:800;line-height:1}input.has-required-indicator:not([type=checkbox]),select.has-required-indicator,textarea.has-required-indicator{border-left:3px solid #c62828}.required-fields-note{display:block;margin:0 0 10px;color:#b42318;font-size:11px;font-weight:650}.implementation-fields label:has(:required)::after,.user-form label:has(:required)::after{right:4px}

.ticket-import-prefill{display:grid;gap:6px;margin:12px 0;padding:12px 14px;border:1px solid #91c6d5;border-left:4px solid var(--teal);border-radius:8px;background:var(--surface-2);font-size:13px}.ticket-import-prefill strong{color:var(--teal)}.ticket-import-prefill small{font-size:11px;color:var(--muted)}.required-fields-note{padding:5px 0 8px}label:has(:required)::after{z-index:1;pointer-events:none}.implementation-fields label:has(:required){padding-right:14px}.implementation-task input:required{border-left:3px solid #c62828}

.floor-area-label strong{font-weight:850;letter-spacing:.01em;-webkit-text-stroke:.15px currentColor}.floor-area-label small{opacity:1!important;font-weight:700;-webkit-text-stroke:.1px currentColor}.floor-area-label{box-shadow:0 2px 7px #0005}

/* Area callouts stay secondary to AP markers and stay compact at every zoom. */
.floor-area-label{font-size:9px!important;gap:1px;min-width:0;min-height:0;max-width:112px;padding:2px 4px;border-radius:4px;line-height:1.05;box-shadow:0 1px 3px #0004}
.floor-area-label strong{font-size:9px!important;font-weight:700;letter-spacing:0;-webkit-text-stroke:0}
.floor-area-label small,.floor-area-label .floor-area-sqm{font-size:8px!important;font-weight:600;-webkit-text-stroke:0;white-space:nowrap}

#monitorSection>.surface-heading{align-items:center}
#monitorSection .monitor-actions{display:grid;grid-template-columns:minmax(270px,320px) auto;align-items:center;justify-content:end;gap:8px 16px}
#monitorSection .monitor-actions>input{width:100%;min-width:0;height:42px}
#monitorSection .monitor-actions>.check{justify-self:start;margin:0;line-height:1.2}
#monitorSection .monitor-actions>.check input{flex:0 0 16px}
@media(max-width:760px){#monitorSection>.surface-heading{align-items:stretch;flex-direction:column}#monitorSection .monitor-actions{grid-template-columns:minmax(0,1fr) auto;justify-content:stretch}}

/* Keep routine save prominent and destructive actions tucked away. */
.floor-area-row{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,.7fr) 64px minmax(0,.9fr) minmax(0,.75fr) minmax(0,.9fr)}
.floor-area-row>[data-edit-floor-area]{grid-column:1;grid-row:2}
.floor-area-actions{grid-column:2/-1;grid-row:2;display:flex;align-items:center;justify-content:flex-end;gap:8px;position:relative}
.floor-area-row .floor-area-opacity-label{min-width:0}.floor-area-row .floor-area-save{min-width:92px;background:var(--teal,#087f8c);border-color:var(--teal,#087f8c);color:#fff}
.floor-area-row .floor-area-save:hover{background:#066774;color:#fff}
.floor-area-more{position:relative}
.floor-area-more>summary{list-style:none;display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--border);border-radius:8px;color:var(--muted);font-size:21px;line-height:1;cursor:pointer}
.floor-area-more>summary::-webkit-details-marker{display:none}
.floor-area-more>summary:hover{background:var(--surface-2);color:var(--text)}
.floor-area-more .danger{position:absolute;z-index:5;right:0;bottom:calc(100% + 6px);white-space:nowrap;padding:8px 12px;font-size:12px;color:#a23a32!important;background:var(--surface)!important;border:1px solid #e1b5b0!important;box-shadow:0 5px 16px #102a4326}
@media(max-width:900px){.floor-area-row{grid-template-columns:repeat(3,minmax(0,1fr))}.floor-area-actions{grid-column:2/-1;grid-row:3}.floor-area-row>[data-edit-floor-area]{grid-row:3}}
@media(max-width:620px){.floor-area-row{grid-template-columns:repeat(2,minmax(0,1fr))}.floor-area-row>[data-edit-floor-area]{grid-column:1;grid-row:5}.floor-area-actions{grid-column:2;grid-row:5}.floor-area-row .floor-area-save{min-width:74px}}
.pgd-coverage-ap{display:inline-flex;align-items:center;gap:3px;max-width:140px}.pgd-coverage-ap>span{overflow:hidden;text-overflow:ellipsis}.pgd-coverage-ap.has-photo{padding:2px 5px 2px 2px}.pgd-coverage-ap img{width:19px;height:19px;object-fit:contain;background:#fff;border-radius:50%;flex:0 0 19px}.pgd-coverage-ap:not(.has-photo)>span{padding:0 2px}@media print{.pgd-coverage-ap img{width:14px;height:14px;flex-basis:14px}}

.monitor-tabs{padding:12px 18px;gap:8px;border-bottom:1px solid var(--border)}
.monitor-tabs button{padding:8px 13px;font-size:13px}
#bandPanel{padding:18px 20px}
.band-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:12px}
.band-toolbar h3{font-size:16px;margin:0 0 4px}
.band-toolbar p,.band-footnote{font-size:12px;line-height:1.55}
.band-filters{display:grid;grid-template-columns:minmax(0,240px) minmax(0,320px);align-items:end;gap:10px;flex:0 1 520px;max-width:100%}
.band-filters label{display:grid;gap:5px;font-size:12px;font-weight:600;color:var(--text)}
.band-filters select,.band-filters input{width:100%;min-width:0}
.band-filter-row{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin:12px 0}
.band-filter-row label{display:grid;gap:5px;font-size:12px}
.band-filter-row select{width:100%;min-width:0;padding:8px 10px;font-size:13px}
.problem-top{margin:14px 0;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}
.problem-top-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.problem-top-heading h3{font-size:15px;margin:0 0 4px}
.problem-top-heading p,.problem-top-heading>span{font-size:12px;color:var(--muted)}
.problem-top-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.problem-top-item{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:start;gap:9px;width:100%;padding:9px 10px;text-align:left;background:var(--surface);font-weight:400}
.problem-top-item strong,.problem-top-item small{display:block}
.problem-top-item strong{font-size:12px}
.problem-top-item small{margin-top:3px;font-size:11px;line-height:1.35;color:var(--muted)}
.problem-top-item>b{font-size:11px;white-space:nowrap;color:#9a4e13}
.problem-rank{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#fff0d8;color:#9a4e13;font-size:11px;font-weight:750}
#bandCoverageNote{margin:8px 0 12px}
#bandPanel .table-scroll{max-height:calc(100vh - 390px);min-height:320px}
#bandPanel table{width:100%;min-width:960px;table-layout:fixed;border-collapse:separate;border-spacing:0}
/* Keep table cells intact; flex/grid layouts belong inside a cell. */
#bandPanel th,#bandPanel td{display:table-cell;padding:10px 12px;vertical-align:top;line-height:1.4}
#bandPanel thead th{position:sticky;top:0;z-index:2;background:var(--surface-2);box-shadow:0 1px 0 var(--border)}
#bandPanel th:nth-child(1){width:21%}#bandPanel th:nth-child(2){width:18%}#bandPanel th:nth-child(3){width:17%}#bandPanel th:nth-child(4){width:20%}#bandPanel th:nth-child(5){width:24%}
#bandPanel tbody tr{height:112px}
#bandPanel tbody td{border-bottom:1px solid var(--border)}
#bandPanel .monitor-open{max-width:100%;overflow-wrap:anywhere}
#bandPanel td:first-child>small,#bandPanel td:nth-child(3)>small,#bandPanel td:nth-child(4)>small{display:block;margin-top:4px;line-height:1.45}
.band-reading-tags{display:flex;flex-wrap:wrap;align-items:start;gap:4px}
.band-counts{display:flex;flex-direction:column;align-items:stretch;gap:2px;min-width:0}
.band-count{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:8px;width:100%;white-space:nowrap;line-height:1.45;font-variant-numeric:tabular-nums}
.band-count b{font-weight:600;color:var(--muted)}
.signal-value{font-weight:600;font-variant-numeric:tabular-nums}
.signal-bands{display:grid;gap:2px;margin-top:4px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.radio-metric{display:grid;grid-template-columns:48px minmax(0,1fr);gap:5px;line-height:1.4;padding:2px 0;font-size:11px}
.radio-metric>span:first-child{font-weight:600;white-space:nowrap}
.radio-metric>span:last-child{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.signal-line{display:grid;grid-template-columns:48px minmax(0,1fr) minmax(0,1fr);gap:4px;align-items:baseline;padding:2px 0;font-size:11px;font-variant-numeric:tabular-nums}
.signal-line b{font-size:11px}
.advice-review{background:#fff0d8;color:#8a4b08}.advice-attention{background:#fde8e7;color:#a0322b}.advice-ok{background:#e3f4ee;color:#137a68}.advice-unknown{background:#edf2f6;color:#64788b}
.band-footnote{margin:12px 0 0}
@media(max-width:900px){.band-filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}.problem-top-list{grid-template-columns:1fr}}
@media(max-width:620px){.monitor-tabs{padding:10px;overflow-x:auto}.monitor-tabs button{flex:0 0 auto}.band-toolbar{align-items:stretch;flex-direction:column}.band-filters{grid-template-columns:1fr;flex:1 1 auto}.band-filters label{width:100%}.band-filter-row{grid-template-columns:1fr 1fr}#bandPanel{padding:12px}}

.pgd-coverage-ap{display:inline-flex;align-items:center;gap:3px;max-width:140px}.pgd-coverage-ap>span{overflow:hidden;text-overflow:ellipsis}.pgd-coverage-ap.has-photo{padding:2px 5px 2px 2px}.pgd-coverage-ap img{width:19px;height:19px;object-fit:contain;background:#fff;border-radius:50%;flex:0 0 19px}.pgd-coverage-ap:not(.has-photo)>span{padding:0 2px}@media print{.pgd-coverage-ap img{width:14px;height:14px;flex-basis:14px}}

@media print{
  body.printing-pgd.print-orientation-landscape .pgd-cover{height:180mm!important;min-height:180mm!important;padding:12mm 10mm 8mm!important}
  body.printing-pgd.print-orientation-landscape .pgd-cover-org{margin-top:12mm!important}
  body.printing-pgd.print-orientation-landscape .pgd-cover h1{margin-top:22mm!important}
  body.printing-implementation.print-orientation-landscape #implementationPrintRoot{width:257mm!important;max-height:180mm!important}
}
.print-orientation-control{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);white-space:nowrap}
.print-orientation-control select{min-width:105px;height:36px;padding:6px 9px}.pgd-actions{align-items:flex-end}
.pgd-actions>button{height:36px;min-height:36px;padding-top:6px;padding-bottom:6px}

.coverage-history-filters{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:12px 0}.coverage-history-filters label{display:grid;gap:5px;font-size:12px;min-width:150px}.coverage-history-filters label:nth-child(3){flex:1;min-width:220px}.coverage-history-filters select{width:100%}
.procurement-section{padding:0 0 24px}.procurement-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--border)}.procurement-toolbar h2,.procurement-priority h2{margin:0 0 4px}.procurement-toolbar p,.procurement-priority p{margin:0;color:var(--muted);font-size:12px}.procurement-toolbar>div:last-child{display:flex;gap:8px}.procurement-alert{display:flex;justify-content:space-between;gap:12px;margin:16px 20px;padding:13px 15px;border-left:4px solid var(--primary);background:var(--surface-2);font-size:13px}.procurement-alert span{color:var(--muted)}.procurement-scenarios{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:0 20px}.procurement-scenario{border:1px solid var(--border);border-radius:12px;overflow:hidden}.procurement-scenario>header{display:flex;justify-content:space-between;align-items:start;padding:16px;background:var(--surface-2)}.procurement-scenario h2{margin:2px 0}.procurement-scenario>header>strong{font-size:24px;color:var(--primary)}.procurement-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--border);border-bottom:1px solid var(--border)}.procurement-metrics>div{padding:12px;background:var(--surface)}.procurement-metrics span,.procurement-metrics small{display:block;color:var(--muted);font-size:11px}.procurement-metrics b{display:block;margin:3px 0;font-size:17px}.procurement-scenario table{font-size:12px}.procurement-scenario td,.procurement-scenario th{padding:8px}.procurement-total{font-weight:750}.procurement-priority{padding:22px 20px}.procurement-priority .table-scroll{margin-top:12px}.procurement-form{margin:10px 20px;border:1px solid var(--border);border-radius:12px;overflow:hidden}.procurement-assumptions{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;padding:18px}.procurement-assumptions label,.procurement-product label{display:grid;gap:5px;color:var(--muted);font-size:11px}.procurement-exclusions{grid-column:1/-1}.procurement-products{display:grid}.procurement-product{display:grid;grid-template-columns:2fr 1fr 1fr 1.3fr 1fr 1fr;align-items:end;gap:9px;padding:12px 18px;border-top:1px solid var(--border)}.procurement-product-notes{grid-column:1/-2}.procurement-product .danger{grid-column:-2;grid-row:2}.procurement-form>p{padding:0 18px 14px;color:var(--primary)}@media(max-width:1100px){.procurement-scenarios{grid-template-columns:1fr}.procurement-assumptions{grid-template-columns:repeat(2,minmax(150px,1fr))}.procurement-product{grid-template-columns:repeat(3,minmax(0,1fr))}.procurement-product-notes{grid-column:1/-1}.procurement-product .danger{grid-column:auto;grid-row:auto}}@media(max-width:650px){.procurement-toolbar,.procurement-alert{align-items:stretch;flex-direction:column}.procurement-metrics,.procurement-assumptions,.procurement-product{grid-template-columns:1fr}.procurement-product-notes{grid-column:auto}}
@media print{body:has(#procurementSection:not([hidden])) .sidebar,body:has(#procurementSection:not([hidden])) .topbar,body:has(#procurementSection:not([hidden])) .header-filters,body:has(#procurementSection:not([hidden])) .procurement-toolbar button,body:has(#procurementSection:not([hidden])) #procurementEditor{display:none!important}body:has(#procurementSection:not([hidden])) main{margin:0!important;padding:0!important}body:has(#procurementSection:not([hidden])) #procurementSection{display:block!important;border:0!important}.procurement-scenarios{grid-template-columns:1fr!important}.procurement-scenario{break-inside:avoid;margin-bottom:8mm}.procurement-priority{break-before:page}}
.procurement-decision-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:0 20px 18px}.procurement-decision{border:1px solid var(--border);border-radius:14px;padding:18px;background:var(--surface)}.procurement-decision h2{margin:3px 0 8px}.procurement-decision>strong{display:block;color:var(--primary);font-size:30px}.procurement-decision>p:not(.eyebrow){margin:7px 0;color:var(--muted)}.procurement-decision>small{display:block;margin-top:12px;color:var(--muted)}.procurement-decision-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:13px}.procurement-decision-breakdown span{padding:9px;border-radius:8px;background:var(--surface-2);color:var(--muted);font-size:11px}.procurement-decision-breakdown b{display:block;margin-top:3px;color:var(--text);font-size:13px}.procurement-priority .surface-heading{padding-left:0;padding-right:0}.procurement-priority td small{display:block;color:var(--muted);font-size:10px}.procurement-selected{background:color-mix(in srgb,var(--success) 9%,var(--surface))}.procurement-technical{margin:0 20px 18px;border:1px solid var(--border);border-radius:12px}.procurement-technical>summary{padding:13px 16px;cursor:pointer;font-weight:700}.procurement-technical .procurement-scenarios{padding:0 16px 16px}@media(max-width:800px){.procurement-decision-grid,.procurement-decision-breakdown{grid-template-columns:1fr}}
.procurement-center-actions{display:flex;align-items:end;justify-content:flex-end;gap:8px;flex-wrap:wrap}.procurement-center-actions label{display:grid;gap:4px;color:var(--muted);font-size:11px}.procurement-center-report{display:none}.procurement-centers{border-top:4px solid var(--primary);margin-top:4px}.procurement-centers tbody strong{color:var(--primary)}
@media print{.procurement-quick-form button{display:none!important}.procurement-quick-form input{border:0!important;background:transparent!important;padding:0!important}}
.procurement-filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:12px 0}.procurement-filters label{display:grid;gap:4px;min-width:150px;color:var(--muted);font-size:11px}.procurement-filters button{margin-left:auto}.procurement-priority td .tag+small{margin-top:4px}@media(max-width:800px){.procurement-filters label,.procurement-filters button{width:100%;margin-left:0}}
.procurement-section button,.procurement-settings-dialog button{font-size:12px;line-height:1.2;padding:7px 10px;min-height:32px;white-space:nowrap;flex:0 0 auto}.procurement-toolbar{padding:12px 16px;flex-wrap:wrap;gap:10px}.procurement-toolbar h2{font-size:16px}.procurement-center-actions{gap:6px;align-items:end}.procurement-center-actions select{height:32px;padding:5px 8px;font-size:12px}.procurement-quick-form{display:flex;align-items:end;gap:8px;margin:4px 0 14px}.procurement-quick-form label{font-size:11px;gap:4px;min-width:0}.procurement-quick-form input{height:36px;padding:6px 10px;font-size:17px;font-weight:650;width:210px;max-width:100%}.procurement-quick-form[data-quick-setting="target_pct"] input{width:100px}.procurement-quick-form button{height:36px}.procurement-settings-dialog{width:min(1120px,95vw);padding:18px;max-height:90vh}.procurement-settings-dialog .dialog-top{margin-bottom:12px;position:sticky;top:-18px;background:var(--surface);padding:12px 0;z-index:2}.procurement-settings-dialog .procurement-form{margin:0}.procurement-settings-dialog .procurement-assumptions{grid-template-columns:repeat(3,minmax(0,1fr));padding:14px}.procurement-settings-dialog input,.procurement-settings-dialog select{padding:7px 9px;font-size:13px;min-width:0}.procurement-settings-dialog .procurement-product{grid-template-columns:2fr 1.2fr 1.2fr 1.2fr 1.2fr 1fr;padding:12px 14px}.procurement-snapshot-note{padding:0 20px 12px;font-size:11px;color:var(--muted)}@media(max-width:800px){.procurement-settings-dialog .procurement-assumptions,.procurement-settings-dialog .procurement-product{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:500px){.procurement-quick-form input{width:170px}.procurement-settings-dialog .procurement-assumptions,.procurement-settings-dialog .procurement-product{grid-template-columns:1fr}}@media print{.procurement-settings-dialog,.procurement-snapshot-note{display:none!important}}
@media print{body.procurement-center-print>*:not(#app){display:none!important}body.procurement-center-print .sidebar,body.procurement-center-print .topbar,body.procurement-center-print .header-filters,body.procurement-center-print #procurementSection>*:not(#procurementCenterReport){display:none!important}body.procurement-center-print main,body.procurement-center-print #procurementSection{display:block!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important}body.procurement-center-print #procurementCenterReport{display:block!important;color:#182b3a;background:#fff;font:11pt Arial,sans-serif}body.procurement-center-print #procurementCenterReport header{border-bottom:3px solid #143552;padding-bottom:7mm;margin-bottom:7mm}body.procurement-center-print #procurementCenterReport header p{margin:0;color:#536978;font-size:9pt}body.procurement-center-print #procurementCenterReport h1{margin:2mm 0;font-size:22pt;color:#143552}body.procurement-center-print #procurementCenterReport h2{margin:7mm 0 3mm;font-size:14pt;color:#143552}body.procurement-center-print .procurement-center-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:3mm}body.procurement-center-print .procurement-center-summary>div{border:1px solid #cbd9df;padding:4mm}body.procurement-center-print .procurement-center-summary span,body.procurement-center-print .procurement-center-summary small{display:block;color:#536978;font-size:8.5pt}body.procurement-center-print .procurement-center-summary strong{display:block;margin-top:2mm;font-size:14pt;color:#087f72}body.procurement-center-print #procurementCenterReport table{width:100%;border-collapse:collapse;font-size:8.5pt}body.procurement-center-print #procurementCenterReport th{background:#143552!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}body.procurement-center-print #procurementCenterReport th,body.procurement-center-print #procurementCenterReport td{border:1px solid #cbd9df;padding:2.3mm;text-align:left}body.procurement-center-print #procurementCenterReport tfoot{font-weight:700}body.procurement-center-print #procurementCenterReport footer{margin-top:8mm;border-top:1px solid #cbd9df;padding-top:3mm;color:#536978;font-size:8pt}}

@media print{body.printing-procurement #procurementSection .procurement-toolbar .procurement-center-actions label,body.printing-procurement #procurementSection .print-orientation-control{display:none!important}body.printing-procurement #procurementSection .procurement-priority{break-before:page}body.printing-procurement #procurementSection .procurement-scenarios{grid-template-columns:1fr!important}}

@media print{body.printing-procurement main>:not(#procurementSection),body.procurement-center-print main>:not(#procurementSection){display:none!important}body.printing-procurement main>#procurementSection,body.procurement-center-print main>#procurementSection{display:block!important}}

/* Seções de investimento recolhíveis e cartões de decisão mais compactos */
.procurement-collapsible{border:1px solid var(--border);border-radius:12px;background:var(--surface);overflow:hidden}
.procurement-collapsible>summary{display:flex;align-items:center;gap:10px;padding:13px 16px;cursor:pointer;list-style:none;color:var(--text);font-weight:700}
.procurement-collapsible>summary::-webkit-details-marker{display:none}
.procurement-collapsible>summary::before{content:"▸";font-size:15px;color:var(--primary);transition:transform .15s ease;flex:0 0 10px}
.procurement-collapsible[open]>summary::before{transform:rotate(90deg)}
.procurement-collapsible>summary>span{display:grid;gap:3px}
.procurement-collapsible>summary strong{font-size:16px}
.procurement-collapsible>summary small{font-size:11px;color:var(--muted);font-weight:400}
.procurement-collapsible>summary small:first-child{font-size:10px;letter-spacing:.08em;font-weight:650}
.procurement-collapsible-content{padding:0 14px 12px}
.procurement-centers{border-top-width:3px}
.procurement-centers .procurement-collapsible-content .table-scroll{margin-top:4px}
.procurement-decision{padding:14px}
.procurement-decision>strong{font-size:25px}
.procurement-decision>p:not(.eyebrow){font-size:12px;margin:5px 0}
.procurement-decision>small{font-size:11px;margin-top:8px}
.procurement-decision-breakdown{gap:6px;margin-top:9px}
.procurement-decision-breakdown span{padding:7px;font-size:10px}
.procurement-decision-breakdown b{font-size:12px}
.procurement-quick-form{gap:6px;margin:3px 0 9px}
.procurement-quick-form input{height:32px;font-size:15px}
.procurement-quick-form button{height:32px}
@media print{body.printing-procurement .procurement-collapsible>summary{display:none!important}body.printing-procurement .procurement-collapsible-content{display:block!important;padding:0!important}body.printing-report .report-section[data-report="summary"]{display:none!important}}

/* As três seções recolhíveis usam o mesmo cabeçalho */
.procurement-technical.procurement-collapsible{margin:0 20px 18px}
.procurement-technical.procurement-collapsible>summary{padding:13px 16px;display:flex;align-items:center;gap:10px;font-weight:700}
.procurement-technical.procurement-collapsible>summary>span{display:grid}
.procurement-technical.procurement-collapsible>summary strong{font-size:16px}
@media print{body.printing-procurement .procurement-technical.procurement-collapsible>summary{display:none!important}}

/* Keep the history SVG inside its panel so transparent areas cannot cover controls. */
#dashboardChart,#chart,#reportChart{position:relative;overflow:hidden;min-width:0}
#dashboardChart>svg,#chart>svg,#reportChart>svg{display:block;width:100%;height:100%;max-height:100%;overflow:hidden}
.history-chart-card>.surface-heading{position:relative;z-index:1}
.chart-toggle{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);cursor:pointer;user-select:none;box-sizing:border-box}
.chart-toggle input{cursor:pointer;flex:0 0 16px}

/* Let history plots use the panel width with only a small readable gutter. */
#dashboardChart,#reportChart{margin-inline:16px;padding:0}
.tag.wifi7{background:#e8eaf6;color:#283593}
.tag.wifi6{background:#e0f2f1;color:#00695c}
.tag.wifi5{background:#e1f5fe;color:#0277bd}
