@import url(https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=block);*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--background:#f8f9ff;--surface:#f8f9ff;--surface-bright:#f8f9ff;--surface-lowest:#fff;--surface-low:#eff4ff;--surface-container-low:#eff4ff;--surface-container:#e6eeff;--surface-high:#dee9fc;--surface-container-high:#dee9fc;--surface-highest:#d9e3f6;--surface-container-highest:#d9e3f6;--border:#d9e3f6;--border-strong:#c3c6d7;--outline:#737686;--outline-variant:#c3c6d7;--primary:#004ac6;--primary-hover:#003ea8;--primary-light:#eaf1ff;--primary-container:#2563eb;--on-primary:#fff;--on-primary-container:#eeefff;--secondary:#00687a;--secondary-container:#57dffe;--secondary-fixed:#acedff;--on-secondary-container:#006172;--tertiary:#006242;--tertiary-container:#007d55;--tertiary-fixed:#6ffbbe;--tertiary-light:#bdffdb;--on-tertiary-fixed-variant:#005236;--error:#ba1a1a;--error-container:#ffdad6;--danger:#ba1a1a;--danger-light:#ffdad6;--text:#121c2a;--on-surface:#121c2a;--on-background:#121c2a;--text-muted:#434655;--on-surface-variant:#434655}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8f9ff;background:var(--surface);color:#121c2a;color:var(--text);font-family:Inter,Inter Fallback,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:1.5}#root,body,html{max-width:100vw;overflow-x:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.material-symbols-outlined{word-wrap:normal;font-feature-settings:"liga";-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;direction:ltr;display:inline-block;font-family:Material Symbols Outlined;font-size:1.25rem;font-style:normal;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;font-weight:400;height:1em;letter-spacing:0;line-height:1;overflow:hidden;text-transform:none;vertical-align:middle;white-space:nowrap;width:1em}.App,.portal-shell{background:var(--surface);max-width:100vw;min-height:100vh;overflow-x:hidden}.portal-sidebar{background:var(--surface-low);display:flex;flex-direction:column;gap:.5rem;inset:0 auto 0 0;padding:1.25rem;position:fixed;width:16rem;z-index:50}.portal-brand{margin-bottom:2rem;position:relative}.portal-brand-mobile{display:none;flex:1 1;margin-bottom:0;min-width:0}.portal-brand-link{align-items:center;background:#0000;border:0;color:inherit;cursor:pointer;display:flex;font:inherit;gap:.75rem;padding:0;text-align:left;text-decoration:none;width:100%}.portal-brand-logo{flex-shrink:0;height:2rem;width:2rem}.portal-building-trigger{border-radius:.75rem;transition:background .15s}.portal-building-trigger.open,.portal-building-trigger:hover{background:var(--surface-high)}.portal-building-title{flex:1 1;min-width:0}.portal-brand h1{color:var(--primary);font-size:1.05rem;font-weight:900;letter-spacing:0;line-height:1.1}.portal-brand p{color:var(--text-muted);font-size:.64rem;font-weight:700;letter-spacing:.2em;margin-top:.35rem;text-transform:uppercase}.portal-building-chevron{color:var(--text-muted);font-size:1.25rem;transition:transform .15s}.portal-building-trigger.open .portal-building-chevron{transform:rotate(180deg)}.portal-building-menu{background:#fff;border:1px solid var(--surface-high);border-radius:.75rem;box-shadow:0 18px 40px #1f293729;left:0;overflow:hidden;position:absolute;top:calc(100% + .65rem);width:min(22rem,calc(100vw - 2rem));z-index:80}.portal-building-menu-title{color:var(--text);font-size:.95rem;font-weight:900;padding:1rem 1.15rem .75rem}.portal-building-menu button{background:#0000;border:0;border-top:1px solid var(--surface-high);color:var(--text);cursor:pointer;display:block;font:inherit;padding:.95rem 1.15rem;text-align:left;width:100%}.portal-building-menu button.active,.portal-building-menu button:hover{background:#004ac614}.portal-building-menu span,.portal-building-menu strong{display:block}.portal-building-menu strong{font-size:.95rem;font-weight:850}.portal-building-menu span{color:var(--text-muted);font-size:.8rem;margin-top:.2rem}.portal-nav{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.portal-nav-link{align-items:center;background:#0000;border:0;border-radius:.5rem;color:var(--text-muted);cursor:pointer;display:flex;font:inherit;font-weight:600;gap:.85rem;padding:.85rem 1rem;text-align:left;text-decoration:none;transition:background .15s,color .15s,transform .15s;width:100%}.portal-nav-link:hover{background:var(--surface-high);color:var(--text)}.portal-nav-link.active{background:var(--surface-highest);box-shadow:0 4px 12px #004ac614;color:var(--primary);font-weight:800}.portal-nav-link:active{transform:scale(.98)}.portal-nav-link .material-symbols-outlined{font-size:1.35rem}.portal-nav-button{-webkit-appearance:none;appearance:none}.portal-user-menu{position:relative}.portal-user-card{align-items:center;background:#ffffffbd;border:0;border-radius:999px;color:var(--text);cursor:pointer;display:flex;font:inherit;gap:.65rem;min-width:0;padding:.35rem .7rem .35rem .35rem;transition:background .15s,transform .15s}.portal-user-card.open,.portal-user-card:hover{background:var(--surface-high)}.portal-user-card:active{transform:scale(.98)}.portal-avatar{background:var(--primary);border-radius:999px;color:#fff;display:grid;flex-shrink:0;font-weight:750;height:2rem;place-items:center;width:2rem}.portal-user-card strong{color:var(--text);font-size:.86rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-user-chevron{color:var(--text-muted);font-size:1.15rem;transition:transform .15s}.portal-user-card.open .portal-user-chevron{transform:rotate(180deg)}.portal-user-dropdown{background:#fff;border:1px solid var(--surface-high);border-radius:.75rem;box-shadow:0 18px 40px #1f293729;min-width:11rem;overflow:hidden;position:absolute;right:0;top:calc(100% + .55rem);z-index:90}.portal-user-dropdown button{align-items:center;background:#0000;border:0;color:var(--text);cursor:pointer;display:flex;font:inherit;font-weight:800;gap:.55rem;padding:.85rem 1rem;text-align:left;width:100%}.portal-user-dropdown button:hover{background:#004ac614;color:var(--primary)}.portal-user-dropdown .material-symbols-outlined{font-size:1.15rem}.portal-topbar{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#f8f9ffd1;display:flex;gap:1.5rem;height:4rem;justify-content:flex-end;min-width:0;padding:0 2.5rem;position:fixed;right:0;top:0;width:calc(100% - 16rem);z-index:40}.portal-search{flex:1 1;max-width:45rem;position:relative}.portal-search span{color:var(--outline);left:1rem;position:absolute;top:50%;transform:translateY(-50%)}.portal-search input{background:#ffffffc7;border:0;border-radius:1rem;color:var(--text);font:inherit;outline:none;padding:.9rem 1rem .9rem 2.75rem;width:100%}.portal-search input:focus{box-shadow:0 0 0 3px #004ac61f}.portal-actions{align-items:center;display:flex;gap:.65rem;min-width:0}.icon-button{align-items:center;background:#0000;border:0;border-radius:999px;color:var(--text-muted);cursor:pointer;display:inline-flex;height:2.55rem;justify-content:center;position:relative;text-decoration:none;transition:background .15s,color .15s;width:2.55rem}.icon-button:hover{background:var(--surface-high);color:var(--text)}.portal-main{margin-left:16rem;max-width:calc(100vw - 16rem);min-height:100vh;min-width:0;overflow-x:hidden;padding:4rem 2rem 3rem}.card{background:var(--surface-lowest);border-radius:1.5rem;cursor:pointer;padding:1.5rem;transition:background .2s,box-shadow .2s,transform .2s}.card:hover{background:var(--surface-container);box-shadow:0 12px 24px #004ac60a;transform:translateY(-4px)}.apartments-grid,.meters-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-top:1.5rem}.button{align-items:center;background:var(--primary);border:0;border-radius:.85rem;color:#fff;cursor:pointer;display:inline-flex;font:inherit;font-weight:800;gap:.35rem;padding:.75rem 1rem;text-decoration:none}.button:hover{opacity:.9}.button-secondary{background:var(--surface-high);color:var(--primary)}.badge{align-items:center;border-radius:999px;display:inline-flex;font-size:.76rem;font-weight:800;gap:.25rem;padding:.22rem .65rem}.badge-cold{background:var(--secondary-container);color:var(--on-secondary-container)}.badge-warm{background:#ef777229;color:#a33b37}.badge-heat{background:var(--tertiary-light);color:var(--on-tertiary-fixed-variant)}.loading{color:var(--text-muted);font-size:.95rem;padding:4rem;text-align:center}.spinner{animation:spin .8s linear infinite;border-top:3px solid var(--surface-highest);border:3px solid var(--surface-highest);border-radius:50%;border-top-color:var(--primary);height:40px;margin:2rem auto;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:1120px){.portal-topbar{gap:1rem}}@media (max-width:900px){.portal-sidebar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f8f9ffeb;border-top:1px solid var(--border);box-shadow:0 -12px 30px #121c2a14;display:block;inset:auto 0 0 0;max-width:100vw;min-height:0;padding:.45rem .65rem calc(.45rem + env(safe-area-inset-bottom));position:fixed;width:100%;z-index:70}.portal-sidebar>.portal-brand{display:none}.portal-brand-mobile{display:block}.portal-nav{grid-gap:.25rem;display:grid;gap:.25rem;grid-auto-columns:minmax(4.3rem,1fr);grid-auto-flow:column;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.portal-nav::-webkit-scrollbar{display:none}.portal-nav-link{align-items:center;border-radius:.85rem;flex-direction:row;flex-direction:column;font-size:.68rem;gap:.25rem;justify-content:center;line-height:1.1;min-height:3.65rem;padding:.45rem .55rem;text-align:center}.portal-nav-link .material-symbols-outlined{font-size:1.35rem}.portal-topbar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f8f9ffeb;border-bottom:1px solid var(--border);gap:.75rem;height:auto;justify-content:space-between;left:0;max-width:100vw;min-height:4.7rem;overflow:visible;padding:.75rem 1rem;position:fixed;right:0;top:0;width:100%;z-index:80}.portal-actions{flex-shrink:0;gap:.35rem}.portal-user-card{padding-right:.35rem}.portal-user-card strong,.portal-user-chevron{display:none}.portal-main{margin-left:0;max-width:100vw;padding:6rem 1rem calc(6rem + env(safe-area-inset-bottom))}.portal-building-menu{left:0;top:calc(100% + .6rem);width:min(22rem,calc(100vw - 2rem))}}@media (max-width:640px){.stats-container{display:none}.portal-sidebar{padding-inline:.45rem}.portal-brand-mobile .portal-brand-logo{height:1.8rem;width:1.8rem}.portal-brand-mobile h1{font-size:.95rem}.portal-brand-mobile h1,.portal-brand-mobile p{max-width:min(11rem,44vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-nav-link span:last-child{display:inline}.apartments-grid,.meters-grid{grid-template-columns:1fr}}.portal-welcome{align-items:flex-end;display:flex;gap:2rem;justify-content:space-between;margin-bottom:2rem;min-width:0}.portal-overline{color:var(--primary);font-size:.78rem;font-weight:750;letter-spacing:.16em;margin-bottom:.35rem;text-transform:uppercase}.portal-welcome h2{color:var(--text);font-size:clamp(1.65rem,3vw,2.25rem);font-weight:700;letter-spacing:0;line-height:1.08}.portal-location{align-items:center;color:var(--text-muted);display:flex;font-size:.98rem;gap:.55rem;margin-top:.65rem;min-width:0;overflow-wrap:anywhere}.portal-location .material-symbols-outlined{color:var(--secondary)}.dashboard-layout{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:3rem;min-width:0}.section-title{color:var(--text);font-size:1.08rem;font-weight:750;margin-bottom:1rem}.quick-actions{grid-gap:.85rem;display:grid;gap:.85rem;grid-template-columns:repeat(4,minmax(0,1fr));min-width:0}.quick-actions button{grid-gap:.85rem;align-items:center;background:var(--surface-lowest);border:1px solid var(--border);border-radius:.75rem;box-shadow:0 8px 22px #121c2a0a;color:var(--text);cursor:pointer;display:grid;font:inherit;gap:.85rem;grid-template-columns:auto minmax(0,1fr);min-height:4.85rem;padding:.95rem;text-align:left;transition:background .15s,border-color .15s,transform .15s}.quick-actions button:hover{background:#fff;border-color:#004ac638;transform:translateY(-2px)}.quick-actions strong{font-size:.95rem;font-weight:750;line-height:1.18;min-width:0;overflow-wrap:anywhere}.quick-icon{border:1px solid #0000;border-radius:.5rem;display:grid;height:2.55rem;place-items:center;width:2.55rem}.quick-icon.cyan{background:#57dffe38;color:var(--secondary)}.quick-icon.blue{background:#2563eb24;color:var(--primary)}.quick-icon.green{background:#6ffbbe38;color:var(--tertiary)}.quick-icon.red{background:#ffdad680;color:var(--error)}.dashboard-panel-header{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1rem}.dashboard-panel-header .section-title{margin-bottom:0}.dashboard-panel-header button{background:#fff;border:1px solid var(--border);border-radius:.5rem;color:var(--primary);cursor:pointer;font:inherit;font-weight:650;padding:.5rem .75rem;transition:background .15s,border-color .15s}.dashboard-panel-header button:hover{background:var(--surface);border-color:#004ac647}.dashboard-content-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:minmax(0,1fr) minmax(260px,.8fr);min-width:0}.dashboard-section{min-width:0}.dashboard-section-activity{grid-column:1/-1}.dashboard-section-actions .quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-activity{display:flex;flex-direction:column;gap:.85rem;min-width:0}.dashboard-activity-item{grid-gap:.9rem;align-items:center;background:var(--surface-lowest);border:1px solid var(--border);border-radius:.75rem;box-shadow:0 8px 22px #121c2a0a;color:inherit;cursor:pointer;display:grid;font:inherit;gap:.9rem;grid-template-columns:auto minmax(0,1fr);min-width:0;overflow:hidden;padding:.95rem;text-align:left;transition:background .15s,border-color .15s,transform .15s;width:100%}.dashboard-activity-item>div{min-width:0}.dashboard-activity-item:hover{background:#fff;border-color:#004ac638;transform:translateY(-2px)}.activity-icon{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;color:var(--primary);display:grid;height:2.4rem;place-items:center;width:2.4rem}.activity-icon.document{color:var(--tertiary)}.activity-icon.defect{color:var(--error)}.activity-icon.voting{color:var(--primary)}.dashboard-activity-item p:first-child{align-items:center;color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:.78rem;gap:.5rem;margin-bottom:.15rem;min-width:0;overflow-wrap:anywhere}.dashboard-activity-item p:first-child span{background:#57dffe38;border-radius:999px;color:var(--secondary);font-size:.72rem;font-weight:750;padding:.2rem .55rem;text-transform:uppercase}.dashboard-activity-item.type-document p:first-child span{background:#6ffbbe38;color:var(--tertiary)}.dashboard-activity-item.type-bulletin p:first-child span{background:#57dffe38;color:var(--secondary)}.dashboard-activity-item.type-defect p:first-child span{background:#ffdad699;color:var(--danger)}.dashboard-activity-item.type-voting p:first-child span{background:#2563eb24;color:var(--primary)}.dashboard-activity-item h4{color:var(--text);font-size:.95rem;font-weight:750;margin-bottom:.12rem;min-width:0;overflow-wrap:anywhere}.dashboard-activity-item p:last-child{-webkit-line-clamp:1;-webkit-box-orient:vertical;color:var(--text-muted);display:-webkit-box;font-size:.86rem;overflow:hidden;overflow-wrap:anywhere}.dashboard-empty{background:var(--surface-lowest);border:1px solid var(--border);border-radius:.75rem;color:var(--text-muted);font-weight:650;padding:1rem 1.2rem}.dashboard-contacts{display:flex;flex-direction:column;gap:.85rem;min-width:0}.dashboard-contact{background:var(--surface-lowest);border:1px solid var(--border);border-radius:.75rem;box-shadow:0 8px 22px #121c2a0a;display:flex;gap:1rem;justify-content:space-between;min-width:0;overflow:hidden;padding:.95rem}.dashboard-contact>div:first-child{min-width:0}.dashboard-contact h4{color:var(--text);font-size:.95rem;font-weight:750;overflow-wrap:anywhere}.dashboard-contact p{color:var(--primary);font-size:.82rem;font-weight:650;margin-top:.15rem}.dashboard-contact span{color:var(--text-muted);display:block;font-size:.82rem;margin-top:.35rem;overflow-wrap:anywhere}.dashboard-contact-lines{display:flex;flex-direction:column;gap:.2rem;margin-top:.55rem}.dashboard-contact-lines a{color:var(--text);font-size:.86rem;font-weight:650;overflow-wrap:anywhere;text-decoration:none}.dashboard-contact-lines a:hover{color:var(--primary)}.dashboard-contact-actions{align-items:flex-start;display:flex;flex-shrink:0;gap:.4rem}.dashboard-contact-actions a{align-items:center;background:#0000;border:1px solid var(--border);border-radius:.5rem;color:var(--primary);display:inline-flex;height:2.1rem;justify-content:center;text-decoration:none;transition:background .15s,border-color .15s,color .15s;width:2.1rem}.dashboard-contact-actions .material-symbols-outlined{font-size:1.1rem}.dashboard-contact-actions a:hover{background:var(--surface);border-color:#004ac647;color:var(--primary)}@media (max-width:1200px){.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-content-grid{grid-template-columns:1fr}.dashboard-section-actions .quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:780px){.portal-welcome{flex-direction:column;gap:.75rem}.dashboard-activity-item,.portal-welcome{align-items:flex-start}.dashboard-section-actions .quick-actions,.quick-actions{grid-template-columns:1fr}.quick-actions button{min-height:4.2rem}}@media (max-width:420px){.dashboard-contact{flex-direction:column}.dashboard-contact-actions{align-self:stretch}}.energy-chart-panel{border:1px solid #d9e3f6e6;border-radius:1.15rem;cursor:default;margin:0;min-width:0;padding:1.25rem}.energy-chart-panel,.energy-chart-panel:hover{background:var(--surface-lowest);box-shadow:0 14px 34px #004ac60a}.energy-chart-panel:hover{transform:none}.chart-panel-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;margin-bottom:.75rem}.chart-panel-title-group{grid-gap:.8rem;align-items:center;display:grid;gap:.8rem;grid-template-columns:auto minmax(0,1fr);min-width:0}.chart-panel-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-left:auto}.chart-mode-toggle{background:#f2f5fb;background:var(--surface-low,#f2f5fb);border:1px solid #d9e3f6;border:1px solid var(--border,#d9e3f6);border-radius:.65rem;display:inline-flex;gap:.15rem;padding:.2rem}.chart-mode-btn{background:#0000;border:0;border-radius:.5rem;color:#5c6478;color:var(--text-muted,#5c6478);cursor:pointer;font-family:inherit;font-size:.78rem;font-weight:750;padding:.32rem .7rem;transition:background .15s,color .15s,box-shadow .15s}.chart-mode-btn:hover{color:#121c2a;color:var(--text,#121c2a)}.chart-mode-btn.active{background:#fff;box-shadow:0 2px 6px #004ac61a;color:#004ac6;color:var(--primary,#004ac6)}.chart-period-nav{background:#f2f5fb;background:var(--surface-low,#f2f5fb);border:1px solid #d9e3f6;border:1px solid var(--border,#d9e3f6);border-radius:.65rem;gap:.25rem;padding:.15rem .25rem}.chart-nav-btn,.chart-period-nav{align-items:center;display:inline-flex}.chart-nav-btn{background:#0000;border:0;border-radius:.45rem;color:#121c2a;color:var(--text,#121c2a);cursor:pointer;height:1.75rem;justify-content:center;padding:0;transition:background .15s;width:1.75rem}.chart-nav-btn:hover:not(:disabled){background:#004ac614}.chart-nav-btn:disabled{cursor:not-allowed;opacity:.35}.chart-nav-btn .material-symbols-outlined{font-size:1.15rem}.chart-period-select{background:#0000;border:0;color:#121c2a;color:var(--text,#121c2a);cursor:pointer;font-family:inherit;font-size:.78rem;font-weight:750;outline:none;padding:.25rem .35rem}.chart-daily-meta{align-items:center;background:#f4f7fc;background:var(--surface-low,#f4f7fc);border:1px solid #d9e3f6cc;border-radius:.75rem;display:flex;flex-wrap:wrap;font-size:.78rem;gap:.6rem 1rem;justify-content:space-between;margin-bottom:.65rem;padding:.5rem .75rem}.chart-daily-summary{color:#5c6478;color:var(--text-muted,#5c6478);font-weight:700}.chart-daily-summary strong{color:#121c2a;color:var(--text,#121c2a);font-weight:850}.chart-interpolation-badge{align-items:center;background:#f59e0b1f;border:1px solid #f59e0b4d;border-radius:999px;color:#7c5800;display:inline-flex;font-size:.74rem;font-weight:750;gap:.4rem;padding:.18rem .6rem}.chart-interpolation-swatch{background:repeating-linear-gradient(-45deg,#36a2eb38,#36a2eb38 2px,#36a2ebbf 0,#36a2ebbf 4px);border:1px solid #004ac699;border-radius:.2rem;display:inline-block;flex-shrink:0;height:.75rem;width:.75rem}.chart-panel-icon{background:#57dffe38;border-radius:.85rem;color:var(--secondary);display:grid;font-size:1.35rem;height:2.5rem;place-items:center;width:2.5rem}.chart-panel-icon.heat{background:#6ffbbe38;color:var(--tertiary)}.energy-chart-panel h3{color:var(--text);font-size:1rem;font-weight:700;margin:0}.energy-chart-panel .chart-subtitle{color:var(--text-muted);font-size:.82rem;font-weight:650;margin:.15rem 0 0}.energy-chart-panel>p{color:var(--text-muted);font-weight:700;margin-top:1rem}.energy-chart-canvas{height:310px;width:100%}.tooltip-total-line{border-top:1px solid var(--border);color:var(--text);display:inline-block;margin-top:.35rem;padding-top:.35rem}.chart-tooltip{background:#fffffff5;border-radius:.85rem;box-shadow:0 16px 36px #121c2a1f;font-size:.82rem;padding:.7rem .85rem}.tooltip-label{font-weight:900;margin-bottom:.35rem;padding-bottom:.35rem}.tooltip-total{font-weight:900;margin-top:.35rem;padding-top:.35rem}.chart-legend-inline{align-items:center;color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:.78rem;font-weight:800;gap:.8rem;margin-top:.25rem}.chart-legend-inline span{align-items:center;display:inline-flex;gap:.35rem}.chart-legend-inline i{border-radius:999px;display:inline-block;height:.7rem;width:.7rem}.chart-legend-inline .legend-average{background:#0000;border-radius:0;border-top:2px dashed #737686;height:0;width:1.15rem}.legend-cold{background:#68c7d7}.legend-warm{background:#ef7772}.hca-detail-container{min-width:0}.hca-detail-container .chart-legend-inline{max-height:4rem;overflow:auto}.energy-page{display:flex;flex-direction:column;gap:1.5rem}.energy-hero{align-items:flex-end;display:flex;gap:1.5rem;justify-content:space-between;margin-bottom:.25rem}.energy-hero h2{color:var(--text);font-size:clamp(1.65rem,3vw,2.25rem);font-weight:700;letter-spacing:0;line-height:1.08}.energy-title-row{align-items:center;display:flex;flex-wrap:wrap;gap:.85rem}.apartment-title-menu{display:inline-flex;position:relative}.apartment-title-trigger{align-items:center;background:#0000;border:0;border-radius:.65rem;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:.35rem;margin:-.25rem 0;padding:.25rem .45rem .25rem 0;transition:background .15s}.apartment-title-trigger.open,.apartment-title-trigger:hover{background:var(--surface-high)}.apartment-title-trigger:disabled{cursor:wait;opacity:.65}.apartment-title-chevron{color:var(--text-muted);font-size:1.7rem;transition:transform .15s}.apartment-title-trigger.open .apartment-title-chevron{transform:rotate(180deg)}.apartment-title-dropdown{background:#fff;border:1px solid var(--surface-high);border-radius:.75rem;box-shadow:0 18px 40px #1f293729;left:0;overflow:hidden;position:absolute;top:calc(100% + .55rem);width:min(22rem,calc(100vw - 2rem));z-index:30}.apartment-title-dropdown-title{color:var(--text);font-size:.95rem;font-weight:900;padding:1rem 1.15rem .75rem}.apartment-title-dropdown button{background:#0000;border:0;border-top:1px solid var(--surface-high);color:var(--text);cursor:pointer;display:block;font:inherit;padding:.95rem 1.15rem;text-align:left;width:100%}.apartment-title-dropdown button.active,.apartment-title-dropdown button:hover{background:#004ac614}.apartment-title-dropdown span,.apartment-title-dropdown strong{display:block}.apartment-title-dropdown strong{font-size:.95rem;font-weight:850}.apartment-title-dropdown span{color:var(--text-muted);font-size:.8rem;margin-top:.2rem}.energy-hero p:last-child{color:var(--text-muted);font-size:1.05rem;margin-top:.8rem;max-width:46rem}.energy-hero-stats{grid-gap:.65rem;display:grid;gap:.65rem;grid-template-columns:repeat(3,minmax(5.75rem,1fr));min-width:min(100%,22rem)}.energy-hero-stats div{background:var(--surface-lowest);border-radius:1rem;box-shadow:0 10px 28px #004ac60a;padding:.85rem 1rem}.energy-hero-stats span,.energy-hero-stats strong{display:block}.energy-hero-stats strong{color:var(--text);font-size:1.45rem;font-weight:900;line-height:1}.energy-hero-stats span{color:var(--text-muted);font-size:.74rem;font-weight:800;margin-top:.35rem;text-transform:uppercase}.energy-charts{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.energy-section-heading{align-items:flex-end;display:flex;justify-content:space-between;margin-top:.25rem}.energy-section-heading .portal-overline{margin-bottom:.2rem}.energy-section-heading h3{color:var(--text);font-size:1.2rem;font-weight:700}.meter-card{border:1px solid #0000;border-radius:1.15rem;box-shadow:0 10px 30px rgba(0,74,198,.035);cursor:default;display:flex;flex-direction:column;overflow:hidden;padding:1.05rem 1.1rem .85rem;position:relative}.meter-card:before{background:var(--primary);content:"";inset:0 auto 0 0;opacity:.9;position:absolute;width:.35rem}.meter-card.type-cold:before{background:#68c7d7}.meter-card.type-warm:before{background:#ef7772}.meter-card.type-heat:before{background:#65c99b}.meter-card.type-heat.room-lo:before{background:#7da7f7}.meter-card.type-heat.room-ku:before{background:#68c7d7}.meter-card.type-heat.room-ob:before{background:#65c99b}.meter-card.type-heat.room-po:before{background:#ef7772}.meter-header{grid-gap:.65rem;align-items:center;display:grid;gap:.65rem;grid-template-columns:auto minmax(0,1fr) auto;margin-bottom:.7rem}.meter-icon{align-items:center;background:var(--surface-low);border-radius:.85rem;color:var(--primary);display:inline-flex;font-size:1.25rem;height:2.25rem;justify-content:center;width:2.25rem}.type-cold .meter-icon{background:#68c7d72e;color:#277888}.type-warm .meter-icon{background:#ef777229;color:#a33b37}.type-heat .meter-icon{background:#65c99b2e;color:#27724f}.type-heat.room-lo .meter-icon{background:#7da7f72e;color:#315fae}.type-heat.room-ku .meter-icon{background:#68c7d72e;color:#277888}.type-heat.room-ob .meter-icon{background:#65c99b2e;color:#27724f}.type-heat.room-po .meter-icon{background:#ef777229;color:#a33b37}.meter-kicker{color:var(--text-muted);display:block;font-size:.68rem;font-weight:900;letter-spacing:.14em;margin-bottom:.1rem;text-transform:uppercase}.meter-header h4{color:var(--text);font-size:.92rem;font-weight:750;margin:0;min-width:0;overflow-wrap:anywhere}.meter-type-badge{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.65rem}.room-badge{align-items:center;background:var(--surface-low);border:1px solid var(--border);border-radius:999px;color:var(--text-muted);display:inline-flex;font-size:.76rem;font-weight:650;padding:.2rem .6rem}.room-badge.room-lo{background:#7da7f729;border-color:#315fae29;color:#315fae}.room-badge.room-ku{background:#68c7d72e;border-color:#27788829;color:#277888}.room-badge.room-ob{background:#65c99b2e;border-color:#27724f29;color:#27724f}.room-badge.room-po{background:#ef777229;border-color:#a33b3729;color:#a33b37}.meter-value{background:linear-gradient(135deg,var(--surface-low),var(--surface-lowest));border:1px solid var(--border);border-radius:1rem;margin:.65rem 0;padding:.8rem .85rem;text-align:left}.value-large{color:var(--text);font-size:clamp(1.25rem,3vw,1.55rem);font-weight:800;line-height:1.1}.value-consumption{align-items:center;color:var(--text-muted);display:flex;font-size:.82rem;font-weight:700;gap:.75rem;justify-content:space-between;margin-top:.3rem}.value-consumption strong{color:var(--primary);font-size:.95rem;white-space:nowrap}.meter-details{background:#0000;border:1px solid var(--border);border-radius:1rem;margin:.65rem 0;padding:.65rem .75rem}.detail-row{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:1rem;justify-content:space-between;padding:.32rem 0}.detail-row:last-child{border-bottom:none}.detail-row span{color:var(--text-muted);font-size:.82rem}.detail-row strong{color:var(--text);font-size:.82rem;font-weight:650;text-align:right}.meter-timestamp{align-items:center;color:var(--text-muted);display:flex;font-size:.78rem;font-weight:650;gap:.4rem}.meter-footer{border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.35rem;margin-top:auto;padding-top:.7rem}.grouped-meters-grid{gap:.85rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.meter-group-header{align-items:center;display:flex;gap:1rem;grid-column:1/-1;justify-content:space-between;margin-top:.35rem;padding:.15rem .2rem}.meter-group-header h4{color:var(--text);font-size:1rem;font-weight:700}.meter-group-header span{color:var(--text-muted);font-size:.78rem;font-weight:800}.meter-timestamp .material-symbols-outlined{color:var(--outline);font-size:1rem}.meter-inactive{opacity:.55}.badge-inactive{background:var(--border);border-radius:999px;color:var(--text-muted);font-size:.7rem;font-weight:700;padding:.15rem .5rem}.no-data{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text-muted);margin-top:1.5rem;padding:3rem;text-align:center}@media (max-width:720px){.energy-hero{align-items:flex-start;flex-direction:column}.energy-hero-stats{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.energy-charts{grid-template-columns:1fr}}.building-select-page{margin:3rem 0;padding:0 1rem}.building-select-title{color:var(--text);font-size:1.5rem;margin-bottom:1.5rem}.building-select-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.building-card{cursor:pointer;padding:1.5rem;transition:transform .15s,box-shadow .15s}.building-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.building-card h3{color:var(--text);font-size:1.1rem;margin:0 0 .4rem}.building-card p{color:var(--text-secondary);font-size:.9rem;margin:0}.stats-container{align-items:center;display:flex;flex-wrap:wrap;gap:.45rem;justify-content:center;min-width:0}.stat-pill{align-items:baseline;background:#ffffffb3;border-radius:999px;display:inline-flex;gap:.35rem;padding:.35rem .75rem}.stat-value{color:var(--primary);font-size:.9rem;font-weight:900}.stat-label{color:var(--text-muted);font-size:.72rem;font-weight:700}.chart-container h3{color:var(--text);font-size:1rem;font-weight:750;margin-bottom:.2rem}.chart-subtitle{color:var(--text-muted);font-size:.86rem;margin-bottom:1rem}.chart-tooltip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-hover);font-size:.84rem;padding:10px 14px}.tooltip-label{border-bottom:1px solid var(--border);margin-bottom:4px;padding-bottom:4px}.tooltip-label,.tooltip-total{color:var(--text);font-weight:750}.tooltip-total{border-top:1px solid var(--border);margin-top:4px;padding-top:4px}.chart-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin:1.25rem 0;padding:1.5rem}.chartjs-canvas{height:340px;position:relative;width:100%}.chartjs-canvas.tall{height:420px}.readings-hero{align-items:flex-end;display:flex;gap:1.5rem;justify-content:space-between;margin-bottom:1.25rem}.readings-hero h2{color:var(--text);font-size:clamp(1.65rem,3vw,2.25rem);font-weight:700;letter-spacing:0;line-height:1.08}.readings-hero p:last-child{color:var(--text-muted);font-size:.98rem;margin-top:.65rem;max-width:46rem}.readings-stats{margin-bottom:1.25rem}.readings-stats .stats-container{grid-gap:.85rem;display:grid;gap:.85rem;grid-template-columns:repeat(4,minmax(10rem,1fr))}.readings-stats .stat-pill{align-items:flex-start;background:var(--surface-lowest);border:1px solid var(--border);border-radius:.75rem;box-shadow:0 8px 22px #121c2a0a;display:flex;gap:.85rem;justify-content:space-between;padding:.9rem 1rem}.readings-stats .stat-value{color:var(--text);font-size:1.2rem;font-weight:700;line-height:1}.readings-stats .stat-label{color:var(--text-muted);font-size:.72rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase}.readings-charts{margin:1rem 0 1.25rem}.readings-panel-header{align-items:baseline;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.75rem}.readings-panel-header h3{color:var(--text);font-size:1rem;font-weight:700}.readings-panel-header span{color:var(--text-muted);font-size:.82rem}.readings-chart-grid{grid-gap:.85rem;display:grid;gap:.85rem;grid-template-columns:repeat(2,minmax(0,1fr))}.readings-chart-grid .chart-container,.readings-chart-grid .hca-chart-container{background:var(--surface-lowest);border:1px solid var(--border);border-radius:.75rem;box-shadow:0 8px 22px #121c2a0a;cursor:default;margin:0;min-width:0;padding:1rem}.readings-chart-grid .chart-container:hover,.readings-chart-grid .hca-chart-container:hover{background:var(--surface-lowest);box-shadow:0 8px 22px #121c2a0a;transform:none}.readings-chart-grid .chart-container h3,.readings-chart-grid .hca-chart-container h3{color:var(--text);font-size:.95rem;font-weight:700;margin-bottom:.2rem}.readings-chart-grid .chart-subtitle{color:var(--text-muted);font-size:.8rem;margin-bottom:.75rem}.readings-chart-grid .chartjs-canvas.tall{height:340px}.readings-section{background:var(--surface-lowest);border:1px solid var(--border);border-radius:.75rem;box-shadow:0 8px 22px #121c2a0a;cursor:default;margin:1rem 0;overflow:hidden;padding:0}.readings-section:hover{box-shadow:none;transform:none}.readings-section h3{background:#fff;border-bottom:1px solid var(--border);color:var(--text);font-size:1rem;font-weight:700;margin:0;padding:.82rem 1rem}.table-wrapper{background:#fff;overflow-x:auto}.readings-table{background:#fff;border-collapse:initial;border-spacing:0;font-size:.82rem;width:100%}.readings-table td,.readings-table th{border-bottom:1px solid var(--border);padding:.58rem .7rem;text-align:left;white-space:nowrap}.readings-table th{background:var(--surface);box-shadow:inset 0 -1px 0 var(--border);color:var(--text-muted);font-size:.72rem;font-weight:650;letter-spacing:.03em;position:-webkit-sticky;position:sticky;text-transform:uppercase;top:0;z-index:1}.readings-table td+td,.readings-table th+th{border-left:1px solid #d9e3f69e}.readings-table tbody tr:nth-child(2n){background:#f8f9ff94}.readings-table tbody tr:hover{background:rgba(0,74,198,.045)}.readings-table .mono{color:var(--text-muted);font-family:Courier New,monospace;font-size:.78rem}.readings-table .num{color:var(--text);font-weight:650;text-align:right}.readings-table .badge{background:#fff;border:1px solid #c3c6d794;font-size:.72rem;font-weight:600;padding:.16rem .5rem}.readings-table .badge-cold{background:#57dffe24;color:var(--secondary)}.readings-table .badge-warm{background:#ef77721f;color:#a33b37}.readings-table .badge-heat{background:#6ffbbe24;color:var(--tertiary)}.pagination{align-items:center;display:flex;gap:.75rem;justify-content:center;margin:1.25rem 0}.page-info{color:var(--text-muted);font-size:.82rem}.row-inactive{background:#f8f9ffb8;opacity:.58}@media (max-width:900px){.readings-stats .stats-container{grid-template-columns:repeat(2,minmax(0,1fr))}.readings-chart-grid{grid-template-columns:1fr}}@media (max-width:640px){.readings-hero,.readings-panel-header{align-items:flex-start;flex-direction:column}.readings-panel-header{gap:.25rem}.readings-stats .stats-container{grid-template-columns:1fr}}.login-portal{background-color:#f8f9ff;background-color:var(--surface,#f8f9ff);color:#121c2a;color:var(--on-surface,#121c2a);display:flex;flex-direction:column;min-height:100vh}.login-navbar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f8f9ffd9;left:0;position:fixed;right:0;top:0;z-index:50}.login-navbar-inner{align-items:center;display:flex;height:5rem;justify-content:space-between;margin:0 auto;max-width:80rem;padding:0 2rem}.login-brand-link{align-items:center;color:#1d4ed8;display:inline-flex;gap:.5rem;text-decoration:none}.login-brand-icon{color:#1d4ed8;font-size:1.875rem}.login-brand-text{color:#1d4ed8;font-size:1.5rem;font-weight:700;letter-spacing:-.025em}.login-nav-links{align-items:center;display:flex;gap:2rem}.login-nav-links a{color:#475569;font-size:.95rem;font-weight:500;text-decoration:none;transition:color .15s ease}.login-nav-links a:hover{color:#2563eb}.login-nav-links a.login-nav-cta{background:#2563eb;background:var(--primary-container,#2563eb);border-radius:.5rem;color:#eeefff;color:var(--on-primary-container,#eeefff);font-weight:700;margin-left:.5rem;padding:.625rem 1.5rem;transform:scale(.95);transition:filter .15s ease,transform .15s ease}.login-nav-links a.login-nav-cta:hover{color:#eeefff;color:var(--on-primary-container,#eeefff);filter:brightness(1.1)}.login-main{align-items:center;display:flex;flex:1 1;justify-content:center;padding:6.5rem 1.5rem 3rem}.login-container{max-width:28rem;width:100%}.login-card-wrapper{position:relative}.login-card-glow{background:linear-gradient(to top right,#004ac6,#00687a);background:linear-gradient(to top right,var(--primary,#004ac6),var(--secondary,#00687a));border-radius:.85rem;filter:blur(8px);inset:-.25rem;opacity:.12;pointer-events:none;position:absolute;transition:opacity .6s ease}.login-card-wrapper:hover .login-card-glow{opacity:.2}.login-card{background:#fff;background:var(--surface-lowest,#fff);border:1px solid #c3c6d747;border-radius:.75rem;box-shadow:0 12px 32px -12px #121c2a14;padding:2.5rem;position:relative}.login-header{display:flex;flex-direction:column;margin-bottom:2.25rem}.login-kicker{color:#00687a;color:var(--secondary,#00687a);font-size:.75rem;font-weight:700;letter-spacing:.1em;margin-bottom:.5rem;text-transform:uppercase}.login-title{color:#121c2a;color:var(--on-surface,#121c2a);font-size:1.875rem;font-weight:900;letter-spacing:-.04em;line-height:2.25rem}.login-subtitle{color:#434655;color:var(--on-surface-variant,#434655);font-size:.875rem;margin-top:.65rem}.login-form{gap:1.4rem}.login-field,.login-form{display:flex;flex-direction:column}.login-field{gap:.5rem}.login-field label{color:#434655;color:var(--on-surface-variant,#434655);font-size:.875rem;font-weight:600;margin-left:.25rem}.login-input-wrap{position:relative}.login-input-icon{color:#737686;color:var(--outline,#737686);font-size:1.15rem;left:1rem;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.login-input-wrap input{background:#eff4ff;background:var(--surface-container-low,#eff4ff);border:1.5px solid #0000;border-radius:.5rem;color:#121c2a;color:var(--on-surface,#121c2a);display:block;font-size:.95rem;outline:none;padding:.875rem 1rem .875rem 2.75rem;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;width:100%}.login-input-wrap input::placeholder{color:#7376868c}.login-input-wrap input:focus{background:#fff;border-color:#004ac6;border-color:var(--primary,#004ac6);box-shadow:0 0 0 3px #004ac624}.login-input-wrap input:disabled{cursor:not-allowed;opacity:.65}.login-error{background:#ffdad6;background:var(--error-container,#ffdad6);border-radius:.5rem;color:#93000a;font-size:.875rem;font-weight:600;padding:.75rem 1rem}.login-button{align-items:center;background:#004ac6;background:var(--primary,#004ac6);border:0;border-radius:.5rem;box-shadow:0 2px 6px #004ac633;color:#fff;color:var(--on-primary,#fff);cursor:pointer;display:flex;font-size:1rem;font-weight:700;gap:.5rem;justify-content:center;padding:1rem 1.5rem;transition:background-color .15s ease,transform .15s ease,box-shadow .15s ease,opacity .15s ease;width:100%}.login-button:hover:not(:disabled){background:#003ea8;background:var(--primary-hover,#003ea8);box-shadow:0 6px 16px #004ac640}.login-button:active:not(:disabled){transform:scale(.98)}.login-button:disabled{cursor:not-allowed;opacity:.65}.login-button-icon{font-size:1.25rem;transition:transform .15s ease}.login-button:hover:not(:disabled) .login-button-icon{transform:translateX(.25rem)}.login-card-footer{border-top:1px solid #dee9fc;border-top:1px solid var(--surface-container-high,#dee9fc);color:#434655;color:var(--on-surface-variant,#434655);font-size:.875rem;margin-top:2rem;padding-top:1.75rem;text-align:center}.login-card-footer a{color:#00687a;color:var(--secondary,#00687a);font-weight:700;text-decoration:none}.login-card-footer a:hover{text-decoration:underline}.login-badges{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:2.5rem}.login-badge{background:#eff4ffa6;border-radius:.75rem;gap:.75rem;padding:1rem}.login-badge,.login-badge-icon{align-items:center;display:flex}.login-badge-icon{border-radius:9999px;flex-shrink:0;height:2.5rem;justify-content:center;width:2.5rem}.login-badge-icon--tertiary{background:#4edea3;color:#005236}.login-badge-icon--secondary{background:#4cd7f6;color:#004e5c}.login-badge-kicker{color:#434655;color:var(--on-surface-variant,#434655);display:block;font-size:.625rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.login-badge-title{color:#121c2a;color:var(--on-surface,#121c2a);display:block;font-size:.75rem;font-weight:600}.login-footer{background:#eff4ff;background:var(--surface-container-low,#eff4ff);border-top:1px solid #e2e8f0;width:100%}.login-footer-inner{align-items:center;display:flex;flex-direction:row;gap:1.5rem;justify-content:space-between;margin:0 auto;max-width:80rem;padding:2.25rem 2rem}.login-footer-brand{color:#0f172a;font-size:1.125rem;font-weight:700;margin-bottom:.35rem}.login-footer-copy{color:#64748b;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.login-footer-links{display:flex;flex-wrap:wrap;gap:2rem}.login-footer-links a{color:#64748b;font-size:.75rem;letter-spacing:.08em;text-decoration:none;text-transform:uppercase;transition:color .15s ease}.login-footer-links a:hover{color:#1d4ed8}@media (max-width:640px){.login-nav-links a:not(.login-nav-cta){display:none}.login-card{padding:1.75rem 1.35rem}.login-badges{grid-template-columns:1fr}.login-footer-inner{flex-direction:column;text-align:center}}.ac-page{padding:0}.ac-page-header{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1rem}.ac-page-header h2{color:var(--text);font-size:clamp(1.45rem,2.6vw,2rem);font-weight:700;margin:0}.ac-building-scope{color:var(--text-muted);font-size:.86rem;font-weight:650;margin-top:.25rem}.ac-tabs{border-bottom:1px solid var(--border);display:flex;gap:.35rem;margin-bottom:1.25rem;overflow-x:auto}.ac-tab{background:none;border:none;border-bottom:3px solid #0000;border-radius:var(--radius) var(--radius) 0 0;color:var(--text-muted);cursor:pointer;font-size:.9rem;font-weight:700;margin-bottom:-1px;padding:.65rem .95rem;transition:color .15s,border-color .15s,background .15s;white-space:nowrap}.ac-tab:hover{color:var(--text)}.ac-tab-active,.ac-tab:hover{background:var(--surface-low)}.ac-tab-active{border-bottom-color:var(--primary);color:var(--primary)!important}.ac-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow-x:auto}.ac-table{border-collapse:collapse;font-size:.88rem;width:100%}.ac-table th{background:var(--surface-low);color:var(--text-muted);font-size:.76rem;font-weight:750;letter-spacing:.04em;text-align:left;text-transform:uppercase;white-space:nowrap}.ac-table td,.ac-table th{border-bottom:1px solid var(--border);padding:.65rem .75rem}.ac-table td{color:var(--text);vertical-align:middle}.ac-table tr:last-child td{border-bottom:none}.ac-table tr:hover td{background:var(--primary-light)}.ac-table code{background:var(--surface-low);border-radius:4px;font-size:.78rem;padding:.15rem .35rem}.ac-inactive td{opacity:.5}.ac-actions{display:flex;gap:.4rem;justify-content:flex-end;white-space:nowrap}.ac-btn,.ac-btn-add,.ac-btn-cancel,.ac-btn-save{border-radius:var(--radius);font-family:inherit}.ac-btn{border:none;cursor:pointer;font-size:.78rem;font-weight:700;padding:.38rem .65rem;transition:background .15s,color .15s}.ac-btn-edit{background:var(--primary-light);color:var(--primary)}.ac-btn-access{background:var(--surface-mid);color:var(--text)}.ac-btn-access:hover{background:var(--primary-light);color:var(--primary)}.ac-btn-edit:hover{background:var(--primary);color:#fff}.ac-btn-del{background:var(--danger-light);color:var(--danger)}.ac-btn-del:hover{background:var(--danger);color:#fff}.ac-btn-add:disabled,.ac-btn:disabled{cursor:not-allowed;filter:grayscale(.3);opacity:.45}.ac-btn-add:disabled:hover,.ac-btn:disabled:hover{background:var(--surface-low);color:var(--text-muted)}.ac-btn-add,.ac-btn-save{background:var(--primary);border:none;color:#fff;cursor:pointer;font-size:.9rem;font-weight:800;padding:.58rem 1rem;transition:background .15s,opacity .15s}.ac-btn-add:hover,.ac-btn-save:hover:not(:disabled){background:var(--primary-hover)}.ac-error,.ac-loading{color:var(--text-muted);font-size:.9rem;padding:2rem;text-align:center}.ac-error{color:var(--danger)}.ac-overlay{align-items:center;background:#121c2a73;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:1000}.ac-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 24px 60px #121c2a3d;display:flex;flex-direction:column;max-height:90vh;max-width:540px;width:100%}.ac-modal-header{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:1rem 1.25rem}.ac-modal-header h3{color:var(--text);font-size:1rem;font-weight:800;margin:0}.ac-modal-subtitle{color:var(--text-muted);font-size:.82rem;margin-top:.2rem}.ac-modal-close{background:var(--surface-low);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;font-size:1rem;line-height:1;padding:.25rem .5rem}.ac-modal-close:hover{background:var(--surface-mid);color:var(--text)}.ac-modal-body{display:flex;flex-direction:column;gap:.85rem;overflow-y:auto;padding:1.25rem}.ac-modal-footer{border-top:1px solid var(--border);display:flex;gap:.5rem;justify-content:flex-end;padding:.85rem 1.25rem}.ac-field{display:flex;flex-direction:column;gap:.35rem}.ac-field label{color:var(--text);font-size:.84rem;font-weight:700}.ac-field input,.ac-field select{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:inherit;font-size:.9rem;outline:none;padding:.6rem .7rem;transition:border-color .15s,box-shadow .15s}.ac-field input:focus,.ac-field select:focus{border-color:var(--primary);box-shadow:0 0 0 4px #004ac61a}.ac-checkbox{align-items:center;color:var(--text);cursor:pointer;display:flex;font-size:.9rem;gap:.5rem}.ac-checkbox input[type=checkbox]{cursor:pointer;height:16px;width:16px}.ac-row{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.ac-dialog-error{background:var(--danger-light);border-radius:var(--radius);color:var(--danger);font-size:.84rem;padding:.65rem .75rem}.ac-btn-cancel{background:var(--surface);border:1.5px solid var(--border);color:var(--text-muted);cursor:pointer;font-size:.9rem;padding:.58rem 1rem;transition:background .15s}.ac-btn-cancel:hover{background:var(--surface-low)}.ac-btn-save:disabled{cursor:not-allowed;opacity:.6}.ac-hint{color:var(--text-muted);font-size:.78rem;margin-top:.1rem}.ac-access-modal{max-width:620px}.ac-access-list{display:flex;flex-direction:column;gap:.5rem}.ac-access-item{align-items:flex-start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;display:flex;gap:.7rem;padding:.7rem .8rem;transition:border-color .15s,background .15s}.ac-access-item:hover{background:var(--primary-light);border-color:var(--primary)}.ac-access-item input{accent-color:var(--primary);height:17px;margin-top:.15rem;width:17px}.ac-access-item span{display:flex;flex-direction:column;gap:.15rem}.ac-access-item strong{color:var(--text);font-size:.9rem}.ac-access-item small,.ac-empty-access{color:var(--text-muted);font-size:.8rem}.ac-empty-access{padding:1rem;text-align:center}@media (max-width:720px){.ac-modal-footer,.ac-page-header{align-items:stretch;flex-direction:column}.ac-row{grid-template-columns:1fr}}.bulletin-hero{align-items:flex-end;display:flex;gap:1.5rem;justify-content:space-between;margin-bottom:1.25rem}.bulletin-hero h2{color:var(--text);font-size:clamp(1.65rem,3vw,2.25rem);font-weight:700;letter-spacing:0;line-height:1.08}.bulletin-hero p:last-child{color:var(--text-muted);font-size:.98rem;margin-top:.65rem;max-width:42rem}.bulletin-add-button{align-items:center;background:var(--primary);border:1px solid #0000;border-radius:.5rem;color:#fff;cursor:pointer;display:inline-flex;flex-shrink:0;font:inherit;font-weight:700;gap:.45rem;padding:.72rem .95rem;transition:background .15s,box-shadow .15s,transform .15s}.bulletin-add-button:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 8px 18px #004ac624;transform:translateY(-1px)}.bulletin-empty,.bulletin-error{background:var(--error-container);border-radius:.5rem;color:var(--danger);font-weight:650;margin-bottom:1rem;padding:1rem 1.2rem}.bulletin-empty{background:var(--surface-low);color:var(--text-muted)}.bulletin-form{background:var(--surface-lowest);border:1px solid var(--border);border-radius:.75rem;box-shadow:0 10px 28px #121c2a0d;display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding:1.25rem}.bulletin-form-header{align-items:center;display:flex;gap:1rem;justify-content:space-between}.bulletin-form h3{color:var(--text);font-size:1.08rem;font-weight:750}.bulletin-form-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) 12rem 11rem}.bulletin-form label{color:var(--text-muted);display:flex;flex-direction:column;font-size:.8rem;font-weight:650;gap:.4rem}.bulletin-toggle{align-items:center;color:var(--text-muted)!important;flex-direction:row!important;gap:.5rem}.bulletin-toggle input{accent-color:var(--primary);height:1rem;width:1rem}.bulletin-form input,.bulletin-form select,.bulletin-form textarea{background:#fff;border:1px solid var(--border);border-radius:.5rem;color:var(--text);font:inherit;outline:none;padding:.72rem .85rem;transition:border-color .15s,box-shadow .15s,background .15s;width:100%}.bulletin-form textarea{resize:vertical}.bulletin-form input:focus,.bulletin-form select:focus,.bulletin-form textarea:focus{border-color:#004ac66b;box-shadow:0 0 0 3px #004ac61f}.bulletin-submit{align-self:flex-start;background:var(--primary);border:1px solid #0000;border-radius:.5rem;color:#fff;cursor:pointer;font:inherit;font-weight:700;padding:.72rem .95rem;transition:background .15s,box-shadow .15s,transform .15s}.bulletin-submit:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 8px 18px #004ac624;transform:translateY(-1px)}.bulletin-submit:disabled{cursor:not-allowed;opacity:.6}.bulletin-list{display:flex;flex-direction:column;gap:.85rem}.bulletin-item{align-items:flex-start;background:var(--surface-lowest);border:1px solid var(--border);border-radius:.75rem;box-shadow:0 8px 22px #121c2a0a;display:flex;gap:1rem;padding:1.15rem}.bulletin-item.is-draft{opacity:.78}.bulletin-content{flex:1 1;min-width:0}.bulletin-meta{align-items:center;color:var(--text-muted);display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:.45rem}.bulletin-meta span{background:#57dffe38;border-radius:999px;color:var(--secondary);font-size:.72rem;font-weight:750;padding:.2rem .55rem;text-transform:uppercase}.priority-important .bulletin-meta span{background:#fff0c2cc;color:#6b4a00}.priority-urgent .bulletin-meta span{background:var(--error-container);color:var(--danger)}.bulletin-meta em,.bulletin-meta time{font-size:.86rem;font-style:normal}.bulletin-content h3{color:var(--text);font-size:1.08rem;font-weight:750;margin-bottom:.35rem}.bulletin-content p{color:var(--text-muted);line-height:1.58;white-space:pre-wrap}.bulletin-actions{display:flex;gap:.5rem;margin-top:1rem}.bulletin-actions button{background:#fff;border:1px solid var(--border);border-radius:.5rem;color:var(--primary);cursor:pointer;font:inherit;font-size:.85rem;font-weight:650;padding:.52rem .75rem;transition:background .15s,border-color .15s}.bulletin-actions button:disabled,.bulletin-add-button:disabled{cursor:not-allowed;filter:grayscale(.3);opacity:.45}.bulletin-actions button:hover:not(:disabled){background:var(--surface);border-color:#004ac647}.bulletin-actions button.danger{color:var(--danger)}@media (max-width:780px){.bulletin-hero{align-items:flex-start;flex-direction:column}.bulletin-form-grid{grid-template-columns:1fr}.bulletin-item{flex-direction:column}}.defects-hero{align-items:flex-end;display:flex;gap:1.5rem;justify-content:space-between;margin-bottom:1.25rem}.defects-hero h2{color:var(--text);font-size:clamp(1.65rem,3vw,2.25rem);font-weight:700;letter-spacing:0;line-height:1.08}.defects-hero p:last-child{color:var(--text-muted);font-size:.98rem;margin-top:.65rem;max-width:46rem}.defects-add-button,.defects-submit{align-items:center;background:var(--primary);border:1px solid #0000;border-radius:.5rem;color:#fff;cursor:pointer;display:inline-flex;flex-shrink:0;font:inherit;font-weight:700;gap:.45rem;padding:.72rem .95rem;transition:background .15s,box-shadow .15s,transform .15s}.defects-add-button:hover:not(:disabled),.defects-submit:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 8px 18px #004ac624;transform:translateY(-1px)}.defect-comments-header button:disabled,.defect-item-actions button:disabled,.defect-status-icon:disabled,.defects-add-button:disabled{cursor:not-allowed;filter:grayscale(.3);opacity:.45}.defects-empty,.defects-error{background:var(--error-container);border-radius:.5rem;color:var(--danger);font-weight:650;margin-bottom:1rem;padding:1rem 1.2rem}.defects-empty{background:var(--surface-low);color:var(--text-muted)}.defects-form{background:var(--surface-lowest);border:1px solid var(--border);border-radius:.75rem;box-shadow:0 10px 28px #121c2a0d;display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding:1.25rem}.defects-form-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) 14rem 11rem}.defects-form label{color:var(--text-muted);display:flex;flex-direction:column;font-size:.8rem;font-weight:650;gap:.4rem}.defects-form input,.defects-form select,.defects-form textarea{background:#fff;border:1px solid var(--border);border-radius:.5rem;color:var(--text);font:inherit;outline:none;padding:.72rem .85rem;transition:border-color .15s,box-shadow .15s,background .15s;width:100%}.defects-form textarea{resize:vertical}.defects-form input:focus,.defects-form select:focus,.defects-form textarea:focus{border-color:#004ac66b;box-shadow:0 0 0 3px #004ac61f}.defects-submit{align-self:flex-start}.defects-submit:disabled{cursor:not-allowed;opacity:.6}.defects-list{display:flex;flex-direction:column;gap:.85rem}.defect-item{align-items:flex-start;background:var(--surface-lowest);border:1px solid var(--border);border-radius:.75rem;box-shadow:0 8px 22px #121c2a0a;display:flex;gap:1rem;padding:1.15rem}.defect-status-control{flex-shrink:0;position:relative}.defect-status-icon{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;color:var(--text-muted);cursor:pointer;display:inline-flex;flex-shrink:0;font:inherit;font-size:.82rem;font-weight:700;gap:.45rem;height:3rem;justify-content:center;min-width:3rem;padding:0 .75rem;transition:border-color .15s,box-shadow .15s,background .15s}.defect-status-icon:hover:not(:disabled),.defect-status-icon[aria-expanded=true]{background:#fff;border-color:#004ac647;box-shadow:0 0 0 3px #004ac61f}.status-new .defect-status-icon{color:var(--error)}.status-in_progress .defect-status-icon{color:var(--primary)}.status-resolved .defect-status-icon{color:var(--tertiary)}.defect-content{flex:1 1;min-width:0}.defect-topline{align-items:center;color:var(--text-muted);display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:.45rem}.defect-topline time{font-size:.86rem}.defect-item-actions{align-items:center;display:inline-flex;gap:.25rem;margin-left:auto}.defect-item-actions button{background:#0000;border:1px solid #0000;border-radius:.45rem;color:var(--primary);cursor:pointer;display:grid;height:2rem;place-items:center;transition:background .15s,border-color .15s;width:2rem}.defect-item-actions button:hover:not(:disabled){background:var(--surface);border-color:var(--border)}.defect-item-actions button.danger{color:var(--danger)}.defect-item-actions .material-symbols-outlined{font-size:1rem}.defect-priority{align-items:center;background:var(--surface);border-radius:999px;color:var(--text-muted);display:inline-flex;font-size:.72rem;font-weight:750;padding:.22rem .55rem}.defect-priority.priority-important{background:#ffc1072e;color:#946200}.defect-priority.priority-urgent{background:var(--error-container);color:var(--danger)}.defect-status-menu{background:#fff;border:1px solid var(--border);border-radius:.65rem;box-shadow:0 1rem 2.5rem #1e293b24;display:flex;flex-direction:column;gap:.2rem;left:0;min-width:12rem;padding:.4rem;position:absolute;top:calc(100% + .45rem);z-index:5}.defect-status-menu button{align-items:center;background:#0000;border:0;border-radius:.45rem;color:var(--text);cursor:pointer;display:flex;font:inherit;font-size:.86rem;font-weight:650;gap:.45rem;padding:.55rem .65rem;text-align:left}.defect-status-menu button:hover:not(:disabled){background:var(--surface-low);color:var(--primary)}.defect-status-menu button.active{background:var(--surface-low);color:var(--text-muted);cursor:default}.defect-status-menu .material-symbols-outlined{font-size:1.08rem}.defect-content h3{color:var(--text);font-size:1.08rem;font-weight:750;margin-bottom:.35rem}.defect-content p{color:var(--text-muted);line-height:1.58;white-space:pre-wrap}.defect-edit-form{background:#0000;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.9rem;margin-top:.6rem;padding-top:.9rem}.defect-edit-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr) 14rem 11rem}.defect-edit-form label{color:var(--text-muted);display:flex;flex-direction:column;font-size:.78rem;font-weight:600;gap:.35rem}.defect-edit-form input,.defect-edit-form select,.defect-edit-form textarea{background:#fff;border:1px solid var(--border);border-radius:.5rem;color:var(--text);font:inherit;outline:none;padding:.68rem .78rem;transition:border-color .15s,box-shadow .15s;width:100%}.defect-edit-form textarea{resize:vertical}.defect-edit-form input:focus,.defect-edit-form select:focus,.defect-edit-form textarea:focus{border-color:#004ac66b;box-shadow:0 0 0 3px #004ac61f}.defect-edit-actions{display:flex;flex-wrap:wrap;gap:.5rem}.defect-edit-actions button{background:var(--primary);border:1px solid #0000;border-radius:.5rem;color:#fff;cursor:pointer;font:inherit;font-weight:700;padding:.62rem .85rem;transition:background .15s,border-color .15s}.defect-edit-actions button:hover{background:var(--primary-hover)}.defect-edit-actions button.secondary{background:#fff;border-color:var(--border);color:var(--text-muted)}.defect-edit-actions button.secondary:hover{background:var(--surface)}.defect-details{color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:.84rem;gap:.5rem 1rem;margin-top:.9rem}.defect-details strong{color:var(--text);font-weight:650}.defect-comments{border-top:1px solid var(--border);margin-top:1.1rem;padding-top:1rem}.defect-comments-header{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.65rem}.defect-comments h4{color:var(--text);font-size:.9rem;font-weight:750}.defect-comments-header button{background:#fff;border:1px solid var(--border);border-radius:.5rem;color:var(--primary);cursor:pointer;font:inherit;font-size:.82rem;font-weight:650;padding:.5rem .75rem;transition:background .15s,border-color .15s}.defect-comments-header button:hover:not(:disabled){background:var(--surface);border-color:#004ac647}.defect-comment-list{display:flex;flex-direction:column;gap:.55rem;margin-bottom:.75rem}.defect-comment{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:.75rem .85rem}.defect-comment div{align-items:baseline;display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:.25rem}.defect-comment strong{color:var(--text);font-size:.86rem;font-weight:700}.defect-comment time,.defect-no-comments{color:var(--text-muted);font-size:.8rem}.defect-comment p{color:var(--text);font-size:.9rem}.defect-no-comments{margin-bottom:.75rem}.defect-comment-form{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:minmax(0,1fr) auto}.defect-comment-form input{background:#fff;border:1px solid var(--border);border-radius:.5rem;color:var(--text);font:inherit;min-width:0;outline:none;padding:.7rem .85rem}.defect-comment-form input:focus{border-color:#004ac66b;box-shadow:0 0 0 3px #004ac61f}.defect-comment-form button{background:var(--primary);border:1px solid #0000;border-radius:.5rem;color:#fff;cursor:pointer;font:inherit;font-weight:700;padding:.7rem .9rem}.defect-comment-form button:disabled{cursor:not-allowed;opacity:.45}@media (max-width:780px){.defect-item,.defects-hero{align-items:flex-start;flex-direction:column}.defect-comment-form,.defect-edit-grid,.defects-form-grid{grid-template-columns:1fr}}.chips-page{margin:0 auto;max-width:1100px}.chips-heading{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}.chips-heading h2{margin:6px 0}.chips-heading p{color:#64748b}.chips-page button{background:#2563eb;border:0;border-radius:8px;color:#fff;cursor:pointer;font:inherit;padding:11px 16px}.chips-page button.secondary{background:#eaf0f8;color:#234168}.chips-page button.danger{background:#fff1f2;color:#b91c1c}.chips-page button:disabled{cursor:wait;opacity:.55}.chip-card,.chips-empty,.chips-form{background:#fff;border:1px solid #dce3eb;border-radius:12px;margin-top:20px;padding:24px}.chips-form fieldset{border:0;margin:0;min-width:0;padding:0}.chips-fields{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}.chips-form label{display:flex;flex-direction:column;font-weight:600;gap:8px;margin-bottom:16px}.chips-form input,.chips-form textarea{border:1px solid #bdc9d8;border-radius:7px;box-sizing:border-box;font:inherit;padding:11px;width:100%}.chips-actions{display:flex;flex-wrap:wrap;gap:10px}.chip-card h3{margin:0;overflow-wrap:anywhere}.chip-card h3 span{vertical-align:middle}.chip-card dl{display:flex;flex-wrap:wrap;gap:18px 40px}.chip-card dt{color:#64748b;font-size:13px}.chip-card dd{margin:5px 0 0;overflow-wrap:anywhere}.chip-description{overflow-wrap:anywhere;white-space:pre-wrap}.chip-status{background:#eff6ff;border-radius:6px;color:#1d4ed8;font-size:13px;padding:6px 10px}.chip-lost{border-left:4px solid #dc2626}.chip-lost .chip-status,.chips-error{background:#fff1f2;color:#b91c1c}.chips-error,.chips-notice{border-radius:8px;margin-top:16px;padding:16px}.chips-notice{background:#ecfdf5;color:#166534}@media (max-width:700px){.chips-fields{grid-template-columns:1fr}.chip-card,.chips-form{padding:18px}}.storage-hero{align-items:flex-end;display:flex;gap:1.5rem;justify-content:space-between;margin-bottom:1.25rem}.storage-hero h2{color:var(--text);font-size:clamp(1.65rem,3vw,2.25rem);font-weight:700;letter-spacing:0;line-height:1.08}.storage-hero p:last-child{color:var(--text-muted);font-size:.98rem;margin-top:.65rem;max-width:46rem}.storage-add-button{align-items:center;background:var(--primary);border:1px solid #0000;border-radius:.5rem;color:#fff;cursor:pointer;display:inline-flex;flex-shrink:0;font:inherit;font-weight:700;gap:.45rem;padding:.72rem .95rem;transition:background .15s,box-shadow .15s,transform .15s}.storage-add-button:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 8px 18px #004ac624;transform:translateY(-1px)}.storage-add-button:disabled,.storage-item-actions button:disabled{cursor:not-allowed;filter:grayscale(.3);opacity:.45}.storage-empty,.storage-error{background:var(--error-container);border-radius:.5rem;color:var(--danger);font-weight:650;margin-bottom:1rem;padding:1rem 1.2rem}.storage-empty{background:var(--surface-low);color:var(--text-muted)}.storage-upload{background:var(--surface-lowest);border:1px solid var(--border);border-radius:.75rem;box-shadow:0 10px 28px #121c2a0d;display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding:1.25rem}.storage-list-header h3,.storage-upload h3{color:var(--text);font-size:1.08rem;font-weight:750}.storage-upload p{color:var(--text-muted);margin-top:.25rem}.storage-upload-grid{grid-gap:1rem;align-items:end;display:grid;gap:1rem;grid-template-columns:minmax(16rem,1.2fr) minmax(18rem,2fr) auto}.storage-upload label{color:var(--text-muted);display:flex;flex-direction:column;font-size:.8rem;font-weight:650;gap:.4rem}.storage-upload input{background:#fff;border:1px solid var(--border);border-radius:.5rem;color:var(--text);font:inherit;outline:none;padding:.72rem .85rem;transition:border-color .15s,box-shadow .15s;width:100%}.storage-upload input:focus{border-color:#004ac66b;box-shadow:0 0 0 3px #004ac61f}.storage-file-input{align-items:center;background:var(--surface);border:1px dashed var(--border-strong);border-radius:.5rem;color:var(--primary)!important;cursor:pointer;display:flex!important;flex-direction:row!important;gap:.75rem!important;min-height:3.1rem;padding:.72rem .9rem;transition:background .15s,border-color .15s}.storage-file-input:hover{background:#fff;border-color:#004ac66b}.storage-file-input input{display:none}.storage-file-input strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-edit-actions button,.storage-item-actions button,.storage-upload button{background:var(--primary);border:1px solid #0000;border-radius:.5rem;color:#fff;cursor:pointer;font:inherit;font-weight:700;padding:.72rem .95rem;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s}.storage-edit-actions button:hover,.storage-upload button:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 8px 18px #004ac624;transform:translateY(-1px)}.storage-upload button:disabled{cursor:not-allowed;opacity:.45}.storage-list{display:flex;flex-direction:column;gap:.85rem}.storage-list-header{align-items:center;display:flex;gap:1rem;justify-content:space-between}.storage-list-header span{color:var(--text-muted);font-weight:650}.storage-item{grid-gap:1rem;align-items:center;background:var(--surface-lowest);border:1px solid var(--border);border-radius:.75rem;box-shadow:0 8px 22px #121c2a0a;display:grid;gap:1rem;grid-template-columns:auto minmax(0,1fr) auto;padding:1.15rem;transition:background .15s,border-color .15s,transform .15s}.storage-item.can-preview{cursor:pointer}.storage-item.can-preview:hover{background:#fff;border-color:#004ac638;transform:translateY(-2px)}.storage-file-icon{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;color:var(--primary);display:grid;height:3rem;place-items:center;width:3rem}.storage-file-meta{min-width:0}.storage-file-meta h4{color:var(--text);font-size:1rem;font-weight:750;overflow-wrap:anywhere}.storage-file-meta p{color:var(--text-muted);margin-top:.25rem}.storage-file-meta div{color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:.82rem;font-weight:600;gap:.45rem 1rem;margin-top:.55rem}.storage-item-actions{align-items:flex-end;align-self:center;display:flex;gap:.45rem}.storage-item.is-editing .storage-item-actions{align-self:end}.storage-item-actions button{align-items:center;display:inline-flex;height:2.35rem;justify-content:center;padding:0;width:2.35rem}.storage-item-actions button:not(.danger){background:#0000;border-color:var(--border);color:var(--primary)}.storage-item-actions button.danger{background:#0000;border-color:#0000;color:var(--danger)}.storage-item-actions button:hover:not(:disabled){background:var(--surface);border-color:var(--border);box-shadow:none;transform:none}.storage-edit-form{grid-gap:.75rem;align-items:center;display:grid;gap:.75rem;grid-template-columns:minmax(12rem,1fr) minmax(12rem,1fr) auto;padding-top:.15rem}.storage-edit-form label{color:var(--text-muted);display:flex;flex-direction:column;font-size:.8rem;font-weight:600;gap:.4rem}.storage-edit-form input{background:#fff;border:1px solid var(--border);border-radius:.5rem;color:var(--text);font:inherit;height:2.65rem;min-width:0;outline:none;padding:.65rem .75rem;transition:border-color .15s,box-shadow .15s;width:100%}.storage-edit-form input:focus{border-color:#004ac66b;box-shadow:0 0 0 3px #004ac61f}.storage-edit-actions{align-self:end;display:flex;gap:.45rem}.storage-edit-actions button{height:2.65rem;padding:.65rem .85rem}.storage-edit-actions button.secondary{background:#fff;border-color:var(--border);color:var(--text-muted)}.storage-edit-actions button.secondary:hover{background:var(--surface);box-shadow:none}@media (max-width:900px){.storage-edit-form,.storage-upload-grid{grid-template-columns:1fr}}@media (max-width:640px){.storage-hero,.storage-item{align-items:flex-start;flex-direction:column}.storage-item{grid-template-columns:1fr}.storage-item-actions{width:100%}}.voting-hero{align-items:flex-end;display:flex;gap:1.5rem;justify-content:space-between;margin-bottom:1.5rem}.voting-hero h2{color:var(--text);font-size:clamp(1.65rem,3vw,2.25rem);font-weight:700;letter-spacing:0;line-height:1.08}.voting-hero p:last-child{color:var(--text-muted);font-size:1.05rem;margin-top:.8rem;max-width:46rem}.voting-empty{background:var(--surface-low);border-radius:1rem;color:var(--text-muted);font-weight:750;padding:1rem 1.2rem}.invite-container{max-width:34rem}.invite-summary-box{background:#eff4ff;background:var(--surface-container-low,#eff4ff);border:1px solid #004ac624;border-radius:.65rem;display:flex;flex-direction:column;gap:.45rem;margin-bottom:1.75rem;padding:1rem 1.15rem}.invite-summary-row{align-items:baseline;display:flex;font-size:.88rem;gap:.75rem;justify-content:space-between}.invite-summary-row span{color:#434655;color:var(--on-surface-variant,#434655);font-weight:600}.invite-summary-row strong{color:#121c2a;color:var(--on-surface,#121c2a);font-weight:800;text-align:right}.invite-role-pill{background:#004ac61f;border-radius:999px;color:#004ac6;color:var(--primary,#004ac6);display:inline-block;font-size:.75rem;font-weight:800;padding:.18rem .6rem}.invite-name-grid{grid-gap:.85rem;display:grid;gap:.85rem;grid-template-columns:1fr 1fr}.invite-session-notice{background:#fef3c7;border-radius:.5rem;color:#92400e;font-size:.82rem;font-weight:600;margin-bottom:1.25rem;padding:.65rem .85rem}@media (max-width:560px){.invite-name-grid{grid-template-columns:1fr}}.residents-page{display:flex;flex-direction:column;gap:1.5rem}.residents-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.residents-header h2{color:var(--text);font-size:clamp(1.45rem,2.5vw,2rem);font-weight:800;margin:.25rem 0 .35rem}.residents-header p{color:var(--text-muted);font-size:.92rem;margin:0}.residents-header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.residents-apt-select{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:.9rem;font-weight:700;padding:.55rem .85rem}.residents-primary-btn{align-items:center;background:var(--primary);border:none;border-radius:var(--radius);color:#fff;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:800;gap:.45rem;padding:.62rem 1.1rem;transition:background .15s ease}.residents-primary-btn:hover:not(:disabled){background:var(--primary-hover)}.residents-primary-btn:disabled{cursor:not-allowed;opacity:.55}.residents-secondary-btn{align-items:center;background:var(--surface-low);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;display:inline-flex;font-size:.82rem;font-weight:700;gap:.35rem;padding:.45rem .8rem}.residents-secondary-btn:hover:not(:disabled){background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.residents-danger-btn{align-items:center;background:var(--danger-light);border:none;border-radius:var(--radius);color:var(--danger);cursor:pointer;display:inline-flex;font-size:.8rem;font-weight:700;gap:.35rem;padding:.42rem .75rem}.residents-danger-btn:hover:not(:disabled){background:var(--danger);color:#fff}.residents-alert{border-radius:var(--radius);font-size:.9rem;font-weight:600;padding:.8rem 1rem}.residents-alert--error{background:var(--danger-light);color:var(--danger)}.residents-alert--success{background:#dcfce7;color:#166534}.residents-created-link-card{background:#eff4ff;background:var(--primary-light,#eff4ff);border:1.5px solid var(--primary);border-radius:var(--radius);display:flex;flex-direction:column;gap:.75rem;padding:1.15rem 1.25rem}.residents-created-link-card h3{color:var(--primary);font-size:1rem;margin:0}.residents-created-link-card p{color:var(--text-muted);font-size:.86rem;margin:0}.residents-link-copy-row{align-items:center;display:flex;flex-wrap:wrap;gap:.6rem}.residents-link-copy-row input{background:#fff;color:var(--text);flex:1 1;font-family:monospace;font-size:.85rem;min-width:220px;padding:.58rem .75rem}.residents-card,.residents-link-copy-row input{border:1px solid var(--border);border-radius:var(--radius)}.residents-card{background:var(--surface);box-shadow:var(--shadow);padding:1.25rem}.residents-card h3{color:var(--text);font-size:1.05rem;font-weight:800;margin:0 0 1rem}.residents-form-grid{grid-gap:.85rem;display:grid;gap:.85rem;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:1rem}.residents-field{display:flex;flex-direction:column;gap:.35rem}.residents-field label{color:var(--text);font-size:.82rem;font-weight:700}.residents-field input,.residents-field select{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:.9rem;padding:.58rem .7rem}.residents-form-actions{display:flex;gap:.6rem;justify-content:flex-end}.residents-table-wrap{overflow-x:auto}.residents-table{border-collapse:collapse;font-size:.88rem;width:100%}.residents-table th{background:var(--surface-low);border-bottom:1px solid var(--border);color:var(--text-muted);font-size:.75rem;letter-spacing:.04em;padding:.65rem .75rem;text-align:left;text-transform:uppercase}.residents-table td{border-bottom:1px solid var(--border);padding:.7rem .75rem;vertical-align:middle}.residents-table tr:last-child td{border-bottom:none}.residents-badge{border-radius:999px;display:inline-block;font-size:.75rem;font-weight:800;padding:.18rem .55rem}.residents-badge--owner{background:var(--primary-light);color:var(--primary)}.residents-badge--tenant{background:#e0f2fe;color:#0369a1}.residents-badge--active{background:#dcfce7;color:#166534}.residents-badge--used{background:#e0e7ff;color:#3730a3}.residents-badge--expired,.residents-badge--revoked{background:var(--surface-low);color:var(--text-muted)}.residents-empty{color:var(--text-muted);font-size:.9rem;margin:.5rem 0}
/*# sourceMappingURL=main.3806eb8b.css.map*/