*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}:root{--fs:1.3;--bg:#090b0e;--surface:#111418;--surface-hover:#1a1f26;--border:rgba(255,255,255,0.08);--text:#e6edf3;--text-muted:#8b9ab0;--text-faint:#3d4a5c;--primary-dark:#1e40af;--primary:#3b82f6;--primary-bright:#60a5fa;--primary-dim:rgba(96,165,250,0.12);--accent:#38bdf8;--accent-bright:#06b6d4;--accent-glow:rgba(6,182,212,0.25);--success:#34d399;--success-dim:rgba(52,211,153,0.12);--danger:#f87171;--danger-dim:rgba(248,113,113,0.12);--warning:#fbbf24;--warning-dim:rgba(251,191,36,0.12);--radius:8px;--radius-sm:4px;--radius-lg:12px;--sidebar-w:15.7rem}html{font-size:clamp(11px,0.972vw,14px)}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,'Noto Sans KR','Apple SD Gothic Neo','Malgun Gothic','Noto Sans CJK KR',sans-serif;background:var(--bg);color:var(--text);line-height:1.5}.app-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-header{flex:0 0 auto;height:90px;display:flex;align-items:center;justify-content:space-between;padding:10px 24px;background:var(--surface);border-bottom:1px solid var(--border);position:relative;z-index:30}.app-header-left{display:flex;align-items:center;gap:12px;min-width:0}.app-header-logo{display:flex;align-items:center;gap:10px;cursor:pointer}.app-header-right{display:flex;align-items:center;gap:12px;min-width:0}.app-header-pressure{display:flex;align-items:center}.app-header-pressure-wrap{position:relative}.app-header-right .oss-vs-dp,.app-header-right .oss-weather-chip{height:50px;box-sizing:border-box}.app-header-weather .oss-weather-chip{padding:6px 16px}.app-header-weather .oss-weather-icon{font-size:calc(19px * var(--fs,1.3))}.app-header-weather .oss-weather-now{font-size:calc(13px * var(--fs,1.3));font-weight:500}.app-header-weather .oss-weather-range{font-size:calc(11px * var(--fs,1.3))}.app-header-pressure .oss-vs-dp:not(.danger){color:#e2e8f0;font-size:calc(13px * var(--fs,1.3));font-weight:500}.app-header-pressure .oss-vs-dp:not(.danger) .oss-vs-dp-val{color:#e2e8f0;font-weight:500}.app-header-pressure .oss-vs-dp:not(.danger) .oss-vs-dp-th{color:#aab4c4;font-weight:500}.app-header-weather{display:flex;align-items:center;position:relative}.layout{display:flex;flex:1 1 auto;min-height:0;overflow:hidden}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100%}.sidebar-header{height:56px;display:flex;align-items:center;gap:10px;padding:0 18px;border-bottom:1px solid var(--border);flex-shrink:0}.logo-mark{width:32px;height:32px;background:var(--primary-dim);border:1px solid rgba(96,165,250,0.2);border-radius:6px;display:flex;align-items:center;justify-content:center;color:var(--primary-bright);flex-shrink:0}.logo-title{font-size:calc(14px * var(--fs,1.3));font-weight:700;letter-spacing:0.08em}.logo-sub{font-size:calc(10px * var(--fs,1.3));color:var(--text-faint);margin-top:-2px}.sidebar-nav{flex:1;padding:10px 8px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;font-size:calc(13px * var(--fs,1.3));color:var(--text-muted);cursor:pointer;transition:background 0.15s,color 0.15s;user-select:none;text-decoration:none}.nav-item:hover{background:var(--surface-hover);color:var(--text)}.nav-item.active{background:var(--primary-dim);color:var(--primary-bright);font-weight:500}.nav-item svg{flex-shrink:0;width:16px;height:16px}.nav-more-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;margin-top:2px;border-radius:6px;border:none;background:transparent;color:var(--text-faint);font-size:calc(12px * var(--fs,1.3));cursor:pointer;transition:background 0.15s,color 0.15s}.nav-more-toggle:hover{background:var(--surface-hover);color:var(--text-muted)}.nav-more-toggle svg{flex-shrink:0;width:14px;height:14px;transition:transform 0.15s}.nav-more-toggle.open svg{transform:rotate(180deg)}.nav-more-list{display:none;flex-direction:column}.nav-more-list.open{display:flex}.sidebar-footer{padding:12px 18px;border-top:1px solid var(--border);flex-shrink:0;display:flex;flex-direction:column;gap:10px}.lang-toggle{display:flex;gap:2px;padding:2px;background:var(--bg-elev,rgba(255,255,255,0.04));border:1px solid var(--border);border-radius:7px}.lang-opt{flex:1;padding:4px 8px;font-size:calc(11px * var(--fs,1.3));font-weight:600;color:var(--text-faint);background:transparent;border:none;border-radius:5px;cursor:pointer;transition:background 0.15s,color 0.15s}.lang-opt:hover{color:var(--text)}.lang-opt.active{background:var(--accent,#60a5fa);color:#0b0d10}.ws-indicator{display:flex;align-items:center;gap:7px;font-size:calc(11px * var(--fs,1.3));color:var(--text-faint)}.ws-dot{width:8px;height:8px;border-radius:50%;background:var(--text-faint);transition:background 0.3s,box-shadow 0.3s;flex-shrink:0}.ws-dot.connected{background:var(--primary-bright);box-shadow:0 0 6px rgba(96,165,250,0.5)}.ws-dot.disconnected{background:var(--danger)}.logout-btn{display:flex;align-items:center;gap:7px;background:none;border:none;color:var(--text-faint);font-size:calc(11px * var(--fs,1.3));cursor:pointer;padding:0;transition:color 0.15s}.logout-btn:hover{color:var(--danger)}.logout-btn svg{flex-shrink:0}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:36px 32px;width:100%;max-width:360px;box-shadow:0 8px 40px rgba(0,0,0,0.4)}.login-logo{display:flex;align-items:center;gap:12px;margin-bottom:20px}.login-logo-mark{width:48px;height:48px;background:var(--primary-dim);border:1px solid rgba(96,165,250,0.3);border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--primary-bright);flex-shrink:0}.login-brand{font-size:calc(20px * var(--fs,1.3));font-weight:700;letter-spacing:0.08em}.login-brand-sub{font-size:calc(11px * var(--fs,1.3));color:var(--text-faint);margin-top:-2px}.login-hint{font-size:calc(13px * var(--fs,1.3));color:var(--text-muted);margin-bottom:24px}.login-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.login-label{font-size:calc(12px * var(--fs,1.3));color:var(--text-muted);font-weight:500}.login-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:calc(13px * var(--fs,1.3));padding:9px 12px;outline:none;transition:border-color 0.15s;width:100%}.login-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-dim)}.login-input::placeholder{color:var(--text-faint)}.login-error{font-size:calc(12px * var(--fs,1.3));color:var(--danger);min-height:18px;margin-bottom:4px}.login-btn{width:100%;justify-content:center;margin-top:4px;padding:10px;font-size:calc(14px * var(--fs,1.3))}.landing-top{position:fixed;top:18px;right:22px;display:flex;gap:10px;z-index:5;flex-wrap:wrap;justify-content:flex-end;max-width:calc(100vw - 44px)}.audience-btn{background:var(--surface);color:var(--text-muted);border:1px solid var(--border);border-radius:8px;padding:9px 16px;font-size:calc(13px * var(--fs,1.3));font-weight:500;cursor:pointer;transition:all 0.15s}.audience-btn:hover{color:var(--text);border-color:var(--primary)}.audience-btn.active{color:var(--primary-bright);border-color:var(--primary);background:var(--primary-dim)}.landing-footer-links{display:flex;gap:26px;justify-content:center;flex-wrap:wrap;margin-top:26px}.landing-footer-links a{color:var(--text-muted);font-size:calc(12.5px * var(--fs,1.3));cursor:pointer;text-decoration:none}.landing-footer-links a:hover{color:var(--primary-bright)}.landing-copyright{position:fixed;bottom:16px;right:22px;color:var(--text-faint);font-size:calc(11.5px * var(--fs,1.3))}.login-success{font-size:calc(12px * var(--fs,1.3));color:var(--primary-bright);min-height:18px;margin-bottom:4px}.auth-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);display:flex;align-items:center;justify-content:center;z-index:50;padding:24px}.auth-modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:28px 26px;width:100%;max-width:420px;max-height:88vh;overflow-y:auto;box-shadow:0 8px 40px rgba(0,0,0,0.5)}.auth-modal.wide{max-width:720px}.auth-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.auth-modal-title{font-size:calc(16px * var(--fs,1.3));font-weight:600}.auth-close{background:none;border:none;color:var(--text-muted);font-size:calc(16px * var(--fs,1.3));cursor:pointer}.auth-back-btn{display:block;width:100%;margin-top:10px;padding:7px;background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:calc(13px * var(--fs,1.3))}.auth-back-btn:hover{color:var(--text)}.auth-hint{font-size:calc(12.5px * var(--fs,1.3));color:var(--text-muted);margin:4px 0 18px;line-height:1.5}#um-body{overflow-x:auto}.um-table{width:100%;border-collapse:collapse;font-size:calc(12.5px * var(--fs,1.3));margin-top:8px}.um-table th,.um-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}.um-table th{color:var(--text-muted);font-weight:500}.um-tabs{display:flex;gap:8px;margin-bottom:12px}.um-tab{background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:6px 13px;font-size:calc(12.5px * var(--fs,1.3));cursor:pointer;color:var(--text-muted)}.um-tab.active{color:var(--primary-bright);border-color:var(--primary)}.um-badge{font-size:calc(10.5px * var(--fs,1.3));padding:2px 7px;border-radius:10px;border:1px solid var(--border);color:var(--text-muted)}.um-badge.active{color:var(--primary-bright);border-color:var(--primary)}.um-badge.pending{color:var(--warning);border-color:var(--warning)}.um-act{background:none;border:1px solid var(--border);border-radius:6px;padding:4px 9px;font-size:calc(11.5px * var(--fs,1.3));cursor:pointer;color:var(--text);margin-right:5px}.um-act.approve:hover{color:var(--primary-bright);border-color:var(--primary)}.um-act.reject:hover{color:var(--danger);border-color:var(--danger)}.um-online{display:inline-flex;align-items:center;gap:6px;font-size:calc(11.5px * var(--fs,1.3));white-space:nowrap}.um-online .um-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:var(--text-faint)}.um-online.on{color:var(--primary-bright)}.um-online.on .um-dot{background:var(--primary);box-shadow:0 0 0 3px rgba(82,183,136,0.20)}.um-online.off{color:var(--text-muted)}.um-online-summary{margin:4px 0 2px}.main{flex:1;overflow-y:auto;overflow-x:hidden;min-width:0}.page{padding:24px;max-width:1400px;margin:0 auto;min-width:0}.page.ec-page{max-width:1800px}body.role-nonmaster .oss-dlg-detail,body.role-nonmaster .oss-modal-msg,body.role-nonmaster .ovw-modal-muted,body.role-nonmaster .sg-hd-s,body.role-nonmaster .be-hint{display:none!important}body.role-nonmaster .uc-detail{display:none!important}.page-header{margin-bottom:20px}.page-header h1{font-size:calc(22px * var(--fs,1.3));font-weight:700}.page-header p{font-size:calc(13px * var(--fs,1.3));color:var(--text-muted);margin-top:4px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.ovw-section{border-radius:24px;padding:20px;display:flex;flex-direction:column;gap:16px}.ovw-section-lime{background:linear-gradient(135deg,rgba(30,64,175,0.15) 0%,rgba(14,116,144,0.10) 100%);border:1px solid rgba(56,189,248,0.2)}.ovw-section-navy{background:#0d1117;border:1px solid rgba(255,255,255,0.06)}.ovw-section-hd{display:flex;align-items:center;justify-content:space-between}.ovw-section-title{font-size:calc(20px * var(--fs,1.3));font-weight:800;color:#fff}.ovw-title-link,.ovw-section-title-link{cursor:pointer}.ovw-title-link:hover,.ovw-section-title-link:hover{text-decoration:underline}.ovw-section-title-dark{color:#e6edf3}.ovw-section-nav{display:flex;gap:4px}.ovw-nav-btn{width:28px;height:28px;border-radius:50%;border:none;cursor:pointer;font-size:calc(13px * var(--fs,1.3));font-weight:700;color:#d1d5dc;background:rgba(255,255,255,0.1)}.ovw-section-nav-light .ovw-nav-btn{background:rgba(255,255,255,0.1);color:#8b9ab0}.ovw-auto-toggles{display:flex;gap:18px;flex-wrap:wrap}.ovw-auto-toggle-item{display:flex;align-items:center;gap:8px}.ovw-auto-toggle-lbl{font-size:calc(13px * var(--fs,1.3));font-weight:700;color:#e6edf3;white-space:nowrap}.ovw-auto-toggle{cursor:pointer}.ovw-opmode{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 4px;padding:10px 14px;border-radius:12px;border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.05);border-left:4px solid var(--text-muted)}.ovw-opmode-icon{font-size:calc(16px * var(--fs,1.3));line-height:1}.ovw-opmode-tense{font-size:calc(11px * var(--fs,1.3));font-weight:800;color:#0d1117;background:#e6edf3;border-radius:999px;padding:2px 10px;white-space:nowrap}.ovw-opmode-msg{font-size:calc(14px * var(--fs,1.3));font-weight:700;color:#e6edf3}.ovw-opmode-win{margin-left:auto;font-size:calc(11px * var(--fs,1.3));color:var(--text-muted);white-space:nowrap}.ovw-opmode-warn{font-size:calc(12px * var(--fs,1.3));font-weight:700;color:var(--warning)}.ovw-opmode-arrow{width:26px;height:26px;flex:0 0 auto;border-radius:50%;border:none;cursor:pointer;font-size:calc(14px * var(--fs,1.3));font-weight:800;color:#e6edf3;background:rgba(255,255,255,0.12);line-height:1}.ovw-opmode-arrow:hover:not(:disabled){background:rgba(255,255,255,0.22)}.ovw-opmode-arrow:disabled{opacity:0.3;cursor:default}.ovw-opmode-cool{border-left-color:#38bdf8;background:rgba(56,189,248,0.10)}.ovw-opmode-warm{border-left-color:#ff8904;background:rgba(255,137,4,0.10)}.ovw-opmode-comfort{border-left-color:var(--primary,#52b788);background:rgba(82,183,136,0.12)}.ovw-opmode-idle{border-left-color:#64748b;background:rgba(100,116,139,0.10)}.ovw-smart-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;align-items:stretch}@media (max-width:980px){.ovw-smart-grid{grid-template-columns:1fr}}#ovw-cooling-plan-slot,#ovw-weather-slot,#ovw-power-slot{display:flex}.ovw-card{background:#fff;border-radius:16px;padding:16px;width:100%;display:flex;flex-direction:column;gap:12px;min-height:240px}.ovw-cp-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.ovw-cp-title{font-weight:700;color:#101828;font-size:calc(15px * var(--fs,1.3));line-height:1.2;margin:0}.ovw-cp-date{font-size:calc(11px * var(--fs,1.3));color:#99a1af;margin:2px 0 0;display:flex;align-items:center;gap:4px}.ovw-cp-date .ovw-nav-btn{width:16px;height:16px;font-size:calc(9px * var(--fs,1.3));padding:0;flex-shrink:0;background:#f3f4f6;color:#4a5565;display:inline-flex;align-items:center;justify-content:center}.ovw-date-input{background:none;border:none;color:#99a1af;font-size:calc(10px * var(--fs,1.3));padding:0 0 0 2px;font-family:inherit;cursor:pointer;width:78px}.ovw-clock-pill{display:flex;align-items:center;gap:6px;background:#101828;border-radius:999px;padding:6px 12px;flex-shrink:0}.ovw-clock-dot{width:6px;height:6px;border-radius:50%;background:#c5e34a;animation:ovw-pulse 1.4s infinite}.ovw-clock-pill span:last-child{font-size:calc(11px * var(--fs,1.3));font-family:'SF Mono',ui-monospace,monospace;font-weight:700;color:#fff;letter-spacing:0.02em}.ovw-empty{flex:1;display:flex;align-items:center;justify-content:center;font-size:calc(12px * var(--fs,1.3));color:#99a1af}.ovw-power-card .ovw-empty{color:rgba(255,255,255,0.5)}@keyframes ovw-pulse{0%,100%{opacity:1}50%{opacity:0.35}}.ovw-count-row{display:flex;gap:6px}.ovw-count{display:flex;align-items:center;gap:4px;border-radius:999px;padding:2px 12px;font-size:calc(11px * var(--fs,1.3));font-weight:600}.ovw-count b{font-size:calc(14px * var(--fs,1.3));font-weight:700}.ovw-count.running{background:#ecfdf5;color:#007a55}.ovw-count.waiting{background:#eff6ff;color:#155dfc}.ovw-count.done{background:#f3f4f6;color:#6a7282}.ovw-gantt{display:flex;flex-direction:column;gap:6px;min-width:0;container-type:inline-size}.ovw-gantt-col-lbl{width:88px;flex-shrink:0}.ovw-gantt-col-status{width:72px;flex-shrink:0}.ovw-gantt-axis-row{display:flex;align-items:center;min-width:0}.ovw-gantt-axis{flex:1;display:flex;min-width:0}.ovw-gantt-axis span{flex:1;font-size:calc(8px * var(--fs,1.3));color:#d1d5dc;font-weight:500;text-align:center;min-width:0}.ovw-gantt-axis span:first-child{text-align:left}.ovw-gantt-axis span:last-child{text-align:right}@container (max-width:600px){.ovw-gantt-axis span:nth-child(2n){visibility:hidden}}@container (max-width:320px){.ovw-gantt-axis span{visibility:hidden}.ovw-gantt-axis span:nth-child(3n+1){visibility:visible}}.ovw-gantt-body{position:relative;display:flex;flex-direction:column;gap:5px;min-width:0}.ovw-gantt-gridlines{position:absolute;inset:0;display:flex;pointer-events:none}.ovw-gantt-grid{flex:1;display:flex}.ovw-gantt-grid div{flex:1;border-left:1px solid #f3f4f6}.ovw-gantt-grid div:last-child{border-right:1px solid #f3f4f6}.ovw-gantt-now{position:absolute;top:0;bottom:0;width:1.5px;background:#101828;z-index:5}.ovw-gantt-now i{position:absolute;top:-4px;left:50%;transform:translateX(-50%);width:8px;height:8px;border-radius:50%;background:#101828}.ovw-gantt-row{position:relative;display:flex;align-items:center;min-width:0;height:22px}.ovw-gantt-lbl{width:88px;flex-shrink:0;padding-right:8px;text-align:right}.ovw-gantt-lbl-name{font-size:calc(10px * var(--fs,1.3));font-weight:700;color:#364153;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ovw-gantt-lbl-sub{font-size:calc(8px * var(--fs,1.3));color:#99a1af;font-family:ui-monospace,monospace;line-height:1.2}.ovw-gantt-track{position:relative;flex:1;height:100%;min-width:0}.ovw-gantt-ghost,.ovw-gantt-fill,.ovw-gantt-dilution{position:absolute;top:3px;bottom:3px;border-radius:999px}.ovw-gantt-ghost{opacity:0.18}.ovw-gantt-fill-joined{border-top-right-radius:0;border-bottom-right-radius:0}.ovw-gantt-dilution{background:#9aa4b2;z-index:1;border-top-left-radius:0;border-bottom-left-radius:0}.ovw-gantt-time{position:absolute;inset:0;display:flex;align-items:center;padding-left:6px;pointer-events:none;z-index:2}.ovw-gantt-time-val{font-size:calc(8px * var(--fs,1.3));font-weight:600;color:#364153;white-space:nowrap}.ovw-gantt-time-editable{pointer-events:auto;cursor:pointer;border-bottom:1px dashed #99a1af}.ovw-gantt-time-editable:hover{color:#101828;border-bottom-color:#364153}.ovw-gantt-time-planned{color:#99a1af}.ovw-gantt-time-input{pointer-events:auto;font-size:calc(11px * var(--fs,1.3));min-width:78px;box-sizing:border-box;border:1px solid #d1d5db;border-radius:3px;padding:2px;font-family:inherit;line-height:1.2}.ovw-gantt-status{width:72px;flex-shrink:0;padding-left:8px;display:flex;flex-direction:column;line-height:1.25}.ovw-gs-run{font-size:calc(9px * var(--fs,1.3));font-weight:700;color:#007a55;display:flex;align-items:center;gap:3px}.ovw-gs-run i{width:6px;height:6px;border-radius:50%;background:#c5e34a;display:inline-block;animation:ovw-pulse 1.4s infinite}.ovw-gs-wait{font-size:calc(9px * var(--fs,1.3));font-weight:700;color:#155dfc}.ovw-gs-sub{font-size:calc(8px * var(--fs,1.3));color:#99a1af}.ovw-gs-done{font-size:calc(9px * var(--fs,1.3));font-weight:700;color:#6a7282}.ovw-gs-dilution{font-size:calc(9px * var(--fs,1.3));font-weight:700;color:#6a7282;display:flex;align-items:center;gap:3px}.ovw-gs-dilution i{width:6px;height:6px;border-radius:50%;background:#9aa4b2;display:inline-block;animation:ovw-pulse 1.4s infinite}.ovw-estop-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:4px 0;padding:10px 12px;border-radius:10px;background:rgba(234,179,8,0.12);border:1px solid rgba(234,179,8,0.4)}.ovw-estop-txt{display:flex;flex-direction:column;gap:2px;min-width:0}.ovw-estop-txt b{font-size:calc(12px * var(--fs,1.3));color:#a16207}.ovw-estop-txt span{font-size:calc(11px * var(--fs,1.3));color:#7c5b12}.ovw-estop-acts{display:flex;gap:6px;flex-shrink:0}.ovw-estop-confirm{font-size:calc(12px * var(--fs,1.3));font-weight:700;padding:6px 14px;border-radius:8px;cursor:pointer;background:#dc2626;color:#fff;border:1px solid #b91c1c}.ovw-estop-confirm:hover{background:#b91c1c}.ovw-estop-dismiss{font-size:calc(12px * var(--fs,1.3));font-weight:600;padding:6px 12px;border-radius:8px;cursor:pointer;background:rgba(0,0,0,0.05);color:#6b7280;border:1px solid rgba(0,0,0,0.12)}.ovw-proposal{margin-top:4px;padding:8px 10px;border-radius:10px;background:rgba(249,115,22,0.08);border:1px solid rgba(249,115,22,0.25)}.ovw-proposal-hd{display:flex;align-items:center;justify-content:space-between;font-size:calc(11px * var(--fs,1.3));color:#364153;font-weight:600;gap:8px}.ovw-proposal-toggle{cursor:pointer;justify-content:flex-start;user-select:none}.ovw-proposal-toggle:hover{color:#1e2939}.opg-chevron{display:inline-block;width:12px;color:#f97316;font-size:calc(10px * var(--fs,1.3))}.ovw-proposal-fc{color:#99a1af;font-size:calc(10.5px * var(--fs,1.3));font-weight:500}.ovw-proposal-times{display:flex;align-items:center;gap:14px;margin-top:6px;font-size:calc(12px * var(--fs,1.3));color:#364153;flex-wrap:wrap}.ovw-proposal-times b{cursor:pointer;border-bottom:1px dashed #99a1af}.ovw-proposal-time-input{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;color:#101828;font-size:calc(11px * var(--fs,1.3));padding:2px 4px}.ovw-proposal-confirm{margin-left:auto;background:#3b82f6;color:#fff;border:none;border-radius:999px;padding:4px 14px;font-size:calc(11px * var(--fs,1.3));font-weight:700;cursor:pointer}.ovw-proposal-actions{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:8px;flex-wrap:wrap}.ovw-proposal-hint{font-size:calc(10px * var(--fs,1.3));color:#99a1af;margin-top:6px;line-height:1.5}.opg-grid{display:grid;grid-template-columns:auto auto auto 1fr 1fr;gap:3px 6px;margin-top:6px;font-size:calc(12px * var(--fs,1.3))}.opg-cell{padding:5px 6px;border-radius:6px;color:#364153;display:flex;align-items:center}.opg-hd{font-size:calc(10.5px * var(--fs,1.3));font-weight:700;color:#99a1af;padding:0 6px}.opg-today,.opg-tmr{justify-content:flex-end;font-weight:600;background:rgba(255,255,255,0.5)}.opg-rowlbl{font-weight:700}.opg-grouplbl{font-weight:800;color:#99a1af;align-items:center}.opg-lbl-geo{color:#99a1af}.opg-lbl-normal{color:#f97316}.opg-lbl-power{color:#2b7fff}.opg-sublbl{color:#4a5565;font-weight:400;padding-left:14px;font-size:calc(11px * var(--fs,1.3))}.opg-click{cursor:pointer;border:1px solid transparent}.opg-click:hover{border-color:rgba(249,115,22,0.4)}.opg-active{background:rgba(197,227,74,0.4);border-color:#8cb800}.opg-off{margin-right:6px;width:14px;height:14px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:calc(9px * var(--fs,1.3));line-height:1;color:#4a5565;background:rgba(0,0,0,0.12);cursor:pointer}.opg-off:hover{background:rgba(220,38,38,0.25);color:#dc2626}.opg-dim{color:#99a1af!important;background:rgba(0,0,0,0.03)!important;border-color:transparent!important}.opg-proposed{font-size:calc(9px * var(--fs,1.3));font-weight:700;color:#b45309;background:rgba(245,158,11,0.18);border-radius:6px;padding:1px 5px;margin-left:4px;vertical-align:middle;white-space:nowrap}.opg-estop-mode{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(249,115,22,0.2);flex-wrap:wrap}.opg-estop-lbl{font-size:calc(11px * var(--fs,1.3));font-weight:700;color:#7c5b12}.opg-estop-btns{display:flex;gap:6px}.opg-estop-btn{font-size:calc(11px * var(--fs,1.3));font-weight:700;padding:4px 12px;border-radius:999px;cursor:pointer;background:rgba(0,0,0,0.04);color:#6b7280;border:1px solid rgba(0,0,0,0.12);white-space:nowrap}.opg-estop-btn.on{background:#d1fae5;color:#047857;border-color:#6ee7b7}.ovw-weather-range{font-size:calc(13px * var(--fs,1.3));font-weight:700;color:#364153;margin:0}.ovw-weather-top-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ovw-weather-chips{display:flex;gap:6px;flex-wrap:wrap}.ovw-chip{font-size:calc(11px * var(--fs,1.3));font-weight:600;padding:2px 10px;border-radius:999px;background:#f3f4f6;color:#4a5565;white-space:nowrap;border:none;cursor:pointer;font-family:inherit}.ovw-chip-active{background:#e1fc95;color:#1a2800}.ovw-chip-warn{background:#fef3c7;color:#92400e}.ovw-chip-danger{background:#fee2e2;color:#b91c1c}.ovw-proposal-modes{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}.ovw-proposal-modes-lbl{font-size:calc(10.5px * var(--fs,1.3));color:#99a1af}.ovw-weather-dial{display:flex;justify-content:center;align-items:center;flex:0 0 auto;min-height:210px}.ovw-weather-dial svg{max-width:100%;height:auto}.ovw-weather-legend-hidden{visibility:hidden}.ovw-weather-legend{margin-top:8px;padding:0 4px}.ovw-weather-legend-bar{display:flex;height:8px;border-radius:4px;overflow:hidden}.ovw-weather-legend-bar span{flex:1}.ovw-weather-legend-ticks{position:relative;height:14px;margin-top:2px}.ovw-weather-legend-ticks b{position:absolute;top:0;transform:translateX(-50%);font-size:calc(9px * var(--fs,1.3));font-weight:700;font-style:normal;color:#99a1af}.ovw-weather-nav{display:flex;align-items:center;justify-content:center;gap:10px}.ovw-weather-nav .ovw-nav-btn{background:#f3f4f6;color:#4a5565}.ovw-weather-nav .ovw-nav-btn:disabled{opacity:0.3;cursor:default}.ovw-weather-nav-lbl{font-size:calc(12px * var(--fs,1.3));font-weight:700;color:#364153;min-width:92px;text-align:center}.ovw-weather-day-summary{display:flex;flex-direction:column;align-items:center;width:100%;gap:10px}.ovw-weather-day-minmax{font-size:calc(12px * var(--fs,1.3));font-weight:600;color:#364153;text-align:center}#ovw-ring-tip{position:fixed;z-index:9999;pointer-events:none;display:none;background:#101828;color:#fff;font-size:calc(12px * var(--fs,1.3));font-weight:600;padding:5px 9px;border-radius:6px;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,0.18)}.ovw-weather-hours{display:flex;justify-content:space-around;width:100%}.ovw-weather-hour{display:flex;flex-direction:column;align-items:center;gap:4px}.ovw-weather-hour-lbl{font-size:calc(10px * var(--fs,1.3));color:#99a1af}.ovw-weather-hour-icon{font-size:calc(20px * var(--fs,1.3))}.ovw-weather-hour-temp{font-size:calc(13px * var(--fs,1.3));font-weight:700;color:#101828}.ovw-weather-periods{display:flex;justify-content:space-around;width:100%;gap:10px}.ovw-weather-period{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;text-align:center}.ovw-weather-period-lbl{font-size:calc(11px * var(--fs,1.3));font-weight:700;color:#99a1af}.ovw-weather-period-text{font-size:calc(13px * var(--fs,1.3));font-weight:700;color:#101828}.ovw-weather-period-rain{font-size:calc(11px * var(--fs,1.3));color:#4a5565}.ovw-power-card{background:#0f172a}.ovw-power-title{font-weight:700;color:#fff;font-size:calc(15px * var(--fs,1.3));margin:0}.ovw-power-select{background:rgba(255,255,255,0.1);border:none;border-radius:999px;color:#fff;font-size:calc(12px * var(--fs,1.3));font-weight:500;padding:4px 10px}.ovw-power-nav{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:8px}.ovw-power-nav .ovw-nav-btn{background:rgba(255,255,255,0.12);color:#e5e7eb}.ovw-power-nav .ovw-nav-btn:disabled{opacity:0.3;cursor:default}.ovw-power-nav-lbl{font-size:calc(12px * var(--fs,1.3));font-weight:700;color:#e5e7eb;min-width:110px;text-align:center}.ovw-power-stat{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:6px;font-size:calc(11px * var(--fs,1.3));color:rgba(255,255,255,0.65)}.ovw-power-stat-value{font-weight:700;color:#60a5fa}.ovw-power-stat-filter{display:flex;align-items:center;gap:4px;margin-left:4px;cursor:pointer;color:rgba(255,255,255,0.5);font-size:calc(10px * var(--fs,1.3))}.ovw-power-stat-filter input{accent-color:#3b82f6;cursor:pointer}.ovw-staff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.ovw-staff-grid>:last-child:nth-child(3n+1){grid-column:span 2}@media (max-width:1100px){.ovw-staff-grid{grid-template-columns:1fr 1fr}.ovw-staff-grid>:last-child:nth-child(3n+1){grid-column:auto}.ovw-staff-grid>:last-child:nth-child(2n+1){grid-column:span 2}}@media (max-width:780px){.ovw-staff-grid{grid-template-columns:1fr}.ovw-staff-grid>:last-child:nth-child(2n+1){grid-column:auto}}.ovw-staff-body{display:flex;flex-direction:column;gap:12px}@media (min-width:1101px){.ovw-staff-grid>:last-child:nth-child(3n+1) .ovw-staff-pcts{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}}.ovw-staff-card{background:#111520;border:1px solid rgba(255,255,255,0.06);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:12px}.ovw-staff-hd{display:flex;align-items:center;justify-content:space-between}.ovw-staff-hd-l{display:flex;align-items:center;gap:8px}.ovw-staff-title{font-size:calc(15px * var(--fs,1.3));font-weight:700;color:#e6edf3}.ovw-staff-avatar-photo{width:48px;height:48px;border-radius:12px;background:rgba(255,255,255,0.05);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:calc(20px * var(--fs,1.3))}.ovw-staff-toggle{width:36px;height:20px;border-radius:999px;background:rgba(255,255,255,0.12);position:relative;flex-shrink:0}.ovw-staff-toggle.on{background:linear-gradient(135deg,#3b82f6,#38bdf8)}.ovw-staff-toggle::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,0.2);transition:transform 0.15s}.ovw-staff-toggle.on::after{transform:translateX(16px)}.ovw-auto-toggle{background:rgba(255,255,255,0.12)}.ovw-auto-toggle.on{background:#3b82f6}.ovw-staff-tags{display:flex;gap:6px;flex-wrap:wrap}.ovw-staff-pcts{display:flex;flex-direction:column;gap:50px}.ovw-staff-pct{display:flex;flex-direction:column;gap:4px}.ovw-staff-pct p{font-size:calc(12px * var(--fs,1.3));color:#8b9ab0;margin:0}.ovw-staff-pct-bar{width:100%;height:6px;background:rgba(255,255,255,0.07);border-radius:999px}.ovw-staff-pct-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#3b82f6,#38bdf8)}.ovw-staff-pct-ends{display:flex;justify-content:space-between;font-size:calc(10px * var(--fs,1.3));color:#5b6b82;margin-top:1px;font-variant-numeric:tabular-nums}.ovw-shift-people{display:flex;align-items:center;gap:8px;margin-top:3px}.ovw-shift-names{font-size:calc(11px * var(--fs,1.3));color:#8b9ab0;min-width:0;flex:1;line-height:1.4}.ovw-shift-leave{font-size:calc(11px * var(--fs,1.3));color:#8b9ab0}.ovw-shift-count{font-size:calc(11px * var(--fs,1.3));color:#8b9ab0;margin:4px 0 8px}.ovw-shift-grid{display:flex;flex-wrap:wrap;gap:10px 12px}.ovw-shift-cell{display:flex;flex-direction:column;align-items:center;gap:4px;width:48px}.ovw-shift-cell .ovw-staff-avatar{margin-left:0}.ovw-shift-cell-name{font-size:calc(10px * var(--fs,1.3));color:#8b9ab0;text-align:center;line-height:1.2;word-break:keep-all}.ovw-staff-avatars{display:flex;align-items:center;gap:0;flex-shrink:0}.ovw-staff-avatar{width:28px;height:28px;border-radius:50%;display:inline-block;border:2px solid #111520;margin-left:-6px;object-fit:cover;background:rgba(255,255,255,0.06)}.ovw-staff-avatar:first-child{margin-left:0}.ovw-staff-avatar.is-online{border-color:var(--primary);box-shadow:0 0 0 2px rgba(82,183,136,0.30);position:relative;z-index:2}.ovw-staff-avatar.empty{display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.06);color:#8b9ab0;font-size:calc(12px * var(--fs,1.3));font-weight:700}.ovw-staff-avatar.more{display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.08);color:#8b9ab0;font-size:calc(12px * var(--fs,1.3));font-weight:700}.be-row-photo.empty{display:inline-flex;align-items:center;justify-content:center;font-size:calc(13px * var(--fs,1.3));font-weight:700;color:#8b9ab0;border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.06)}.be-card-sec{border-top:1px solid rgba(255,255,255,0.06);padding-top:10px;margin-top:4px}.be-card-sec-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.be-card-sec-title{font-size:calc(12px * var(--fs,1.3));font-weight:700;color:#cdd6e2}.be-card-sec-n{font-size:calc(10px * var(--fs,1.3));font-weight:700;color:#8b9ab0;background:rgba(255,255,255,0.08);border-radius:999px;padding:1px 7px;margin-left:2px}.be-card-add{font-size:calc(11px * var(--fs,1.3));font-weight:600;color:#60a5fa;background:rgba(96,165,250,0.10);border:1px solid rgba(96,165,250,0.25);border-radius:8px;padding:3px 10px;cursor:pointer}.be-card-add:hover{background:rgba(96,165,250,0.18)}.be-card-empty{font-size:calc(11px * var(--fs,1.3));color:#3d4a5c;padding:4px 2px}.be-card-item{display:flex;align-items:flex-start;gap:8px;padding:5px 2px;font-size:calc(12px * var(--fs,1.3));color:#cdd6e2}.be-card-item.done .be-card-body{color:#5b6b82;text-decoration:line-through}.be-card-chk{flex-shrink:0;width:18px;height:18px;border-radius:50%;border:1px solid rgba(255,255,255,0.2);background:transparent;color:#8b9ab0;font-size:calc(10px * var(--fs,1.3));cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center;padding:0}.be-card-chk.on{background:#2563eb;border-color:#2563eb;color:#fff}.be-card-body{flex:1;min-width:0;line-height:1.4;word-break:break-word}.be-card-body b{color:#8b9ab0;font-weight:600}.be-card-x{flex-shrink:0;background:none;border:none;color:#5b6b82;cursor:pointer;font-size:calc(11px * var(--fs,1.3));padding:0 2px;line-height:1}.be-card-x:hover{color:#f87171}.be-card-more{font-size:calc(11px * var(--fs,1.3));color:#8b9ab0;background:none;border:none;cursor:pointer;padding:4px 2px;font-weight:600}.be-card-more:hover{color:#cdd6e2}.be-card-done-btn{flex-shrink:0;font-size:calc(10px * var(--fs,1.3));font-weight:700;color:#34d399;background:rgba(52,211,153,0.12);border:1px solid rgba(52,211,153,0.3);border-radius:6px;padding:2px 9px;cursor:pointer;line-height:1.4}.be-card-done-btn:hover{background:rgba(52,211,153,0.22)}.be-card-undo{flex-shrink:0;background:none;border:none;color:#8b9ab0;cursor:pointer;font-size:calc(12px * var(--fs,1.3));padding:0 3px;line-height:1}.be-card-undo:hover{color:#cdd6e2}.be-card-hist-toggle{font-size:calc(11px * var(--fs,1.3));color:#8b9ab0;background:none;border:none;cursor:pointer;padding:6px 2px 2px;font-weight:600;display:block}.be-card-hist-toggle:hover{color:#cdd6e2}.be-card-hist{border-top:1px dashed rgba(255,255,255,0.06);margin-top:2px;padding-top:2px}.be-card-hist .be-card-item.done .be-card-body{color:#5b6b82;text-decoration:line-through}.be-card-post{padding:6px 2px;border-bottom:1px dashed rgba(255,255,255,0.05)}.be-card-post:last-of-type{border-bottom:none}.be-card-post-body{font-size:calc(12px * var(--fs,1.3));color:#cdd6e2;line-height:1.45;word-break:break-word;white-space:pre-wrap}.be-card-post-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:2px;font-size:calc(10px * var(--fs,1.3));color:#5b6b82}.be-ava-details{border:1px solid rgba(255,255,255,0.1);border-radius:10px;padding:4px 10px;margin:2px 0 4px}.be-ava-details>summary{cursor:pointer;font-size:calc(12px * var(--fs,1.3));color:#cdd6e2;font-weight:600;padding:4px 0;list-style:revert}.be-ava-box{padding-top:8px;display:flex;flex-direction:column;gap:10px}.be-ava-top{display:flex;gap:12px;align-items:center}.be-ava-preview.be-row-photo{width:64px;height:64px;flex-shrink:0;border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.06);background-size:cover;background-position:center}.be-ava-top-r{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.be-ava-acts{display:flex;gap:6px}.be-ava-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}.be-ava-f{display:flex;align-items:center;gap:6px;font-size:calc(11px * var(--fs,1.3));color:#8b9ab0}.be-ava-f>span{flex-shrink:0;min-width:42px}.be-ava-f select,.be-ava-f input{flex:1;min-width:0;padding:4px 6px;font-size:calc(11px * var(--fs,1.3))}.be-ava-togs{display:flex;flex-wrap:wrap;gap:8px 14px}.be-ava-tog{display:flex;align-items:center;gap:6px;font-size:calc(11px * var(--fs,1.3));color:#cdd6e2}.be-ava-tog .be-ava-f{margin-left:2px}.be-ava-chk{width:18px;height:18px;border-radius:5px;border:1px solid rgba(255,255,255,0.25);background:transparent;color:#fff;font-size:calc(11px * var(--fs,1.3));cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0}.be-ava-chk.on{background:#2563eb;border-color:#2563eb}.be-ava-colors{display:flex;flex-direction:column;gap:6px}.be-ava-crow{display:flex;align-items:center;gap:8px;font-size:calc(11px * var(--fs,1.3));color:#8b9ab0}.be-ava-crow>span{min-width:42px;flex-shrink:0}.be-ava-sws{display:flex;flex-wrap:wrap;gap:5px}.be-ava-sw{width:20px;height:20px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0;box-shadow:0 0 0 1px rgba(255,255,255,0.15) inset}.be-ava-sw.on{border-color:#60a5fa}.be-ava-sw.be-ava-auto{display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.06);color:#8b9ab0;font-size:calc(10px * var(--fs,1.3));font-weight:700;box-shadow:none;border:1px solid rgba(255,255,255,0.2)}.be-date-input{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);border-radius:6px;color:var(--text);font-size:calc(12px * var(--fs,1.3));padding:4px 8px;font-family:inherit;color-scheme:dark;cursor:pointer}.be-filter{display:flex;gap:6px;flex-wrap:wrap}.be-filter-btn{font-size:calc(12px * var(--fs,1.3));font-weight:600;padding:4px 16px;border-radius:999px;cursor:pointer;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);color:var(--text-muted)}.be-filter-btn.on{background:#3b82f6;border-color:#3b82f6;color:#fff}.ovw-staff-request{display:flex;align-items:flex-start;gap:8px;padding:8px 12px;background:rgba(255,255,255,0.03);border-radius:12px}.ovw-staff-request-tag{width:20px;height:20px;border-radius:50%;background:#3b82f6;color:#fff;display:flex;align-items:center;justify-content:center;font-size:calc(10px * var(--fs,1.3));font-weight:800;flex-shrink:0}.ovw-staff-request-text{flex:1;font-size:calc(11px * var(--fs,1.3));color:#8b9ab0;line-height:1.4;margin:0}.ovw-staff-request-extra{color:#60a5fa;font-weight:600;margin-left:4px}.ovw-staff-tags .ovw-chip{background:rgba(255,255,255,0.07);color:#8b9ab0}.ovw-staff-tags .ovw-chip-active{background:#3b82f6;color:#fff}.be-toolbar{display:flex;justify-content:flex-end;margin-bottom:14px}.be-team{margin-bottom:16px}.be-team-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:6px}.be-team-hd-l{display:flex;align-items:flex-start;gap:8px;min-width:0}.be-drag-handle{cursor:grab;color:#6b7280;font-size:calc(15px * var(--fs,1.3));line-height:1.5;user-select:none;flex-shrink:0}.be-drag-handle:active{cursor:grabbing}.be-team.be-draggable{transition:box-shadow 0.1s,opacity 0.1s}.be-team.dragging{opacity:0.45}.be-team.drop-before{box-shadow:inset 0 3px 0 -1px var(--primary-bright,#60a5fa)}.be-team.drop-after{box-shadow:inset 0 -3px 0 -1px var(--primary-bright,#60a5fa)}.be-team-chevron{cursor:pointer;color:#8b9ab0;font-size:calc(13px * var(--fs,1.3));user-select:none;flex-shrink:0;padding-top:3px}.be-team-nm{cursor:pointer;min-width:0}.be-team-body{margin-top:6px}.be-team-name{font-size:calc(16px * var(--fs,1.3));font-weight:700;color:var(--text)}.be-photo-row{display:flex;align-items:center;gap:12px;margin-bottom:4px}.be-photo-preview{width:64px;height:64px;border-radius:50%;overflow:hidden;flex-shrink:0;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);cursor:pointer;display:flex;align-items:center;justify-content:center}.be-photo-preview img{width:100%;height:100%;object-fit:cover}.be-photo-plus{font-size:calc(24px * var(--fs,1.3));color:#6b7280}.be-photo-side{display:flex;flex-direction:column;gap:6px;min-width:0}.be-photo-lbl{font-size:calc(12px * var(--fs,1.3));color:var(--text-muted)}.be-photo-acts{display:flex;gap:6px;flex-wrap:wrap}.be-row-photo{width:30px;height:30px;border-radius:50%;object-fit:cover;flex-shrink:0;background:rgba(255,255,255,0.06)}.be-row-photo-empty{display:inline-flex;align-items:center;justify-content:center;font-size:calc(13px * var(--fs,1.3));font-weight:700;color:#8b9ab0;border:1px solid rgba(255,255,255,0.12)}.be-team-sub{font-size:calc(12px * var(--fs,1.3));color:var(--text-muted);margin-top:3px}.be-team-acts{display:flex;gap:6px;flex-shrink:0}.geo-btn-sm{padding:6px 10px;font-size:calc(12px * var(--fs,1.3));min-width:0}.be-danger{color:var(--danger)}.be-danger:hover{border-color:var(--danger);color:var(--danger)}.be-sub-hd{display:flex;align-items:center;gap:10px;font-size:calc(11px * var(--fs,1.3));font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:16px 0 8px}.be-add-btn{font-size:calc(11px * var(--fs,1.3));font-weight:600;color:#60a5fa;background:rgba(96,165,250,0.1);border:1px solid rgba(96,165,250,0.3);border-radius:6px;padding:3px 10px;cursor:pointer}.be-add-btn:hover{background:rgba(96,165,250,0.18)}.be-staff-list,.be-req-list{display:flex;flex-direction:column;gap:6px}.be-row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.be-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.be-row-name{font-size:calc(13px * var(--fs,1.3));color:var(--text);font-weight:500}.be-row-meta{font-size:calc(11px * var(--fs,1.3));color:var(--text-muted)}.be-log-diff{font-size:calc(11px * var(--fs,1.3));color:var(--text-muted);padding-left:8px}.be-log-diff s{color:var(--text-faint)}.be-log-diff b{color:var(--text)}.be-done .be-row-name{text-decoration:line-through;color:var(--text-faint)}.be-duty{flex-shrink:0;min-width:44px;padding:5px 8px;border-radius:6px;font-size:calc(11px * var(--fs,1.3));font-weight:700;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text-faint)}.be-duty.on{background:linear-gradient(135deg,#3b82f6,#38bdf8);color:#fff;border-color:transparent}.be-duty.done{background:rgba(52,211,153,0.14);color:#34d399;border-color:rgba(52,211,153,0.4)}.be-icon{flex-shrink:0;width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;font-size:calc(12px * var(--fs,1.3))}.be-icon:hover{border-color:var(--text-faint);color:var(--text)}.be-empty{font-size:calc(12px * var(--fs,1.3));color:var(--text-faint);padding:8px 4px}.be-form{display:flex;flex-direction:column;gap:12px;margin:14px 0}.be-form>label{display:flex;flex-direction:column;gap:5px;font-size:calc(12px * var(--fs,1.3));color:var(--text-muted)}.be-form-row{display:flex;gap:12px}.be-form-row label{flex:1;display:flex;flex-direction:column;gap:5px;font-size:calc(12px * var(--fs,1.3));color:var(--text-muted)}.be-check{flex-direction:row;align-items:center;gap:8px;color:var(--text);font-size:calc(13px * var(--fs,1.3));cursor:pointer}.be-check input{width:16px;height:16px;accent-color:#3b82f6}.be-shift-badge{display:inline-block;font-size:calc(10px * var(--fs,1.3));font-weight:700;padding:1px 7px;border-radius:999px;background:rgba(96,165,250,0.14);color:#60a5fa;vertical-align:middle;margin-left:4px}.be-shift-badge.off{background:rgba(148,163,184,0.15);color:var(--text-muted)}.be-hint{font-size:calc(11px * var(--fs,1.3));color:var(--text-faint);line-height:1.5;margin:-4px 0 2px}.be-shift-row{display:flex;align-items:center;gap:6px;margin-bottom:6px;flex-wrap:nowrap}.be-shift-row>input{min-width:0;box-sizing:border-box}.be-shift-row>input:first-child{flex:0 0 78px;width:78px;text-align:center}.be-shift-row input[type="time"]{flex:1 1 auto;min-width:96px;padding:7px 6px;font-size:calc(13px * var(--fs,1.3))}.be-shift-row .be-shift-tilde,.be-shift-row .be-icon{flex:0 0 auto}.be-overlay .oss-dialog{max-width:440px}.oss-dialog input,.oss-dialog select,.oss-dialog textarea{max-width:100%;min-width:0;box-sizing:border-box}.be-form-row{gap:10px;flex-wrap:wrap}.be-form-row label{min-width:0;flex:1 1 130px}.be-form-row input,.be-form-row select{width:100%;min-width:0;box-sizing:border-box}.be-shift-tilde{color:var(--text-muted);flex-shrink:0}.be-sched-list{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow-y:auto;margin:10px 0}.be-sched-row{display:flex;align-items:center;gap:10px}.be-sched-date{flex:0 0 96px;font-size:calc(12px * var(--fs,1.3));color:var(--text-muted);font-variant-numeric:tabular-nums}.be-sched-sel{flex:1}.be-leave-form>label{align-items:center;text-align:center}.be-leave-form input[type="date"]{width:auto;min-width:190px}.be-hint-left{text-align:left;margin-top:10px}.kpi-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:20px}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;cursor:default;transition:border-color 0.2s,box-shadow 0.2s,transform 0.1s}.kpi-card:hover{border-color:rgba(96,165,250,0.3);box-shadow:0 0 0 1px rgba(96,165,250,0.15),0 8px 24px rgba(59,130,246,0.15);transform:translateY(-1px)}.kpi-label{font-size:calc(10px * var(--fs,1.3));color:var(--text-faint);font-weight:600;text-transform:uppercase;letter-spacing:0.08em;margin-bottom:10px}.kpi-value{font-size:calc(24px * var(--fs,1.3));font-weight:700;color:var(--text);line-height:1}.kpi-unit{font-size:calc(12px * var(--fs,1.3));color:var(--text-muted);margin-left:3px}.kpi-sub{font-size:calc(11px * var(--fs,1.3));color:var(--primary-bright);margin-top:6px}.floor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.floor-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;cursor:pointer;transition:border-color 0.2s,box-shadow 0.2s}.floor-card:hover{border-color:rgba(96,165,250,0.4);box-shadow:0 0 0 1px rgba(96,165,250,0.15)}.floor-card-static{cursor:default}.floor-card-static:hover{border-color:var(--border);box-shadow:none}.floor-name{font-size:calc(15px * var(--fs,1.3));font-weight:600;margin-bottom:6px}.floor-meta{font-size:calc(12px * var(--fs,1.3));color:var(--text-muted);margin-bottom:2px}.floor-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.badge{font-size:calc(10px * var(--fs,1.3));font-weight:600;padding:2px 8px;border-radius:100px;border:1px solid;white-space:nowrap}.badge-green{background:var(--primary-dim);color:var(--primary-bright);border-color:rgba(96,165,250,0.3)}.badge-yellow{background:var(--warning-dim);color:var(--warning);border-color:rgba(246,195,68,0.3)}.badge-blue{background:rgba(88,166,255,0.12);color:#58a6ff;border-color:rgba(88,166,255,0.35)}.badge-red{background:var(--danger-dim);color:var(--danger);border-color:rgba(248,81,73,0.3)}.badge-gray{background:rgba(255,255,255,0.05);color:var(--text-muted);border-color:var(--border)}.two-col{display:grid;grid-template-columns:18.6rem 1fr;gap:16px}.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.point-list{overflow-y:auto}.point-item{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background 0.12s;gap:8px}.point-item:hover{background:var(--surface-hover)}.point-item.active{background:var(--primary-dim)}.point-item:last-child{border-bottom:none}.point-name{font-size:calc(12px * var(--fs,1.3));font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.point-bacnet{font-size:calc(10px * var(--fs,1.3));font-family:'Consolas','SF Mono',monospace;color:var(--text-faint);opacity:0.7;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.point-ddc{font-size:calc(10px * var(--fs,1.3));color:var(--text-faint);margin-top:1px;opacity:0.55}.point-value{font-size:calc(12px * var(--fs,1.3));font-weight:600;color:var(--primary-bright);white-space:nowrap;text-align:right;min-width:70px}.point-value.stale{color:var(--text-faint)}@keyframes row-flash{0%{background:rgba(96,165,250,0.18)}100%{background:transparent}}.search-highlight{animation:row-flash 2s ease-out}.search-input{height:28px;font-size:calc(11px * var(--fs,1.3))!important}.search-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,0.4);z-index:200;max-height:320px;overflow-y:auto}.search-suggestion{padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--border);transition:background 0.1s}.search-suggestion:last-child{border-bottom:none}.search-suggestion:hover,.search-suggestion.focused{background:var(--surface-hover)}.sugg-label{font-size:calc(12px * var(--fs,1.3));font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sugg-meta{display:flex;align-items:center;gap:8px;margin-top:2px}.sugg-bacnet{font-size:calc(10px * var(--fs,1.3));font-family:'Consolas','SF Mono',monospace;color:var(--text-faint)}.sugg-floor{font-size:calc(10px * var(--fs,1.3));color:var(--text-faint);background:var(--bg);border:1px solid var(--border);border-radius:3px;padding:0 4px}.sugg-unit{font-size:calc(10px * var(--fs,1.3));color:var(--text-faint)}mark.search-hi{background:rgba(96,165,250,0.25);color:inherit;border-radius:2px;padding:0 1px;font-style:normal}.detail-metric{font-size:calc(32px * var(--fs,1.3));font-weight:700}.detail-unit{font-size:calc(16px * var(--fs,1.3));color:var(--text-muted);margin-left:4px}.detail-ts{font-size:calc(11px * var(--fs,1.3));color:var(--text-faint);margin-top:3px}.chart-wrapper{position:relative;height:190px;margin-top:14px}.control-row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin-top:14px}.form-group{display:flex;flex-direction:column;gap:4px}.form-label{font-size:calc(10px * var(--fs,1.3));color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:0.05em}.form-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:7px 10px;font-size:calc(13px * var(--fs,1.3));outline:none;transition:border-color 0.15s;width:100px}.form-input:focus{border-color:var(--primary)}.btn{padding:7px 14px;border-radius:var(--radius-sm);font-size:calc(13px * var(--fs,1.3));font-weight:500;border:1px solid;cursor:pointer;transition:opacity 0.15s;white-space:nowrap;font-family:inherit;line-height:1.2;box-sizing:border-box}.btn:disabled{opacity:0.35;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary-bright);color:#fff}.btn-primary:hover:not(:disabled){opacity:0.82}.btn-danger{background:var(--danger-dim);border-color:rgba(248,81,73,0.4);color:var(--danger)}.btn-danger:hover:not(:disabled){opacity:0.8}.btn-warning{background:var(--warning-dim);border-color:rgba(246,195,68,0.3);color:var(--warning)}.btn-warning:hover:not(:disabled){background:rgba(246,195,68,0.22)}.btn-ghost{background:transparent;border-color:var(--border);color:var(--text-muted)}.btn-ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn-sm{padding:4px 10px;font-size:calc(12px * var(--fs,1.3))}.admin-btn{display:flex;align-items:center;gap:7px;background:none;border:none;color:var(--text-faint);font-size:calc(11px * var(--fs,1.3));cursor:pointer;padding:0;width:100%;transition:color 0.15s}.admin-btn:hover{color:var(--warning)}.admin-btn svg{flex-shrink:0}.admin-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.55);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:500}.admin-modal{background:var(--surface);border:1px solid rgba(246,195,68,0.2);border-radius:12px;padding:24px;width:380px;max-width:92vw;box-shadow:0 8px 40px rgba(0,0,0,0.55),0 0 0 1px rgba(246,195,68,0.08)}.admin-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.admin-modal-title{display:flex;align-items:center;gap:8px;font-size:calc(15px * var(--fs,1.3));font-weight:600;color:var(--warning)}.admin-close{background:none;border:none;color:var(--text-faint);font-size:calc(20px * var(--fs,1.3));line-height:1;cursor:pointer;padding:0 4px}.admin-close:hover{color:var(--text)}.admin-hint-text{font-size:calc(12px * var(--fs,1.3));color:var(--text-muted);margin-bottom:18px}.admin-section-title{font-size:calc(10px * var(--fs,1.3));font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-faint);margin-bottom:8px}.admin-status-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;margin-bottom:10px;min-height:58px;display:flex;flex-direction:column;gap:6px}.admin-status-row{display:flex;justify-content:space-between;font-size:calc(12px * var(--fs,1.3));color:var(--text-muted)}.admin-actions{display:flex;gap:8px;margin-bottom:8px}.admin-actions .btn{flex:1;justify-content:center;font-size:calc(12px * var(--fs,1.3))}.admin-footer{margin-top:14px;padding-top:12px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.admin-note{font-size:calc(11px * var(--fs,1.3));color:var(--text-faint);margin-top:4px;line-height:1.4}.badge-warning{background:var(--warning-dim);color:var(--warning);border:1px solid rgba(246,195,68,0.3);border-radius:3px;padding:1px 6px;font-size:calc(10px * var(--fs,1.3));font-weight:600}.badge-red{background:var(--danger-dim);color:var(--danger);border:1px solid rgba(248,81,73,0.3);border-radius:3px;padding:1px 6px;font-size:calc(10px * var(--fs,1.3));font-weight:600}.period-bar{display:flex;gap:3px;background:var(--bg);padding:3px;border-radius:var(--radius-sm);border:1px solid var(--border)}.period-btn{padding:4px 12px;border-radius:4px;font-size:calc(12px * var(--fs,1.3));font-weight:500;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:background 0.12s,color 0.12s}.period-btn:hover{color:var(--text)}.period-btn.active{background:var(--surface);color:var(--text)}.alert-list{display:flex;flex-direction:column;gap:8px}.alert-item{display:flex;align-items:flex-start;gap:12px;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm)}.alert-title{font-size:calc(13px * var(--fs,1.3));font-weight:600}.alert-meta{font-size:calc(11px * var(--fs,1.3));color:var(--text-muted);margin-top:2px}.log-list{display:flex;flex-direction:column;gap:5px}.log-item{display:flex;gap:10px;padding:8px 12px;background:var(--bg);border-radius:var(--radius-sm);font-size:calc(12px * var(--fs,1.3));border:1px solid var(--border)}.log-ts{color:var(--text-faint);white-space:nowrap;flex-shrink:0}.log-action{color:var(--text);font-weight:500;flex-shrink:0}.log-msg{color:var(--text-muted);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-ok{color:var(--primary-bright);flex-shrink:0}.log-fail{color:var(--danger);flex-shrink:0}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.section-title{font-size:calc(14px * var(--fs,1.3));font-weight:600}.section-sub{font-size:calc(11px * var(--fs,1.3));color:var(--text-muted);margin-top:2px}.sa-cfg-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.sa-cfg-row:last-of-type{border-bottom:none}.sa-cfg-label{font-size:calc(13px * var(--fs,1.3));font-weight:600;min-width:180px;flex-shrink:0}.sa-cfg-input{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:5px 8px;color:var(--text);font-size:calc(13px * var(--fs,1.3));color-scheme:dark}.sa-cfg-hint{font-size:calc(11px * var(--fs,1.3));color:var(--text-muted);flex:1 1 260px}.sa-cfg-toggle{display:flex;align-items:center;gap:6px;font-size:calc(13px * var(--fs,1.3));cursor:pointer}.sa-cfg-sep{border:none;border-top:1px solid var(--border);margin:4px 0}.sa-cfg-actions{display:flex;align-items:center;gap:10px;margin-top:16px}.sa-cfg-feedback{font-size:calc(12px * var(--fs,1.3));color:var(--text-muted)}.sa-msg-card{padding:12px 0;border-bottom:1px solid var(--border)}.sa-msg-card:last-of-type{border-bottom:none}.sa-msg-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:3px}.sa-msg-title{font-size:calc(13px * var(--fs,1.3));font-weight:600}.sa-msg-freq{font-size:calc(10px * var(--fs,1.3));font-weight:600;padding:1px 7px;border-radius:10px;background:rgba(96,165,250,0.12);color:var(--primary-bright,var(--primary));white-space:nowrap}.sa-msg-cond{font-size:calc(11px * var(--fs,1.3));color:var(--text-muted);margin-bottom:6px}.sa-msg-textarea{width:100%;min-height:44px;resize:vertical;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:7px 9px;color:var(--text);font-size:calc(13px * var(--fs,1.3));font-family:inherit;box-sizing:border-box}.sa-msg-placeholders{font-size:calc(10.5px * var(--fs,1.3));color:var(--text-faint);margin-top:4px}.sa-msg-inline-input{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:3px 6px;color:var(--text);font-size:calc(13px * var(--fs,1.3));width:60px;text-align:right}.sa-rulenote-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.sa-rulenote-item{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.sa-rulenote-title{font-size:calc(13px * var(--fs,1.3));font-weight:600;margin-bottom:3px}.sa-rulenote-body{font-size:calc(12px * var(--fs,1.3));color:var(--text-muted);white-space:pre-wrap}.sa-rulenote-body b{color:var(--text);font-weight:600}.sa-rulenote-del{flex-shrink:0;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);font-size:calc(11px * var(--fs,1.3));padding:3px 8px;cursor:pointer}.sa-rulenote-del:hover{color:var(--danger);border-color:var(--danger)}.sa-rulenote-form{display:flex;flex-direction:column;gap:8px}.sa-rulenote-form input,.sa-rulenote-form textarea{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:7px 9px;color:var(--text);font-size:calc(13px * var(--fs,1.3));font-family:inherit;box-sizing:border-box;width:100%}.sa-rulenote-form textarea{min-height:50px;resize:vertical}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;color:var(--text-faint);font-size:calc(13px * var(--fs,1.3));gap:10px;text-align:center}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--primary-bright);border-radius:50%;animation:spin 0.7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.divider{border:none;border-top:1px solid var(--border);margin:16px 0}.sep-label{font-size:calc(10px * var(--fs,1.3));color:var(--text-faint);text-transform:uppercase;letter-spacing:0.08em;padding:6px 12px 4px}.floor-btn{width:100%;padding:7px 12px;border-radius:var(--radius-sm);font-size:calc(12px * var(--fs,1.3));color:var(--text-muted);cursor:pointer;transition:background 0.12s,color 0.12s;text-align:left;border:none;background:transparent;display:flex;justify-content:space-between;align-items:center}.floor-btn:hover{background:var(--surface-hover);color:var(--text)}.floor-btn.active{background:var(--primary-dim);color:var(--primary-bright);font-weight:500}.pulse{width:8px;height:8px;border-radius:50%;background:var(--primary-bright);box-shadow:0 0 6px rgba(96,165,250,0.5);animation:pulse-anim 2s ease-in-out infinite}@keyframes pulse-anim{0%,100%{box-shadow:0 0 4px rgba(96,165,250,0.4)}50%{box-shadow:0 0 10px rgba(96,165,250,0.8)}}@keyframes flash-green{0%{color:var(--primary-bright)}100%{color:var(--text)}}.value-flash{animation:flash-green 1.2s ease-out forwards}.toast-container{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:9999}.toast{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 16px;font-size:calc(13px * var(--fs,1.3));color:var(--text);box-shadow:0 4px 16px rgba(0,0,0,0.4);animation:toast-in 0.2s ease-out;max-width:300px}.toast.success{border-color:rgba(96,165,250,0.5)}.toast.error{border-color:rgba(248,81,73,0.5);color:var(--danger)}@keyframes toast-in{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.1);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.2)}.mobile-nav-toggle,.mobile-nav-backdrop{display:none}@media (max-width:960px){.two-col{grid-template-columns:1fr}.three-col{grid-template-columns:1fr 1fr}.kpi-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:600px){.kpi-grid{grid-template-columns:1fr 1fr}}@media (max-width:768px){.app-header{height:52px;padding:10 10px}.app-header-pressure{display:none}.app-header-logo .logo-sub{display:none}.app-logo-img{height:50px;width:auto;display:block}.mobile-nav-toggle{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:8px;flex-shrink:0;background:transparent;border:1px solid var(--border);color:var(--text);cursor:pointer}.sidebar{position:fixed;top:52px;left:0;bottom:0;z-index:60;width:244px;max-width:82vw;height:auto;transform:translateX(-105%);transition:transform 0.22s ease;box-shadow:0 0 30px rgba(0,0,0,0.55)}#app-layout.nav-open .sidebar{transform:translateX(0)}#app-layout.nav-open .mobile-nav-backdrop{display:block;position:fixed;top:52px;left:0;right:0;bottom:0;z-index:55;background:rgba(0,0,0,0.5)}.page{padding:14px}.two-col,.three-col,.ovw-smart-grid,.ovw-staff-grid,.live-grid,.oss-plan-body,.oss-building-2col{grid-template-columns:1fr!important}.kpi-grid{grid-template-columns:1fr 1fr!important}.oss-statussel-grid{grid-template-columns:repeat(2,1fr)!important}.auth-modal,.auth-modal.wide,.admin-modal{max-width:94vw!important}.ovw-proposal,.opg-grid{overflow-x:auto}.app-header-weather .oss-weather-popover{width:min(280px,88vw)}.app-header-weather .oss-weather-chip{padding:6px 10px;gap:6px;border-radius:10px}.app-header-weather .oss-weather-icon{font-size:calc(17px * var(--fs,1.3))}.app-header-weather .oss-weather-now{font-size:calc(12px * var(--fs,1.3))}.app-header-weather .oss-weather-range{font-size:calc(11px * var(--fs,1.3))}}.compare-toggle-active{color:var(--primary-bright)!important;border-color:rgba(96,165,250,0.45)!important;background:var(--primary-dim)!important}.compare-dot-btn{width:14px;height:14px;border-radius:50%;border:2px solid var(--text-faint);background:transparent;cursor:pointer;flex-shrink:0;margin-right:6px;padding:0;transition:border-color 0.15s,background 0.15s,transform 0.1s}.compare-dot-btn:hover{border-color:var(--text-muted);transform:scale(1.2)}.compare-dot-btn.active{background:var(--dot-c,var(--primary-bright));border-color:var(--dot-c,var(--primary-bright))}.cmp-legend-item{display:flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--cmp-c,var(--primary));border-radius:var(--radius-sm);padding:5px 8px 5px 7px;font-size:calc(11px * var(--fs,1.3));max-width:260px}.cmp-legend-name{color:var(--text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px;flex:1}.cmp-legend-unit{color:var(--text-faint);font-size:calc(10px * var(--fs,1.3));flex-shrink:0}.cmp-legend-rm{background:transparent;border:none;color:var(--text-faint);cursor:pointer;font-size:calc(10px * var(--fs,1.3));padding:0 1px;line-height:1;flex-shrink:0;transition:color 0.12s}.cmp-legend-rm:hover{color:var(--danger)}.live-page{display:flex;flex-direction:column;height:100%}.live-grid{display:grid;grid-template-columns:14.3rem 20.7rem 1fr;gap:12px;flex:1;min-height:0;overflow:hidden}.plot-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--text-faint);background:transparent;flex-shrink:0;margin-right:7px;transition:background 0.15s,border-color 0.15s,box-shadow 0.15s;display:inline-block}.plot-active-row{background:rgba(96,165,250,0.06)!important}.plot-active-row:hover{background:rgba(96,165,250,0.10)!important}.lv-card{background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius-sm);padding:9px 11px;display:flex;flex-direction:column;transition:background 0.12s,border-color 0.12s}.lv-card:hover{background:rgba(96,165,250,0.08);border-color:var(--primary-bright)}.lv-header{display:flex;align-items:center;gap:6px;margin-bottom:2px}.lv-name{font-size:calc(11px * var(--fs,1.3));color:var(--text-muted);font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lv-val{font-size:calc(22px * var(--fs,1.3));font-weight:700;color:var(--text);line-height:1}.lv-unit{font-size:calc(11px * var(--fs,1.3));color:var(--text-faint);margin-left:2px}.lv-ts{font-size:calc(10px * var(--fs,1.3));color:var(--text-faint);margin-top:3px}.lv-rm{background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:calc(10px * var(--fs,1.3));padding:0 2px;line-height:1;flex-shrink:0;transition:color 0.12s}.lv-rm:hover{color:var(--danger)}@media (max-width:860px){.live-grid{grid-template-columns:1fr;overflow-y:auto}}.group-tabs{display:flex;flex-wrap:wrap;gap:5px;padding:8px 10px;border-bottom:1px solid var(--border);flex-shrink:0;max-height:96px;overflow-y:auto}.group-tab{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;font-size:calc(11px * var(--fs,1.3));font-weight:500;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:999px;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s,border-color .12s}.group-tab:hover{background:var(--surface-hover);color:var(--text)}.group-tab.active{background:var(--primary-dim);border-color:var(--primary);color:var(--primary-bright)}.group-tab .gt-count{font-size:calc(10px * var(--fs,1.3));color:var(--text-faint);font-variant-numeric:tabular-nums}.group-tab.active .gt-count{color:var(--primary-bright)}.autopilot-summary{display:flex;align-items:center;gap:20px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary-bright);border-radius:var(--radius);padding:14px 20px;margin-bottom:24px}.autopilot-summary .ap-oat-chip{display:flex;align-items:center;gap:8px;background:var(--primary-dim);border:1px solid rgba(96,165,250,0.25);border-radius:20px;padding:4px 14px;font-size:calc(13px * var(--fs,1.3));color:var(--primary-bright)}.autopilot-summary .ap-oat-chip svg{opacity:0.8}.autopilot-summary .ap-summary-label{font-size:calc(12px * var(--fs,1.3));color:var(--text-muted);margin-left:auto}.strategy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:20px;align-items:start}.strategy-card{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--primary-bright);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:16px;transition:opacity 0.3s,filter 0.3s}.strategy-card.inactive{opacity:0.42;filter:grayscale(0.65)}.strategy-card.overridden{border-top-color:var(--warning)}.strategy-card.standby{border-top-color:#38bdf8}.strategy-card.strategy-pseudo{opacity:0.38;filter:grayscale(0.80);border-style:dashed;pointer-events:none}.strategy-card.strategy-pseudo *{pointer-events:none}.strategy-pseudo-notice{font-size:calc(10px * var(--fs,1.3));font-weight:600;color:var(--text-faint);letter-spacing:0.04em;text-transform:uppercase;margin:6px 0 4px;padding:4px 8px;border:1px dashed var(--border);border-radius:4px;text-align:center}.strategy-header{display:flex;align-items:center;gap:10px}.strategy-icon{width:32px;height:32px;border-radius:8px;background:var(--primary-dim);display:flex;align-items:center;justify-content:center;color:var(--primary-bright);flex-shrink:0}.strategy-title{flex:1}.strategy-title h3{font-size:calc(14px * var(--fs,1.3));font-weight:600;color:var(--text);line-height:1.2}.strategy-title .strategy-abbr{font-size:calc(11px * var(--fs,1.3));color:var(--text-faint);text-transform:uppercase;letter-spacing:0.06em}.strategy-badge{font-size:calc(10px * var(--fs,1.3));font-weight:700;letter-spacing:0.08em;text-transform:uppercase;padding:3px 9px;border-radius:10px}.strategy-badge.active{background:rgba(96,165,250,0.18);color:var(--primary-bright)}.strategy-badge.overridden{background:rgba(246,195,68,0.18);color:var(--warning)}.strategy-badge.inactive{background:rgba(255,255,255,0.06);color:var(--text-faint)}.strategy-badge.standby{background:rgba(56,189,248,0.15);color:#38bdf8}.ap-toggle-wrap{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}.ap-toggle{position:relative;width:38px;height:21px;cursor:pointer}.ap-toggle input{opacity:0;width:0;height:0}.ap-toggle-slider{position:absolute;inset:0;background:var(--surface-hover);border:1px solid var(--border);border-radius:21px;transition:background 0.2s,border-color 0.2s}.ap-toggle-slider::before{content:'';position:absolute;width:15px;height:15px;left:2px;top:2px;background:var(--text-faint);border-radius:50%;transition:transform 0.2s,background 0.2s}.ap-toggle input:checked + .ap-toggle-slider{background:var(--primary-dim);border-color:var(--primary-bright)}.ap-toggle input:checked + .ap-toggle-slider::before{transform:translateX(17px);background:var(--primary-bright)}.strategy-metric{text-align:center;padding:8px 0 4px}.strategy-metric .metric-value{font-size:calc(28px * var(--fs,1.3));font-weight:700;color:var(--primary-bright);font-variant-numeric:tabular-nums;letter-spacing:-0.5px;line-height:1}.strategy-metric .metric-arrow{font-size:calc(18px * var(--fs,1.3));color:var(--text-muted);margin:0 6px}.strategy-metric .metric-label{font-size:calc(11px * var(--fs,1.3));color:var(--text-muted);margin-top:4px}.strategy-metric{padding-top:14px}.ap-edit{display:inline-flex;align-items:baseline;gap:6px;cursor:pointer;user-select:none;border-bottom:1px dashed transparent;transition:border-color 0.15s}.ap-edit:hover{border-bottom-color:rgba(255,255,255,0.28)}.ap-edit-val{color:inherit}.ap-edit-val.fm{color:var(--warning,#fbbf24)}.ap-edit-orig{font-size:0.5em;font-weight:600;letter-spacing:0;color:var(--text-faint);text-decoration:line-through}.ap-edit.editing{display:inline-flex;align-items:center}.ap-edit.editing .ap-edit-val{display:inline-flex;flex:1 1 auto}.ap-edit-input{font-family:inherit;font-size:calc(14px * var(--fs,1.3));font-weight:600;letter-spacing:0;line-height:1.3;background:var(--bg);color:var(--text);color-scheme:dark;border:1px solid var(--primary);border-radius:5px;padding:3px 6px;width:auto;min-width:132px;max-width:100%;text-align:center}.ap-edit-input:focus{outline:none;box-shadow:0 0 0 2px var(--primary-dim)}.ap-card-actions{display:flex;justify-content:center;margin:-2px 0 6px}.ap-release-btn{display:inline-flex;align-items:center;gap:5px;font-size:calc(11px * var(--fs,1.3));font-weight:600;line-height:1;color:var(--danger,#f87171);background:var(--danger-dim,rgba(248,81,73,0.12));border:1px solid rgba(248,81,73,0.3);border-radius:6px;padding:4px 10px;cursor:pointer;transition:background 0.15s,border-color 0.15s}.ap-release-btn:hover{background:rgba(248,81,73,0.2);border-color:rgba(248,81,73,0.5)}.ap-release-btn svg{flex-shrink:0}.oss-plan{margin-top:14px;border-top:1px solid var(--border);padding-top:10px}.oss-panel-toggle{display:flex;align-items:center;gap:7px;width:100%;background:none;border:none;cursor:pointer;padding:4px 2px;font-size:calc(12px * var(--fs,1.3));font-weight:600;color:var(--text-muted);text-align:left}.oss-panel-toggle:hover{color:var(--text)}.oss-panel-toggle .oss-panel-title{flex-shrink:0}.oss-panel-hint{margin-left:auto;font-size:calc(10px * var(--fs,1.3));font-weight:500;color:var(--text-faint)}.oss-panel-toggle.open .oss-expand-caret{transform:rotate(90deg)}.strategy-card.oss-expanded{grid-column:1 / -1}.oss-plan-body{margin-top:10px;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:900px){.oss-plan-body{grid-template-columns:1fr}}.oss-part{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;display:flex;flex-direction:column;gap:8px}.oss-top-metric{padding-top:14px}.oss-top-row{display:grid;grid-template-columns:66px auto;align-items:center;justify-content:center;column-gap:14px;margin-bottom:4px}.oss-top-label{font-size:calc(12px * var(--fs,1.3));font-weight:600;color:var(--text-muted);display:inline-flex;align-items:center;gap:6px;justify-self:start;white-space:nowrap}.oss-top-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.oss-top-time{font-size:calc(26px * var(--fs,1.3));font-weight:800;color:var(--primary-bright);letter-spacing:-0.01em;line-height:1.1}.oss-top-time .arw{color:var(--text-faint);font-weight:600;margin:0 8px}.oss-rc{display:flex;flex-direction:column;gap:5px}.oss-rc-row{display:grid;grid-template-columns:56px 1fr;align-items:center;gap:10px}.oss-rc-label{font-size:calc(11px * var(--fs,1.3));font-weight:600;color:var(--text-muted);text-align:right}.oss-rc-track{position:relative;height:15px;background:rgba(255,255,255,0.05);border-radius:3px}.oss-rc-bar{position:absolute;top:2px;bottom:2px;border-radius:3px;min-width:2px}.oss-rc-axis{display:flex;justify-content:space-between;font-size:calc(9px * var(--fs,1.3));color:var(--text-faint);margin:5px 0 0 66px}.oss-rc{cursor:pointer}.oss-top-time{display:inline-flex;align-items:center}.oss-edit-time{cursor:pointer;border-bottom:1px dashed transparent}.oss-edit-time:hover{border-bottom-color:rgba(255,255,255,0.28)}.oss-edit-time.editing{display:inline-flex}.oss-top-label{cursor:pointer}.oss-time-in.applied,.oss-edit-time.applied{color:#ffd166;border-color:#ffd166;border-bottom-color:rgba(255,209,102,0.7)}.oss-time-in.applied:focus{outline-color:#ffd166}.eq-chp-card .eq-chp-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:10px 14px}.eq-chp-tile{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--surface);display:flex;flex-direction:column;gap:4px;min-height:64px}.eq-chp-name{font-size:calc(12px * var(--fs,1.3));font-weight:600;color:var(--text)}.eq-chp-sub{font-size:calc(10px * var(--fs,1.3));color:var(--text-faint)}.eq-chp-state{font-size:calc(11px * var(--fs,1.3));color:var(--text-muted);display:flex;align-items:center;gap:6px;margin-top:auto}@media (max-width:900px){.eq-chp-card .eq-chp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}#live-b1-chiller .eq-chp-card.card{margin-top:0;border-radius:0;border-left:none;border-right:none;border-top:none;border-bottom:none;background:transparent}#live-b1-chiller .eq-chp-card .eq-chp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.strategy-card.has-aside{flex-direction:row;gap:18px;align-items:flex-start}.strategy-card.has-aside .strategy-main{flex:0 0 300px;min-width:0;display:flex;flex-direction:column;gap:16px}.strategy-card.has-aside .strategy-aside{flex:1 1 auto;min-width:0;border-left:1px solid var(--border);padding-left:18px}@media (max-width:1100px){.strategy-card.has-aside{flex-direction:column}.strategy-card.has-aside .strategy-aside{border-left:none;border-top:1px solid var(--border);padding-left:0;padding-top:14px}}.oss-panel{display:flex;flex-direction:column;gap:14px}.oss-sec-head,.oss-sub-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.oss-sec-title{font-size:calc(15px * var(--fs,1.3));font-weight:700;color:var(--text)}.oss-sub-title{font-size:calc(13px * var(--fs,1.3));font-weight:700;color:var(--text)}.oss-panel-chiller{border-top:1px solid var(--border);padding-top:14px}.oss-ch-units{display:grid;grid-template-columns:1fr;gap:7px;margin-top:4px}.oss-chiller-card{margin-top:14px}.oss-equip-grid{display:grid;grid-template-columns:46px repeat(3,minmax(0,1fr));column-gap:10px;row-gap:7px;align-items:start}.oss-eg-gutter{}.oss-eg-head{font-size:calc(10px * var(--fs,1.3));font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);padding:6px 4px 2px}.oss-sub{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;display:flex;flex-direction:column;gap:9px}.oss-flabel{display:flex;align-items:center;justify-content:center;font-size:calc(12px * var(--fs,1.3));font-weight:700;color:var(--text-muted)}.oss-fcell{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:5px;background:var(--surface);border:1px solid var(--border);min-width:0;overflow:hidden}.oss-fcell.empty{justify-content:center;color:var(--text-faint);background:transparent;border-color:transparent}.oss-fcell-name{font-size:calc(11px * var(--fs,1.3));font-weight:600;color:var(--text);white-space:nowrap;flex-shrink:0}.oss-fcell .oss-row-times{margin-left:auto;gap:3px;min-width:0;flex-shrink:1}.oss-fcell .oss-time-in{font-size:calc(10px * var(--fs,1.3));padding:1px 3px;min-width:0}.oss-fcell .oss-arrow{font-size:calc(9px * var(--fs,1.3))}.oss-fcell-status{cursor:pointer;transition:background 0.15s,border-color 0.15s}.oss-fcell-status.on{background:var(--primary-bright);border-color:var(--primary-bright)}.oss-fcell-status.on .oss-fcell-name,.oss-fcell-status.on .oss-time-in,.oss-fcell-status.on .oss-arrow{color:#0b0d10}.oss-fcell-status.off{background:#06080b;border-color:var(--border)}.oss-fcell-status.off .oss-fcell-name{color:var(--text-muted)}.oss-fcell-status .oss-time-in{background:transparent;border-color:transparent;font-weight:600}.oss-fcell-status.on .oss-time-in:hover,.oss-fcell-status.on .oss-time-in:focus{background:rgba(0,0,0,0.18)}.oss-fcell-status.off .oss-time-in:hover,.oss-fcell-status.off .oss-time-in:focus{background:rgba(255,255,255,0.08)}.oss-run-btn{font-size:calc(11px * var(--fs,1.3));font-weight:700;padding:4px 13px;border-radius:7px;border:1px solid transparent;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background 0.15s,color 0.15s,border-color 0.15s}.oss-run-btn:disabled{background:rgba(248,81,73,0.07);color:rgba(248,81,73,0.4);border-color:rgba(248,81,73,0.14);cursor:default}.oss-run-btn.active{background:var(--danger);color:#fff;border-color:var(--danger)}.oss-run-btn.active:hover{background:#ff6259}.oss-run-btn.applied{background:var(--primary-bright);color:#0b0d10;border-color:var(--primary-bright);cursor:default}.oss-modal-overlay{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,0.55);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center}.oss-modal{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:28px 30px;width:330px;max-width:calc(100vw - 32px);text-align:center;box-shadow:0 24px 70px rgba(0,0,0,0.55)}.oss-modal-icon{width:58px;height:58px;border-radius:50%;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;background:var(--danger-dim,rgba(248,81,73,0.12));border:2px solid var(--danger);color:var(--danger)}.oss-modal-title{font-size:calc(18px * var(--fs,1.3));font-weight:700;color:var(--text);margin-bottom:10px}.oss-modal-msg{font-size:calc(13px * var(--fs,1.3));color:var(--text-muted);line-height:1.55;margin-bottom:22px}.oss-modal-actions{display:flex;gap:12px}.oss-modal-actions button{flex:1;padding:11px 0;border-radius:11px;font-size:calc(14px * var(--fs,1.3));font-weight:700;cursor:pointer;border:1px solid transparent}.oss-modal-cancel{background:var(--surface-hover);color:var(--text-muted);border-color:var(--border)}.oss-modal-cancel:hover{color:var(--text)}.oss-modal-run{background:var(--danger);color:#fff}.oss-modal-run:hover{background:#ff6259}.oss-plan-head{font-size:calc(13px * var(--fs,1.3));font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}.oss-plan-count{font-size:calc(10px * var(--fs,1.3));font-weight:600;color:var(--text-faint)}.oss-master-wrap{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:calc(11px * var(--fs,1.3));font-weight:600;color:var(--text-muted)}.oss-row{display:flex;align-items:center;gap:8px;padding:6px 2px;border-bottom:1px solid rgba(255,255,255,0.04)}.oss-row.off{opacity:0.5}.oss-row-name{flex:1;min-width:0;display:flex;flex-direction:column}.oss-row-name>span:first-child{font-size:calc(12px * var(--fs,1.3));font-weight:600;color:var(--text)}.oss-row-sub{font-size:calc(10px * var(--fs,1.3));color:var(--text-faint)}.oss-row-times{display:flex;align-items:center;gap:4px;flex-shrink:0}.oss-arrow{color:var(--text-faint);font-size:calc(11px * var(--fs,1.3))}.oss-time-in{font:inherit;font-size:calc(11px * var(--fs,1.3));color:var(--text);color-scheme:dark;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:2px 4px;width:auto}.oss-time-in:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-dim)}.oss-time-in:disabled{opacity:0.45}.oss-time-in::-webkit-calendar-picker-indicator{display:none;-webkit-appearance:none}.oss-time-in::-webkit-inner-spin-button{display:none}.oss-sw{position:relative;display:inline-block;width:32px;height:18px;flex-shrink:0}.oss-sw input{opacity:0;width:0;height:0}.oss-sw-sl{position:absolute;inset:0;cursor:pointer;border-radius:999px;background:var(--text-faint);transition:0.2s}.oss-sw-sl::before{content:'';position:absolute;height:12px;width:12px;left:3px;top:3px;background:#fff;border-radius:50%;transition:0.2s}.oss-sw input:checked + .oss-sw-sl{background:var(--primary-bright)}.oss-sw input:checked + .oss-sw-sl::before{transform:translateX(14px)}.oss-bulk{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.oss-bulk-label{font-size:calc(11px * var(--fs,1.3));font-weight:700;color:var(--primary-bright)}.oss-apply-btn{font-size:calc(10px * var(--fs,1.3));font-weight:600;color:var(--text-muted);background:var(--primary-dim);border:1px solid var(--border);border-radius:5px;padding:3px 8px;cursor:pointer;margin-left:auto}.oss-apply-btn:hover{color:var(--text);border-color:var(--primary)}.oss-bulk-cmd{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 8px;background:rgba(255,255,255,0.03);border:1px solid var(--border);border-radius:var(--radius-sm)}.oss-bulk-cmd-label{font-size:calc(11px * var(--fs,1.3));font-weight:600;color:var(--text-muted);flex-shrink:0}.oss-cmd-prio{width:46px;min-width:0;padding:3px 5px;font-size:calc(11px * var(--fs,1.3));background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);text-align:center}.oss-bulk-cmd .btn{font-size:calc(10px * var(--fs,1.3));padding:3px 9px;white-space:nowrap;flex-shrink:0}.btn-warning{background:rgba(255,180,50,0.15);border-color:rgba(255,180,50,0.5);color:#ffb432}.btn-warning:hover{background:rgba(255,180,50,0.28);border-color:#ffb432}.oss-bulk-sp{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.oss-bulk-sp.disabled{opacity:0.55}.oss-bulk-sp-label{font-size:calc(11px * var(--fs,1.3));font-weight:700;color:var(--primary-bright);flex-shrink:0}.oss-bulk-sp-note{font-size:calc(10px * var(--fs,1.3));color:var(--text-faint);line-height:1.35}.oss-bulk-sp-in{width:52px;min-width:0;flex:1;padding:4px 6px;font-size:calc(11px * var(--fs,1.3))}.oss-bulk-sp .btn{font-size:calc(10px * var(--fs,1.3));padding:3px 8px;white-space:nowrap;flex-shrink:0}.oss-expand-btn{font-size:calc(11px * var(--fs,1.3));font-weight:600;color:var(--text-muted);background:none;border:none;cursor:pointer;text-align:left;padding:4px 2px;display:flex;align-items:center;gap:6px}.oss-expand-btn:hover{color:var(--text)}.oss-expand-caret{display:inline-block;transition:transform 0.15s}.oss-expand-btn.open .oss-expand-caret{transform:rotate(90deg)}.oss-detail{max-height:340px;overflow-y:auto;padding-right:2px}.ap-edit-banner{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:8px 12px;background:rgba(246,195,68,0.08);border:1px solid rgba(246,195,68,0.25);border-radius:var(--radius-sm);font-size:calc(12px * var(--fs,1.3));color:var(--warning,#fbbf24)}.ap-edit-banner span{flex:1}.ap-edit-banner .btn{flex-shrink:0}.oss-timeline-wrap{display:flex;flex-direction:column;gap:6px}.oss-timeline{height:28px;border-radius:5px;overflow:hidden;display:flex;background:rgba(255,255,255,0.04);border:1px solid var(--border);position:relative}.oss-tl-seg{height:100%;display:inline-block;transition:width 0.4s}.oss-tl-seg.unoccupied{background:rgba(255,255,255,0.04)}.oss-tl-seg.precool{background:rgba(246,195,68,0.45)}.oss-tl-seg.occupied{background:rgba(96,165,250,0.55)}.oss-tl-seg.coasting{background:rgba(56,189,248,0.40)}.oss-timeline-labels{display:flex;justify-content:space-between;font-size:calc(10px * var(--fs,1.3));color:var(--text-faint);padding:0 2px}.oss-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:2px}.oss-legend-item{display:flex;align-items:center;gap:5px;font-size:calc(10px * var(--fs,1.3));color:var(--text-muted)}.oss-legend-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0}.setpoint-table{display:flex;flex-direction:column;gap:8px}.setpoint-row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:rgba(255,255,255,0.03);border:1px solid var(--border);border-radius:var(--radius-sm)}.setpoint-row .sp-icon{width:26px;height:26px;border-radius:6px;background:var(--primary-dim);display:flex;align-items:center;justify-content:center;color:var(--primary-bright);flex-shrink:0}.setpoint-row .sp-label{flex:1;font-size:calc(12px * var(--fs,1.3));color:var(--text-muted)}.setpoint-row .sp-recommended{font-size:calc(15px * var(--fs,1.3));font-weight:700;color:var(--primary-bright);font-variant-numeric:tabular-nums}.setpoint-row .sp-unit{font-size:calc(11px * var(--fs,1.3));color:var(--text-faint);margin-left:2px}.setpoint-row .sp-basis{font-size:calc(10px * var(--fs,1.3));color:var(--text-faint);margin-left:6px;background:rgba(255,255,255,0.05);padding:2px 6px;border-radius:4px}.dst-recs{display:flex;flex-direction:column;gap:8px}.dst-rec-item{display:flex;gap:10px;align-items:flex-start;padding:8px 12px;background:rgba(255,255,255,0.03);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:calc(12px * var(--fs,1.3));color:var(--text-muted);line-height:1.4}.dst-rec-item::before{content:'›';color:var(--primary-bright);font-size:calc(14px * var(--fs,1.3));line-height:1.2;flex-shrink:0}.strategy-inputs{display:flex;flex-wrap:wrap;gap:8px;padding-top:4px;border-top:1px solid var(--border)}.strategy-inputs .inp-chip{display:flex;align-items:center;gap:5px;font-size:calc(11px * var(--fs,1.3));color:var(--text-faint);background:rgba(255,255,255,0.04);border:1px solid var(--border);border-radius:12px;padding:3px 10px}.strategy-inputs .inp-chip span{color:var(--text-muted)}.override-toggle-btn{display:flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;color:var(--text-faint);font-size:calc(11px * var(--fs,1.3));padding:0;text-transform:uppercase;letter-spacing:0.06em;transition:color 0.15s}.override-toggle-btn:hover{color:var(--text-muted)}.override-toggle-btn svg{transition:transform 0.2s}.override-toggle-btn.open svg{transform:rotate(180deg)}.override-accordion{overflow:hidden;max-height:0;transition:max-height 0.25s ease}.override-accordion.open{max-height:200px}.override-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:14px 0 4px;border-top:1px dashed rgba(255,255,255,0.06);margin-top:8px}.override-field{display:flex;flex-direction:column;gap:4px}.override-field label{font-size:calc(10px * var(--fs,1.3));color:var(--text-faint);text-transform:uppercase;letter-spacing:0.06em}.override-input{background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:calc(13px * var(--fs,1.3));font-family:inherit;padding:5px 8px;width:90px;outline:none;transition:border-color 0.15s}.override-input:focus{border-color:var(--primary-bright)}.override-apply-btn{background:var(--primary-dim);border:1px solid rgba(96,165,250,0.3);border-radius:var(--radius-sm);color:var(--primary-bright);font-size:calc(12px * var(--fs,1.3));font-weight:600;padding:6px 14px;cursor:pointer;transition:background 0.15s}.override-apply-btn:hover{background:rgba(96,165,250,0.22)}.override-clear-btn{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-faint);font-size:calc(12px * var(--fs,1.3));padding:6px 14px;cursor:pointer;transition:color 0.15s,border-color 0.15s}.override-clear-btn:hover{color:var(--danger);border-color:var(--danger)}.override-note{width:100%;font-size:calc(10px * var(--fs,1.3));color:var(--text-faint);line-height:1.4}.equip-strip{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.equip-chip{display:flex;align-items:center;gap:5px;font-size:calc(11px * var(--fs,1.3));font-weight:500;padding:4px 11px;border-radius:14px;border:1px solid var(--border);color:var(--text-muted);cursor:default;transition:background 0.15s}.equip-chip:hover{background:var(--surface-hover)}.equip-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.equip-dot.on{background:#60a5fa;box-shadow:0 0 5px rgba(96,165,250,0.55)}.equip-dot.off{background:#f87171}.equip-dot.unk{background:#484f58}.ahu-overview-table{width:100%;border-collapse:collapse;font-size:calc(12px * var(--fs,1.3))}.ahu-overview-table th{text-transform:uppercase;letter-spacing:0.07em;font-size:calc(10px * var(--fs,1.3));color:var(--text-faint);font-weight:600;padding:6px 12px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.ahu-overview-table td{padding:7px 12px;border-bottom:1px solid rgba(255,255,255,0.04);color:var(--text-muted);font-variant-numeric:tabular-nums;vertical-align:middle;white-space:nowrap}.ahu-overview-table tr:hover td{background:var(--surface-hover)}.ahu-overview-table tr:last-child td{border-bottom:none}.ahu-floor-label{font-weight:600;color:var(--text);font-size:calc(12px * var(--fs,1.3))}.ahu-dot{font-size:calc(9px * var(--fs,1.3))}.ahu-dot.on{color:#60a5fa}.ahu-dot.off{color:#f87171}.ahu-dot.unk{color:#484f58}.mode-badge{font-size:calc(9px * var(--fs,1.3));font-weight:700;letter-spacing:0.07em;text-transform:uppercase;padding:2px 7px;border-radius:4px;white-space:nowrap}.mode-badge.cool{background:rgba(56,189,248,0.15);color:#38bdf8}.mode-badge.heat{background:rgba(246,195,68,0.15);color:#fbbf24}.temp-warm td{color:rgba(246,195,68,0.9)!important}.temp-cool td{color:rgba(56,189,248,0.85)!important}.valve-cell{display:flex;align-items:center;gap:7px}.valve-bar{width:56px;height:5px;border-radius:3px;background:rgba(255,255,255,0.08);flex-shrink:0}.valve-fill{height:100%;border-radius:3px;background:var(--primary-bright);transition:width 0.4s}.valve-fill.high{background:#fbbf24}.tsm-heatmap{display:flex;height:12px;border-radius:3px;overflow:hidden;border:1px solid var(--border)}.tsm-heatmap-seg{flex:1;transition:background 0.4s}.floor-tab-bar{display:flex;gap:4px;margin-bottom:12px}.floor-tab-btn{padding:5px 16px;font-size:calc(12px * var(--fs,1.3));font-weight:600;color:var(--text-faint);background:transparent;border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:background 0.15s,color 0.15s}.floor-tab-btn:hover{color:var(--text)}.floor-tab-btn.active{background:var(--accent,#60a5fa);color:#0b0d10;border-color:var(--accent,#60a5fa)}.sp-value-live{color:#38bdf8;font-weight:600}.oss-table-wrap{overflow-x:auto;border-radius:6px;border:1px solid var(--border)}.oss-schedule-table{width:100%;border-collapse:collapse;font-size:calc(12px * var(--fs,1.3))}.oss-schedule-table thead tr{background:rgba(96,165,250,0.08);border-bottom:1px solid var(--border)}.oss-schedule-table th{padding:8px 10px;text-align:left;font-weight:600;color:var(--text-muted);white-space:nowrap}.oss-schedule-table td{padding:7px 10px;border-bottom:1px solid rgba(255,255,255,0.04);color:var(--text);white-space:nowrap}.oss-schedule-table tbody tr:last-child td{border-bottom:none}.oss-schedule-table tbody tr:hover{background:rgba(96,165,250,0.05)}.oss-row-measured td{background:rgba(96,165,250,0.07);color:var(--primary-bright,#60a5fa)}.oss-row-today td{background:rgba(96,165,250,0.13);font-weight:600;border-top:1px solid rgba(96,165,250,0.4);border-bottom:1px solid rgba(96,165,250,0.4)}.oss-row-measured.oss-row-today td{background:rgba(96,165,250,0.18)}.oss-date,.oss-time{font-variant-numeric:tabular-nums}.oss-time{font-weight:600;color:var(--primary-bright,#60a5fa);font-size:calc(13px * var(--fs,1.3))}.oss-proxy{color:var(--text-faint)}.oss-indoor{color:#fbbf24;font-variant-numeric:tabular-nums}.oss-source{color:var(--text-faint);font-size:calc(11px * var(--fs,1.3));text-transform:capitalize}.ap-mini-chart{display:block;margin:4px 0 2px}.ap-chart-caption{font-size:calc(10px * var(--fs,1.3));color:var(--text-faint);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:2px}.ap-chart-basis{font-size:calc(11px * var(--fs,1.3));color:var(--text-muted,var(--text-faint));margin-top:2px}.ap-toggle.locked{opacity:0.4;cursor:not-allowed}.ap-toggle.locked input{cursor:not-allowed}.oss-quality-badge{display:inline-block;padding:2px 6px;border-radius:3px;font-size:calc(10px * var(--fs,1.3));font-weight:600;text-transform:capitalize}.oss-q-measured{background:rgba(96,165,250,0.2);color:#60a5fa}.oss-q-high{background:rgba(96,165,250,0.12);color:#60a5fa}.oss-q-partial{background:rgba(255,190,80,0.15);color:#ffc950}.oss-q-rough{background:rgba(255,150,50,0.15);color:#ff9a50}.oss-q-nodata{background:rgba(255,255,255,0.05);color:var(--text-faint)}.ap-master-card{display:flex;align-items:center;gap:22px;padding:20px 26px;margin-bottom:18px;border-radius:14px;border:1.5px solid var(--border);background:var(--surface,rgba(255,255,255,0.02));transition:border-color 0.3s,background 0.3s}.ap-master-card.master-autopilot{border-color:rgba(96,165,250,0.55);background:rgba(96,165,250,0.07);box-shadow:0 0 0 1px rgba(96,165,250,0.12)}.ap-master-card.master-hybrid{border-color:rgba(246,195,68,0.55);background:rgba(246,195,68,0.06)}.master-text{flex:1;min-width:0}.master-title{font-size:calc(17px * var(--fs,1.3));font-weight:700;color:var(--text);letter-spacing:0.01em}.master-sub{font-size:calc(13px * var(--fs,1.3));color:var(--text-muted);margin-top:3px}.master-brain{flex-shrink:0;display:flex;color:var(--text-faint)}.master-brain.autopilot{color:var(--accent,#60a5fa);animation:brain-pulse 2.6s ease-in-out infinite}.master-brain.hybrid{color:var(--warning,#fbbf24);animation:brain-pulse 3.4s ease-in-out infinite}@keyframes brain-pulse{0%,100%{opacity:0.55;transform:scale(0.96);filter:drop-shadow(0 0 0 transparent)}50%{opacity:1;transform:scale(1.04);filter:drop-shadow(0 0 6px currentColor)}}.mode-seg{display:flex;gap:3px;padding:4px;border-radius:12px;background:var(--bg-elev,rgba(0,0,0,0.22));border:1px solid var(--border);flex-shrink:0}.mode-seg-btn{padding:11px 24px;font-size:calc(14.5px * var(--fs,1.3));font-weight:700;white-space:nowrap;letter-spacing:0.01em;color:var(--text-muted);background:transparent;border:none;border-radius:9px;cursor:pointer;transition:background 0.15s,color 0.15s}.mode-seg-btn:hover{color:var(--text)}.mode-seg-btn.active-manual{background:rgba(255,255,255,0.08);color:var(--text)}.mode-seg-btn.active-hybrid{background:rgba(246,195,68,0.16);color:var(--warning,#fbbf24)}.mode-seg-btn.active-autopilot{background:var(--accent,#60a5fa);color:#0b0d10}.fcu-zone-table th{text-align:left}.fcu-zone-table .fcu-zone-head{text-align:center;font-size:calc(10px * var(--fs,1.3));letter-spacing:.03em;color:var(--text-muted);border-bottom:1px solid var(--border)}.fcu-zone-table .fcu-sub-head th{font-size:calc(10px * var(--fs,1.3));color:var(--text-faint);font-weight:600}.fcu-zone-table td,.fcu-zone-table .fcu-sub-head th{white-space:nowrap}.fcu-zone-table .fcu-zone-sep{border-left:1px solid var(--border)}.bulk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.bulk-block{padding:14px;border:1px solid var(--border);border-radius:8px;background:var(--bg-elev,rgba(0,0,0,0.12))}.bulk-title{font-size:calc(12px * var(--fs,1.3));font-weight:700;color:var(--text);margin-bottom:10px;display:flex;align-items:center;gap:8px}.bulk-count{font-size:calc(11px * var(--fs,1.3));font-weight:600;color:var(--text-faint);background:rgba(255,255,255,0.05);padding:1px 7px;border-radius:10px}.bulk-row{display:flex;gap:8px;align-items:center}.bulk-row .form-input{width:auto;flex:1;min-width:0;padding:7px 10px}.bulk-row .btn{white-space:nowrap;flex-shrink:0}.bulk-ind-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:6px;padding-top:10px}.bulk-ind-row{display:flex;align-items:center;gap:8px}.bulk-ind-label{flex:1;min-width:0;font-size:calc(12px * var(--fs,1.3));color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bulk-ind-tag{font-size:calc(9px * var(--fs,1.3));color:var(--text-faint);background:rgba(255,255,255,0.05);padding:1px 5px;border-radius:3px}.bulk-ind-input{width:72px!important;flex-shrink:0;padding:5px 8px}.override-open{margin-top:14px;padding-top:12px;border-top:1px dashed var(--border)}.override-open-label{display:flex;align-items:center;gap:6px;font-size:calc(11px * var(--fs,1.3));font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--text-muted);margin-bottom:10px}.oss-override-form{display:flex;flex-direction:column;gap:12px}.ovr-day{display:flex;align-items:center;gap:12px}.ovr-day-label{width:64px;flex-shrink:0;font-size:calc(12px * var(--fs,1.3));font-weight:600;color:var(--text-muted)}.ovr-day-fields{display:flex;gap:12px;flex-wrap:wrap;flex:1}.ovr-locked{font-size:calc(11px * var(--fs,1.3));color:var(--text-faint);font-style:italic;align-self:center}.ovr-actions{display:flex;gap:8px}.override-input[type="time"]{min-width:130px}.override-input{color-scheme:dark}.bulk-ind{display:flex;gap:8px;align-items:center;padding-top:10px;flex-wrap:wrap}.bulk-ind-select{flex:1;min-width:220px}.bulk-ind .form-input[type="number"]{width:90px;flex-shrink:0}.bulk-ind .btn{flex-shrink:0}.csv-btn{display:inline-flex;align-items:center;gap:6px;font-weight:600;white-space:nowrap;padding:8px 14px}.csv-btn svg{flex-shrink:0}.ap-global-release-btn{margin-left:10px;white-space:nowrap}.eq-chp-units{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:10px;padding:0 14px 14px}.eq-chp-unit{border:1px solid var(--border);border-radius:8px;background:var(--bg);overflow:hidden}.eq-chp-unit-head{display:flex;justify-content:space-between;gap:8px;padding:9px 11px;border-bottom:1px solid var(--border);font-size:calc(12px * var(--fs,1.3))}.eq-chp-unit-head strong{color:var(--text)}.eq-chp-unit-head span{color:var(--text-faint);font-size:calc(10px * var(--fs,1.3))}.eq-chp-pair{padding:10px 11px;border-bottom:1px solid var(--border)}.eq-chp-pair:last-child{border-bottom:none}.eq-chp-pair.mismatch{background:rgba(246,195,68,0.08);box-shadow:inset 3px 0 0 var(--warning)}.eq-chp-pair.incomplete{background:rgba(248,81,73,0.07);box-shadow:inset 3px 0 0 var(--danger)}.eq-chp-pair-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:calc(11px * var(--fs,1.3))}.eq-chp-pair-head strong{color:var(--text)}.eq-chp-pair-summary{color:var(--text-faint);text-align:right;font-size:calc(10px * var(--fs,1.3))}.eq-chp-pair.mismatch .eq-chp-pair-summary{color:var(--warning)}.eq-chp-pair.incomplete .eq-chp-pair-summary{color:var(--danger)}.eq-chp-role-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.eq-chp-role{min-width:0;padding:7px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.eq-chp-role-title{color:var(--text-faint);font-size:calc(10px * var(--fs,1.3));margin-bottom:4px}.eq-chp-role-state{display:flex;align-items:center;gap:6px;color:var(--text);font-size:calc(11px * var(--fs,1.3))}.eq-chp-point,.eq-chp-time{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-faint);font-size:calc(9px * var(--fs,1.3));margin-top:4px}.eq-chp-issues{margin:0 14px 14px;padding:8px 10px;border:1px solid rgba(248,81,73,0.3);border-radius:6px;color:var(--danger);font-size:calc(10px * var(--fs,1.3));line-height:1.5}#live-b1-chiller{border-bottom:1px solid var(--border)}#live-b1-chiller .eq-chp-card.card{margin-top:0;border:none;border-radius:0;background:transparent}#live-b1-chiller .eq-chp-units{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 10px 10px}@media (max-width:900px){.eq-chp-role-grid,#live-b1-chiller .eq-chp-units{grid-template-columns:1fr}}.app-logo-img{height:46px;width:auto;display:block}.pressure-alarm-banner{position:fixed;top:0;left:0;right:0;z-index:9998;display:flex;align-items:center;justify-content:center;gap:10px;padding:11px 18px;font-size:calc(15px * var(--fs,1.3));font-weight:700;color:#fff;letter-spacing:0.2px;text-align:center;border-bottom:2px solid #fecaca;animation:pab-flash 0.9s steps(1,end) infinite;box-shadow:0 2px 18px rgba(220,38,38,0.55)}.pressure-alarm-banner .pab-ico{font-size:calc(18px * var(--fs,1.3));line-height:1}.pressure-alarm-banner .pab-txt{text-shadow:0 1px 2px rgba(0,0,0,0.35)}@keyframes pab-flash{0%{background:#dc2626}50%{background:#7f1d1d}100%{background:#dc2626}}.exec-alarm-banner{position:fixed;top:0;left:0;right:0;z-index:9997;max-height:40vh;overflow-y:auto;background:#7c2d12;border-bottom:2px solid #f97316;box-shadow:0 2px 18px rgba(124,45,18,0.55);color:#fff;font-size:calc(13px * var(--fs,1.3))}.exec-alarm-banner .eab-hd{padding:8px 16px;font-weight:700;font-size:calc(13px * var(--fs,1.3));background:#9a3412;border-bottom:1px solid rgba(255,255,255,0.15)}.exec-alarm-banner .eab-list{padding:6px 10px;display:flex;flex-direction:column;gap:6px}.exec-alarm-banner .eab-item{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:7px 10px;border-radius:8px;background:rgba(0,0,0,0.18)}.exec-alarm-banner .eab-item-main{flex:1;min-width:0}.exec-alarm-banner .eab-detail{font-size:calc(11.5px * var(--fs,1.3));color:#fed7aa;margin-top:2px}.exec-alarm-banner .eab-resv{font-size:calc(11.5px * var(--fs,1.3));color:#ffedd5;margin-top:2px}.eab-ack-btn{flex:0 0 auto;padding:6px 10px;border-radius:7px;font-size:calc(11.5px * var(--fs,1.3));font-weight:600;cursor:pointer;white-space:nowrap}.exec-alarm-banner .eab-ack-btn{background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.35);color:#fff}.exec-alarm-banner .eab-ack-btn:hover{background:rgba(255,255,255,0.22)}.exec-alarm-banner .eab-ack-btn--plain{background:transparent;border:1px solid rgba(255,255,255,0.2);color:#fed7aa}.exec-alarm-banner .eab-ack-btn--plain:hover{background:rgba(255,255,255,0.1)}.geo-toolbar{display:flex;gap:8px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.geo-status-chip{margin-left:auto;font-size:calc(12px * var(--fs,1.3));padding:4px 12px;border-radius:20px;border:1px solid var(--border);color:var(--text-muted)}.geo-status-chip.ok{color:var(--primary-bright);border-color:rgba(96,165,250,0.4);background:var(--primary-dim)}.geo-status-chip.warn{color:var(--warning);border-color:rgba(246,195,68,0.4);background:var(--warning-dim)}.geo-status-chip.bad{color:var(--danger);border-color:rgba(248,81,73,0.4);background:var(--danger-dim)}.geo-note{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;font-size:calc(13px * var(--fs,1.3));color:var(--text-muted);margin-bottom:14px;line-height:1.5}.geo-note.warn{border-color:rgba(246,195,68,0.4);color:var(--warning)}.geo-meta{font-size:calc(12px * var(--fs,1.3));color:var(--text-faint);margin-left:8px}.geo-grp-title{font-size:calc(12px * var(--fs,1.3));color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;margin:20px 0 10px;display:flex;align-items:center;gap:7px}.geo-grp-title::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--text-faint);flex:none}.geo-grp-loop-t::before{background:#ff2334}.geo-grp-chw-t::before{background:#38bdf8}.geo-grp-energy-t::before{background:#fbbf24}.geo-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.geo-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:13px 14px;cursor:pointer;transition:border-color .15s,background .15s,transform .15s,box-shadow .15s}.geo-card:hover{background:var(--surface-hover);border-color:rgba(96,165,250,0.4);transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,0.25)}.geo-card.selected{border-color:var(--primary-bright);background:var(--primary-dim)}.geo-card-lbl{font-size:calc(11px * var(--fs,1.3));color:var(--text-muted);min-height:28px;line-height:1.35}.geo-card-val{font-size:calc(23px * var(--fs,1.3));font-weight:650;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.3px}.geo-card-unit{font-size:calc(11px * var(--fs,1.3));color:var(--text-muted);margin-left:4px;font-weight:400}.geo-grp-loop{border-left:3px solid #ff2334}.geo-grp-chw{border-left:3px solid #38bdf8}.geo-grp-energy{border-left:3px solid #fbbf24}.geo-btn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.geo-btn{padding:11px 12px;font-size:calc(13px * var(--fs,1.3));color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:center;transition:background .2s,border-color .2s,transform .15s,box-shadow .15s}.geo-btn:hover{border-color:var(--text-faint);transform:translateY(-1px);box-shadow:0 3px 10px rgba(0,0,0,0.22)}.geo-btn .geo-btn-badge{display:block;font-size:calc(11px * var(--fs,1.3));color:var(--text-muted);margin-top:4px}.geo-btn.on{background:rgba(239,68,68,0.18);border-color:#ef4444}.geo-btn.on .geo-btn-badge{color:#ef4444;font-weight:600}.geo-btn.off{background:var(--surface)}.geo-btn.unk{opacity:.75}.geo-btn-readonly{cursor:default}.geo-btn-readonly:hover{transform:none;box-shadow:none;border-color:var(--border)}.geo-al-table td{vertical-align:middle}.geo-al-row-active{background:rgba(248,81,73,0.10)}.geo-al-badge{font-size:calc(11px * var(--fs,1.3));font-weight:600;white-space:nowrap}.geo-al-badge.active{color:var(--danger)}.geo-al-badge.clear{color:var(--primary)}.geo-al-badge.unk{color:var(--text-faint);font-weight:500}.geo-dlg{margin-bottom:10px}.geo-dlg-title{font-size:calc(13px * var(--fs,1.3));font-weight:600;margin-bottom:8px}.geo-dlg-sub{font-size:calc(11px * var(--fs,1.3));color:var(--text-faint);margin-left:8px;font-weight:400}.geo-dlg-row{display:flex;gap:8px;align-items:center;margin-top:6px;flex-wrap:wrap}.geo-dlg-lbl{font-size:calc(12px * var(--fs,1.3));color:var(--text-muted);min-width:160px}.geo-dlg-row input[type=number]{width:100px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px}.geo-real{color:var(--primary-bright)}.geo-hist{margin:14px 0}.geo-hist-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:calc(13px * var(--fs,1.3))}.geo-hist-head span{display:flex;gap:6px}.geo-hist-canvas{height:220px;position:relative}.geo-ev-filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.geo-ev-filters label{font-size:calc(12px * var(--fs,1.3));color:var(--text-muted)}.geo-ev-filters input[type=date],.geo-ev-filters select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px;font-size:calc(13px * var(--fs,1.3))}.geo-day-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.geo-chip{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:4px 12px;font-size:calc(12px * var(--fs,1.3));color:var(--text-muted);cursor:pointer}.geo-chip:hover{border-color:var(--primary);color:var(--text)}.geo-chip.active{border-color:var(--primary-bright);background:var(--primary-dim);color:var(--primary-bright);font-weight:600}.geo-ev-table{width:100%;border-collapse:collapse;font-size:calc(12.5px * var(--fs,1.3))}.geo-ev-table th,.geo-ev-table td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--border)}.geo-ev-table th{color:var(--text-muted);font-weight:500;background:var(--surface)}.geo-ev-table tr:hover td{background:var(--surface-hover)}.geo-on{color:var(--danger);font-weight:600}.geo-off{color:var(--text-faint)}.geo-src-octr{color:var(--primary-bright);font-weight:600}.geo-ev-pager{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:10px}.mfa-key-box{border:1px solid var(--border);border-radius:8px;padding:14px;margin:4px 0 18px;background:rgba(255,255,255,0.02)}.mfa-key-label{font-size:calc(11.5px * var(--fs,1.3));color:var(--text-muted);margin-bottom:8px}.mfa-key{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:calc(15px * var(--fs,1.3));letter-spacing:1.5px;color:var(--text);word-break:break-all;user-select:all;margin-bottom:10px;line-height:1.6}.mfa-open-app{display:block;margin-top:10px;font-size:calc(12px * var(--fs,1.3));color:var(--primary-bright)}.mfa-code-input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:calc(20px * var(--fs,1.3));letter-spacing:6px;text-align:center}.mfa-remember{display:flex;align-items:center;gap:8px;margin:12px 0 4px;font-size:calc(12.5px * var(--fs,1.3));color:var(--text);cursor:pointer}.mfa-remember input{width:15px;height:15px;cursor:pointer}.mfa-remember-hint{margin:0 0 14px}.mfa-backup-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0 14px;padding:14px;border:1px solid var(--border);border-radius:8px;background:rgba(255,255,255,0.02)}.mfa-backup-grid code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:calc(14px * var(--fs,1.3));letter-spacing:1px;color:var(--text);user-select:all}.mfa-backup-actions{display:flex;gap:8px;margin-bottom:6px}@media (max-width:480px){.mfa-backup-grid{grid-template-columns:1fr}}.td-tabbar{margin:16px 0 14px}.td-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.td-pick{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.td-pick label{font-size:calc(13px * var(--fs,1.3));color:var(--text-muted);font-weight:600}.td-pick input[type="date"],.td-pick input[type="month"]{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:7px 10px;font-size:calc(13px * var(--fs,1.3));color-scheme:dark}.td-saved{font-size:calc(12px * var(--fs,1.3));color:var(--text-faint)}.td-actions{display:flex;gap:8px}.td-sheet-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px}.td-sheet{border-collapse:collapse;width:100%;background:var(--surface);font-size:calc(13px * var(--fs,1.3))}.td-sheet th,.td-sheet td{border:1px solid var(--border);padding:0;text-align:center;white-space:nowrap}.td-sheet thead th{background:#1c2432;color:var(--text);font-weight:600;padding:7px 8px;position:sticky;top:0}.td-sheet .td-rh{background:#1a212d;color:var(--text);font-weight:600;padding:6px 10px}.td-sheet .td-inner,.td-sheet .td-no{color:var(--text-muted);padding:6px 8px}.td-outdoor .td-rh{background:#24303f}.td-in{width:100%;box-sizing:border-box;border:0;outline:0;background:transparent;color:var(--text);text-align:center;padding:7px 6px;font-size:calc(12.5px * var(--fs,1.3));font-family:inherit}.td-in.td-in-wide{text-align:center}select.td-in.td-in-kind{-webkit-appearance:none;appearance:none;cursor:pointer;font-weight:600;text-align:center;width:auto;max-width:100%;padding-right:15px;background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 9px) calc(50% + 1px),calc(100% - 5px) calc(50% + 1px);background-size:4px 4px,4px 4px;background-repeat:no-repeat}select.td-in.td-in-kind:hover{background-color:rgba(255,255,255,0.04)}select.td-in.td-in-kind option{background:var(--surface);color:var(--text);font-weight:500}.td-in:focus{background:rgba(82,183,136,0.14);box-shadow:inset 0 0 0 1px var(--primary)}.td-measure td{min-width:62px}.td-measure td:nth-child(7),.td-measure td:nth-child(8){min-width:130px}.td-complaint th,.td-complaint td{min-width:74px}.td-complaint td:nth-child(9),.td-complaint td:nth-child(13),.td-complaint td:nth-child(14){min-width:150px}.td-complaint .td-in{text-align:center}.td-remark{margin-top:14px}.td-remark label{display:block;font-size:calc(13px * var(--fs,1.3));color:var(--text-muted);font-weight:600;margin-bottom:6px}.td-remark textarea{width:100%;box-sizing:border-box;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:10px 12px;font-family:inherit;font-size:calc(13px * var(--fs,1.3));resize:vertical}.td-addrow{margin-top:12px}.td-upload{cursor:pointer;display:inline-flex;align-items:center}.td-upload input[type="file"]{display:none}.td-in.td-cell-sel{background:rgba(82,183,136,0.28);box-shadow:inset 0 0 0 1px var(--primary-bright)}.td-sheet td.td-rowdel{padding:0;text-align:center}.td-del-btn{width:18px;height:18px;padding:0;line-height:1;font-size:13px;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text-faint);cursor:pointer;transition:all .12s}.td-del-btn:hover{color:var(--danger);border-color:rgba(248,81,73,0.5);background:var(--danger-dim)}.td-hint{margin-top:10px;font-size:calc(12px * var(--fs,1.3));color:var(--text-faint)}.td-picker{display:inline-flex;align-items:center;gap:4px}.td-step{display:inline-flex;align-items:center;justify-content:center;width:30px;height:32px;padding:0;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-muted);cursor:pointer;transition:all .12s}.td-step:hover{color:var(--text);border-color:var(--primary);background:var(--surface-hover)}.td-in::placeholder{color:var(--text-faint);font-size:0.86em;opacity:1}.td-rowdel-h{font-size:calc(11px * var(--fs,1.3));color:var(--text-faint)}.td-sheet th.td-col-h{position:relative}.td-col-resizer{position:absolute;top:0;right:-4px;width:9px;height:100%;cursor:col-resize;z-index:3;user-select:none}.td-col-resizer:hover{background:var(--primary-bright);opacity:0.5}body.td-resizing,body.td-resizing *{cursor:col-resize!important;user-select:none!important}.td-in.td-nav{caret-color:transparent;background:rgba(82,183,136,0.18);box-shadow:inset 0 0 0 2px var(--primary-bright)}.td-sheet thead th.td-grp-recv{background:#21374f}.td-sheet thead th.td-grp-hand{background:#243f2e}.td-modal-ov{position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:1000;display:flex;align-items:center;justify-content:center}.td-modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:22px 24px;width:min(460px,92vw);box-shadow:0 12px 40px rgba(0,0,0,0.5)}.td-modal h3{font-size:calc(16px * var(--fs,1.3));font-weight:700;margin-bottom:8px}.td-modal p{font-size:calc(12.5px * var(--fs,1.3));color:var(--text-muted);margin-bottom:16px;line-height:1.5}.td-modal-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:20px}.td-modal-row label{font-size:calc(12px * var(--fs,1.3));color:var(--text-muted);font-weight:600}.td-modal-row input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:7px 10px;font-size:calc(13px * var(--fs,1.3));color-scheme:dark}.td-modal-tilde{color:var(--text-faint)}.td-modal-actions{display:flex;justify-content:flex-end;gap:8px}.td-sheet th.td-rowdel-h{padding-left:2px;padding-right:2px}.td-modal-field{display:grid;grid-template-columns:3.2rem 1fr;align-items:center;gap:10px;margin-bottom:10px}.td-modal-field:last-of-type{margin-bottom:20px}.td-modal-field label{font-size:calc(12.5px * var(--fs,1.3));color:var(--text-muted);font-weight:600}.td-modal-field input{width:100%;box-sizing:border-box;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px;font-size:calc(13px * var(--fs,1.3));color-scheme:dark}.td-fbar{display:flex;align-items:center;gap:8px;margin-bottom:12px}.td-fbar-lbl{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-faint);font-style:italic;font-size:calc(13px * var(--fs,1.3))}.td-fbar-input{flex:1;box-sizing:border-box;background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 12px;font-size:calc(13px * var(--fs,1.3));font-family:inherit}.td-fbar-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.uc-tabbar{margin:16px 0 14px}.uc-toolbar{margin-bottom:14px}.uc-sheet{max-width:640px}.uc-sheet th,.uc-sheet td{padding:7px 16px;text-align:center;font-variant-numeric:tabular-nums}.uc-sheet thead th{background:#1c2432;font-weight:600}.uc-sheet .uc-d{text-align:left;white-space:nowrap;background:#1a212d}.uc-wd{color:var(--text-faint);font-weight:400;font-size:0.9em}.uc-sheet tfoot .uc-total th,.uc-sheet tfoot .uc-total td{background:#24303f;font-weight:700}.uc-gas{max-width:1180px}.uc-gas-title{font-size:calc(17px * var(--fs,1.3));font-weight:800;letter-spacing:0.02em;text-align:center;padding:10px;border:2px solid var(--border);border-radius:8px;margin-bottom:14px}.uc-gas-head{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px;margin-bottom:16px;font-size:calc(13px * var(--fs,1.3));color:var(--text)}.uc-gas-head b{color:var(--text-muted);font-weight:600}.uc-bignum{font-weight:800;color:var(--primary-bright);font-variant-numeric:tabular-nums}.uc-gas-sec{font-weight:700;margin:18px 0 8px;color:var(--text)}.uc-gas-sec-in{color:var(--warning)}.uc-note{font-weight:400;font-size:0.85em;color:var(--text-faint)}.uc-lookup-btn{margin-left:10px;padding:4px 12px;font-size:12px;font-weight:600;border:1px solid var(--primary);color:var(--primary);background:rgba(82,183,136,0.10);border-radius:6px;cursor:pointer;vertical-align:middle}.uc-lookup-btn:hover{background:rgba(82,183,136,0.20)}.uc-lookup-btn:disabled{opacity:0.5;cursor:default}.uc-gsheet{font-size:calc(12px * var(--fs,1.3));min-width:720px}.uc-gsheet th,.uc-gsheet td{padding:0;text-align:right;font-variant-numeric:tabular-nums}.uc-gsheet thead th{text-align:center;padding:7px 8px;white-space:nowrap}.uc-gsheet .td-rh{text-align:left;background:#1a212d;white-space:nowrap}.uc-gsheet .td-in{text-align:right}.uc-gsheet .uc-num{padding:7px 10px}.uc-ro{background:rgba(255,255,255,0.015);color:var(--text)}.uc-hl{background:rgba(224,164,88,0.16);font-weight:700}.uc-meta{text-align:center;color:var(--text-muted);padding:6px 10px}.uc-gdetail{min-width:1080px}.uc-gdetail .td-in{min-width:62px}.uc-settle{min-width:1080px}.uc-settle .uc-tgrp{vertical-align:middle}.uc-settle .uc-tgrp-sum{display:block;margin-top:3px;font-size:0.85em;font-weight:600;color:var(--primary)}.uc-settle .uc-floorname{white-space:nowrap}.uc-settle tbody.uc-bizbox>tr:first-child>*{border-top:2px solid var(--text)}.uc-settle tbody.uc-bizbox>tr:last-child>*{border-bottom:2px solid var(--text)}.uc-settle tbody.uc-bizbox>tr>*:last-child{border-right:2px solid var(--text)}.uc-settle tbody.uc-bizbox .uc-tgrp,.uc-settle tbody.uc-bizbox>tr.uc-total>th:first-child{border-left:2px solid var(--text)}.uc-settle .uc-grand>*{border-top:2px solid var(--text);font-weight:700}.uc-hw-cols{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap;margin-top:4px}.uc-hw-left,.uc-hw-right{flex:1 1 460px;min-width:0}.uc-salecomm .uc-sc-sec{font-weight:600;color:var(--text);margin:14px 0 4px;font-size:0.92em}.uc-salecomm .uc-sc-sec:first-of-type{margin-top:6px}.uc-sc{min-width:440px;font-size:12px}.uc-sc .uc-left{text-align:left}.uc-settle .uc-left{min-width:128px}.uc-settle .uc-memo{text-align:left;color:var(--text-muted);white-space:normal;min-width:190px;padding:6px 10px;line-height:1.25;font-size:0.92em}.uc-gsheet tfoot .uc-total th,.uc-gsheet tfoot .uc-total td{background:#24303f;font-weight:800;padding:8px 10px}.uc-gsheet tfoot .uc-total .uc-num{text-align:right}.uc-gasbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px}.uc-monthlbl{min-width:108px;text-align:center;font-weight:700;font-size:calc(14px * var(--fs,1.3))}.uc-periodbox{display:flex;align-items:center;gap:8px}.uc-plabel{color:var(--text-muted);font-size:calc(12px * var(--fs,1.3))}.uc-pdate{background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:5px 8px;font-size:calc(12px * var(--fs,1.3));font-family:inherit;color-scheme:dark}.uc-savemark{margin-left:auto;color:var(--text-faint);font-size:calc(11.5px * var(--fs,1.3))}.uc-chbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.uc-modetog{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}.uc-modebtn{background:var(--surface);border:0;color:var(--text-muted);padding:7px 12px;cursor:pointer;font-size:calc(12px * var(--fs,1.3));font-family:inherit}.uc-modebtn + .uc-modebtn{border-left:1px solid var(--border)}.uc-modebtn.on{background:rgba(82,183,136,0.16);color:var(--primary-bright);font-weight:700}.uc-chgrid{display:grid;grid-template-columns:minmax(320px,480px) 1fr;gap:16px;align-items:start}@media (max-width:900px){.uc-chgrid{grid-template-columns:1fr}}.uc-drow{cursor:pointer}.uc-drow:hover td,.uc-drow:hover th{background:rgba(82,183,136,0.08)}.uc-rowsel td,.uc-rowsel th.uc-d{background:rgba(82,183,136,0.18)!important}.uc-addmark{color:var(--warning);font-weight:800}.uc-chright{border:1px solid var(--border);border-radius:10px;padding:12px 14px;background:var(--surface);min-height:160px}.uc-panel-empty{color:var(--text-faint);padding:40px 12px;text-align:center}.uc-panel-hd{font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:10px}.uc-panel-sub{color:var(--text-muted);font-weight:400;font-size:0.85em}.uc-panel-note{color:var(--text-faint);font-size:calc(11px * var(--fs,1.3));margin-top:8px;line-height:1.4}.uc-fsheet{max-width:460px}.uc-fsheet th,.uc-fsheet td{padding:5px 12px;text-align:center;font-variant-numeric:tabular-nums}.uc-fsheet thead th{background:#1c2432}.uc-floorname{text-align:left;background:#1a212d;cursor:pointer;white-space:nowrap}.uc-floorname:hover{color:var(--primary-bright)}.uc-addin{max-width:62px;text-align:center}.uc-fsheet .uc-tenant{text-align:left;color:var(--text-muted);white-space:nowrap;padding:5px 12px;font-size:0.95em}.uc-fsheet .uc-ratio{color:var(--primary-bright);font-weight:700}.uc-ratioin{max-width:64px;text-align:center}.ec-inp{width:100%;box-sizing:border-box;background:transparent;border:0;border-radius:0;color:#6ea8ff;padding:5px 7px;font-size:calc(13px * var(--fs,1.3));font-family:inherit;text-align:center;color-scheme:dark}.ec-inp:focus{outline:none}.ec-period-row .ec-inp{width:132px;text-align:left;flex:0 0 auto}.ec-contract-head .ec-inp:not(.ec-inp-label){width:96px;text-align:left;flex:0 0 auto}.ec-contract-head .ec-inp-label{flex:1 1 100%}.ec-inp.ec-reading{width:100%;text-align:right}.ec-inp.ec-reading.ec-reading-auto{color:var(--text)}.ec-inp.ec-reading.ec-reading-manual{color:#ff8f8f}.ec-inp-label{width:100%;text-align:left;font-weight:700;color:var(--text)}.td-sheet td:focus-within{box-shadow:inset 0 0 0 2px var(--primary-bright);position:relative;z-index:2}.ec-inp-filled{color:var(--danger)!important;font-weight:700}.ec-meter-select{color:var(--text)}[data-util-theme="light"] .ec-page .ec-inp{color:#1d4ed8}[data-util-theme="light"] .ec-page .ec-inp.ec-reading.ec-reading-auto,[data-util-theme="light"] .ec-page .ec-inp-label{color:#111}[data-util-theme="light"] .ec-page .ec-inp.ec-reading.ec-reading-manual{color:#dc2626}.uc-page .td-in{color:#6ea8ff}[data-util-theme="light"] .uc-page .td-in{color:#1d4ed8}.ec-billphoto-btn{border-color:rgba(82,183,136,0.5)}.ec-billclear-btn{border-color:rgba(248,113,113,0.4);color:var(--danger)}.ec-billclear-btn:hover{border-color:var(--danger)}.ec-hub-intro{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:8px;padding:10px 14px;margin-bottom:16px;color:var(--text-muted);font-size:calc(12px * var(--fs,1.3));line-height:1.6}.ec-hub-sec-title{font-weight:700;color:var(--text);margin:20px 0 10px;font-size:calc(13px * var(--fs,1.3))}.ec-hub-list{display:flex;flex-direction:column;gap:8px}.ec-hub-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 14px}.ec-hub-item-main{min-width:0}.ec-hub-why{color:var(--text-muted);font-size:calc(11px * var(--fs,1.3));line-height:1.5;margin-top:3px}.ec-billnote{font-size:calc(11px * var(--fs,1.3));color:var(--text-muted);margin-left:4px}.ec-period-row{display:flex;align-items:center;gap:8px;margin-bottom:14px;color:var(--text-muted)}.ec-contracts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,780px),1fr));gap:16px;align-items:start}.ec-contract{border:1px solid var(--border);border-radius:10px;padding:12px 14px;background:var(--surface);min-width:0;overflow-x:auto}.ec-contract-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.ec-band-table{margin-bottom:10px}.ec-band-table td,.ec-band-table th{padding:8px 12px}.ec-charge-table td{padding:8px 12px}.td-sheet.ec-eps th,.td-sheet.ec-eps td,.td-sheet.ec-chh th,.td-sheet.ec-chh td{padding:9px 14px}.td-sheet.ec-switchgear th,.td-sheet.ec-switchgear td{padding:7px 10px}.ec-num{text-align:left;font-variant-numeric:tabular-nums}.ec-subtotal{text-align:right;color:var(--text-muted);font-size:0.9em}.ec-emph td,.ec-emph th{background:#1c2432;font-weight:700}.ec-subtotal-row td,.ec-subtotal-row th{background:#1a212d;color:var(--text-muted)}.ec-meter-select{min-width:140px}.ec-colchecks{display:inline-flex;align-items:center;gap:12px}.ec-colcheck{display:inline-flex;align-items:center;gap:5px;color:var(--text-muted);font-size:calc(12px * var(--fs,1.3));cursor:pointer}.ec-colcheck input[disabled]{opacity:0.6;cursor:default}.ec-block-title{margin:20px 0 8px;color:var(--text);font-size:calc(13px * var(--fs,1.3));font-weight:700}.ec-block-title:first-child{margin-top:0}.ec-subtabbar{margin-bottom:14px}.ec-subtabbar2{margin-bottom:0}.ec-hourly-summary{max-width:640px;margin-bottom:20px}.ec-day-pick{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 8px;font-size:calc(13px * var(--fs,1.3));color-scheme:dark;min-width:108px;text-align:center}.ec-switchgear{font-size:calc(11.5px * var(--fs,1.3))}.ec-switchgear th{text-align:left;white-space:nowrap;background:#1a212d}.ec-switchgear-manual{background:rgba(82,183,136,0.08)}.ec-sg-alarm{--sg:#f87171}.ec-sg-warn{--sg:#fbbf24}.ec-sg-check{--sg:#a78bfa}.ec-sg-info{--sg:#7d8fa8}.ec-sg-ok{--sg:#52b788}.ec-sg-na{--sg:#4b5563}.ec-sg-badge{display:inline-block;padding:1px 7px;border-radius:999px;font-size:0.82em;font-weight:700;white-space:nowrap;color:var(--sg);background:color-mix(in srgb,var(--sg) 16%,transparent);border:1px solid color-mix(in srgb,var(--sg) 45%,transparent)}.ec-sg-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--sg);flex:none}.ec-sg-month{margin:12px 0 10px}.ec-sg-month-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:8px;font-size:calc(12px * var(--fs,1.3))}.ec-sg-legend{display:inline-flex;align-items:center;gap:5px;color:var(--text-muted)}.ec-sg-days{display:flex;flex-wrap:wrap;gap:4px}.ec-sg-day{width:38px;padding:4px 0;border-radius:7px;border:1px solid var(--border);background:var(--surface);color:var(--text);display:flex;flex-direction:column;align-items:center;line-height:1.1;cursor:pointer;position:relative}.ec-sg-day span{font-size:calc(12px * var(--fs,1.3));font-weight:600;font-variant-numeric:tabular-nums}.ec-sg-day small{font-size:calc(9px * var(--fs,1.3));color:var(--text-faint)}.ec-sg-day.is-weekend small{color:#f0a0a0}.ec-sg-day::after{content:'';position:absolute;left:6px;right:6px;bottom:2px;height:3px;border-radius:2px;background:var(--sg,transparent)}.ec-sg-day-alarm{--sg:#f87171;background:rgba(248,113,113,0.12)}.ec-sg-day-warn{--sg:#fbbf24}.ec-sg-day-check{--sg:#a78bfa}.ec-sg-day-ok{--sg:#52b788}.ec-sg-day-none{opacity:0.35;cursor:default}.ec-sg-day.is-cur{outline:2px solid var(--text);outline-offset:1px}.ec-sg-panel{border:1px solid var(--border);border-radius:10px;background:var(--surface);margin:10px 0 12px}.ec-sg-panel-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 12px}.ec-sg-collapse{background:none;border:0;color:var(--text-muted);cursor:pointer;font-size:14px;padding:0 2px}.ec-sg-counts{display:inline-flex;flex-wrap:wrap;gap:6px}.ec-sg-count{color:var(--sg);font-size:calc(11.5px * var(--fs,1.3));font-weight:600}.ec-sg-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:4px 18px;padding:0 12px 12px;border-top:1px solid var(--border)}.ec-sg-group h4{margin:12px 0 4px;font-size:calc(11px * var(--fs,1.3));color:var(--text-faint);font-weight:700;letter-spacing:0.02em}.ec-sg-item{border-radius:7px}.ec-sg-item-row{display:flex;align-items:center;gap:8px;padding:5px 6px;font-size:calc(12px * var(--fs,1.3))}.ec-sg-item-row[role="button"]{cursor:pointer}.ec-sg-item-row[role="button"]:hover{background:rgba(255,255,255,0.04);border-radius:7px}.ec-sg-title{color:var(--text)}.ec-sg-sub{margin-left:auto;color:var(--text-muted);font-size:0.9em;text-align:right}.ec-sg-item-alarm .ec-sg-sub,.ec-sg-item-warn .ec-sg-sub,.ec-sg-item-check .ec-sg-sub{color:var(--text);font-weight:600}.ec-sg-caret{color:var(--text-faint);width:10px}.ec-sg-findings{list-style:none;margin:0 0 6px 23px;padding:0;font-size:calc(11.5px * var(--fs,1.3))}.ec-sg-findings li{padding:4px 6px;line-height:1.45;color:var(--text-muted);border-radius:6px}.ec-sg-findings li.ec-sg-basis{color:var(--text-faint);font-size:0.92em}.ec-sg-findings li[role="button"]{cursor:pointer}.ec-sg-findings li[role="button"]:hover{background:rgba(255,255,255,0.05);color:var(--text)}.ec-sg-locate{color:var(--text-faint)}.ec-sg-day-missing{--sg:#f87171;border-style:dashed;border-color:rgba(248,113,113,0.55)}.ec-sg-day-missing span{color:#f0a0a0}.ec-sg-day.is-signed small{color:#52b788;font-weight:800}.ec-sg-daily{border-color:rgba(82,183,136,0.35)}.ec-sg-daily.is-signed{border-color:rgba(82,183,136,0.7)}.ec-sg-progress{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-size:calc(11.5px * var(--fs,1.3));color:var(--text-muted);flex-wrap:wrap}.ec-sg-progress-bar{width:140px;height:6px;border-radius:3px;background:rgba(255,255,255,0.08);overflow:hidden}.ec-sg-progress-bar i{display:block;height:100%;background:#52b788}.ec-sg-steps{border-top:1px solid var(--border)}.ec-sg-step{padding:10px 12px;border-bottom:1px solid var(--border)}.ec-sg-step:last-child{border-bottom:0}.ec-sg-step-h{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-weight:700;font-size:calc(12.5px * var(--fs,1.3));margin-bottom:6px}.ec-sg-stepno{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;border:1px solid var(--border);color:var(--text-muted)}.ec-sg-stepno.is-done{background:#52b788;border-color:#52b788;color:#0d1117}.ec-sg-step-b{padding-left:28px;font-size:calc(12px * var(--fs,1.3));color:var(--text-muted)}.ec-sg-allgood{margin-left:auto}.ec-sg-acks,.ec-sg-manual{list-style:none;margin:0;padding:0}.ec-sg-acks li{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:6px 8px;border-radius:7px;border-left:3px solid rgba(167,139,250,0.6);margin-bottom:4px;background:rgba(255,255,255,0.02)}.ec-sg-acks li.is-done{border-left-color:#52b788;opacity:0.8}.ec-sg-ack-text{flex:1 1 360px;min-width:0;line-height:1.45;color:var(--text)}.ec-sg-ack-text[role="button"]{cursor:pointer}.ec-sg-ack-ctl{display:flex;gap:6px;flex-wrap:wrap}.ec-sg-ack-ctl select,.ec-sg-ack-ctl input,.ec-sg-badmemo,.ec-sg-note{background:var(--bg,#0d1117);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:calc(12px * var(--fs,1.3))}.ec-sg-ack-ctl input{width:180px}.ec-sg-manual{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:2px 18px}.ec-sg-manual li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:5px 6px;border-radius:7px}.ec-sg-manual li.is-bad{background:rgba(248,113,113,0.08)}.ec-sg-manual-l{flex:1 1 200px;color:var(--text)}.ec-sg-seg{display:inline-flex;border:1px solid var(--border);border-radius:7px;overflow:hidden}.ec-sg-segbtn{background:transparent;border:0;color:var(--text-muted);padding:4px 10px;cursor:pointer;font-size:calc(11.5px * var(--fs,1.3))}.ec-sg-segbtn + .ec-sg-segbtn{border-left:1px solid var(--border)}.ec-sg-segbtn:disabled{cursor:default}.ec-sg-seg-good.is-on{background:#52b788;color:#0d1117;font-weight:700}.ec-sg-seg-bad.is-on{background:#f87171;color:#0d1117;font-weight:700}.ec-sg-seg-na.is-on{background:#4b5563;color:#e5e7eb;font-weight:700}.ec-sg-badmemo{flex:1 1 100%}.ec-sg-note{width:100%;box-sizing:border-box;resize:vertical}.ec-sg-signrow{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:8px}.ec-sg-signed{color:#52b788;font-weight:700}#ec-sg-signbtn:disabled{opacity:0.45;cursor:not-allowed}.td-sheet.ec-switchgear td.ec-sg-cell,.td-sheet.ec-switchgear th.ec-sg-cell{box-shadow:inset 0 0 0 2px var(--sgc);background:color-mix(in srgb,var(--sgc) 18%,transparent)}.ec-sg-cell-alarm{--sgc:#f87171}.ec-sg-cell-warn{--sgc:#fbbf24}.ec-sg-cell-check{--sgc:#a78bfa}.ec-sg-cell-info{--sgc:#7d8fa8}.ec-sg-sug{margin-left:4px;color:#c4b5fd;font-size:0.8em;font-weight:700}@keyframes ec-sg-flash{0%,100%{outline-color:transparent}20%,60%{outline-color:#fff}}.ec-sg-flash{outline:3px solid transparent;outline-offset:-1px;animation:ec-sg-flash 1.4s ease 2}.ec-grandtotal{margin-top:14px;text-align:right;font-size:calc(15px * var(--fs,1.3))}.ec-note{color:var(--text-faint);font-size:calc(11px * var(--fs,1.3));margin-top:10px;line-height:1.4}.td-sheet.ec-chh th.ec-sep,.td-sheet.ec-chh td.ec-sep{border-left:3px solid var(--text-muted)}.td-sheet.ec-chh td.ec-total,.td-sheet.ec-chh th.ec-total{background:#1c2432;font-weight:700}.td-sheet.ec-eps .ec-panel-label{text-align:left;white-space:pre-line;padding:9px 14px}.ec-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:0.85em;font-weight:600}.ec-badge-measured{background:rgba(96,165,250,0.16);color:#60a5fa}.ec-badge-manual{background:rgba(82,183,136,0.16);color:var(--primary-bright)}.ec-badge-seed{background:rgba(82,183,136,0.16);color:var(--primary-bright)}.ec-mismatch{color:var(--danger);font-weight:700}.ec-mismatch-note{color:var(--danger);font-size:0.85em}.ec-mismatch-row td,.ec-mismatch-row th{background:rgba(248,81,73,0.06)}.ec-floor-band td,.ec-floor-band th{background:rgba(255,255,255,0.02)}.td-sheet.ec-eps .ec-note-cell{text-align:left;white-space:pre-line;color:var(--text-faint);font-size:0.85em;padding:9px 14px}.uc-editbtn{margin-left:auto;background:rgba(82,183,136,0.14);border:1px solid var(--primary);border-radius:6px;color:var(--primary-bright);padding:6px 16px;cursor:pointer;font-family:inherit;font-size:0.92em;font-weight:700;transition:background 0.15s,box-shadow 0.15s}.uc-editbtn:hover{background:rgba(82,183,136,0.24);box-shadow:0 0 0 3px rgba(82,183,136,0.15)}.uc-editbtn.on{color:#fff;border-color:var(--primary);background:var(--primary)}.uc-editbtn.on:hover{background:var(--primary-bright)}.oss-failover-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px;padding:12px 16px;border-radius:10px;background:rgba(245,158,11,0.12);border:1px solid rgba(245,158,11,0.5)}.oss-failover-txt{color:#fde68a;font-size:0.95em;line-height:1.5;flex:1 1 320px}.oss-failover-txt b{color:#fbbf24}.oss-failover-acts{display:flex;gap:8px;flex-shrink:0}.oss-failover-apply{background:#d97706;color:#fff;border:none;border-radius:7px;font-weight:700;padding:8px 16px;cursor:pointer;font-family:inherit;font-size:0.9em}.oss-failover-apply:hover{background:#f59e0b}.oss-failover-dismiss{background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:7px;padding:8px 14px;cursor:pointer;font-family:inherit;font-size:0.9em}.oss-failover-dismiss:hover{color:var(--text)}.mr-report-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;margin-bottom:12px}.mr-margin-panel{background:var(--mrr-navy,#101a2b);color:#fff;border-radius:10px;padding:14px 18px 16px;margin-bottom:14px;max-width:480px;margin-left:auto}.mr-margin-panel-head{display:flex;align-items:center;justify-content:space-between}.mr-margin-close{background:none;border:none;color:#B6C6DC;font-size:18px;line-height:1;cursor:pointer;padding:2px 4px}.mr-margin-close:hover{color:#fff}.mr-margin-desc{color:#B6C6DC;font-size:0.8rem;margin:6px 0 12px;line-height:1.5}.mr-margin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.mr-margin-field{display:flex;flex-direction:column;gap:4px;font-size:0.8rem;color:#B6C6DC}.mr-margin-field input{width:100%;box-sizing:border-box;padding:6px 8px;border-radius:6px;border:1px solid rgba(255,255,255,0.2);background:rgba(255,255,255,0.06);color:#fff;font-size:0.9rem}.mr-margin-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}@media (max-width:640px){.mr-margin-grid{grid-template-columns:repeat(2,1fr)}}:root{--mrr-navy:#0A1628;--mrr-navy-mid:#1E3A5F;--mrr-navy-light:#2A4A7A;--mrr-elec:#2563EB;--mrr-gas:#0D9488;--mrr-warn:#DC2626;--mrr-hl:#FFF2D3;--mrr-line:#E2E8F0;--mrr-ink:#0F172A;--mrr-mut:#64748B;--mrr-frame:#34517A}.mrr-title{background:#fff;padding:30px}.mrr-title-frame{position:relative;border:2px solid var(--mrr-frame);padding:44px 46px 40px;min-height:900px;display:flex;flex-direction:column}.mrr-corner{display:none}.mrr-title-hero{width:100%;aspect-ratio:16 / 10;max-height:560px;overflow:hidden;border-radius:2px;background:linear-gradient(135deg,#f7dcb4 0%,#ecdfce 30%,#d3e1f0 64%,#aec6e2 100%)}.mrr-title-hero img{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block}.mrr-title-body{text-align:center;margin-top:auto;padding-top:36px}.mrr-title-rule{width:58%;max-width:500px;height:3px;border-radius:2px;background:var(--mrr-frame);margin:0 auto 26px}.mrr-title-h1{font-family:'Noto Serif KR',serif;font-size:2.127rem;font-weight:700;color:var(--mrr-navy);letter-spacing:-0.01em;line-height:1.35;margin:0}.mrr-title-h1 span{color:var(--mrr-frame);font-weight:700}.mrr-title-prep{margin-top:16px;font-size:1.127rem;color:#5B6B82;letter-spacing:0.01em}.mrr-title-period{margin-top:7px;font-size:0.966rem;color:#94A3B8}.mrr-title-logo{margin-top:42px}.mrr-title-logo img{height:42px;opacity:0.9}.mrr-title-date{margin-top:28px;font-family:'JetBrains Mono',ui-monospace,monospace;font-size:1.035rem;color:#5B6B82}@media (max-width:720px){.mrr-title{padding:16px}.mrr-title-frame{padding:24px 20px 28px;min-height:620px}.mrr-title-h1{font-size:1.61rem}}.mrr{background:#F1F5F9;color:var(--mrr-ink);max-width:940px;margin:0 auto;border-radius:12px;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,0.28);font-family:'Noto Sans KR',system-ui,sans-serif}.mrr-mono{font-family:'JetBrains Mono',ui-monospace,'SFMono-Regular',monospace;font-variant-numeric:tabular-nums}.mrr-cover{background:linear-gradient(135deg,var(--mrr-navy) 0%,var(--mrr-navy-mid) 100%);color:#fff;padding:40px 44px 0}.mrr-cover-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:28px}.mrr-eyebrow{font-family:'JetBrains Mono',monospace;font-size:0.828rem;letter-spacing:0.14em;text-transform:uppercase;color:#7DA6E0;margin-bottom:14px}.mrr-cover-title{font-family:'Noto Serif KR',serif;font-size:2.415rem;font-weight:700;line-height:1.2}.mrr-cover-sub{color:#B6C6DC;margin-top:10px;font-size:1.092rem}.mrr-cover-date{text-align:right}.mrr-cover-date-l{font-size:0.805rem;color:#7DA6E0;letter-spacing:0.08em;text-transform:uppercase;margin-bottom:4px}.mrr-cover-date .mrr-mono{font-size:1.092rem;color:#E2E8F0}.mrr-cover-kpis{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,0.16)}.mrr-ck{padding:20px 22px;border-right:1px solid rgba(255,255,255,0.10)}.mrr-ck:last-child{border-right:none}.mrr-ck-l{font-size:0.862rem;color:#9DB4D0;margin-bottom:8px}.mrr-ck-v{font-family:'JetBrains Mono',monospace;font-size:1.955rem;font-weight:600;color:#fff}.mrr-ck-v.mrr-elec{color:#93B8F5}.mrr-ck-v.mrr-gas{color:#5EEAD4}.mrr-ck-u{font-size:0.92rem;font-weight:400;color:#9DB4D0;margin-left:3px}.mrr-ck-s{font-size:0.805rem;color:#7A90AC;margin-top:5px}.mrr-body{padding:34px 44px 40px}.mrr-sec{margin-bottom:40px}.mrr-shead{display:flex;align-items:center;gap:14px;margin-bottom:18px}.mrr-num{flex:none;width:40px;height:40px;border-radius:50%;background:var(--mrr-navy);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-weight:600;font-size:1.15rem}.mrr-stitle{font-family:'Noto Serif KR',serif;font-size:1.61rem;font-weight:700;color:var(--mrr-navy)}.mrr-ssub{font-size:0.943rem;color:var(--mrr-mut);margin-top:2px}.mrr-card{background:#fff;border:1px solid var(--mrr-line);border-radius:10px;overflow:hidden;margin-bottom:18px;break-inside:avoid;page-break-inside:avoid}.mrr-card-head{background:var(--mrr-navy);color:#fff;padding:14px 18px}.mrr-card-head.mid{background:var(--mrr-navy-mid)}.mrr-card-head.teal{background:var(--mrr-gas)}.mrr-card-head h3{font-size:1.127rem;font-weight:700;margin:0}.mrr-card-head p{font-size:0.874rem;color:rgba(255,255,255,0.72);margin:4px 0 0;line-height:1.5}.mrr-card-head.teal p{color:rgba(255,255,255,0.85)}.mrr-card-head-sub{font-size:0.874rem;font-weight:400;color:rgba(255,255,255,0.78);margin-left:8px}.mrr-tw{overflow-x:auto}.mrr-t{width:100%;border-collapse:collapse;font-size:0.977rem}.mrr-t th,.mrr-t td{padding:9px 12px;border-bottom:1px solid var(--mrr-line);word-break:keep-all}.mrr-t thead th{background:#F8FAFC;color:var(--mrr-mut);font-weight:600;font-size:0.851rem;letter-spacing:0.02em;border-bottom:1.5px solid #CBD5E1;white-space:nowrap}.mrr-l{text-align:left}.mrr-r{text-align:right}.mrr-c{text-align:center}.mrr-mut{color:var(--mrr-mut)}.mrr-hl{background:var(--mrr-hl);font-weight:700}.mrr-elec{color:var(--mrr-elec)}.mrr-gas{color:var(--mrr-gas)}.mrr-warn{color:var(--mrr-warn)}.mrr-fuel{font-weight:700;vertical-align:middle;background:#FBFCFE}.mrr-amt{font-size:1.092rem;vertical-align:middle}.mrr-indent{padding-left:26px}.mrr-big{font-size:1.208rem;font-weight:700}.mrr-t-total td{background:#F1F5F9;font-weight:700;border-top:1.5px solid #CBD5E1;border-bottom:none}.mrr-t-total.teal td{background:#F0FDFA}.mrr-t-sub td{background:#FAFBFC;font-weight:600}.mrr-kpigrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.mrr-kpi{background:#fff;border:1px solid var(--mrr-line);border-radius:10px;padding:16px 18px}.mrr-kpi-l{font-size:0.874rem;color:var(--mrr-mut);margin-bottom:8px}.mrr-kpi-v{font-family:'JetBrains Mono',monospace;font-size:1.782rem;font-weight:600;color:var(--mrr-navy)}.mrr-kpi-u{font-size:0.897rem;font-weight:400;color:var(--mrr-mut);margin-left:3px}.mrr-kpi-s{font-size:0.828rem;color:var(--mrr-mut);margin-top:6px}.mrr-kpi.mrr-kpi-hl{background:var(--mrr-hl);border-color:#EBD9A3}.mrr-sec-tight .mrr-kpi,.mrr-kpigrid.mrr-tight .mrr-kpi{padding:9px 14px}.mrr-sec-tight .mrr-kpi-l,.mrr-kpigrid.mrr-tight .mrr-kpi-l{margin-bottom:3px;font-size:0.8rem}.mrr-sec-tight .mrr-kpi-v,.mrr-kpigrid.mrr-tight .mrr-kpi-v{font-size:1.35rem}.mrr-sec-tight .mrr-kpi-u,.mrr-kpigrid.mrr-tight .mrr-kpi-u{font-size:0.8rem}.mrr-sec-tight .mrr-kpi-s,.mrr-kpigrid.mrr-tight .mrr-kpi-s{margin-top:2px;font-size:0.76rem}.mrr-banner{background:var(--mrr-navy);color:#E2E8F0;border-radius:10px;padding:18px 22px;margin-bottom:18px}.mrr-banner p{margin:0;font-size:1.058rem;line-height:1.7}.mrr-banner b{color:#93B8F5}.mrr-banner-hl{background:var(--mrr-hl);color:var(--mrr-navy);font-weight:700;border-radius:4px;padding:1px 6px}.mrr-banner-hl2{color:#5EEAD4;font-weight:700}.mrr-charts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}.mrr-chartcard{background:#fff;border:1px solid var(--mrr-line);border-radius:10px;padding:16px 18px;break-inside:avoid}.mrr-chartcard-t{font-size:0.989rem;font-weight:700;color:var(--mrr-navy);margin-bottom:12px}.mrr-chartcard-t span{font-weight:400;color:var(--mrr-mut);font-size:0.851rem;margin-left:6px}.mrr-chart{position:relative;height:200px}.mrr-tt{position:absolute;z-index:9999;pointer-events:none;opacity:0;transform:translate(-50%,calc(-100% - 14px));transition:opacity 0.12s ease;background:#fff;border-radius:14px;padding:14px 18px;min-width:210px;box-shadow:0 12px 32px rgba(15,23,42,0.18),0 2px 8px rgba(15,23,42,0.08);font-family:'Noto Sans KR',system-ui,sans-serif}.mrr-tt-title{font-size:1.15rem;font-weight:700;color:var(--mrr-navy);margin-bottom:10px}.mrr-tt-row{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:1.092rem}.mrr-tt-dot{width:11px;height:11px;border-radius:50%;flex:none}.mrr-tt-lbl{color:#475569}.mrr-tt-val{font-weight:700;color:var(--mrr-ink);font-variant-numeric:tabular-nums;margin-left:auto}.mrr-tt-unit{color:#64748B;font-size:0.977rem}.mrr-tt-calc{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:0.989rem;color:var(--mrr-navy);background:#F8FAFC;border:1px solid var(--mrr-line);border-radius:6px;padding:6px 9px;margin-bottom:8px;white-space:nowrap}.mr-layout-hint{color:var(--text-muted);font-size:0.82em;margin-left:10px}.mr-print-hint{color:var(--text-muted);font-size:0.8em;cursor:help;border-bottom:1px dashed var(--border)}.mr-secchk{display:inline-flex;align-items:center;gap:10px;margin-left:6px;padding:4px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);font-size:0.82em;cursor:help}.mr-secchk-t{color:var(--text-muted)}.mr-secchk-i{display:inline-flex;align-items:center;gap:5px;color:var(--text);cursor:pointer;white-space:nowrap}.mr-secchk-i input{accent-color:var(--primary);cursor:pointer;margin:0}.mr-span-sel{border:0;background:transparent;padding:0 2px;font-size:1em;color:var(--text);cursor:pointer}.mr-span-sel option{background:var(--surface);color:var(--text)}.mrr-pages{display:flex;flex-direction:column;align-items:center;gap:22px;padding:22px 0;background:#E9EDF2}.mrr-page{position:relative;width:703px;height:1032px;background:#fff;box-shadow:0 3px 16px rgba(15,23,42,0.16),inset 0 0 0 5px #fff,inset 0 0 0 6px rgba(52,81,122,0.28),inset 0 0 0 2px var(--mrr-frame);overflow:hidden}.mrr-page-corner{display:none}.mrr-page::after{content:attr(data-page-label);position:absolute;right:10px;bottom:8px;font-size:10px;color:#B6C0CC;font-family:'JetBrains Mono',monospace}.mrr-page.mrr-page-dragging{overflow:visible;z-index:5}.mrr-page-cover{padding:0}.mrr-page-cover .mrr-title{padding:0;width:100%;height:100%;box-sizing:border-box;background:transparent}.mrr-page-cover .mrr-title-frame{min-height:0;height:100%;box-sizing:border-box;padding:12mm;justify-content:center;border:none}.mrr-page-cover .mrr-title-hero{aspect-ratio:16 / 10;height:auto;max-height:110mm}.mrr-page-cover .mrr-title-body{margin-top:0;padding-top:36px}.mrr-layoutmode .mrr-page:not(.mrr-page-cover)::before{content:'';position:absolute;inset:10mm;border:1px dashed rgba(37,99,235,0.35);pointer-events:none;z-index:1}.mrr-layoutmode .mrr-page-cover::before{content:'';position:absolute;inset:12mm;border:1px dashed rgba(37,99,235,0.35);pointer-events:none;z-index:1}.mrr-layoutmode .mrr-block{position:absolute;box-sizing:border-box;cursor:grab;touch-action:none}.mrr-layoutmode .mrr-block:hover{outline:1px dashed #94A3B8;outline-offset:2px}.mrr-layoutmode .mrr-block.mrr-selected{outline:2px solid var(--mrr-elec);outline-offset:2px;box-shadow:0 0 0 4px rgba(37,99,235,0.12)}.mrr-layoutmode .mrr-block.dragging{cursor:grabbing;outline:2px solid var(--mrr-elec);outline-offset:2px;z-index:20}.mrr-layoutmode .mrr-chartcard{display:flex;flex-direction:column}.mrr-layoutmode .mrr-chartcard .mrr-chart{flex:1;height:auto;min-height:80px}.mrr-layoutmode .mrr-chartcard{padding:8px 10px}.mrr-layoutmode .mrr-chartcard-t{margin-bottom:2px}.mrr-layoutmode .mrr-charts{gap:10px}.mrr-layoutmode .mrr-formula{padding:8px 12px 9px}.mrr-layoutmode .mrr-formula-eq{margin-top:4px;padding:4px 8px;line-height:1.65}.mrr-rz{position:absolute;right:-5px;bottom:-5px;width:16px;height:16px;background:var(--mrr-elec);border:2px solid #fff;border-radius:4px;cursor:nwse-resize;box-shadow:0 1px 4px rgba(0,0,0,0.35);z-index:21;opacity:0;transition:opacity 0.1s}.mrr-layoutmode .mrr-block:hover .mrr-rz,.mrr-layoutmode .mrr-block.mrr-selected .mrr-rz{opacity:1}.mrr-page-del{position:absolute;top:26px;right:8px;width:22px;height:22px;z-index:22;display:flex;align-items:center;justify-content:center;border:1px solid rgba(248,81,73,0.4);border-radius:6px;background:rgba(255,255,255,0.9);color:#dc2626;font-size:15px;line-height:1;cursor:pointer;padding:0;opacity:0.45;transition:opacity 0.12s,background 0.12s}.mrr-page-del:hover{opacity:1;background:#fef2f2}.mrr-page-cover .mrr-page-del{display:none}.mrr-eff{padding:14px 18px 18px}.mrr-eff-row{display:flex;align-items:center;gap:16px;padding:9px 0;border-bottom:1px solid #F1F5F9}.mrr-eff-lbl{flex:1 1 auto;font-size:0.977rem;color:var(--mrr-ink)}.mrr-eff-right{flex:none;display:flex;align-items:center;gap:12px;width:210px}.mrr-eff-bar{flex:1;height:8px;background:#EEF2F7;border-radius:4px;overflow:hidden}.mrr-eff-fill{height:100%;background:linear-gradient(90deg,var(--mrr-navy-light),var(--mrr-elec));border-radius:4px}.mrr-eff-min{font-family:'JetBrains Mono',monospace;font-size:0.92rem;font-weight:600;color:var(--mrr-navy);white-space:nowrap}.mrr-eff-tot{border-bottom:none;border-top:1.5px solid #CBD5E1;margin-top:4px;padding-top:14px}.mrr-eff-tot .mrr-eff-lbl{font-weight:700;color:var(--mrr-navy)}.mrr-eff-tot .mrr-eff-min{font-size:1.092rem;width:auto}.mrr-eff-hl{background:var(--mrr-hl);border-radius:6px;padding:5px 12px}.mrr-formula{padding:11px 14px 12px;background:#F8FAFC;border-top:1px solid var(--mrr-line);font-size:0.839rem;color:var(--mrr-mut);line-height:1.65}.mrr-formula-t{color:var(--mrr-navy)}.mrr-formula-t b{font-weight:700}.mrr-formula-eq{font-family:'JetBrains Mono',monospace;font-size:0.7rem;color:var(--mrr-navy);background:#fff;border:1px solid var(--mrr-line);border-radius:5px;padding:5px 9px;margin:5px 0 0;word-break:keep-all}.mrr-kpit{font-size:0.782rem;table-layout:fixed}.mrr-kpit th,.mrr-kpit td{padding:5px 4px;word-break:keep-all}.mrr-kpit th:first-child,.mrr-kpit td:first-child{padding-left:14px}.mrr-kpit th:last-child,.mrr-kpit td:last-child{padding-right:14px}.mrr-kpit thead th{font-size:0.713rem;padding:5px 2px}.mrr-kpi-yr{text-align:center!important;vertical-align:middle;font-weight:700;color:var(--mrr-navy)}.mrr-kpi-grp{vertical-align:middle;font-weight:600;color:var(--mrr-navy)}.mrr-kpi-itm{font-weight:400;color:var(--mrr-ink)}.mrr-kpit thead th:nth-child(n+3),.mrr-kpit tbody td{text-align:center}.mrr-kpi-on{background:var(--mrr-hl);font-weight:700}.mrr-kpi-sum{background:#F1F5F9;font-weight:700}.mrr-kpit .mrr-t-total th{background:#F1F5F9;font-weight:700;border-top:1.5px solid #CBD5E1;border-bottom:none}.mrr-crit{border:0}.mrr-crit-sum{list-style:none;cursor:pointer;padding:13px 18px;background:var(--mrr-navy-mid);color:#fff;font-size:1.035rem;font-weight:700;display:flex;align-items:center;gap:10px;border-radius:10px}.mrr-crit-sum::-webkit-details-marker{display:none}.mrr-crit-sum::before{content:'▸';font-size:0.92rem}.mrr-crit[open] .mrr-crit-sum::before{content:'▾'}.mrr-crit-sum span{font-size:0.851rem;font-weight:400;color:rgba(255,255,255,0.72)}.mrr-crit-body{display:grid;gap:12px;margin-top:12px}.mrr-crit-b{padding:12px 16px 14px}.mrr-crit-t{font-size:0.92rem;font-weight:700;color:var(--mrr-navy);margin-bottom:6px}.mrr-crit-tbl{font-size:0.828rem}.mrr-crit-tbl th,.mrr-crit-tbl td{padding:5px 9px}.mrr-crit-fx{table-layout:fixed;width:100%}.mrr-crit-evh{white-space:nowrap;text-align:center}.mrr-crit-ev{white-space:nowrap;text-align:center;font-family:'JetBrains Mono',monospace;font-weight:700;color:var(--mrr-navy)}.mrr-crit-ev.mrr-crit-ev-t{white-space:normal;font-family:inherit;font-weight:600;color:var(--mrr-mut)}.mrr-crit-hit td{background:var(--mrr-hl);font-weight:700}.mrr-crit-hit td.mrr-mut{color:var(--mrr-ink)}.mrr-crit-n{font-size:0.805rem;color:var(--mrr-mut);margin-top:5px;line-height:1.5}.mrr-voc{font-size:0.76rem}.mrr-voc th,.mrr-voc td{padding:6px 8px;vertical-align:top}.mrr-voc td.mrr-l{word-break:break-word}#mr-report:not(.mrr-layoutmode) .mrr-voc th,#mr-report:not(.mrr-layoutmode) .mrr-voc td{padding:6px 8px}.mrr-voc tbody tr:nth-child(even){background:#FBFCFE}.mrr-hascalc{cursor:help}.mrr-card.mrr-formula{border-top:1px solid var(--mrr-line)}.mrr-formula-eq{line-height:1.8}.mrr-t thead th sup{font-size:0.85em}#mr-report:not(.mrr-layoutmode) .mrr-sec{margin-bottom:46px}#mr-report:not(.mrr-layoutmode) .mrr-body{padding:39px 51px 46px}#mr-report:not(.mrr-layoutmode) .mrr-shead{gap:16px;margin-bottom:21px}#mr-report:not(.mrr-layoutmode) .mrr-card-head{padding:16px 21px}#mr-report:not(.mrr-layoutmode) .mrr-t th,#mr-report:not(.mrr-layoutmode) .mrr-t td{padding:10px 14px}#mr-report:not(.mrr-layoutmode) .mrr-kpigrid{gap:14px;margin-bottom:21px}#mr-report:not(.mrr-layoutmode) .mrr-kpi{padding:18px 21px}#mr-report:not(.mrr-layoutmode) .mrr-sec-tight .mrr-kpi{padding:9px 14px}#mr-report:not(.mrr-layoutmode) .mrr-charts{gap:14px}#mr-report:not(.mrr-layoutmode) .mrr-chartcard{padding:18px 21px}#mr-report:not(.mrr-layoutmode) .mrr-formula{padding:13px 16px 14px}#mr-report:not(.mrr-layoutmode) .mrr-card.mrr-attach-prev{margin-top:-10px}#mr-report:not(.mrr-layoutmode) .mrr-sec-tight .mrr-kpigrid{margin-bottom:12px}#mr-report:not(.mrr-layoutmode) .mrr-sec-tight .mrr-banner{margin-bottom:12px}#mr-report:not(.mrr-layoutmode) .mrr-sec-tight .mrr-card{margin-bottom:12px}#mr-report:not(.mrr-layoutmode) .mrr-crit-body{gap:14px;margin-top:14px}#mr-report:not(.mrr-layoutmode) .mrr-crit-b{padding:14px 18px 16px}#mr-report:not(.mrr-layoutmode) .mrr-crit-sum{padding:15px 21px}#mr-report:not(.mrr-layoutmode) .mrr-eff-row{padding:11px 0}#mr-report:not(.mrr-layoutmode) .mrr-banner{padding:21px 25px;margin-bottom:21px}.mrr-foot{font-size:0.874rem;color:var(--mrr-mut);line-height:1.6;margin:8px 2px 0}.mrr-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--mrr-line);padding-top:16px;margin-top:8px;font-size:0.828rem;color:var(--mrr-mut)}.mrr-printfit{width:703px!important;max-width:703px!important;margin:0 auto!important}@media screen and (max-width:720px){.mrr-cover-kpis{grid-template-columns:repeat(2,1fr)}.mrr-kpigrid,.mrr-charts{grid-template-columns:1fr}.mrr-body,.mrr-cover{padding-left:20px;padding-right:20px}}@media print{body *{visibility:hidden!important}#mr-report,#mr-report *{visibility:visible!important}.app-header,.sidebar{display:none!important}.layout{display:block!important;overflow:visible!important;height:auto!important}.main{overflow:visible!important;height:auto!important}.page{padding:0!important;margin:0!important;max-width:none!important}.mrr-page{overflow:hidden}#mr-report{position:absolute;left:0;top:0;width:100%;max-width:none;margin:0;box-shadow:none;border-radius:0}.mrr{box-shadow:none;border-radius:0;background:#fff}.mrr-card,.mrr-chartcard,.mrr-kpi,.mrr-banner,.mrr-eff-row{break-inside:avoid;page-break-inside:avoid}.mrr-sec{break-inside:auto;margin-bottom:0}.mrr-shead{break-after:avoid;page-break-after:avoid;margin-bottom:12px}.mrr-body>.mrr-sec{break-before:page;page-break-before:always;break-inside:avoid;page-break-inside:avoid}.mrr-body>.mrr-sec.mrr-sec-join-prev{break-before:auto;page-break-before:auto}.mrr-body>.mrr-sec.mrr-sec-join-prev{margin-top:34px}#mr-report:not(.mrr-layoutmode) .mrr-body{padding:38px 30px 24px}#mr-report:not(.mrr-layoutmode) .mrr-kpigrid,#mr-report:not(.mrr-layoutmode) .mrr-banner,#mr-report:not(.mrr-layoutmode) .mrr-charts,#mr-report:not(.mrr-layoutmode) .mrr-card{margin-bottom:10px}#mr-report:not(.mrr-layoutmode) .mrr-kpi{padding:12px 14px}#mr-report:not(.mrr-layoutmode) .mrr-chartcard{padding:12px 14px}#mr-report:not(.mrr-layoutmode) .mrr-chart{height:140px;overflow:hidden}#mr-report:not(.mrr-layoutmode) .mrr-chart:has(#mr-chart-complaint){height:140px!important;overflow:hidden}#mr-report:not(.mrr-layoutmode) .mrr-card-head{padding:11px 16px}#mr-report:not(.mrr-layoutmode) .mrr-t th,#mr-report:not(.mrr-layoutmode) .mrr-t td{padding:7px 10px}#mr-report:not(.mrr-layoutmode) .mrr-banner{padding:14px 18px}#mr-report:not(.mrr-layoutmode) .mrr-eff-row{padding:7px 0}#mr-report:not(.mrr-layoutmode) .mrr-foot{margin-top:6px}.mrr-chart canvas{width:100%!important;max-width:100%!important;height:100%!important;margin-left:auto!important;margin-right:auto!important;display:block}.mrr-tw{overflow:visible}#mr-report.mrr-printfit{left:0;right:0}.mr-noprint{display:none!important}.mrr-title{padding:0;height:272mm;box-sizing:border-box}#mr-report:not(.mrr-layoutmode) .mrr-title{break-after:page;page-break-after:always}.mrr-title-frame{min-height:0;height:100%;box-sizing:border-box;padding:12mm}.mrr-title-hero{aspect-ratio:16 / 10;height:auto;max-height:110mm}.mrr-title-frame{justify-content:center}.mrr-title-body{margin-top:0;padding-top:36px}.mrr-cover{-webkit-print-color-adjust:exact;print-color-adjust:exact}.mrr-card-head,.mrr-num,.mrr-banner,.mrr-hl,.mrr-eff-fill,.mrr-title-frame,.mrr-title-hero,.mrr-title-rule,.mrr-corner,.mrr-page,.mrr-page-corner,.mrr-kpi-on,.mrr-crit-hit td,.mrr-crit-sum,.mrr-formula,.mrr-t thead th,.mrr-t-total td,.mrr-fuel{-webkit-print-color-adjust:exact;print-color-adjust:exact}.mrr-pages{background:none;gap:0;padding:0;display:block}.mrr-page{width:703px;height:1032px;box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 6px rgba(52,81,122,0.28),inset 0 0 0 2px var(--mrr-frame);break-after:page;page-break-after:always;break-inside:avoid}.mrr-page:last-child{break-after:auto;page-break-after:auto}.mrr-page::after{display:none}.mrr-page::before{display:none}.mrr-rz{display:none!important}.mrr-layoutmode .mrr-block:hover,.mrr-layoutmode .mrr-block.dragging{outline:none}@page{margin:12mm}}.be-row-nameline{display:inline-flex;align-items:center;gap:2px}.be-dm-icon{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px 4px;border-radius:5px;line-height:0}.be-dm-icon:hover{color:var(--primary-bright);background:rgba(82,183,136,0.14)}.ovw-addop-banner{margin-bottom:14px;padding:12px 16px;border-radius:10px;background:rgba(96,165,250,0.10);border:1px solid rgba(96,165,250,0.45)}.ovw-addop-banner-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.ovw-addop-banner-txt{color:#bfdbfe;font-size:0.98em}.ovw-addop-banner-txt b{color:#fff}.ovw-addop-banner-acts{display:flex;gap:8px;flex-shrink:0}.ovw-addop-btn{background:#1e293b;color:var(--text-muted);border:1px solid var(--border);border-radius:7px;padding:7px 14px;cursor:pointer;font-family:inherit;font-size:0.88em}.ovw-addop-btn:hover{color:var(--text)}.ovw-addop-btn-warn{color:#fca5a5;border-color:#7f1d1d}.ovw-addop-btn-warn:hover{background:#7f1d1d;color:#fff}.ovw-addop-report{margin-top:10px;padding-top:10px;border-top:1px solid rgba(96,165,250,0.25)}.ovw-addop-report-hd{color:var(--text-muted);font-size:0.85em;margin-bottom:8px}.ovw-addop-report-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:5px 0}.ovw-addop-report-lbl{flex:1 1 260px;color:var(--text);font-size:0.9em}.ovw-addop-name{padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font-family:inherit;width:150px}.ovw-addop-del{background:#7f1d1d;color:#fff;border:none;border-radius:6px;padding:6px 14px;cursor:pointer;font-family:inherit;font-size:0.88em}.ovw-addop-del:hover{background:#991b1b}.ana-search-results{position:absolute;top:100%;left:0;z-index:40;width:340px;max-height:320px;overflow-y:auto;margin-top:4px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,0.4)}.ana-search-row{display:flex;flex-direction:column;gap:2px;padding:7px 12px;cursor:pointer;border-bottom:1px solid var(--border)}.ana-search-row:last-child{border-bottom:none}.ana-search-row:hover{background:rgba(82,183,136,0.12)}.ana-search-lbl{color:var(--text);font-size:0.92em}.ana-search-meta{color:var(--text-faint);font-size:0.78em}.ana-search-empty{padding:10px 12px;color:var(--text-faint);font-size:0.85em}.uc-addcool-form{margin:8px 0 12px;padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,0.02)}.uc-addcool-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px 14px}.uc-addcool-grid label{display:flex;flex-direction:column;gap:4px;font-size:0.85em;color:var(--text-muted)}.uc-addcool-grid input,.uc-addcool-grid select{padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);font-family:inherit;font-size:0.95em}.uc-addcool-grid .uc-addcool-wide{grid-column:span 2}.uc-addcool-grid .uc-addcool-chk{flex-direction:row;align-items:center;gap:6px;align-self:end;color:var(--text)}.uc-addcool-grid .uc-addcool-chk input{width:auto}.uc-addcool-actions{display:flex;align-items:center;gap:12px;margin-top:12px}@media (max-width:720px){.uc-addcool-grid{grid-template-columns:repeat(2,1fr)}}.uc-delrow{background:none;border:none;color:var(--danger);cursor:pointer;font-size:0.9em;padding:0 4px 0 0;line-height:1;vertical-align:middle}.uc-delrow:hover{opacity:0.7}.uc-addrow input.uc-addin{max-width:none;width:100%;box-sizing:border-box}.uc-geo{color:var(--text-faint);font-size:0.9em;font-style:italic}.uc-georow td,.uc-georow th{opacity:0.82}.uc-backbtn{margin-left:auto;background:none;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);padding:3px 9px;cursor:pointer;font-family:inherit;font-size:0.85em}.uc-fsheet tfoot .uc-total th,.uc-fsheet tfoot .uc-total td{background:#24303f;font-weight:700}.uc-money{max-width:720px}.uc-money th,.uc-money td{padding:5px 12px}.uc-money-hd{margin:4px 0 8px;color:var(--text-muted);font-size:calc(12.5px * var(--fs,1.3))}.uc-money-hd b{color:var(--primary-bright)}.uc-sumrow th,.uc-sumrow td{background:#1f2836;font-weight:700;color:var(--text)}.uc-sumrow.uc-grand th,.uc-sumrow.uc-grand td{background:#26324a;color:var(--primary-bright)}.uc-sumrow td{text-align:center}.uc-persum-wrap{margin:14px 0 4px}.uc-persum{max-width:460px}.uc-persum thead th{background:#1c2432;text-align:left}.uc-persum-lbl{color:var(--text-muted);font-weight:400;font-size:0.85em;margin-left:6px}.uc-hwsheet{min-width:760px}.uc-hwc{display:inline-block;width:120px;text-align:right;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.mp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:24px}.mp-cell{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;display:flex;flex-direction:column}.mp-cell-selected{outline:2px solid var(--primary);outline-offset:-2px}.mp-thumb-wrap{position:relative;width:100%;aspect-ratio:1 / 1;cursor:pointer;background:var(--bg);overflow:hidden}.mp-thumb{width:100%;height:100%;object-fit:cover;display:block}.mp-thumb-broken{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;padding:8px;text-align:center;font-size:calc(10px * var(--fs,1.3));color:var(--text-faint);background:var(--bg)}.mp-cell-check{position:absolute;top:6px;left:6px;width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,0.7);background:rgba(0,0,0,0.4);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}.mp-cell-check.checked{background:var(--primary);border-color:var(--primary)}.mp-cell-meta{display:flex;flex-direction:column;gap:2px;padding:6px 8px;font-size:calc(10.5px * var(--fs,1.3));color:var(--text-faint)}.mp-cell-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-muted)}.mp-cell-del{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;border:none;cursor:pointer;background:rgba(0,0,0,0.55);color:#fca5a5;font-size:13px;display:flex;align-items:center;justify-content:center}.mp-cell-del:hover{background:rgba(0,0,0,0.8)}.mp-lightbox{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:10px}.mp-lightbox-img{max-width:100%;max-height:75vh;object-fit:contain;border-radius:6px}.mp-lightbox-broken{max-width:420px;padding:40px 20px;text-align:center;color:var(--text-muted);font-size:calc(13px * var(--fs,1.3))}.mp-lightbox-name{color:var(--text-faint);font-size:calc(12px * var(--fs,1.3));word-break:break-all;text-align:center}.mp-lightbox-close{position:absolute;top:8px;right:8px}.mr-tabbar{margin:16px 0 14px}.mr-toolbar{margin-bottom:14px}.mr-year{width:84px;background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:7px 10px;font-size:calc(13px * var(--fs,1.3))}.mr-msel{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:7px 10px;font-size:calc(13px * var(--fs,1.3))}.mr-summary{border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:16px 18px;margin-bottom:16px;max-width:900px}.mr-sum-title{font-weight:800;font-size:calc(14px * var(--fs,1.3));margin-bottom:10px}.mr-sum-list{list-style:none;padding-left:6px;margin-bottom:14px}.mr-sum-list li{font-size:calc(13px * var(--fs,1.3));margin:4px 0}.mr-sum-list li::before{content:'· ';color:var(--text-muted)}.mr-hl{background:rgba(251,191,36,0.22);color:var(--warning);font-weight:800;padding:1px 5px;border-radius:4px;font-variant-numeric:tabular-nums}.mr-hl-empty{background:none;color:var(--text-faint);font-weight:600}.mr-sum-note{font-size:calc(11.5px * var(--fs,1.3));color:var(--text-muted);line-height:1.7}.mr-sheet{min-width:1180px;font-variant-numeric:tabular-nums}.mr-sheet .td-rh{text-align:left;white-space:nowrap}.mr-sheet .mr-gh{background:#1a212d;width:46px;min-width:46px}.mr-sheet .mr-yh{background:#24303f}.mr-sheet .mr-fuel{background:#24303f;font-weight:700;color:var(--text)}.mr-sheet thead .mr-per{background:var(--bg);color:var(--text-faint);font-weight:500;font-size:calc(10.5px * var(--fs,1.3));padding:4px 6px;position:static}.mr-sheet thead .mr-perlbl{text-align:right;color:var(--text-muted)}.mr-sheet thead th.mr-focus-h{background:var(--primary-dim);color:var(--primary-bright)}.mr-in.mr-y{background:rgba(251,191,36,0.10)}.mr-in.mr-y:focus{background:rgba(251,191,36,0.20)}.td-in.mr-ro{color:var(--text-muted);background:rgba(255,255,255,0.015);cursor:default}.td-in.mr-ro:focus{background:rgba(96,165,250,0.12)}.mr-sheet td.mr-off{background:repeating-linear-gradient(45deg,rgba(255,255,255,0.02) 0 6px,transparent 6px 12px)}.mr-sheet .mr-total th,.mr-sheet .mr-total td{background:#24303f;font-weight:700}.mr-sheet .mr-total .td-in{font-weight:700;color:var(--text)}.mr-gap{height:18px}.mr-note-mid{text-align:center;font-style:italic;color:var(--text-muted);font-size:calc(12px * var(--fs,1.3));margin:8px 0 16px}.mr-half{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:6px}.mr-half-wrap{max-width:420px}.mr-hsheet{min-width:360px}.mr-hsheet .td-rh{width:200px}.mr-half-note{font-style:italic;color:var(--text-muted);font-size:calc(12px * var(--fs,1.3))}.ec-fixed{display:inline-block;min-width:84px;padding:5px 8px;border:1px dashed var(--border);border-radius:6px;background:rgba(255,255,255,0.02);color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:center;cursor:help}.ec-tariff-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-muted);font-size:calc(12.5px * var(--fs,1.3))}.ec-tariff-bar b{color:var(--text)}.ec-tariff-bar-warn{border-color:rgba(251,191,36,0.5);color:var(--warning)}.ec-tariff-link{margin-left:auto}.ec-tariff-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ec-tariff-toolbar label{color:var(--text-muted);font-weight:600;font-size:calc(12.5px * var(--fs,1.3))}.ec-tariff-actions{display:flex;gap:8px;margin-left:auto}.ec-tariff-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px;align-items:start;margin-bottom:16px}.ec-tariff-table td,.ec-tariff-table th{padding:8px 12px}.ec-tariff-table .ec-tariff-season{text-align:left;white-space:nowrap;color:var(--text-muted)}.ec-tariff-meta{margin-top:10px}.ec-tariff-meta td:first-child{text-align:left;color:var(--text-muted)}.ec-tariff-common{max-width:640px}.ec-tariff-common td{padding:8px 12px}.ec-tariff-common td:first-child{text-align:left;color:var(--text-muted)}.ec-tariff-hint{color:var(--text-faint);font-size:calc(11.5px * var(--fs,1.3));text-align:left}.ec-tou{margin:12px 0 4px}.ec-tou-head{font-size:calc(11.5px * var(--fs,1.3));color:var(--text-muted);margin-bottom:6px}.ec-tou-grid{display:grid;grid-template-columns:auto 1fr auto;gap:3px 8px;align-items:center}.ec-tou-row{display:contents}.ec-tou-lbl{font-size:calc(11px * var(--fs,1.3));color:var(--text-muted);text-align:right;white-space:nowrap}.ec-tou-strip{display:grid;grid-template-columns:repeat(24,1fr);gap:1px;min-width:0}.ec-tou-sum{font-size:calc(10.5px * var(--fs,1.3));color:var(--text-faint);white-space:nowrap;font-variant-numeric:tabular-nums}.ec-tariff-dirty{color:var(--warning)}.ec-tou-cell{border:0;border-radius:2px;padding:4px 0;cursor:pointer;color:var(--text);font-size:calc(9.5px * var(--fs,1.3));font-family:inherit;line-height:1.1}.ec-tou-cell:hover{outline:1px solid var(--primary-bright)}.ec-tou-light{background:rgba(52,211,153,0.22)}.ec-tou-mid{background:rgba(251,191,36,0.24)}.ec-tou-peak{background:rgba(248,113,113,0.28)}.ec-tou-none{background:rgba(255,255,255,0.05);color:var(--text-faint)}.ec-tou-hours span{text-align:center;font-size:calc(9px * var(--fs,1.3));color:var(--text-faint)}.ec-note-warn{color:var(--warning);opacity:0.85}.ec-tb{min-width:1280px;font-variant-numeric:tabular-nums}.ec-tb th,.ec-tb td{padding:7px 10px;text-align:right;white-space:nowrap}.ec-tb thead th{text-align:center}.ec-tb .ec-tb-tenant{text-align:left;background:#1a212d;font-weight:600}.ec-tb td:nth-child(2){text-align:center;color:var(--text-muted)}.ec-tb .ec-dash{color:var(--text-faint)}.ec-tb .ec-tb-band th{background:#24303f;text-align:left;font-weight:700;padding:8px 12px}.ec-tb .ec-tb-sub td{background:rgba(255,255,255,0.03);color:var(--text-muted);font-weight:600}.ec-tb .ec-tb-sum th,.ec-tb .ec-tb-sum td{background:#1c2432;font-weight:700}.ec-tb .ec-tb-sum th{text-align:left}.ec-tb-sum2{min-width:0;width:auto;margin-bottom:14px}.ec-tb .ec-tb-grand th,.ec-tb .ec-tb-grand td{background:var(--primary-dim);font-weight:800}.ec-tb .ec-tb-grand th{text-align:left}.ec-tb .ec-tb-vacant td,.ec-tb .ec-tb-vacant th{opacity:0.72}.ec-tb .ec-tb-vat{background:rgba(251,191,36,0.07)}.ec-tb .ec-tb-total{font-weight:700}.ec-tb .ec-tb-incl{background:rgba(96,165,250,0.10)}.ec-tb .ec-tb-note{text-align:center;color:var(--text-faint)}.ec-tb-rates{display:flex;gap:18px;flex-wrap:wrap;margin:0 0 12px;font-size:calc(12px * var(--fs,1.3));color:var(--text-muted)}.ec-tb-rates b{color:var(--text)}.ec-bd-label{color:var(--text-muted);font-weight:600;font-size:calc(12.5px * var(--fs,1.3));margin-left:10px}.ec-tb-recon{margin:12px 0 4px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-muted);font-size:calc(12.5px * var(--fs,1.3))}.ec-tb-recon b{color:var(--text);font-variant-numeric:tabular-nums}.ec-tb-recon-warn{border-color:rgba(251,191,36,0.5);color:var(--warning)}.ec-tb-recon-sep{margin:0 8px;color:var(--text-faint)}.ec-tb-recon-note{margin-left:8px;color:var(--text-faint)}.app-header-center{flex:1 1 auto;display:flex;align-items:center;justify-content:center;gap:12px;min-width:0;padding:0 16px}.bpick-slot{flex:1 1 auto;display:flex;justify-content:center;min-width:0}.bpick{position:relative;display:flex;align-items:center;width:100%;max-width:340px}.bpick-icon{position:absolute;left:12px;color:var(--text-dim,#94a3b8);pointer-events:none}.bpick-input{width:100%;height:40px;padding:0 12px 0 34px;background:var(--surface-2,#111827);color:var(--text,#e2e8f0);border:1px solid var(--border);border-radius:8px;font-size:calc(13px * var(--fs,1.3));font-weight:500;text-overflow:ellipsis;cursor:pointer}.bpick-input:focus{outline:none;border-color:var(--accent,#3b82f6);cursor:text}.bpick-list{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:60;background:var(--surface-2,#111827);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 28px rgba(0,0,0,.45);max-height:320px;overflow-y:auto;padding:4px}.bpick-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:6px;cursor:pointer;font-size:calc(13px * var(--fs,1.3));color:var(--text,#e2e8f0)}.bpick-opt:hover{background:rgba(255,255,255,.06)}.bpick-opt.active{background:rgba(59,130,246,.16);color:#fff}.bpick-nodata{flex:0 0 auto;font-size:calc(10px * var(--fs,1.3));color:var(--text-dim,#94a3b8);border:1px solid var(--border);border-radius:4px;padding:1px 6px;white-space:nowrap}.bpick-empty{padding:10px;color:var(--text-dim,#94a3b8);font-size:calc(12px * var(--fs,1.3))}.bpick-err{color:#f87171}.bpick-single{color:var(--text-dim,#94a3b8);font-size:calc(13px * var(--fs,1.3));font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width:900px){.app-header-center{padding:0 8px}.bpick{max-width:190px}}.bas-host{height:100%;min-height:100%;display:flex}.bas-host iframe{flex:1 1 auto;width:100%;min-height:0;border:0;display:block;background:var(--bg)}.feed-chips{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.feed-chips[hidden]{display:none}.feed-chip{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:calc(10px * var(--fs,1.3));padding:3px 10px;border-radius:999px;white-space:nowrap;font-variant-numeric:tabular-nums;border:1px solid rgba(52,211,153,.4);color:var(--success,#34d399);background:var(--success-dim,rgba(52,211,153,.12))}.feed-chip.stale{border-color:rgba(251,191,36,.4);color:var(--warning,#fbbf24);background:var(--warning-dim,rgba(251,191,36,.12))}.feed-chip.off{border-color:rgba(248,113,113,.35);color:var(--danger,#f87171);background:var(--danger-dim,rgba(248,113,113,.12))}.bc-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.bc-tabbar{flex-wrap:wrap}.bc-rightctrls{display:flex;align-items:center;gap:16px}.bc-legend{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted,#9aa0a6)}.bc-legend .bc-chip{display:inline-block;width:11px;height:11px;line-height:11px;text-align:center;margin-left:8px;border-radius:2px;font-size:10px}.bc-legend .bc-chip.bc-blue{background:#1d4ed8}.bc-legend .bc-chip.bc-auto{background:#e6e6e6;border:1px solid #999}.bc-legend .bc-chip.bc-red{background:#dc2626}.bc-legend .bc-chip.bc-conflict{background:#facc15}.bc-legend .bc-chip.bc-help{background:transparent;color:var(--text-muted,#9aa0a6);border:1px solid var(--text-faint,#555);border-radius:50%;width:13px;height:13px;line-height:12px}.bc-subctrls{display:flex;align-items:center;gap:14px;margin-bottom:10px}.bc-tenant-label{font-size:13px;color:var(--text,#e6e6e6);display:inline-flex;align-items:center;gap:8px}.bc-tenant-sel{padding:5px 10px;border-radius:6px;border:1px solid var(--border,#333);background:var(--surface,#1a1a1a);color:var(--text,#e6e6e6);font-size:13px}.bc-hint,.bc-tenant-label + .bc-hint{font-size:12px;color:var(--text-faint,#777)}.bc-sheet-wrap{overflow-x:auto;border:1px solid #d4d4d8;border-radius:10px;background:#fff;max-width:100%;width:fit-content;margin:0 auto;box-shadow:0 2px 16px rgba(0,0,0,.18)}table.bc-sheet{border-collapse:collapse;table-layout:fixed;background:transparent;color:#1a1a1a;font-size:calc(13px * var(--fs,1.3))}table.bc-sheet td.bc-cell{padding:4px 9px;height:24px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;border:1px solid #e6e6e8;background:var(--cbg,#fff)}table.bc-sheet td.bc-valcell{line-height:1.35;font-variant-numeric:tabular-nums}.bc-cell .bc-blue{color:#1d4ed8;font-weight:500}.bc-cell .bc-auto{color:#111}.bc-cell .bc-red{color:#dc2626;font-weight:600}.bc-cell .bc-conflict{color:#a16207;font-weight:700;background:rgba(245,197,24,.30);padding:0 3px;border-radius:2px}.bc-cell .bc-label{color:#1d4ed8;white-space:nowrap;font-weight:inherit}table.bc-sheet td.bc-cell.bc-textcell{overflow:visible;white-space:nowrap;position:relative;z-index:1}table.bc-sheet td.bc-cell.bc-label-wrap .bc-label{white-space:normal}.bc-cell.bc-help-cursor{cursor:help}[data-util-theme="dark"] .bc-sheet-wrap{background:#14171b;border-color:#333a42;box-shadow:0 2px 18px rgba(0,0,0,.5)}[data-util-theme="dark"] table.bc-sheet{color:#e6e6e6}[data-util-theme="dark"] table.bc-sheet td.bc-cell{background:color-mix(in srgb,var(--cbg,#23272e) 20%,#14171b);border-color:#2b3037}[data-util-theme="dark"] .bc-cell .bc-blue,[data-util-theme="dark"] .bc-cell .bc-label{color:#6ea8ff}[data-util-theme="dark"] .bc-cell .bc-auto{color:#f0f0f0}[data-util-theme="dark"] .bc-cell .bc-red{color:#ff6b6b}[data-util-theme="dark"] .bc-cell .bc-conflict{color:#facc15;background:rgba(245,197,24,.16)}[data-util-theme="dark"] table.bc-sheet thead .bc-colhdr th.bc-colh{background:#20242b;color:#9aa4b2;border-color:#333a42}[data-util-theme="dark"] .bc-cell-input{background:#20242b;color:#eee;border-color:#3b82f6}[data-util-theme="dark"] .bc-edit-hint{color:#8a929c}.util-theme-btn{cursor:pointer}.bc-cell.bc-valcell{font-variant-numeric:tabular-nums}.bc-input-wrap{max-width:1100px}.bc-inp-kindbar{flex-wrap:wrap;margin-bottom:10px}.bc-inp-note{font-size:13px;color:var(--text-muted,#9aa0a6);margin:0 0 14px}.bc-inp-group{border:1px solid var(--border,#333);border-radius:8px;padding:12px 14px 14px;margin:0 0 14px}.bc-inp-group>legend{font-size:13px;font-weight:700;color:var(--primary-bright,#74c69d);padding:0 6px}.bc-inp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px 14px}.bc-inp-field{display:flex;flex-direction:column;gap:4px}.bc-inp-label{font-size:12px;color:var(--text-muted,#9aa0a6)}.bc-inp-label em{color:var(--text-faint,#777);font-style:normal}.bc-inp-field input{padding:6px 9px;border-radius:6px;border:1px solid var(--border,#333);background:var(--surface,#1a1a1a);color:var(--text,#e6e6e6);font-size:13px;font-variant-numeric:tabular-nums;text-align:right}.bc-inp-field input:focus{outline:none;border-color:var(--primary,#52b788)}.bc-inp-actions{display:flex;align-items:center;gap:14px;margin-top:6px;position:sticky;bottom:0;padding:10px 0;background:var(--bg,#0f0f0f)}.bc-inp-savenote{font-size:12px;color:var(--text-faint,#777)}.bc-preview{border:1px solid var(--primary,#52b788);border-radius:8px;padding:12px 14px;margin:4px 0 14px;background:rgba(82,183,136,0.06)}.bc-preview-title{font-size:12px;font-weight:700;color:var(--primary-bright,#74c69d);margin-bottom:8px}.bc-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 18px}.bc-preview-row{display:flex;justify-content:space-between;font-size:13px;border-bottom:1px dashed var(--border,#333);padding:2px 0}.bc-preview-row span{color:var(--text-muted,#9aa0a6)}.bc-preview-row b.bc-red{color:#dc2626;font-variant-numeric:tabular-nums}.bc-tip{position:fixed;z-index:9999;max-width:420px;padding:8px 10px;border-radius:6px;background:#111827;color:#e5e7eb;font-size:12px;line-height:1.45;white-space:pre-line;box-shadow:0 6px 24px rgba(0,0,0,.45);border:1px solid #374151;pointer-events:none}.bc-cell .bc-edited{color:#b45309;font-weight:700;background:rgba(245,158,11,.16);padding:0 2px;border-radius:2px}table.bc-sheet td.bc-cell.bc-editing{padding:0!important;overflow:visible}.bc-cell-input{box-sizing:border-box;display:block;border:2px solid #1a73e8;border-radius:0;margin:0;padding:2px 8px;font:inherit;font-variant-numeric:tabular-nums;background:#fff;color:#111;outline:none}.bc-edit-hint{font-size:calc(12px * var(--fs,1.3));color:var(--text-faint,#777);margin:8px 2px 0}td.bc-cell[data-edit]{cursor:text}td.bc-cell.bc-help-cursor{cursor:help}table.bc-sheet tr.bc-total-row td{font-weight:700}table.bc-sheet thead .bc-colhdr th.bc-colh{height:20px;background:#f1f3f4;color:#5f6368;font-size:calc(11px * var(--fs,1.3));font-weight:600;text-align:center;border:1px solid #d4d4d8;position:relative;user-select:none;padding:0}table.bc-sheet .bc-rz{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;z-index:6}table.bc-sheet .bc-rz:hover{background:#1a73e8;opacity:.5}tfoot td,tfoot th,tr.total td,tr.total th,tr.uc-total td,tr.uc-total th,tr.td-total td,tr.td-total th,.uc-total td,.uc-total th{font-weight:700}.ec-tabbar-team{border-left:3px solid #f5c518;padding-left:10px}.ec-tabbar-team .oss-tab{background:rgba(245,197,24,0.10);border-color:rgba(245,197,24,0.25)}.ec-tabbar-team .oss-tab:hover{background:rgba(245,197,24,0.20)}.ec-tabbar-team .oss-tab.active{background:rgba(245,197,24,0.32);border-color:#f5c518;color:#111;font-weight:700}.ec-hub-upload{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 16px;padding:12px 14px;border:1px dashed rgba(245,197,24,0.5);border-radius:8px;background:rgba(245,197,24,0.06)}.ec-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.ec-header-tools{flex-shrink:0}table.td-sheet thead th{position:relative}.util-col-rz{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;z-index:5;user-select:none}.util-col-rz:hover{background:#3b82f6;opacity:.45}[data-util-theme="light"] .uc-page,[data-util-theme="light"] .ec-page{background:#f4f5f7;color:#1a1a1a;border-radius:10px;padding:2px 4px}[data-util-theme="light"] .uc-page h1,[data-util-theme="light"] .ec-page h1{color:#111}[data-util-theme="light"] .uc-page .page-header p,[data-util-theme="light"] .ec-page .page-header p,[data-util-theme="light"] .uc-page .ec-note,[data-util-theme="light"] .ec-page .ec-note,[data-util-theme="light"] .uc-page .uc-note,[data-util-theme="light"] .ec-page .uc-note{color:#555}[data-util-theme="light"] .uc-page .td-sheet-wrap,[data-util-theme="light"] .ec-page .td-sheet-wrap{border-color:#d4d7dd;background:#fff}[data-util-theme="light"] .uc-page .td-sheet,[data-util-theme="light"] .ec-page .td-sheet{background:#fff;color:#1a1a1a}[data-util-theme="light"] .uc-page .td-sheet th,[data-util-theme="light"] .uc-page .td-sheet td,[data-util-theme="light"] .ec-page .td-sheet th,[data-util-theme="light"] .ec-page .td-sheet td{border-color:#e4e6ea}[data-util-theme="light"] .uc-page .td-sheet thead th,[data-util-theme="light"] .ec-page .td-sheet thead th{background:#e9edf2;color:#1a2330}[data-util-theme="light"] .uc-page .td-sheet .td-rh,[data-util-theme="light"] .ec-page .td-sheet .td-rh{background:#eef1f5;color:#1a2330}[data-util-theme="light"] .uc-page .td-sheet .td-inner,[data-util-theme="light"] .uc-page .td-sheet .td-no,[data-util-theme="light"] .ec-page .td-sheet .td-inner,[data-util-theme="light"] .ec-page .td-sheet .td-no{color:#555}[data-util-theme="light"] .uc-page .td-in,[data-util-theme="light"] .ec-page .td-in{color:#111}[data-util-theme="light"] .ec-page .td-sheet thead th.td-grp-recv{background:#dbe8f5}[data-util-theme="light"] .ec-page .td-sheet thead th.td-grp-hand{background:#dbf0e0}[data-util-theme="light"] .uc-page .ec-emph td,[data-util-theme="light"] .uc-page .uc-total td,[data-util-theme="light"] .ec-page .ec-emph td{background:#eef2f7;color:#111}[data-util-theme="light"] .uc-page .uc-hl,[data-util-theme="light"] .ec-page .uc-hl{background:#fff6d8}[data-util-theme="light"] .uc-page .oss-tabbar .oss-tab,[data-util-theme="light"] .ec-page .oss-tabbar .oss-tab{color:#333}[data-util-theme="light"] .uc-page .uc-monthlbl,[data-util-theme="light"] .ec-page .uc-monthlbl{color:#111}[data-util-theme="light"] .ec-page .ec-badge-manual{background:#e5e7eb;color:#374151}.td-in:focus{outline:none;background:transparent}.ec-na{color:var(--text-faint,#7a828c)}.ec-inp::placeholder{color:var(--text-faint,#7a828c);opacity:1}.td-sheet td.ec-warn-dec{background:rgba(245,197,24,0.30)!important}[data-util-theme="light"] .ec-page .td-sheet td.ec-warn-dec{background:rgba(245,197,24,0.45)!important}.ec-inp.ec-inp-edited{color:#ff6b6b}[data-util-theme="light"] .ec-page .ec-inp.ec-inp-edited{color:#dc2626}.uc-monthbar{display:flex;align-items:center;gap:8px;margin:12px 0 16px;flex-wrap:wrap}.uc-monthbar .uc-month{font-weight:700;font-size:15px;letter-spacing:.02em;font-variant-numeric:tabular-nums;min-width:84px;text-align:center}.uc-savemark{color:var(--primary);font-size:12px}.uh-group{margin-bottom:18px}.uh-item{padding:14px 0;border-top:1px solid var(--border)}.uh-item:first-of-type{border-top:none}.uh-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.uh-name{font-weight:600;font-size:14px}.uh-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:3px;white-space:nowrap}.uh-b-auto{color:#0F7A6B;background:rgba(15,122,107,0.14)}.uh-b-manual{color:#B5701A;background:rgba(181,112,26,0.16)}.uh-b-none{color:#A33B3B;background:rgba(163,59,59,0.16)}[data-util-theme="dark"] .uh-b-auto{color:#4FC3AE;background:rgba(79,195,174,0.14)}[data-util-theme="dark"] .uh-b-manual{color:#E0A050;background:rgba(224,160,80,0.16)}[data-util-theme="dark"] .uh-b-none{color:#E07B7B;background:rgba(224,123,123,0.16)}.uh-hint{margin:6px 0 0;max-width:70ch}.uh-where{margin:4px 0 0;font-size:12px;color:var(--text-faint);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.uh-row{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}.uh-done{color:#0F7A6B;font-size:12.5px;font-weight:600}.uh-todo{color:var(--text-muted);font-size:12.5px}[data-util-theme="dark"] .uh-done{color:#4FC3AE}.uh-export{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 20px;padding:18px 20px;border:1px solid var(--primary);border-radius:10px;background:var(--primary-dim)}.uh-export-main{flex:1 1 320px;min-width:0}.uh-export-title{font-size:17px;font-weight:700;letter-spacing:.01em}.uh-export-sub{margin:5px 0 0;font-size:13px;color:var(--text-muted);max-width:70ch}.uh-export-btn{flex:0 0 auto;padding:14px 26px;font-size:15px;font-weight:700;border:none;border-radius:8px;cursor:pointer;white-space:nowrap;color:#fff;background:var(--primary);transition:background .15s,transform .08s}.uh-export-btn:hover:not(:disabled){background:var(--primary-bright)}.uh-export-btn:active:not(:disabled){transform:translateY(1px)}.uh-export-btn:disabled{opacity:.55;cursor:default}.uh-export-alt{flex:0 0 auto;padding:14px 16px;font-size:13px;font-weight:600;border:1px solid var(--border);border-radius:8px;cursor:pointer;white-space:nowrap;color:var(--text-muted);background:transparent}.uh-export-alt:hover:not(:disabled){color:var(--text);border-color:var(--primary)}.uh-export-alt:disabled{opacity:.55;cursor:default}.uh-export-which{margin:6px 0 0;font-size:12px;color:var(--text-faint)}.uh-export-msg{flex:1 1 100%;margin:0}.uh-export-report{flex:1 1 100%;margin:0;padding-left:20px;font-size:12.5px;color:var(--text-muted)}[data-util-theme="light"] .uc-page .uh-export{background:#e8f0fe;border-color:#a8c7f0}[data-util-theme="light"] .uc-page .uh-export-sub,[data-util-theme="light"] .uc-page .uh-export-report{color:#555}.uc-billbtn{margin-left:8px;font-size:12px;padding:2px 8px}.uc-sb-box{margin:8px 0 0;padding:10px 12px;border:1px solid var(--border);border-radius:6px}.uc-sb-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}.uc-warn{color:var(--warning);font-size:12.5px;margin-top:4px}.bc-tplnotice{margin:8px 0 12px;padding:10px 14px;border-left:3px solid var(--warning);background:rgba(245,197,24,0.12);border-radius:0 4px 4px 0;font-size:13px;line-height:1.6}.uc-billlbl{margin-left:10px;font-size:11.5px;color:var(--text-faint);white-space:nowrap}.bc-wb-box{margin-top:16px}.bc-wb-list{margin:8px 0 0;padding-left:20px;font-size:12.5px;color:var(--text-muted);line-height:1.7}.uc-scm{margin-top:10px;padding:10px 12px;border:1px solid var(--border);border-radius:8px}.uc-scm-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:6px}.uc-scm-f{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}.uc-scm-f input{width:130px;padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);text-align:right;font-variant-numeric:tabular-nums}.uh-export-partial{white-space:nowrap}
.page.oss-page-wrap{max-width:none}.oss-page-wrap{display:flex;justify-content:center}.oss-card{width:100%;max-width:520px;background:#0f1418;border:1px solid rgba(255,255,255,0.07);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:20px}.oss-card--wide{max-width:90vw}.oss-hdr{display:flex;align-items:center;justify-content:space-between}.oss-hdr-l{display:flex;align-items:center;gap:12px}.oss-hdr-icon{width:40px;height:40px;border-radius:12px;background:var(--primary-dim);display:flex;align-items:center;justify-content:center;flex-shrink:0}.oss-hdr-title{font-size:calc(15px * var(--fs,1.3));font-weight:700;color:#fff;display:flex;align-items:center;gap:8px}.oss-hdr-sub{font-size:calc(12px * var(--fs,1.3));color:#6b7280;margin-top:2px}.oss-floor-running-badge{font-size:calc(12px * var(--fs,1.3));font-weight:700;padding:2px 8px;border-radius:999px;background:var(--primary-dim);color:#60a5fa;border:1px solid rgba(96,165,250,0.3)}.oss-hdr-r{display:flex;align-items:center;gap:8px}.oss-weather-wrap{position:relative}.oss-weather-chip{display:flex;align-items:center;gap:10px;padding:9px 18px;border-radius:12px;background:#141b27;border:1px solid #263041}.oss-weather-chip.clickable{cursor:pointer}.oss-weather-icon{font-size:calc(22px * var(--fs,1.3));line-height:1}.oss-weather-txt{display:flex;flex-direction:column;line-height:1.3}.oss-weather-now{font-size:calc(15px * var(--fs,1.3));font-weight:700;color:#e2e8f0}.oss-weather-range{font-size:calc(13px * var(--fs,1.3));color:#aab4c4}.oss-weather-popover{position:absolute;top:calc(100% + 6px);right:0;z-index:20;width:280px;background:#141b27;border:1px solid #263041;border-radius:10px;padding:10px 12px;box-shadow:0 8px 24px rgba(0,0,0,0.35)}.oss-weather-popover-hdr{display:flex;justify-content:space-between;align-items:center;font-size:calc(12px * var(--fs,1.3));color:#8b9ab0;margin-bottom:6px}.oss-weather-popover-close{background:none;border:none;color:#6b7280;cursor:pointer;font-size:calc(13px * var(--fs,1.3));padding:0 2px}.oss-weather-popover-canvas{height:110px}.oss-weather-popover-legend{display:flex;gap:12px;margin-top:6px;font-size:calc(10px * var(--fs,1.3));color:#6b7280}.oss-weather-dot{display:inline-block;width:10px;height:2px;margin-right:4px;vertical-align:middle}.oss-weather-dot.solid{background:#60a5fa}.oss-weather-dot.dashed{background:repeating-linear-gradient(90deg,#6b7280 0 3px,transparent 3px 6px)}.oss-weather-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.oss-weather-nav-btn{background:#1b2431;border:1px solid #2c3646;color:#aab4c4;cursor:pointer;width:24px;height:24px;border-radius:6px;line-height:1;font-size:calc(15px * var(--fs,1.3))}.oss-weather-nav-btn:disabled{opacity:0.35;cursor:default}.oss-weather-nav-lbl{font-size:calc(12px * var(--fs,1.3));font-weight:600;color:#cbd5e1}.oss-weather-empty{padding:26px 0;text-align:center;color:#6b7280;font-size:calc(12px * var(--fs,1.3))}.oss-weather-ampm{display:flex;flex-direction:column;gap:6px;padding:2px 0}.oss-weather-ampm-minmax{font-size:calc(12px * var(--fs,1.3));color:#aab4c4;margin-bottom:2px}.oss-weather-ampm-row{display:flex;align-items:center;gap:8px;font-size:calc(12px * var(--fs,1.3));color:#e2e8f0}.oss-weather-ampm-lbl{width:34px;flex:none;color:#8b9ab0}.oss-weather-ampm-txt{flex:1}.oss-weather-ampm-rain{color:#60a5fa}.oss-active-lbl{font-size:calc(12px * var(--fs,1.3));font-weight:600;padding:4px 12px;border-radius:999px;background:#12233a;color:#60a5fa}.oss-toggle{position:relative;width:40px;height:24px;border-radius:12px;border:none;cursor:pointer;background:#374151;transition:background 0.2s}.oss-toggle.on{background:#60a5fa}.oss-toggle-knob{position:absolute;top:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,0.3);transition:left 0.2s;left:2px}.oss-toggle.on .oss-toggle-knob{left:calc(100% - 22px)}.oss-tabbar{display:flex;gap:4px;padding:4px;background:#141a27;border-radius:12px}.oss-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 0;border-radius:8px;font-size:calc(12px * var(--fs,1.3));font-weight:600;color:#6b7280;background:transparent;border:none;cursor:pointer;transition:background 0.15s,color 0.15s;white-space:nowrap}.oss-tab:hover{color:var(--text)}.oss-tab.active{background:#252d3d;color:#e2e8f0}.oss-time-tab{display:flex;flex-direction:column;gap:16px}.oss-sched-list{display:flex;flex-direction:column;gap:10px}.oss-sched-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.oss-sched-lbl{display:flex;align-items:center;gap:6px;width:72px;flex-shrink:0;justify-content:flex-end}.oss-sched-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.oss-sched-time{font-size:calc(22px * var(--fs,1.3));font-weight:700;letter-spacing:-0.03em;font-variant-numeric:tabular-nums;flex-shrink:0}.oss-arrow{font-size:calc(18px * var(--fs,1.3));margin:0 6px}.oss-ch-toggle-wrap{display:flex;gap:6px;margin-left:4px}.oss-ch-badge{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:calc(12px * var(--fs,1.3));font-weight:600;background:#1c2231;color:#4b5563;border:1px solid rgba(255,255,255,0.07);cursor:pointer;transition:all 0.15s}.oss-ch-badge.on{background:#3a2e0a;color:#C9A84C;border-color:#C9A84C60}.oss-release-btn{display:flex;align-items:center;gap:6px;padding:8px 24px;border-radius:999px;font-size:calc(14px * var(--fs,1.3));font-weight:600;background:#7c2020;color:#f87171;border:none;cursor:pointer;transition:opacity 0.15s}.oss-release-btn:hover{opacity:0.85}.oss-gantt{display:flex;flex-direction:column;gap:8px}.oss-gantt-row{display:flex;align-items:center;gap:12px}.oss-gantt-lbl{width:52px;text-align:right;font-size:calc(12px * var(--fs,1.3));color:#9ca3af;flex-shrink:0}.oss-gantt-bar{flex:1}.oss-gantt-times{display:flex;justify-content:space-between;margin-left:64px;margin-top:4px}.oss-gantt-times span{font-size:calc(10px * var(--fs,1.3));color:#6b7280}.oss-info-chips{display:flex;flex-wrap:wrap;gap:8px}.oss-chip{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:#252d3d;border:1px solid rgba(255,255,255,0.08);font-size:calc(12px * var(--fs,1.3))}.oss-chip-lbl{color:#6b7280}.oss-chip-val{font-weight:600;color:#d1d5db}.oss-run-sched-btn{width:100%;padding:10px;border-radius:12px;font-size:calc(14px * var(--fs,1.3));font-weight:700;background:#12233a;color:#60a5fa;border:1px solid #1e40af;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:opacity 0.15s}.oss-run-sched-btn:hover{opacity:0.85}.oss-sp-inline{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:8px;background:#252d3d;border:1px solid rgba(96,165,250,0.25)}.oss-sp-in2{width:46px;background:transparent;border:none;font-size:calc(13px * var(--fs,1.3));font-weight:700;text-align:center;outline:none;-moz-appearance:textfield}.oss-sp-in2::-webkit-outer-spin-button,.oss-sp-in2::-webkit-inner-spin-button{-webkit-appearance:none}.oss-dblock{background:#141a27;border:1.5px solid rgba(255,255,255,0.07);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px;transition:background 0.2s,border-color 0.2s}.oss-dblock.db-on{}.oss-dblock-head{display:flex;align-items:center;justify-content:space-between}.oss-rain-rec{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-radius:10px;background:#1a2233;border:1px solid #2b3650}.oss-rain-rec-txt{font-size:calc(12px * var(--fs,1.3));color:#cbd5e1;line-height:1.4}.oss-rain-rec-acts{display:flex;flex-wrap:wrap;gap:6px}.oss-geo-off-click{cursor:pointer;text-decoration:underline dotted;text-underline-offset:2px}.oss-geo-off-click:hover{opacity:0.8}.oss-geo-off-options{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;border-radius:8px;background:#1a2233;border:1px solid #2b3650}.oss-geo-off-options-lbl{font-size:calc(11px * var(--fs,1.3));color:#6b7280;margin-right:2px}.oss-geo-fire-ok{font-size:calc(11px * var(--fs,1.3));color:#60a5fa}.oss-geo-fire-err{font-size:calc(11px * var(--fs,1.3));color:#f97316;font-weight:600}.oss-dblock-info{display:flex;align-items:center;gap:12px}.oss-dblock-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.oss-dblock-name{font-size:calc(14px * var(--fs,1.3));font-weight:700}.oss-dblock-status{font-size:calc(12px * var(--fs,1.3));margin-top:2px}.oss-dblock-acts{display:flex;gap:6px}.oss-dblock-body{display:flex;flex-direction:column;gap:8px;padding-top:4px}.oss-dblock-sp-row{display:flex;align-items:center;justify-content:space-between;padding:0 4px}.oss-geo-cfg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 14px;padding:4px}.oss-geo-cfg-item{display:flex;align-items:center;justify-content:space-between;gap:8px}.oss-geo-cfg-lbl{font-size:calc(11px * var(--fs,1.3));color:#9ca3af}.oss-geo-cfg-item input[type="number"],.oss-geo-cfg-item input[type="time"],.oss-geo-cfg-item input[type="date"],.oss-geo-cfg-item select{background:#1c2231;border:1px solid #374151;border-radius:6px;color:#e2e8f0;font-size:calc(12px * var(--fs,1.3));padding:3px 6px;width:110px}.oss-geo-cfg-acts{display:flex;align-items:center;gap:8px;padding:4px}.oss-dual-preview{margin:8px 4px 4px;padding:8px 10px;max-height:260px;overflow-y:auto;background:#0d1420;border:1px solid #263041;border-radius:8px;color:#8b9ab0;font-size:calc(10.5px * var(--fs,1.3));line-height:1.4;white-space:pre-wrap}.oss-mini-btn{padding:4px 10px;border-radius:8px;font-size:calc(11px * var(--fs,1.3));font-weight:700;cursor:pointer;border:1px solid;transition:opacity 0.15s}.oss-mini-btn:hover:not(:disabled){opacity:0.85}.oss-ch-pair{display:flex;gap:8px}.oss-ch-unit{flex:1;padding:12px;background:#1c2231;border:1px solid rgba(255,255,255,0.06);border-radius:12px;display:flex;flex-direction:column;gap:6px;transition:background 0.2s,border-color 0.2s}.oss-ch-unit.ch-on{}.oss-ch-unit-hd{display:flex;align-items:center;gap:6px;margin-bottom:4px}.oss-ch-unit-btns{display:flex;gap:4px}.oss-ch-on,.oss-ch-off{flex:1;padding:6px 0;border-radius:8px;font-size:calc(11px * var(--fs,1.3));font-weight:700;cursor:pointer;transition:opacity 0.15s;border:1px solid}.oss-ch-on{background:linear-gradient(135deg,#3b82f6,#38bdf8);color:#fff;border-color:transparent}.oss-ch-off{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border-color:transparent}.oss-ch-on:hover,.oss-ch-off:hover{opacity:0.85}.oss-floor-sel{background:#141a27;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.oss-fsel-head{display:flex;align-items:center;gap:8px}.oss-fsel-title{font-size:calc(14px * var(--fs,1.3));font-weight:700;color:#fff}.oss-sel-cnt{font-size:calc(12px * var(--fs,1.3));font-weight:700;padding:2px 8px;border-radius:999px;background:#253545;color:#38bdf8}.oss-filter-tabs{display:flex;gap:4px;padding:4px;background:#1c2231;border-radius:10px}.oss-ftab{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;padding:6px 4px;border-radius:6px;font-size:calc(11px * var(--fs,1.3));font-weight:700;border:1px solid transparent;cursor:pointer;background:transparent;transition:all 0.15s}.oss-quick-btns{display:flex;gap:6px}.oss-quick-btn{flex:1;padding:8px 4px;border-radius:10px;font-size:calc(12px * var(--fs,1.3));font-weight:600;background:#252d3d;color:#9ca3af;border:1px solid rgba(255,255,255,0.07);cursor:pointer;transition:all 0.15s}.oss-quick-btn.active{background:#1b3040;color:#38bdf8;border-color:#38bdf850}.oss-quick-btn:hover{opacity:0.85}.oss-vacant-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:0 4px}.oss-mini-toggle{position:relative;width:32px;height:20px;border-radius:10px;background:#374151;border:none;cursor:pointer;transition:background 0.2s}.oss-mini-toggle.on{background:#60a5fa}.oss-mtog-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,0.3);transition:left 0.2s}.oss-mini-toggle.on .oss-mtog-knob{left:calc(100% - 18px)}.oss-ahu-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.oss-zcell{position:relative;min-height:40px;border-radius:8px;padding:6px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:calc(12px * var(--fs,1.3));font-weight:600;cursor:pointer;border:1px solid;transition:all 0.15s}.oss-zcell:hover{opacity:0.85}.oss-fcu-grid-10{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}.oss-fcu-cell{position:relative;min-height:44px;border-radius:8px;padding:4px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;border:1px solid;transition:all 0.15s}.oss-fcu-cell:hover{opacity:0.85}.oss-lr-cell{display:flex;flex-direction:column;gap:3px}.oss-lr-lbl{font-size:calc(9px * var(--fs,1.3));font-weight:700;text-align:center;line-height:1}.oss-lr-wrap{display:flex;border-radius:8px;overflow:hidden;border:1px solid;min-height:32px}.oss-lr-btn{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px 0;border:none;cursor:pointer;transition:all 0.15s}.oss-lr-btn:hover{opacity:0.85}.oss-ctrl-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:8px;border-top:1px solid rgba(255,255,255,0.06)}.oss-ctrl-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.oss-ctrl-lbl{font-size:calc(11px * var(--fs,1.3));font-weight:700;width:34px;flex-shrink:0}.oss-fire-btn{flex:1;padding:6px 8px;border-radius:8px;font-size:calc(11px * var(--fs,1.3));font-weight:700;cursor:pointer;border:1px solid;min-width:60px;transition:opacity 0.15s}.oss-fire-btn:hover{opacity:0.85}.oss-legend-row{display:flex;align-items:center;justify-content:space-between}.oss-run-tab{display:flex;flex-direction:column;gap:16px}.oss-sel-hint{font-size:calc(12px * var(--fs,1.3));color:#6b7280;padding:0 4px}.oss-settings-tab{display:flex;flex-direction:column;gap:16px}.oss-empty-hint{display:flex;flex-direction:column;align-items:center;gap:8px;padding:32px 0;color:#4b5563}.oss-apply-btn{width:100%;padding:12px;border-radius:12px;font-size:calc(14px * var(--fs,1.3));font-weight:700;background:#12233a;color:#60a5fa;border:1px solid #1e40af;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all 0.2s}.oss-apply-btn.applied{background:#12233a;color:#60a5fa;border-color:#1e40af}.oss-apply-btn:hover{opacity:0.85}.oss-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,0.6);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px}.oss-dialog{width:100%;max-width:300px;max-height:90vh;overflow-y:auto;background:#1c2231;border:1px solid rgba(255,255,255,0.1);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:16px}.oss-dlg-msg{font-size:calc(14px * var(--fs,1.3));font-weight:700;color:#fff}.oss-dlg-detail{font-size:calc(12px * var(--fs,1.3));color:#6b7280;margin-top:-8px}.oss-dlg-btns{display:flex;gap:8px}.oss-dlg-input-row{display:flex;align-items:center;gap:8px}.oss-dlg-input{flex:1;padding:10px 12px;border-radius:12px;font-size:calc(14px * var(--fs,1.3));font-weight:700;font-variant-numeric:tabular-nums;text-align:right;background:#252d3d;color:#fff;border:1px solid rgba(255,255,255,0.07)}.oss-dlg-input:focus{outline:none;border-color:#1e40af}.oss-dlg-input-unit{font-size:calc(13px * var(--fs,1.3));font-weight:600;color:#9ca3af}.oss-dlg-cancel{flex:1;padding:10px;border-radius:12px;font-size:calc(14px * var(--fs,1.3));font-weight:600;background:#252d3d;color:#9ca3af;border:1px solid rgba(255,255,255,0.07);cursor:pointer;transition:opacity 0.15s}.oss-dlg-cancel:hover{opacity:0.85}.oss-dlg-confirm{flex:1;padding:10px;border-radius:12px;font-size:calc(14px * var(--fs,1.3));font-weight:700;cursor:pointer;border:1px solid;transition:opacity 0.15s}.oss-dlg-confirm:hover{opacity:0.85}.ovw-mode-dialog{max-width:360px}.ovw-modal-body{display:flex;flex-direction:column;gap:10px}.ovw-modal-line{font-size:calc(13px * var(--fs,1.3));color:#e2e8f0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ovw-modal-line b{font-size:calc(13px * var(--fs,1.3))}.ovw-modal-muted{color:#9ca3af}.ovw-modal-in{font-size:calc(13px * var(--fs,1.3));background:#0f172a;border:1px solid rgba(255,255,255,0.2);border-radius:6px;color:#e2e8f0;padding:4px 6px;font-family:inherit;max-width:100%;min-width:0;box-sizing:border-box}.ovw-modal-in[type="time"]{width:96px}.oss-status-tab{display:flex;flex-direction:column;gap:10px}.oss-vs-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.oss-vs-bar>*{flex-shrink:0}.oss-vs-bar::-webkit-scrollbar{height:6px}.oss-vs-bar::-webkit-scrollbar-thumb{background:#2a3446;border-radius:3px}.oss-vs-bar::-webkit-scrollbar-track{background:transparent}.oss-vs-group{display:flex;gap:3px;background:#141b27;border-radius:10px;padding:3px}.oss-vs-btn{padding:7px 16px;border-radius:8px;font-size:calc(12px * var(--fs,1.3));font-weight:600;border:none;cursor:pointer;background:transparent;color:#6b7280;transition:all 0.15s}.oss-vs-btn.active{background:#252d3d;color:#e2e8f0}.oss-vs-btn:hover{opacity:0.85}.oss-vs-layout{padding:7px 14px;border-radius:8px;font-size:calc(12px * var(--fs,1.3));font-weight:600;border:1px solid #374151;cursor:pointer;background:transparent;color:#6b7280;transition:all 0.15s;white-space:nowrap}.oss-vs-layout.active{background:#252d3d;color:#e2e8f0;border-color:#4b5563}.oss-vs-layout:hover{opacity:0.85}.oss-vs-layout svg{vertical-align:-2px}.oss-vs-action{background:rgba(96,165,250,0.10);color:#60a5fa;border-color:rgba(96,165,250,0.31)}.oss-vs-action:hover{background:rgba(96,165,250,0.18);opacity:1}.oss-vs-dp{display:flex;align-items:center;gap:6px;padding:7px 14px;border-radius:10px;font-size:calc(12px * var(--fs,1.3));font-weight:600;white-space:nowrap;background:#141b27;border:1px solid #263041;color:#8b949e;cursor:pointer;transition:all 0.15s}.oss-vs-dp:hover{border-color:#4b5563;background:#182033}.oss-vs-dp-val{color:#38bdf8;font-weight:700}.oss-vs-dp-th{color:#6b7280;font-weight:500}.oss-vs-dp.danger{background:#2a1414;border-color:#f8717160;color:#f0a8a8}.oss-vs-dp.danger .oss-vs-dp-val{color:#f87171}.oss-vs-dp-warn{color:#f87171;font-weight:700}.oss-vacant-cfg{margin-top:8px;padding:12px 14px;background:#141b27;border:1px solid #263041;border-radius:12px}.oss-vacant-cfg-hd{display:flex;align-items:center;gap:6px;font-size:calc(13px * var(--fs,1.3));font-weight:700;color:#e2e8f0;margin-bottom:10px}.oss-vacant-cfg-hd svg{stroke:#60a5fa}.oss-vacant-cfg-sub{font-size:calc(11px * var(--fs,1.3));font-weight:500;color:#6b7280;margin-left:2px}.oss-vacant-cfg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px}.oss-vacant-cfg-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 6px;border-radius:9px;cursor:pointer;transition:all 0.15s;background:#1c2231;border:1px solid rgba(255,255,255,0.06);color:#cbd5e1}.oss-vacant-cfg-item:hover{border-color:#4b5563}.oss-vacant-cfg-item.vacant{background:#1a120a;border-color:#c2410c50;color:#f97316}.oss-vacant-cfg-item.selected{background:#12233a;border-color:#60a5fa60;color:#60a5fa}.oss-vacant-cfg-lbl{font-size:calc(13px * var(--fs,1.3));font-weight:700}.oss-vacant-cfg-tag{font-size:calc(9px * var(--fs,1.3));font-weight:600;color:#6b7280}.oss-vacant-cfg-item.vacant .oss-vacant-cfg-tag{color:#c2410c}.oss-vacant-cfg-item.selected .oss-vacant-cfg-tag{color:#60a5fa}.oss-vacant-cell{display:flex;flex-direction:column;gap:4px}.oss-vacant-cell .oss-vacant-cfg-item{width:100%;box-sizing:border-box}.oss-vacant-zones{display:flex;gap:4px}.oss-vacant-zone{flex:1;padding:3px 0;border-radius:6px;cursor:pointer;transition:all 0.15s;font-size:calc(10px * var(--fs,1.3));font-weight:700;text-align:center;background:#161b26;border:1px solid rgba(255,255,255,0.08);color:#8b9ab0}.oss-vacant-zone:hover{border-color:#4b5563}.oss-vacant-zone.vacant{background:#1a120a;border-color:#c2410c50;color:#f97316}.oss-vacant-zone:disabled{opacity:0.4;cursor:not-allowed}.oss-statussel-wrap{display:flex;gap:14px;margin-top:8px;flex-wrap:wrap}.oss-statussel-floors{flex:0 0 440px;margin-top:0}.oss-statussel-grid{grid-template-columns:repeat(4,1fr)}.oss-selctrl-panel{flex:1 1 440px;min-width:440px;display:flex;flex-direction:column;justify-content:center;gap:10px;padding:12px 14px;background:#141b27;border:1px solid #263041;border-radius:12px}.oss-selctrl-row{display:flex;align-items:center;gap:8px;row-gap:6px;flex-wrap:wrap}.oss-selctrl-row .oss-scb-lbl{width:80px;flex:0 0 80px}.oss-selctrl-row .oss-scb-on,.oss-selctrl-row .oss-scb-off{flex:0 0 auto;padding:7px 12px}.oss-selctrl-empty{font-size:calc(12px * var(--fs,1.3));color:#6b7280;text-align:center;padding:16px 10px;line-height:1.5}.oss-ahu-cols-cfg{margin-top:8px;padding:9px 12px;display:flex;align-items:center;flex-wrap:wrap;gap:6px;background:#141b27;border:1px solid #263041;border-radius:12px}.oss-ahu-cols-hd{font-size:calc(12px * var(--fs,1.3));font-weight:700;color:#9ca3af;margin-right:4px}.oss-ahu-col-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:8px;cursor:pointer;transition:all 0.15s;font-size:calc(12px * var(--fs,1.3));font-weight:600;background:#1c2231;border:1px solid rgba(255,255,255,0.06);color:#94a3b8}.oss-ahu-col-btn:hover{border-color:#4b5563}.oss-ahu-col-btn.on{background:#12233a;border-color:#60a5fa50;color:#60a5fa}.oss-ahu-col-check{font-size:calc(12px * var(--fs,1.3));line-height:1}.oss-ahu-chips{display:flex;flex-wrap:wrap;gap:5px;padding:1px 2px}.oss-ahu-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:7px;background:#1c2231;border:1px solid rgba(255,255,255,0.06)}.oss-ahu-chip-lbl{font-size:calc(10px * var(--fs,1.3));font-weight:600;color:#6b7280}.oss-ahu-chip-val{font-size:calc(12px * var(--fs,1.3));font-weight:700}button.oss-ahu-chip{font:inherit;color:inherit}.oss-ahu-chip--edit{cursor:pointer;transition:all 0.15s}.oss-ahu-chip--edit:hover{border-color:#60a5fa50;background:#12233a}.oss-ahu-chip-edit{font-size:calc(9px * var(--fs,1.3));color:#4b5563;margin-left:1px}.oss-ahu-chip--edit:hover .oss-ahu-chip-edit{color:#60a5fa}.oss-fcu-cols-cfg{margin-top:8px;padding:9px 12px;display:flex;align-items:center;flex-wrap:wrap;gap:6px;background:#141b27;border:1px solid #263041;border-radius:12px}.oss-fcu-cols-hd{font-size:calc(12px * var(--fs,1.3));font-weight:700;color:#9ca3af;margin-right:4px}.oss-fcu-col-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:8px;cursor:pointer;transition:all 0.15s;font-size:calc(12px * var(--fs,1.3));font-weight:600;background:#1c2231;border:1px solid rgba(255,255,255,0.06);color:#94a3b8}.oss-fcu-col-btn:hover{border-color:#4b5563}.oss-fcu-col-btn.on{background:#122534;border-color:#38bdf850;color:#38bdf8}.oss-fcu-col-check{font-size:calc(12px * var(--fs,1.3));line-height:1}.oss-fcu-chips{display:flex;flex-wrap:wrap;gap:5px;padding:1px 2px}.oss-fcu-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:7px;background:#1c2231;border:1px solid rgba(255,255,255,0.06)}.oss-fcu-chip-lbl{font-size:calc(10px * var(--fs,1.3));font-weight:600;color:#6b7280}.oss-fcu-chip-val{font-size:calc(12px * var(--fs,1.3));font-weight:700}button.oss-fcu-chip{font:inherit;color:inherit}.oss-fcu-chip--edit{cursor:pointer;transition:all 0.15s}.oss-fcu-chip--edit:hover{border-color:#38bdf850;background:#122534}.oss-fcu-chip-edit{font-size:calc(9px * var(--fs,1.3));color:#4b5563;margin-left:1px}.oss-fcu-chip--edit:hover .oss-fcu-chip-edit{color:#38bdf8}.oss-dlg-input-row{display:flex;align-items:center;gap:6px;margin:4px 0 2px}.oss-dlg-input{flex:1;padding:7px 10px;border-radius:8px;background:#0f151f;border:1px solid #334155;color:#e2e8f0;font-size:calc(15px * var(--fs,1.3));font-weight:700;text-align:right}.oss-dlg-input:focus{outline:none;border-color:#60a5fa}.oss-dlg-input-unit{font-size:calc(13px * var(--fs,1.3));font-weight:700;color:#94a3b8}.oss-building-1col{display:flex;flex-direction:column;gap:7px}.oss-building-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}.oss-building-col{display:flex;flex-direction:column;gap:7px}.oss-bfloor{display:flex;align-items:flex-start;gap:10px;border:1px solid rgba(255,255,255,0.07);border-radius:10px;padding:7px 10px}.oss-bvacant{opacity:0.45}.oss-bfloor-lbl{font-size:calc(13px * var(--fs,1.3));font-weight:700;color:#9ca3af;min-width:36px;text-align:right;flex-shrink:0;padding-top:8px}.oss-bfloor-body{flex:1;display:flex;flex-direction:column;gap:5px;overflow:visible;min-width:0}.oss-gc-bar{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;background:#141b27;border-radius:8px;padding:6px 10px}.oss-gc-item{display:flex;align-items:center;gap:6px}.oss-gc-lbl{font-size:calc(11px * var(--fs,1.3));color:#8b9ab0;white-space:nowrap}.oss-gc-val{font-size:calc(13px * var(--fs,1.3));font-weight:600;color:#e2e8f0;min-width:30px}.oss-gc-valve.oss-sp-fl-editable{cursor:pointer;color:#38bdf8}.oss-gc-toggle{font-size:calc(11px * var(--fs,1.3));font-weight:700;padding:3px 12px;border-radius:6px;border:1px solid #374151;background:#1c2231;color:#6b7280;cursor:pointer}.oss-gc-toggle.on{background:rgba(96,165,250,0.15);color:#60a5fa;border-color:#1e40af}.oss-gc-toggle:disabled{opacity:0.5;cursor:default}.oss-bahu-bar{display:flex;align-items:flex-end;justify-content:space-between;background:#252d3d;border-radius:8px;padding:7px 14px;border:1px solid transparent}.oss-bahu-on{background:rgba(96,165,250,0.10);border-color:rgba(96,165,250,0.28)}.oss-bahu-cmd{cursor:pointer}.oss-bahu-cmd:hover{border-color:rgba(255,255,255,0.18);filter:brightness(1.08)}.oss-bahu-val{display:flex;flex-direction:column;align-items:center;gap:1px;font-size:calc(15px * var(--fs,1.3));font-weight:700;line-height:1}.oss-bval-lbl{font-size:calc(9px * var(--fs,1.3));font-weight:400;color:#6b7280;margin-top:2px}.oss-bahu-supply{color:#38bdf8}.oss-bahu-sp{color:#e2e8f0}.oss-bahu-return{color:#f97316}.oss-bfcu-row{display:flex;gap:5px}.oss-bfcu-empty{flex:1}.oss-bfcu-zone{flex:1}.oss-bfcu-pill{display:flex;align-items:center;width:100%;background:#252d3d;border-radius:8px;padding:9px 10px;border:1px solid #374151}.oss-bfcu-on{background:rgba(96,165,250,0.12);border-color:rgba(96,165,250,0.30)}.oss-bfcu-cmd{cursor:pointer}.oss-bfcu-cmd:hover{border-color:rgba(255,255,255,0.22);filter:brightness(1.08)}.oss-bfcu-temp{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;font-size:calc(12px * var(--fs,1.3));font-weight:500;color:#d1d5db;line-height:1}.oss-bfcu-sp-val{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;font-size:calc(12px * var(--fs,1.3));font-weight:700;color:#e2e8f0;line-height:1}.oss-bfcu-div{width:1px;height:20px;background:#4b5563;margin:0 4px;flex-shrink:0}.oss-bvacant-bar{padding:8px 14px;font-size:calc(11px * var(--fs,1.3));color:#c2410c;background:#1a120a;border-radius:8px;text-align:center;border:1px solid #c2410c30}.oss-bfl-togs{display:flex;gap:3px}.oss-bfl-tog{width:22px;height:22px;border-radius:5px;border:1px solid #374151;background:#1a2236;color:#6b7280;font-size:calc(10px * var(--fs,1.3));font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;transition:background 0.15s,border-color 0.15s,color 0.15s}.oss-bfl-tog:hover{border-color:#60a5fa;color:#60a5fa}.oss-bfl-tog-on{background:rgba(96,165,250,0.18);border-color:#60a5fa;color:#60a5fa}.oss-status-cmd-bar{display:flex;gap:12px;flex-wrap:wrap;border-bottom:1px solid #1e2d45;padding:10px 16px;flex-shrink:0}.oss-scb-row{display:flex;align-items:center;gap:8px;flex:1;min-width:200px}.oss-scb-lbl{font-size:calc(13px * var(--fs,1.3));font-weight:700;color:#9ca3af;min-width:60px;display:flex;align-items:center;gap:5px}.oss-scb-dot-ahu{color:#60a5fa;font-size:calc(10px * var(--fs,1.3))}.oss-scb-dot-fcu{color:#38bdf8;font-size:calc(10px * var(--fs,1.3))}.oss-scb-on,.oss-scb-off{flex:1;padding:9px 0;border-radius:8px;font-size:calc(13px * var(--fs,1.3));font-weight:700;cursor:pointer;border:none;transition:opacity 0.15s}.oss-scb-on:hover,.oss-scb-off:hover{opacity:0.85}.oss-scb-on{background:linear-gradient(135deg,#3b82f6,#38bdf8);color:#fff;border:1px solid transparent}.oss-scb-off{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:1px solid transparent}.oss-col-header{display:flex;align-items:flex-start;gap:10px;padding:0 11px;margin-bottom:6px}.oss-col-hlbl{min-width:36px;flex-shrink:0}.oss-hsection{font-size:calc(11px * var(--fs,1.3));font-weight:700;color:#6b7280;text-align:center;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:4px}.oss-hahu-bar{flex:1;display:flex;align-items:center;justify-content:space-between;padding:0 14px}.oss-hcol{font-size:calc(12px * var(--fs,1.3));font-weight:600;color:#9ca3af;text-align:center;min-width:36px}.oss-hcol-sp{cursor:pointer;transition:color 0.12s}.oss-hcol-sp:hover{color:#e2e8f0}.oss-hfcu-row{flex:1;display:flex;gap:5px}.oss-hfcu-zone{flex:1;display:flex;align-items:center;padding:0 10px;justify-content:space-between}.oss-hfcu-zone .oss-hcol{flex:1}.oss-hfcu-sep{width:1px;height:14px;background:#374151;flex-shrink:0;margin:0 2px}.oss-col-header-all{margin-bottom:8px}.oss-hsp-bar{width:100%}.oss-hsp-title{font-size:calc(11px * var(--fs,1.3));font-weight:700;color:#6b7280;text-align:center;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:6px}.oss-hsp-row{display:flex;gap:5px}.oss-hsp-zone{flex:1;display:flex;align-items:center;justify-content:center;min-height:30px}.oss-hsp-lbl{font-size:calc(13px * var(--fs,1.3));font-weight:700;color:#6b7280;letter-spacing:0.06em;text-transform:uppercase;cursor:pointer;padding:5px 14px;border-radius:8px;transition:background 0.12s,color 0.12s;border:1px solid transparent}.oss-hsp-lbl:hover{color:#e2e8f0;background:rgba(255,255,255,0.05);border-color:rgba(255,255,255,0.1)}.oss-hsp-edit-lbl{font-size:calc(11px * var(--fs,1.3));font-weight:700;color:#9ca3af;letter-spacing:0.04em;white-space:nowrap;flex-shrink:0}.oss-sp-edit{display:flex;align-items:center;gap:7px;flex:1;justify-content:center;flex-wrap:nowrap}.oss-sp-input{width:68px;background:#252d3d;border:1px solid #4b5563;border-radius:6px;padding:4px 8px;color:#e2e8f0;font-size:calc(15px * var(--fs,1.3));font-weight:700;text-align:center;outline:none;-moz-appearance:textfield;flex-shrink:0}.oss-sp-input::-webkit-outer-spin-button,.oss-sp-input::-webkit-inner-spin-button{-webkit-appearance:none}.oss-sp-input:focus{border-color:#60a5fa}.oss-sp-apply{padding:3px 9px;border-radius:6px;font-size:calc(11px * var(--fs,1.3));font-weight:600;background:rgba(96,165,250,0.14);border:1px solid rgba(96,165,250,0.38);color:#60a5fa;cursor:pointer;white-space:nowrap;transition:background 0.14s}.oss-sp-apply:hover{background:rgba(96,165,250,0.26)}.oss-sp-cancel{background:none;border:none;color:#6b7280;cursor:pointer;font-size:calc(12px * var(--fs,1.3));padding:2px 4px;border-radius:4px;line-height:1}.oss-sp-cancel:hover{color:#e2e8f0}.oss-sp-ok{font-size:calc(10px * var(--fs,1.3));color:#60a5fa;white-space:nowrap}.oss-sp-err{font-size:calc(10px * var(--fs,1.3));color:#f97316;white-space:nowrap}.oss-temp-btn{cursor:pointer;border-radius:5px;padding:2px 5px;margin:-2px -5px;transition:background 0.12s}.oss-temp-btn:hover{background:rgba(255,255,255,0.08)}.oss-temp-active{background:rgba(255,255,255,0.13)!important;outline:1px solid currentColor;outline-offset:2px}.oss-status-main{display:flex;gap:14px;align-items:flex-start}.oss-building-wrap{flex:1;min-width:0}.oss-graph-panel{width:360px;flex-shrink:0;background:#141b27;border-radius:14px;padding:16px;border:1px solid rgba(255,255,255,0.08)}.oss-graph-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.oss-graph-title{font-size:calc(13px * var(--fs,1.3));font-weight:700}.oss-graph-close{background:none;border:none;color:#6b7280;cursor:pointer;font-size:calc(14px * var(--fs,1.3));padding:2px 8px;border-radius:5px;line-height:1;flex-shrink:0}.oss-graph-close:hover{color:#e2e8f0;background:#252d3d}.oss-gr-tabbar{display:flex;gap:4px;margin-bottom:12px}.oss-gr-tab{flex:1;padding:6px;border-radius:7px;font-size:calc(12px * var(--fs,1.3));font-weight:600;border:1px solid #2d3748;cursor:pointer;background:transparent;color:#6b7280;transition:all 0.14s}.oss-gr-tab.active{background:#252d3d;color:#e2e8f0;border-color:#4b5563}.oss-gr-tab:hover{opacity:0.85}.oss-gr-custom{display:flex;align-items:center;gap:6px;margin-bottom:10px;padding:7px 10px;background:#1a2236;border-radius:8px;border:1px solid rgba(255,255,255,0.07)}.oss-gr-date{flex:1;min-width:0;background:#0f172a;border:1px solid #2d3748;color:#cbd5e1;border-radius:6px;font-size:calc(11px * var(--fs,1.3));padding:4px 6px;cursor:pointer}.oss-gr-date:focus{outline:none;border-color:#60a5fa}.oss-gr-date-sep{color:#4b5563;font-size:calc(12px * var(--fs,1.3));flex-shrink:0}.oss-gr-apply{flex-shrink:0;background:#12233a;border:1px solid #60a5fa;color:#60a5fa;border-radius:6px;font-size:calc(11px * var(--fs,1.3));font-weight:600;padding:4px 10px;cursor:pointer;transition:background 0.12s}.oss-gr-apply:hover:not(:disabled){background:#27472f}.oss-gr-apply:disabled{opacity:0.5;cursor:default}.oss-gr-export-main{background:#60a5fa;color:#0f172a;border-color:#60a5fa;font-weight:700}.oss-gr-export-main:hover:not(:disabled){background:#3db890}.oss-export-desc{font-size:calc(11px * var(--fs,1.3));color:#4b5563;text-align:center;padding:8px 0 2px;line-height:1.5}.oss-exp-date-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}.oss-exp-date-lbl{font-size:calc(11px * var(--fs,1.3));color:#6b7280;flex-shrink:0;min-width:28px}.oss-exp-date-inp{flex:1}.oss-exp-cols-wrap{background:#1a2236;border-radius:8px;padding:9px 10px;border:1px solid rgba(255,255,255,0.07);margin-bottom:10px}.oss-exp-cols-hdr{display:flex;align-items:center;gap:5px;margin-bottom:7px}.oss-exp-cols-title{font-size:calc(11px * var(--fs,1.3));font-weight:600;color:#9ca3af;flex:1}.oss-exp-sel-btn{font-size:calc(10px * var(--fs,1.3));padding:2px 7px;border-radius:4px;border:1px solid #374151;background:#252d3d;color:#9ca3af;cursor:pointer}.oss-exp-sel-btn:hover{background:#2d3748;color:#cbd5e1}.oss-exp-grp-row{display:flex;align-items:center;gap:0;margin-bottom:5px}.oss-exp-grp-row:last-child{margin-bottom:0}.oss-exp-grp-name{font-size:calc(10px * var(--fs,1.3));color:#6b7280;font-weight:600;min-width:38px;flex-shrink:0}.oss-exp-col-lbl{display:flex;align-items:center;gap:3px;flex:1;font-size:calc(11px * var(--fs,1.3));color:#cbd5e1;cursor:pointer;padding:1px 4px}.oss-exp-col-lbl:hover{color:#e2e8f0}.oss-exp-cb{cursor:pointer;accent-color:#60a5fa;width:12px;height:12px;flex-shrink:0}.oss-exp-dl-btn{width:100%;margin-top:2px;padding:9px;font-size:calc(13px * var(--fs,1.3))}.oss-export-err{font-size:calc(11px * var(--fs,1.3));color:#f87171;margin-bottom:7px;padding:5px 8px;background:rgba(239,68,68,0.1);border-radius:6px;border:1px solid rgba(239,68,68,0.2)}.oss-graph-body{min-height:140px;display:flex;align-items:center;justify-content:center}.oss-graph-msg{color:#4b5563;font-size:calc(12px * var(--fs,1.3));text-align:center;line-height:1.6}.oss-graph-err{color:#f87171}.oss-graph-pid{font-size:calc(10px * var(--fs,1.3));color:#6b7280;font-family:monospace;word-break:break-all}.oss-graph-pid-row{font-size:calc(10px * var(--fs,1.3));color:#4b5563;font-family:monospace;margin-top:2px;word-break:break-all}.oss-graph-stats{display:flex;align-items:stretch;background:#1a2236;border-radius:10px;margin-top:12px;border:1px solid rgba(255,255,255,0.06);overflow:hidden}.oss-gstat{flex:1;padding:10px 8px;display:flex;flex-direction:column;align-items:center;gap:3px}.oss-gstat-sep{width:1px;background:rgba(255,255,255,0.06);flex-shrink:0}.oss-gstat-val{font-size:calc(17px * var(--fs,1.3));font-weight:700;color:#e2e8f0}.oss-gstat-lbl{font-size:calc(10px * var(--fs,1.3));color:#6b7280;text-align:center}.oss-graph-cal{margin-top:12px}.oss-graph-cal-lbl{font-size:calc(10px * var(--fs,1.3));color:#6b7280;font-weight:600;margin-bottom:6px;text-transform:uppercase;letter-spacing:0.04em}.oss-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.oss-cal-title{font-size:calc(11px * var(--fs,1.3));font-weight:600;color:#cbd5e1}.oss-cal-nav-btn{background:none;border:none;color:#6b7280;cursor:pointer;font-size:calc(16px * var(--fs,1.3));line-height:1;padding:2px 4px;border-radius:4px;transition:color 0.12s}.oss-cal-nav-btn:hover:not(:disabled){color:#e2e8f0}.oss-cal-nav-btn:disabled{opacity:0.25;cursor:default}.oss-cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:3px}.oss-cal-dow-lbl{text-align:center;font-size:calc(9px * var(--fs,1.3));color:#4b5563;font-weight:600;padding:2px 0}.oss-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;user-select:none;-webkit-user-select:none}.oss-cal-day{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3px 0;border-radius:5px;cursor:pointer;min-height:28px;transition:background 0.1s}.oss-cal-empty{cursor:default}.oss-cal-dn{font-size:calc(10px * var(--fs,1.3));color:#9ca3af;line-height:1.2}.oss-cal-avg{font-size:calc(7px * var(--fs,1.3));line-height:1.2;font-weight:600}.oss-cal-biz{color:#f59e0b}.oss-cal-all{color:#38bdf8}.oss-graph-cal-lbl{display:flex;align-items:center;justify-content:space-between}.oss-cal-legend{font-size:calc(9px * var(--fs,1.3));font-weight:400;color:#6b7280;text-transform:none;letter-spacing:0;display:flex;align-items:center;gap:6px}.oss-cal-biz-dot{display:inline-block;width:7px;height:7px;border-radius:2px;background:#f59e0b}.oss-cal-all-dot{display:inline-block;width:7px;height:7px;border-radius:2px;background:#38bdf8}.oss-cal-biz-lbl{color:#f59e0b;font-size:calc(10px * var(--fs,1.3));font-weight:600}.oss-cal-all-lbl{color:#38bdf8;font-size:calc(10px * var(--fs,1.3));font-weight:600}.oss-cal-day:not(.oss-cal-empty):not(.oss-cal-future):hover{background:rgba(255,255,255,0.06)}.oss-cal-today .oss-cal-dn{color:#60a5fa;font-weight:700}.oss-cal-future{cursor:default;opacity:0.3}.oss-cal-sel{background:rgba(96,165,250,0.18)}.oss-cal-sel .oss-cal-dn{color:#60a5fa;font-weight:600}.oss-cal-dragging{background:rgba(96,165,250,0.10)}.oss-cal-dragging .oss-cal-dn{color:#a7f3d0}.oss-cal-summary{margin-top:8px;padding:7px 10px;background:#1a2236;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:calc(11px * var(--fs,1.3));color:#9ca3af}.oss-cal-summary strong{color:#e2e8f0}.oss-cal-actions{display:flex;align-items:center;gap:5px;flex-shrink:0}.oss-cal-export-btn{background:#12233a;border:1px solid #60a5fa;color:#60a5fa;border-radius:5px;font-size:calc(10px * var(--fs,1.3));font-weight:600;padding:2px 8px;cursor:pointer;transition:background 0.12s;white-space:nowrap}.oss-cal-export-btn:hover:not(:disabled){background:#27472f}.oss-cal-export-btn:disabled{opacity:0.5;cursor:default}.oss-cal-clear{background:none;border:1px solid #374151;color:#6b7280;border-radius:5px;font-size:calc(10px * var(--fs,1.3));padding:2px 8px;cursor:pointer;transition:color 0.12s,border-color 0.12s;flex-shrink:0}.oss-cal-clear:hover{color:#e2e8f0;border-color:#6b7280}.oss-sp-fl-editable{cursor:text}.oss-sp-fl-editable:hover{color:#e2e8f0!important;text-decoration:underline dotted}.oss-sp-fl-wrap{display:flex;flex-direction:row!important;align-items:center;gap:3px;flex:1;justify-content:center}.oss-sp-fl-input{width:56px;background:#0f172a;border:1px solid #4b5563;border-radius:5px;color:#e2e8f0;font-size:calc(15px * var(--fs,1.3));font-weight:700;text-align:center;padding:2px 5px;outline:none;-moz-appearance:textfield;flex-shrink:0}.oss-sp-fl-input::-webkit-outer-spin-button,.oss-sp-fl-input::-webkit-inner-spin-button{-webkit-appearance:none}.oss-sp-fl-input:focus{border-color:#60a5fa}.oss-sp-fl-btn{background:none;border:none;cursor:pointer;font-size:calc(12px * var(--fs,1.3));padding:2px 4px;border-radius:4px;line-height:1;flex-shrink:0}.oss-sp-fl-ok-btn{color:#60a5fa}.oss-sp-fl-ok-btn:hover{background:rgba(96,165,250,0.15)}.oss-sp-fl-x-btn{color:#6b7280}.oss-sp-fl-x-btn:hover{color:#e2e8f0}.oss-sp-fl-ok{color:#60a5fa;font-weight:700;font-size:calc(14px * var(--fs,1.3))}.oss-sp-fl-err{color:#f97316;font-size:calc(10px * var(--fs,1.3))}.oss-fstop-row{display:flex;flex-direction:row;align-items:center;gap:5px;padding:4px 2px 2px 0;border-top:1px solid rgba(255,255,255,0.05);width:100%;box-sizing:border-box;overflow:visible}.oss-fstop-open{background:transparent;border:1px solid rgba(255,255,255,0.12);border-radius:4px;color:rgba(255,255,255,0.35);padding:5px 10px;cursor:pointer;font-size:calc(12px * var(--fs,1.3));transition:color 0.12s,border-color 0.12s;white-space:nowrap;flex-shrink:0}.oss-fstop-open:hover{color:rgba(255,255,255,0.65);border-color:rgba(255,255,255,0.28)}.oss-fstop-input{background:#0f172a;border:1px solid rgba(255,255,255,0.2);border-radius:4px;color:#e2e8f0;padding:5px 7px;font-size:calc(13px * var(--fs,1.3));min-width:88px;width:88px;flex-shrink:0;outline:none;box-sizing:border-box}.oss-fstop-input:focus{border-color:#60a5fa}.oss-fstop-btn{background:#12233a;border:1px solid #1e40af;border-radius:4px;color:#60a5fa;padding:5px 12px;cursor:pointer;font-size:calc(12px * var(--fs,1.3));white-space:nowrap;flex-shrink:0}.oss-fstop-btn:hover{background:#17304d}.oss-fstop-pill{color:#fbbf24;font-size:calc(10px * var(--fs,1.3));font-weight:500;white-space:nowrap;flex:1;overflow:hidden;text-overflow:ellipsis}.oss-fstop-cancel{background:transparent;border:none;color:rgba(255,255,255,0.3);cursor:pointer;padding:0 4px;font-size:calc(12px * var(--fs,1.3));line-height:1;flex-shrink:0}.oss-fstop-cancel:hover{color:#f87171}.oss-fstop-cancel-danger{color:#f87171;background:#2a1414;border:1px solid #f8717160;border-radius:6px;padding:3px 10px;font-size:calc(11px * var(--fs,1.3));font-weight:600}.oss-fstop-cancel-danger:hover{background:#4a1d1d;color:#fca5a5}.oss-fsched-edit-row{flex-direction:column;align-items:stretch;gap:3px}.oss-fsched-dt-pair{display:flex;align-items:center;gap:4px}.oss-fsched-dt-pair .oss-fsched-dt{flex:1;min-width:0;width:auto}.oss-fsched-dt-acts{display:flex;align-items:center;gap:4px;justify-content:flex-end}.oss-fsched-lbl{color:rgba(255,255,255,0.45);font-size:calc(12px * var(--fs,1.3));white-space:nowrap;flex-shrink:0}.oss-fsched-dt{min-width:0;width:168px;color-scheme:dark;padding:5px 7px;font-size:calc(13px * var(--fs,1.3))}.oss-fsched-start{color:#60a5fa}.oss-fsched-fired{color:rgba(255,255,255,0.3);font-size:calc(10px * var(--fs,1.3))}.oss-scb-group{flex:1;min-width:200px;display:flex;flex-direction:column;gap:6px}.oss-scb-sched{padding:4px 8px;background:transparent;border:1px solid rgba(255,255,255,0.15);border-radius:6px;color:rgba(255,255,255,0.35);cursor:pointer;font-size:calc(11px * var(--fs,1.3));white-space:nowrap;flex-shrink:0;transition:color 0.12s,border-color 0.12s}.oss-scb-sched:hover{color:rgba(255,255,255,0.65);border-color:rgba(255,255,255,0.3)}.oss-scb-sched-on{color:#fbbf24;border-color:#fbbf2450}.oss-scb-selpicker{padding:9px 0;font-size:calc(13px * var(--fs,1.3));font-weight:700;background:rgba(255,255,255,0.12);color:rgba(255,255,255,0.85);border-color:rgba(255,255,255,0.18)}.oss-scb-selpicker:hover{background:rgba(255,255,255,0.18);color:#fff;border-color:rgba(255,255,255,0.3)}.oss-scb-selpicker.oss-scb-sched-on{background:rgba(96,165,250,0.18);color:#93c5fd;border-color:rgba(96,165,250,0.45)}.oss-bulk-sched-panel{display:flex;flex-direction:column;gap:0;padding:10px 12px;background:#0f172a;border:1px solid rgba(255,255,255,0.08);border-radius:8px}.oss-bulk-group-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 0;border-top:1px solid rgba(255,255,255,0.05)}.oss-bulk-default-row{}.oss-bulk-group-num{width:16px;height:16px;border-radius:50%;background:#1e3a4a;color:#38bdf8;font-size:calc(10px * var(--fs,1.3));font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.oss-bulk-group-def{font-size:calc(10px * var(--fs,1.3));color:#4b5563;font-weight:600;background:#1c2231;border-radius:3px;padding:1px 5px;flex-shrink:0}.oss-bulk-lbl{font-size:calc(11px * var(--fs,1.3));color:#6b7280;flex-shrink:0}.oss-bulk-arrow{font-size:calc(11px * var(--fs,1.3));color:#374151;flex-shrink:0}.oss-bulk-floors{flex:1;min-width:80px;background:#141a27;border:1px solid rgba(255,255,255,0.12);border-radius:4px;color:#e2e8f0;padding:3px 6px;font-size:calc(11px * var(--fs,1.3));outline:none}.oss-bulk-floors:focus{border-color:#38bdf8}.oss-bulk-dt{background:#141a27;border:1px solid rgba(255,255,255,0.12);border-radius:4px;color:#e2e8f0;padding:8px 10px;font-size:calc(14px * var(--fs,1.3));color-scheme:dark;flex-shrink:0;outline:none;min-width:200px}.oss-bulk-dt:focus{border-color:#60a5fa}.oss-bulk-def-toggle{font-size:calc(11px * var(--fs,1.3));font-weight:600;padding:3px 8px;border-radius:4px;border:1px solid;cursor:pointer;flex-shrink:0;white-space:nowrap}.oss-bulk-def-toggle:hover{filter:brightness(1.15)}.oss-bulk-actions{display:flex;align-items:center;gap:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,0.06);margin-top:2px}.oss-bulk-add-btn{background:transparent;border:1px dashed rgba(255,255,255,0.2);border-radius:4px;color:rgba(255,255,255,0.4);font-size:calc(11px * var(--fs,1.3));padding:3px 8px;cursor:pointer;flex-shrink:0}.oss-bulk-add-btn:hover{color:rgba(255,255,255,0.7);border-color:rgba(255,255,255,0.4)}.oss-bulk-active-hd{font-size:calc(10px * var(--fs,1.3));font-weight:600;color:#4b5563;letter-spacing:0.04em;text-transform:uppercase;padding:4px 0 2px;border-bottom:1px solid rgba(255,255,255,0.06);margin-bottom:2px}.oss-bulk-active-row{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:3px 0}.oss-bulk-active-lbl{font-size:calc(11px * var(--fs,1.3));font-weight:600;color:#94a3b8;min-width:60px;flex-shrink:0}.routine-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.65);z-index:1000;display:flex;align-items:center;justify-content:center}.routine-modal{background:#151c28;border:1px solid rgba(255,255,255,0.1);border-radius:10px;width:580px;max-width:95vw;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(0,0,0,0.55)}.routine-modal-hdr{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,0.08);flex-shrink:0}.routine-modal-title{display:flex;align-items:center;gap:8px;font-size:calc(14px * var(--fs,1.3));font-weight:600;color:#e2e8f0}.routine-close{background:none;border:none;color:#64748b;font-size:calc(16px * var(--fs,1.3));cursor:pointer;padding:3px 6px;border-radius:4px}.routine-close:hover{color:#e2e8f0;background:rgba(255,255,255,0.06)}.routine-modal-body{overflow-y:auto;padding:14px 18px;flex:1}.routine-loading{color:#64748b;font-size:calc(13px * var(--fs,1.3));text-align:center;padding:24px 0}.routine-error{color:#f87171;font-size:calc(13px * var(--fs,1.3));text-align:center;padding:24px 0}.rtn-list{display:flex;flex-direction:column;gap:8px}.rtn-list-top{padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,0.06)}.rtn-empty{color:#4b5563;font-size:calc(12px * var(--fs,1.3));text-align:center;padding:20px 0}.rtn-card{background:rgba(255,255,255,0.025);border:1px solid rgba(255,255,255,0.07);border-radius:6px;padding:10px 12px}.rtn-card-hdr{display:flex;align-items:center;justify-content:space-between;gap:8px}.rtn-card-name{font-size:calc(13px * var(--fs,1.3));font-weight:600;color:#e2e8f0}.rtn-card-acts{display:flex;gap:5px;flex-shrink:0}.rtn-card-summary{margin-top:7px;display:flex;flex-wrap:wrap;gap:4px}.rtn-chip{font-size:calc(10px * var(--fs,1.3));color:#94a3b8;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:3px;padding:2px 7px}.rtn-empty-entries{font-size:calc(10px * var(--fs,1.3));color:#374151}.rtn-btn{font-size:calc(11px * var(--fs,1.3));padding:4px 10px;border-radius:4px;cursor:pointer;border:1px solid transparent;font-family:inherit;font-weight:500;transition:background 0.1s}.rtn-btn-new{background:rgba(96,165,250,0.1);color:#60a5fa;border-color:rgba(96,165,250,0.3)}.rtn-btn-new:hover{background:rgba(96,165,250,0.18)}.rtn-btn-apply{background:rgba(96,165,250,0.1);color:#60a5fa;border-color:rgba(96,165,250,0.25)}.rtn-btn-apply:hover{background:rgba(96,165,250,0.2)}.rtn-btn-edit{background:rgba(255,255,255,0.05);color:#94a3b8;border-color:rgba(255,255,255,0.1)}.rtn-btn-edit:hover{color:#e2e8f0;background:rgba(255,255,255,0.09)}.rtn-btn-del{background:rgba(248,113,113,0.07);color:#f87171;border-color:rgba(248,113,113,0.2)}.rtn-btn-del:hover{background:rgba(248,113,113,0.15)}.rtn-btn-save{background:#12233a;color:#60a5fa;border-color:#1e40af}.rtn-btn-save:hover{background:#15803d}.rtn-btn-cancel{background:rgba(255,255,255,0.05);color:#64748b;border-color:rgba(255,255,255,0.08)}.rtn-btn-cancel:hover{color:#94a3b8}.rtn-btn-add{background:rgba(255,255,255,0.05);color:#94a3b8;border-color:rgba(255,255,255,0.1)}.rtn-btn-add:hover{color:#e2e8f0}.rtn-edit{display:flex;flex-direction:column;gap:12px}.rtn-edit-title{font-size:calc(12px * var(--fs,1.3));font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:0.05em;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,0.06)}.rtn-name-row{display:flex;align-items:center;gap:8px}.rtn-label{font-size:calc(11px * var(--fs,1.3));color:#64748b;flex-shrink:0}.rtn-name-input{flex:1;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);border-radius:4px;color:#e2e8f0;font-size:calc(13px * var(--fs,1.3));padding:5px 9px;font-family:inherit}.rtn-name-input:focus{outline:none;border-color:rgba(96,165,250,0.45)}.rtn-devices{display:flex;flex-direction:column;gap:8px}.rtn-device-section{background:rgba(255,255,255,0.025);border:1px solid rgba(255,255,255,0.07);border-radius:6px;padding:10px 12px}.rtn-device-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.rtn-device-label{font-size:calc(12px * var(--fs,1.3));font-weight:600;color:#cbd5e1}.rtn-remove-device{background:none;border:none;color:#374151;cursor:pointer;font-size:calc(12px * var(--fs,1.3));padding:1px 5px;border-radius:3px}.rtn-remove-device:hover{color:#f87171}.rtn-group-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:4px 0}.rtn-group-default{background:rgba(255,255,255,0.02);border-radius:4px;padding:5px 7px}.rtn-badge{font-size:calc(10px * var(--fs,1.3));font-weight:600;color:#64748b;background:rgba(255,255,255,0.06);border-radius:3px;padding:1px 5px;flex-shrink:0}.rtn-badge-def{color:#60a5fa;background:rgba(96,165,250,0.1)}.rtn-remaining{font-size:calc(11px * var(--fs,1.3));color:#94a3b8;flex-shrink:0}.rtn-vac-btn{font-size:calc(10px * var(--fs,1.3));padding:2px 7px;border-radius:3px;cursor:pointer;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.04);color:#f87171;font-family:inherit;flex-shrink:0}.rtn-vac-btn.on{color:#86efac;border-color:rgba(52,211,153,0.3);background:rgba(52,211,153,0.08)}.rtn-floors-input{flex:1;min-width:80px;max-width:120px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);border-radius:3px;color:#e2e8f0;font-size:calc(11px * var(--fs,1.3));padding:3px 6px;font-family:inherit}.rtn-floors-input:focus{outline:none;border-color:rgba(96,165,250,0.4)}.rtn-time-lbl{font-size:calc(10px * var(--fs,1.3));font-weight:600;flex-shrink:0}.rtn-time-input{width:74px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);border-radius:3px;color:#e2e8f0;font-size:calc(11px * var(--fs,1.3));padding:3px 5px;font-family:inherit}.rtn-time-input:focus{outline:none;border-color:rgba(96,165,250,0.4)}.rtn-sep{font-size:calc(11px * var(--fs,1.3));color:#374151}.rtn-remove-group{background:none;border:none;color:#374151;cursor:pointer;font-size:calc(11px * var(--fs,1.3));padding:1px 4px}.rtn-remove-group:hover{color:#f87171}.rtn-add-group-btn{font-size:calc(10px * var(--fs,1.3));color:rgba(255,255,255,0.28);background:transparent;border:1px dashed rgba(255,255,255,0.12);border-radius:3px;padding:2px 8px;cursor:pointer;margin-top:3px;display:inline-block}.rtn-add-group-btn:hover{color:rgba(255,255,255,0.6);border-color:rgba(255,255,255,0.28)}.rtn-simple-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.rtn-add-device{display:flex;align-items:center;gap:8px}.rtn-dev-select{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);border-radius:4px;color:#94a3b8;font-size:calc(12px * var(--fs,1.3));padding:4px 8px;font-family:inherit;cursor:pointer}.rtn-dev-select:focus{outline:none}.rtn-edit-footer{display:flex;justify-content:flex-end;gap:8px;padding-top:12px;border-top:1px solid rgba(255,255,255,0.06)}.routine-sidebar-btn{display:flex;align-items:center;gap:6px;width:100%;background:rgba(96,165,250,0.07);border:1px solid rgba(96,165,250,0.18);border-radius:5px;color:#60a5fa;font-size:calc(12px * var(--fs,1.3));padding:6px 10px;cursor:pointer;font-family:inherit;font-weight:500}.routine-sidebar-btn:hover{background:rgba(96,165,250,0.14);border-color:rgba(96,165,250,0.3)}.oss-dblock .ovw-proposal{background:rgba(249,115,22,0.12);border-color:rgba(249,115,22,0.35);max-width:50%}.oss-dblock .ovw-proposal-hd{color:#e2e8f0}.oss-dblock .ovw-proposal-fc{color:#9ca3af}.oss-dblock .ovw-proposal-times{color:#e2e8f0}.oss-dblock .ovw-proposal-times b{border-bottom-color:#6b7280}.oss-dblock .ovw-proposal-time-input{background:#0f172a;border-color:rgba(255,255,255,0.2);color:#e2e8f0}.oss-dblock .ovw-proposal-modes-lbl{color:#9ca3af}.oss-dblock .ovw-proposal-hint{color:#6b7280}.oss-dblock .ovw-chip{background:#1c2231;color:#9ca3af}.oss-dblock .ovw-chip-warn{background:rgba(234,179,8,0.15);color:#eab308}.oss-dblock .ovw-chip-danger{background:rgba(239,68,68,0.15);color:#f87171}.oss-dblock .ovw-chip-active{background:#C9A84C22;color:#C9A84C}.oss-run-tab>.ovw-proposal{background:rgba(249,115,22,0.12);border-color:rgba(249,115,22,0.35);margin-bottom:10px}.oss-run-tab>.ovw-proposal .ovw-proposal-hd{color:#e2e8f0}.oss-run-tab>.ovw-proposal .ovw-proposal-fc{color:#9ca3af}.oss-run-tab>.ovw-proposal .ovw-proposal-hint{color:#9ca3af}.oss-run-tab>.ovw-proposal .ovw-chip{background:#1c2231;color:#9ca3af}.oss-run-tab>.ovw-proposal .ovw-chip-danger{background:rgba(239,68,68,0.15);color:#f87171}
.ao-page{max-width:1560px}.ao-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:18px}.ao-head-main h1{font-size:22px;font-weight:700}.ao-addr{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--text-muted);margin-top:6px}.ao-addr svg{width:14px;height:14px;flex-shrink:0;color:var(--primary-bright)}.ao-scope{font-size:12px;color:var(--text-faint);margin-top:5px}.ao-scope b{color:var(--primary-bright);font-weight:600}.ao-strip-head{display:flex;align-items:center;gap:10px;margin:0 0 9px;flex-wrap:wrap}.ao-strip-title{font-size:11px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-faint)}.ao-badge-static{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:600;letter-spacing:0.02em;color:var(--warning);background:var(--warning-dim);border:1px solid rgba(246,195,68,0.25);border-radius:999px;padding:2px 8px}.ao-badge-static svg{width:11px;height:11px}.ao-kpi-grid{margin-bottom:18px}.ao-kpi-grid.ao-kpi-6{grid-template-columns:repeat(6,minmax(0,1fr))}.ao-kpi-grid.ao-kpi-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:1240px){.ao-kpi-grid.ao-kpi-6{grid-template-columns:repeat(3,minmax(0,1fr))}.ao-kpi-grid.ao-kpi-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.ao-kpi-grid.ao-kpi-6,.ao-kpi-grid.ao-kpi-4{grid-template-columns:repeat(2,minmax(0,1fr))}}.ao-kpi-grid .kpi-card{display:flex;flex-direction:column}.ao-kpi-grid .kpi-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ao-kpi-grid .kpi-value{font-variant-numeric:tabular-nums}.ao-kpi-grid .kpi-unit{white-space:nowrap}.ao-kpi-grid .kpi-sub{margin-top:auto;line-height:1.35;min-height:2.7em}.ao-unit-card{display:contents}.ao-unit-card .kpi-card{cursor:pointer}.ao-unit-card:focus-visible .kpi-card{outline:2px solid var(--primary-bright);outline-offset:2px}.ao-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;min-width:0;display:flex;flex-direction:column}.ao-tabpanel{padding:0}.ao-tabbar{display:flex;gap:2px;padding:0 14px;flex-wrap:wrap;border-bottom:1px solid var(--border);flex-shrink:0}.ao-tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-family:inherit;font-size:13px;font-weight:600;padding:11px 15px;cursor:pointer;transition:color .12s,border-color .12s;white-space:nowrap}.ao-tab:hover{color:var(--text)}.ao-tab.active{color:var(--primary-bright);border-bottom-color:var(--primary-bright)}.ao-tab:focus-visible{outline:2px solid var(--primary-bright);outline-offset:-3px}.ao-tabbody{padding:16px 18px;min-width:0;min-height:26rem}.ao-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-rows:31rem;column-gap:32px;align-items:stretch}.ao-split>.ao-col + .ao-col{border-left:1px solid var(--border);padding-left:32px;margin-left:-16px}@media (max-width:1180px){.ao-split{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;row-gap:26px}.ao-split>.ao-col + .ao-col{border-left:none;padding-left:0;margin-left:0}}.ao-col{min-width:0;display:flex;flex-direction:column}.ao-col .ao-scroll{flex:1 1 auto;min-height:0;max-height:none}.ao-col .ao-evlist{flex:1 1 auto;min-height:0;overflow-y:auto}.ao-evlist{max-width:34rem}.ao-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:12px}.ao-panel-title{font-size:14px;font-weight:600}.ao-numctl{display:flex;align-items:center;gap:8px}.ao-step{display:flex;align-items:center;gap:2px;padding:2px;background:rgba(255,255,255,0.04);border:1px solid var(--border);border-radius:7px}.ao-step>span{min-width:3.6rem;text-align:center;font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums;letter-spacing:0.02em}.ao-step button{display:flex;align-items:center;justify-content:center;width:22px;height:20px;padding:0;border:none;border-radius:5px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .12s}.ao-step button:hover:not(:disabled){background:var(--primary-dim);color:var(--primary-bright)}.ao-step button:disabled{color:var(--text-faint);cursor:default;opacity:0.45}.ao-step svg{width:13px;height:13px}.ao-table-wrap{overflow-x:auto;border-radius:6px;border:1px solid var(--border)}.ao-table{width:100%;border-collapse:collapse;font-size:12px}.ao-table thead tr{background:rgba(82,183,136,0.08)}.ao-table th{padding:8px 10px;text-align:left;font-weight:600;color:var(--text-muted);white-space:nowrap;border-bottom:1px solid var(--border);position:sticky;top:0;background:#1a2129}.ao-table td{padding:7px 10px;border-bottom:1px solid rgba(255,255,255,0.04);color:var(--text);white-space:nowrap}.ao-table tbody tr:last-child td{border-bottom:none}.ao-table .num{text-align:right;font-variant-numeric:tabular-nums}.ao-table .ao-floor-cell{font-weight:600}.ao-table .ao-tenant{max-width:15rem;overflow:hidden;text-overflow:ellipsis}.ao-table .dim{color:var(--text-faint)}.ao-row-hover{cursor:help;transition:background .12s}.ao-row-hover:hover{background:rgba(82,183,136,0.06)}.ao-row-vacant td{background:rgba(246,195,68,0.05)}.ao-row-vacant:hover td{background:rgba(246,195,68,0.09)}.ao-total-row td{border-top:1px solid var(--border);background:rgba(255,255,255,0.02);font-weight:700;color:var(--text)}.ao-table .ao-term-soon{color:var(--warning);font-weight:600}.ao-table .ao-term-past{color:var(--danger);font-weight:600}.ao-tip{position:fixed;z-index:400;pointer-events:none;min-width:13rem;max-width:19rem;background:#0f151c;border:1px solid rgba(82,183,136,0.28);border-radius:var(--radius);padding:11px 13px;box-shadow:0 10px 30px rgba(0,0,0,0.55);opacity:0;transform:translateY(-3px);transition:opacity .1s}.ao-tip.show{opacity:1}.ao-tip-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px;font-weight:700;color:var(--primary-bright);padding-bottom:7px;margin-bottom:7px;border-bottom:1px solid var(--border)}.ao-tip-head span:last-child{font-size:10.5px;font-weight:500;color:var(--text-faint)}.ao-tip-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;font-size:11.5px;padding:2px 0}.ao-tip-row>span:first-child{color:var(--text-muted)}.ao-tip-row>span:last-child{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.ao-tip-foot{margin-top:8px;padding-top:7px;border-top:1px solid var(--border);font-size:10.5px;color:var(--text-faint);line-height:1.45}.ao-occ-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-bottom:16px;margin-bottom:22px;border-bottom:1px solid var(--border)}.ao-seg{display:flex;gap:2px;padding:2px;background:rgba(255,255,255,0.04);border:1px solid var(--border);border-radius:7px}.ao-seg button{border:none;background:transparent;color:var(--text-muted);font-family:inherit;font-size:11px;font-weight:600;padding:4px 10px;border-radius:5px;cursor:pointer;transition:all .12s}.ao-seg button:hover{color:var(--text)}.ao-seg button.active{background:var(--primary-dim);color:var(--primary-bright)}.ao-range{display:flex;align-items:center;gap:6px}.ao-range select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 7px;font-size:11px;font-family:inherit;cursor:pointer}.ao-range select:focus{outline:none;border-color:var(--primary-bright)}.ao-range-sep{color:var(--text-faint);font-size:11px}.ao-chart{width:100%;max-width:46rem;display:block}.ao-chart .ao-grid-line{stroke:rgba(255,255,255,0.06);stroke-width:1}.ao-chart .ao-axis-lbl{fill:var(--text-faint);font-size:9.5px}.ao-chart .ao-line{fill:none;stroke:#52b788;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.ao-chart .ao-area{fill:url(#aoOccFill)}.ao-chart .ao-dot{fill:#52b788}.ao-chart .ao-dot-ev{fill:var(--warning)}.ao-chart .ao-hit{fill:transparent;cursor:crosshair}.ao-chart .ao-hit:hover + .ao-hover-mark,.ao-chart .ao-hover-mark.on{opacity:1}.ao-chart .ao-hover-mark{opacity:0;stroke:rgba(255,255,255,0.22);stroke-width:1}.ao-chart-wrap{position:relative;max-width:46rem}.ao-chart-wrap .ao-chart{cursor:crosshair}.ao-chart .ao-hover-line{stroke:rgba(255,255,255,0.28);stroke-width:1;stroke-dasharray:3 3}.ao-chart .ao-hover-dot{fill:#fff;stroke:#52b788;stroke-width:2}.ao-chart-tip{position:absolute;z-index:6;pointer-events:none;white-space:nowrap;background:#0d1420;border:1px solid #263041;border-radius:8px;padding:5px 9px;font-size:11px;color:var(--text);box-shadow:0 6px 18px rgba(0,0,0,0.42)}.ao-chart-tip b{color:var(--text-muted);font-weight:600}.ao-chart-tip-note{display:block;color:var(--text-faint);font-size:9.5px;margin-top:2px}.ao-occ-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;max-width:46rem}.ao-occ-stat{background:rgba(255,255,255,0.02);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 11px}.ao-occ-stat-lbl{font-size:10px;color:var(--text-faint);font-weight:600;letter-spacing:0.04em}.ao-occ-stat-val{font-size:17px;font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums}.ao-occ-stat-sub{font-size:10px;color:var(--text-muted);margin-top:2px}.ao-up{color:var(--primary-bright)}.ao-down{color:var(--warning)}.ao-scroll{overflow-y:auto;max-height:44rem}.ao-mini{width:100%;border-collapse:collapse;font-size:11.5px}.ao-mini th{padding:6px 8px;text-align:left;font-weight:600;color:var(--text-muted);border-bottom:1px solid var(--border);position:sticky;top:0;background:#1a2129;white-space:nowrap}.ao-mini td{padding:6px 8px;border-bottom:1px solid rgba(255,255,255,0.04);vertical-align:top}.ao-mini tbody tr:last-child td{border-bottom:none}.ao-mini .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ao-mini .ao-note{color:var(--text-muted);font-size:10.5px;line-height:1.4;white-space:normal}.ao-mini .ao-bar-cell{min-width:6.5rem}.ao-bar{position:relative;height:4px;border-radius:2px;background:rgba(255,255,255,0.06);margin-top:4px}.ao-bar>i{position:absolute;inset:0 auto 0 0;border-radius:2px;background:var(--primary-bright);display:block}.ao-ev{display:flex;gap:10px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,0.04)}.ao-ev:last-child{border-bottom:none}.ao-ev-date{font-size:10.5px;color:var(--text-faint);font-variant-numeric:tabular-nums;white-space:nowrap;padding-top:1px}.ao-ev-note{font-size:11.5px;color:var(--text);line-height:1.45}.ao-subhead{font-size:10px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-faint);margin:0 0 9px;padding-bottom:7px;border-bottom:1px solid var(--border)}.ao-empty{color:var(--text-faint);font-size:12px;padding:18px 0;text-align:center}.ao-setup{max-width:46rem;gap:12px}.ao-setup-title{font-size:15px;font-weight:700;color:var(--warning)}.ao-setup p{font-size:13px;color:var(--text-muted);line-height:1.6;margin:0}.ao-setup ol{margin:0;padding-left:1.3rem;display:flex;flex-direction:column;gap:8px}.ao-setup li{font-size:13px;color:var(--text);line-height:1.6}.ao-setup code{background:rgba(255,255,255,0.06);border-radius:var(--radius-sm);padding:1px 6px;font-size:12px;color:var(--primary-bright)}.ao-setup-note{font-size:11.5px;color:var(--text-faint);line-height:1.6}.bv-host{display:flex;flex-direction:column;gap:10px}.bv-wrap{display:grid;grid-template-columns:minmax(0,1fr) 19rem;gap:20px;align-items:start}@media (max-width:1180px){.bv-wrap{grid-template-columns:minmax(0,1fr)}}.bv-stage{background:linear-gradient(180deg,rgba(255,255,255,0.02),transparent 60%);border-radius:var(--radius);min-height:26rem;padding:8px}.bv-svg{width:100%;height:42rem;display:block}.bv-floor-lbl{fill:#ffffff;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,'Helvetica Neue',Arial,sans-serif;font-style:normal;font-weight:700;letter-spacing:0.02em;paint-order:stroke;stroke:rgba(0,0,0,0.55);stroke-width:calc(var(--bv-sw) * 2);pointer-events:none}.bv-lv{cursor:pointer}.bv-top{fill:#2a323c;stroke:rgba(255,255,255,0.16);stroke-width:var(--bv-sw);stroke-linejoin:round}.bv-wall{fill:#1b212a;stroke:rgba(255,255,255,0.10);stroke-width:var(--bv-sw);stroke-linejoin:round}.bv-top.bv-office{fill:var(--primary)}.bv-wall.bv-office{fill:#2d6b4f}.bv-under .bv-top{fill:#202630}.bv-under .bv-wall{fill:#171c24}.bv-under .bv-top.bv-office{fill:#2a4a3c}.bv-under .bv-wall.bv-office{fill:#1e3830}.bv-under{opacity:0.55}.bv-lv:hover .bv-top{fill:var(--primary-bright)}.bv-lv:hover .bv-wall{fill:#35785a}.bv-sel .bv-top{fill:var(--primary-bright)}.bv-sel .bv-wall{fill:#35785a}.bv-sel .bv-top,.bv-sel .bv-wall{stroke:#cdece0}.bv-detail{background:rgba(255,255,255,0.02);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.bv-detail-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.bv-detail-floor{font-size:18px;font-weight:700}.bv-block{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.bv-block-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;flex-wrap:wrap}.bv-block-head>span:first-child{font-size:10px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-faint)}.bv-tenants{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.bv-tenants li{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-size:12.5px;line-height:1.35}.bv-tenant-name{font-weight:600}.bv-tenant-area{color:var(--text-muted);font-size:11px;font-variant-numeric:tabular-nums}.bv-tenant-unit{margin-left:auto;color:var(--text-faint);font-size:10.5px}.bv-tenants li.vacant .bv-tenant-name{color:var(--warning)}.bv-run{font-weight:700;font-size:12px}.bv-run.on{color:var(--primary-bright)}.bv-run.off{color:var(--text-muted)}.bv-na{color:var(--text-faint)}.bv-degc{color:var(--text-muted);font-size:11px;margin-left:1px}.bv-facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 12px;margin:0}.bv-facts dt{color:var(--text-muted);font-size:12px;white-space:nowrap}.bv-facts dd{margin:0;font-size:13px;text-align:right;word-break:break-word}.bv-sub{color:var(--text-faint);font-size:11px}.bv-vacant{color:var(--danger)}.bv-hint{color:var(--text-muted);font-size:12px;margin-bottom:12px}.bv-controls{display:flex;gap:6px}.bv-btn{background:transparent;border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);padding:4px 9px;cursor:pointer;font-size:12px;display:inline-flex;align-items:center;gap:4px}.bv-btn:hover{background:var(--surface-hover);color:var(--text)}.bv-btn.on{border-color:var(--primary);color:var(--primary-bright);background:var(--primary-dim)}.bv-btn svg{width:14px;height:14px}.bv-legend{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px;font-size:12px;color:var(--text-muted)}.bv-legend span{display:inline-flex;align-items:center;gap:6px}.bv-sw{width:11px;height:11px;border-radius:2px;display:inline-block}.bv-sw-office{background:var(--primary)}.bv-sw-other{background:#2a323c}.bv-sw-under{background:#202630;opacity:0.6}.bv-empty{color:var(--text-muted);font-size:13px;padding:3rem 1rem;text-align:center}.bv-empty code{display:inline-block;margin-top:8px;color:var(--primary-bright)}