:root,html[data-theme=light]{color-scheme:light;--font-main: Arial, Helvetica, sans-serif;--radius-xs: 3px;--radius-sm: 5px;--radius-md: 7px;--radius-lg: 9px;--radius-pill: 999px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--font-size-page-title: 26px;--font-size-section-title: 18px;--font-size-card-title: 16px;--font-size-body: 14px;--font-size-table: 13px;--font-size-label: 11px;--font-size-caption: 12px;--font-size-metric: 32px;--font-weight-normal: 400;--font-weight-medium: 600;--font-weight-bold: 800;--bg-page: #f3f5f7;--bg-surface: #ffffff;--bg-surface-alt: #f8fafc;--bg-sidebar: #111820;--bg-sidebar-hover: #1b2631;--bg-sidebar-active: #243241;--text-main: #111827;--text-muted: #667085;--text-soft: #98a2b3;--text-inverse: #f9fafb;--border: #dde3ea;--border-strong: #c9d2dc;--primary: #1f6feb;--primary-hover: #185cc7;--accent: #0ea5e9;--success: #16803c;--warning: #b7791f;--danger: #c03221;--offline: #64748b;--success-bg: #e8f7ee;--warning-bg: #fff3d6;--danger-bg: #fde8e5;--offline-bg: #e8edf2;--shadow-card: 0 1px 2px rgba(16, 24, 40, .08);--shadow-float: 0 8px 20px rgba(16, 24, 40, .08);--bg-color: var(--bg-page);--bg: var(--bg-page);--widget-bg: var(--bg-surface);--panel: var(--bg-surface);--panel-strong: var(--bg-surface-alt);--panel-soft: var(--bg-surface-alt);--soft-surface: var(--bg-surface-alt);--surface-1: var(--bg-surface);--surface-2: var(--bg-surface-alt);--surface-3: #edf2f8;--surface-strong: var(--bg-surface-alt);--surface-soft: var(--bg-page);--sidebar-bg: var(--bg-sidebar);--banner-bg: var(--bg-sidebar);--banner-text: var(--text-inverse);--tab-strip-bg: var(--bg-surface);--tab-bg: var(--bg-surface-alt);--tab-bg-hover: #edf2f8;--tab-bg-active: var(--primary);--tab-text: var(--text-main);--tab-muted: var(--text-muted);--panel-header-bg: var(--bg-surface-alt);--control-bg: var(--bg-surface-alt);--control-bg-hover: #edf2f8;--input-bg: var(--bg-surface-alt);--text-primary: var(--text-main);--text-secondary: var(--text-muted);--text: var(--text-main);--muted: var(--text-muted);--border-color: var(--border);--line: var(--border);--line-strong: var(--border-strong);--accent-primary: var(--primary);--accent-primary-hover: var(--primary-hover);--accent-hover: var(--primary-hover);--accent-secondary: var(--success);--accent-danger: var(--danger);--accent-strong: var(--primary-hover);--danger-hover: #a5281c;--offline-color: var(--offline);--shadow-color: rgba(16, 24, 40, .08);--shadow: var(--shadow-card);--card-gradient: var(--bg-surface);--hero-gradient: var(--bg-surface);--page-gradient: var(--bg-page);--radius: var(--radius-sm);--radius-sharp: var(--radius-sm)}html[data-theme=dark],body.dark-mode{color-scheme:dark;--bg-page: #0d1117;--bg-surface: #151b23;--bg-surface-alt: #1b232d;--bg-sidebar: #070a0e;--bg-sidebar-hover: #111820;--bg-sidebar-active: #1c2833;--text-main: #f3f6fa;--text-muted: #a5b0be;--text-soft: #778392;--text-inverse: #f9fafb;--border: #2a3542;--border-strong: #3a4654;--primary: #2f81f7;--primary-hover: #58a6ff;--accent: #38bdf8;--success: #5ee08a;--warning: #f4c152;--danger: #ff7b72;--offline: #b7c0cc;--success-bg: rgba(46, 160, 67, .18);--warning-bg: rgba(187, 128, 9, .22);--danger-bg: rgba(248, 81, 73, .18);--offline-bg: rgba(139, 148, 158, .18);--shadow-card: 0 1px 2px rgba(0, 0, 0, .35);--shadow-float: 0 10px 24px rgba(0, 0, 0, .28);--bg-color: var(--bg-page);--bg: var(--bg-page);--widget-bg: var(--bg-surface);--panel: var(--bg-surface);--panel-strong: var(--bg-surface-alt);--panel-soft: var(--bg-surface);--soft-surface: var(--bg-surface);--surface-1: var(--bg-surface-alt);--surface-2: #171f29;--surface-3: #202a36;--surface-strong: var(--bg-surface-alt);--surface-soft: var(--bg-surface-alt);--sidebar-bg: var(--bg-sidebar);--banner-bg: var(--bg-sidebar);--banner-text: var(--text-inverse);--tab-strip-bg: var(--bg-surface);--tab-bg: #111820;--tab-bg-hover: var(--bg-sidebar-hover);--tab-bg-active: var(--primary);--tab-text: var(--text-main);--tab-muted: var(--text-muted);--panel-header-bg: var(--bg-surface-alt);--control-bg: #111820;--control-bg-hover: var(--bg-sidebar-hover);--input-bg: #111820;--text-primary: var(--text-main);--text-secondary: var(--text-muted);--text: var(--text-main);--muted: var(--text-muted);--border-color: var(--border);--line: var(--border);--line-strong: var(--border-strong);--accent-primary: var(--primary);--accent-primary-hover: var(--primary-hover);--accent-hover: var(--primary-hover);--accent-secondary: var(--success);--accent-danger: var(--danger);--accent-strong: var(--primary);--danger-hover: #da3633;--offline-color: var(--offline);--shadow-color: rgba(0, 0, 0, .28);--shadow: var(--shadow-card);--card-gradient: var(--bg-surface);--hero-gradient: var(--bg-surface);--page-gradient: var(--bg-page);--radius: var(--radius-sm);--radius-sharp: var(--radius-sm)}:where(html){background:var(--bg-page);color:var(--text-main);font-family:var(--font-main)}:where(body){background:var(--bg-page);color:var(--text-main);font-family:var(--font-main);font-size:var(--font-size-body)}:where(button,input,textarea,select){font:inherit}:where(.app){min-height:100vh;display:grid;grid-template-columns:250px 1fr}:where(.main){padding:var(--space-xl);overflow:auto}:where(.sidebar){background:var(--bg-sidebar);color:var(--text-inverse)}:where(.nav-item){min-height:38px;border-radius:var(--radius-sm)}:where(.page-title h1){margin:0;font-size:var(--font-size-page-title);font-weight:var(--font-weight-bold);letter-spacing:0}:where(.page-title p){margin:6px 0 0;color:var(--text-muted);font-size:var(--font-size-body)}:where(.card){background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-lg)}:where(.card-header){display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md);margin-bottom:14px}:where(.card-title){margin:0;font-size:var(--font-size-card-title);font-weight:var(--font-weight-bold)}:where(.card-subtitle){margin:4px 0 0;color:var(--text-muted);font-size:var(--font-size-table);line-height:1.4}:where(.btn,button.btn){min-height:38px;border-radius:var(--radius-sm);border:1px solid transparent;padding:0 14px;font-size:13px;font-weight:var(--font-weight-bold);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap}:where(.btn-primary,.btn.primary,.primary-btn){background:var(--primary);color:#fff}:where(.btn-primary,.btn.primary,.primary-btn):hover{background:var(--primary-hover)}:where(.btn-secondary,.btn.secondary,button.secondary,.ghost-btn){background:var(--bg-surface);color:var(--text-main);border-color:var(--border)}:where(.btn-secondary,.btn.secondary,button.secondary,.ghost-btn):hover{background:var(--bg-surface-alt);border-color:var(--border-strong)}:where(.btn-danger,.btn.danger,button.danger,.danger-btn){background:var(--danger);color:#fff}:where(.input,.select,input.input,select.select){width:100%;min-height:38px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-surface-alt);color:var(--text-main);padding:0 10px;font-size:var(--font-size-body);outline:none}:where(.input,.select,input,select,textarea):focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px #1f6feb2e;outline:2px solid transparent}:where(.form-grid){display:grid;gap:var(--space-md)}:where(.field label){display:block;margin-bottom:6px;color:var(--text-muted);font-size:var(--font-size-label);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.06em}:where(.status-pill){min-height:24px;padding:0 9px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;gap:6px;font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);white-space:nowrap}:where(.status-pill):before{content:"";width:6px;height:6px;border-radius:var(--radius-pill);background:currentColor}:where(.normal,.status-ok,.status-online){background:var(--success-bg);color:var(--success)}:where(.warning,.status-warn,.status-lag){background:var(--warning-bg);color:var(--warning)}:where(.alarm,.status-error,.status-critical){background:var(--danger-bg);color:var(--danger)}:where(.offline,.status-unknown,.status-offline){background:var(--offline-bg);color:var(--offline)}:where(.table-wrap){border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-surface);box-shadow:var(--shadow-card)}:where(.table-wrap table){width:100%;border-collapse:collapse;font-size:var(--font-size-table)}:where(.table-wrap thead){background:var(--bg-surface-alt);color:var(--text-muted);font-size:var(--font-size-label);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.06em}:where(.table-wrap th,.table-wrap td){padding:12px 13px;text-align:left;border-bottom:1px solid var(--border)}:where(.table-wrap tbody tr:last-child td){border-bottom:0}:where(.table-wrap tbody tr:hover){background:var(--bg-surface-alt)}:where(.chart-box){height:220px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-surface-alt);padding:18px}@media(max-width:1100px){:where(.app){grid-template-columns:1fr}:where(.app>.sidebar){display:none}}@media(max-width:700px){:where(.main){padding:var(--space-lg)}}:root{--bg-color: var(--bg-page);--sidebar-bg: var(--bg-sidebar);--widget-bg: var(--bg-surface);--text-primary: var(--text-main);--text-secondary: var(--text-muted);--border-color: var(--border);--accent-primary: var(--primary);--accent-primary-hover: var(--primary-hover);--accent-secondary: var(--success);--accent-danger: var(--danger);--shadow-color: rgba(16, 24, 40, .08);--banner-bg: var(--bg-sidebar);--banner-text: var(--text-inverse);--tab-strip-bg: var(--bg-surface);--tab-bg: var(--bg-surface-alt);--tab-bg-hover: #edf2f8;--tab-bg-active: var(--primary);--tab-text: var(--text-main);--tab-muted: var(--text-muted);--surface-strong: var(--bg-surface-alt);--surface-soft: var(--bg-page);--panel-header-bg: var(--bg-surface-alt);--control-bg: var(--bg-surface-alt);--control-bg-hover: #edf2f8}.dark-mode{--bg-color: var(--bg-page);--sidebar-bg: var(--bg-sidebar);--widget-bg: var(--bg-surface);--text-primary: var(--text-main);--text-secondary: var(--text-muted);--border-color: var(--border);--accent-primary: var(--primary);--accent-primary-hover: var(--primary-hover);--accent-secondary: var(--success);--accent-danger: var(--danger);--shadow-color: rgba(0, 0, 0, .28);--banner-bg: var(--bg-sidebar);--tab-strip-bg: var(--bg-surface);--tab-bg: #111820;--tab-bg-hover: var(--bg-sidebar-hover);--tab-bg-active: var(--primary);--tab-text: var(--text-main);--tab-muted: var(--text-muted);--banner-text: var(--text-inverse);--surface-strong: var(--bg-surface-alt);--surface-soft: var(--bg-surface-alt);--panel-header-bg: var(--bg-surface-alt);--control-bg: #111820;--control-bg-hover: var(--bg-sidebar-hover)}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--font-main);background-color:var(--bg-color);color:var(--text-primary);transition:background-color .3s,color .3s}body{margin:0;display:flex;flex-direction:column;height:100vh;overflow:hidden;background:var(--bg-color)}.banner{background:var(--banner-bg);color:var(--banner-text);padding:1rem;font-size:1.5rem;font-weight:600;display:flex;justify-content:space-between;align-items:center;box-shadow:none;border-bottom:1px solid var(--border-color);z-index:10;flex-shrink:0}.banner-brand{display:inline-flex;align-items:center;gap:.7rem;min-width:0}.portfolio-nav-toggle{width:31px;height:31px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid rgba(34,211,238,.72);background:transparent;color:#22d3ee;cursor:pointer;font-size:.9rem;transition:background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease;flex:0 0 auto}.portfolio-nav-toggle:hover{background:#22d3ee1f;color:var(--banner-text);box-shadow:0 0 0 4px #22d3ee14;transform:translateY(-1px)}.banner-actions{display:flex;align-items:center;gap:.75rem}.banner-sync-status{display:inline-flex;align-items:center;gap:.45rem;height:40px;padding:0 .78rem;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--surface-strong);color:var(--text-secondary);cursor:pointer;font-size:.78rem;font-weight:700;white-space:nowrap;transition:border-color .2s ease,color .2s ease,background .2s ease,transform .2s ease}.banner-sync-status.hidden{display:none}.banner-sync-status:hover{transform:translateY(-1px);color:var(--text-primary);border-color:#3b82f673}.sync-status-dot{width:8px;height:8px;border-radius:999px;background:#94a3b8;box-shadow:0 0 0 3px #94a3b81f}.banner-sync-status.status-ok .sync-status-dot{background:#22c55e;box-shadow:0 0 0 3px #22c55e24}.banner-sync-status.status-warn .sync-status-dot{background:#f59e0b;box-shadow:0 0 0 3px #f59e0b24}.banner-sync-status.status-error .sync-status-dot{background:#ef4444;box-shadow:0 0 0 3px #ef444424}.banner-sync-status.status-pending .sync-status-dot{background:#38bdf8;box-shadow:0 0 0 3px #38bdf824}.portfolio-site-sync-chip,.portfolio-site-alarm-chip{width:max-content;max-width:100%;display:inline-flex;align-items:center;gap:.42rem;margin-top:.42rem;padding:.25rem .45rem;border:1px solid var(--border-color);border-radius:5px;background:#0f172a38;color:var(--text-secondary);font-size:.68rem;font-weight:800;line-height:1}.portfolio-site-alarm-chip{margin-top:.32rem}.portfolio-site-sync-chip .sync-status-dot,.portfolio-site-alarm-chip .sync-status-dot{width:7px;height:7px;box-shadow:0 0 0 2px #94a3b81f}.portfolio-site-sync-chip.status-ok .sync-status-dot{background:#22c55e;box-shadow:0 0 0 2px #22c55e24}.portfolio-site-sync-chip.status-warn .sync-status-dot{background:#f59e0b;box-shadow:0 0 0 2px #f59e0b24}.portfolio-site-sync-chip.status-error .sync-status-dot{background:#ef4444;box-shadow:0 0 0 2px #ef444424}.portfolio-site-sync-chip.status-pending .sync-status-dot{background:#38bdf8;box-shadow:0 0 0 2px #38bdf824}.portfolio-site-alarm-chip.status-ok{border-color:#22c55e40;background:#22c55e14;color:#86efac}.portfolio-site-alarm-chip.status-ok .sync-status-dot{background:#22c55e;box-shadow:0 0 0 2px #22c55e24}.portfolio-site-alarm-chip.status-alarm{border-color:#ef444452;background:#ef44441a;color:#fca5a5}.portfolio-site-alarm-chip.status-alarm .sync-status-dot{background:#ef4444;box-shadow:0 0 0 2px #ef444429}.portfolio-drawer-overlay{position:fixed;inset:0;z-index:1200;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .25s ease}.portfolio-drawer-overlay.open{opacity:1;pointer-events:auto}.portfolio-nav-drawer{position:fixed;left:0;top:0;bottom:0;z-index:1201;width:min(430px,100vw);display:flex;flex-direction:column;overflow:hidden;background:#141518;border-right:1px solid rgba(255,255,255,.12);color:#e8eaf0;box-shadow:18px 0 40px #00000052;transform:translate(-100%);transition:transform .32s cubic-bezier(.4,0,.2,1)}.portfolio-nav-drawer.open{transform:translate(0)}.portfolio-node-modal{position:fixed;inset:0;z-index:1300;display:grid;place-items:center;padding:18px;background:#0000009e;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.portfolio-node-modal.hidden{display:none}.portfolio-node-modal-card{width:min(520px,100%);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-lg);background:#141518;color:#e8eaf0;box-shadow:var(--shadow-float);overflow:hidden}.portfolio-node-modal-header{min-height:64px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.08)}.portfolio-node-modal-header h2{margin:0;color:#f5f7ff;font-size:1rem}.portfolio-node-modal-header p{margin:5px 0 0;color:#7d879c;font-size:.78rem;line-height:1.35}.portfolio-node-form{display:grid;gap:14px;padding:18px}.portfolio-node-form label{display:grid;gap:7px}.portfolio-node-form .portfolio-editor-btn.hidden,.portfolio-node-form label.hidden{display:none}.portfolio-node-form label span{color:#8c96ac;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.portfolio-node-form input{width:100%;height:38px;border:1px solid rgba(255,255,255,.12);border-radius:7px;background:#101116;color:#f5f7ff;padding:0 11px;font:inherit;font-size:.86rem}.portfolio-node-form input:focus{outline:2px solid rgba(34,211,238,.32);border-color:#22d3eeb8}.portfolio-node-parent-control{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:8px;align-items:center}.portfolio-node-parent-control input{padding-right:11px}.portfolio-parent-clear-btn{width:28px;height:28px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#141720;color:#9aa3b7;cursor:pointer;justify-self:center}.portfolio-parent-clear-btn:hover{border-color:#22d3ee9e;color:#22d3ee}.portfolio-parent-clear-btn i{font-size:.75rem}#portfolioNodeParentCreate{margin-top:6px;justify-content:center}.portfolio-node-modal-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:4px}.portfolio-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 14px;border-bottom:1px solid rgba(255,255,255,.07);flex:0 0 auto}.portfolio-drawer-actions{display:inline-flex;align-items:center;gap:8px}.portfolio-drawer-title{display:inline-flex;align-items:center;gap:10px;font-size:.95rem;font-weight:800;color:#f5f7ff}.portfolio-drawer-title i{width:18px;color:#22d3ee}.portfolio-drawer-close{width:30px;height:30px;border-radius:7px;border:1px solid rgba(255,255,255,.12);background:transparent;color:#9499a8;cursor:pointer;transition:background .15s ease,color .15s ease}.portfolio-drawer-close:hover{background:#202228;color:#f5f7ff}.portfolio-breadcrumb{min-height:35px;display:flex;align-items:center;gap:7px;padding:12px 18px 0;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.72rem;flex:0 0 auto}.portfolio-crumb{border:0;padding:0;background:transparent;color:#9499a8;cursor:pointer;font:inherit}.portfolio-crumb.active,.portfolio-crumb:hover{color:#22d3ee}.portfolio-bc-sep{color:#5a5f6e}.portfolio-level-tabs{display:flex;gap:6px;padding:12px 18px 0;border-bottom:1px solid rgba(255,255,255,.07);flex:0 0 auto;overflow-x:auto}.portfolio-level-tabs::-webkit-scrollbar{height:3px}.portfolio-level-tabs::-webkit-scrollbar-thumb{background:#30333b;border-radius:999px}.portfolio-level-tab{flex:1 0 auto;min-width:66px;padding:9px 8px;border:0;border-bottom:2px solid transparent;background:transparent;color:#5f6677;cursor:pointer;font:inherit;font-size:.78rem;font-weight:600}.portfolio-level-tab.active{color:#22d3ee;border-bottom-color:#22d3ee}.portfolio-level-tab:focus-visible{outline:2px solid #f59e0b;outline-offset:-2px;border-radius:4px}.portfolio-panel{display:none;flex:1 1 auto;overflow-y:auto;padding:16px 14px 24px}.portfolio-panel.active{display:block}.portfolio-panel::-webkit-scrollbar{width:4px}.portfolio-panel::-webkit-scrollbar-thumb{background:#30333b;border-radius:999px}.portfolio-level-editor{display:block;padding:14px 14px 18px;border-bottom:1px solid rgba(255,255,255,.07);background:#141518;flex:0 0 auto}.portfolio-level-editor.hidden{display:none}.portfolio-level-editor-list{display:grid;gap:8px}.portfolio-level-editor-head{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center;padding:0 8px;color:#9aa4bb;font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.portfolio-level-editor-head span:last-child{width:104px}.portfolio-level-editor-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center;padding:8px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#1a1b1f}.portfolio-level-editor-row input{min-width:0;height:32px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#111216;color:#e8eaf0;padding:0 9px;font:inherit;font-size:.76rem}.portfolio-level-editor-row input:focus{outline:2px solid rgba(34,211,238,.35);border-color:#22d3eeb8}.portfolio-level-editor-row-actions{display:inline-flex;gap:4px}.portfolio-level-icon-btn,.portfolio-editor-btn{height:32px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:transparent;color:#aeb8ce;cursor:pointer;font:inherit;font-size:.75rem;transition:background .15s ease,color .15s ease,border-color .15s ease}.portfolio-level-icon-btn{width:32px}.portfolio-level-icon-btn:hover,.portfolio-editor-btn:hover{background:#202228;color:#f5f7ff}.portfolio-level-icon-btn.is-on{border-color:#f59e0bcc;background:#f59e0b29;color:#fbbf24}.portfolio-level-icon-btn:disabled{opacity:.35;cursor:not-allowed}.portfolio-editor-btn:disabled{opacity:.45;cursor:not-allowed}.portfolio-editor-btn:disabled:hover{background:transparent;color:#aeb8ce}.portfolio-level-editor-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.portfolio-editor-btn{display:inline-flex;align-items:center;gap:7px;padding:0 11px;font-weight:700}.portfolio-editor-btn.primary{border-color:#22d3ee94;background:#22d3ee1f;color:#22d3ee}.portfolio-editor-btn.reset{border-color:#22d3ee52;background:#22d3ee12;color:#22d3ee}.portfolio-section-title{margin:16px 0 10px;color:#667087;font-size:.66rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.portfolio-section-title:first-child{margin-top:0}.portfolio-dashboard-link-row{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:14px}.portfolio-empty-state{border:1px dashed rgba(255,255,255,.14);border-radius:var(--radius-lg);color:#7d879c;padding:18px 14px;font-size:.82rem;text-align:center}.portfolio-site-assignment{margin:12px 0 16px;padding:10px;border:1px solid rgba(34,211,238,.18);border-radius:var(--radius-lg);background:#22d3ee0a}.portfolio-assignment-note{margin-bottom:9px;color:#7d879c;font-size:.72rem;line-height:1.35}.portfolio-pool-assignment{margin-top:12px;padding:10px;border:1px solid rgba(245,158,11,.2);border-radius:var(--radius-lg);background:#f59e0b0a}.portfolio-pool-row{width:100%;min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#1a1b1f;color:#f5f7ff;cursor:pointer;padding:9px 11px;text-align:left;font:inherit;margin-bottom:7px}.portfolio-pool-row:hover{border-color:#f59e0b73;background:#202228}.portfolio-pool-row strong,.portfolio-pool-row small{display:block}.portfolio-pool-row strong{font-size:.8rem}.portfolio-pool-row small{margin-top:4px;color:#7d879c;font-size:.68rem}.portfolio-pool-row i{color:#f59e0b;font-size:.76rem}.portfolio-site-assign-row{min-height:34px;display:flex;align-items:center;gap:10px;color:#c9d4e8;font-size:.8rem;cursor:pointer}.portfolio-site-assign-row input{width:15px;height:15px;accent-color:#22d3ee}.portfolio-site-assign-row span{display:grid;gap:2px}.portfolio-site-assign-row strong{color:#dbe7fa;font-size:.78rem}.portfolio-site-assign-row small{color:#f59e0b;font-size:.66rem}.portfolio-nav-item{width:100%;min-height:44px;display:flex;align-items:center;gap:12px;border:0;border-radius:8px;background:transparent;color:#9ea6ba;cursor:pointer;padding:9px 11px;text-align:left;font:inherit;transition:background .15s ease,color .15s ease}.portfolio-nav-item:hover{background:#202228;color:#f5f7ff}.portfolio-dot{width:6px;height:6px;border-radius:999px;background:#5a5f6e;flex:0 0 auto}.portfolio-dot.green{background:#22c55e}.portfolio-dot.amber{background:#f59e0b}.portfolio-item-label{flex:1 1 auto;min-width:0;font-size:.82rem}.portfolio-item-meta{color:#657086;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.72rem;white-space:nowrap}.portfolio-nav-item i{color:#5a5f6e;font-size:.76rem}.portfolio-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.portfolio-stat-tile{min-height:68px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#1a1b1f;padding:10px 12px}.portfolio-stat-tile span{display:block;margin-bottom:6px;color:#657086;font-size:.64rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.portfolio-stat-tile strong{display:block;color:#f5f7ff;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:1.55rem;line-height:1}.portfolio-stat-tile strong em{color:#657086;font-size:.72rem;font-style:normal}.portfolio-stat-tile strong.amber{color:#f59e0b}.portfolio-stat-tile strong.green{color:#22c55e}.portfolio-region-card,.portfolio-site-card{width:100%;border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.08);background:#1a1b1f;color:#f5f7ff;cursor:pointer;font:inherit;text-align:left;transition:border-color .18s ease,background .18s ease}.portfolio-node-shell{position:relative;margin-bottom:8px}.portfolio-node-shell .portfolio-region-card,.portfolio-node-shell .portfolio-site-card{margin-bottom:0;padding-right:126px}.portfolio-node-actions{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;gap:7px;z-index:1}.portfolio-node-actions .portfolio-level-icon-btn{width:32px;height:32px;border-color:#ffffff24;background:#101218e6;box-shadow:0 8px 18px #0003}.portfolio-node-actions .portfolio-level-icon-btn:hover{border-color:#22d3ee80;color:#22d3ee}.portfolio-region-card{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px;padding:14px 16px}.portfolio-region-card:hover,.portfolio-site-card:hover{border-color:#ffffff2e;background:#202228}.portfolio-region-card.active{border-color:#3b82f6a6;background:#3b82f614}.portfolio-region-card strong,.portfolio-site-card strong{display:block;font-size:.84rem}.portfolio-region-card small,.portfolio-site-card small{display:block;margin-top:7px;color:#657086;font-size:.72rem}.portfolio-summary-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;padding-right:8px}.portfolio-summary-chip{display:inline-flex;align-items:center;gap:6px;min-height:24px;border:1px solid rgba(148,163,184,.16);border-radius:5px;padding:4px 7px;background:#0f172a47;color:var(--text-secondary);font-size:.64rem;font-weight:700;line-height:1}.portfolio-summary-chip strong{display:inline;color:var(--text-primary);font-size:.68rem;font-weight:800}.portfolio-summary-chip.ok{border-color:#22c55e38;background:#22c55e14;color:#86efac}.portfolio-summary-chip.alarm{border-color:#ef444447;background:#ef44441a;color:#fca5a5}.portfolio-badge{flex:0 0 auto;border-radius:999px;margin-right:104px;padding:4px 10px;font-size:.62rem;font-weight:800;line-height:1;white-space:nowrap}.portfolio-badge.green{background:#22c55e29;color:#22c55e}.portfolio-badge.amber{background:#f59e0b29;color:#f59e0b}.portfolio-badge.red{background:#ef444429;color:#f87171}.portfolio-site-card{display:flex;gap:12px;margin-bottom:8px;padding:14px 16px}.portfolio-site-card.active{border-color:#22d3ee9e;background:#22d3ee12}.portfolio-site-icon{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#202228;color:#8bd9ff;flex:0 0 auto}.portfolio-site-main{flex:1 1 auto;min-width:0}.portfolio-chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.portfolio-chip{border-radius:4px;border:1px solid rgba(255,255,255,.1);background:#202228;color:#aeb8ce;padding:3px 7px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.64rem}.banner-chip-btn{display:inline-flex;align-items:center;gap:.5rem;height:40px;padding:0 .95rem;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--surface-strong);color:var(--text-primary);cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s ease}.banner-chip-btn:hover{background:#0f172a1f;transform:translateY(-1px)}.banner-alarm-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:42px;height:40px;border-radius:var(--radius-sm);border:1px solid rgba(147,197,253,.46);background:#1f6feb38;color:var(--banner-text);cursor:pointer;font-size:1.1rem;transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}.banner-alarm-btn:hover{border-color:#3b82f6b8;background:#3b82f633;box-shadow:0 0 0 4px #3b82f61a;transform:translateY(-1px)}.header-alarm-badge{position:absolute;top:-8px;right:-8px;min-width:21px;height:21px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px;border:2px solid var(--banner-bg);border-radius:999px;background:var(--accent-danger);color:#fff;font-size:.7rem;font-weight:900;line-height:1;box-shadow:0 8px 18px #00000047}.header-alarm-badge.hidden{display:none}.banner-chip-btn.is-disabled,#edit-mode-toggle.is-disabled{opacity:.55;cursor:not-allowed;pointer-events:auto}.banner-chip-btn.is-disabled:hover,#edit-mode-toggle.is-disabled:hover{transform:none;box-shadow:none}#edit-mode-toggle,#theme-toggle{background:#f9fafb0a;border:1px solid rgba(249,250,251,.42);color:var(--banner-text);width:40px;height:40px;border-radius:var(--radius-sm);cursor:pointer;font-size:1.2rem;transition:all .2s ease}#edit-mode-toggle.is-off{background:#f59e0b24;color:var(--banner-text);border-color:#fcd34d73}#edit-mode-toggle.is-on{background:#2563eb3d;color:var(--banner-text);border-color:#93c5fd80}#edit-mode-toggle:hover,#theme-toggle:hover{background:#f9fafb1f;transform:scale(1.1)}.dark-mode #edit-mode-toggle,.dark-mode #theme-toggle{border-color:#e8eef82e;color:var(--banner-text)}.dark-mode #edit-mode-toggle.is-off{background:#f59e0b29;color:#fcd34d;border-color:#fcd34d3d}.dark-mode #edit-mode-toggle.is-on{background:#60a5fa24}.dark-mode #edit-mode-toggle:hover,.dark-mode #theme-toggle:hover{background:#e8eef814}.dark-mode .banner-chip-btn{border-color:#e8eef82e;background:#ffffff0d;color:var(--banner-text)}.dark-mode .banner-chip-btn:hover{background:#e8eef814}.dark-mode .banner-alarm-btn{border-color:#60a5fa61;background:#60a5fa1f;color:var(--banner-text)}.dark-mode .banner-alarm-btn:hover{border-color:#60a5fab8;background:#60a5fa2e}.tab-editor-card.dashboard-range-card{width:min(980px,calc(100vw - 48px));max-width:min(980px,calc(100vw - 48px));padding:32px;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--sidebar-bg);box-shadow:var(--shadow-float);overflow:visible}.dashboard-range-card .range-modal-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:24px}.dashboard-range-card .editor-eyebrow{margin:0 0 8px;color:var(--accent-primary);text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;font-weight:700}.dashboard-range-card h2{margin:0;font-size:1.8rem;line-height:1.15;font-weight:700;color:var(--text-primary)}.dashboard-range-card .editor-subtitle{margin:12px 0 0;color:var(--text-secondary);font-size:.95rem;line-height:1.5;max-width:520px}.dashboard-range-card #closeDashboardRangeModal{min-height:0;padding:8px 16px;border-radius:2px;border:1px solid var(--border-color);background:var(--surface-strong);color:var(--text-primary);font-weight:500}.dashboard-range-card #closeDashboardRangeModal:hover{background:var(--tab-bg-hover)}.dashboard-range-card .range-preset-indicator{align-self:flex-start;display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;background:#2563eb33;color:#60a5fa;border:1px solid rgba(37,99,235,.12);font-size:.75rem;font-weight:600}.dashboard-range-card .range-modal-layout{display:flex;gap:24px;align-items:start}.dashboard-range-card .range-modal-main{flex:1;display:grid;gap:20px}.dashboard-range-card .range-dual-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dashboard-range-card .editor-field{display:flex;flex-direction:column;gap:8px}.dashboard-range-card .editor-field.range-date-field{position:relative}.dashboard-range-card .editor-field span{font-size:.8rem;line-height:1;font-weight:700;color:var(--text-secondary)}.dashboard-range-card .editor-field input,.dashboard-range-card .editor-field select{width:100%;background:var(--control-bg);border:1px solid var(--border-color);color:var(--text-primary);padding:12px;border-radius:2px;font-size:.9rem;outline:none}.dashboard-range-card .editor-field.range-date-field input{padding-right:44px}.dashboard-range-card .editor-field input:focus,.dashboard-range-card .editor-field select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent-primary) 28%,transparent)}.dashboard-range-card .editor-field input[type=datetime-local]{color-scheme:light}.dark-mode .dashboard-range-card .editor-field input[type=datetime-local]{color-scheme:dark}.dashboard-range-card .editor-field input[type=datetime-local]::-webkit-calendar-picker-indicator{opacity:0;cursor:pointer;position:absolute;right:12px;width:20px;height:20px}.dashboard-range-card .editor-field.range-date-field:after{content:"";font-family:"Font Awesome 6 Free";font-weight:900;color:var(--text-primary);position:absolute;right:14px;bottom:14px;font-size:.95rem;pointer-events:none;opacity:.92}.dashboard-range-card .range-meta-card{display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:2px;border:1px solid var(--border-color);background:var(--surface-strong)}.dashboard-range-card .range-meta-card strong{color:var(--text-secondary);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700}.dashboard-range-card #dashboardRangeModalSummary{font-size:.9rem;color:var(--text-secondary);line-height:1.5}.dashboard-range-card #dashboardRangeTimeZoneLabel{color:var(--text-primary)}.dashboard-range-card .range-preset-panel{width:280px;display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:2px;border:1px solid var(--border-color);background:var(--surface-soft);box-sizing:border-box}.dashboard-range-card .range-preset-panel strong{color:var(--text-primary);font-size:.9rem;font-weight:700}.dashboard-range-card .range-preset-list{display:flex;flex-direction:column;gap:8px}.dashboard-range-card .range-preset-btn{justify-content:flex-start;text-align:left;width:100%;padding:12px;border-radius:2px;background:var(--control-bg);border:1px solid var(--border-color);color:var(--text-primary);font-size:.9rem;font-weight:600}.dashboard-range-card .range-preset-btn:hover{border-color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 10%,transparent)}.dashboard-range-card .range-preset-btn.active{background:#2563eb1a;border-color:var(--accent-primary);color:var(--text-primary);box-shadow:none}.dashboard-range-card .range-preset-btn.active:hover{background:#2563eb26}.dashboard-range-card .editor-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:32px}.dashboard-range-card #cancelDashboardRangeBtn{padding:12px 24px;border-radius:2px;border:1px solid var(--border-color);background:transparent;color:var(--text-primary);font-weight:600}.dashboard-range-card #applyDashboardRangeBtn{min-width:160px;padding:12px 24px;border-radius:2px;border:none;background:var(--accent-primary);color:#fff;font-weight:600}.dashboard-range-card #applyDashboardRangeBtn:hover{background:var(--accent-primary-hover)}@media(max-width:900px){.tab-editor-card.dashboard-range-card{width:min(980px,calc(100vw - 24px));max-width:min(980px,calc(100vw - 24px));padding:24px}.dashboard-range-card .range-modal-layout{flex-direction:column}.dashboard-range-card .range-preset-panel{width:100%}}@media(max-width:640px){.dashboard-range-card .range-dual-fields{grid-template-columns:1fr}}.assigned-alarm-modal{position:fixed;inset:0;z-index:4500;display:flex;align-items:flex-start;justify-content:center;padding:32px;background:#0206179e;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.assigned-alarm-modal.hidden{display:none}.assigned-alarm-panel{width:min(1400px,calc(100vw - 64px));max-height:calc(100vh - 64px);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--sidebar-bg);color:var(--text-primary);box-shadow:var(--shadow-float)}.assigned-alarm-header,.assigned-alarm-footer{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 20px 14px;border-bottom:1px solid var(--border-color)}.assigned-alarm-footer{align-items:center;justify-content:space-between;padding:12px 20px;border-top:1px solid var(--border-color);border-bottom:0;background:var(--surface-strong)}.assigned-alarm-dismiss-note{max-width:min(720px,70vw);color:var(--text-secondary);font-size:12px;line-height:1.35}.assigned-alarm-dismiss-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}.assigned-alarm-dismiss-config{display:inline-flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:12px;font-weight:700;white-space:nowrap}.assigned-alarm-dismiss-config select{min-width:86px;border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:6px 28px 6px 9px;background:var(--input-bg);color:var(--text-primary);font:inherit}.assigned-alarm-header h2{margin:0;color:var(--text-primary);font-size:15px;font-weight:700;letter-spacing:.01em}.assigned-alarm-header p{margin:4px 0 0;color:var(--text-secondary);font-size:12px}.assigned-alarm-close{border:0;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:18px;line-height:1;padding:0 2px}.assigned-alarm-close:hover{color:var(--text-primary)}.assigned-alarm-table-wrap{overflow:auto}.assigned-alarm-table{width:100%;border-collapse:collapse;font-size:12.5px}.assigned-alarm-table thead tr{background:var(--surface-strong);border-bottom:1px solid var(--border-color)}.assigned-alarm-table th,.assigned-alarm-table td{text-align:left;border-right:1px solid var(--border-color)}.assigned-alarm-table th{padding:10px 18px;color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.assigned-alarm-table td{padding:14px 18px;vertical-align:top;color:var(--text-primary);border-bottom:1px solid var(--border-color)}.assigned-alarm-table th:last-child,.assigned-alarm-table td:last-child{border-right:0}.assigned-alarm-message{min-width:260px;max-width:420px;color:var(--text-primary);font-weight:700;line-height:1.45}.assigned-alarm-priority{display:inline-flex;border-radius:3px;padding:3px 8px;background:#1a5fa8;color:#7ec3f7;font-family:IBM Plex Mono,monospace;font-size:10.5px;font-weight:700;letter-spacing:.04em}.assigned-alarm-state{display:inline-flex;border-radius:3px;padding:3px 9px;background:var(--surface-strong);color:var(--text-secondary);font-size:11px;font-weight:600}.assigned-alarm-user{color:#7ec3f7;font-weight:700}.assigned-alarm-time{min-width:130px;color:var(--text-secondary);font-family:IBM Plex Mono,monospace;font-size:11.5px;line-height:1.5}.assigned-alarm-comment{min-width:220px;min-height:62px;width:100%;resize:vertical;border:1px solid var(--border-color);border-radius:2px;background:var(--control-bg);color:var(--text-primary);font-family:IBM Plex Mono,monospace;font-size:11.5px;line-height:1.5;outline:none;padding:7px 9px}.assigned-alarm-comment::placeholder{color:var(--text-secondary)}.assigned-alarm-comment:focus{border-color:var(--accent-primary)}.assigned-alarm-actions{min-width:300px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.assigned-alarm-actions button,.assigned-alarm-actions select,.assigned-alarm-dismiss{min-height:30px;border:1px solid var(--border-color);border-radius:2px;background:var(--control-bg);color:var(--text-primary);cursor:pointer;font-size:12px;font-weight:700;padding:6px 14px;white-space:nowrap}.assigned-alarm-actions button:hover,.assigned-alarm-actions select:hover,.assigned-alarm-dismiss:hover{background:var(--control-bg-hover);border-color:color-mix(in srgb,var(--accent-primary) 32%,var(--border-color))}.assigned-alarm-actions button.primary{background:var(--accent-primary);border-color:var(--accent-primary);color:#e6f3fd}.assigned-alarm-actions button.primary:hover{background:var(--accent-primary-hover);border-color:var(--accent-primary-hover)}.assigned-alarm-actions button:disabled{opacity:.6;cursor:wait}@media(max-width:760px){.assigned-alarm-modal{padding:16px}.assigned-alarm-panel{width:calc(100vw - 32px);max-height:calc(100vh - 32px)}}.chart-binding-grid,.graphic-binding-grid{display:grid;gap:12px}.chart-binding-row,.graphic-binding-row{padding:20px 16px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--widget-bg) 92%,transparent)}.graphic-binding-grid{gap:16px}.graphic-binding-component{margin-bottom:12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--widget-bg) 96%,transparent);overflow:visible}.graphic-binding-component .drawer-accordion-header{background:color-mix(in srgb,var(--surface-strong) 72%,transparent)}.graphic-binding-component-body{display:grid;gap:12px;padding:12px}.graphic-binding-row{padding:18px;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:color-mix(in srgb,var(--widget-bg) 94%,rgba(255,255,255,.02));box-shadow:0 10px 25px -18px var(--shadow-color);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.graphic-binding-row:hover{border-color:color-mix(in srgb,var(--accent-primary) 50%,var(--border-color));transform:translateY(-1px);box-shadow:0 14px 28px -20px var(--shadow-color)}.graphic-binding-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.graphic-binding-token{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--accent-primary) 24%,transparent);background:color-mix(in srgb,var(--accent-primary) 10%,transparent);color:var(--accent-primary);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.9rem;font-weight:700;line-height:1.2;white-space:nowrap}.graphic-binding-shape{flex:1;text-align:left;font-size:.84rem;color:var(--text-secondary);line-height:1.35;padding-top:4px;min-width:100%}.graphic-binding-row .form-row{margin-top:0;gap:12px;align-items:stretch;grid-template-columns:1fr}.graphic-binding-row .form-group{margin-bottom:.75rem}.graphic-binding-row .form-group:last-child{margin-bottom:0}.graphic-binding-row .form-group label{font-size:.75rem;font-weight:600;letter-spacing:.025em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:6px}.graphic-binding-row select,.graphic-binding-row input[type=text]{min-height:40px;border-radius:var(--radius-sm);background-color:color-mix(in srgb,var(--bg-color) 92%,transparent)}.graphic-binding-row .form-row>.form-group{flex:1 1 0;min-width:0}.text-background-preview{min-height:120px;border:1px solid var(--border-color);border-radius:0;background:#0f131c;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--text-secondary);font-size:.85rem;text-align:center}.text-background-preview img{display:block;width:100%;max-height:180px;object-fit:contain;background:#0f131c}.text-background-preview.is-empty{padding:.75rem;border-style:dashed}.chart-binding-meta{margin-top:8px;font-size:.84rem;color:var(--text-secondary)}@media(max-width:840px){.dashboard-range-layout{grid-template-columns:1fr}}.container{display:flex;flex-grow:1;overflow:hidden}body.auth-locked .menu,body.auth-locked .main,body.auth-locked .properties,body.auth-locked #edit-mode-toggle,body.auth-locked #site-settings-toggle,body.auth-locked #admin-access-toggle{visibility:hidden;pointer-events:none}body.auth-locked .auth-card{box-shadow:var(--shadow-float)}.menu{background-color:var(--sidebar-bg);width:80px;padding:1rem 0;display:flex;flex-direction:column;align-items:center;gap:.75rem;border-right:1px solid var(--border-color);transition:background-color .3s,border-color .3s;z-index:5;flex-shrink:0;box-shadow:none}.menu-spacer{flex:1 1 auto;min-height:.5rem}.menu-btn{width:48px;height:48px;background-color:var(--surface-strong);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:1.2rem;cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center;transition:all .2s ease-in-out}.menu-btn:hover{background-color:var(--tab-bg-hover);color:var(--text-primary);border-color:var(--border-color);transform:none;box-shadow:none}.menu-btn-tool{width:64px;min-height:68px;height:auto;padding:.55rem .35rem;flex-direction:column;gap:.34rem;margin-top:.2rem;background:var(--surface-strong);border-color:var(--border-color);color:var(--text-primary);box-shadow:none}.menu-btn-tool i{font-size:1rem}.menu-btn-label{display:block;max-width:56px;font-size:.62rem;line-height:1.1;font-weight:600;text-transform:uppercase;letter-spacing:.02em;text-align:center;color:inherit}.menu-btn-tool:hover,.menu-btn-tool.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.main{flex-grow:1;padding:1rem;overflow:auto;display:flex;flex-direction:column;gap:1rem;background:var(--bg-color)}.dashboard-tabs{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.35rem .45rem 0;background:var(--tab-strip-bg);border-radius:var(--radius-sm) var(--radius-sm) 0 0;border:1px solid var(--border-color);border-bottom:none}.dashboard-tab-list{display:flex;align-items:center;gap:.2rem;flex-wrap:wrap}.dashboard-tab-shell{display:inline-flex;align-items:center;gap:0;background:var(--tab-bg);border-radius:var(--radius-sm) var(--radius-sm) 0 0;border:1px solid var(--border-color);border-bottom:none;overflow:hidden;cursor:grab}.dashboard-tab-shell.is-dragging{opacity:.45;transform:scale(.98)}.dashboard-tab-shell.drag-target-before{box-shadow:-3px 0 0 0 var(--accent-primary)}.dashboard-tab-shell.drag-target-after{box-shadow:3px 0 0 0 var(--accent-primary)}.dashboard-tab{display:inline-flex;align-items:center;gap:.55rem;border:none;background:var(--tab-bg);color:var(--tab-text);border-radius:0;padding:.62rem .9rem .58rem;cursor:pointer;transition:all .2s ease;min-width:0}.dashboard-tab-icon{width:.95rem;text-align:center;opacity:.92;flex-shrink:0}.dashboard-tab:hover{background:var(--tab-bg-hover)}.dashboard-tab.active{background:var(--tab-bg-active);color:#fff}.dashboard-tab-name{font-weight:600;font-size:.92rem;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-tab-remove{border:none;background:var(--tab-bg);color:var(--tab-muted);cursor:pointer;padding:0;width:2rem;height:100%;display:inline-flex;align-items:center;justify-content:center;border-radius:0;font-size:.82rem}.site-settings-card{max-width:640px}.tab-editor-card.admin-access-card{width:min(1480px,calc(100vw - 24px));max-height:calc(100vh - 24px);display:flex;flex-direction:column}.auth-card{width:min(560px,100%)}.site-settings-subtitle{margin:.35rem 0 0;color:var(--text-secondary);font-size:.92rem;line-height:1.45}.auth-status-message{margin:1rem 1.25rem 0;padding:.9rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:#2563eb14;color:var(--text-secondary);line-height:1.45;font-size:.92rem}.auth-status-message.is-error{border-color:#dc262640;background:#dc262614;color:var(--accent-danger)}.auth-status-message.is-success{border-color:#05966940;background:#05966914;color:var(--accent-secondary)}.auth-form-section+.auth-form-section{border-top:1px solid var(--border-color)}.auth-section-heading{margin-bottom:1rem}.auth-section-heading h4{margin:0 0 .25rem;color:var(--text-primary);font-size:1rem}.auth-section-heading p{margin:0;color:var(--text-secondary);font-size:.92rem;line-height:1.45}.auth-inline-actions{justify-content:flex-start}.auth-footer-actions{padding:0 1.25rem 1.25rem;margin-top:0;justify-content:space-between}.auth-mfa-details{display:grid;gap:.45rem;margin-bottom:1rem}.auth-mfa-qr-wrap{display:flex;justify-content:center;margin-bottom:.35rem}.auth-mfa-qr-image{width:192px;height:192px;padding:10px;border-radius:var(--radius-sm);background:#fff;border:1px solid var(--border-color)}.auth-verify-form{margin-top:1rem}.site-settings-summary{padding:.85rem 1rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#2563eb0f;color:var(--text-secondary);font-size:.9rem;line-height:1.45}.site-settings-section{display:grid;gap:.85rem;margin:0;padding:1rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--panel-muted)}.site-settings-section legend{padding:0 .35rem;color:var(--text-primary);font-weight:700}.site-settings-section .form-group{margin-bottom:0}.btn-danger-text{border:none;background:transparent;color:var(--accent-danger);font-weight:600;cursor:pointer;padding:.75rem .2rem}.btn-danger-text:hover{text-decoration:underline}.dashboard-tab-remove:hover{background:var(--tab-bg-hover);color:#fff}.dashboard-tab-add{display:inline-flex;align-items:center;gap:.5rem;border:none;background:transparent;color:var(--text-secondary);border-radius:var(--radius-sm) var(--radius-sm) 0 0;padding:.55rem .7rem .5rem;cursor:pointer;transition:all .2s ease}.dashboard-tab-add:hover{color:var(--text-primary);background:#2563eb14}.dashboard-tab-add.hidden{display:none!important}.tab-editor-modal{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#0206177a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.tab-editor-card{width:min(560px,100%);background:var(--sidebar-bg);border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-float);overflow:hidden}.tab-editor-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color)}.tab-editor-header h3{margin:0;font-size:1.1rem;color:var(--text-primary)}.tab-editor-close{width:2rem;height:2rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer}.tab-editor-close:hover{background:var(--bg-color);color:var(--text-primary)}.tab-editor-form{padding:1.25rem}.tab-icon-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:.75rem;margin-top:.5rem}.tab-icon-option{display:grid;gap:.45rem;justify-items:center;padding:.85rem .5rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.tab-icon-option:hover{border-color:var(--accent-primary);color:var(--text-primary);transform:translateY(-1px)}.tab-icon-option.active{border-color:var(--accent-primary);background:#3b82f61f;color:var(--accent-primary);box-shadow:0 0 0 2px #3b82f624}.tab-icon-option i{font-size:1.1rem}.tab-icon-option span{font-size:.82rem;font-weight:600}.tab-editor-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.tab-editor-actions .btn-secondary,.tab-editor-actions .btn-primary{width:auto;min-width:112px}.admin-access-tabs{display:flex;gap:8px;padding:16px 24px 0}.admin-access-tab{border:1px solid var(--border-color);background:#2563eb14;color:var(--text-secondary);border-radius:var(--radius-sm);padding:.55rem 1rem;font-weight:600;cursor:pointer}.admin-access-tab.active{color:#fff;background:var(--accent-primary);border-color:var(--accent-primary)}.admin-access-panel{padding:24px;overflow:auto}.admin-settings-panel,.admin-dashboard-settings-form{padding:0}.admin-settings-shell{width:min(1040px,100%);display:grid;gap:16px;padding:24px}.admin-settings-section,.admin-settings-footer{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong)}.admin-settings-section-head>div{min-width:0;display:grid;gap:4px}.admin-settings-section-head h4{margin:0;color:var(--text-primary);font-size:1rem;letter-spacing:0}.admin-settings-section-head p{margin:0;color:var(--text-secondary);font-size:.9rem;line-height:1.4}.admin-settings-section-head{padding:16px 18px;border-bottom:1px solid var(--border-color);background:var(--surface-strong)}.admin-settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;padding:18px}.admin-settings-grid .form-group{min-width:0;margin-bottom:0}.admin-settings-wide{grid-column:1 / -1}.admin-settings-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 18px}.admin-settings-footer .site-settings-summary{margin:0;background:#2563eb14}.admin-settings-footer .admin-access-actions{display:flex;justify-content:flex-end;margin:0}.admin-settings-footer .btn-secondary,.admin-settings-footer .btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:128px;white-space:nowrap}.admin-access-layout{display:grid;grid-template-columns:minmax(280px,340px) minmax(560px,1fr);gap:24px;align-items:start}.admin-access-sidebar{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong);padding:16px;min-height:520px;display:flex;flex-direction:column;gap:16px}.admin-access-toolbar{display:flex;gap:8px}.admin-access-toolbar .btn-secondary{flex:1;min-height:44px}.admin-access-list{display:flex;flex-direction:column;gap:8px;overflow:auto;padding-right:4px}.admin-access-list-item{width:100%;text-align:left;border:1px solid var(--border-color);background:var(--bg-color);color:var(--text-primary);border-radius:var(--radius-sm);padding:16px;cursor:pointer;display:flex;flex-direction:column;gap:4px}.admin-access-list-item.active{border-color:var(--accent-primary);box-shadow:0 0 0 2px #2563eb52;background:#2563eb1f}.admin-access-list-item span,.admin-access-list-item small,.admin-access-empty{color:var(--text-secondary)}.admin-access-empty{padding:.9rem;border:1px dashed var(--border-color);border-radius:var(--radius-sm);text-align:center}.admin-access-empty.compact{padding:.65rem .8rem;text-align:left}.admin-access-main{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong);padding:16px;min-height:520px;overflow:auto}.admin-health-layout{display:flex;flex-direction:column;gap:16px}.admin-health-header{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong);padding:16px;display:flex;align-items:center;justify-content:space-between;gap:16px}.admin-health-header h4{margin:0 0 4px;font-size:1rem;color:var(--text-primary)}.admin-health-header p{margin:0;color:var(--text-secondary)}.admin-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-edge-health-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.admin-edge-server-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.admin-edge-server-list{display:grid;grid-column:1 / -1;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.admin-edge-server-list .admin-health-card{min-width:0}.admin-edge-server-list .form-row.compact{align-items:end;grid-template-columns:minmax(0,1fr) auto}.admin-edge-server-list .admin-access-actions.compact{align-items:stretch;justify-content:flex-end;margin:0}.admin-edge-health-grid>.admin-health-card{display:flex;flex-direction:column;height:100%}.admin-edge-health-grid>.admin-health-card>.admin-health-note{flex:1 1 auto;padding-bottom:12px}.admin-edge-pairing-link{width:auto;min-width:180px;text-align:center;text-decoration:none;font-weight:700}.admin-edge-repair-btn{width:auto;margin-top:14px}.admin-audit-layout{display:flex;flex-direction:column;gap:18px}.admin-access-request-list{display:grid;gap:12px}.admin-access-request-card{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong);padding:14px}.admin-access-request-card.status-new{border-color:var(--accent-color)}.admin-access-request-card.status-spam{opacity:.72}.admin-access-request-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.admin-access-request-head strong,.admin-access-request-head span{display:block}.admin-access-request-head span,.admin-access-request-meta{color:var(--text-secondary);font-size:.82rem}.admin-access-request-status{border:1px solid var(--border-color);border-radius:999px;padding:3px 9px;color:var(--text-primary);font-size:.75rem;font-weight:800;text-transform:uppercase}.admin-access-request-card p{margin:0 0 12px;color:var(--text-primary);line-height:1.45;white-space:pre-wrap}.admin-access-request-meta{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr);gap:10px;margin-bottom:12px}.admin-access-request-meta span{min-width:0;overflow-wrap:anywhere}.admin-audit-filters{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong);padding:16px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:end}.admin-audit-filters .form-group{margin:0;min-width:0}.admin-audit-filters label{display:block;margin-bottom:6px;color:var(--text-secondary);font-size:.78rem;font-weight:700}.admin-audit-filters input,.admin-audit-filters select{width:100%;min-width:0;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--text-primary);padding:10px 12px;font:inherit}.admin-audit-list{display:grid;gap:14px;max-height:560px;overflow-y:auto;padding-right:4px}.admin-audit-entry{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--widget-bg);overflow:hidden}.admin-audit-entry summary{cursor:pointer;list-style:none;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;min-height:96px;padding:22px 24px;background:var(--panel-header-bg);line-height:1.4;overflow:visible}.admin-audit-entry summary::-webkit-details-marker{display:none}.admin-audit-title{min-width:0;display:grid;gap:8px}.admin-audit-title strong{color:var(--text-primary);display:block;font-size:1.04rem;font-weight:900;line-height:1.35;overflow-wrap:anywhere}.admin-audit-title small,.admin-audit-meta{color:var(--text-secondary);font-size:.86rem;line-height:1.35}.admin-audit-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 10px;align-items:center;text-align:right;max-width:620px}.admin-audit-chip{border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:4px 8px;color:var(--text-secondary);background:var(--surface-strong);font-size:.72rem;line-height:1.2;font-weight:800;text-transform:uppercase}.admin-audit-chip.result-success{color:#86efac;border-color:#22c55e73;background:#22c55e14}.admin-audit-chip.result-failure{color:#fca5a5;border-color:#ef44448f;background:#ef44441a}.admin-audit-details{border-top:1px solid var(--border-color);padding:12px 16px 16px}.admin-audit-details pre{margin:0;max-height:320px;overflow:auto;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--text-secondary);padding:12px;font-size:.78rem;line-height:1.45;white-space:pre-wrap}@media(max-width:1100px){.admin-audit-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-audit-entry summary{grid-template-columns:1fr;align-items:start}.admin-audit-meta{justify-content:flex-start;text-align:left;max-width:none}}.admin-health-card{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--widget-bg);padding:0;min-width:0;overflow:hidden}.admin-health-card.status-ok{border-color:#22c55e61}.admin-health-card.status-info{border-color:#60a5fa6b}.admin-health-card.status-warn{border-color:#f59e0b7a}.admin-health-card.status-danger{border-color:#ef44448f}.admin-health-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:0;padding:14px 16px;background:var(--panel-header-bg);border-bottom:1px solid var(--border-color)}.admin-health-card-header h5{margin:0;color:var(--text-primary);font-size:1rem;font-weight:900;line-height:1.2;text-transform:uppercase;letter-spacing:0}.admin-health-card-header span{border:1px solid var(--border-color);border-radius:999px;color:var(--text-secondary);padding:5px 10px;font-size:.74rem;font-weight:700;white-space:nowrap}.admin-health-card.status-ok .admin-health-card-header span{color:#86efac;border-color:#22c55e73;background:#22c55e14}.admin-health-card.status-info .admin-health-card-header span{color:#93c5fd;border-color:#60a5fa73;background:#60a5fa14}.admin-health-card.status-warn .admin-health-card-header span{color:#fbbf24;border-color:#f59e0b73;background:#f59e0b14}.admin-health-card.status-danger .admin-health-card-header span{color:#fca5a5;border-color:#ef444473;background:#ef444414}.admin-health-note{margin:0;padding:12px 16px 0;color:var(--text-secondary);font-size:.86rem;line-height:1.45}.admin-health-meter{height:8px;border-radius:999px;background:#94a3b824;overflow:hidden;margin:14px 16px}.admin-health-meter span{display:block;height:100%;border-radius:inherit;background:var(--accent-primary)}.admin-health-card.status-warn .admin-health-meter span{background:#f59e0b}.admin-health-card.status-danger .admin-health-meter span{background:#ef4444}.admin-health-card dl{margin:0;padding:14px 16px 16px;display:grid;gap:10px}.admin-health-card dl div{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px;align-items:start}.admin-health-card dt{color:var(--text-secondary);font-size:.78rem}.admin-health-card dd{margin:0;min-width:0;color:var(--text-primary);overflow-wrap:anywhere}.admin-health-card-rows{display:grid;gap:10px;padding:14px 16px}.admin-health-card-rows div{display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;min-width:0}.admin-health-card-rows span{color:var(--text-secondary);font-size:.78rem}.admin-health-card-rows strong{min-width:0;color:var(--text-primary);font-size:.86rem;overflow-wrap:anywhere}.admin-health-card .form-row.compact{padding:0 16px 16px;align-items:end}.admin-health-card .admin-access-actions.compact{margin:0;justify-content:flex-end}.admin-health-container-list{display:grid;gap:8px;margin:0;padding:0 16px 16px}.admin-health-container{border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:12px 14px;display:grid;gap:5px;background:var(--surface-strong)}.admin-health-container strong{color:var(--text-primary);font-size:.96rem;font-weight:800;line-height:1.25;overflow-wrap:anywhere}.admin-health-container span,.admin-health-container small{color:var(--text-secondary);overflow-wrap:anywhere}.admin-health-container small{color:var(--text-secondary)}.admin-access-card.profile-only .admin-access-tabs,.admin-access-card.profile-only .admin-access-sidebar,.admin-access-card.portal-site-settings .admin-access-sidebar,.admin-access-card.single-site-settings #adminSitesPanel .admin-access-sidebar{display:none}.admin-access-card.single-site-settings #adminSitesPanel .admin-access-layout{grid-template-columns:1fr}.admin-access-card.single-site-settings #adminCancelSiteBtn{display:none}.admin-access-card.profile-only .admin-access-layout,.admin-access-card.portal-site-settings .admin-access-layout{grid-template-columns:1fr}.admin-access-main .tab-editor-form{display:flex;flex-direction:column;gap:24px}.admin-access-main .form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-access-main .form-row.form-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-site-settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:16px;align-items:start}.admin-site-settings-column{display:grid;gap:16px;min-width:0}.site-sync-note{display:grid;gap:6px;padding:12px 14px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--panel-bg);color:var(--text-secondary);font-size:.9rem;line-height:1.35}.site-sync-note strong{color:var(--text-primary);font-size:.92rem}.site-sync-note.local-only{border-color:#f59e0b73;background:#f59e0b14}.admin-site-time-section{min-width:0;align-self:stretch}.admin-access-main .form-row>.form-group:only-child{grid-column:1 / -1}.admin-access-main .form-group{margin-bottom:0}.admin-access-main .form-group label{margin-bottom:8px}.admin-access-main .form-group input,.admin-access-main .form-group select,.admin-access-main .form-group textarea{min-height:44px;padding:10px 12px;border-radius:var(--radius-sm)}.admin-access-main .form-group textarea{min-height:64px}.admin-access-check-grid,.admin-check-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}#adminUserRoles.admin-check-list,#adminUserDashboards.admin-check-list,#adminUserSites.admin-check-list{grid-template-columns:1fr;gap:12px}label.admin-check-pill{display:grid;grid-template-columns:16px minmax(0,1fr);align-items:center;column-gap:12px;row-gap:0;border:1px solid var(--border-color);background:var(--bg-color);color:var(--text-primary);border-radius:var(--radius-sm);padding:12px 16px;min-height:52px;width:100%;margin-bottom:0;box-sizing:border-box}label.admin-check-pill input{margin:0;width:16px;height:16px;accent-color:var(--accent-primary);cursor:pointer}label.admin-check-pill span{display:inline-block;line-height:1.25;font-weight:500;color:var(--text-primary);text-align:left;margin-bottom:0}.admin-role-option{display:block;position:relative;cursor:pointer;margin:0}.admin-role-option input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}.admin-role-card-content{display:flex;align-items:flex-start;gap:14px;min-height:72px;padding:16px 20px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--control-bg);transition:border-color .2s ease-in-out,background-color .2s ease-in-out,box-shadow .2s ease-in-out}.admin-role-checkbox{width:16px;height:16px;border-radius:3px;border:1px solid #475569;display:flex;align-items:center;justify-content:center;background:transparent;flex:0 0 16px;margin-top:3px;transition:background-color .2s ease-in-out,border-color .2s ease-in-out}.admin-role-copy{display:flex!important;flex-direction:column;gap:2px;min-width:0;flex:1}.admin-role-copy strong{font-size:15px;line-height:1.2;font-weight:600;color:var(--text-primary);letter-spacing:0}.admin-role-copy small{font-size:12.5px;line-height:1.35;color:var(--text-secondary);font-weight:400}.admin-role-option:hover .admin-role-card-content{border-color:color-mix(in srgb,var(--accent-primary) 42%,var(--border-color));background-color:var(--control-bg-hover)}.admin-role-option input:checked+.admin-role-card-content{border-color:#3b82f6;background-color:#3b82f60d;box-shadow:0 0 0 1px #3b82f6}.admin-role-option input:checked+.admin-role-card-content .admin-role-checkbox{background-color:#3b82f6;border-color:#3b82f6}.admin-role-option input:checked+.admin-role-card-content .admin-role-checkbox:after{content:"";width:4px;height:8px;border:solid #ffffff;border-width:0 2px 2px 0;transform:rotate(45deg);margin-bottom:2px}.admin-site-option{display:block;position:relative;cursor:pointer;margin:0}.admin-site-option input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}.admin-site-card-content{display:flex;align-items:flex-start;gap:14px;min-height:64px;padding:14px 18px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--control-bg);transition:border-color .2s ease-in-out,background-color .2s ease-in-out,box-shadow .2s ease-in-out}.admin-site-checkbox{width:16px;height:16px;border-radius:3px;border:1px solid #475569;display:flex;align-items:center;justify-content:center;background:transparent;flex:0 0 16px;margin-top:2px;transition:background-color .2s ease-in-out,border-color .2s ease-in-out}.admin-site-copy{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.admin-site-copy strong{font-size:15px;line-height:1.2;font-weight:600;color:var(--text-primary)}.admin-site-copy small{font-size:12.5px;line-height:1.35;color:var(--text-secondary);font-weight:400}.admin-site-option:hover .admin-site-card-content{border-color:color-mix(in srgb,var(--accent-primary) 42%,var(--border-color));background-color:var(--control-bg-hover)}.admin-site-option input:checked+.admin-site-card-content{border-color:#3b82f6;background-color:#3b82f60d;box-shadow:0 0 0 1px #3b82f6}.admin-site-option input:checked+.admin-site-card-content .admin-site-checkbox{background-color:#3b82f6;border-color:#3b82f6}.admin-site-option input:checked+.admin-site-card-content .admin-site-checkbox:after{content:"";width:4px;height:8px;border:solid #ffffff;border-width:0 2px 2px 0;transform:rotate(45deg);margin-bottom:2px}.admin-dashboard-option{display:block;position:relative;cursor:pointer;margin:0}.admin-dashboard-option input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}.admin-dashboard-card-content{display:flex;align-items:flex-start;gap:14px;min-height:72px;padding:16px 20px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--control-bg);transition:all .2s ease-in-out}.admin-dashboard-option:hover .admin-dashboard-card-content{border-color:color-mix(in srgb,var(--accent-primary) 42%,var(--border-color));background-color:var(--control-bg-hover)}.admin-dashboard-option input:checked+.admin-dashboard-card-content{border-color:#3b82f6;background-color:#3b82f60d;box-shadow:0 0 0 1px #3b82f6}.admin-dashboard-checkbox{width:16px;height:16px;border-radius:3px;border:1px solid #475569;display:flex;align-items:center;justify-content:center;background:transparent;transition:.2s;margin-top:3px;flex-shrink:0}.admin-dashboard-option input:checked+.admin-dashboard-card-content .admin-dashboard-checkbox{background-color:#3b82f6;border-color:#3b82f6}.admin-dashboard-option input:checked+.admin-dashboard-card-content .admin-dashboard-checkbox:after{content:"";width:4px;height:8px;border:solid #ffffff;border-width:0 2px 2px 0;transform:rotate(45deg);margin-bottom:2px}.admin-dashboard-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.admin-dashboard-copy strong{font-size:15px;font-weight:600;color:var(--text-primary);line-height:1.2}.admin-dashboard-copy small{font-size:12.5px;color:var(--text-secondary);line-height:1.4}.admin-access-check-grid label.admin-check-pill{align-items:center}label.admin-check-pill:has(input:checked){border-color:color-mix(in srgb,var(--accent-primary) 62%,var(--border-color));background:color-mix(in srgb,var(--accent-primary) 14%,var(--bg-color));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent-primary) 24%,transparent)}.admin-reset-link-output{width:100%;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--control-bg);color:var(--text-primary);padding:12px 14px;resize:vertical;min-height:48px}.admin-user-sessions{display:flex;flex-direction:column;gap:12px}.admin-session-card{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--control-bg);padding:14px 16px;display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.admin-session-card.current{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6;background:#3b82f60d}.admin-session-meta{display:flex;flex-direction:column;gap:3px;color:var(--text-secondary);font-size:.92rem}.admin-session-badge{display:inline-flex;align-items:center;gap:.35rem;width:fit-content;padding:3px 8px;border-radius:999px;border:1px solid rgba(59,130,246,.42);color:#6ea8ff;background:#3b82f61a;font-size:.8rem;font-weight:700;margin-bottom:.2rem}.admin-dashboard-permission-list{display:flex;flex-direction:column;gap:8px}.admin-dashboard-permission-header{display:grid;grid-template-columns:minmax(0,1fr) 72px 72px 84px;align-items:center;gap:12px;padding:0 14px 4px;color:#8ea4c3;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.admin-dashboard-permission-header span:nth-child(n+2){text-align:center}.admin-dashboard-permission-row{display:grid;grid-template-columns:minmax(0,1fr) 72px 72px 84px;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--control-bg)}.admin-dashboard-permission-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.admin-dashboard-permission-copy strong{font-size:14px;font-weight:600;color:var(--text-primary);line-height:1.2}.admin-dashboard-permission-copy small{font-size:12px;color:var(--text-secondary);line-height:1.35}.admin-mini-check{display:inline-flex;align-items:center;justify-content:center;width:100%}.admin-mini-check input{width:14px;height:14px;margin:0;accent-color:var(--accent-primary)}.admin-mini-check-cell span{display:none}.admin-session-actions{display:flex;flex-direction:column;gap:8px;min-width:130px}.admin-access-actions{flex-wrap:wrap;justify-content:flex-start;gap:8px;margin-top:0}.banner-chip-btn.is-disabled{opacity:.55;cursor:not-allowed}@media(max-width:1320px){.admin-access-layout{grid-template-columns:1fr}.admin-access-sidebar,.admin-access-main{min-height:0}.admin-check-list,.admin-access-check-grid,.admin-health-grid,.admin-edge-health-grid,.admin-edge-server-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-edge-server-list{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-edge-server-list .form-row.compact{grid-template-columns:1fr}.admin-edge-server-list .admin-access-actions.compact{justify-content:stretch}.admin-edge-server-list .admin-access-actions.compact .btn-primary{width:100%}}@media(max-width:900px){.tab-editor-card.admin-access-card{width:min(100vw - 12px,100%);max-height:calc(100vh - 12px)}.admin-access-panel{padding:16px}.admin-settings-panel{padding:0}.admin-settings-shell{gap:14px;padding:16px}.admin-settings-grid{grid-template-columns:1fr;padding:16px}.admin-settings-footer{grid-template-columns:1fr;padding:14px}.admin-settings-footer .admin-access-actions{justify-content:stretch}.admin-settings-footer .btn-secondary,.admin-settings-footer .btn-primary{flex:1 1 0;min-width:0}.admin-access-main .form-row,.admin-access-main .form-row.form-row-3,.admin-access-check-grid,.admin-check-list,.admin-health-grid,.admin-edge-health-grid,.admin-edge-server-list,.admin-edge-server-grid{grid-template-columns:1fr}.admin-health-header{align-items:stretch;flex-direction:column}.admin-edge-pairing-link{width:100%}.admin-health-card dl div{grid-template-columns:1fr;gap:4px}}.grid-stack{border-radius:0 0 var(--radius-sm) var(--radius-sm)}.grid-stack-item-content{background-color:var(--widget-bg);color:var(--text-primary);border-radius:var(--radius-xs);border:1px solid var(--border-color);box-shadow:none;transition:all .3s ease;overflow:hidden;display:flex;flex-direction:column}.grid-stack-item-content.is-flat{background:transparent;border:none;box-shadow:none!important;border-radius:0}.grid-stack-item-content.has-transparent-widget-bg{background:transparent}.grid-stack-item.is-editing .grid-stack-item-content{box-shadow:0 0 0 3px var(--accent-primary)}.grid-stack-item.widget-quality-stale .grid-stack-item-content{border-color:#f59e0bb8;box-shadow:inset 0 0 0 1px #f59e0b24}.grid-stack-item.widget-quality-error .grid-stack-item-content,.grid-stack-item.widget-quality-unavailable .grid-stack-item-content{border-color:#f87171c7;box-shadow:inset 0 0 0 1px #f871712e}@keyframes widget-added-anim{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.widget-added{animation:widget-added-anim .4s ease-out}.widget-header{padding:.5rem 1rem;display:flex;align-items:center;border-bottom:1px solid var(--border-color);background-color:var(--panel-header-bg, var(--surface-strong));flex-shrink:0}.drag-handle{cursor:move;flex-grow:1;font-weight:600;color:var(--text-primary);text-align:left;font-family:var(--font-main)}.widget-controls{display:flex;gap:.5rem}.widget-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:.9rem;padding:4px;border-radius:var(--radius-xs)}.widget-btn:hover{background-color:var(--surface-strong);color:var(--accent-primary)}.delete-widget:hover,.lock-widget.is-locked{color:var(--accent-danger)}.lock-widget.is-unlocked{color:var(--accent-secondary)}body.edit-mode-off .widget-controls,body.edit-mode-off .menu,body.edit-mode-off .dashboard-tab-remove,body.edit-mode-off .dashboard-tab-add,body.edit-mode-off .ui-resizable-handle{display:none!important}.widget-content{flex-grow:1;padding:1rem;position:relative;overflow:hidden;display:flex;justify-content:center;align-items:center}.widget-content>canvas,.widget-content>.echarts-host{flex:1 1 auto;width:100%;height:100%;min-width:0;min-height:0;align-self:stretch}.chart-widget-content{flex-direction:column;align-items:stretch;justify-content:stretch;padding:.75rem .9rem .6rem}.chart-widget-action-bar{position:absolute;top:.5rem;right:.55rem;z-index:5;display:flex;align-items:center;gap:.35rem;pointer-events:none}.chart-comparison-widget-btn{width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface-strong) 88%,transparent);color:var(--text-secondary);box-shadow:var(--shadow-card);cursor:pointer;opacity:.72;pointer-events:auto;transition:background-color .18s ease,border-color .18s ease,color .18s ease,opacity .18s ease,transform .18s ease}.chart-widget-content:hover .chart-comparison-widget-btn,.chart-comparison-widget-btn:focus-visible,.chart-comparison-widget-btn.is-active{opacity:1}.chart-comparison-widget-btn:hover,.chart-comparison-widget-btn:focus-visible{color:var(--accent-primary);border-color:color-mix(in srgb,var(--accent-primary) 55%,var(--border-color));transform:translateY(-1px)}.chart-comparison-widget-btn.is-active{color:#fff;background:var(--accent-primary);border-color:var(--accent-primary)}.chart-comparison-card{width:min(560px,100%);max-height:min(92vh,640px);display:flex;flex-direction:column;overflow:hidden}.chart-comparison-form{display:grid;gap:1rem;flex:1 1 auto;overflow-y:auto;min-height:0}.chart-comparison-form .form-group{margin:0}.chart-comparison-form .chart-comparison-custom-range{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.chart-comparison-form input,.chart-comparison-form select{min-width:0;width:100%}@media(max-width:560px){.chart-comparison-modal{padding:.75rem}.chart-comparison-card{max-height:calc(100vh - 1.5rem)}.chart-comparison-form .chart-comparison-custom-range{grid-template-columns:1fr}}.chart-widget-shell{flex:1 1 auto;width:100%;height:100%;min-width:0;min-height:0;display:grid;grid-template-columns:42px minmax(0,1fr) 42px;grid-template-rows:minmax(0,1fr) auto;column-gap:.4rem;row-gap:.25rem}.chart-widget-shell.has-chart-summary{grid-template-rows:auto minmax(0,1fr) auto;row-gap:.45rem}.chart-widget-shell.has-chart-summary .chart-plot-area,.chart-widget-shell.has-chart-summary .chart-axis-title-left,.chart-widget-shell.has-chart-summary .chart-axis-title-right{grid-row:2}.chart-widget-shell.has-chart-summary .chart-axis-title-bottom{grid-row:3}.chart-summary-strip{grid-column:2;grid-row:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem;align-items:stretch;min-width:0}.chart-summary-card{min-width:0;border:1px solid color-mix(in srgb,var(--summary-accent, var(--accent-blue)) 38%,var(--border-subtle));border-left:4px solid var(--summary-accent, var(--accent-blue));border-radius:var(--radius-sm);background:linear-gradient(135deg,color-mix(in srgb,var(--summary-accent, var(--accent-blue)) 18%,transparent),#0f172a2e);padding:.55rem .7rem;box-shadow:0 10px 28px #00000029}.chart-summary-label{display:block;color:var(--text-secondary);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.chart-summary-card strong{display:inline-block;margin-top:.18rem;color:var(--text-primary);font-size:clamp(1.35rem,2.1vw,2.35rem);line-height:1;font-weight:900}.chart-summary-unit{margin-left:.35rem;color:var(--text-secondary);font-size:.85rem;font-weight:800}.chart-plot-area{grid-column:2;grid-row:1;min-width:0;min-height:0;position:relative;display:flex;align-items:stretch;justify-content:stretch;overflow:hidden}.chart-plot-area>canvas,.chart-plot-area>.echarts-host{width:100%;height:100%;min-width:0;min-height:0;align-self:stretch;flex:1 1 auto}.chart-axis-title{color:var(--text-secondary);font-size:.95rem;font-weight:800;letter-spacing:.015em;line-height:1.2;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;pointer-events:none;-webkit-user-select:none;user-select:none;text-align:center}.chart-axis-title.is-empty{visibility:hidden}.chart-axis-title-left{grid-column:1;grid-row:1;writing-mode:vertical-rl;transform:rotate(180deg)}.chart-axis-title-right{grid-column:3;grid-row:1;writing-mode:vertical-rl}.chart-axis-title-bottom{grid-column:2;grid-row:2;min-height:1.35rem;padding-top:.15rem}.widget-empty-state{width:100%;height:100%;min-height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;text-align:center;color:var(--text-secondary);padding:1rem}.widget-empty-state strong{color:var(--text-primary);font-size:.98rem;font-weight:700}.widget-empty-state span{max-width:38ch;line-height:1.45}.widget-error-state strong{color:#fda4af}.searchable-point-select{position:relative;display:flex;flex-direction:column;gap:.4rem}.searchable-point-input{width:100%}.searchable-point-menu{display:none;position:absolute;z-index:50;left:0;right:0;top:calc(100% + 6px);bottom:auto;max-height:min(320px,var(--searchable-point-menu-max-height, 260px));overflow:auto;background:var(--surface-strong);border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-float);padding:6px}.searchable-point-select.menu-open-up .searchable-point-menu{top:auto;bottom:calc(100% + 6px)}.searchable-point-menu.open{display:grid;gap:4px}.searchable-point-option{width:100%;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);padding:9px 10px;text-align:left;font-weight:700;line-height:1.25}.searchable-point-option:hover,.searchable-point-option:focus-visible{background:var(--panel-header-bg, var(--surface-strong));outline:2px solid var(--accent-primary);outline-offset:2px}.searchable-point-option small{display:block;color:var(--text-secondary);font-weight:500;margin-top:2px}.searchable-point-empty{padding:10px}.searchable-point-select-native{display:none}.sankey-flow-row .form-row{grid-template-columns:1fr;gap:.75rem}.sankey-flow-row .form-group{margin-bottom:.75rem}.sankey-flow-row .searchable-point-select{gap:.5rem}.sankey-flow-direction-row input[disabled]{opacity:.9}.sankey-builder-open{margin-bottom:.75rem}.form-help{color:var(--text-secondary);font-size:.82rem;line-height:1.45;margin:-.25rem 0 .85rem}.sankey-builder-modal{position:fixed;inset:0;z-index:5000;display:flex;align-items:stretch;justify-content:center;padding:1rem;background:#02061794;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.sankey-builder-card{width:min(1500px,100%);min-height:min(860px,calc(100vh - 2rem));max-height:calc(100vh - 2rem);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--sidebar-bg);border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-float)}.sankey-builder-header{display:grid;grid-template-columns:minmax(280px,1fr) auto auto;align-items:center;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--panel-header-bg, var(--surface-strong))}.sankey-builder-title{display:flex;align-items:center;gap:.85rem;min-width:0}.sankey-builder-logo{display:inline-grid;place-items:center;width:2.4rem;height:2.4rem;border:1px solid rgba(59,130,246,.65);border-radius:var(--radius-sm);color:#93c5fd;font-weight:900;letter-spacing:-.2em}.sankey-builder-title h3{margin:0;color:var(--text-primary);font-size:1.45rem}.sankey-builder-title p{margin:.2rem 0 0;color:var(--text-secondary);font-size:.9rem}.sankey-builder-steps{display:flex;align-items:center;gap:.75rem;color:var(--text-secondary);white-space:nowrap}.sankey-builder-steps b{display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;margin-right:.25rem;border-radius:999px;background:#3b82f638;color:#bfdbfe}.sankey-builder-body{min-height:0;display:grid;grid-template-columns:290px minmax(0,1fr) 300px;border-bottom:1px solid var(--border-color)}.sankey-builder-toolbox,.sankey-builder-inspector{min-height:0;overflow:auto;padding:1rem;background:var(--surface-strong)}.sankey-builder-toolbox{border-right:1px solid var(--border-color)}.sankey-builder-inspector{border-left:1px solid var(--border-color)}.sankey-builder-toolbox h4,.sankey-builder-inspector h4{margin:0 0 1rem;color:var(--text-primary);text-transform:uppercase;letter-spacing:.08em;font-size:.82rem}.sankey-builder-tool-section{display:grid;gap:.6rem;padding:0 0 1rem;margin-bottom:1rem;border-bottom:1px solid var(--border-color)}.sankey-builder-tool-section label,.sankey-builder-inspector label{color:var(--text-secondary);font-size:.84rem;font-weight:600}.sankey-builder-tool-section input,.sankey-builder-tool-section select,.sankey-builder-inspector input,.sankey-builder-inspector select{width:100%;padding:.55rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong);color:var(--text-primary)}.sankey-builder-tool{width:100%;padding:.65rem;border:1px solid rgba(59,130,246,.45);border-radius:var(--radius-sm);background:#3b82f61f;color:var(--text-primary);font-weight:700;cursor:pointer}.sankey-builder-tool:hover{background:#3b82f633}.sankey-builder-danger-tool{border-color:#ef444473;background:#ef44441a}.sankey-builder-danger-tool:hover{background:#ef44442e}.sankey-builder-tip{border:1px solid rgba(59,130,246,.35);border-radius:var(--radius-sm);padding:.85rem;color:var(--text-secondary);background:#3b82f614;line-height:1.45;font-size:.84rem}.sankey-builder-workspace{min-width:0;min-height:0;padding:1rem;overflow:hidden}.sankey-builder-canvas-wrap{height:100%;min-height:520px;border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.85rem;background:var(--bg-color)}.sankey-builder-canvas{position:relative;height:100%;min-height:500px;overflow:hidden;border:1px solid rgba(148,163,184,.2);border-radius:var(--radius-sm);background-image:radial-gradient(rgba(148,163,184,.22) 1px,transparent 1px);background-size:18px 18px}.sankey-builder-links{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:stroke}.sankey-builder-link{fill:none;opacity:.42;stroke-linecap:round;cursor:pointer;pointer-events:stroke}.sankey-builder-link-hit{fill:none;stroke:transparent;stroke-width:18;stroke-linecap:round;cursor:pointer;pointer-events:stroke}.sankey-builder-link:hover,.sankey-builder-link.active{opacity:.78;filter:drop-shadow(0 0 5px rgba(147,197,253,.35))}.sankey-builder-arrow{opacity:.9;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}.sankey-builder-arrow.active{opacity:1;filter:drop-shadow(0 0 5px rgba(147,197,253,.45))}.sankey-builder-node{position:absolute;z-index:2;display:inline-flex;align-items:center;gap:.6rem;min-width:138px;max-width:210px;min-height:54px;padding:.65rem .85rem;transform:translate(-50%,-50%);border:1px solid;border-radius:var(--radius-sm);color:var(--text-primary);font-weight:800;cursor:grab;box-shadow:0 12px 28px #0000003d;-webkit-user-select:none;user-select:none;touch-action:none}.sankey-builder-node:active{cursor:grabbing}.sankey-builder-node.pending-source{outline:2px solid #93c5fd;outline-offset:3px}.sankey-builder-node.valid-flow-target{outline:2px solid rgba(34,197,94,.85);outline-offset:3px;box-shadow:0 0 0 5px #22c55e1f,0 12px 28px #0000003d}.sankey-builder-node.cycle-blocked-target{outline:2px solid rgba(239,68,68,.95);outline-offset:3px;opacity:.78;box-shadow:0 0 0 5px #ef44441f,0 12px 28px #0000003d}.sankey-builder-node.active-node{outline:2px solid var(--accent-primary);outline-offset:4px;box-shadow:0 0 0 5px #3b82f629,0 14px 34px #00000057}.sankey-builder-node-dot{width:.8rem;height:.8rem;flex:0 0 .8rem;border-radius:999px;box-shadow:0 0 0 3px #ffffff1f}.sankey-builder-node-badge{margin-left:auto;padding:.12rem .35rem;border:1px solid rgba(147,197,253,.45);border-radius:999px;color:#bfdbfe;font-size:.64rem;letter-spacing:.04em}.sankey-builder-cycle-badge,.sankey-builder-target-badge{margin-left:auto;padding:.12rem .35rem;border-radius:999px;font-size:.62rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.sankey-builder-cycle-badge{border:1px solid rgba(248,113,113,.8);background:#7f1d1d73;color:#fecaca}.sankey-builder-target-badge{border:1px solid rgba(74,222,128,.75);background:#14532d6b;color:#bbf7d0}.sankey-builder-inspector{display:grid;align-content:start;gap:.6rem}.sankey-builder-flow-title{padding:.7rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong);color:var(--text-primary);font-weight:800}.sankey-builder-muted{color:var(--text-secondary);line-height:1.5}.sankey-builder-warning{padding:.65rem .75rem;border:1px solid rgba(248,113,113,.45);border-radius:var(--radius-sm);background:#7f1d1d33;color:#fecaca;font-weight:800;line-height:1.35}.sankey-builder-delete-button{border-color:#ef44448c;color:#fecaca}.sankey-builder-delete-button:hover{background:#ef444426;border-color:#ef4444bf}.sankey-builder-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:.95rem 1.25rem;background:var(--panel-header-bg, var(--surface-strong))}.sankey-builder-footer .btn-secondary,.sankey-builder-footer .btn-primary{width:auto;min-width:140px;margin:0}@media(max-width:1100px){.sankey-builder-header{grid-template-columns:1fr auto}.sankey-builder-steps{display:none}.sankey-builder-body{grid-template-columns:240px minmax(0,1fr)}.sankey-builder-inspector{grid-column:1 / -1;border-left:0;border-top:1px solid var(--border-color);max-height:260px}}.grid-stack-item-content.is-flat .widget-content{padding:0}.widget-content.advanced-heatmap-host{display:flex;flex-direction:column;gap:.35rem;padding:.45rem .75rem .55rem;align-items:stretch;justify-content:stretch;overflow:hidden}.widget-content.advanced-heatmap-host .chart-widget-shell{flex:1 1 auto;min-height:0;grid-template-columns:8px minmax(0,1fr) 8px;grid-template-rows:minmax(0,1fr) auto;row-gap:.08rem}.widget-content.advanced-heatmap-host .chart-axis-title-bottom{display:none}.grid-stack-item-content.is-flat.text-widget-content,.grid-stack-item-content.is-flat .text-widget-content{padding:0}.ranking-widget-content{align-items:stretch;justify-content:stretch;overflow:hidden;padding:clamp(.45rem,1.4cqi,.85rem);container-type:inline-size}.ranking-widget{width:100%;height:100%;min-width:0;min-height:0;color:var(--text-primary)}.ranking-widget-shell{display:flex;flex-direction:column;gap:clamp(.45rem,1.2cqi,.85rem);min-height:100%;height:100%;min-width:0}.ranking-widget-meta{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;font-size:clamp(.68rem,1.1cqi,.78rem);color:var(--text-secondary);text-transform:lowercase;letter-spacing:.01em}.ranking-widget-table-wrap{overflow:auto;flex:1 1 auto;min-height:0;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong);scrollbar-width:thin}.ranking-widget-table{width:100%;border-collapse:collapse;min-width:100%;table-layout:auto}.ranking-widget-table thead th{padding:clamp(.48rem,1.1cqi,.8rem);border-bottom:1px solid var(--border-color);background:#ffffff05;vertical-align:top;text-align:left;position:sticky;top:0;z-index:1}.ranking-widget-table tbody td{padding:clamp(.42rem,1cqi,.7rem);border-bottom:1px solid rgba(255,255,255,.05);vertical-align:middle}.ranking-widget-table tbody tr:last-child td{border-bottom:none}.ranking-widget-index{width:clamp(32px,5cqi,42px);min-width:32px;text-align:center;color:var(--text-secondary);font-weight:700}.ranking-widget-equipment-col{width:clamp(150px,26cqi,300px);min-width:140px}.ranking-widget-equipment{font-weight:700;color:var(--text-primary);white-space:nowrap;max-width:clamp(132px,26cqi,300px);overflow:hidden;text-overflow:ellipsis}.ranking-widget-value-col{min-width:clamp(88px,15cqi,132px);max-width:170px}.ranking-widget-table[data-column-count="1"] .ranking-widget-equipment-col{width:clamp(190px,36cqi,420px);min-width:180px}.ranking-widget-table[data-column-count="1"] .ranking-widget-equipment{max-width:clamp(170px,36cqi,420px)}.ranking-widget-column-head{display:grid;grid-template-columns:12px minmax(0,1fr);gap:.5rem .65rem;align-items:start;min-width:0}.ranking-widget-column-color{width:12px;height:12px;border-radius:2px;box-shadow:0 0 0 1px #ffffff24;margin-top:.15rem}.ranking-widget-column-copy{min-width:0;display:flex;flex-direction:column;gap:.18rem}.ranking-widget-column-copy strong{font-size:clamp(.68rem,1.05cqi,.78rem);line-height:1.25;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranking-widget-column-copy small,.ranking-widget-sort{font-size:clamp(.58rem,.95cqi,.68rem);color:var(--text-secondary);line-height:1.35}.ranking-widget-sort{grid-column:2;display:inline-flex;align-items:center;gap:.25rem;width:fit-content;max-width:100%;padding:.12rem .38rem;border-radius:999px;background:#ffffff0a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranking-widget-value-card{display:flex;flex-direction:column;gap:.14rem;padding:clamp(.36rem,.95cqi,.55rem) clamp(.42rem,1cqi,.65rem);border-radius:var(--radius-xs);border:1px solid rgba(255,255,255,.05);border-left:3px solid var(--ranking-accent, var(--accent-primary));background:#0f172a2e;min-width:0}.ranking-widget-value-card.point-quality-stale{border-color:#f59e0ba3}.ranking-widget-value-card.point-quality-error,.ranking-widget-value-card.point-quality-unavailable{border-color:#f87171b8;background:#7f1d1d2e}.ranking-widget-value{font-size:clamp(.72rem,1.35cqi,.88rem);font-weight:700;color:var(--text-primary);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranking-widget-value-card small{font-size:clamp(.56rem,.9cqi,.66rem);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranking-widget-empty{min-height:220px;border:1px dashed var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.55rem;padding:1.5rem;text-align:center;color:var(--text-secondary)}.ranking-widget-empty strong{color:var(--text-primary);font-size:.98rem}@container (max-width: 520px){.ranking-widget-meta{display:none}.ranking-widget-table thead th,.ranking-widget-table tbody td{padding:.38rem}.ranking-widget-column-color,.ranking-widget-sort,.ranking-widget-value-card small{display:none}.ranking-widget-column-head{grid-template-columns:minmax(0,1fr);gap:.12rem}.ranking-widget-value-card{border-left-width:2px}}@container (max-width: 360px){.ranking-widget-index,.ranking-widget-table thead .ranking-widget-index{display:none}.ranking-widget-equipment-col{min-width:112px}.ranking-widget-equipment{max-width:112px}.ranking-widget-value-col{min-width:74px}}.ranking-column-row .form-row.form-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}.advanced-heatmap-legend-shell{width:100%;margin-top:0;display:grid;grid-template-columns:minmax(260px,auto) minmax(260px,320px);gap:.35rem 1.1rem;align-items:center;justify-content:center;color:var(--text-secondary);padding-top:.05rem}.advanced-heatmap-legend{display:grid;grid-template-columns:auto minmax(140px,220px) auto auto;gap:.45rem .6rem;align-items:center;justify-content:center;width:fit-content;max-width:100%;margin:0 auto;color:var(--text-secondary);font-size:.82rem}.advanced-heatmap-legend-left .advanced-heatmap-legend,.advanced-heatmap-legend-left .advanced-heatmap-filter{justify-content:start;margin-left:0;margin-right:auto}.advanced-heatmap-legend-left{justify-content:start}.advanced-heatmap-legend-center .advanced-heatmap-legend,.advanced-heatmap-legend-center .advanced-heatmap-filter{justify-content:center;margin-left:auto;margin-right:auto}.advanced-heatmap-legend-center{justify-content:center}.advanced-heatmap-legend-right .advanced-heatmap-legend,.advanced-heatmap-legend-right .advanced-heatmap-filter{justify-content:end;margin-left:auto;margin-right:0}.advanced-heatmap-legend-right{justify-content:end}.advanced-heatmap-legend-bar{width:clamp(140px,22vw,220px);height:10px;border-radius:999px;background:linear-gradient(90deg,#154d84,#1cab1c 48%,#dc1818);border:1px solid rgba(255,255,255,.1);box-shadow:inset 0 1px #ffffff14}.advanced-heatmap-legend-label{font-weight:600;color:var(--text-primary)}.advanced-heatmap-filter{width:min(100%,280px);display:flex;flex-direction:column;gap:.35rem;padding:0;border-radius:0;background:transparent;border:none;box-shadow:none}.advanced-heatmap-filter-label{font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8fb3da;text-align:center}.advanced-heatmap-filter-sliders{position:relative;height:20px;margin:0 .55rem}.advanced-heatmap-filter-sliders input[type=range]{position:absolute;inset:0;width:100%;margin:0;background:transparent;accent-color:var(--accent-secondary);pointer-events:none}.advanced-heatmap-filter-sliders input[type=range]::-webkit-slider-thumb{pointer-events:auto}.advanced-heatmap-filter-sliders input[type=range]::-moz-range-thumb{pointer-events:auto}.advanced-heatmap-filter-track,.advanced-heatmap-filter-selection{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:8px;border-radius:999px}.advanced-heatmap-filter-track{background:#ffffff1f;border:1px solid rgba(255,255,255,.08)}.advanced-heatmap-filter-selection{background:#34d399e0;border:1px solid rgba(74,222,128,.96)}.advanced-heatmap-filter-readout{display:flex;align-items:center;justify-content:space-between;gap:.35rem;font-size:.8rem;font-weight:600;color:var(--text-primary)}@media(max-width:780px){.advanced-heatmap-legend-shell{grid-template-columns:1fr;justify-items:center}}.heatmap-editor-stack{display:flex;flex-direction:column;gap:.8rem}.heatmap-editor-stack .form-group{margin-bottom:0}.advanced-heatmap-empty{width:100%;min-height:180px;border-radius:var(--radius-sm);border:1px dashed var(--border-color);background:var(--surface-strong);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;text-align:center;padding:1.25rem;color:var(--text-secondary)}.advanced-heatmap-empty strong{color:var(--text-primary);font-size:.98rem}.properties{background-color:var(--sidebar-bg);width:min(92vw,520px);flex-shrink:0;overflow:hidden;border-left:1px solid var(--border-color);transition:transform .3s,background-color .3s,border-color .3s;transform:translate(100%);position:fixed;right:0;top:0;bottom:0;height:100vh;z-index:1050;box-shadow:-18px 0 50px -24px var(--shadow-color);display:flex;flex-direction:column}.properties.open{transform:translate(0);right:0}.properties-content{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:0}.properties-header{flex-shrink:0;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title close" "chrome chrome";align-items:center;gap:.65rem 1rem;padding:1rem 1.25rem .95rem;border-bottom:1px solid var(--border-color);background-color:var(--sidebar-bg)}.properties-header h3{grid-area:title;min-width:0;line-height:1.2}.properties-header-chrome-toggle{grid-area:chrome;display:inline-flex;align-items:center;gap:.55rem;width:fit-content;max-width:100%;color:var(--text-secondary);font-size:.82rem;line-height:1.25;cursor:pointer}.properties-header-chrome-toggle input{flex:0 0 auto;margin:0}.properties-header-chrome-toggle span{min-width:0}.properties-header-chrome-toggle.is-disabled{opacity:.58;cursor:not-allowed}.properties h3{margin:0;font-size:1.25rem;color:var(--text-primary)}#close-properties{cursor:pointer;font-size:1.5rem;line-height:1}.properties-close-button{background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:1.5rem;line-height:1;padding:0}.properties-header .properties-close-button{grid-area:close;justify-self:end;align-self:start;display:inline-grid;place-items:center;width:2rem;height:2rem;margin:-.25rem -.25rem 0 0}.properties-close-button:hover{background-color:var(--surface-strong);border-color:var(--border-color);color:var(--text-primary)}.drawer-shell-form{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.drawer-form-body{flex:1;min-height:0;overflow-y:auto;padding:1.5rem}.drawer-footer-shell{flex-shrink:0;display:grid;gap:1rem;padding:1rem 1.5rem 1.25rem;border-top:1px solid var(--border-color);background-color:var(--sidebar-bg)}.drawer-footer-shell .btn-primary,.drawer-footer-shell .btn-secondary{margin-top:0}.properties fieldset{border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:1rem;margin-bottom:1.5rem}.properties legend{padding:0 .5rem;font-weight:600;color:var(--text-secondary)}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.9rem;margin-bottom:.5rem;color:var(--text-secondary)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.5rem;background-color:var(--surface-strong);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary)}.form-group input[type=date],.form-group input[type=time],.form-group input[type=datetime-local],.properties input[type=date],.properties input[type=time],.properties input[type=datetime-local]{color-scheme:light;border-radius:2px;background-color:var(--control-bg);border-color:var(--border-color);color:var(--text-primary)}.dark-mode .form-group input[type=date],.dark-mode .form-group input[type=time],.dark-mode .form-group input[type=datetime-local],.dark-mode .properties input[type=date],.dark-mode .properties input[type=time],.dark-mode .properties input[type=datetime-local]{color-scheme:dark;background-color:#0f1117;border-color:#2e3340;color:var(--text-primary)}.form-group input[type=date]:focus,.form-group input[type=time]:focus,.form-group input[type=datetime-local]:focus,.properties input[type=date]:focus,.properties input[type=time]:focus,.properties input[type=datetime-local]:focus{border-color:var(--accent-primary);box-shadow:0 0 0 1px #0090e747;outline:none}.form-group input[type=date]::-webkit-calendar-picker-indicator,.form-group input[type=time]::-webkit-calendar-picker-indicator,.form-group input[type=datetime-local]::-webkit-calendar-picker-indicator,.properties input[type=date]::-webkit-calendar-picker-indicator,.properties input[type=time]::-webkit-calendar-picker-indicator,.properties input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:none;cursor:pointer}.dark-mode .form-group input[type=date]::-webkit-calendar-picker-indicator,.dark-mode .form-group input[type=time]::-webkit-calendar-picker-indicator,.dark-mode .form-group input[type=datetime-local]::-webkit-calendar-picker-indicator,.dark-mode .properties input[type=date]::-webkit-calendar-picker-indicator,.dark-mode .properties input[type=time]::-webkit-calendar-picker-indicator,.dark-mode .properties input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(72%) sepia(14%) saturate(389%) hue-rotate(185deg)}.form-group-inline{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.form-group-inline label{margin-bottom:0;color:var(--text-primary)}.form-group-inline input[type=checkbox]{width:auto}.graphic-transparent-toggle{margin-top:.55rem;gap:.55rem}.graphic-background-control.is-transparent .color-picker-wrapper{opacity:.55}.graphic-background-control.is-transparent .color-picker-hex{color:var(--text-secondary)}.bulk-schedule-target-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.65rem;width:100%;margin:0 0 .5rem;padding:.65rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-xs);background:var(--surface-strong);color:var(--text-primary);font-size:.88rem;line-height:1.35}.bulk-schedule-target-row input[type=checkbox]{margin-top:.15rem}.bulk-schedule-target-row span{color:var(--text-primary);overflow-wrap:anywhere}.bulk-schedule-target-row:hover{border-color:color-mix(in srgb,var(--accent-primary) 42%,var(--border-color));background:color-mix(in srgb,var(--accent-primary) 10%,var(--surface-strong))}.axis-title-control{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.axis-title-control>label:first-child{margin-bottom:0}.axis-invert-toggle{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:0;color:var(--text-secondary);font-size:.85rem;font-weight:600;white-space:nowrap}.axis-invert-toggle input[type=checkbox]{width:auto}.series-area-fill-toggle{display:inline-flex;align-items:center;gap:.45rem;margin-top:.55rem;margin-bottom:0;color:var(--text-secondary);font-size:.88rem;font-weight:600}.series-area-fill-toggle input[type=checkbox]{width:auto}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.properties .drawer-form-body .form-row,.properties .drawer-form-body .form-row.form-row-3{grid-template-columns:1fr;gap:.75rem}.properties .drawer-form-body .graphic-binding-row .form-row,.properties .drawer-form-body .graphic-binding-row .form-row.form-row-3,.properties .drawer-form-body .graphic-shape-body .form-row,.properties .drawer-form-body .graphic-shape-body .form-row.form-row-3{grid-template-columns:1fr!important;gap:.75rem}.properties .drawer-form-body .form-group{margin-bottom:.75rem}.color-picker-wrapper{display:flex;align-items:center;gap:.5rem}.color-picker-input{width:2.25rem;height:2.25rem;flex:0 0 2.25rem;cursor:pointer;padding:0;border:1px solid var(--border-color);border-radius:var(--radius-xs);background:transparent;overflow:hidden}.color-picker-input::-webkit-color-swatch-wrapper{padding:0}.color-picker-input::-webkit-color-swatch{border:0;border-radius:calc(var(--radius-xs) - 1px)}.color-picker-input::-moz-color-swatch{border:0;border-radius:calc(var(--radius-xs) - 1px)}.color-picker-hex{flex-grow:1}.gauge-style-controls{display:grid;gap:.75rem;margin:.75rem 0}.gauge-style-row{padding:.75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface-strong) 88%,transparent)}.gauge-style-heading{margin-bottom:.65rem;color:var(--text-primary);font-size:.85rem;font-weight:700}.gauge-style-fields{display:grid;grid-template-columns:minmax(120px,1.15fr) minmax(76px,.55fr) minmax(120px,1fr);gap:.65rem;align-items:end}.gauge-style-fields-4{grid-template-columns:minmax(110px,1.1fr) minmax(68px,.55fr) minmax(110px,1fr) minmax(74px,.65fr)}.properties .drawer-form-body .gauge-style-fields .form-group,.properties .drawer-form-body .gauge-style-row .form-group,.dataset-group .gauge-style-fields .form-group,.chart-binding-row .gauge-style-fields .form-group{margin-bottom:0}.gauge-style-fields .color-picker-wrapper{align-items:center}.gauge-style-number{min-width:0}@media(max-width:620px){.gauge-style-fields,.gauge-style-fields-4{grid-template-columns:1fr}}.data-point,.dataset-group,.color-stop-group{background-color:var(--surface-strong);padding:.75rem;border-radius:var(--radius-sm);margin-bottom:.75rem;position:relative;border:1px solid var(--border-color)}.data-point .form-row,.dataset-group .form-row,.color-stop-group .form-row,.ranking-column-row .form-row,.schedule-block-row .form-row,.schedule-exception-row .form-row,.schedule-legend-row .form-row,.sankey-flow-row .form-row,.chart-binding-row .form-row{grid-template-columns:1fr;gap:.75rem}.data-point .form-row.form-row-3,.dataset-group .form-row.form-row-3,.ranking-column-row .form-row.form-row-3{grid-template-columns:1fr}.data-point .form-group,.dataset-group .form-group,.color-stop-group .form-group,.ranking-column-row .form-group,.schedule-block-row .form-group,.schedule-exception-row .form-group,.schedule-legend-row .form-group,.sankey-flow-row .form-group,.chart-binding-row .form-group{margin-bottom:.75rem}.data-point .form-group:last-child,.dataset-group .form-group:last-child,.color-stop-group .form-group:last-child,.ranking-column-row .form-group:last-child,.schedule-block-row .form-group:last-child,.schedule-exception-row .form-group:last-child,.schedule-legend-row .form-group:last-child,.sankey-flow-row .form-group:last-child,.chart-binding-row .form-group:last-child{margin-bottom:0}.data-point .color-picker-wrapper,.dataset-group .color-picker-wrapper,.color-stop-group .color-picker-wrapper{align-items:flex-start}.data-point .color-picker-hex,.dataset-group .color-picker-hex,.color-stop-group .color-picker-hex{min-width:0}.generic-schedule-value-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem}.properties .drawer-form-body .generic-schedule-value-grid .form-group{margin-bottom:0}.remove-data-point{position:absolute;top:5px;right:5px;background:none;border:none;color:var(--accent-danger);cursor:pointer;font-size:1.2rem}.drawer-accordion{padding:0;overflow:hidden}.drawer-accordion-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:44px;padding:.7rem .75rem;cursor:pointer;list-style:none;color:var(--text-primary)}.drawer-accordion-header::-webkit-details-marker{display:none}.drawer-accordion-title{min-width:0;display:grid;gap:.15rem;color:var(--text-primary)}.drawer-accordion-title strong:before{content:">";display:inline-block;margin-right:.45rem;color:var(--text-secondary)}.drawer-accordion[open] .drawer-accordion-title strong:before{content:"v"}.drawer-accordion-title strong{min-width:0;color:var(--text-primary);font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer-accordion-title small{color:var(--text-secondary);font-size:.72rem;line-height:1.2}.drawer-accordion-body{display:grid;gap:.75rem;padding:0 .75rem .75rem}.drawer-accordion-header .remove-data-point{position:static;flex:0 0 auto;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--control-bg);color:var(--text-secondary);font-size:1rem;font-weight:800;line-height:1;padding:0}.drawer-accordion-header .remove-data-point:hover{border-color:#ef444494;color:#fecaca}.btn-secondary{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background-color:var(--surface-strong);color:var(--text-primary);cursor:pointer;transition:background-color .2s}.btn-secondary:hover{background-color:var(--tab-bg-hover)}.btn-primary{width:100%;padding:.75rem;border:none;border-radius:var(--radius-sm);background-color:var(--accent-primary);color:#fff;font-weight:600;cursor:pointer;transition:background-color .2s}.btn-primary:hover{background-color:var(--accent-primary-hover)}.leaflet-container{width:100%;height:100%;border-radius:var(--radius-sm)}.dark-mode .leaflet-tile-pane{filter:brightness(.8) invert(1) contrast(1.2) hue-rotate(200deg) saturate(.3) brightness(.7)}.portfolio-map-status-popup .leaflet-popup-content-wrapper{overflow:hidden;border:1px solid rgba(96,165,250,.42);border-radius:8px;background:#0f172af5;color:#e5edf7;box-shadow:var(--shadow-card)}.portfolio-map-status-popup .leaflet-popup-content{width:270px!important;margin:0;line-height:1.35}.portfolio-map-status-popup .leaflet-popup-tip{background:#0f172af5;border:1px solid rgba(96,165,250,.3)}.portfolio-map-status-popup .leaflet-popup-close-button{color:#cbd5e1}.portfolio-map-status-card{display:grid;gap:.62rem;padding:.78rem;font-family:var(--font-main)}.portfolio-map-status-head{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.6rem;padding-right:1.2rem}.portfolio-map-status-badge{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(148,163,184,.26);border-radius:7px;background:#94a3b81a}.portfolio-map-status-badge .sync-status-dot{width:9px;height:9px}.portfolio-map-status-row strong.status-ok{color:#86efac}.portfolio-map-status-badge.status-ok .sync-status-dot{background:#22c55e;box-shadow:0 0 0 3px #22c55e29}.portfolio-map-status-badge.status-warn .sync-status-dot{background:#f59e0b;box-shadow:0 0 0 3px #f59e0b29}.portfolio-map-status-badge.status-error .sync-status-dot,.portfolio-map-status-badge.status-alarm .sync-status-dot{background:#ef4444;box-shadow:0 0 0 3px #ef44442b}.portfolio-map-status-badge.status-pending .sync-status-dot{background:#38bdf8;box-shadow:0 0 0 3px #38bdf82b}.portfolio-map-status-title{min-width:0;display:grid;gap:.15rem}.portfolio-map-status-title strong{overflow:hidden;color:#f8fafc;font-size:.94rem;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.portfolio-map-status-title small{overflow:hidden;color:#b8c7dc;font-size:.72rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.portfolio-map-status-rows{display:grid;gap:.36rem}.portfolio-map-status-row{display:grid;grid-template-columns:5rem minmax(0,1fr);align-items:center;gap:.5rem;min-height:1.45rem;font-size:.74rem}.portfolio-map-status-row span{color:#94a3b8;font-weight:750}.portfolio-map-status-row strong{overflow:hidden;color:#e2e8f0;font-weight:850;text-align:right;text-overflow:ellipsis;white-space:nowrap}.portfolio-map-status-row strong.status-warn{color:#fcd34d}.portfolio-map-status-row strong.status-error,.portfolio-map-status-row strong.status-alarm{color:#fca5a5}.portfolio-map-status-row strong.status-pending{color:#7dd3fc}.portfolio-map-status-note{display:-webkit-box;overflow:hidden;color:#b8c7dc;font-size:.69rem;-webkit-box-orient:vertical;-webkit-line-clamp:2}.portfolio-map-status-link{display:inline-flex;align-items:center;justify-content:space-between;gap:.45rem;min-height:2rem;padding:.45rem .55rem;border:1px solid rgba(96,165,250,.42);border-radius:6px;background:#3b82f624;color:#bfdbfe;font-size:.75rem;font-weight:850;text-decoration:none}.portfolio-map-status-link:hover{border-color:#93c5fdbd;background:#3b82f63d;color:#eff6ff}.text-widget-content{display:flex;flex-direction:column;padding:0}.text-widget-text-block{width:fit-content;max-width:100%;box-sizing:border-box}.text-widget-content p,.text-widget-content textarea{margin:0;word-break:break-word}.text-widget-content p{width:auto;max-width:100%;box-sizing:border-box;white-space:pre-wrap}.text-top-left{justify-content:flex-start;align-items:flex-start}.text-top-center{justify-content:flex-start;align-items:center}.text-top-right{justify-content:flex-start;align-items:flex-end}.text-middle-left{justify-content:center;align-items:flex-start}.text-middle-center{justify-content:center;align-items:center}.text-middle-right{justify-content:center;align-items:flex-end}.text-bottom-left{justify-content:flex-end;align-items:flex-start}.text-bottom-center{justify-content:flex-end;align-items:center}.text-bottom-right{justify-content:flex-end;align-items:flex-end}.weather-widget-content,.calendar-widget-content,.schedule-widget-content{padding:0;align-items:stretch;justify-content:stretch}.calendar-widget,.schedule-widget{width:100%;height:100%;display:flex;align-items:stretch}.calendar-widget-shell,.schedule-widget-shell{width:100%;height:100%;display:grid;gap:.9rem;padding:1rem;background:var(--widget-bg)}.calendar-widget-shell{grid-template-rows:auto 1fr auto}.schedule-widget-shell{grid-template-rows:auto minmax(0,1fr);overflow:hidden}.calendar-widget-hero,.schedule-widget-hero{display:flex;align-items:start;justify-content:space-between;gap:1rem}.calendar-widget-title,.schedule-widget-title{font-size:1.05rem;font-weight:800;color:var(--text-primary)}.calendar-widget-subtitle,.schedule-widget-subtitle{margin-top:.2rem;font-size:.88rem;color:var(--text-secondary)}.schedule-widget-binding{margin-top:.35rem;font-size:.78rem;color:var(--text-secondary)}.calendar-widget-badge,.schedule-widget-next{align-self:start;padding:.55rem .8rem;border-radius:999px;border:1px solid var(--border-color);background:#ffffff14;color:var(--text-secondary);font-size:.8rem}.schedule-widget-next{display:grid;gap:.2rem;border-radius:var(--radius-sm)}.schedule-next-label{text-transform:uppercase;letter-spacing:.08em;font-size:.68rem}.calendar-grid-wrap{display:grid;gap:.5rem;min-height:0}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;color:var(--text-secondary);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}.calendar-weekdays.is-workweek,.calendar-grid.is-workweek{grid-template-columns:repeat(5,minmax(0,1fr))}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;min-height:0}.calendar-day{min-height:92px;padding:.65rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong);display:grid;align-content:start;gap:.45rem}.calendar-day.is-outside{opacity:.46}.calendar-day.is-today{border-color:var(--calendar-accent, var(--accent-primary));box-shadow:0 0 0 1px color-mix(in srgb,var(--calendar-accent, var(--accent-primary)) 45%,transparent)}.calendar-day-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.calendar-day-number{font-weight:800;color:var(--text-primary)}.calendar-day-count{min-width:1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in srgb,var(--calendar-accent, var(--accent-primary)) 18%,transparent);color:var(--text-primary);font-size:.72rem;font-weight:700}.calendar-day-events{display:grid;gap:.35rem}.calendar-day-chip{padding:.3rem .45rem;border-left:3px solid var(--calendar-chip, var(--accent-primary));border-radius:var(--radius-sm);background:var(--surface-strong);color:var(--text-primary);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-day-more,.calendar-agenda-meta{color:var(--text-secondary);font-size:.76rem}.calendar-agenda{display:grid;gap:.55rem;padding-top:.15rem;border-top:1px solid var(--border-color)}.calendar-agenda-header{font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}.calendar-agenda-item{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start}.calendar-agenda-dot{width:.75rem;height:.75rem;border-radius:999px;margin-top:.35rem}.calendar-agenda-title{font-weight:700;color:var(--text-primary)}.schedule-grid{display:grid;grid-template-columns:72px minmax(0,1fr);gap:.75rem;height:100%;min-height:0;align-items:stretch;overflow:hidden}.schedule-time-axis{position:relative;height:calc(100% - 2.95rem);min-height:0;border-right:1px solid var(--border-color);padding-right:.35rem;margin-top:2.95rem}.schedule-time-marker{position:absolute;left:0;right:0;transform:translateY(-50%);font-size:.7rem;color:var(--text-secondary);text-align:right;line-height:1}.schedule-time-marker.is-first{transform:translateY(0)}.schedule-time-marker.is-last{transform:translateY(-100%)}.schedule-time-marker span{display:inline-block;padding-right:.2rem;background:var(--widget-bg)}.schedule-lanes{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.75rem;height:100%;min-height:0;overflow:hidden}.schedule-lane{display:grid;grid-template-rows:auto 1fr;gap:.55rem;height:100%;min-height:0}.schedule-lane-head{display:grid;grid-template-columns:auto;justify-items:start;color:var(--text-secondary);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;row-gap:.1rem;min-height:2.4rem}.schedule-lane-date{font-size:.72rem;letter-spacing:normal;text-transform:none;opacity:.9}.schedule-lane.is-current-day .schedule-lane-head{color:var(--accent-primary)}.schedule-lane-track{position:relative;height:100%;min-height:0;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:linear-gradient(180deg,color-mix(in srgb,var(--schedule-default-color, #64748b) 26%,transparent),color-mix(in srgb,var(--schedule-default-color, #64748b) 14%,transparent)),linear-gradient(180deg,#ffffff0a,#ffffff03),repeating-linear-gradient(to bottom,transparent,transparent calc(12.5% - 1px),rgba(255,255,255,.05) calc(12.5% - 1px),rgba(255,255,255,.05) 12.5%);overflow:hidden}.schedule-default-fill{position:absolute;inset:.45rem;z-index:0;display:flex;align-items:flex-start;justify-content:center;padding-top:.4rem;border:1px dashed color-mix(in srgb,var(--schedule-default-color, #64748b) 45%,transparent);border-radius:calc(var(--radius-sm) - 2px);color:color-mix(in srgb,var(--schedule-default-color, #64748b) 82%,var(--text-secondary));font-size:.72rem;font-weight:800;line-height:1.1;opacity:.78;pointer-events:none;text-align:center}.schedule-block{position:absolute;z-index:1;left:.45rem;right:.45rem;padding:.45rem .5rem;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--schedule-color, var(--accent-secondary)) 22%,rgba(255,255,255,.06));border:1px solid color-mix(in srgb,var(--schedule-color, var(--accent-secondary)) 42%,transparent);color:var(--text-primary);overflow:hidden}.schedule-block.is-active{box-shadow:0 0 0 1px color-mix(in srgb,var(--schedule-color, var(--accent-secondary)) 50%,transparent)}.schedule-block-title{font-size:.78rem;font-weight:800}.schedule-block-time{margin-top:.2rem;font-size:.72rem;color:var(--text-secondary)}.schedule-widget-empty{display:flex;align-items:center;justify-content:center;height:100%;padding:1rem;text-align:center;color:var(--text-secondary);font-size:.82rem}.schedule-binding-card{display:grid;gap:.28rem;padding:.8rem .9rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong);color:var(--text-primary)}.schedule-binding-card small{color:var(--text-secondary)}.schedule-overview-card{gap:0;padding:0;overflow:hidden;background:var(--surface-strong)}.schedule-overview-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;padding:.95rem 1rem;border-bottom:1px solid var(--border-color)}.schedule-overview-icon{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent-primary) 26%,transparent);color:var(--accent-primary);font-size:1.05rem}.schedule-overview-title-group{display:grid;gap:.12rem;min-width:0}.schedule-overview-title-group strong{overflow:hidden;color:var(--text-primary);font-size:1rem;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.schedule-overview-title-group span{color:var(--text-secondary);font-size:.78rem;line-height:1.2}.schedule-overview-status{padding:.22rem .7rem;border-radius:999px;font-size:.74rem;font-weight:800;line-height:1}.schedule-overview-status.is-active{background:color-mix(in srgb,var(--accent-secondary) 18%,transparent);color:var(--accent-secondary)}.schedule-overview-status.is-muted{background:color-mix(in srgb,var(--text-secondary) 14%,transparent);color:var(--text-secondary)}.schedule-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:.8rem 1rem .95rem}.schedule-overview-field{display:grid;align-content:start;gap:.18rem;min-width:0;padding:.55rem 1rem .55rem 0;border-bottom:1px solid var(--border-color)}.schedule-overview-field:nth-child(2n){padding-right:0;padding-left:1rem;border-left:1px solid var(--border-color)}.schedule-overview-field:nth-last-child(-n+2){border-bottom:0}.schedule-overview-field span{color:var(--text-secondary);font-size:.68rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.schedule-overview-field strong{overflow-wrap:anywhere;color:var(--text-primary);font-size:.82rem;line-height:1.25}.bulk-schedule-widget-actions{display:grid;gap:.55rem;align-content:center;justify-items:center;min-height:0;padding:.9rem 1rem 1rem;text-align:center;color:var(--text-secondary);font-size:.78rem}.bulk-schedule-widget-actions .btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;width:min(100%,220px);min-height:2.25rem}.bulk-schedule-tool-modal{z-index:1300;align-items:stretch;padding:1rem}.bulk-schedule-tool{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(1600px,100%);min-height:0;background:var(--sidebar-bg);border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-float);overflow:hidden}.bulk-schedule-tool-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.85rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color);background:var(--panel-header-bg)}.bulk-schedule-tool-title{display:grid;gap:.25rem;min-width:0}.bulk-schedule-tool-header h3{margin:0;color:var(--text-primary);font-size:1.1rem;line-height:1.2}.bulk-schedule-tool-header p{margin:.25rem 0 0;color:var(--text-secondary);font-size:.82rem}.bulk-schedule-tool-actions,.bulk-schedule-section-head,.bulk-schedule-panel-head,.bulk-schedule-toolbar,.bulk-schedule-exception-row,.bulk-schedule-result-row{display:flex;align-items:center;gap:.65rem}.bulk-schedule-tool-actions{flex-wrap:wrap;justify-content:flex-end;min-width:0}.bulk-schedule-tool-actions .btn-primary,.bulk-schedule-tool-actions .btn-secondary,.bulk-schedule-section-head .btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.15rem;white-space:nowrap}.bulk-schedule-tool-actions .btn-primary,.bulk-schedule-tool-actions .btn-secondary{width:auto;min-width:7.5rem;padding-inline:.9rem}.bulk-schedule-tool-actions .btn-primary{min-width:8.5rem}.bulk-schedule-tool-close{position:static;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;margin:0;color:var(--text-secondary)}.bulk-schedule-tool-close:hover{color:var(--text-primary);background:var(--surface-soft)}.bulk-schedule-tool-body{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr) minmax(240px,300px);min-height:0}.bulk-schedule-targets,.bulk-schedule-results{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:.75rem;min-height:0;padding:1rem;background:var(--surface-soft)}.bulk-schedule-results{grid-template-rows:auto minmax(0,1fr);border-left:1px solid var(--border-color)}.bulk-schedule-targets{border-right:1px solid var(--border-color)}.bulk-schedule-panel-head,.bulk-schedule-section-head{justify-content:space-between;min-width:0}.bulk-schedule-panel-head strong,.bulk-schedule-section-head strong{color:var(--text-primary);font-size:.92rem}.bulk-schedule-panel-head span,.bulk-schedule-section-head span{color:var(--text-secondary);font-size:.75rem}.bulk-schedule-section-head>div{display:grid;gap:.15rem;min-width:0}.bulk-schedule-section-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.bulk-schedule-search{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.5rem;min-height:2.3rem;padding:0 .75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--control-bg);color:var(--text-secondary)}.bulk-schedule-search input{min-width:0;border:0;outline:0;background:transparent;color:var(--text-primary);font:inherit}.bulk-schedule-target-list,.bulk-schedule-result-list,.bulk-schedule-exception-list{display:grid;gap:.55rem;min-height:0;overflow:auto;scrollbar-width:thin}.bulk-schedule-schedule-row{display:grid;grid-template-columns:auto minmax(0,auto) minmax(0,1fr) auto;gap:.6rem;align-items:start;padding:.7rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong);cursor:pointer}button.bulk-schedule-schedule-row{width:100%;grid-template-columns:minmax(0,auto) minmax(0,1fr) auto;color:inherit;font:inherit;text-align:left}.bulk-schedule-row-action{display:inline-flex;align-items:center;justify-content:center;width:1.8rem;height:1.8rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer}.bulk-schedule-row-action:hover{background:var(--control-bg);color:var(--text-primary)}.bulk-schedule-schedule-row:hover,.bulk-schedule-schedule-row.is-selected{border-color:color-mix(in srgb,var(--accent-primary) 50%,var(--border-color))}.bulk-schedule-schedule-row.is-selected{background:color-mix(in srgb,var(--accent-primary) 12%,var(--surface-strong))}.bulk-schedule-schedule-row>i{color:var(--text-secondary);margin-top:.12rem}.bulk-schedule-schedule-row input[type=checkbox]{margin-top:.15rem;accent-color:var(--accent-primary)}.bulk-schedule-row-badge{min-width:4.5rem;padding:.16rem .38rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--control-bg);color:var(--text-secondary);font-size:.64rem;font-weight:800;line-height:1.1;text-align:center;text-transform:uppercase}.bulk-schedule-schedule-row span:not(.bulk-schedule-row-badge),.bulk-schedule-result-row span,.bulk-schedule-exception-row span{display:grid;gap:.18rem;min-width:0}.bulk-schedule-schedule-row strong,.bulk-schedule-result-row strong,.bulk-schedule-exception-row strong{overflow:hidden;color:var(--text-primary);font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.bulk-schedule-schedule-row small,.bulk-schedule-result-row small,.bulk-schedule-exception-row small{color:var(--text-secondary);font-size:.72rem;line-height:1.25}.bulk-schedule-workspace{display:grid;grid-template-rows:auto minmax(340px,1fr) minmax(190px,.55fr);gap:1rem;min-width:0;min-height:0;padding:1rem;overflow:hidden}.bulk-schedule-toolbar{flex-wrap:wrap;padding:.85rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong)}.bulk-schedule-toolbar .form-group{flex:1 1 150px;min-width:150px;margin:0}.bulk-schedule-toolbar .form-group span{display:block;margin-bottom:.25rem;color:var(--text-secondary);font-size:.72rem;font-weight:800;text-transform:uppercase}.bulk-schedule-toolbar input[type=text]{width:100%;min-height:2.15rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--control-bg);color:var(--text-primary);padding:0 .65rem;font:inherit}.bulk-schedule-toggle{display:inline-flex;align-items:center;gap:.4rem;min-height:2.15rem;padding:0 .65rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--control-bg);color:var(--text-primary);font-size:.78rem;font-weight:700}.bulk-schedule-toggle input{accent-color:var(--accent-primary)}.bulk-schedule-grid-section,.bulk-schedule-config,.bulk-schedule-exceptions{display:grid;grid-template-rows:auto minmax(0,1fr);gap:.75rem;min-height:0}.bulk-schedule-grid{display:grid;grid-template-columns:repeat(7,minmax(100px,1fr));gap:.75rem;min-height:0;overflow-x:auto;padding-bottom:.2rem}.bulk-schedule-day{display:grid;grid-template-rows:auto minmax(0,1fr);gap:.45rem;min-width:100px;min-height:0}.bulk-schedule-day-head{color:var(--text-secondary);font-size:.76rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.bulk-schedule-day-track{position:relative;min-height:320px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:repeating-linear-gradient(to bottom,transparent,transparent calc(8.333% - 1px),rgba(255,255,255,.05) calc(8.333% - 1px),rgba(255,255,255,.05) 8.333%),var(--surface-strong);overflow:hidden}.bulk-schedule-block{position:absolute;left:.38rem;right:.38rem;min-height:1.8rem;padding:.35rem .45rem;border:1px solid color-mix(in srgb,var(--schedule-color, var(--accent-secondary)) 48%,transparent);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--schedule-color, var(--accent-secondary)) 22%,var(--surface-strong));color:var(--text-primary);text-align:left;cursor:pointer;overflow:hidden}.bulk-schedule-block:hover{box-shadow:0 0 0 1px color-mix(in srgb,var(--schedule-color, var(--accent-secondary)) 60%,transparent)}.bulk-schedule-block.is-selected{outline:2px solid var(--accent-primary);outline-offset:1px}.bulk-schedule-block input[type=checkbox]{position:absolute;top:.25rem;right:.25rem;accent-color:var(--accent-primary)}.bulk-schedule-block strong,.bulk-schedule-block span{display:block;padding-right:1.05rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bulk-schedule-block strong{font-size:.72rem}.bulk-schedule-block span{margin-top:.12rem;color:var(--text-secondary);font-size:.66rem}.bulk-schedule-lower{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.85fr);gap:1rem;min-height:0}.bulk-schedule-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;min-height:0;overflow:auto}.bulk-schedule-config-card,.bulk-schedule-exception-row,.bulk-schedule-result-row,.bulk-schedule-empty{padding:.75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong)}.bulk-schedule-config-card{display:grid;align-content:start;gap:.45rem;color:var(--text-secondary);font-size:.78rem}.bulk-schedule-config-card strong{color:var(--text-primary)}.bulk-schedule-config-card span{display:inline-flex;align-items:center;gap:.4rem;min-width:0}.bulk-schedule-config-card i{width:.7rem;height:.7rem;border-radius:999px;background:var(--schedule-color, var(--accent-secondary))}.bulk-schedule-config-card small{color:var(--text-secondary);opacity:.8}.bulk-schedule-states-card,.bulk-schedule-points-card{grid-column:1 / -1}.bulk-schedule-state-row{display:grid;grid-template-columns:2.3rem minmax(0,1fr) minmax(0,.8fr) auto;gap:.45rem;align-items:center}.bulk-schedule-state-row small{grid-column:1 / -1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bulk-schedule-state-row input[type=text]{width:100%;min-width:0;min-height:2rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--control-bg);color:var(--text-primary);padding:0 .55rem;font:inherit}.bulk-schedule-state-row input[type=color]{width:2.3rem;height:2rem;padding:.12rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--control-bg)}.bulk-schedule-point-config-row{display:grid;grid-template-columns:minmax(7rem,.7fr) repeat(auto-fit,minmax(7rem,1fr));gap:.5rem;align-items:end;padding:.55rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#0f172a24}.bulk-schedule-point-config-row>span{align-self:center;color:var(--text-primary);font-weight:800}.bulk-schedule-point-config-row label{display:grid;gap:.22rem;min-width:0}.bulk-schedule-point-config-row input{width:100%;min-width:0;min-height:2rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--control-bg);color:var(--text-primary);padding:0 .55rem;font:inherit}.bulk-schedule-exception-row,.bulk-schedule-result-row{justify-content:space-between}.bulk-schedule-result-row{align-items:start;justify-content:start}.bulk-schedule-result-row.is-ok i{color:var(--accent-secondary)}.bulk-schedule-result-row.is-error i{color:var(--accent-danger)}.bulk-schedule-empty{color:var(--text-secondary);font-size:.8rem;text-align:center}.bulk-schedule-dialog{position:absolute;inset:0;z-index:8;display:grid;place-items:center;padding:1rem;background:#02061794}.bulk-schedule-dialog.hidden{display:none}.bulk-schedule-dialog-panel{width:min(680px,100%);max-height:calc(100vh - 5rem);display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--panel-bg);box-shadow:var(--shadow-xl);overflow:hidden}.bulk-schedule-dialog-head,.bulk-schedule-dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid var(--border-color)}.bulk-schedule-dialog-actions{justify-content:flex-end;border-top:1px solid var(--border-color);border-bottom:0}.bulk-schedule-dialog-head h4{margin:0;color:var(--text-primary);font-size:1rem}.bulk-schedule-dialog-body{display:grid;gap:.85rem;padding:1rem;overflow:auto}.bulk-schedule-dialog [hidden],.bulk-schedule-dialog .hidden{display:none!important}.bulk-schedule-source-note{padding:.55rem .65rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--text-secondary);font-size:.78rem;line-height:1.35}.bulk-schedule-source-note.is-warning{border-color:color-mix(in srgb,var(--warning, #f59e0b) 55%,var(--border-color));color:var(--text-primary)}.bulk-schedule-dialog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.bulk-schedule-dialog .form-group{margin:0}.bulk-schedule-dialog .form-group span{display:block;margin-bottom:.25rem;color:var(--text-secondary);font-size:.72rem;font-weight:800;text-transform:uppercase}.bulk-schedule-dialog input,.bulk-schedule-dialog select{width:100%;min-height:2.15rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--control-bg);color:var(--text-primary);padding:0 .65rem;font:inherit}.bulk-schedule-day-selector{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem}.bulk-schedule-day-choice{display:flex;align-items:center;justify-content:center;gap:.35rem;min-height:2.15rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--control-bg);color:var(--text-primary);font-size:.78rem;font-weight:800}.bulk-schedule-dialog-error{min-height:1.1rem;color:var(--accent-danger);font-size:.8rem;font-weight:700}.bulk-schedule-calendar-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:.55rem;align-items:center}.bulk-schedule-calendar-toolbar strong{color:var(--text-primary);text-align:center}.bulk-schedule-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}.bulk-schedule-calendar-head{color:var(--text-secondary);font-size:.72rem;font-weight:800;text-align:center;text-transform:uppercase}.bulk-schedule-calendar-cell{min-height:5rem;display:grid;align-content:start;gap:.25rem;padding:.45rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong);color:var(--text-primary);overflow:hidden}.bulk-schedule-calendar-cell.is-muted{opacity:.55}.bulk-schedule-calendar-cell strong{font-size:.78rem}.bulk-schedule-calendar-cell span{display:block;padding:.18rem .28rem;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent-warning) 18%,var(--control-bg));color:var(--text-primary);font-size:.68rem;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:640px){.schedule-overview-header{grid-template-columns:auto minmax(0,1fr)}.schedule-overview-status{justify-self:start;grid-column:2}.schedule-overview-grid{grid-template-columns:1fr}.schedule-overview-field,.schedule-overview-field:nth-child(2n){padding-right:0;padding-left:0;border-left:0}.schedule-overview-field:nth-last-child(2){border-bottom:1px solid var(--border-color)}.bulk-schedule-tool-modal{padding:0}.bulk-schedule-tool{border-radius:0}.bulk-schedule-tool-header{grid-template-columns:minmax(0,1fr) auto;align-items:start}.bulk-schedule-tool-actions{grid-column:1 / -1;align-items:stretch;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.bulk-schedule-tool-actions .btn-primary,.bulk-schedule-tool-actions .btn-secondary{min-width:0;width:100%}.bulk-schedule-tool-close{grid-column:2;grid-row:1}.bulk-schedule-tool-body{grid-template-columns:1fr;overflow:auto}.bulk-schedule-targets,.bulk-schedule-results,.bulk-schedule-workspace{border:0;min-height:360px}.bulk-schedule-workspace,.bulk-schedule-lower,.bulk-schedule-config-grid{grid-template-columns:1fr}}.priority-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.priority-slot{display:grid;gap:.35rem}.priority-slot label{font-size:.8rem;color:var(--text-secondary)}.priority-slot select{width:100%;min-height:2.45rem;padding:.5rem .65rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background-color:var(--surface-strong);color:var(--text-primary);font:inherit}.schedule-effective-period-group{display:grid;gap:.55rem}.schedule-effective-period-summary{min-height:3.25rem;padding:.75rem .85rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong);color:var(--text-primary);line-height:1.45;display:flex;align-items:center}.schedule-raw-details{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--text-secondary)}.schedule-raw-details summary{cursor:pointer;padding:.65rem .8rem;color:var(--text-primary);font-weight:700}.schedule-raw-details pre{margin:0;padding:0 .8rem .8rem;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-secondary);font:.82rem/1.45 var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace)}.schedule-legend-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.schedule-section-actions{display:flex;justify-content:flex-end;margin-top:.9rem}.schedule-legend-section.is-editing{padding:.85rem;margin:.35rem 0;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong)}.schedule-legend-section.is-disabled{opacity:.55;padding:.85rem;margin:.35rem 0;border:1px dashed var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong);pointer-events:none}.schedule-priority-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}.schedule-priority-chip{display:grid;gap:.15rem;padding:.45rem .55rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong)}.schedule-priority-chip span{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.schedule-priority-chip strong{color:var(--text-primary);font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-priority-chip.is-set{border-color:#60a5fa47;background:#60a5fa14}.controls-widget-content{padding:.75rem;overflow:auto}.controls-widget-shell{display:flex;flex-direction:column;gap:.5rem}.controls-widget-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(84px,120px) minmax(112px,auto);align-items:center;gap:.5rem;padding:.5rem;border:1px solid var(--border-color);background:var(--panel-bg);border-radius:var(--radius-sm)}.controls-widget-point{min-width:0;display:flex;flex-direction:column;gap:.1rem}.controls-widget-point strong{color:var(--text-primary);font-size:.8rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.controls-widget-point span{color:var(--text-secondary);font-size:.72rem}.controls-widget-point small{color:var(--muted-text);font-size:.68rem;line-height:1.1}.controls-widget-value{width:100%;height:30px;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--control-bg);color:var(--text-primary);padding:0 .45rem;font:inherit;font-size:.78rem}.controls-widget-write{height:30px;border-radius:var(--radius-sm);border:1px solid rgba(34,197,94,.48);background:#16a34a;color:#fff;font-weight:700;font-size:.72rem;padding:0 .65rem}.controls-widget-write:disabled{opacity:.58;cursor:not-allowed}.controls-widget-row.is-control-write-pending{border-color:#60a5fab8;box-shadow:0 0 0 1px #60a5fa38}.controls-widget-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem}.controls-widget-write-status{display:inline-flex;align-items:center;gap:.3rem;min-height:30px;color:var(--text-secondary);font-size:.7rem;font-weight:700}.controls-widget-write-status:before{content:"";width:.65rem;height:.65rem;border:2px solid rgba(96,165,250,.28);border-top-color:var(--accent-primary);border-radius:50%;animation:controls-write-spin .8s linear infinite}@keyframes controls-write-spin{to{transform:rotate(360deg)}}.controls-widget-override{width:30px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-color:#60a5fa94;background:var(--accent-primary)}.controls-override-status{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.2rem}.controls-override-chip{display:inline-flex;align-items:center;gap:.3rem;width:fit-content;max-width:100%;padding:.18rem .35rem;border:1px solid rgba(96,165,250,.42);border-radius:var(--radius-sm);background:#60a5fa1f;color:var(--text-primary);font-size:.66rem;line-height:1.1}.controls-override-chip em{color:#fbbf24;font-style:normal;font-weight:700}.controls-override-cancel-chip{min-height:20px;border-radius:var(--radius-sm);border:1px solid rgba(239,68,68,.44);background:#ef44441f;color:#fecaca;font-size:.62rem;font-weight:800;padding:0 .35rem}.controls-override-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:#02060ec7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.controls-override-card{width:min(560px,100%);max-height:min(680px,calc(100vh - 2.5rem));overflow:hidden;border:1px solid rgba(59,130,246,.34);border-radius:var(--radius-sm);background:var(--panel-bg);box-shadow:var(--shadow-lg);color:var(--text-primary)}.controls-override-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border-bottom:1px solid var(--border-color);background:var(--sidebar-bg)}.controls-override-header h3{margin:0;font-size:1.05rem;line-height:1.2;color:var(--text-primary)}.controls-override-header p{margin:.25rem 0 0;color:var(--text-secondary);font-size:.82rem}.controls-override-header .properties-close-button{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-color);background:var(--input-bg);font-size:1.2rem}.controls-override-form{display:flex;flex-direction:column;gap:.9rem;padding:1rem 1.1rem 1.1rem}.controls-override-form .form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.controls-override-form .form-group{margin-bottom:0}.controls-override-form input,.controls-override-form select{min-height:42px}.controls-override-form .hidden{display:none}.controls-override-status-message{min-height:1.1rem;color:var(--text-secondary);font-size:.8rem;font-weight:700}.controls-override-status-message.error{color:#fecaca}.controls-override-actions{display:flex;justify-content:flex-end;gap:.5rem;padding-top:.25rem;border-top:1px solid var(--border-color)}.controls-override-actions button{min-height:38px;min-width:120px}@media(max-width:560px){.controls-override-form .form-row{grid-template-columns:1fr}.controls-override-actions{flex-direction:column-reverse}.controls-override-actions button{width:100%}}.controls-action-row{display:flex;gap:.5rem;margin:.5rem 0;flex-wrap:wrap;justify-content:flex-end}.controls-drawer-write{min-height:32px;border-radius:var(--radius-sm);border:1px solid rgba(34,197,94,.48);background:#16a34a;color:#fff;font-weight:700;font-size:.72rem;padding:.35rem .7rem}.controls-drawer-write:disabled{opacity:.58;cursor:not-allowed}.controls-priority-table{display:grid;border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden;background:var(--control-bg);margin-bottom:.75rem}.controls-priority-head,.controls-priority-row{display:grid;grid-template-columns:52px minmax(88px,1fr) 58px 68px;align-items:center;gap:.35rem;padding:.42rem .45rem;border-bottom:1px solid var(--border-color);font-size:.68rem}.controls-priority-head{color:var(--accent-secondary);background:var(--panel-bg);font-weight:700;text-transform:uppercase;letter-spacing:.01em;line-height:1.1}.controls-priority-head span,.controls-priority-row span,.controls-priority-row strong{min-width:0}.controls-priority-head span:nth-child(1),.controls-priority-head span:nth-child(3),.controls-priority-head span:nth-child(4),.controls-priority-row span:nth-child(1),.controls-priority-row strong,.controls-priority-value{text-align:center;justify-self:stretch}.controls-priority-row:last-child{border-bottom:0}.controls-priority-row.is-write-priority{background:#60a5fa24;outline:1px solid var(--accent-secondary);outline-offset:-1px}.controls-priority-row.is-current-value:not(.is-write-priority){background:#22c55e12}.controls-priority-row.is-relinquish{background:#facc1512}.controls-priority-row.is-relinquish.is-write-priority{background:linear-gradient(90deg,#60a5fa29,#facc1514)}.controls-priority-row strong{color:var(--text-primary);font-size:.72rem}.controls-priority-row span:nth-child(2){color:var(--text-primary);font-weight:600}.controls-priority-value{min-width:44px;padding:.1rem .4rem;border-radius:999px;background:var(--panel-bg);color:var(--text-secondary);font-weight:700}.controls-protocol-section.is-hidden{display:none}.controls-point-row{display:flex;flex-direction:column;gap:.75rem;padding:.85rem}.controls-point-card-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;cursor:pointer;list-style:none}.controls-point-card-header::-webkit-details-marker{display:none}.controls-point-card-header strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.controls-point-card-title{min-width:0;display:flex;align-items:center;gap:.45rem;color:var(--text-primary)}.controls-point-card-title:before{content:">";color:var(--text-secondary);font-size:.8rem}.controls-point-card-title strong{color:var(--text-primary)}.controls-point-card[open] .controls-point-card-title:before{content:"v"}.controls-point-card-body{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem}.controls-remove-point{flex:0 0 auto;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--control-bg);color:var(--text-secondary);font-size:1rem;font-weight:800;line-height:1;padding:0}.controls-remove-point:hover{border-color:#ef444494;color:#fecaca}.controls-point-card .controls-priority-table{margin-bottom:0}.weather-widget{width:100%;height:100%;display:flex;align-items:stretch}.weather-widget-shell{width:100%;min-height:100%;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);align-content:stretch;gap:.85rem;padding:.95rem;overflow:auto;background:linear-gradient(180deg,#60a5fa1a,#60a5fa05),var(--widget-bg)}.weather-widget-shell-history{overflow-x:hidden}.weather-widget-hero{display:flex;align-items:center;justify-content:space-between;gap:1rem}.weather-widget-location{font-size:1rem;font-weight:700;color:var(--text-primary)}.weather-widget-summary{margin-top:.25rem;color:var(--text-secondary);font-size:.92rem}.weather-widget-icon{width:clamp(4.5rem,18vw,7.25rem);height:clamp(4.5rem,18vw,7.25rem);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;margin:-.35rem -.2rem -.6rem 0}.weather-icon-svg{display:block;width:100%;height:100%;object-fit:contain;overflow:visible}.weather-icon-current{max-width:7.25rem;max-height:7.25rem}.weather-widget-current{display:flex;align-items:end;justify-content:space-between;gap:1rem;padding:.85rem .95rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong)}.weather-widget-temp{font-size:clamp(3rem,7vw,4.65rem);line-height:1;font-weight:800;color:var(--text-primary)}.weather-widget-current-detail{display:grid;gap:.35rem;text-align:right;color:var(--text-secondary);font-size:.88rem}.weather-widget-solar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.weather-widget-solar span{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:.45rem;padding:.5rem .65rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#0f172a38;color:var(--text-secondary);font-size:.78rem;line-height:1.2;white-space:nowrap}.weather-widget-solar i{color:#fbbf24}.weather-widget-solar strong{color:var(--text-primary);font-size:.84rem;font-weight:800}.weather-cache-note{color:var(--text-muted);font-size:.76rem;letter-spacing:.01em}.weather-widget-range{max-width:45%;color:var(--text-secondary);font-size:.78rem;line-height:1.35;text-align:right}.weather-history-caption{margin-top:.25rem;color:var(--text-secondary);font-size:.78rem;font-weight:700}.weather-widget-forecast{display:grid;grid-template-columns:repeat(auto-fit,minmax(74px,1fr));gap:.65rem;align-items:stretch;min-height:0;height:100%}.weather-widget-history-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,92px),1fr));grid-auto-rows:minmax(8rem,auto);grid-auto-flow:row;grid-auto-columns:unset;align-content:start;justify-content:stretch;overflow-x:hidden;overflow-y:auto;padding:0 .35rem .55rem 0;scroll-snap-type:none}.weather-forecast-day{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:.35rem;justify-items:center;align-content:stretch;min-height:7.4rem;height:100%;padding:.65rem .5rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--surface-strong);text-align:center}.weather-widget-history-grid .weather-forecast-day{grid-template-rows:minmax(1.35rem,auto) minmax(2.55rem,auto) minmax(2.1rem,auto);gap:.28rem;min-height:8rem;padding:.78rem .5rem .75rem;scroll-snap-align:none;height:auto;overflow:hidden}.weather-forecast-name{font-weight:700;font-size:.85rem;color:var(--text-primary);line-height:1.15;min-height:1.15rem;position:relative;z-index:1}.weather-forecast-icon{width:clamp(3.15rem,8vw,4.35rem);height:clamp(3.15rem,8vw,4.35rem);display:grid;place-items:center;align-self:center}.weather-widget-history-grid .weather-forecast-icon{width:clamp(2.35rem,5.75vw,3.1rem);height:clamp(2.35rem,5.75vw,3.1rem)}.weather-icon-small{width:100%;height:100%}.weather-forecast-range{display:grid;gap:.15rem;font-size:.82rem;color:var(--text-secondary);align-self:end}.weather-forecast-range strong{color:var(--text-primary);font-size:1rem}.weather-history-range{width:100%;gap:.25rem}.weather-history-range strong{font-size:.92rem;line-height:1.1}.weather-history-range span{display:block;color:var(--text-secondary);font-size:.68rem;line-height:1.18;white-space:normal}.weather-widget-empty{width:100%;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--text-secondary);padding:1rem}.graphic-widget-content{padding:0}.grid-stack-item-content.has-transparent-widget-bg .graphic-widget-content{background:transparent}.grid-stack-item-content.has-transparent-widget-bg .graphic-widget-stage,.grid-stack-item-content.has-transparent-widget-bg .graphic-widget-image,.grid-stack-item-content.has-transparent-widget-bg .graphic-widget-svg,.grid-stack-item-content.has-transparent-widget-bg .graphic-widget-empty{background:transparent!important}.graphic-widget-stage{position:relative;width:100%;height:100%;min-height:240px;overflow:hidden;background:var(--graphic-stage-bg, #08101c)}.graphic-widget-stage:before{content:"";display:block;padding-top:var(--graphic-stage-ratio, 56.25%)}.graphic-widget-image,.graphic-widget-svg,.graphic-widget-empty{position:absolute;inset:0;width:100%;height:100%}.graphic-widget-svg{overflow:visible}.graphic-widget-image{object-fit:contain;background:var(--graphic-stage-bg, transparent)}.graphic-widget-empty{display:flex;align-items:center;justify-content:center;padding:1rem;color:var(--text-secondary);text-align:center}.graphic-widget-shape{cursor:pointer;vector-effect:non-scaling-stroke}.graphic-widget-shape.is-alarm{animation:graphic-alarm-pulse 1s infinite;filter:drop-shadow(0 0 8px rgba(239,68,68,.85))}.graphic-widget-shape.is-alarm-paused{animation:graphic-paused-alarm-pulse 1.6s infinite;filter:drop-shadow(0 0 9px rgba(245,158,11,.9))}.graphic-widget-alarm-ring{fill:none;stroke:#ef4444;stroke-width:8;stroke-dasharray:18 8;vector-effect:non-scaling-stroke;pointer-events:none;animation:graphic-alarm-ring-pulse .85s infinite;filter:drop-shadow(0 0 12px rgba(239,68,68,.95))}.graphic-widget-alarm-ring.is-paused{stroke:#f59e0b;stroke-dasharray:7 7;animation:graphic-paused-alarm-ring-pulse 1.6s infinite;filter:drop-shadow(0 0 12px rgba(245,158,11,.95))}@keyframes graphic-alarm-pulse{0%,to{opacity:1}50%{opacity:.42}}@keyframes graphic-paused-alarm-pulse{0%,to{opacity:1}50%{opacity:.68}}@keyframes graphic-alarm-ring-pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes graphic-paused-alarm-ring-pulse{0%,to{opacity:1}50%{opacity:.55}}.shape-label{fill:var(--label-color, white);font-family:var(--label-family, var(--font-main));font-size:var(--label-size, 20px);font-weight:var(--label-weight, 600);paint-order:stroke;stroke:var(--label-outline-color, rgba(15, 23, 42, .84));stroke-width:var(--label-outline-width, 6px);stroke-linejoin:round;pointer-events:none}.shape-label-line{stroke:var(--label-line-color, #54a4ff);stroke-width:var(--label-line-width, 2px);stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none}.graphic-widget-tooltip{position:absolute;z-index:10;max-width:260px;padding:.65rem .75rem;border:1px solid rgba(96,165,250,.35);border-radius:var(--radius-sm);box-shadow:0 12px 28px #00000047;pointer-events:none;white-space:pre-wrap}.graphic-widget-tooltip.is-trend{width:min(360px,calc(100% - 24px));max-width:min(360px,calc(100% - 24px));padding:.75rem;pointer-events:auto;white-space:normal}.graphic-tooltip-trend-card{display:flex;flex-direction:column;gap:.65rem}.graphic-tooltip-trend-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.graphic-tooltip-trend-title{color:#f8fafc;font-weight:800;line-height:1.15}.graphic-tooltip-trend-subtitle,.graphic-tooltip-trend-footer{color:#94a3b8;font-size:.72rem;line-height:1.25}.graphic-tooltip-trend-current{color:#bfdbfe;font-size:1.1rem;font-weight:800;line-height:1;text-align:right;white-space:nowrap}.graphic-tooltip-trend-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.graphic-tooltip-trend-stat{min-width:0;padding:.45rem .5rem;border:1px solid rgba(148,163,184,.24);border-radius:var(--radius-sm);background:#0f172ab8}.graphic-tooltip-trend-stat span{display:block;color:#94a3b8;font-size:.66rem;font-weight:700;letter-spacing:0;text-transform:uppercase}.graphic-tooltip-trend-stat strong{display:block;overflow:hidden;color:#e8eef5;font-size:.82rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.graphic-tooltip-trend-legend{display:flex;flex-wrap:wrap;gap:.35rem .55rem;min-width:0}.graphic-tooltip-trend-legend-item{display:inline-grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.3rem;min-width:0;max-width:100%;padding:.18rem .35rem;border:1px solid rgba(148,163,184,.18);border-radius:var(--radius-sm);background:#0f172a6b;color:#cbd5e1;font-size:.68rem;line-height:1.15}.graphic-tooltip-trend-legend-swatch{width:.55rem;height:.55rem;border-radius:999px;box-shadow:0 0 0 1px #f8fafc3d}.graphic-tooltip-trend-legend-label{overflow:hidden;min-width:0;max-width:8.5rem;color:#e8eef5;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.graphic-tooltip-trend-legend-axis{color:#94a3b8;font-size:.64rem;font-weight:800;text-transform:uppercase;white-space:nowrap}.graphic-tooltip-trend-chart{position:relative;display:grid;grid-template-columns:var(--trend-left-axis-width, 0) minmax(0,1fr) var(--trend-right-axis-width, 0);gap:.2rem;height:126px;min-height:126px;padding:.35rem .3rem .25rem;border:1px solid rgba(96,165,250,.18);border-radius:var(--radius-sm);background:#02080f75}.graphic-tooltip-trend-chart.has-left-axis{--trend-left-axis-width: 2.35rem}.graphic-tooltip-trend-chart.has-right-axis{--trend-right-axis-width: 2.55rem}.graphic-tooltip-trend-plot{min-width:0;height:100%}.graphic-tooltip-trend-axis-scale{display:flex;min-width:0;flex-direction:column;justify-content:space-between;padding:16px 0 20px;color:#dbeafe;font-size:.64rem;font-weight:800;line-height:1;pointer-events:none;text-shadow:0 1px 2px rgba(2,8,15,.95);-webkit-user-select:none;user-select:none}.graphic-tooltip-trend-axis-scale span{display:block;max-width:2.55rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.graphic-tooltip-trend-axis-scale-left{align-items:flex-start;text-align:left}.graphic-tooltip-trend-axis-scale-right{align-items:flex-end;text-align:right}.graphic-tooltip-trend-chart.is-loading,.graphic-tooltip-trend-chart.is-empty{display:grid;grid-template-columns:1fr;place-items:center;padding:0;color:#94a3b8;font-size:.78rem;text-align:center}.graphic-shape-editor textarea{min-height:80px;resize:vertical}.graphic-shape-editor{padding:0;overflow:hidden}.graphic-shape-summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.9rem 1rem;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.graphic-shape-summary::-webkit-details-marker{display:none}.graphic-shape-summary:after{content:"+";flex-shrink:0;font-size:1rem;font-weight:700;color:var(--text-secondary)}.graphic-shape-editor[open] .graphic-shape-summary:after{content:"−"}.graphic-shape-body{padding:0 1rem 1rem;border-top:1px solid var(--border-color)}.graphic-shape-body .form-row{grid-template-columns:1fr;gap:.75rem}.graphic-shape-body .form-group{margin-bottom:.75rem}.graphic-shape-body .form-group:last-child{margin-bottom:0}.graphic-shape-title{margin:0;font-size:.95rem;color:var(--text-primary)}@media(max-width:1180px){.schedule-grid{grid-template-columns:60px minmax(0,1fr)}.schedule-lanes{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.calendar-weekdays,.calendar-grid,.calendar-grid.is-workweek,.schedule-grid,.schedule-lanes{grid-template-columns:repeat(1,minmax(0,1fr))}.schedule-time-axis{display:none}.priority-grid,.schedule-priority-summary{grid-template-columns:repeat(1,minmax(0,1fr))}.admin-site-settings-grid{grid-template-columns:1fr}.calendar-day{min-height:72px}}.hidden{display:none!important}@media(max-width:1024px){.properties{width:min(92vw,480px);right:0}}@media(max-width:768px){body{position:relative}.container{flex-direction:column}.menu{width:100%;height:auto;flex-direction:row;justify-content:center;border-right:none;border-bottom:1px solid var(--border-color);order:1;flex-shrink:0}.menu-spacer{display:none}.menu-btn-tool{width:76px;min-height:58px;padding:.45rem .4rem}.menu-btn-label{max-width:68px;font-size:.58rem}.main{order:2;flex-grow:1}.dashboard-tabs{justify-content:center}.properties{width:90%;max-width:400px;top:50%;left:50%;bottom:auto;transform:translate(-50%,-50%) scale(.9);opacity:0;pointer-events:none;transition:all .3s ease}.properties.open{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}.overlay{position:fixed;inset:0;background:#00000080;z-index:1040;opacity:0;pointer-events:none;transition:opacity .3s ease}.overlay.active{opacity:1;pointer-events:auto}}.field-note{margin:.5rem 0 0;font-size:.85rem;color:var(--text-secondary);line-height:1.5}.form-error{margin:.75rem 0 0;padding:.8rem .9rem;border:1px solid rgba(248,113,113,.35);border-radius:var(--radius-sm);background:#7f1d1d29;color:#fecaca;font-size:.88rem;line-height:1.45}body.edge-app .edge-hidden{display:none!important}
