:root{--font-sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";--font-mono:"Roboto Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--fs-xs:11px;--fs-sm:12px;--fs-md:14px;--fs-lg:16px;--fs-h6:14px;--fs-h5:16px;--fs-h4:18px;--fs-h3:22px;--fs-h2:26px;--fs-h1:32px;--fw-regular:400;--fw-medium:500;--fw-bold:600;--lh-tight:1.2;--lh-body:1.5;--sp-0:0px;--sp-25:2px;--sp-50:4px;--sp-75:6px;--sp-1:8px;--sp-15:12px;--sp-2:16px;--sp-3:24px;--sp-4:32px;--sp-5:40px;--sp-6:48px;--sp-8:64px;--r-xs:2px;--r-sm:4px;--r-md:6px;--r-lg:8px;--r-xl:12px;--r-pill:9999px;--topbar-h:48px;--megamenu-w:300px;--subnav-w:220px;--control-h:32px;--control-h-sm:24px;--control-h-lg:40px;--panel-header-h:32px;--grid-cell-h:30px;--grid-gutter:8px;--dur-1:90ms;--dur-2:150ms;--dur-3:240ms;--dur-4:400ms;--ease:cubic-bezier(0.4,0,0.2,1);--ease-out:cubic-bezier(0.16,1,0.3,1);--z-panel-header:5;--z-navbar:500;--z-megamenu:600;--z-dropdown:900;--z-drawer:1000;--z-modal:1050;--z-portal:1060;--z-tooltip:1070;--z-toast:1080;--viz-green:#73bf69;--viz-yellow:#fade2a;--viz-blue:#5794f2;--viz-orange:#ff9830;--viz-red:#f2495c;--viz-purple:#b877d9;--viz-teal:#73d9d9;--viz-super-light-green:#c8f2c2;--viz-super-light-blue:#c0d8ff;--viz-dark-green:#37872d;--viz-dark-yellow:#e0b400;--viz-dark-blue:#1f60c4;--viz-dark-orange:#fa6400;--viz-dark-red:#c4162a;--viz-dark-purple:#8f3bb8;color-scheme:light;--bg-canvas:#f4f5f5;--bg-primary:#fff;--bg-secondary:#f4f5f5;--bg-elevated:#fff;--bg-overlay:rgba(36,41,46,.4);--text-primary:#24292e;--text-secondary:rgba(36,41,46,.75);--text-disabled:rgba(36,41,46,.5);--text-link:#1f62e0;--text-max-contrast:#000;--text-on-accent:#fff;--border-weak:rgba(36,41,46,.12);--border-medium:rgba(36,41,46,.3);--border-strong:rgba(36,41,46,.4);--action-hover:rgba(36,41,46,.12);--action-selected:rgba(36,41,46,.08);--action-focus:rgba(36,41,46,.16);--action-disabled-bg:rgba(36,41,46,.04);--primary-main:#3871dc;--primary-shade:#1f62e0;--primary-text:#1f62e0;--primary-border:#3871dc;--primary-transparent:rgba(56,113,220,.15);--secondary-main:rgba(36,41,46,.08);--secondary-shade:rgba(36,41,46,.15);--secondary-text:rgba(36,41,46,.75);--secondary-border:rgba(36,41,46,.2);--success-main:#1b855e;--success-shade:#16704f;--success-text:#0f6b47;--success-transparent:rgba(27,133,94,.15);--error-main:#e0226e;--error-shade:#c0175a;--error-text:#cf0e5b;--error-transparent:rgba(224,34,110,.15);--warning-main:#e55400;--warning-shade:#c34900;--warning-text:#b5510d;--warning-transparent:rgba(229,84,0,.15);--info-main:#3871dc;--info-text:#1f62e0;--info-transparent:rgba(56,113,220,.15);--shadow-z1:0 1px 2px rgba(24,26,27,.2);--shadow-z2:0 4px 8px rgba(24,26,27,.2);--shadow-z3:0 8px 24px rgba(24,26,27,.28);--shadow-inset:inset 0 0 0 1px var(--border-weak);--scrollbar-thumb:rgba(36,41,46,.22);--skeleton:linear-gradient(90deg,rgba(36,41,46,.06) 25%,rgba(36,41,46,.12) 37%,rgba(36,41,46,.06) 63%);--grid-line:rgba(36,41,46,.1);--panel-bg:#fff;--panel-border:rgba(36,41,46,.12);--code-bg:#f4f5f5}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg-canvas:#111217;--bg-primary:#181b1f;--bg-secondary:#22252b;--bg-elevated:#22252b;--bg-overlay:rgba(17,18,23,.65);--text-primary:#ccccdc;--text-secondary:rgba(204,204,220,.65);--text-disabled:rgba(204,204,220,.4);--text-link:#6e9fff;--text-max-contrast:#fff;--text-on-accent:#fff;--border-weak:rgba(204,204,220,.12);--border-medium:rgba(204,204,220,.2);--border-strong:rgba(204,204,220,.3);--action-hover:rgba(204,204,220,.16);--action-selected:rgba(204,204,220,.12);--action-focus:rgba(204,204,220,.2);--action-disabled-bg:rgba(204,204,220,.04);--primary-main:#3d71d9;--primary-shade:#5b8def;--primary-text:#6e9fff;--primary-border:#3d71d9;--primary-transparent:rgba(61,113,217,.25);--secondary-main:rgba(204,204,220,.16);--secondary-shade:rgba(204,204,220,.25);--secondary-text:rgba(204,204,220,.65);--secondary-border:rgba(204,204,220,.2);--success-main:#1a7f4b;--success-shade:#23935d;--success-text:#6ccf8e;--success-transparent:rgba(26,127,75,.25);--error-main:#d10e5c;--error-shade:#e0226e;--error-text:#ff5286;--error-transparent:rgba(209,14,92,.25);--warning-main:#eb7b18;--warning-shade:#f5b73d;--warning-text:#f8d06b;--warning-transparent:rgba(235,123,24,.25);--info-main:#3d71d9;--info-text:#6e9fff;--info-transparent:rgba(61,113,217,.25);--shadow-z1:0 1px 2px rgba(1,4,9,.75);--shadow-z2:0 4px 8px rgba(1,4,9,.75);--shadow-z3:0 8px 24px rgba(1,4,9,.8);--scrollbar-thumb:rgba(204,204,220,.22);--skeleton:linear-gradient(90deg,rgba(204,204,220,.06) 25%,rgba(204,204,220,.14) 37%,rgba(204,204,220,.06) 63%);--grid-line:rgba(204,204,220,.09);--panel-bg:#181b1f;--panel-border:rgba(204,204,220,.12);--code-bg:#22252b}}:root[data-theme=dark]{color-scheme:dark;--bg-canvas:#111217;--bg-primary:#181b1f;--bg-secondary:#22252b;--bg-elevated:#22252b;--bg-overlay:rgba(17,18,23,.65);--text-primary:#ccccdc;--text-secondary:rgba(204,204,220,.65);--text-disabled:rgba(204,204,220,.4);--text-link:#6e9fff;--text-max-contrast:#fff;--text-on-accent:#fff;--border-weak:rgba(204,204,220,.12);--border-medium:rgba(204,204,220,.2);--border-strong:rgba(204,204,220,.3);--action-hover:rgba(204,204,220,.16);--action-selected:rgba(204,204,220,.12);--action-focus:rgba(204,204,220,.2);--action-disabled-bg:rgba(204,204,220,.04);--primary-main:#3d71d9;--primary-shade:#5b8def;--primary-text:#6e9fff;--primary-border:#3d71d9;--primary-transparent:rgba(61,113,217,.25);--secondary-main:rgba(204,204,220,.16);--secondary-shade:rgba(204,204,220,.25);--secondary-text:rgba(204,204,220,.65);--secondary-border:rgba(204,204,220,.2);--success-main:#1a7f4b;--success-shade:#23935d;--success-text:#6ccf8e;--success-transparent:rgba(26,127,75,.25);--error-main:#d10e5c;--error-shade:#e0226e;--error-text:#ff5286;--error-transparent:rgba(209,14,92,.25);--warning-main:#eb7b18;--warning-shade:#f5b73d;--warning-text:#f8d06b;--warning-transparent:rgba(235,123,24,.25);--info-main:#3d71d9;--info-text:#6e9fff;--info-transparent:rgba(61,113,217,.25);--shadow-z1:0 1px 2px rgba(1,4,9,.75);--shadow-z2:0 4px 8px rgba(1,4,9,.75);--shadow-z3:0 8px 24px rgba(1,4,9,.8);--scrollbar-thumb:rgba(204,204,220,.22);--skeleton:linear-gradient(90deg,rgba(204,204,220,.06) 25%,rgba(204,204,220,.14) 37%,rgba(204,204,220,.06) 63%);--grid-line:rgba(204,204,220,.09);--panel-bg:#181b1f;--panel-border:rgba(204,204,220,.12);--code-bg:#22252b}:root[data-density=compact]{--topbar-h:40px;--control-h:28px;--panel-header-h:28px;--fs-md:13px}*,:after,:before{box-sizing:border-box}body,html{height:100%}body{background:var(--bg-canvas);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-body);margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:none;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{font-weight:var(--fw-medium);line-height:var(--lh-tight);margin:0}h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3)}h4{font-size:var(--fs-h4)}h5{font-size:var(--fs-h5)}h6{font-size:var(--fs-h6)}p{margin:0 0 var(--sp-2)}a{color:var(--text-link);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{color:inherit;font:inherit}button{background:none;border:0;cursor:pointer;padding:0}button:disabled{cursor:not-allowed}code,kbd,pre,samp{font-family:var(--font-mono);font-size:.92em}ol,pre,ul{margin:0}ol,ul{list-style:none;padding:0}canvas,img,svg,video{display:block;max-width:100%}hr{border:0;border-top:1px solid var(--border-weak);margin:var(--sp-2) 0}:focus-visible{border-radius:var(--r-xs);outline:2px solid var(--primary-main);outline-offset:2px}::selection{background:var(--primary-transparent)}*{scrollbar-color:var(--scrollbar-thumb) transparent;scrollbar-width:thin}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--r-pill)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}::-webkit-scrollbar-corner{background:transparent}.skip-link{background:var(--primary-main);border-radius:var(--r-sm);color:#fff;left:var(--sp-2);padding:var(--sp-1) var(--sp-2);position:fixed;top:-100px;transition:top var(--dur-2) var(--ease);z-index:var(--z-toast)}.skip-link:focus{text-decoration:none;top:var(--sp-2)}.boot{background:var(--bg-canvas);display:grid;gap:var(--sp-3);inset:0;justify-items:center;place-content:center;position:fixed;z-index:9999}.boot[hidden]{display:none}.boot__logo{animation:boot-pulse 1.6s var(--ease) infinite;height:56px;width:56px}.boot__bar{background:var(--action-hover);border-radius:var(--r-pill);height:3px;overflow:hidden;width:180px}.boot__bar i{animation:boot-slide 1.1s var(--ease) infinite;background:var(--primary-main);border-radius:inherit;display:block;height:100%;width:40%}.boot__text{color:var(--text-secondary);font-size:var(--fs-sm);margin:0}@keyframes boot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.94)}}@keyframes boot-slide{0%{transform:translateX(-100%)}to{transform:translateX(350%)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes scale-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}@keyframes slide-left{0%{transform:translateX(100%)}to{transform:none}}@keyframes slide-right{0%{transform:translateX(-100%)}to{transform:none}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.u-row{gap:var(--sp-1)}.u-row,.u-row-2{align-items:center;display:flex}.u-row-2{gap:var(--sp-2)}.u-col{gap:var(--sp-1)}.u-col,.u-col-2{display:flex;flex-direction:column}.u-col-2{gap:var(--sp-2)}.u-wrap{flex-wrap:wrap}.u-between{align-items:center;display:flex;gap:var(--sp-2);justify-content:space-between}.u-grow{min-width:0}.u-grow,.u-spacer{flex:1 1 auto}.u-muted{color:var(--text-secondary)}.u-faint{color:var(--text-disabled)}.u-sm{font-size:var(--fs-sm)}.u-xs{font-size:var(--fs-xs)}.u-mono{font-family:var(--font-mono)}.u-medium{font-weight:var(--fw-medium)}.u-bold{font-weight:var(--fw-bold)}.u-right{text-align:right}.u-center{text-align:center}.u-nowrap,.u-truncate{white-space:nowrap}.u-truncate{min-width:0;overflow:hidden;text-overflow:ellipsis}.u-scroll-x{overflow-x:auto;overflow-y:hidden}.u-hidden{display:none!important}.u-cap{text-transform:capitalize}.u-upper{letter-spacing:.04em;text-transform:uppercase}.u-pointer{cursor:pointer}.u-full{width:100%}.u-mt-1{margin-top:var(--sp-1)}.u-mt-2{margin-top:var(--sp-2)}.u-mt-3{margin-top:var(--sp-3)}.u-mb-2{margin-bottom:var(--sp-2)}.u-mb-3{margin-bottom:var(--sp-3)}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0 0 0 0);border:0;white-space:nowrap}.u-color-success{color:var(--success-text)}.u-color-error{color:var(--error-text)}.u-color-warning{color:var(--warning-text)}.u-color-info{color:var(--info-text)}.skeleton{animation:shimmer 1.4s linear infinite;background-image:var(--skeleton);background-size:200% 100%;border-radius:var(--r-xs);height:1em}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}@media print{.megamenu,.panel__menu-btn,.toast-root,.topbar{display:none!important}.page{padding:0!important}body{background:#fff;color:#000}}.btn{align-items:center;border:1px solid transparent;border-radius:var(--r-sm);display:inline-flex;flex:none;font-size:var(--fs-md);font-weight:var(--fw-medium);gap:var(--sp-1);height:var(--control-h);justify-content:center;line-height:1;padding:0 var(--sp-15);transition:background var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease);user-select:none;white-space:nowrap}.btn:hover{text-decoration:none}.btn .icon{flex:none}.btn--primary{background:var(--primary-main);border-color:var(--primary-border);color:#fff}.btn--primary:hover:not(:disabled){background:var(--primary-shade)}.btn--secondary{background:var(--secondary-main);border-color:var(--secondary-border);color:var(--text-primary)}.btn--secondary:hover:not(:disabled){background:var(--secondary-shade)}.btn--success{background:var(--success-main);color:#fff}.btn--success:hover:not(:disabled){background:var(--success-shade)}.btn--destructive{background:var(--error-main);color:#fff}.btn--destructive:hover:not(:disabled){background:var(--error-shade)}.btn--outline{background:transparent;border-color:var(--primary-border);color:var(--primary-text)}.btn--outline:hover:not(:disabled){background:var(--primary-transparent)}.btn--ghost{background:transparent;color:var(--text-primary)}.btn--ghost:hover:not(:disabled){background:var(--action-hover)}.btn--link{background:transparent;color:var(--text-link);height:auto;padding:0 var(--sp-50)}.btn--link:hover:not(:disabled){text-decoration:underline}.btn--sm{font-size:var(--fs-sm);height:var(--control-h-sm);padding:0 var(--sp-1)}.btn--lg{font-size:var(--fs-lg);height:var(--control-h-lg);padding:0 var(--sp-2)}.btn--icon{padding:0;width:var(--control-h)}.btn--icon.btn--sm{width:var(--control-h-sm)}.btn--icon.btn--lg{width:var(--control-h-lg)}.btn--block{display:flex;width:100%}.btn--pill{border-radius:var(--r-pill)}.btn:disabled{background:var(--action-disabled-bg);border-color:transparent;box-shadow:none;color:var(--text-disabled)}.btn.is-active,.btn[aria-pressed=true]{background:var(--action-selected);color:var(--text-primary)}.btn.is-loading{color:transparent!important;pointer-events:none;position:relative}.btn.is-loading:after{animation:spin .7s linear infinite;border:2px solid hsla(0,0%,100%,.35);border-radius:50%;border-top-color:#fff;content:"";height:14px;position:absolute;width:14px}.btn--ghost.is-loading:after,.btn--secondary.is-loading:after{border-color:var(--action-hover);border-top-color:var(--text-primary)}.btn-group{display:inline-flex}.btn-group>.btn{border-radius:0;margin-left:-1px}.btn-group>.btn:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm);margin-left:0}.btn-group>.btn:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0}.btn-group>.btn:only-child{border-radius:var(--r-sm)}.btn-group>.btn.is-active,.btn-group>.btn:hover{position:relative;z-index:1}.icon{fill:none;flex:none;height:16px;pointer-events:none;stroke:currentColor;width:16px}.icon--sm{height:12px;width:12px}.icon--lg{height:20px;width:20px}.icon--xl{height:28px;width:28px}.icon--spin{animation:spin 1s linear infinite}.field{flex-direction:column;margin-bottom:var(--sp-2)}.field,.field__label{display:flex;gap:var(--sp-50)}.field__label{align-items:center;color:var(--text-primary);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.field__label .required{color:var(--error-text)}.field__desc{color:var(--text-secondary);font-size:var(--fs-sm)}.field__error{align-items:center;color:var(--error-text);display:flex;font-size:var(--fs-sm);gap:var(--sp-50)}.field--inline{flex-direction:row}.field--horizontal,.field--inline{align-items:center;gap:var(--sp-2)}.field--horizontal{display:grid;grid-template-columns:200px 1fr}.input,.select,.textarea{background:var(--bg-canvas);border:1px solid var(--border-weak);border-radius:var(--r-sm);color:var(--text-primary);height:var(--control-h);padding:0 var(--sp-1);transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease);width:100%}.textarea{height:auto;line-height:var(--lh-body);min-height:80px;padding:var(--sp-1);resize:vertical}.input::placeholder,.textarea::placeholder{color:var(--text-disabled)}.input:hover,.select:hover,.textarea:hover{border-color:var(--border-medium)}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary-border);box-shadow:0 0 0 2px var(--primary-transparent);outline:none}.input:disabled,.select:disabled,.textarea:disabled{background:var(--action-disabled-bg);color:var(--text-disabled);cursor:not-allowed}.input--invalid,.textarea--invalid{border-color:var(--error-main)}.input--invalid:focus{box-shadow:0 0 0 2px var(--error-transparent)}.input--mono{font-family:var(--font-mono);font-size:var(--fs-sm)}.select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='%23888' d='M4 6l4 4 4-4z'/></svg>");background-position:right var(--sp-1) center;background-repeat:no-repeat;background-size:16px;cursor:pointer;padding-right:var(--sp-4)}.input-wrap{align-items:center;display:flex;position:relative;width:100%}.input-wrap .input{padding-left:var(--sp-4)}.input-wrap__prefix,.input-wrap__suffix{align-items:center;color:var(--text-secondary);display:flex;pointer-events:none;position:absolute}.input-wrap__prefix{left:var(--sp-1)}.input-wrap__suffix{pointer-events:auto;right:var(--sp-1)}.input-wrap--has-suffix .input{padding-right:var(--sp-4)}.checkbox,.radio{align-items:center;cursor:pointer;display:inline-flex;gap:var(--sp-1);user-select:none}.checkbox input,.radio input{height:0;opacity:0;position:absolute;width:0}.checkbox__box,.radio__dot{background:var(--bg-canvas);border:1px solid var(--border-medium);display:grid;flex:none;height:16px;place-items:center;transition:background var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease);width:16px}.checkbox__box{border-radius:var(--r-xs)}.radio__dot{border-radius:50%}.checkbox input:checked+.checkbox__box,.radio input:checked+.radio__dot{background:var(--primary-main);border-color:var(--primary-main)}.checkbox__box:after{border:2px solid #fff;border-right:0;border-top:0;content:"";height:5px;margin-top:-2px;transform:rotate(-45deg) scale(0);transition:transform var(--dur-1) var(--ease);width:9px}.checkbox input:checked+.checkbox__box:after{transform:rotate(-45deg) scale(1)}.radio__dot:after{background:#fff;border-radius:50%;content:"";height:6px;transform:scale(0);transition:transform var(--dur-1) var(--ease);width:6px}.radio input:checked+.radio__dot:after{transform:scale(1)}.checkbox input:focus-visible+.checkbox__box,.radio input:focus-visible+.radio__dot{box-shadow:0 0 0 2px var(--primary-transparent)}.checkbox input:disabled+.checkbox__box,.radio input:disabled+.radio__dot{opacity:.5}.switch{align-items:center;cursor:pointer;display:inline-flex;gap:var(--sp-1);user-select:none}.switch input{height:0;opacity:0;position:absolute;width:0}.switch__track{background:var(--secondary-main);border:1px solid var(--border-weak);border-radius:var(--r-pill);flex:none;height:16px;position:relative;transition:background var(--dur-2) var(--ease);width:32px}.switch__track:after{background:var(--text-secondary);border-radius:50%;content:"";height:12px;left:1px;position:absolute;top:1px;transition:transform var(--dur-2) var(--ease),background var(--dur-2) var(--ease);width:12px}.switch input:checked+.switch__track{background:var(--primary-main);border-color:var(--primary-main)}.switch input:checked+.switch__track:after{background:#fff;transform:translateX(16px)}.switch input:focus-visible+.switch__track{box-shadow:0 0 0 2px var(--primary-transparent)}.switch input:disabled+.switch__track{cursor:not-allowed;opacity:.5}.segmented{background:var(--bg-canvas);border:1px solid var(--border-weak);border-radius:var(--r-sm);display:inline-flex;gap:2px;padding:2px}.segmented__opt{align-items:center;border-radius:var(--r-xs);color:var(--text-secondary);display:inline-flex;font-size:var(--fs-sm);font-weight:var(--fw-medium);gap:var(--sp-50);height:calc(var(--control-h) - 6px);padding:0 var(--sp-1);transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease);white-space:nowrap}.segmented__opt:hover{background:var(--action-hover);color:var(--text-primary)}.segmented__opt.is-active{background:var(--primary-main);color:#fff}.segmented--sm .segmented__opt{font-size:var(--fs-xs);height:20px}.combo{position:relative}.combo__control{align-items:center;background:var(--bg-canvas);border:1px solid var(--border-weak);border-radius:var(--r-sm);cursor:pointer;display:flex;gap:var(--sp-1);min-height:var(--control-h);padding:0 var(--sp-1);text-align:left;width:100%}.combo__control:hover{border-color:var(--border-medium)}.combo.is-open .combo__control{border-color:var(--primary-border);box-shadow:0 0 0 2px var(--primary-transparent)}.combo__value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combo__value--placeholder{color:var(--text-disabled)}.combo__caret{color:var(--text-secondary);transition:transform var(--dur-2) var(--ease)}.combo.is-open .combo__caret{transform:rotate(180deg)}.menu{animation:scale-in var(--dur-2) var(--ease-out);background:var(--bg-elevated);border:1px solid var(--border-weak);border-radius:var(--r-md);box-shadow:var(--shadow-z3);left:0;max-height:60vh;max-width:calc(100vw - 16px);min-width:180px;overflow-y:auto;padding:var(--sp-50);position:fixed;top:0;transform-origin:top;z-index:var(--z-dropdown)}.menu__item{align-items:center;border-radius:var(--r-xs);color:var(--text-primary);display:flex;font-size:var(--fs-md);gap:var(--sp-1);padding:var(--sp-75) var(--sp-1);text-align:left;width:100%}.menu__item.is-focused,.menu__item:hover{background:var(--action-hover);text-decoration:none}.menu__item.is-selected{background:var(--action-selected)}.menu__item[disabled]{color:var(--text-disabled);pointer-events:none}.menu__item--destructive{color:var(--error-text)}.menu__shortcut{color:var(--text-disabled);font-family:var(--font-mono);font-size:var(--fs-xs);margin-left:auto}.menu__label{color:var(--text-secondary);font-size:var(--fs-xs);letter-spacing:.05em;padding:var(--sp-1) var(--sp-1) var(--sp-50);text-transform:uppercase}.menu__divider{background:var(--border-weak);height:1px;margin:var(--sp-50) 0}.tabs{align-items:flex-end;border-bottom:1px solid var(--border-weak);display:flex;gap:var(--sp-50);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{align-items:center;border-bottom:2px solid transparent;border-radius:var(--r-xs) var(--r-xs) 0 0;color:var(--text-secondary);display:inline-flex;font-size:var(--fs-md);gap:var(--sp-1);margin-bottom:-1px;padding:var(--sp-1) var(--sp-15);transition:color var(--dur-1) var(--ease),background var(--dur-1) var(--ease);white-space:nowrap}.tab:hover{background:var(--action-hover);color:var(--text-primary);text-decoration:none}.tab.is-active{border-bottom-color:var(--primary-main);color:var(--text-primary);font-weight:var(--fw-medium)}.tab__counter{background:var(--secondary-main);border-radius:var(--r-pill);font-size:var(--fs-xs);min-width:18px;padding:0 5px;text-align:center}.tabs--vertical{align-items:stretch;border-bottom:0;border-right:1px solid var(--border-weak);flex-direction:column}.tabs--vertical .tab{border-bottom:0;border-right:2px solid transparent;justify-content:flex-start;margin:0 -1px 0 0}.tabs--vertical .tab.is-active{border-right-color:var(--primary-main)}.card{background:var(--bg-primary);border:1px solid var(--border-weak);border-radius:var(--r-md);display:flex;gap:var(--sp-2);padding:var(--sp-2);transition:background var(--dur-2) var(--ease),border-color var(--dur-2) var(--ease),transform var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease)}.card--clickable{cursor:pointer}.card--clickable:hover{background:var(--bg-secondary);border-color:var(--border-medium);box-shadow:var(--shadow-z1);text-decoration:none}.card--selected{border-color:var(--primary-border);box-shadow:0 0 0 1px var(--primary-border)}.card__figure{background:var(--bg-secondary);border-radius:var(--r-sm);color:var(--text-secondary);display:grid;flex:none;height:40px;place-items:center;width:40px}.card__body{display:flex;flex:1;flex-direction:column;gap:var(--sp-50);min-width:0}.card__heading{color:var(--text-primary);font-size:var(--fs-lg);font-weight:var(--fw-medium)}.card__desc,.card__meta{color:var(--text-secondary);font-size:var(--fs-sm)}.card__meta{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-2)}.card__meta>*{display:inline-flex}.card__actions,.card__meta>*{align-items:center;gap:var(--sp-50)}.card__actions{display:flex;flex:none}.card-grid{display:grid;gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.badge{align-items:center;border:1px solid transparent;border-radius:var(--r-xs);display:inline-flex;font-size:var(--fs-xs);font-weight:var(--fw-medium);gap:var(--sp-50);height:20px;line-height:1;padding:0 var(--sp-1);white-space:nowrap}.badge--blue{background:var(--info-transparent);border-color:var(--info-main);color:var(--info-text)}.badge--green{background:var(--success-transparent);border-color:var(--success-main);color:var(--success-text)}.badge--red{background:var(--error-transparent);border-color:var(--error-main);color:var(--error-text)}.badge--orange{background:var(--warning-transparent);border-color:var(--warning-main);color:var(--warning-text)}.badge--purple{background:rgba(184,119,217,.18);border-color:var(--viz-purple);color:var(--viz-purple)}.badge--grey{border-color:var(--border-weak);color:var(--text-secondary)}.badge--grey,.chip{background:var(--secondary-main)}.chip{align-items:center;border-radius:var(--r-sm);color:var(--text-primary);display:inline-flex;font-size:var(--fs-sm);gap:var(--sp-50);height:24px;padding:0 var(--sp-1)}.chip__remove{border-radius:var(--r-xs);color:var(--text-secondary);display:grid;place-items:center}.chip__remove:hover{background:var(--action-hover);color:var(--text-primary)}.chip--tag{background:var(--primary-transparent);color:var(--primary-text);cursor:pointer}.chip--tag:hover{background:var(--primary-main);color:#fff}.kbd{align-items:center;background:var(--bg-canvas);border:solid var(--border-weak);border-radius:var(--r-xs);border-width:1px 1px 2px;color:var(--text-secondary);display:inline-flex;font-family:var(--font-mono);font-size:var(--fs-xs);height:20px;justify-content:center;min-width:20px;padding:0 5px}.avatar{border-radius:50%;display:grid;flex:none;font-size:var(--fs-sm);font-weight:var(--fw-medium);height:28px;place-items:center;width:28px}.avatar--sm{font-size:var(--fs-xs);height:20px;width:20px}.avatar--lg{font-size:var(--fs-lg);height:48px;width:48px}.dot{background:var(--text-disabled);border-radius:50%;flex:none;height:8px;width:8px}.dot--ok{background:var(--success-main)}.dot--warn{background:var(--warning-main)}.dot--error{background:var(--error-main)}.dot--pending{background:var(--info-main)}.dot--pulse{animation:dot-pulse 2s infinite;box-shadow:0 0 0 0 currentColor}@keyframes dot-pulse{70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}.alert{animation:rise-in var(--dur-3) var(--ease-out);background:var(--bg-secondary);border-left:3px solid;border-radius:var(--r-md);display:flex;gap:var(--sp-15);padding:var(--sp-15) var(--sp-2)}.alert__icon{flex:none;margin-top:2px}.alert__body{flex:1;min-width:0}.alert__title{font-weight:var(--fw-medium)}.alert__text{color:var(--text-secondary);font-size:var(--fs-sm)}.alert--info{background:var(--info-transparent);border-color:var(--info-main)}.alert--info .alert__icon{color:var(--info-text)}.alert--success{background:var(--success-transparent);border-color:var(--success-main)}.alert--success .alert__icon{color:var(--success-text)}.alert--warning{background:var(--warning-transparent);border-color:var(--warning-main)}.alert--warning .alert__icon{color:var(--warning-text)}.alert--error{background:var(--error-transparent);border-color:var(--error-main)}.alert--error .alert__icon{color:var(--error-text)}.toast-root{display:flex;flex-direction:column;gap:var(--sp-1);max-width:min(420px,calc(100vw - 32px));pointer-events:none;position:fixed;right:var(--sp-2);top:var(--sp-2);z-index:var(--z-toast)}.toast{animation:slide-left var(--dur-3) var(--ease-out);background:var(--bg-elevated);border:1px solid var(--border-weak);border-left:3px solid var(--info-main);border-radius:var(--r-md);box-shadow:var(--shadow-z3);display:flex;gap:var(--sp-15);padding:var(--sp-15);pointer-events:auto}.toast.is-leaving{animation:fade-in var(--dur-2) var(--ease) reverse forwards}.toast--success{border-left-color:var(--success-main)}.toast--success .toast__icon{color:var(--success-text)}.toast--error{border-left-color:var(--error-main)}.toast--error .toast__icon{color:var(--error-text)}.toast--warning{border-left-color:var(--warning-main)}.toast--warning .toast__icon{color:var(--warning-text)}.toast--info .toast__icon{color:var(--info-text)}.toast__icon{flex:none;margin-top:2px}.toast__body{flex:1;min-width:0}.toast__title{font-size:var(--fs-md);font-weight:var(--fw-medium)}.toast__text{font-size:var(--fs-sm);word-break:break-word}.toast__close,.toast__text{color:var(--text-secondary)}.toast__close{flex:none}.toast__close:hover{color:var(--text-primary)}.overlay{animation:fade-in var(--dur-2) var(--ease);backdrop-filter:blur(2px);background:var(--bg-overlay);display:grid;inset:0;padding:var(--sp-2);place-items:center;position:fixed;z-index:var(--z-modal)}.modal{animation:scale-in var(--dur-3) var(--ease-out);background:var(--bg-primary);border:1px solid var(--border-weak);border-radius:var(--r-lg);box-shadow:var(--shadow-z3);display:flex;flex-direction:column;max-height:90vh;max-width:560px;width:100%}.modal--sm{max-width:400px}.modal--lg{max-width:860px}.modal--xl{max-width:1140px}.modal__header{align-items:center;border-bottom:1px solid var(--border-weak);display:flex;gap:var(--sp-15);padding:var(--sp-2)}.modal__title{flex:1;font-size:var(--fs-h4);font-weight:var(--fw-medium)}.modal__body{flex:1;overflow-y:auto;padding:var(--sp-2)}.modal__footer{align-items:center;border-top:1px solid var(--border-weak);display:flex;gap:var(--sp-1);justify-content:flex-end;padding:var(--sp-2)}.drawer{animation:slide-left var(--dur-3) var(--ease-out);background:var(--bg-primary);border-left:1px solid var(--border-weak);bottom:0;box-shadow:var(--shadow-z3);display:flex;flex-direction:column;position:fixed;right:0;top:0;width:min(640px,100vw);z-index:var(--z-drawer)}.drawer--sm{width:min(400px,100vw)}.drawer--lg{width:min(60vw,1100px)}.drawer--full{animation-name:fade-in;border-left:0;width:100vw}.drawer--full>.drawer__header{display:none}.drawer--full>.drawer__body{display:flex;padding:0}.drawer--left{animation-name:slide-right;border-left:0;border-right:1px solid var(--border-weak);left:0;right:auto}.drawer__header{align-items:flex-start;border-bottom:1px solid var(--border-weak);display:flex;gap:var(--sp-15);padding:var(--sp-2)}.drawer__title{flex:1;font-size:var(--fs-h4);font-weight:var(--fw-medium)}.drawer__subtitle{color:var(--text-secondary);font-size:var(--fs-sm)}.drawer__body{flex:1;overflow-y:auto;padding:var(--sp-2)}.drawer__footer{border-top:1px solid var(--border-weak);display:flex;gap:var(--sp-1);justify-content:flex-end;padding:var(--sp-2)}.tooltip{animation:fade-in var(--dur-1) var(--ease);background:var(--bg-elevated);border:1px solid var(--border-weak);border-radius:var(--r-sm);box-shadow:var(--shadow-z2);color:var(--text-primary);font-size:var(--fs-sm);line-height:1.4;max-width:320px;padding:var(--sp-75) var(--sp-1);pointer-events:none;position:fixed;z-index:var(--z-tooltip)}.table-wrap{background:var(--bg-primary);border:1px solid var(--border-weak);border-radius:var(--r-md);overflow-x:auto}.table{border-collapse:collapse;font-size:var(--fs-md);width:100%}.table td,.table th{padding:var(--sp-1) var(--sp-15);text-align:left}.table thead th{background:var(--bg-secondary);border-bottom:1px solid var(--border-weak);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-medium);position:sticky;top:0;white-space:nowrap;z-index:1}.table thead th.is-sortable{cursor:pointer;user-select:none}.table thead th.is-sortable:hover{color:var(--text-primary)}.table thead th .sort-caret{margin-left:var(--sp-50);opacity:.5}.table thead th.is-sorted .sort-caret{color:var(--primary-text);opacity:1}.table tbody tr{border-bottom:1px solid var(--border-weak)}.table tbody tr:last-child{border-bottom:0}.table tbody tr:hover{background:var(--action-hover)}.table tbody tr.is-selected{background:var(--primary-transparent)}.table td.u-num{font-variant-numeric:tabular-nums;text-align:right}.table--compact td,.table--compact th{font-size:var(--fs-sm);padding:var(--sp-50) var(--sp-1)}.table--fixed{table-layout:fixed}.pagination{align-items:center;display:flex;gap:var(--sp-50);justify-content:center;padding:var(--sp-2) 0}.pagination__page{border-radius:var(--r-sm);color:var(--text-secondary);display:grid;font-size:var(--fs-sm);height:28px;min-width:28px;padding:0 var(--sp-1);place-items:center}.pagination__page:hover{background:var(--action-hover);color:var(--text-primary)}.pagination__page.is-active{background:var(--primary-main);color:#fff}.breadcrumbs__item{align-items:center;border-radius:var(--r-xs);display:inline-flex;font-size:var(--fs-md);gap:var(--sp-50);padding:var(--sp-25) var(--sp-50);white-space:nowrap}a.breadcrumbs__item:hover{background:var(--action-hover);color:var(--text-primary);text-decoration:none}.breadcrumbs__sep{flex:none}.collapse{background:var(--bg-primary);border:1px solid var(--border-weak);border-radius:var(--r-md);overflow:hidden}.collapse+.collapse{margin-top:var(--sp-1)}.collapse__header{align-items:center;display:flex;font-weight:var(--fw-medium);gap:var(--sp-1);padding:var(--sp-15) var(--sp-2);text-align:left;width:100%}.collapse__header:hover{background:var(--action-hover)}.collapse__caret{color:var(--text-secondary);transition:transform var(--dur-2) var(--ease)}.collapse.is-open .collapse__caret{transform:rotate(90deg)}.collapse__body{animation:rise-in var(--dur-2) var(--ease-out);border-top:1px solid var(--border-weak);padding:var(--sp-2)}.optsec{border-bottom:1px solid var(--border-weak)}.optsec__header{align-items:center;display:flex;font-size:var(--fs-md);font-weight:var(--fw-medium);gap:var(--sp-1);padding:var(--sp-15);text-align:left;width:100%}.optsec__header:hover{background:var(--action-hover)}.optsec__caret{color:var(--text-secondary);transition:transform var(--dur-2) var(--ease)}.optsec.is-open .optsec__caret{transform:rotate(90deg)}.optsec__body{padding:0 var(--sp-15) var(--sp-15)}.empty{color:var(--text-secondary);display:grid;gap:var(--sp-15);place-items:center;justify-items:center;padding:var(--sp-8) var(--sp-2);text-align:center}.empty__icon{color:var(--text-disabled);height:48px;width:48px}.empty__title{color:var(--text-primary);font-size:var(--fs-h4);font-weight:var(--fw-medium)}.empty__text{font-size:var(--fs-md);max-width:46ch}.spinner{animation:spin .8s linear infinite;border:2px solid var(--action-hover);border-radius:50%;border-top-color:var(--primary-main);flex:none;height:20px;width:20px}.spinner--sm{border-width:2px;height:14px;width:14px}.spinner--lg{border-width:3px;height:32px;width:32px}.loading-box{color:var(--text-secondary);display:grid;gap:var(--sp-15);padding:var(--sp-6);place-items:center}.progress{background:var(--action-hover);border-radius:var(--r-pill);height:6px}.progress__fill{background:var(--primary-main);border-radius:inherit;height:100%;transition:width var(--dur-4) var(--ease)}.progress--success .progress__fill{background:var(--success-main)}.progress--warning .progress__fill{background:var(--warning-main)}.progress--error .progress__fill{background:var(--error-main)}.code-block{border:1px solid var(--border-weak);border-radius:var(--r-md);color:var(--text-primary);font-size:var(--fs-sm);line-height:1.6;max-height:60vh;overflow:auto;padding:var(--sp-15)}.code-block,.code-inline{background:var(--code-bg);font-family:var(--font-mono)}.code-inline{border:1px solid var(--border-weak);border-radius:var(--r-xs);font-size:.9em;padding:1px 5px}.tok-key{color:var(--viz-blue)}.tok-str{color:var(--viz-green)}.tok-num{color:var(--viz-orange)}.tok-bool{color:var(--viz-purple)}.tok-null{color:var(--text-disabled)}.split{display:flex;min-height:0;min-width:0}.split--v{flex-direction:column}.split__handle{background:transparent;flex:none;position:relative;transition:background var(--dur-1) var(--ease)}.split--h>.split__handle{cursor:col-resize;width:8px}.split--v>.split__handle{cursor:row-resize;height:8px}.split__handle:after{background:var(--border-weak);border-radius:var(--r-pill);content:"";position:absolute}.split--h>.split__handle:after{bottom:0;left:3px;top:0;width:2px}.split--v>.split__handle:after{height:2px;left:0;right:0;top:3px}.split__handle.is-dragging:after,.split__handle:hover:after{background:var(--primary-main)}.divider{height:1px}.divider,.divider--v{background:var(--border-weak)}.divider--v{height:20px;width:1px}.filter-bar{align-items:center;display:flex;flex-wrap:wrap;gap:var(--sp-1)}.filter-bar .input-wrap{flex:1 1 240px;min-width:240px;width:auto}.stat-inline{display:flex;flex-direction:column;gap:2px}.stat-inline__value{font-size:var(--fs-h3);font-variant-numeric:tabular-nums;font-weight:var(--fw-medium)}.stat-inline__label{color:var(--text-secondary);font-size:var(--fs-sm)}.focusable:focus-visible{outline:2px solid var(--primary-main);outline-offset:-2px}.app{display:flex;flex-direction:column;height:100dvh;overflow:hidden}.app[hidden]{display:none}.topbar{background:var(--bg-primary);border-bottom:1px solid var(--border-weak);height:var(--topbar-h);padding:0 var(--sp-1) 0 var(--sp-50);padding-top:env(safe-area-inset-top);z-index:var(--z-navbar)}.topbar,.topbar__brand{align-items:center;display:flex;flex:none;gap:var(--sp-1)}.topbar__brand{border-radius:var(--r-sm);color:var(--text-primary);padding:var(--sp-50) var(--sp-1)}.topbar__brand:hover{background:var(--action-hover);text-decoration:none}.topbar__brand svg{height:24px;width:24px}.topbar__brand-name{font-weight:var(--fw-bold);letter-spacing:-.01em}.topbar__sep{color:var(--text-disabled)}.topbar__actions{align-items:center;display:flex;flex:none;gap:var(--sp-50);margin-left:auto}.topbar__search{align-items:center;background:var(--bg-canvas);border:1px solid var(--border-weak);border-radius:var(--r-sm);color:var(--text-secondary);display:flex;flex:0 1 320px;font-size:var(--fs-sm);gap:var(--sp-1);height:28px;margin-left:var(--sp-2);max-width:420px;min-width:220px;padding:0 var(--sp-1)}.topbar__search:hover{border-color:var(--border-medium);color:var(--text-primary)}.topbar__search .kbd{margin-left:auto}.org-pill{align-items:center;background:var(--secondary-main);border-radius:var(--r-pill);color:var(--text-secondary);display:inline-flex;font-size:var(--fs-sm);gap:var(--sp-50);height:24px;padding:0 var(--sp-1)}.org-pill:hover{background:var(--secondary-shade);color:var(--text-primary);text-decoration:none}.shell{display:flex;flex:1;min-height:0}.megamenu{background:var(--bg-primary);border-right:1px solid var(--border-weak);display:flex;flex:none;flex-direction:column;overflow:hidden;transition:width var(--dur-3) var(--ease),margin-left var(--dur-3) var(--ease);width:var(--megamenu-w)}.megamenu__header{align-items:center;display:flex;flex:none;justify-content:space-between;padding:var(--sp-1) var(--sp-1) var(--sp-1) var(--sp-2)}.megamenu__title{color:var(--text-secondary);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase}.megamenu__scroll{flex:1;overflow-y:auto;padding:0 var(--sp-1) var(--sp-2)}.megamenu__footer{border-top:1px solid var(--border-weak);color:var(--text-disabled);flex:none;font-size:var(--fs-xs);padding:var(--sp-1)}.app.is-menu-collapsed .megamenu{border-right-color:transparent;width:0}.navitem{display:flex;flex-direction:column}.navitem__row{align-items:center;border-radius:var(--r-sm);display:flex;gap:var(--sp-50);position:relative}.navitem__row:hover{background:var(--action-hover)}.navitem__link{align-items:center;border-radius:var(--r-sm);color:var(--text-primary);display:flex;flex:1;font-size:var(--fs-md);gap:var(--sp-15);min-width:0;padding:var(--sp-75) var(--sp-1)}.navitem__link:hover{text-decoration:none}.navitem__link .icon{color:var(--text-secondary)}.navitem__text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navitem__toggle{border-radius:var(--r-xs);color:var(--text-secondary);display:grid;flex:none;height:24px;place-items:center;width:24px}.navitem__toggle:hover{background:var(--action-hover);color:var(--text-primary)}.navitem__toggle .icon{transition:transform var(--dur-2) var(--ease)}.navitem.is-open>.navitem__row .navitem__toggle .icon{transform:rotate(90deg)}.navitem__row.is-active{background:var(--action-selected)}.navitem__row.is-active .navitem__link{font-weight:var(--fw-medium)}.navitem__row.is-active:before{border-radius:var(--r-pill);bottom:6px;top:6px;width:3px}.navitem__children{border-left:1px solid var(--border-weak);margin-left:var(--sp-3);padding-left:var(--sp-50)}.navitem__badge{flex:none}.navitem__star{color:var(--text-disabled);flex:none;opacity:0}.navitem__row:hover .navitem__star{opacity:1}.navitem__star.is-on{color:var(--warning-main);opacity:1}.nav-section-label{color:var(--text-secondary);font-size:var(--fs-xs);letter-spacing:.06em;padding:var(--sp-2) var(--sp-1) var(--sp-50);text-transform:uppercase}.page-wrap{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}.page-header{display:flex;flex:none;flex-direction:column;gap:var(--sp-15);padding:var(--sp-2) var(--sp-3) 0}.page-header__row{align-items:flex-start;display:flex;flex-wrap:wrap;gap:var(--sp-2)}.page-header__titles{display:flex;flex:1;flex-direction:column;gap:var(--sp-50);min-width:0}.page-header__title{align-items:center;display:flex;gap:var(--sp-1)}.page-header__subtitle{max-width:80ch}.page-header__actions{align-items:center;display:flex;flex:none;flex-wrap:wrap;gap:var(--sp-1)}.page-header__tabs{margin-top:var(--sp-50)}.page{flex:1;min-height:0;overflow:auto;padding:var(--sp-2) var(--sp-3) var(--sp-6)}.page.page--flush{padding:0}.page--narrow>.page__inner{max-width:880px}.page__inner{display:flex;flex-direction:column;gap:var(--sp-2)}.settings-layout{align-items:start;display:grid;gap:var(--sp-3);grid-template-columns:var(--subnav-w) 1fr}.settings-layout__nav{position:sticky;top:0}.dash-toolbar{align-items:center;background:var(--bg-canvas);border-bottom:1px solid var(--border-weak);display:flex;flex:none;flex-wrap:wrap;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2)}.dash-toolbar>*{flex:0 0 auto}.dash-toolbar__title{flex:0 1 auto;font-size:var(--fs-h5);font-weight:var(--fw-medium);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-toolbar__spacer{flex:1 1 auto;min-width:0}.var-bar{flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2)}.var,.var-bar{align-items:center;display:flex}.var{gap:var(--sp-50)}.var__label{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-weak);border-radius:var(--r-sm) 0 0 var(--r-sm);border-right:0;color:var(--text-secondary);display:inline-flex;font-size:var(--fs-sm);height:var(--control-h);padding:0 var(--sp-1)}.var .combo__control{border-radius:0 var(--r-sm) var(--r-sm) 0;min-width:140px}.timepicker{align-items:center;display:inline-flex}.timepicker__btn{gap:var(--sp-1)}.timepicker__panel{display:flex;min-width:540px}.timepicker__ranges{border-right:1px solid var(--border-weak);max-height:340px;overflow-y:auto;padding:var(--sp-50);width:220px}.timepicker__abs{flex:1;padding:var(--sp-2)}.timepicker__range{align-items:center;border-radius:var(--r-xs);display:flex;font-size:var(--fs-md);padding:var(--sp-75) var(--sp-1);text-align:left;width:100%}.timepicker__range:hover{background:var(--action-hover)}.timepicker__range.is-active{background:var(--action-selected);font-weight:var(--fw-medium)}.dash-canvas{padding:var(--sp-1) var(--sp-2) var(--sp-6);position:relative}.dash-grid{position:relative;width:100%}.dash-grid.is-editing{background-image:linear-gradient(to right,var(--grid-line) 1px,transparent 1px);background-size:4.16667% 100%}.grid-item{position:absolute;transition:transform var(--dur-2) var(--ease),width var(--dur-2) var(--ease),height var(--dur-2) var(--ease)}.grid-item.is-dragging,.grid-item.is-resizing{opacity:.9;transition:none;z-index:10}.dash-grid.is-stacked .grid-item__resize,.dash-grid.is-stacked .panel__header{cursor:default}.grid-item__resize{bottom:0;cursor:nwse-resize;height:16px;opacity:0;position:absolute;right:0;width:16px;z-index:2}.grid-item__resize:after{border-bottom:2px solid var(--text-secondary);border-right:2px solid var(--text-secondary);bottom:3px;content:"";height:8px;position:absolute;right:3px;width:8px}.dash-grid.is-stacked .panel__header,.grid-item:hover .dash-grid.is-stacked .grid-item__resize{cursor:default}.dash-grid.is-stacked .grid-item__resize{display:none}.grid-item__resize{opacity:1}.grid-placeholder{background:var(--primary-transparent);border:1px dashed var(--primary-border);border-radius:var(--r-md);position:absolute;transition:transform var(--dur-1) var(--ease);z-index:1}.panel{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:var(--r-md);display:flex;flex-direction:column;height:100%;overflow:hidden;transition:border-color var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease)}.panel:hover{border-color:var(--border-medium)}.panel.is-selected{border-color:var(--primary-border);box-shadow:0 0 0 1px var(--primary-border)}.panel--transparent{background:transparent;border-color:transparent}.panel--error{border-color:var(--error-main)}.panel__header{align-items:center;cursor:grab;display:flex;flex:none;gap:var(--sp-50);height:var(--panel-header-h);padding:0 var(--sp-1);z-index:var(--z-panel-header)}.panel__header:active{cursor:grabbing}.panel__title{color:var(--text-primary);flex:1;font-size:var(--fs-md);font-weight:var(--fw-medium);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel__status{display:grid;flex:none;place-items:center}.panel__status--error{color:var(--error-text)}.panel__status--warn{color:var(--warning-text)}.panel__menu-btn{color:var(--text-secondary);flex:none;opacity:0;transition:opacity var(--dur-1) var(--ease)}.panel:hover .panel__menu-btn,.panel__menu-btn.is-open,.panel__menu-btn:focus-visible{opacity:1}.panel__body{flex:1;min-height:0;padding:0 var(--sp-1) var(--sp-1);position:relative}.panel__body--flush{padding:0}.panel__desc-icon{color:var(--text-secondary)}.panel__loading{left:4px;position:absolute;top:4px;z-index:2}.legend{display:flex;flex-wrap:wrap;font-size:var(--fs-sm);gap:var(--sp-50) var(--sp-15);max-height:30%;overflow-y:auto;padding:var(--sp-50) var(--sp-1) 0}.legend--table{display:block}.legend__item{align-items:center;border-radius:var(--r-xs);color:var(--text-secondary);cursor:pointer;display:inline-flex;gap:var(--sp-50);padding:0 2px}.legend__item:hover{background:var(--action-hover);color:var(--text-primary)}.legend__item.is-muted{opacity:.4}.legend__swatch{border-radius:var(--r-pill);flex:none;height:4px;width:12px}.viz-tooltip{background:var(--bg-elevated);border:1px solid var(--border-weak);border-radius:var(--r-sm);box-shadow:var(--shadow-z2);font-size:var(--fs-sm);min-width:160px;padding:var(--sp-1);pointer-events:none;position:fixed;z-index:var(--z-tooltip)}.viz-tooltip__time{border-bottom:1px solid var(--border-weak);color:var(--text-secondary);margin-bottom:var(--sp-50);padding-bottom:var(--sp-50)}.viz-tooltip__row{align-items:center;display:flex;gap:var(--sp-1)}.viz-tooltip__row b{font-variant-numeric:tabular-nums;margin-left:auto}.palette-overlay{animation:fade-in var(--dur-2) var(--ease);backdrop-filter:blur(2px);background:var(--bg-overlay);display:flex;inset:0;justify-content:center;padding-top:12vh;position:fixed;z-index:var(--z-portal)}.palette{animation:scale-in var(--dur-3) var(--ease-out);background:var(--bg-elevated);border:1px solid var(--border-weak);border-radius:var(--r-lg);box-shadow:var(--shadow-z3);display:flex;flex-direction:column;max-height:60vh;overflow:hidden;width:min(680px,calc(100vw - 32px))}.palette__input-row{align-items:center;border-bottom:1px solid var(--border-weak);display:flex;gap:var(--sp-1);padding:var(--sp-15)}.palette__input{background:none;border:0;flex:1;font-size:var(--fs-lg);outline:none}.palette__input::placeholder{color:var(--text-disabled)}.palette__results{flex:1;overflow-y:auto;padding:var(--sp-50)}.palette__group{color:var(--text-secondary);font-size:var(--fs-xs);letter-spacing:.05em;padding:var(--sp-1) var(--sp-1) var(--sp-50);text-transform:uppercase}.palette__item{align-items:center;border-radius:var(--r-sm);color:var(--text-primary);display:flex;gap:var(--sp-15);padding:var(--sp-1);text-align:left;width:100%}.palette__item:hover{background:var(--action-hover);text-decoration:none}.palette__item.is-active{background:var(--primary-transparent);box-shadow:inset 0 0 0 1px var(--primary-border)}.palette__item .icon,.palette__item-sub{color:var(--text-secondary)}.palette__item-sub{font-size:var(--fs-sm)}.palette__footer{align-items:center;border-top:1px solid var(--border-weak);color:var(--text-secondary);display:flex;font-size:var(--fs-xs);gap:var(--sp-2);padding:var(--sp-1) var(--sp-15)}.palette__hint{align-items:center;display:inline-flex;gap:var(--sp-50)}mark.hl{background:transparent;color:var(--primary-text);font-weight:var(--fw-bold)}.app.is-kiosk .dash-toolbar,.app.is-kiosk .megamenu,.app.is-kiosk .topbar{display:none}.offline-bar{align-items:center;background:var(--warning-transparent);border-bottom:1px solid var(--warning-main);color:var(--warning-text);display:flex;flex:none;font-size:var(--fs-sm);gap:var(--sp-1);justify-content:center;padding:var(--sp-50)}@media (max-width:1100px){.settings-layout{grid-template-columns:1fr}.settings-layout__nav{position:static}.settings-layout__nav .tabs--vertical{border-bottom:1px solid var(--border-weak);border-right:0;flex-direction:row}.settings-layout__nav .tabs--vertical .tab{border-bottom:2px solid transparent;border-right:0;margin:0 0 -1px}.settings-layout__nav .tabs--vertical .tab.is-active{border-bottom-color:var(--primary-main)}}@media (max-width:900px){.megamenu{bottom:0;box-shadow:var(--shadow-z3);left:0;position:fixed;top:var(--topbar-h);width:min(var(--megamenu-w),86vw);z-index:var(--z-megamenu)}.app.is-menu-collapsed .megamenu{box-shadow:none;width:0}.megamenu-scrim{animation:fade-in var(--dur-2) var(--ease);background:var(--bg-overlay);inset:var(--topbar-h) 0 0 0;position:fixed;z-index:calc(var(--z-megamenu) - 1)}.page{padding:var(--sp-2)}.page-header{padding:var(--sp-2) var(--sp-2) 0}.topbar__search{flex:0 0 auto;margin-left:0;min-width:0}.breadcrumbs,.topbar__search .kbd,.topbar__search span:not(.kbd){display:none}}@media (max-width:640px){.dash-canvas,.dash-toolbar{padding:var(--sp-1)}.page-header__title{font-size:var(--fs-h4)}.card-grid{grid-template-columns:1fr}.drawer{width:100vw}.modal{max-height:94vh}.toast-root{left:var(--sp-1);max-width:none;right:var(--sp-1)}}@media (display-mode:standalone){.topbar{padding-top:max(env(safe-area-inset-top),0px)}.install-cta{display:none!important}}.breadcrumbs{align-items:center;display:flex;font-size:var(--fs-sm);gap:var(--sp-50);min-width:0;overflow:hidden;white-space:nowrap}.breadcrumbs__item{color:var(--text-secondary)}.breadcrumbs__item:hover{color:var(--text-primary)}.breadcrumbs__item.is-current{color:var(--text-primary);font-weight:var(--fw-medium)}.breadcrumbs__sep{color:var(--text-disabled)}.avatar{align-items:center;background:var(--primary-main);border-radius:var(--r-pill);color:#fff;display:inline-flex;font-size:var(--fs-xs);font-weight:var(--fw-bold);height:24px;justify-content:center;text-transform:uppercase;width:24px}.avatar--sm{font-size:10px;height:22px;width:22px}.navitem__children .navitem__link{padding-left:var(--sp-3)}.navitem__children .navitem__children .navitem__link{padding-left:var(--sp-4)}.navitem__children .navitem__children .navitem__children .navitem__link{padding-left:var(--sp-5)}.navitem__row.is-active>.navitem__link{color:var(--primary-text);font-weight:var(--fw-medium)}.navitem__row.is-active:before{background:var(--primary-main);border-radius:1px;bottom:4px;content:"";left:0;position:absolute;top:4px;width:2px}[hidden]{display:none!important}.page-wrap{background:var(--bg-canvas)}.page-header__title{font-size:var(--fs-h3);font-weight:var(--fw-medium);margin:0}.page-header__subtitle{color:var(--text-secondary);font-size:var(--fs-md);margin:var(--sp-50) 0 0}.prose{color:var(--text-primary);line-height:var(--lh-body);max-width:70ch}.prose p{margin:0 0 var(--sp-2)}.prose h2{font-size:var(--fs-h5);font-weight:var(--fw-medium);margin:var(--sp-3) 0 var(--sp-1)}.stat-row{display:grid;gap:var(--sp-2);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:var(--sp-3)}.stat{background:var(--bg-primary);border:1px solid var(--border-weak);border-radius:var(--r-md);padding:var(--sp-2)}.stat__label{color:var(--text-secondary);font-size:var(--fs-sm)}.stat__value{font-size:var(--fs-h3);font-weight:var(--fw-medium);margin-top:var(--sp-50)}.login{align-items:center;background:var(--bg-canvas);display:flex;justify-content:center;min-height:100dvh;padding:var(--sp-3)}.login__card{background:var(--bg-primary);border:1px solid var(--border-weak);border-radius:var(--r-lg);box-shadow:var(--shadow-2,0 4px 16px rgba(0,0,0,.18));max-width:400px;padding:var(--sp-4);width:100%}.login__brand{align-items:center;display:flex;font-size:var(--fs-h4);font-weight:var(--fw-bold);gap:var(--sp-1);justify-content:center;margin-bottom:var(--sp-1)}.login__brand svg{height:28px;width:28px}.login__lede{color:var(--text-secondary);font-size:var(--fs-sm);margin:0 0 var(--sp-3);text-align:center}.login__footer{color:var(--text-disabled);font-size:var(--fs-xs);margin-top:var(--sp-3);text-align:center}.status{font-size:var(--fs-sm);margin-top:var(--sp-1);min-height:20px}.status--ok{color:var(--success-text)}.status--error{color:var(--error-text)}.megamenu-scrim{display:none}@media (max-width:900px){.app:not(.is-menu-collapsed) .megamenu-scrim{background:var(--bg-overlay);display:block;inset:var(--topbar-h) 0 0;position:fixed;z-index:calc(var(--z-navbar) - 1)}.app:not(.is-menu-collapsed) .megamenu{bottom:0;left:0;position:fixed;top:var(--topbar-h);z-index:var(--z-navbar)}.page{padding:var(--sp-2)}}.btn--full{justify-content:center;width:100%}.login__card--message{text-align:center}.login__status{color:var(--text-disabled);font-size:44px;font-variant-numeric:tabular-nums;font-weight:var(--fw-bold);letter-spacing:-.02em;line-height:1;margin-top:var(--sp-2)}.login__heading{font-size:var(--fs-h4);font-weight:var(--fw-medium);margin:var(--sp-1) 0 var(--sp-50)}.login__card--message .login__lede{margin-bottom:var(--sp-3)}.login__actions{display:flex;flex-direction:column;gap:var(--sp-1)}.navitem__children{display:none}.navitem.is-open>.navitem__children{display:block}.navitem__link--section{font:inherit;text-align:left;width:100%}.bellbtn{position:relative}.bellbtn__bubble{background:var(--error-main);border-radius:999px;box-shadow:0 0 0 2px var(--bg-canvas);box-sizing:border-box;color:#fff;display:grid;font-size:10px;font-variant-numeric:tabular-nums;font-weight:var(--fw-medium);height:16px;line-height:1;min-width:16px;padding:0 4px;place-items:center;pointer-events:none;position:absolute;right:2px;top:2px}.menu__item-text{display:-webkit-box;flex:1;-webkit-line-clamp:2;min-width:0;-webkit-box-orient:vertical;overflow:hidden}.menu__item-meta{color:var(--text-disabled);flex:none;font-size:var(--fs-xs);margin-left:auto;padding-left:var(--sp-1);white-space:nowrap}.menu__item--unread{font-weight:var(--fw-medium)}.menu__item--unread:before{background:var(--primary-main);border-radius:50%;content:"";height:6px;left:2px;position:absolute;width:6px}.menu__item--unread{position:relative}.menu [data-notify-list]{min-width:260px}.table tbody tr.is-unread .notifications__message{font-weight:var(--fw-medium)}.notifications__unread-dot{background:var(--primary-main);border-radius:50%;display:inline-block;height:6px;vertical-align:middle;width:6px}.table tbody tr.is-targeted{animation:notification-target 2.4s var(--ease) forwards}@keyframes notification-target{0%,40%{background:var(--primary-transparent)}to{background:transparent}}@media (prefers-reduced-motion:reduce){.table tbody tr.is-targeted{animation:none;background:var(--primary-transparent)}}.menu__item--more{color:var(--text-secondary);font-size:var(--fs-sm)}.menu__item--more:hover{color:var(--text-primary)}.menu__item-dots{color:var(--text-disabled);flex:none;font-size:var(--fs-lg);line-height:1;text-align:center;width:16px}.cal{background:var(--bg-elevated);border:1px solid var(--border-weak);border-radius:10px;box-shadow:var(--shadow-z3);color:var(--text-primary);display:flex;flex-direction:column;font-size:var(--fs-md);line-height:22px;padding:8px;user-select:none;width:286px}.cal--bare{background:transparent;border:0;box-shadow:none;padding:0;width:268px}.cal__header{align-items:center;display:flex;justify-content:space-between}.cal__title{font-size:var(--fs-md);font-weight:var(--fw-medium);line-height:15.3px;margin:0}.cal__close{background:transparent;border:0;border-radius:var(--r-md);color:var(--text-secondary);cursor:pointer;display:grid;flex:none;height:16px;margin-right:4px;place-items:center;width:16px}.cal__close:hover{color:var(--text-primary)}.cal__nav{display:flex;padding-top:4px}.cal__nav-arrow{color:var(--text-primary);display:grid;flex:none;padding:4px 6px 1px;place-items:center;width:28px}.cal__nav-arrow,.cal__nav-label{background:transparent;border:0;border-radius:var(--r-sm);cursor:pointer;font-weight:var(--fw-medium)}.cal__nav-label{color:var(--text-primary);flex:1;padding:4px 6px 1px;text-align:center}.cal__nav-arrow:hover,.cal__nav-label:hover{background:var(--action-hover)}.cal__nav-arrow:disabled{background:none;color:var(--text-disabled);cursor:default}.cal__weekdays{color:var(--text-link);display:flex;text-align:center}.cal__weekday{flex:0 0 14.2857%;max-width:14.2857%}.cal__weekday abbr{border:0;cursor:default;display:block;padding:4px 0;text-decoration:none}.cal__days{display:flex;flex-wrap:wrap}.cal__tile{background:transparent;border:0;border-radius:0;color:var(--text-primary);cursor:pointer;flex:0 0 14.2857%;font-size:var(--fs-md);height:26px;margin-bottom:4px;max-width:14.2857%;padding:1px 6px;text-align:center}.cal__tile:hover:not(.is-active):not(.is-band){background:var(--action-hover);border-radius:var(--r-pill)}.cal__tile.is-band{background:var(--action-hover);border-radius:0}.cal__tile.is-band-start{border-bottom-left-radius:var(--r-pill);border-top-left-radius:var(--r-pill)}.cal__tile.is-band-end{border-bottom-right-radius:var(--r-pill);border-top-right-radius:var(--r-pill)}.cal__tile.is-active{background:var(--primary-main);color:#fff;font-weight:var(--fw-medium)}.cal__tile.is-start{border-bottom-left-radius:var(--r-pill);border-top-left-radius:var(--r-pill)}.cal__tile.is-end{border-bottom-right-radius:var(--r-pill);border-top-right-radius:var(--r-pill)}.cal__tile.is-single{border-radius:var(--r-pill)}.cal__tile:disabled{background:none;color:var(--text-disabled);cursor:not-allowed}.cal__tile--muted{color:var(--text-secondary)}.cal__tile.is-today{border-radius:var(--r-pill);box-shadow:inset 0 0 0 1px var(--primary-main)}.cal__tile.is-today.is-active{box-shadow:inset 0 0 0 1px #fff}.cal__tile.is-today.is-band{box-shadow:inset 0 0 0 1px var(--primary-main)}.cal__tile--wide{flex:0 0 33.3333%;height:38px;line-height:36px;max-width:33.3333%}.cal__footer{align-items:center;border-top:1px solid var(--border-weak);display:flex;gap:var(--sp-1);margin-top:var(--sp-1);padding-top:var(--sp-1)}.menu--plain{min-width:0;padding:0}.input-group{align-items:stretch;display:flex}.input-group .input{border-bottom-right-radius:0;border-top-right-radius:0;flex:1 1 auto}.input-group__btn{background:var(--bg-secondary);border:1px solid var(--border-medium);border-bottom-right-radius:var(--r-sm);border-left:0;border-top-right-radius:var(--r-sm);color:var(--text-secondary);cursor:pointer;display:grid;flex:none;padding:0;place-items:center;width:var(--control-h)}.input-group__btn:hover{background:var(--action-hover);color:var(--text-primary)}.input-group__btn:disabled{color:var(--text-disabled);cursor:not-allowed}.input--invalid{border-color:var(--error-main)}.skeleton{animation:skeleton-pulse 1.4s ease-in-out infinite;background:var(--action-hover);border-radius:var(--r-sm)}.skeleton+.skeleton{margin-top:var(--sp-15)}.skeleton--bar{height:20px;width:260px}.skeleton--grid{height:60vh;min-height:320px}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.progress{background:var(--border-weak);height:3px;overflow:hidden;position:relative}.progress__bar{animation:progress-slide 1.1s ease-in-out infinite;background:var(--primary-main);inset:0 auto 0 0;position:absolute;width:40%}@keyframes progress-slide{0%{left:-40%}to{left:100%}}.page-wrap.is-loading{opacity:.5;pointer-events:none;transition:opacity .12s linear}@media (prefers-reduced-motion:reduce){.progress__bar{animation:none;opacity:.6;width:100%}.page-wrap.is-loading{transition:none}}