body{margin:0}:root{--color-brand-50:#f0fdf4;--color-brand-100:#dcfce7;--color-brand-200:#bbf7d0;--color-brand-300:#86efac;--color-brand-400:#4ade80;--color-brand-500:#22c55e;--color-brand-600:#16a34a;--color-brand-700:#15803d;--color-brand-800:#166534;--color-brand-900:#14532d;--color-neutral-0:#fff;--color-neutral-50:#f8fafc;--color-neutral-100:#f1f5f9;--color-neutral-200:#e2e8f0;--color-neutral-300:#cbd5e1;--color-neutral-400:#94a3b8;--color-neutral-500:#64748b;--color-neutral-600:#475569;--color-neutral-700:#334155;--color-neutral-800:#1e293b;--color-neutral-900:#0f172a;--color-success:#16a34a;--color-success-light:#dcfce7;--color-warning:#d97706;--color-warning-light:#fef3c7;--color-error:#dc2626;--color-error-light:#fee2e2;--color-info:#2563eb;--color-info-light:#dbeafe;--viz-electricity:#22c55e;--viz-gas:#f97316;--viz-water:#38bdf8;--viz-steam:#a78bfa;--viz-oil:#78716c;--viz-solar:#fbbf24;--fg-primary:var(--color-neutral-800);--fg-body:var(--color-neutral-700);--fg-secondary:var(--color-neutral-600);--fg-muted:var(--color-neutral-500);--fg-placeholder:var(--color-neutral-400);--fg-on-brand:#fff;--fg-brand:var(--color-brand-700);--fg-brand-dark:var(--color-brand-900);--bg-page:var(--color-neutral-50);--bg-surface:var(--color-neutral-0);--bg-subtle:var(--color-neutral-100);--bg-brand-tint:var(--color-brand-50);--bg-brand-fill:var(--color-brand-100);--border-default:var(--color-neutral-200);--border-subtle:var(--color-neutral-100);--border-strong:var(--color-neutral-300);--border-focus:var(--color-brand-500);--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono","Fira Code","Cascadia Code",ui-monospace,monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--leading-xs:1rem;--leading-sm:1.25rem;--leading-base:1.5rem;--leading-lg:1.75rem;--leading-xl:1.75rem;--leading-2xl:2rem;--leading-3xl:2.25rem;--leading-4xl:2.5rem;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--tracking-display:-.02em;--tracking-body:0em;--tracking-uppercase:.06em;--tracking-caps-sm:.04em;--tracking-caps-xs:.08em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:10px;--radius-pill:9999px;--shadow-none:none;--shadow-xs:0 1px 2px #0000000d;--shadow-sm:0 1px 3px #00000014,0 1px 2px #0000000a;--shadow-md:0 4px 6px #00000012,0 2px 4px #0000000a;--shadow-lg:0 10px 25px #0000001a,0 4px 10px #0000000d;--shadow-xl:0 20px 60px #00000029;--shadow-focus-brand:0 0 0 3px #22c55e26;--shadow-focus-error:0 0 0 3px #dc26261f;--z-base:0;--z-sticky:100;--z-sidebar:200;--z-dropdown:300;--z-modal:400;--z-toast:500;--motion-fast:.1s;--motion-default:.2s;--motion-slow:.3s;--ease-standard:cubic-bezier(.4,0,.2,1)}.page-head{margin-bottom:var(--space-6)}.page-head h1{font-size:var(--text-3xl);line-height:var(--leading-3xl);font-weight:var(--weight-bold);letter-spacing:var(--tracking-display);color:var(--fg-primary);margin:0}.page-head .page-sub{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--fg-muted);margin:6px 0 0}.gk-btn{justify-content:center;align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-4);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;box-sizing:border-box;transition:background-color var(--motion-default)var(--ease-standard),color var(--motion-default)var(--ease-standard),border-color var(--motion-default)var(--ease-standard),box-shadow var(--motion-default)var(--ease-standard);border:1px solid #0000;line-height:1;text-decoration:none;display:inline-flex}.gk-btn .ic,.gk-btn svg{width:16px;height:16px}.gk-btn:focus-visible{box-shadow:var(--shadow-focus-brand);outline:none}.gk-btn:disabled,.gk-btn[aria-disabled=true]{opacity:.4;pointer-events:none}.gk-btn--sm{height:30px;padding:0 var(--space-3);font-size:var(--text-xs)}.gk-btn--primary{background:var(--color-brand-700);color:var(--fg-on-brand);box-shadow:var(--shadow-xs)}.gk-btn--primary:hover{background:var(--color-brand-600)}.gk-btn--primary:active{background:var(--color-brand-800)}.gk-btn--secondary{background:var(--bg-surface);color:var(--color-neutral-700);border-color:var(--color-neutral-200)}.gk-btn--secondary:hover{background:var(--color-neutral-50);border-color:var(--color-neutral-300)}.gk-btn--secondary:active{background:var(--color-neutral-100)}.gk-btn--ghost{color:var(--color-neutral-600);background:0 0}.gk-btn--ghost:hover{background:var(--color-neutral-100);color:var(--color-neutral-800)}.gk-btn--ghost:active{background:var(--color-neutral-200)}.gk-btn--destructive{background:var(--color-error);color:#fff;box-shadow:var(--shadow-xs)}.gk-btn--destructive:hover{background:#b91c1c}.gk-btn--destructive:active{background:#991b1b}.gk-btn--destructive-outline{background:var(--bg-surface);color:var(--color-error);border-color:var(--color-neutral-200)}.gk-btn--destructive-outline:hover{background:var(--color-error-light);border-color:#fca5a5}.gk-btn--icon{width:36px;padding:0}.gk-btn--icon.gk-btn--sm{width:30px}.gk-btn--add{border:1px dashed var(--color-neutral-300);color:var(--color-neutral-600);background:0 0;width:100%;height:44px}.gk-btn--add:hover{border-color:var(--color-brand-500);color:var(--color-brand-700);background:var(--bg-brand-tint)}.gk-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);border-radius:var(--radius-pill);white-space:nowrap;align-items:center;gap:6px;padding:2px 8px;line-height:1.4;display:inline-flex}.gk-badge__dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.gk-badge--success{background:var(--color-success-light);color:#166534}.gk-badge--success .gk-badge__dot{background:var(--color-success)}.gk-badge--warning{background:var(--color-warning-light);color:#92400e}.gk-badge--warning .gk-badge__dot{background:var(--color-warning)}.gk-badge--error{background:var(--color-error-light);color:#991b1b}.gk-badge--error .gk-badge__dot{background:var(--color-error)}.gk-badge--info{background:var(--color-info-light);color:#1e40af}.gk-badge--info .gk-badge__dot{background:var(--color-info)}.gk-badge--neutral{background:var(--color-neutral-100);color:var(--color-neutral-600)}.gk-badge--neutral .gk-badge__dot{background:var(--color-neutral-400)}.gk-alert{gap:var(--space-3);padding:var(--space-3)var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-neutral-700);border-left:4px solid;align-items:flex-start;display:flex}.gk-alert .ic{flex-shrink:0;width:18px;height:18px;margin-top:1px}.gk-alert--success{border-color:var(--color-success);background:var(--color-success-light)}.gk-alert--success .ic{color:var(--color-success)}.gk-alert--warning{border-color:var(--color-warning);background:var(--color-warning-light)}.gk-alert--warning .ic{color:var(--color-warning)}.gk-alert--error{border-color:var(--color-error);background:var(--color-error-light)}.gk-alert--error .ic{color:var(--color-error)}.gk-alert--info{border-color:var(--color-info);background:var(--color-info-light)}.gk-alert--info .ic{color:var(--color-info)}.gk-card{background:var(--bg-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.gk-card__head{padding:14px var(--space-5);border-bottom:1px solid var(--color-neutral-100);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.gk-card__title{font-size:15px;font-weight:var(--weight-semibold);color:var(--fg-primary)}.gk-card__sub{font-size:var(--text-sm);color:var(--color-neutral-500);margin-top:2px}.gk-card__body{padding:var(--space-5)}.gk-card__foot{padding:var(--space-3)var(--space-5);border-top:1px solid var(--color-neutral-100);justify-content:flex-end;gap:var(--space-2);align-items:center;display:flex}.gk-field{flex-direction:column;gap:6px;min-width:0;display:flex}.gk-field__label{font-size:13px;font-weight:var(--weight-medium);color:var(--fg-body)}.gk-field__label .required{color:var(--color-error);margin-left:2px}.gk-field__hint{font-size:var(--text-xs);color:var(--color-neutral-500)}.gk-input{width:100%;height:36px;padding:var(--space-2)var(--space-3);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);background:var(--bg-surface);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-neutral-800);box-sizing:border-box;transition:border-color var(--motion-default)var(--ease-standard),box-shadow var(--motion-default)var(--ease-standard);outline:none}.gk-input::placeholder{color:var(--fg-placeholder)}.gk-input:focus{border-color:var(--color-brand-500);box-shadow:var(--shadow-focus-brand)}.gk-input:disabled{opacity:.5;background:var(--color-neutral-50);pointer-events:none}.gk-input[readonly]{background:var(--color-neutral-50);color:var(--color-neutral-600)}textarea.gk-input{resize:vertical;height:auto;min-height:72px;line-height:var(--leading-sm)}select.gk-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2716%27 height=%2716%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%2364748B%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27m6 9 6 6 6-6%27/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:32px}.gk-input-wrap{align-items:center;display:flex;position:relative}.gk-input-wrap .gk-input__icon{width:16px;height:16px;color:var(--color-neutral-400);pointer-events:none;position:absolute;left:10px}.gk-input-wrap .gk-input--has-icon{padding-left:34px}.gk-check{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--fg-body);cursor:pointer;display:flex}.gk-check input{width:16px;height:16px;accent-color:var(--color-brand-700)}.form-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.form-grid .span-2{grid-column:span 2}.form-section{margin-bottom:var(--space-6)}.form-section__title{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-caps-sm);color:var(--fg-muted);margin:0 0 var(--space-3)}.form-actions{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-5);display:flex}.gk-tabs{border-bottom:1px solid var(--color-neutral-200);margin-bottom:var(--space-5);gap:0;display:flex}.gk-tab{align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-neutral-500);cursor:pointer;transition:color var(--motion-default),border-color var(--motion-default);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;display:inline-flex}.gk-tab .ic{width:16px;height:16px}.gk-tab:hover{color:var(--color-neutral-700)}.gk-tab--active{color:var(--color-brand-700);border-bottom-color:var(--color-brand-700);font-weight:var(--weight-semibold)}.gk-tab:focus-visible{box-shadow:var(--shadow-focus-brand);border-radius:var(--radius-sm);outline:none}.gk-seg{background:var(--color-neutral-100);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);gap:2px;padding:2px;display:inline-flex}.gk-seg__btn{height:28px;padding:0 var(--space-3);font-family:var(--font-sans);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-neutral-600);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--motion-default)var(--ease-standard),color var(--motion-default)var(--ease-standard);background:0 0;border:none;align-items:center;gap:6px;display:inline-flex}.gk-seg__btn .ic{width:14px;height:14px}.gk-seg__btn:hover{color:var(--color-neutral-800)}.gk-seg__btn--active{background:var(--bg-surface);color:var(--color-neutral-800);font-weight:var(--weight-semibold);box-shadow:var(--shadow-xs)}.gk-table-wrap{background:var(--bg-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow-x:auto}.gk-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.gk-table th{text-align:left;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-neutral-500);text-transform:uppercase;letter-spacing:var(--tracking-caps-sm);padding:10px var(--space-5);background:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200);white-space:nowrap}.gk-table th.gk-num{text-align:right}.gk-table td{padding:var(--space-3)var(--space-5);border-bottom:1px solid var(--color-neutral-100);color:var(--color-neutral-700);vertical-align:middle}.gk-table td.gk-num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.gk-table td.gk-mono{font-family:var(--font-mono);font-size:13px}.gk-table tbody tr{transition:background var(--motion-fast)var(--ease-standard)}.gk-table tbody tr:hover td{background:var(--color-neutral-50)}.gk-table tbody tr:last-child td{border-bottom:none}.gk-cell-title{font-weight:var(--weight-medium);color:var(--fg-primary)}.gk-cell-sub{font-size:var(--text-xs);color:var(--fg-muted);margin-top:2px}.gk-row-toggle{border-radius:var(--radius-sm);width:24px;height:24px;color:var(--color-neutral-400);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.gk-row-toggle:hover{background:var(--color-neutral-100);color:var(--color-neutral-700)}.gk-row-toggle .ic{width:16px;height:16px;transition:transform var(--motion-default)var(--ease-standard)}.gk-row-toggle--open .ic{transform:rotate(90deg)}tr.gk-row--open td{background:var(--color-brand-50);border-bottom-color:#0000}tr.gk-detail-row>td{background:var(--color-brand-50);padding:0 var(--space-5)var(--space-4)}.gk-detail-grid{gap:var(--space-3)var(--space-5);padding:var(--space-3)var(--space-4);background:var(--bg-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.gk-detail-item .gk-detail-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-caps-sm);color:var(--fg-muted)}.gk-detail-item .gk-detail-value{color:var(--fg-body);font-variant-numeric:tabular-nums;margin-top:2px;font-size:13px}.gk-detail-item .gk-detail-value.gk-mono{font-family:var(--font-mono)}.gk-resource{align-items:center;gap:var(--space-2);white-space:nowrap;display:inline-flex}.gk-resource__dot{background:var(--color-neutral-400);border-radius:50%;flex-shrink:0;width:8px;height:8px}.gk-resource--electricity .gk-resource__dot{background:var(--viz-electricity)}.gk-resource--gas .gk-resource__dot{background:var(--viz-gas)}.gk-resource--water .gk-resource__dot{background:var(--viz-water)}.gk-resource--steam .gk-resource__dot{background:var(--viz-steam)}.gk-resource--oil .gk-resource__dot{background:var(--viz-oil)}.gk-resource--solar .gk-resource__dot{background:var(--viz-solar)}.gk-modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1100;padding:var(--space-6);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.gk-modal{background:var(--bg-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-width:720px;max-height:calc(100vh - 96px);display:flex}.gk-modal--sm{max-width:440px}.gk-modal__head{padding:var(--space-4)var(--space-6);border-bottom:1px solid var(--color-neutral-100);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.gk-modal__title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--fg-primary);margin:0}.gk-modal__body{padding:var(--space-6);overflow-y:auto}.gk-modal__foot{padding:var(--space-4)var(--space-6);border-top:1px solid var(--color-neutral-100);justify-content:flex-end;gap:var(--space-2);display:flex}.gk-state{align-items:center;gap:var(--space-3);padding:var(--space-12)var(--space-6);text-align:center;background:var(--bg-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);color:var(--fg-muted);font-size:var(--text-sm);flex-direction:column;display:flex}.gk-state .ic{width:32px;height:32px;color:var(--color-neutral-300)}.gk-state__title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--fg-secondary)}.gk-spinner{color:var(--color-brand-600);animation:.7s linear infinite gk-spin}@keyframes gk-spin{to{transform:rotate(360deg)}}.gk-tag{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-neutral-600);background:var(--color-neutral-100);border-radius:var(--radius-sm);white-space:nowrap;align-items:center;padding:2px 8px;display:inline-flex}.gk-muted{color:var(--fg-muted)}.num{font-variant-numeric:tabular-nums}.gk-sidebar{background:var(--color-neutral-100);border-right:1px solid var(--color-neutral-200);width:240px;padding:var(--space-4)0;box-sizing:border-box;z-index:1001;flex-direction:column;min-height:100vh;max-height:100vh;transition:transform .3s;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.gk-sidebar__brand{padding:0 var(--space-4)14px;align-items:center;gap:10px;display:flex}.gk-sidebar__brand img{object-fit:contain;width:24px;height:24px}.gk-sidebar__brand-name{font-size:17px;font-weight:var(--weight-bold);color:var(--fg-primary);letter-spacing:-.01em}.gk-nav-group{padding:14px var(--space-4)4px;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-neutral-400);text-transform:uppercase;letter-spacing:var(--tracking-caps-xs)}.gk-nav-item{padding:var(--space-2)var(--space-3);margin:1px var(--space-2);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-neutral-600);cursor:pointer;transition:background var(--motion-default)var(--ease-standard),color var(--motion-default)var(--ease-standard);align-items:center;gap:10px;text-decoration:none;display:flex}.gk-nav-item:hover{background:var(--color-neutral-200);color:var(--color-neutral-800)}.gk-nav-item--active{background:var(--color-brand-100);color:var(--color-brand-800);font-weight:var(--weight-semibold)}.gk-nav-item :where(svg,[data-lucide],.gk-btn svg){stroke-width:2px;width:18px;height:18px}.gk-nav-item__count{font-size:var(--text-xs);font-weight:var(--weight-semibold);background:var(--color-neutral-200);color:var(--color-neutral-600);border-radius:var(--radius-pill);font-variant-numeric:tabular-nums;margin-left:auto;padding:1px 7px}.gk-nav-item--active .gk-nav-item__count{background:var(--color-brand-200);color:var(--color-brand-800)}.gk-sidebar__footer{border-top:1px solid var(--color-neutral-200);margin-top:auto;padding:12px 16px}@media (max-width:768px){.gk-sidebar{transform:translate(-100%)}.gk-sidebar.gk-sidebar--open{transform:translate(0)}}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%}html{font-family:var(--font-sans);color:var(--fg-body);font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-size:var(--text-base);line-height:var(--leading-base);background:var(--bg-page)}.app{background-color:var(--bg-page);width:100%;min-height:100vh;display:flex}.main-content{padding:var(--space-8)var(--space-10);background-color:var(--bg-page);flex:1;min-width:0;margin-left:240px;overflow-y:auto}.mobile-header{background-color:var(--bg-surface);border-bottom:1px solid var(--border-default);height:56px;z-index:var(--z-sticky);padding:0 var(--space-4);align-items:center;display:none;position:fixed;top:0;left:0;right:0}.hamburger{cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md);transition:background-color var(--motion-default)var(--ease-standard);background:0 0;border:none;display:none}.hamburger:hover{background-color:var(--color-neutral-100)}.hamburger-icon{flex-direction:column;gap:5px;width:24px;display:flex}.hamburger-icon span{background-color:var(--color-neutral-700);height:2px;transition:all var(--motion-slow);border-radius:2px;display:block}.mobile-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--fg-primary);margin-left:var(--space-3)}.sidebar-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:var(--z-sidebar);opacity:0;transition:opacity var(--motion-slow);background-color:#0006;display:none;position:fixed;top:0;bottom:0;left:0;right:0}.sidebar-overlay.visible{opacity:1;display:block}@media (max-width:1024px){.main-content{padding:var(--space-6)}}@media (max-width:768px){.mobile-header,.hamburger{display:flex}.main-content{padding:var(--space-4);margin-left:0;padding-top:72px}}.session-info{color:#2c3e50;flex-direction:column;align-items:flex-start;width:100%;margin-top:auto;display:flex;top:24px}.session-info>.session-user{align-items:center;width:100%;padding:0 24px;display:flex}.session-info>.session-user>img{border-radius:50%;flex-shrink:0;align-self:center;width:32px;height:32px;margin-right:8px}.session-info>.session-user>p{white-space:nowrap;text-overflow:ellipsis;text-align:center;flex:1;margin:0;overflow:hidden}.session-info button{align-self:center;min-width:200px;margin-top:8px}.gsi-material-button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-appearance:none;box-sizing:border-box;color:#1f1f1f;cursor:pointer;letter-spacing:.25px;text-align:center;vertical-align:middle;white-space:nowrap;background-color:#f2f2f2;background-image:none;border:none;border-radius:4px;outline:none;width:auto;min-width:min-content;max-width:400px;height:40px;padding:0 12px;font-family:Roboto,arial,sans-serif;font-size:14px;transition:background-color .218s,border-color .218s,box-shadow .218s;position:relative;overflow:hidden}.gsi-material-button .gsi-material-button-icon{width:20px;min-width:20px;height:20px;margin-right:10px}.gsi-material-button .gsi-material-button-content-wrapper{flex-flow:row;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.gsi-material-button .gsi-material-button-contents{text-overflow:ellipsis;vertical-align:top;flex-grow:0;font-family:Roboto,arial,sans-serif;font-weight:500;overflow:hidden}.gsi-material-button .gsi-material-button-state{opacity:0;transition:opacity .218s;position:absolute;top:0;bottom:0;left:0;right:0}.gsi-material-button:disabled{cursor:default;background-color:#ffffff61}.gsi-material-button:disabled .gsi-material-button-state{background-color:#1f1f1f1f}.gsi-material-button:disabled .gsi-material-button-contents,.gsi-material-button:disabled .gsi-material-button-icon{opacity:.38}.gsi-material-button:not(:disabled):active .gsi-material-button-state,.gsi-material-button:not(:disabled):focus .gsi-material-button-state{opacity:.12;background-color:#001d35}.gsi-material-button:not(:disabled):hover{box-shadow:0 1px 2px #3c40434d,0 1px 3px 1px #3c404326}.gsi-material-button:not(:disabled):hover .gsi-material-button-state{opacity:.08;background-color:#001d35}.bx{font-family:var(--font-sans);color:var(--fg-body);max-width:1500px;padding-bottom:56px;font-size:14px}.bx .topbar{align-items:center;gap:16px;margin-bottom:22px;display:flex}.bx .topbar h1{color:var(--fg-primary);letter-spacing:-.02em;margin:0;font-size:26px;font-weight:700;line-height:32px}.bx .crumb{color:var(--color-neutral-500);margin-bottom:2px;font-size:13px}.bx .crumb b{color:var(--fg-primary);font-weight:500}.bx .topbar .spacer{flex:1}.bx .search{width:280px;position:relative}.bx .search input{border:1px solid var(--color-neutral-200);width:100%;height:36px;color:var(--color-neutral-800);background:#fff;border-radius:6px;outline:none;padding:8px 12px 8px 34px;font-size:14px}.bx .search input:focus{border-color:var(--color-brand-500);box-shadow:var(--shadow-focus-brand)}.bx .search .search-ic{color:var(--color-neutral-400);position:absolute;top:9px;left:10px}.bx .kbd{font-family:var(--font-mono);background:var(--color-neutral-100);border:1px solid var(--color-neutral-200);color:var(--color-neutral-500);border-radius:4px;padding:2px 6px;font-size:11px;position:absolute;top:8px;right:8px}.bx .btn{height:36px;font-family:var(--font-sans);cursor:pointer;white-space:nowrap;transition:background-color .2s var(--ease-standard),border-color .2s var(--ease-standard);border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:0 16px;font-size:14px;font-weight:500;display:inline-flex}.bx .btn .ic{width:16px;height:16px}.bx .btn-primary{background:var(--color-brand-700);color:#fff;box-shadow:var(--shadow-xs)}.bx .btn-primary:hover{background:var(--color-brand-600)}.bx .btn-primary:active{background:var(--color-brand-800)}.bx .btn-secondary{color:var(--color-neutral-700);border-color:var(--color-neutral-200);background:#fff}.bx .btn-secondary:hover{background:var(--color-neutral-50);border-color:var(--color-neutral-300)}.bx .btn-ghost{color:var(--color-neutral-600);background:0 0}.bx .btn-ghost:hover{background:var(--color-neutral-100);color:var(--color-neutral-800)}.bx .btn-icon{justify-content:center;width:36px;padding:0}.bx .kpi-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;display:grid}.bx .kpi{border:1px solid var(--color-neutral-200);box-shadow:var(--shadow-sm);border-left:3px solid var(--color-brand-600);background:#fff;border-radius:8px;padding:16px 18px}.bx .kpi.kpi-warn{border-left-color:var(--color-warning)}.bx .kpi .eyebrow{color:var(--color-neutral-500);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.bx .kpi .eyebrow .ic{width:14px;height:14px;color:var(--color-neutral-400)}.bx .kpi .value{color:var(--fg-primary);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:10px;font-size:28px;font-weight:700;line-height:1}.bx .kpi .value .unit{color:var(--color-neutral-500);margin-left:3px;font-size:14px;font-weight:500}.bx .kpi .kpi-sub{color:var(--color-neutral-500);margin-top:7px;font-size:12px}.bx .kpi.kpi-warn .kpi-sub{color:var(--color-warning);font-weight:500}.bx .row-grid{grid-template-columns:1fr 380px;align-items:stretch;gap:16px;margin-bottom:16px;display:grid}.bx .card{border:1px solid var(--color-neutral-200);box-shadow:var(--shadow-sm);background:#fff;border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.bx .card-head{border-bottom:1px solid var(--color-neutral-100);justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.bx .card-title{color:var(--fg-primary);font-size:15px;font-weight:600}.bx .card-sub{color:var(--color-neutral-500);margin-top:2px;font-size:12.5px}.bx .card-foot{border-top:1px solid var(--color-neutral-100);color:var(--color-neutral-500);justify-content:space-between;align-items:center;padding:11px 20px;font-size:12.5px;display:flex}.bx .foot-link{color:var(--color-brand-700);cursor:pointer;font-weight:500;text-decoration:none}.bx .model-card{min-height:528px}.bx .model-head .legend{gap:14px;display:flex}.bx .legend-item{color:var(--color-neutral-600);align-items:center;gap:6px;font-size:12px;display:inline-flex}.bx .legend-dot{border-radius:3px;width:9px;height:9px}.bx .legend-dot.st-ok{background:#16a34a}.bx .legend-dot.st-anomaly{background:#d97706}.bx .legend-dot.st-issue{background:#dc2626}.bx .model-body{flex:1;min-height:0;display:flex}.bx .scene-wrap{background:var(--color-neutral-50);flex:1;min-width:0;position:relative;overflow:hidden}.bx .scene-mount{position:absolute;top:0;bottom:0;left:0;right:0}.bx .scene-mount canvas{display:block}.bx .scene-hint{color:var(--color-neutral-400);pointer-events:none;background:#ffffffb3;border-radius:9999px;padding:4px 10px;font-size:11.5px;position:absolute;bottom:14px;left:16px}.bx .scene-tooltip{border:1px solid var(--color-neutral-200);box-shadow:var(--shadow-md);pointer-events:none;opacity:0;min-width:150px;transition:opacity .12s var(--ease-standard);z-index:5;background:#fff;border-radius:8px;padding:8px 11px;position:absolute;top:0;left:0;transform:translate(-50%,-132%)}.bx .scene-tooltip.show{opacity:1}.bx .scene-tooltip .tt-label{color:var(--fg-primary);font-size:13px;font-weight:600}.bx .scene-tooltip .tt-metric{color:var(--color-neutral-500);font-variant-numeric:tabular-nums;margin-top:2px;font-size:12px}.bx .floor-rail{border-left:1px solid var(--color-neutral-100);flex-direction:column;flex-shrink:0;gap:2px;width:172px;padding:12px 10px;display:flex;overflow-y:auto}.bx .rail-head{color:var(--color-neutral-400);text-transform:uppercase;letter-spacing:.06em;padding:2px 6px 6px;font-size:11px;font-weight:600}.bx .rail-item{text-align:left;cursor:pointer;width:100%;font-family:var(--font-sans);transition:background .12s var(--ease-standard);background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:5px 8px;display:flex}.bx .rail-item:hover,.bx .rail-item.hovered{background:var(--color-neutral-100)}.bx .rail-item.selected{background:var(--color-brand-100)}.bx .rail-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.bx .rail-item.st-ok .rail-dot{background:#16a34a}.bx .rail-item.st-anomaly .rail-dot{background:#d97706}.bx .rail-item.st-issue .rail-dot{background:#dc2626}.bx .rail-label{color:var(--fg-primary);font-variant-numeric:tabular-nums;flex-shrink:0;width:24px;font-size:12px;font-weight:600}.bx .rail-name{color:var(--color-neutral-500);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.bx .rail-item.selected .rail-name{color:var(--color-brand-800)}.bx .detail{min-height:528px}.bx .detail-head{border-bottom:1px solid var(--color-neutral-100);padding:18px 20px 14px}.bx .detail-eyebrow{color:var(--color-neutral-400);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.bx .detail-titlerow{align-items:center;gap:10px;margin-bottom:8px;display:flex}.bx .level-chip{font-variant-numeric:tabular-nums;background:var(--color-neutral-100);color:var(--color-neutral-700);border-radius:6px;padding:3px 10px;font-size:13px;font-weight:700}.bx .level-chip.st-ok{background:var(--color-brand-100);color:var(--color-brand-800)}.bx .level-chip.st-anomaly{background:var(--color-warning-light);color:#92400e}.bx .level-chip.st-issue{background:var(--color-error-light);color:#991b1b}.bx .detail-title{color:var(--fg-primary);letter-spacing:-.01em;font-size:18px;font-weight:600}.bx .detail-sub{color:var(--color-neutral-500);align-items:center;gap:5px;margin-top:3px;font-size:13px;display:flex}.bx .detail-sub .ic{color:var(--color-neutral-400)}.bx .detail-body{flex:1;padding:16px 20px}.bx .mini-grid{background:var(--color-neutral-100);border:1px solid var(--color-neutral-100);border-radius:8px;grid-template-columns:1fr 1fr;gap:1px;margin-bottom:18px;display:grid;overflow:hidden}.bx .mini-stat{background:#fff;padding:12px 14px}.bx .mini-label{color:var(--color-neutral-400);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.bx .mini-value{color:var(--fg-primary);font-variant-numeric:tabular-nums;margin-top:4px;font-size:17px;font-weight:600}.bx .detail-section-label{color:var(--color-neutral-500);text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px;font-size:11px;font-weight:600}.bx .domain-chips{flex-wrap:wrap;gap:7px;display:flex}.bx .domain-chip{color:var(--color-neutral-700);background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:9999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.bx .domain-chip .ic{width:13px;height:13px;color:var(--color-neutral-500)}.bx .domain-chip.st-anomaly{background:var(--color-warning-light);color:#92400e;border-color:#fcd34d}.bx .domain-chip.st-issue{background:var(--color-error-light);color:#991b1b;border-color:#fca5a5}.bx .domain-chip.st-anomaly .ic,.bx .domain-chip.st-issue .ic{color:inherit}.bx .detail-foot{border-top:1px solid var(--color-neutral-100);color:var(--color-neutral-500);align-items:center;gap:9px;padding:13px 20px;font-size:13px;display:flex}.bx .detail-foot .ic{color:var(--color-neutral-400);flex-shrink:0}.bx .detail-clear{cursor:pointer;width:100%;font-family:var(--font-sans);text-align:left;transition:background .12s var(--ease-standard);background:0 0;border:none}.bx .detail-clear:hover{background:var(--color-neutral-50);color:var(--color-neutral-700)}.bx .badge{white-space:nowrap;border-radius:9999px;align-items:center;gap:6px;padding:2px 9px;font-size:12px;font-weight:600;line-height:1.5;display:inline-flex}.bx .badge .dot{border-radius:50%;width:6px;height:6px}.bx .badge.success{background:var(--color-success-light);color:#166534}.bx .badge.success .dot{background:var(--color-success)}.bx .badge.warning{background:var(--color-warning-light);color:#92400e}.bx .badge.warning .dot{background:var(--color-warning)}.bx .badge.error{background:var(--color-error-light);color:#991b1b}.bx .badge.error .dot{background:var(--color-error)}.bx .badge.info{background:var(--color-info-light);color:#1e40af}.bx .badge.info .dot{background:var(--color-info)}.bx .badge.neutral{background:var(--color-neutral-100);color:var(--color-neutral-600)}.bx .badge.neutral .dot{background:var(--color-neutral-400)}.bx .tables{min-height:420px}.bx .tabs{border-bottom:1px solid var(--color-neutral-100);align-items:center;padding:0 20px;display:flex}.bx .tab{color:var(--color-neutral-500);cursor:pointer;border-bottom:2px solid #0000;margin-bottom:-1px;padding:12px 14px;font-size:14px;font-weight:500;transition:color .2s,border-color .2s}.bx .tab:hover{color:var(--color-neutral-700)}.bx .tab.active{color:var(--color-brand-700);border-bottom-color:var(--color-brand-700);font-weight:600}.bx .tabs-scope{color:var(--color-neutral-400);font-size:12px;font-family:var(--font-mono);margin-left:auto}.bx .table-scroll{flex:1;max-height:420px;overflow-y:auto}.bx table.data{border-collapse:collapse;width:100%;font-size:13.5px}.bx table.data th{text-align:left;color:var(--color-neutral-500);text-transform:uppercase;letter-spacing:.04em;background:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200);z-index:1;padding:10px 20px;font-size:11px;font-weight:600;position:sticky;top:0}.bx table.data th.num{text-align:right}.bx table.data th.center{text-align:center}.bx table.data td{border-bottom:1px solid var(--color-neutral-100);color:var(--color-neutral-700);vertical-align:middle;padding:11px 20px}.bx table.data td.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.bx table.data td.mono{font-family:var(--font-mono);color:var(--color-neutral-600);font-size:12.5px}.bx table.data td.center{text-align:center}.bx table.data td.muted{color:var(--color-neutral-500)}.bx table.data td .u{color:var(--color-neutral-400)}.bx table.data tr:hover td{background:var(--color-neutral-50)}.bx table.data tr:last-child td{border-bottom:none}.bx .resource{align-items:center;gap:8px;display:inline-flex}.bx .rdot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.bx .anom-title{color:var(--fg-primary);font-weight:500}.bx .anom-src{color:var(--color-neutral-400);margin-top:2px;font-size:11.5px}.bx .state-pill{color:var(--color-neutral-600);background:var(--color-neutral-100);border-radius:9999px;padding:2px 9px;font-size:12px;font-weight:500}.bx .empty{text-align:center;padding:56px 20px}.bx .empty-ic{color:var(--color-brand-500)}.bx .empty-title{color:var(--fg-primary);margin-top:10px;font-size:15px;font-weight:600}.bx .empty-sub{color:var(--color-neutral-500);max-width:360px;margin-top:4px;margin-left:auto;margin-right:auto;font-size:13px}.bx .sources{min-height:420px}.bx .sources-list{flex:1;max-height:372px;padding:4px 20px;overflow-y:auto}.bx .source-row{border-bottom:1px solid var(--color-neutral-100);align-items:center;gap:12px;padding:11px 0;display:flex}.bx .source-row:last-child{border-bottom:none}.bx .src-icon{background:var(--color-neutral-100);width:32px;height:32px;color:var(--color-neutral-600);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.bx .src-icon.st-anomaly{background:var(--color-warning-light);color:#b45309}.bx .src-icon.st-issue{background:var(--color-error-light);color:#b91c1c}.bx .src-main{flex:1;min-width:0}.bx .src-name{color:var(--fg-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:500;overflow:hidden}.bx .src-meta{color:var(--color-neutral-500);white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:12px;overflow:hidden}.bx .src-right{text-align:right;flex-shrink:0;margin-left:auto}.bx .src-sync{color:var(--color-neutral-400);font-variant-numeric:tabular-nums;margin-top:3px;font-size:11px}@media (max-width:1180px){.bx .row-grid{grid-template-columns:1fr}.bx .kpi-grid{grid-template-columns:repeat(2,1fr)}}.bx .model-controls{border-bottom:1px solid var(--color-neutral-100);padding:10px 20px}.bx .scene-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.bx .sc-label{color:var(--color-neutral-400);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.bx .sc-seg{background:var(--color-neutral-100);border-radius:7px;gap:2px;padding:2px;display:inline-flex}.bx .sc-seg button{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;color:var(--color-neutral-600);cursor:pointer;transition:background .12s var(--ease-standard),color .12s var(--ease-standard);background:0 0;border:none;border-radius:5px;padding:4px 10px;font-size:12px;font-weight:500}.bx .sc-seg button:hover{color:var(--color-neutral-800)}.bx .sc-seg button.active{color:var(--color-brand-700);box-shadow:var(--shadow-xs);background:#fff}.bx .sc-toggles{flex-wrap:wrap;gap:6px;display:inline-flex}.bx .sc-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--color-neutral-200);font:inherit;color:var(--color-neutral-600);cursor:pointer;transition:background .12s var(--ease-standard),border-color .12s var(--ease-standard),color .12s var(--ease-standard);background:#fff;border-radius:9999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.bx .sc-toggle:hover{border-color:var(--color-neutral-300)}.bx .sc-toggle.on{background:var(--color-brand-100);border-color:var(--color-brand-200);color:var(--color-brand-800)}.bx .sc-toggle .sc-dot{background:var(--color-neutral-300);width:7px;height:7px;transition:background .12s var(--ease-standard);border-radius:50%}.bx .sc-toggle.on .sc-dot{background:var(--color-brand-600)}.bx .model-head-right{align-items:center;gap:14px;display:flex}.bx .bx-building-select{border:1px solid var(--color-neutral-200);height:30px;font-family:var(--font-sans);color:var(--color-neutral-700);cursor:pointer;background:#fff;border-radius:6px;max-width:220px;padding:0 8px;font-size:13px}.bx .bx-building-select:focus{border-color:var(--color-brand-500);box-shadow:var(--shadow-focus-brand);outline:none}.stats-grid{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.stat-card{background:var(--bg-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:18px var(--space-5);min-width:0}.stat-card.stat-card--accent{border-left:3px solid var(--color-brand-700)}.stat-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-neutral-500);text-transform:uppercase;letter-spacing:var(--tracking-caps-sm);align-items:center;gap:var(--space-2);text-overflow:ellipsis;white-space:nowrap;min-width:0;display:flex;overflow:hidden}.stat-label .ic{width:14px;height:14px;color:var(--color-neutral-400);flex-shrink:0}.stat-value{font-size:28px;line-height:1.2;font-weight:var(--weight-bold);color:var(--fg-primary);letter-spacing:var(--tracking-display);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-top:10px;overflow:hidden}.stat-unit{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-neutral-500);letter-spacing:0;margin-left:2px}@media (max-width:768px){.stats-grid{gap:var(--space-2);grid-template-columns:repeat(2,1fr)}.stat-card{padding:var(--space-4)var(--space-3)}.stat-value{font-size:20px}}@media (max-width:480px){.stats-grid{grid-template-columns:1fr}}.dashboard-page{max-width:1200px}.dashboard-chart{height:340px;position:relative}.data-connectors-container{max-width:1200px}.connectors-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(360px,1fr));display:grid}.connector-card{flex-direction:column;display:flex}.connector-card .gk-card__body{flex:1}.connector-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:flex-start;display:flex}.connector-icon{border-radius:var(--radius-lg);background:var(--bg-brand-tint);width:40px;height:40px;color:var(--color-brand-700);justify-content:center;align-items:center;display:flex}.connector-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--fg-primary);margin:0}.connector-subtitle{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--fg-muted);margin:4px 0 0}.connector-metrics{gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-neutral-100);flex-direction:column;display:flex}.connector-metric{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.connector-metric-value{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--fg-primary)}.connector-metric-label{font-size:var(--text-xs);color:var(--fg-muted)}.add-connector-section{margin-top:var(--space-4)}@media (max-width:768px){.connectors-grid{grid-template-columns:1fr}}.data-sync-container{max-width:1200px}.espm-page-head .espm-back{margin-bottom:var(--space-3);margin-left:calc(-1*var(--space-3))}.espm-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(340px,1fr));display:grid}.espm-property-card{flex-direction:column;display:flex}.espm-property-card .gk-card__body{flex:1}.espm-card-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:flex-start;display:flex}.espm-card-icon{border-radius:var(--radius-lg);background:var(--bg-brand-tint);width:40px;height:40px;color:var(--color-brand-700);justify-content:center;align-items:center;display:flex}.espm-card-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--fg-primary);margin:0}.espm-card-subtitle{font-size:var(--text-sm);color:var(--fg-muted);margin:4px 0 0}.espm-card-metrics{gap:var(--space-3)var(--space-4);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-neutral-100);grid-template-columns:repeat(2,1fr);display:grid}.espm-metric-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--fg-muted);align-items:center;gap:6px;display:flex}.espm-metric-label .ic{color:var(--color-neutral-400)}.espm-metric-value{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--fg-primary);margin-top:2px}.espm-card-address{margin-top:var(--space-4);font-size:var(--text-xs);color:var(--fg-muted);align-items:center;gap:6px;display:flex}.espm-card-address .ic{color:var(--color-neutral-400);flex-shrink:0}.espm-card-actions{justify-content:flex-end}.espm-add-section{margin-top:var(--space-4)}.espm-modal-alert{margin-bottom:var(--space-4)}.espm-load-error-text{flex:1}.espm-delete-message{font-size:var(--text-sm);line-height:var(--leading-base);color:var(--fg-body);margin:0}@media (max-width:768px){.espm-grid{grid-template-columns:1fr}}.utility-invoices-container{max-width:1100px}.utility-invoices-form{gap:var(--space-4);flex-direction:column;display:flex}.form-card .gk-card__foot{justify-content:flex-end}.form-section--last{margin-bottom:0}.gk-input--mono{font-family:var(--font-mono);font-size:13px}.readings-list{flex-direction:column;display:flex}.reading-row{align-items:center;gap:var(--space-4);padding:var(--space-3)var(--space-5);border-bottom:1px solid var(--color-neutral-100);font-size:var(--text-sm);display:flex}.reading-row:last-child{border-bottom:none}.reading-row .gk-resource{width:120px;font-weight:var(--weight-medium);color:var(--fg-primary);flex-shrink:0}.reading-meter{font-family:var(--font-mono);color:var(--fg-secondary);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;width:140px;font-size:13px;overflow:hidden}.reading-value{font-weight:var(--weight-semibold);color:var(--fg-primary);flex-shrink:0;width:110px}.reading-period{color:var(--fg-muted);font-size:var(--text-xs);flex:1}.reading-cost{font-weight:var(--weight-medium);color:var(--fg-primary);text-align:right;width:90px}.history-toggle-col{width:40px;padding-right:0!important}.history-period{white-space:nowrap}.survey-questions{gap:var(--space-6);flex-direction:column;display:flex}.question-header{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.question-number{background:var(--bg-brand-fill);width:24px;height:24px;color:var(--color-brand-800);font-size:var(--text-xs);font-weight:var(--weight-semibold);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.question-text{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--fg-primary);margin:0;line-height:24px}.question-options{gap:var(--space-2);flex-direction:column;padding-left:36px;display:flex}@media (max-width:768px){.reading-row{gap:var(--space-2)var(--space-4);flex-wrap:wrap}.reading-period{flex-basis:100%;order:5}}.energy-analytics-container{max-width:1280px}.charts-container{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.chart-card.full-width{grid-column:1/-1}.chart-body{height:300px;position:relative}.chart-body--doughnut{justify-content:center;align-items:center;display:flex}.insights-section{margin-top:var(--space-8)}.insights-title{font-size:var(--text-xl);line-height:var(--leading-xl);font-weight:var(--weight-semibold);color:var(--fg-primary);margin:0 0 var(--space-4)}.insights-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.insight-card{background:var(--bg-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5);gap:var(--space-3);align-items:flex-start;display:flex}.insight-icon{border-radius:var(--radius-md);background:var(--color-neutral-100);width:36px;height:36px;color:var(--color-neutral-600);flex-shrink:0;justify-content:center;align-items:center;display:flex}.insight-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--fg-primary);margin:0}.insight-description{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--fg-secondary);margin:4px 0 0}@media (max-width:900px){.charts-container{grid-template-columns:1fr}}.equipment-container{max-width:1280px}.equipment-filters{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.equipment-search{flex:1;min-width:240px;max-width:380px}.equipment-container .gk-badge{text-transform:capitalize}.equipment-container .gk-table td:first-child,.equipment-container .gk-table th:first-child{min-width:240px}@media (max-width:768px){.equipment-filters{flex-direction:column;align-items:stretch}.equipment-search{max-width:none}}.home{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.home h1{color:#2c3e50;margin-bottom:20px;padding-top:4vh;padding-bottom:4vh;font-size:48px}.home p{color:#666;max-width:600px;font-size:18px}.home img{max-width:66%;height:auto;max-height:100%;padding-top:2vh;padding-bottom:2vw}@media (max-width:768px){.home h1{font-size:32px}.home p{padding:0 16px;font-size:16px}}.projects-container{max-width:1280px}.projects-filters{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.projects-filter-selects{gap:var(--space-2);display:flex}.projects-filter-selects .gk-input{width:auto;min-width:150px}.projects-badge{text-transform:capitalize}.projects-date{white-space:nowrap}@media (max-width:768px){.projects-filters{flex-direction:column;align-items:stretch}.projects-filter-selects .gk-input{flex:1}}.spaces-container{max-width:1200px}.spaces-toolbar{margin-bottom:var(--space-4);justify-content:flex-end;display:flex}.spaces-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.space-card{background:var(--bg-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5);min-width:0}.space-card-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.space-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--fg-primary);margin:0}.space-subtitle{font-size:var(--text-sm);color:var(--fg-muted);margin:4px 0 0}.space-child-count{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-brand-700);margin-top:var(--space-3)}.hierarchy-container{gap:var(--space-2);flex-direction:column;display:flex}.hierarchy-card{border-left:3px solid var(--color-brand-200)}.subscription-container{max-width:960px}.tier-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.tier-card{background:var(--bg-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6);cursor:pointer;transition:border-color var(--motion-default)var(--ease-standard);flex-direction:column;display:flex}.tier-card:hover{border-color:var(--color-neutral-300)}.tier-card--selected,.tier-card--selected:hover{border-color:var(--color-brand-500);box-shadow:var(--shadow-focus-brand)}.tier-card:focus-visible{border-color:var(--color-brand-500);box-shadow:var(--shadow-focus-brand);outline:none}.tier-icon{border-radius:var(--radius-lg);background:var(--bg-brand-tint);width:40px;height:40px;color:var(--color-brand-700);margin-bottom:var(--space-4);justify-content:center;align-items:center;display:flex}.tier-name{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--fg-primary);margin:0}.tier-pricing{align-items:baseline;gap:var(--space-2);margin-top:var(--space-2);display:flex}.tier-price{font-size:28px;font-weight:var(--weight-bold);letter-spacing:var(--tracking-display);color:var(--fg-primary)}.tier-period{font-size:var(--text-sm);color:var(--fg-muted)}.tier-description{font-size:var(--text-sm);color:var(--fg-secondary);margin:var(--space-2)0 0}.tier-features{margin:var(--space-4)0 var(--space-5);padding:var(--space-4)0 0;border-top:1px solid var(--color-neutral-100);gap:var(--space-2);flex-direction:column;flex:1;list-style:none;display:flex}.tier-feature-item{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--fg-body);display:flex}.tier-check{color:var(--color-brand-600);flex-shrink:0}.tier-select-button{width:100%}.registration-section{margin-top:var(--space-6)}.subscription-status{margin-top:var(--space-4)}