:root{--ink:#1d1d1f;--paper:#f5f5f7;--panel:#fff;--sidebar-bg:#f2f2f4;--sidebar-ink:#1d1d1f;--sidebar-muted:#6e6e73;--line:#e3e3e8;--muted:#6e6e73;--teal:#158a82;--teal-dark:#0e6c66;--teal-soft:#158a821a;--secondary:#ff9500;--secondary-dark:#d97d00;--secondary-soft:#ff950024;--green:#34c759;--green-soft:#34c75921;--amber:#ff9f0a;--amber-soft:#ff9f0a24;--clay:#ff3b30;--clay-soft:#ff3b301c;--shadow:0 1px 2px #0000000a, 0 8px 20px -14px #0000001f;--shadow-hover:0 4px 14px -6px #0000001a, 0 20px 38px -18px #0000002e;--shadow-sm:0 1px 2px #0000000d;--radius:18px;--radius-sm:12px;--ease:cubic-bezier(.4, 0, .2, 1);--sidebar-w:260px;--sidebar-w-collapsed:78px;--topbar-h:64px;--font-display:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, "Noto Sans Bengali", "Nirmala UI", sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Noto Sans Bengali", "Nirmala UI", sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace}[data-theme=dark]{--ink:#f5f5f7;--paper:#1c1c1e;--panel:#2c2c2e;--sidebar-bg:#202022;--sidebar-ink:#f5f5f7;--sidebar-muted:#98989d;--line:#ffffff17;--muted:#98989d;--teal:#3dc9c0;--teal-dark:#3dc9c0;--teal-soft:#3dc9c029;--secondary:#ff9f0a;--secondary-dark:#ffb340;--secondary-soft:#ff9f0a2e;--green:#30d158;--green-soft:#30d15829;--amber:#ffd60a;--amber-soft:#ffd60a29;--clay:#ff453a;--clay-soft:#ff453a29;--shadow:0 1px 2px #0006, 0 12px 28px -16px #0009;--shadow-hover:0 8px 20px -10px #00000080, 0 24px 44px -18px #000000b3;--shadow-sm:0 1px 2px #00000059}[data-theme=dark] .btn-primary,[data-theme=dark] .nav-item.active,[data-theme=dark] .nav-item.active i{color:#1c1c1e}[data-theme=dark] .sidebar-brand{border-bottom-color:#ffffff14}[data-theme=dark] .sidebar-collapse-btn{background:#ffffff0f;border-color:#ffffff24}[data-theme=dark] .nav-item:hover{background:#ffffff14}[data-theme=dark] .sidebar-footer{border-top-color:#ffffff14}[data-theme=dark] .brand-tag{background:var(--panel);border-color:var(--line)}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{font-family:var(--font-body);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;line-height:1.5;transition:background .2s,color .2s}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.012em;color:var(--ink);margin:0}h1{letter-spacing:-.02em;font-size:1.7rem;font-weight:800}#dashGreeting{font-size:1.85rem}p{margin:0}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed;opacity:.6}input,select,textarea{font-family:inherit}select,.filter-bar select,.form-field select{cursor:pointer}a{color:inherit}.hidden{display:none!important}.muted{color:var(--muted);font-size:.88rem;line-height:1.55}::selection{background:var(--teal);color:#fff}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line);border-radius:14px}::-webkit-scrollbar-track{background:0 0}#app{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);background:var(--sidebar-bg);color:var(--sidebar-ink);border-right:1px solid var(--line);z-index:60;transition:transform .25s ease, width .22s var(--ease), background .2s ease;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar.collapsed{width:var(--sidebar-w-collapsed)}.sidebar-brand{border-bottom:1px solid var(--line);align-items:center;gap:.7rem;margin-bottom:.4rem;padding:1.3rem 1.15rem 1.1rem;display:flex;position:relative}.sidebar-collapse-btn{border:1px solid var(--line);width:26px;height:26px;color:var(--sidebar-muted);cursor:pointer;transition:background .18s var(--ease), color .18s var(--ease), transform .3s var(--ease);background:#00000009;border-radius:8px;flex:none;justify-content:center;align-items:center;margin-left:auto;font-size:.7rem;display:flex}.sidebar-collapse-btn:hover{background:var(--teal);color:#fff;border-color:#0000}.sidebar.collapsed .sidebar-collapse-btn i{transform:rotate(180deg)}.sidebar.collapsed .sidebar-brand{flex-direction:column;gap:.6rem;padding:1.3rem 0 1.1rem}.sidebar.collapsed .brand-tag{margin:0 auto}.sidebar.collapsed .brand-text{display:none}.sidebar.collapsed .sidebar-collapse-btn{margin:0 auto}.sidebar.collapsed .nav-item span,.sidebar.collapsed .sidebar-footer span,.sidebar.collapsed .nav-section-label{display:none}.sidebar.collapsed .nav-item{justify-content:center;padding:.7rem 0}.sidebar.collapsed .nav-item:hover{padding-left:0}.sidebar.collapsed .nav-item.active:before{top:-2px;left:50%;transform:translate(-50%)rotate(90deg)}.sidebar.collapsed .sidebar-footer{align-items:center}.brand-tag{background:var(--panel);border:1px solid var(--line);width:44px;height:44px;color:var(--teal-dark);box-shadow:var(--shadow-sm);border-radius:14px;flex:none;justify-content:center;align-items:center;padding:4px;font-size:1.05rem;display:flex}.brand-logo{object-fit:contain;width:100%;height:100%;display:block}.brand-text{flex-direction:column;line-height:1.25;display:flex}.brand-name{font-family:var(--font-display);color:var(--sidebar-ink);font-size:1.05rem;font-weight:700}.brand-sub{color:var(--sidebar-muted);letter-spacing:.03em;text-transform:uppercase;font-size:.68rem}.sidebar-nav{scrollbar-width:thin;scrollbar-color:transparent transparent;flex-direction:column;flex:1;gap:.15rem;padding:.7rem .75rem;display:flex;overflow-y:auto}.sidebar-nav.scrolling{scrollbar-color:var(--line) transparent}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-track{background:0 0}.sidebar-nav::-webkit-scrollbar-thumb{background:0 0;border-radius:14px;transition:background .25s}.sidebar-nav.scrolling::-webkit-scrollbar-thumb{background:var(--line)}.sidebar-nav.scrolling:hover::-webkit-scrollbar-thumb{background:var(--muted)}.nav-item{color:var(--sidebar-muted);text-align:left;cursor:pointer;transition:background .18s var(--ease), color .18s var(--ease), transform .15s var(--ease), padding-left .18s var(--ease);background:0 0;border:none;border-radius:14px;align-items:center;gap:.7rem;padding:.62rem .75rem;font-size:.87rem;font-weight:500;display:flex;position:relative}.nav-item i{text-align:center;width:18px;transition:transform .18s var(--ease);font-size:.92rem}.nav-item:hover{color:var(--sidebar-ink);background:#0000000b;padding-left:.95rem}.nav-item:hover i{color:var(--sidebar-ink);transform:translate(1px)}.nav-item:active{transform:scale(.98)}.nav-item.active{background:var(--teal);color:#fff;font-weight:600;box-shadow:0 4px 10px -4px #158a8266}.nav-item.active i{color:#fff}.nav-item.active:before{content:none}.nav-section-label{text-transform:uppercase;letter-spacing:.07em;color:var(--sidebar-muted);opacity:.85;padding:.9rem .8rem .35rem;font-size:.66rem;font-weight:700;display:block}.nav-section-label:first-child{padding-top:.3rem}.sidebar-footer{border-top:1px solid var(--line);flex-direction:column;gap:.4rem;padding:1rem 1.15rem 1.2rem;display:flex}.version{color:var(--sidebar-muted);font-size:.68rem}.sidebar-overlay{z-index:55;opacity:0;pointer-events:none;background:#11182773;transition:opacity .2s;position:fixed;inset:0}.sidebar-overlay.show{opacity:1;pointer-events:auto}.main{margin-left:var(--sidebar-w);min-width:0;transition:margin-left .22s var(--ease);flex-direction:column;flex:1;display:flex}.main.sidebar-collapsed{margin-left:var(--sidebar-w-collapsed)}.topbar{height:var(--topbar-h);z-index:40;background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:.9rem;padding:0 1.4rem;display:flex;position:sticky;top:0}.icon-btn{border:1px solid var(--line);background:var(--panel);width:38px;height:38px;color:var(--ink);cursor:pointer;transition:background .18s var(--ease), color .18s var(--ease), border-color .18s var(--ease), transform .12s var(--ease), box-shadow .18s var(--ease);border-radius:999px;flex:none;justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--paper);color:var(--ink);border-color:var(--muted);box-shadow:var(--shadow-sm)}.icon-btn:active{transform:scale(.94)}.topbar-search{background:var(--paper);border:1px solid var(--line);max-width:560px;height:42px;transition:border-color .18s var(--ease), box-shadow .18s var(--ease);border-radius:999px;flex:1;align-items:center;gap:.55rem;padding:0 1rem;display:flex;position:relative}.topbar-search:focus-within{border-color:var(--secondary-dark);box-shadow:0 0 0 3px var(--secondary-soft)}.topbar-search i{color:var(--muted);font-size:.85rem}.topbar-search input{color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-size:.87rem}.search-kbd{font-family:var(--font-mono);color:var(--muted);background:var(--panel);border:1px solid var(--line);letter-spacing:.02em;border-radius:7px;flex:none;padding:.15rem .4rem;font-size:.68rem;font-weight:600}@media (max-width:1100px){.search-kbd{display:none}}.search-results{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-hover);z-index:50;border-radius:16px;max-height:360px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.search-result-item{cursor:pointer;border-bottom:1px solid var(--line);justify-content:space-between;gap:.6rem;padding:.6rem .8rem;font-size:.83rem;display:flex}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:var(--teal-soft)}.search-result-empty{text-align:center;color:var(--muted);padding:1rem;font-size:.83rem}.topbar-clock{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:.5rem;padding:0 .3rem;font-size:.83rem;display:flex}.topbar-clock i{color:var(--teal);font-size:.78rem}.topbar-clock-date{color:var(--ink);border-left:1px solid var(--line);padding-left:.5rem;font-weight:600}@media (max-width:1100px){.topbar-clock{display:none!important}}.topbar-actions{align-items:center;gap:.55rem;margin-left:auto;display:flex}.current-user-chip{border:1px solid var(--line);background:var(--paper);border-radius:999px;align-items:center;gap:.55rem;padding:.3rem .7rem .3rem .3rem;display:flex}.user-avatar{background:var(--teal-soft);width:30px;height:30px;color:var(--teal-dark);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.85rem;display:flex}.user-meta{flex-direction:column;line-height:1.2;display:flex}.user-name{color:var(--ink);font-size:.8rem;font-weight:600}.user-role{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.68rem}@media (max-width:720px){.current-user-chip .user-meta{display:none}.current-user-chip{padding:.3rem}}.notif-wrap{position:relative}.badge-dot{background:var(--clay);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 3px;font-size:.62rem;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.notif-panel{background:var(--panel);border:1px solid var(--line);width:320px;max-height:400px;box-shadow:var(--shadow-hover);z-index:50;border-radius:18px;position:absolute;top:calc(100% + 10px);right:0;overflow-y:auto}.notif-panel-head{border-bottom:1px solid var(--line);padding:.8rem 1rem;font-size:.9rem;font-weight:600}.notif-list{padding:.4rem}.notif-item{transition:background .15s var(--ease);cursor:default;border-radius:14px;gap:.6rem;padding:.6rem;font-size:.8rem;line-height:1.45;display:flex}.notif-item:hover{background:var(--paper)}.notif-item-clickable{cursor:pointer}.notif-item-clickable:focus-visible{outline:2px solid var(--teal);outline-offset:-2px}.notif-item i{margin-top:.15rem}.notif-empty{text-align:center;color:var(--muted);padding:1.4rem;font-size:.83rem}.content{width:100%;max-width:1400px;margin:0 auto;padding:1.5rem 1.8rem 3rem}.view{display:none}.view.active{animation:.25s fadeUp;display:block}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.view-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.4rem;display:flex}.view-sub{color:var(--muted);margin-top:.3rem;font-size:.86rem;line-height:1.5}.quick-actions{flex-wrap:wrap;gap:.5rem;display:flex}.btn{cursor:pointer;white-space:nowrap;transition:background .18s var(--ease), transform .12s var(--ease), border-color .18s var(--ease), box-shadow .18s var(--ease), color .18s var(--ease);border:1px solid #0000;border-radius:999px;align-items:center;gap:.45rem;padding:.62rem 1.15rem;font-size:.85rem;font-weight:600;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--teal);color:#fff;box-shadow:0 4px 12px -4px #146b6673}.btn-primary:hover{background:var(--teal-dark);transform:translateY(-1px);box-shadow:0 10px 20px -6px #146b6673}.btn-primary:active{transform:translateY(0)scale(.97)}.btn-ghost{background:var(--panel);color:var(--ink);border-color:var(--line)}.btn-ghost:hover{background:var(--paper);border-color:var(--muted);color:var(--ink);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-secondary{background:var(--secondary);color:#fff;border-color:#0000}.btn-secondary:hover{background:var(--secondary-dark);color:#fff;transform:translateY(-1px)}.btn-outline{color:var(--ink);border-color:var(--ink);background:0 0}.btn-outline:hover{background:var(--paper);transform:translateY(-1px)}.btn-loading{pointer-events:none;position:relative;color:#0000!important}.btn-loading:after{content:"";border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:15px;height:15px;margin:-7.5px 0 0 -7.5px;animation:.7s linear infinite spin;position:absolute;top:50%;left:50%}.btn-danger{background:var(--clay-soft);color:var(--clay);border-color:#0000}.btn-danger:hover{background:var(--clay);color:#fff;transform:translateY(-1px);box-shadow:0 8px 18px -6px #ef444466}.btn-sm{padding:.48rem .8rem;font-size:.8rem}.btn:disabled{cursor:not-allowed;opacity:.6;box-shadow:none!important;transform:none!important}.link-btn{color:var(--teal);cursor:pointer;background:0 0;border:none;align-items:center;gap:.3rem;font-size:.8rem;font-weight:600;transition:color .15s,gap .15s;display:flex}.link-btn:hover{color:var(--teal-dark);gap:.45rem;text-decoration:underline}.file-btn{cursor:pointer}.tag-chip{font-family:var(--font-mono);background:var(--secondary-soft);color:#8a6a0c;letter-spacing:.02em;border-radius:999px;align-items:center;gap:.4rem;padding:.32rem .6rem .32rem .45rem;font-size:.78rem;font-weight:600;display:inline-flex;position:relative}.tag-chip:before{content:"";background:var(--panel);border:1.5px solid #8a6a0c;border-radius:50%;flex:none;width:7px;height:7px}.tag-chip-ghost{background:var(--paper);color:var(--muted);border:1px solid var(--line)}.tag-chip-ghost:before{border-color:var(--muted);background:0 0}.equip-tag{background:var(--amber-soft);border:1px dashed var(--amber);border-radius:16px;flex-direction:column;gap:.15rem;padding:1rem 1.1rem 1rem 2.1rem;display:flex;position:relative}.equip-tag:before{content:"";background:var(--panel);border:2px solid var(--amber);border-radius:50%;width:14px;height:14px;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.equip-tag .equip-tag-id{font-family:var(--font-mono);color:#92660b;font-size:1.15rem;font-weight:700}[data-theme=dark] .equip-tag .equip-tag-id{color:var(--amber)}.equip-tag .equip-tag-name{color:var(--muted);font-size:.85rem}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stat-card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);transition:box-shadow .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);border-radius:16px;flex-direction:column;gap:.7rem;padding:1.15rem 1.25rem;display:flex;position:relative;overflow:hidden}.stat-icon{border-radius:12px;justify-content:center;align-items:center;width:38px;height:38px;font-size:1rem;display:flex}.stat-value{font-family:var(--font-display);letter-spacing:-.02em;font-size:2rem;font-weight:800;line-height:1}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.76rem;font-weight:600}.stat-card.c-ink .stat-icon{color:var(--ink);background:#16323a14}.stat-card.c-teal .stat-icon{background:var(--teal-soft);color:var(--teal-dark)}.stat-card.c-green .stat-icon{background:var(--green-soft);color:var(--green)}.stat-card.c-clay .stat-icon{background:var(--clay-soft);color:var(--clay)}.stat-card.c-amber .stat-icon{background:var(--amber-soft);color:#8a6a0c}.stat-card-clickable{cursor:pointer}.stat-card-clickable:hover{box-shadow:var(--shadow-hover);border-color:var(--teal);transform:translateY(-3px)}.stat-card-clickable:active{transition-duration:80ms;transform:translateY(-1px)}.stat-card-clickable:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.stat-card-clickable .stat-goto{color:var(--ink);opacity:0;font-size:.7rem;transition:opacity .15s,transform .15s;position:absolute;top:.8rem;right:.75rem;transform:translate(-4px)}.stat-card-clickable:hover .stat-goto,.stat-card-clickable:focus-visible .stat-goto{opacity:1;transform:translate(0)}.filter-banner{background:var(--teal-soft);border:1px solid var(--teal);color:var(--teal-dark);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:1rem;padding:.65rem .9rem;font-size:.85rem;display:flex}.filter-banner-label{align-items:center;gap:.5rem;font-weight:600;display:flex}.filter-banner-clear{background:var(--panel);border:1px solid var(--teal-dark);color:var(--teal-dark);cursor:pointer;white-space:nowrap;border-radius:12px;align-items:center;gap:.35rem;padding:.35rem .75rem;font-size:.78rem;font-weight:600;display:flex}.filter-banner-clear:hover{background:var(--teal-dark);color:#fff}.cat-chip{white-space:nowrap;color:var(--cat-color);border-radius:20px;align-items:center;gap:.35rem;padding:.22rem .6rem;font-size:.76rem;font-weight:600;display:inline-flex}.cat-chip i{font-size:.7rem}.swatch-grid{flex-wrap:wrap;gap:.55rem;display:flex}.swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:28px;height:28px;transition:transform .12s}.swatch:hover{transform:scale(1.12)}.swatch.selected{border-color:var(--ink);box-shadow:0 0 0 2px var(--panel), 0 0 0 4px currentColor}.icon-pick-grid{flex-wrap:wrap;gap:.5rem;display:flex}.icon-pick{border:1px solid var(--line);background:var(--panel);width:36px;height:36px;color:var(--muted);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;font-size:.85rem;transition:background .12s,border-color .12s,color .12s;display:flex}.icon-pick:hover{border-color:var(--teal);color:var(--teal-dark)}.icon-pick.selected{background:var(--teal-soft);border-color:var(--teal);color:var(--teal-dark)}#catPreview{padding:.4rem 0}.building-panel .panel-head{margin-bottom:.6rem}.floor-navigator{-webkit-overflow-scrolling:touch;gap:.5rem;margin-bottom:1rem;padding-bottom:.4rem;display:flex;overflow-x:auto}.floor-pill{border:1px solid var(--line);background:var(--paper);color:var(--muted);cursor:pointer;white-space:nowrap;transition:background .18s var(--ease), border-color .18s var(--ease), color .18s var(--ease), transform .15s var(--ease);border-radius:20px;flex-shrink:0;align-items:center;gap:.4rem;padding:.45rem .95rem;font-size:.8rem;font-weight:600;display:flex}.floor-pill:hover:not(.active){border-color:var(--teal);color:var(--teal-dark);transform:translateY(-1px)}.floor-pill.active{background:var(--teal);border-color:var(--teal);color:#fff}.floor-summary-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.8rem;display:grid}.floor-summary-card{background:var(--paper);border:1px solid var(--line);cursor:pointer;transition:transform .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease);border-radius:14px;padding:1rem}.floor-summary-card:hover{border-color:var(--teal);box-shadow:var(--shadow-hover);transform:translateY(-3px)}.floor-summary-top{color:var(--ink);font-weight:700;font-family:var(--font-display);align-items:center;gap:.55rem;margin-bottom:.8rem;display:flex}.floor-summary-top i{color:var(--teal)}.floor-summary-stats{gap:1.1rem;display:flex}.floor-summary-stats div{flex-direction:column;gap:.1rem;display:flex}.floor-summary-stats b{font-family:var(--font-display);font-size:1.25rem;line-height:1}.floor-summary-stats span{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.68rem}.floor-summary-stats .stat-flag b{color:var(--clay)}.room-map-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.7rem;display:grid}.room-tile{background:var(--paper);border:1px solid var(--line);cursor:pointer;transition:transform .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease);border-radius:14px;flex-direction:column;gap:.4rem;padding:.8rem;display:flex}.room-tile:hover{border-color:var(--teal);box-shadow:var(--shadow-hover);transform:translateY(-3px)}.room-tile.has-alert{border-color:var(--clay)}.room-tile-top{justify-content:space-between;align-items:center;display:flex}.room-tile-number{font-family:var(--font-mono);font-size:.85rem;font-weight:700}.room-tile-alert{color:var(--clay);font-size:.8rem}.room-tile-name{color:var(--ink);font-size:.82rem;font-weight:600;line-height:1.25}.room-tile-dept{color:var(--muted);font-size:.71rem}.room-tile-cats{gap:.28rem;min-height:9px;display:flex}.cat-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;display:inline-block}.room-tile-count{color:var(--muted);border-top:1px dashed var(--line);margin-top:auto;padding-top:.4rem;font-size:.71rem}.drawer-root{z-index:70;position:fixed;inset:0}.drawer-root.hidden{display:none}.drawer-backdrop{-webkit-backdrop-filter:blur(5px);opacity:0;background:#11182766;transition:opacity .22s;position:absolute;inset:0}.drawer-root.open .drawer-backdrop{opacity:1}.drawer-panel{background:var(--panel);flex-direction:column;width:min(420px,92vw);height:100%;transition:transform .25s;display:flex;position:absolute;top:0;right:0;transform:translate(100%);box-shadow:-14px 0 34px -14px #11182740}.drawer-root.open .drawer-panel{transform:translate(0)}.drawer-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:.6rem;padding:1.1rem 1.2rem;display:flex}.drawer-head h3{font-size:1.05rem;line-height:1.3}.drawer-subtitle{color:var(--muted);margin-top:.25rem;font-size:.78rem;display:block}.drawer-body{flex:1;padding:1.1rem 1.2rem;overflow-y:auto}.drawer-foot{border-top:1px solid var(--line);padding:.9rem 1.2rem}.drawer-asset-list{flex-direction:column;gap:.55rem;display:flex}.drawer-asset-row{border:1px solid var(--line);cursor:pointer;transition:background .18s var(--ease), border-color .18s var(--ease), transform .15s var(--ease);border-radius:12px;align-items:center;gap:.7rem;padding:.6rem .65rem;display:flex}.drawer-asset-row:hover{background:var(--paper);border-color:var(--teal);transform:translate(2px)}.drawer-asset-icon{color:#fff;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.8rem;display:flex}.drawer-asset-info{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.drawer-asset-name{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:600;overflow:hidden}.drawer-asset-meta{color:var(--muted);font-size:.73rem;font-family:var(--font-mono)}.chart-grid{grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-bottom:1.1rem;display:grid}.chart-panel{flex-direction:column;margin-bottom:0;display:flex}.chart-canvas-wrap{height:210px;position:relative}@media (max-width:1180px){.chart-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:760px){.chart-grid{grid-template-columns:1fr}}.dash-grid{grid-template-columns:2fr 1fr;gap:1.1rem;display:grid}.panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);transition:box-shadow .2s var(--ease);border-radius:16px;margin-bottom:1.1rem;padding:1.3rem 1.35rem}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.9rem;display:flex}.panel-head h2{align-items:center;gap:.45rem;font-size:1rem;font-weight:700;display:flex}.panel-head h2 i{color:var(--secondary-dark);font-size:.92rem}.alert-list{flex-direction:column;gap:.5rem;display:flex}.alert-item{border-radius:14px;align-items:flex-start;gap:.6rem;padding:.65rem .75rem;font-size:.82rem;line-height:1.45;display:flex}.alert-item.warn{background:var(--amber-soft);color:#92660b}.alert-item.danger{background:var(--clay-soft);color:#b42318}[data-theme=dark] .alert-item.warn{color:var(--amber)}[data-theme=dark] .alert-item.danger{color:var(--clay)}.alert-item-clickable{cursor:pointer;transition:transform .15s var(--ease), box-shadow .15s var(--ease)}.alert-item-clickable:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.alert-item-clickable:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.panel-dark{background:var(--ink);border-color:var(--ink);color:#fff}[data-theme=dark] .panel-dark{background:#000;border-color:#000}.panel-dark .panel-head h2{color:#fff}.panel-dark .panel-head h2 i{color:var(--secondary)}.panel-dark .alert-item{background:#ffffff12}.panel-dark .alert-item.warn{color:var(--secondary)}.panel-dark .alert-item.danger{color:#f0a98c}.panel-dark .alert-item-clickable:hover{box-shadow:none;background:#ffffff1f}.panel-dark .muted,.panel-dark .alert-empty{color:#ffffff8c}.alert-empty{color:var(--muted);padding:.4rem 0;font-size:.83rem}.filter-bar{flex-wrap:wrap;gap:.6rem;margin-bottom:1.1rem;display:flex}.filter-bar select,.filter-bar input{background:var(--panel);border:1px solid var(--line);color:var(--ink);transition:border-color .15s var(--ease), box-shadow .15s var(--ease);border-radius:999px;padding:.55rem .85rem;font-size:.83rem}.filter-bar select:hover,.filter-bar input:hover{border-color:var(--teal)}.filter-bar input{border-radius:14px;flex:1;min-width:180px}.item-combo{position:relative}.item-combo input[type=text]{width:100%}.item-combo-results{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-hover);z-index:60;border-radius:16px;max-height:240px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.item-combo-results .search-result-item{cursor:pointer;border-bottom:1px solid var(--line);justify-content:space-between;gap:.6rem;padding:.55rem .75rem;font-size:.82rem;display:flex}.item-combo-results .search-result-item:last-child{border-bottom:none}.item-combo-results .search-result-item:hover,.item-combo-results .search-result-item.active{background:var(--teal-soft)}.item-combo-results .search-result-empty{text-align:center;color:var(--muted);padding:.9rem;font-size:.82rem}.item-multi-combo{flex-direction:column;flex:320px;gap:.5rem;min-width:260px;display:flex;position:relative}.item-multi-chips{flex-wrap:wrap;gap:.4rem;display:flex}.item-multi-chips:empty{display:none}.item-chip{background:var(--teal-soft);color:var(--teal-dark);border-radius:999px;align-items:center;gap:.4rem;padding:.32rem .4rem .32rem .65rem;font-size:.78rem;font-weight:600;display:inline-flex}.item-chip button{width:16px;height:16px;color:inherit;cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);background:#00000014;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;font-size:.6rem;line-height:1;display:flex}.item-chip button:hover{background:var(--clay);color:#fff}.item-multi-combo input[type=text]{border-radius:999px;width:100%}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.1rem;display:grid}.form-field{flex-direction:column;gap:.35rem;display:flex}.form-field.span-2{grid-column:span 2}.form-field label{color:var(--muted);font-size:.78rem;font-weight:600}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--line);background:var(--panel);color:var(--ink);transition:border-color .15s var(--ease), box-shadow .15s var(--ease);border-radius:14px;padding:.62rem .75rem;font-size:.86rem}.form-field input:hover,.form-field select:hover,.form-field textarea:hover{border-color:var(--teal)}.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.filter-bar input:focus,.filter-bar select:focus,.topbar-search input:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);outline:none}.form-field textarea{resize:vertical;min-height:70px}.form-hint{color:var(--muted);font-size:.72rem}.field-error{border-color:var(--clay)!important}@media (max-width:720px){.form-field.span-2{grid-column:span 1}}.card-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem;display:grid}.entity-card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s var(--ease);border-radius:14px;flex-direction:column;gap:.55rem;padding:1.05rem 1.1rem;display:flex}.entity-card:hover{box-shadow:var(--shadow-hover);border-color:var(--teal);transform:translateY(-3px)}.entity-card-top{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.entity-icon{background:var(--teal-soft);width:36px;height:36px;color:var(--teal-dark);border-radius:12px;justify-content:center;align-items:center;display:flex}.entity-title{font-size:.95rem;font-weight:700}.entity-sub{color:var(--muted);font-size:.78rem}.entity-stats{color:var(--muted);flex-wrap:wrap;gap:.6rem;font-size:.78rem;display:flex}.entity-stats b{color:var(--ink)}.entity-actions{gap:.4rem;margin-top:auto;display:flex}.entity-actions button{background:var(--paper);border:1px solid var(--line);cursor:pointer;color:var(--muted);transition:background .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease);border-radius:12px;flex:1;padding:.4rem;font-size:.8rem}.entity-actions button:hover{background:var(--teal-soft);color:var(--teal-dark);border-color:var(--teal)}.entity-actions button.danger:hover{background:var(--clay-soft);color:var(--clay);border-color:var(--clay)}.table-wrap{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:14px;overflow:visible}.data-table{border-collapse:collapse;width:100%;min-width:640px;font-size:.83rem}.data-table th{text-align:left;background:var(--panel);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);white-space:nowrap;padding:.8rem .95rem;font-size:.7rem;font-weight:700}.content>.table-wrap .data-table th,.content .panel>.table-wrap .data-table th{top:var(--topbar-h);z-index:5;box-shadow:0 1px 0 var(--line);position:sticky}.data-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:.75rem .95rem}.data-table tbody tr{transition:background .15s var(--ease), box-shadow .15s var(--ease);position:relative}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:nth-child(2n){background:#11182704}[data-theme=dark] .data-table tbody tr:nth-child(2n){background:#ffffff05}.data-table tbody tr:hover{box-shadow:inset 3px 0 0 var(--teal);background:var(--teal-soft)!important}.table-empty{text-align:center;color:var(--muted);padding:2.2rem 1rem}.row-actions{gap:.35rem;display:flex}.row-actions button{border:1px solid var(--line);background:var(--panel);width:30px;height:30px;color:var(--muted);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease), transform .12s var(--ease);border-radius:12px}.row-actions button:hover{background:var(--teal-soft);color:var(--teal-dark);border-color:var(--teal);transform:translateY(-1px)}.row-actions button:active{transform:translateY(0)scale(.94)}.row-actions button.danger:hover{background:var(--clay-soft);color:var(--clay);border-color:var(--clay)}.asset-id-cell{font-family:var(--font-mono);color:var(--teal-dark);background:var(--teal-soft);border-radius:8px;padding:.2rem .5rem;font-size:.78rem;font-weight:600}.badge{letter-spacing:.02em;border:1px solid #0000;border-radius:999px;align-items:center;gap:.35rem;padding:.28rem .65rem;font-size:.71rem;font-weight:700;line-height:1;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.badge-good{background:var(--green-soft);color:#15803d;border-color:color-mix(in srgb, var(--green) 25%, transparent)}.badge-damaged{background:var(--clay-soft);color:#b42318;border-color:color-mix(in srgb, var(--clay) 25%, transparent)}.badge-repair{background:var(--amber-soft);color:#92660b;border-color:color-mix(in srgb, var(--amber) 25%, transparent)}.badge-neutral{background:var(--teal-soft);color:var(--teal-dark);border-color:color-mix(in srgb, var(--teal) 25%, transparent)}[data-theme=dark] .badge-good{color:var(--green)}[data-theme=dark] .badge-damaged{color:var(--clay)}[data-theme=dark] .badge-repair{color:var(--amber)}@media (max-width:720px){.data-table thead{display:none}.data-table,.data-table tbody,.data-table tr,.data-table td{width:100%;display:block}.data-table{min-width:0}.data-table tr{border-bottom:1px solid var(--line);padding:.7rem .85rem}.data-table tbody tr:last-child{border-bottom:none}.data-table td{border-bottom:none;justify-content:space-between;align-items:center;gap:.7rem;padding:.28rem 0;display:flex}.data-table td[data-label]:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.03em;color:var(--muted);flex:none;font-size:.68rem;font-weight:700}.row-actions{justify-content:flex-end}}.report-type-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.9rem;margin-bottom:1.3rem;display:grid}.report-type-card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);cursor:pointer;color:var(--ink);transition:border-color .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);border-radius:14px;flex-direction:column;align-items:flex-start;gap:.6rem;padding:1.2rem 1rem;font-size:.88rem;font-weight:600;display:flex}.report-type-card i{color:var(--teal);transition:transform .2s var(--ease);font-size:1.3rem}.report-type-card:hover{border-color:var(--teal);box-shadow:var(--shadow-hover);transform:translateY(-3px)}.report-type-card:hover i{transform:scale(1.1)}.report-type-card.active{border-color:var(--teal);background:var(--teal-soft)}.report-meta{color:var(--muted);margin-bottom:.7rem;font-size:.8rem}.table-empty-state{text-align:center;color:var(--muted);background:var(--paper);border:1px dashed var(--line);border-radius:var(--radius-sm);flex-direction:column;align-items:center;gap:.65rem;padding:2.8rem 1.5rem;display:flex}.table-empty-state i{color:var(--teal);font-size:1.6rem}.table-empty-state p{max-width:420px;font-size:.85rem;line-height:1.5}.report-actions{gap:.5rem;display:flex}.backup-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;display:grid}.backup-grid .panel{flex-direction:column;gap:.7rem;margin-bottom:0;display:flex}.settings-row{justify-content:space-between;align-items:center;font-size:.88rem;display:flex}.switch{width:42px;height:24px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.switch-track{background:var(--line);cursor:pointer;transition:background .2s var(--ease);border-radius:999px;position:absolute;inset:0}.switch-track:before{content:"";width:18px;height:18px;transition:transform .2s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch input:checked+.switch-track{background:var(--teal)}.switch input:checked+.switch-track:before{transform:translate(18px)}.modal-root{z-index:80;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-backdrop{-webkit-backdrop-filter:blur(6px);background:#11182773;animation:.18s fadeIn;position:absolute;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-box{background:var(--panel);border:1px solid var(--line);width:100%;max-width:640px;max-height:88vh;animation:popIn .2s var(--ease);border-radius:20px;flex-direction:column;display:flex;position:relative;box-shadow:0 34px 72px -24px #16151259}.modal-box.modal-sm{max-width:420px}@keyframes popIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:1.1rem 1.3rem;display:flex}.modal-head h3{font-size:1.05rem}.modal-close{color:var(--muted);cursor:pointer;width:32px;height:32px;transition:background .15s var(--ease), color .15s var(--ease), transform .12s var(--ease);background:0 0;border:none;border-radius:14px;font-size:1rem}.modal-close:hover{background:var(--paper);color:var(--clay);transform:rotate(90deg)}.modal-body{padding:1.3rem;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:.6rem;padding:1.05rem 1.3rem;display:flex}.confirm-icon{background:var(--clay-soft);width:44px;height:44px;color:var(--clay);border-radius:16px;justify-content:center;align-items:center;margin-bottom:.8rem;font-size:1.2rem;display:flex}.toast-container{z-index:100;flex-direction:column;gap:.55rem;max-width:340px;display:flex;position:fixed;bottom:1.2rem;right:1.2rem}.toast{background:var(--ink);color:#fff;border-radius:14px;align-items:center;gap:.6rem;padding:.75rem 1rem;font-size:.83rem;animation:.2s toastIn;display:flex;box-shadow:0 14px 28px -10px #11182766}[data-theme=dark] .toast{background:#1e2230;border:1px solid #ffffff14}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast.success i{color:var(--green)}.toast.error i{color:#f87171}.toast.info i{color:#93c5fd}.loading-overlay{z-index:120;background:#11182740;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.spinner{border:4px solid var(--teal-soft);border-top-color:var(--teal);border-radius:50%;width:44px;height:44px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.qr-wrap{background:var(--paper);border-radius:16px;flex-direction:column;align-items:center;gap:.7rem;padding:1rem;display:flex}.qr-canvas-box{background:#fff;border-radius:14px;padding:.6rem}.only-mobile{display:none}.only-desktop{display:inline}@media (max-width:900px){.only-mobile{display:flex}.only-desktop{display:none}.sidebar{transform:translate(-100%);width:var(--sidebar-w)!important}.sidebar.open{transform:translate(0)}.sidebar-collapse-btn,.topbar-clock{display:none!important}.main{margin-left:0!important}.dash-grid{grid-template-columns:1fr}.topbar{padding:0 .9rem}.content{padding:1.1rem 1.1rem 2.5rem}}.auth-screen{z-index:200;background:radial-gradient(1100px 600px at 85% -10%, #1c8c8624, transparent 60%), radial-gradient(900px 520px at -10% 110%, #1c8c8614, transparent 55%), var(--paper);justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0;overflow:auto}.auth-scene{background:var(--panel);width:100%;max-width:960px;min-height:560px;box-shadow:var(--shadow-hover);border-radius:22px;display:flex;position:relative;overflow:hidden}.auth-card{flex-direction:column;flex:420px;justify-content:center;max-width:440px;padding:3.2rem 3rem 2.2rem;display:flex}.auth-card-head{align-items:center;gap:.85rem;margin-bottom:1.9rem;display:flex}.auth-logo{background:var(--teal-soft);border-radius:16px;flex:none;justify-content:center;align-items:center;width:52px;height:52px;padding:6px;display:flex}.auth-logo img{object-fit:contain;width:100%;height:100%}.auth-title{font-family:var(--font-display);color:var(--ink);font-size:1.05rem;font-weight:800;line-height:1.3}.auth-sub{color:var(--muted);margin-top:.15rem;font-size:.78rem}.auth-tabs{border-bottom:1px solid var(--line);gap:1.7rem;margin-bottom:1.7rem;display:flex}.auth-tab{font-family:var(--font-display);color:var(--ink);border-bottom:2px solid var(--teal);margin-bottom:-1px;padding-bottom:.75rem;font-size:1rem;font-weight:700}.auth-form{flex-direction:column;gap:1.1rem;width:100%;display:flex}.auth-form .form-field label{color:var(--muted);font-size:.78rem;font-weight:600}.auth-input-wrap{align-items:center;display:flex;position:relative}.auth-input-wrap>i.auth-input-icon{color:var(--muted);pointer-events:none;font-size:.85rem;position:absolute;left:1.05rem}#authScreen .form-field input{border:1px solid var(--line);background:var(--paper);width:100%;color:var(--ink);transition:border-color .15s var(--ease), box-shadow .15s var(--ease), background .15s var(--ease);border-radius:999px;padding:.75rem 1rem .75rem 2.6rem;font-size:.88rem}#authScreen .form-field input::placeholder{color:var(--muted)}#authScreen .form-field input:hover{border-color:var(--teal)}#authScreen .form-field input:focus{border-color:var(--teal);background:var(--panel);box-shadow:0 0 0 3px var(--teal-soft);outline:none}#authScreen .password-field input{padding-right:2.6rem}.auth-row{justify-content:space-between;align-items:center;margin-top:-.35rem;display:flex}#authScreen .checkbox-row{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;font-size:.82rem;display:flex}#authScreen .checkbox-row input{width:15px;height:15px;accent-color:var(--teal);cursor:pointer;flex:none}.auth-error{background:var(--clay-soft);color:#b42318;border-radius:14px;align-items:flex-start;gap:.5rem;padding:.65rem .8rem;font-size:.8rem;line-height:1.45;display:flex}#authScreen .auth-submit.btn-primary{background:var(--teal);border:1px solid var(--teal);color:#fff;width:100%;transition:background .18s var(--ease), border-color .18s var(--ease), box-shadow .2s var(--ease), transform .15s var(--ease);border-radius:999px;justify-content:center;margin-top:.15rem;padding:.8rem 1rem;font-size:.9rem;box-shadow:0 10px 22px -10px #146b668c}#authScreen .auth-submit.btn-primary:hover{background:var(--teal-dark);border-color:var(--teal-dark);transform:translateY(-1px);box-shadow:0 12px 26px -8px #146b6699}#authScreen .auth-submit.btn-primary:active{transform:translateY(0)scale(.98)}.auth-footer{color:var(--muted);text-align:center;margin-top:1.7rem;font-size:.7rem;line-height:1.5}#authScreen .pw-toggle{color:var(--muted)}#authScreen .pw-toggle:hover{color:var(--teal-dark);background:var(--teal-soft)}.password-field{align-items:center;display:flex;position:relative}.password-field input{width:100%;padding-right:2.5rem}.pw-toggle{width:30px;height:30px;color:var(--muted);cursor:pointer;transition:color .15s var(--ease), background .15s var(--ease);background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:.35rem;transform:translateY(-50%)}.pw-toggle:hover{color:var(--teal-dark);background:var(--teal-soft)}.auth-illustration{background:var(--ink);flex:1;justify-content:center;align-items:center;min-width:280px;display:flex;position:relative;overflow:hidden}.auth-illustration img{object-fit:cover;width:100%;height:100%;display:block}@media (max-width:760px){.auth-illustration{display:none}.auth-scene{max-width:440px}.auth-card{max-width:100%;padding:2.6rem 1.9rem}}@media (max-width:480px){.auth-card{padding:2.2rem 1.4rem}}@media print{.sidebar,.sidebar-overlay,.topbar,.quick-actions,.filter-bar,.report-type-grid,.no-print,.view-header .btn,.auth-screen{display:none!important}.main{margin-left:0}body{background:#fff}.panel,.table-wrap{box-shadow:none;border:none}}
.perm-table{border-collapse:collapse;width:100%;font-size:.86rem}.perm-table th,.perm-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:.5rem .6rem}.perm-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.74rem;font-weight:600}.perm-actions{flex-wrap:wrap;gap:.35rem .9rem;display:flex}.perm-actions label{cursor:pointer;white-space:nowrap;align-items:center;gap:.35rem;display:inline-flex}.perm-actions input{accent-color:var(--teal);width:15px;height:15px}.perm-group-toggle{font-size:.75rem}.role-card-perms{flex-wrap:wrap;gap:.3rem;margin-top:.3rem;display:flex}.role-card-perms .tag-chip{font-size:.7rem}.badge-login{background:var(--green-soft);color:var(--green)}.badge-logout{background:var(--teal-soft);color:var(--teal-dark)}.badge-failed{background:var(--clay-soft);color:var(--clay)}.settings-tabs{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.settings-tabs button{border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:12px;align-items:center;gap:.45rem;padding:.45rem .9rem;font-size:.85rem;display:inline-flex}.settings-tabs button.active{background:var(--teal);border-color:var(--teal);color:#fff}.import-summary{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.4rem .9rem;margin-top:.8rem;font-size:.85rem;display:grid}.import-summary b{font-variant-numeric:tabular-nums}.asset-photo{object-fit:cover;border-radius:10px;width:100%;max-height:220px;margin-bottom:1rem}a.nav-item,a.btn,a.link-btn,a.nav-item:hover,a.btn:hover{text-decoration:none}.report-meta:has(>span){flex-wrap:wrap;gap:.3rem 1.4rem;display:flex}.signout-overlay{z-index:9999;background:color-mix(in srgb, var(--paper) 85%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);color:var(--ink);justify-content:center;align-items:center;gap:.6rem;font-size:.95rem;font-weight:600;display:flex;position:fixed;inset:0}@media (min-width:721px){.table-wrap.table-scroll{max-width:100%;max-height:70vh;overflow:auto}.content .panel>.table-wrap.table-scroll .data-table th,.table-wrap.table-scroll .data-table th{z-index:2;box-shadow:0 1px 0 var(--line);position:sticky;top:0}.table-wrap.table-scroll .data-table td{white-space:nowrap}.table-wrap.table-scroll .data-table td.cell-wrap{white-space:normal;min-width:180px;max-width:280px}}.content,.content .panel{min-width:0}.notif-panel-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.notif-mark-all{cursor:pointer;font:inherit;color:var(--teal);background:0 0;border:none;border-radius:8px;align-items:center;gap:.3rem;padding:.25rem .45rem;font-size:.74rem;font-weight:600;display:inline-flex}.notif-mark-all:hover{background:var(--teal-soft)}.notif-item{align-items:flex-start}.notif-item>span:first-of-type{flex:1}.notif-unread{color:var(--ink);font-weight:600}.notif-read{opacity:.6}.notif-dot{background:var(--teal);border-radius:50%;flex:none;width:8px;height:8px;margin-top:.4rem}select:not([multiple]):not([size]){appearance:none;text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%238E8E93' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 8l4.5 4.5L14.5 8'/%3E%3C/svg%3E");background-position:right .85rem center;background-repeat:no-repeat;background-size:14px 14px;padding-right:2.4rem!important}select:not([multiple]):not([size]):hover,select:not([multiple]):not([size]):focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23158A82' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 8l4.5 4.5L14.5 8'/%3E%3C/svg%3E")}select::-ms-expand{display:none}select option{color:var(--ink);background:var(--panel)}.dash-grid>*,.stat-grid>*,.building-panel,.floor-navigator{min-width:0}.floor-navigator{overscroll-behavior-x:contain;max-width:100%}@media (max-width:720px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.stat-card{padding:.85rem .9rem}.stat-card .stat-icon{width:34px;height:34px;font-size:.85rem}.stat-card .stat-value{font-size:1.45rem}.stat-card .stat-label{font-size:.66rem}html,body{overflow-x:clip}.topbar{gap:.45rem}.topbar .current-user-chip{display:none}.topbar-search{flex:auto;min-width:0}.topbar-search input{width:100%;min-width:0}.topbar-actions{flex-shrink:0;gap:.35rem;margin-left:auto}.notif-wrap{position:static}.notif-wrap>.icon-btn{position:relative}.notif-panel{width:auto;left:12px;right:12px;top:calc(var(--topbar-h) + 6px);max-height:70vh;position:fixed}}.lc-select{text-align:left;cursor:pointer;min-width:0;max-width:100%;font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--ink);transition:border-color .15s var(--ease), box-shadow .15s var(--ease);border-radius:14px;justify-content:space-between;align-items:center;gap:.6rem;padding:.62rem .8rem;font-size:.86rem;line-height:1.25;display:inline-flex}.filter-bar .lc-select{border-radius:999px;padding:.55rem .9rem;font-size:.83rem}.lc-select:hover:not(:disabled){border-color:var(--teal)}.lc-select:focus-visible,.lc-select.open{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-soft);outline:none}.lc-select:disabled{opacity:.6;cursor:not-allowed;background:var(--paper)}.lc-select-sizer{min-width:0;display:inline-grid;overflow:hidden}.lc-select-sizer>span{white-space:nowrap;text-overflow:ellipsis;grid-area:1/1;overflow:hidden}.lc-select-sizer>.lc-select-ghost{visibility:hidden;height:0}.lc-select-chevron{color:var(--muted);transition:transform .18s var(--ease), color .15s;flex:none;font-size:.7rem}.lc-select:hover .lc-select-chevron,.lc-select.open .lc-select-chevron{color:var(--teal)}.lc-select.open .fa-chevron-down{transform:rotate(180deg)}.form-field .lc-select{width:100%}.lc-select-list{z-index:10000;background:var(--panel);color:var(--ink);border:1px solid var(--line);animation:lc-pop .12s var(--ease);border-radius:14px;margin:0;padding:.35rem;font-size:.85rem;list-style:none;position:fixed;overflow-y:auto;box-shadow:0 18px 40px -12px #00000047,0 2px 6px #0000000f}.lc-select-option{cursor:pointer;white-space:nowrap;border-radius:9px;justify-content:space-between;align-items:center;gap:.8rem;padding:.5rem .7rem;display:flex}.lc-select-option.active{background:var(--teal-soft)}.lc-select-option.selected{color:var(--teal);font-weight:600}.lc-select-option.selected i{font-size:.72rem}.lc-select-option.disabled{opacity:.45;cursor:default}@keyframes lc-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.lc-date{min-width:150px}.lc-date.empty .lc-date-text{color:var(--muted)}.lc-cal{z-index:10000;background:var(--panel);width:288px;color:var(--ink);border:1px solid var(--line);animation:lc-pop .12s var(--ease);border-radius:16px;padding:.8rem;position:fixed;box-shadow:0 18px 40px -12px #00000047,0 2px 6px #0000000f}.lc-cal-head{align-items:center;gap:.15rem;margin-bottom:.55rem;display:flex}.lc-cal-title{text-align:center;flex:1;font-size:.9rem;font-weight:700}.lc-cal-nav{cursor:pointer;width:30px;height:30px;color:var(--muted);background:0 0;border:none;border-radius:9px;justify-content:center;align-items:center;font-size:.72rem;display:inline-flex}.lc-cal-nav:hover{background:var(--teal-soft);color:var(--teal)}.lc-cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.lc-cal-wd{text-align:center;color:var(--muted);text-transform:uppercase;padding:.25rem 0 .35rem;font-size:.68rem;font-weight:700}.lc-cal-day{cursor:pointer;height:34px;font:inherit;color:var(--ink);font-variant-numeric:tabular-nums;background:0 0;border:none;border-radius:10px;font-size:.82rem}.lc-cal-day:hover:not(:disabled){background:var(--teal-soft)}.lc-cal-day.other{color:var(--muted);opacity:.55}.lc-cal-day.today{box-shadow:inset 0 0 0 1.5px var(--teal);color:var(--teal);font-weight:700}.lc-cal-day.focus:not(.selected){background:var(--paper)}.lc-cal-day.selected{background:var(--teal);color:#fff;font-weight:700}.lc-cal-day:disabled{opacity:.25;cursor:not-allowed}.lc-cal-foot{border-top:1px solid var(--line);justify-content:space-between;margin-top:.55rem;padding-top:.55rem;display:flex}.lc-cal-link{color:var(--teal);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.3rem .5rem;font-size:.8rem;font-weight:600}.lc-cal-link:hover:not(:disabled){background:var(--teal-soft)}.lc-cal-link:disabled{opacity:.4;cursor:not-allowed}.lc-time{width:236px}.lc-time-cols{grid-template-columns:1fr 1fr 1fr;gap:.35rem;display:grid}.lc-time-col{scrollbar-width:thin;flex-direction:column;gap:2px;max-height:216px;padding-right:2px;display:flex;overflow-y:auto}.lc-time-ampm{justify-content:flex-start}.lc-time-cell{cursor:pointer;height:34px;font:inherit;color:var(--ink);font-variant-numeric:tabular-nums;background:0 0;border:none;border-radius:10px;flex:none;font-size:.84rem}.lc-time-cell:hover{background:var(--teal-soft)}.lc-time-cell.selected{background:var(--teal);color:#fff;font-weight:700}.modal-box.modal-wide{max-width:900px}.modal-body .table-wrap{overflow-x:auto}.modal-body .data-table{min-width:0}.modal-body .data-table td{vertical-align:top}.badge{white-space:nowrap}@media (min-width:721px){.modal-body .data-table td:first-child,.modal-body .data-table th{white-space:nowrap}}
