@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/archivo-latin-ext-500-normal.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/archivo-latin-500-normal.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/archivo-latin-ext-600-normal.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/archivo-latin-600-normal.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/archivo-latin-ext-700-normal.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/archivo-latin-700-normal.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(/fonts/archivo-latin-ext-800-normal.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(/fonts/archivo-latin-800-normal.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/ibm-plex-sans-latin-ext-400-normal.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/ibm-plex-sans-latin-ext-500-normal.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/ibm-plex-sans-latin-500-normal.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/ibm-plex-sans-latin-ext-600-normal.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/ibm-plex-mono-latin-ext-400-normal.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/ibm-plex-mono-latin-ext-500-normal.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/ibm-plex-mono-latin-ext-600-normal.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/ibm-plex-mono-latin-600-normal.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--bg:#eef1ef;--surface:#fff;--surface-2:#e3e8e6;--border:#cbd5d2;--ink:#142027;--ink-muted:#55666d;--ink-faint:#85979f;--accent:#1d6690;--accent-strong:#124a6b;--accent-ink:#fff;--accent-soft:#dbe9f1;--ok:#1f7a4d;--ok-soft:#dcf0e4;--warn:#8a5a00;--warn-soft:#fbeecb;--critical:#b3271e;--critical-soft:#fbe1de;--info:#1d4ed8;--info-soft:#dde6fb;--neutral-soft:#e7e9e8;--shadow:0 1px 2px rgba(20,32,39,.07),0 6px 16px rgba(20,32,39,.07);--radius-s:6px;--radius-m:10px;--radius-l:16px;--font-display:"Archivo",system-ui,sans-serif;--font-body:"IBM Plex Sans",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e2233;--surface:#133046;--surface-2:#1a3c56;--border:#2c4f6a;--ink:#eaf3f8;--ink-muted:#a9c2d1;--ink-faint:#7c96a6;--accent:#74c6ea;--accent-strong:#a6dcf3;--accent-ink:#06202f;--accent-soft:#1d4560;--ok:#59cd90;--ok-soft:#163a2c;--warn:#e6bb56;--warn-soft:#3c3013;--critical:#f0897e;--critical-soft:#3c1e1a;--info:#8ab0f5;--info-soft:#17233f;--neutral-soft:#1c3a52;--shadow:0 1px 2px rgba(0,0,0,.35),0 8px 22px rgba(0,0,0,.4)}}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:14.5px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);margin:0}a{color:var(--accent)}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}table{border-collapse:collapse;width:100%}.num{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}#shell{display:grid;grid-template-columns:258px 1fr;min-height:100vh}#sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 14px;gap:22px}.brand{gap:10px;padding:0 6px}.brand,.brand-mark{display:flex;align-items:center}.brand-mark{width:30px;height:30px;border-radius:8px;background:linear-gradient(155deg,var(--accent),var(--accent-strong));justify-content:center;flex-shrink:0}.brand-mark svg{width:17px;height:17px}.brand-name{font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:-.01em}.brand-sub{font-size:11px;color:var(--ink-faint);margin-top:1px}nav.primary-nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-s);color:var(--ink-muted);font-weight:500;font-size:13.5px;cursor:pointer;border:none;background:none;width:100%;text-align:left;text-decoration:none}.nav-item:hover{background:var(--surface-2);color:var(--ink)}.nav-item.active{background:var(--accent-soft);color:var(--accent-strong)}.nav-item svg{width:16px;height:16px;flex-shrink:0}.nav-badge{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;background:var(--critical-soft);color:var(--critical);border-radius:20px;padding:1px 6px;font-weight:600}.sidebar-section-label{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding:0 10px;margin-bottom:2px}#building-list{display:flex;flex-direction:column;gap:2px;overflow-y:auto;max-height:30vh}.building-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--radius-s);cursor:pointer;border:none;background:none;width:100%;text-align:left;color:var(--ink-muted);font-size:13px;text-decoration:none}.building-item:hover{background:var(--surface-2);color:var(--ink)}.building-item.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.building-dot{width:6px;height:6px;border-radius:50%;background:var(--ink-faint);flex-shrink:0}.building-dot.has-critical{background:var(--critical)}.building-dot.has-warn{background:var(--warn)}.building-name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-new-building{display:flex;align-items:center;gap:6px;justify-content:center;padding:8px 10px;border-radius:var(--radius-s);border:1px dashed var(--border);background:none;color:var(--ink-muted);font-size:12.5px;font-weight:500;cursor:pointer}.btn-new-building:hover{border-color:var(--accent);color:var(--accent)}.btn-new-building:disabled{opacity:.5;cursor:not-allowed}#sidebar-footer{margin-top:auto;padding-top:12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.role-pill{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--ink-faint);padding:4px 6px}.role-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);flex-shrink:0}.signout-btn{border:none;background:none;color:var(--ink-faint);font-size:12px;text-align:left;padding:4px 6px;cursor:pointer;border-radius:var(--radius-s)}.signout-btn:hover{background:var(--surface-2);color:var(--ink)}#main{padding:30px 38px 60px;max-width:1440px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:26px;flex-wrap:wrap}.page-eyebrow{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px}.page-head h1{font-size:24px;font-weight:700;letter-spacing:-.015em}.page-desc{color:var(--ink-muted);font-size:13.5px;margin-top:5px;max-width:60ch}.btn{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:8px 14px;border-radius:var(--radius-s);border:1px solid var(--border);background:var(--surface);color:var(--ink);font-weight:500;font-size:13px;cursor:pointer}.btn:hover{border-color:var(--ink-faint)}.btn svg{width:14px;height:14px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn-ghost{border-color:transparent;background:none}.btn-ghost:hover{background:var(--surface-2);border-color:transparent}.btn-danger{color:var(--critical)}.btn-sm{padding:5px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;margin-bottom:30px}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:16px 18px;box-shadow:var(--shadow)}.kpi-label{font-size:11.5px;color:var(--ink-muted);font-weight:500;margin-bottom:8px}.kpi-value{font-family:var(--font-mono);font-size:26px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi-value.critical{color:var(--critical)}.kpi-value.warn{color:var(--warn)}.section-title{font-family:var(--font-display);font-size:15px;font-weight:700;margin-bottom:12px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);box-shadow:var(--shadow);overflow:hidden;margin-bottom:26px}.table-wrap{overflow-x:auto}table.data th{text-align:left;font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);padding:10px 14px;white-space:nowrap}table.data td,table.data th{border-bottom:1px solid var(--border)}table.data td{padding:11px 14px;vertical-align:middle;font-size:13px}table.data tr:last-child td{border-bottom:none}table.data tr:hover td{background:var(--surface-2)}.cell-muted{color:var(--ink-faint)}.cell-link{color:var(--accent);text-decoration:none;background:none;border:none;padding:0;cursor:pointer;font:inherit}.cell-link:hover{text-decoration:underline}.chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:11.5px;font-weight:600;white-space:nowrap}.chip:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.chip-ok{background:var(--ok-soft);color:var(--ok)}.chip-info{background:var(--info-soft);color:var(--info)}.chip-warn{background:var(--warn-soft);color:var(--warn)}.chip-critical{background:var(--critical-soft);color:var(--critical)}.chip-neutral{background:var(--neutral-soft);color:var(--ink-muted)}.chip-role{background:var(--accent-soft);color:var(--accent-strong);display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600}.empty-state{text-align:center;padding:50px 20px;color:var(--ink-faint)}.empty-state h3{color:var(--ink-muted);font-size:15px;margin-bottom:6px}.empty-state p{font-size:13px;margin:0 0 16px}.building-header{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);box-shadow:var(--shadow);padding:20px 22px;margin-bottom:24px;display:flex;justify-content:space-between;gap:20px;align-items:flex-start;flex-wrap:wrap}.building-header h1{font-size:20px}.meta-grid{display:grid;grid-template-columns:repeat(3,auto);grid-gap:4px 34px;gap:4px 34px;margin-top:14px}.meta-item .meta-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:600}.meta-item .meta-value{font-size:13.5px;margin-top:2px}.meta-item .meta-value.mono{font-family:var(--font-mono)}details.category{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);box-shadow:var(--shadow);margin-bottom:12px;overflow:hidden}details.category>summary{list-style:none;cursor:pointer;padding:14px 18px;display:flex;align-items:center;gap:12px}details.category>summary::-webkit-details-marker{display:none}.cat-chevron{width:14px;height:14px;color:var(--ink-faint);transition:transform .15s;flex-shrink:0}details[open]>summary .cat-chevron{transform:rotate(90deg)}.cat-title{font-family:var(--font-display);font-weight:700;font-size:14px}.cat-desc{font-size:12px;margin-top:1px}.cat-count,.cat-desc{color:var(--ink-faint)}.cat-count{margin-left:auto;font-family:var(--font-mono);font-size:11.5px}details.category .table-wrap{border-top:1px solid var(--border)}.cat-empty{padding:16px 18px;font-size:12.5px;color:var(--ink-faint)}dialog{border:none;border-radius:var(--radius-l);padding:0;width:min(480px,92vw);background:var(--surface);color:var(--ink);box-shadow:0 20px 60px rgba(0,0,0,.3)}dialog::-webkit-backdrop{background:rgba(10,18,24,.5)}dialog::backdrop{background:rgba(10,18,24,.5)}.dialog-head{padding:20px 24px 4px}.dialog-head h2{font-size:17px}.dialog-body{padding:14px 24px 22px;display:flex;flex-direction:column;gap:14px;max-height:65vh;overflow-y:auto}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--border)}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:12px;font-weight:600;color:var(--ink-muted)}.field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.field input,.field select,.field textarea{padding:8px 10px;border-radius:var(--radius-s);border:1px solid var(--border);background:var(--bg);color:var(--ink);width:100%}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);outline:none}.field textarea{resize:vertical;min-height:56px;font-family:inherit}.field-hint{font-size:11px;color:var(--ink-faint)}.checkbox-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:12.5px}.checkbox-row input{width:auto}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-s);border:1px solid transparent;background:none;color:var(--ink-faint);cursor:pointer}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.icon-btn svg{width:14px;height:14px}.row-actions{display:flex;gap:4px;justify-content:flex-end}.filter-bar{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.filter-bar select{padding:7px 10px;border-radius:var(--radius-s);border:1px solid var(--border);background:var(--surface);color:var(--ink);font-size:12.5px}.filter-chip{padding:6px 12px;border-radius:20px;border:1px solid var(--border);background:var(--surface);font-size:12px;font-weight:500;cursor:pointer;color:var(--ink-muted)}.filter-chip.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.footnote{font-size:11.5px;color:var(--ink-faint);border-top:1px dashed var(--border);padding-top:14px;margin-top:6px;max-width:74ch;line-height:1.6}.toast-stack{position:fixed;bottom:20px;right:24px;display:flex;flex-direction:column;gap:8px;z-index:90}.toast{background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:var(--radius-s);font-size:12.5px;font-weight:500;box-shadow:var(--shadow)}.toast.err{background:var(--critical);color:#fff}.banner{display:flex;align-items:center;gap:10px;background:var(--warn-soft);color:var(--warn);border:1px solid var(--warn);border-radius:var(--radius-s);padding:9px 14px;font-size:12.5px;font-weight:500;margin:18px 38px 0}.banner svg{width:15px;height:15px;flex-shrink:0}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--bg)}.login-card{width:min(380px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow);padding:32px 28px}.login-card .brand{justify-content:center;margin-bottom:22px}.login-card h1{font-size:18px;text-align:center;margin-bottom:4px}.login-card .page-desc{text-align:center;margin:0 0 22px}.login-error{background:var(--critical-soft);color:var(--critical);border-radius:var(--radius-s);padding:9px 12px;font-size:12.5px;margin-top:4px}.cred-box{background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius-m);padding:16px;display:flex;flex-direction:column;gap:8px}.cred-row{display:flex;justify-content:space-between;align-items:center;gap:10px}.cred-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-strong);font-weight:600}.cred-value{font-family:var(--font-mono);font-size:14px;font-weight:600}@media (max-width:860px){#shell{grid-template-columns:1fr}#sidebar{flex-direction:row;overflow-x:auto;align-items:center}#main{padding:22px 18px 50px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.checkbox-grid,.field-row,.meta-grid{grid-template-columns:1fr}}.ricerca{position:relative}.ricerca-campo{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:13px 18px;box-shadow:var(--shadow)}.ricerca-campo svg{width:19px;height:19px;color:var(--ink-faint);flex-shrink:0}.ricerca-campo input{border:none;background:none;outline:none;width:100%;font-size:15px}.ricerca-campo input::placeholder{color:var(--ink-faint)}.ricerca-compatta .ricerca-campo{background:var(--surface-2);border-radius:8px;padding:7px 10px;box-shadow:none}.ricerca-compatta .ricerca-campo svg{width:15px;height:15px}.ricerca-compatta .ricerca-campo input{font-size:13px}.ricerca-elenco{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.ricerca-voce{display:block;width:100%;text-align:left;border:none;background:none;padding:10px 16px;cursor:pointer;border-bottom:1px solid var(--border)}.ricerca-voce:last-child{border-bottom:none}.ricerca-voce.evidenziata{background:var(--accent-soft)}.ricerca-nome{display:block;font-weight:600;font-size:13.5px}.ricerca-ind{display:block;font-size:12px;color:var(--ink-faint)}.ricerca-vuoto{padding:14px 16px;font-size:13px;color:var(--ink-faint)}.saluto h1{font-size:26px;letter-spacing:-.02em}.saluto .oggi{font-size:13px;color:var(--ink-faint)}.attenzione{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px;margin:24px 0 28px}.att{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 18px;display:flex;align-items:center;gap:14px;box-shadow:var(--shadow);position:relative;overflow:hidden;text-align:left;width:100%;cursor:pointer;font:inherit;color:inherit}.att .barra{position:absolute;left:0;top:0;bottom:0;width:4px}.att .cifra{font-family:var(--font-display);font-size:30px;font-weight:700;line-height:1;min-width:46px}.att .testo{font-size:13.5px;font-weight:600}.att .sotto{font-size:12px;color:var(--ink-faint);margin-top:2px}.att .freccia{margin-left:auto;color:var(--ink-faint)}.att.critica .barra{background:var(--critical)}.att.critica .cifra{color:var(--critical)}.att.avviso .barra{background:var(--warn)}.att.avviso .cifra{color:var(--warn)}.att.sereno .barra{background:var(--ok)}.att.sereno .cifra{color:var(--ok)}.cose{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.cosa{display:flex;align-items:center;gap:14px;padding:13px 18px;border-bottom:1px solid var(--border);text-decoration:none;color:inherit}.cosa:last-child{border-bottom:none}.cosa:hover{background:var(--surface-2)}.cosa .pallino{width:8px;height:8px;border-radius:50%;flex-shrink:0}.cosa .titolo{font-weight:600;font-size:13.5px}.cosa .dove{font-size:12.5px;color:var(--ink-faint)}.cosa .quando{margin-left:auto;text-align:right}.cosa .freccia{color:var(--ink-faint)}.recenti{display:flex;gap:10px;flex-wrap:wrap}.recente-chip{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:500;box-shadow:var(--shadow);text-decoration:none;color:inherit}.recente-chip:hover{background:var(--accent-soft)}.scorciatoie{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px}.scorciatoia{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:var(--shadow);text-decoration:none;color:inherit;display:block}.scorciatoia:hover{border-color:var(--accent)}.scorciatoia .ico{width:36px;height:36px;border-radius:10px;background:var(--accent-soft);color:var(--accent-strong);display:flex;align-items:center;justify-content:center;margin-bottom:10px}.scorciatoia .ico svg{width:19px;height:19px}.scorciatoia .t{font-family:var(--font-display);font-weight:700;font-size:14px}.scorciatoia .d{font-size:12.5px;color:var(--ink-faint);margin-top:3px;line-height:1.4}.filtri{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.filtro{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:6px 13px;font-size:12.5px;font-weight:600;color:var(--ink-muted);cursor:pointer}.filtro.attivo{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.filtro .n{opacity:.7;margin-left:5px;font-weight:500}.schede{display:flex;gap:4px;flex-wrap:wrap}.scheda-tab{padding:10px 16px;font-size:13.5px;font-weight:600;color:var(--ink-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer}.scheda-tab.attiva{color:var(--accent-strong);border-bottom-color:var(--accent)}.scheda-tab .badge{display:inline-block;margin-left:6px;font-size:11px;background:var(--neutral-soft);color:var(--ink-muted);border-radius:999px;padding:1px 7px}.scheda-tab.attiva .badge{background:var(--accent-soft);color:var(--accent-strong)}@media (max-width:1100px){.attenzione,.scorciatoie{grid-template-columns:repeat(2,1fr)}}@media (max-width:720px){.attenzione,.scorciatoie{grid-template-columns:1fr}}.schede-barra{border-bottom:1px solid var(--border);margin-bottom:20px}.schede-barra .scheda-tab{margin-bottom:-1px}.schede{overflow-x:auto}.riepilogo-fascicolo{display:flex;gap:22px;flex-wrap:wrap;align-items:baseline;font-size:13px;color:var(--ink-muted);margin-bottom:14px;padding:0 2px}.riepilogo-fascicolo .n{font-family:var(--font-mono);font-weight:600;color:var(--ink)}.riepilogo-fascicolo .grave .n{color:var(--critical)}.recenti-lunghi{max-height:190px;overflow-y:auto;padding:2px}tr.riga-persona>td{background:var(--surface-2);padding:10px 14px}.persona{display:flex;align-items:center;gap:12px}.persona .barra{width:4px;align-self:stretch;min-height:30px;border-radius:2px;flex-shrink:0}.persona .barra.amm{background:var(--accent)}.persona .barra.forn{background:var(--ink-faint)}.persona .nome{font-weight:700;font-size:13.5px}.persona .quanti,.persona .sotto{font-size:12px;color:var(--ink-muted)}.persona .quanti{margin-left:auto}.mono{font-family:var(--font-mono)}td.id-lungo{white-space:nowrap;font-size:11.5px;letter-spacing:-.2px}.attesa{padding:22px 18px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}.attesa .testo{font-size:13.5px;color:var(--ink-muted)}.attesa .motivo{font-size:12.5px;color:var(--ink-faint);max-width:62ch;line-height:1.5}.attesa-errore .testo{color:var(--critical);font-weight:600}.privacy-sezione{display:flex;flex-direction:column;gap:8px;line-height:1.55}.privacy-sezione p{margin:0}