:root,[data-theme=dark]{--bg:#111316;--surface:#1f2226;--inset:#181a1e;--border:#ffffff0d;--text:#dde3e9;--heading:#e6ebf0;--muted:#9aa3ac;--faint:#7d868f;--accent:#62a0dc;--accent-hover:#79b0e4;--accent-text:#0e1216;--hover:#282c31;--active:#2e3237;--canvas-bg:#0d0e10;--grid-minor:#17191c;--grid-major:#212429;--danger:#e08e93;--r-panel:10px;--r-ctl:7px;--r-pill:8px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#f5f5f5;--surface:#fff;--border:#d0d0d0;--text:#1a1a1a;--muted:#6b6b6b;--accent:#7e14ff;--accent-text:#fff;--hover:#eceef1;--active:#e2e5ea;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);height:100dvh;font-family:system-ui,sans-serif;overflow:hidden}.app-shell{--rail-w:52px;--side-w:268px;--toolbox-h:92px;--gutter:8px;grid-template-areas:"topbar topbar topbar topbar topbar"". . . . .""toolrail gut-l toolbox gut-r sidepanel""toolrail gut-l gut-m gut-r sidepanel""toolrail gut-l canvas gut-r sidepanel""toolrail gut-l.gut-r sidepanel""toolrail gut-l statusbar gut-r sidepanel";grid-template-columns:var(--rail-w) var(--gutter) minmax(0, 1fr) var(--gutter) var(--side-w);grid-template-rows:44px var(--gutter) var(--toolbox-h) var(--gutter) minmax(0, 1fr) var(--gutter) 26px;background:var(--bg);gap:0;height:100dvh;padding:8px;display:grid}.splitter{touch-action:none;z-index:3;justify-content:center;align-items:center;display:flex;position:relative}.splitter-vertical{cursor:col-resize}.splitter-horizontal{cursor:row-resize}.splitter:before{content:"";position:absolute;inset:0}.splitter-vertical:before{inset:0 -3px}.splitter-horizontal:before{inset:-3px 0}.splitter-grip{pointer-events:none;background:0 0;border-radius:2px;transition:background .12s}.splitter-vertical .splitter-grip{width:2px;height:28px}.splitter-horizontal .splitter-grip{width:28px;height:2px}.splitter:hover .splitter-grip,.splitter:focus-visible .splitter-grip{background:var(--accent)}.splitter:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:3px}body[data-resizing]{-webkit-user-select:none;user-select:none}body[data-resizing] *{cursor:inherit!important}body[data-resizing=col]{cursor:col-resize}body[data-resizing=row]{cursor:row-resize}.topbar,.toolrail,.toolbox,.canvas-area,.sidepanel,.statusbar{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-panel)}.statusbar{border-radius:8px}.topbar{grid-area:topbar;align-items:center;padding:0 12px;display:flex}.brand{color:var(--heading);letter-spacing:-.01em;align-items:center;gap:8px;font-size:13.5px;font-weight:600;display:inline-flex}.tb-btn{font:inherit;color:#c9d1d9;border-radius:var(--r-ctl);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;padding:7px 11px;font-size:12.5px;line-height:1;transition:background .12s,color .12s}.tb-btn:hover:not(:disabled){background:var(--hover)}.tb-btn:active:not(:disabled){background:var(--active)}.tb-btn:disabled{opacity:.4;cursor:default}.tb-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tb-btn.icon{justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:16px;display:inline-flex}.tb-btn.ai-btn:not(:disabled){background:var(--accent);color:var(--accent-text);padding:7px 13px;font-weight:600}.tb-btn.ai-btn:not(:disabled):hover{background:var(--accent-hover)}.tb-pill{background:var(--inset);border-radius:var(--r-pill);align-items:center;gap:2px;padding:2px;display:inline-flex}.tb-pill .tb-btn.icon{border-radius:6px;width:28px;height:26px}.toolrail{grid-area:toolrail}.toolbox{grid-area:toolbox;overflow:hidden}.canvas-area{background:var(--canvas-bg);grid-area:canvas;position:relative;overflow:hidden}.sidepanel{grid-area:sidepanel;overflow:hidden}.statusbar{color:var(--muted);grid-area:statusbar;align-items:center;padding:0 14px;font-size:11.5px;display:flex}.pwa-toast{z-index:1200;max-width:320px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;animation:.18s ease-out pwa-toast-in;display:flex;position:fixed;bottom:16px;right:16px;box-shadow:0 6px 24px #0000002e}.pwa-toast>span:first-child{color:var(--accent);font-weight:700}@keyframes pwa-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ai-panel{z-index:1100;background:var(--surface);border-left:1px solid var(--border);flex-direction:column;width:360px;max-width:92vw;animation:.18s ease-out ai-panel-in;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 28px #0000002e}@keyframes ai-panel-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.ai-panel-head{border-bottom:1px solid var(--border);color:var(--text);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.ai-panel-body{flex-direction:column;flex:1;gap:12px;padding:12px;display:flex;overflow-y:auto}.ai-settings summary{cursor:pointer;color:var(--muted);-webkit-user-select:none;user-select:none;font-size:12px}.ai-field{color:var(--muted);flex-direction:column;gap:4px;margin-top:10px;font-size:12px;display:flex}.ai-field select,.ai-field input,.ai-prompt{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:7px 9px;font-size:13px}.ai-field select:focus,.ai-field input:focus,.ai-prompt:focus{outline:2px solid var(--accent);outline-offset:0}.ai-note{color:var(--muted);margin-top:8px;font-size:11px;line-height:1.4}.ai-prompt{resize:vertical;width:100%}.ai-error{color:#e5484d;background:#e5484d1f;border:1px solid #e5484d59;border-radius:6px;padding:8px 10px;font-size:12px}.ai-output{color:var(--text);white-space:pre-wrap;font-size:13px;line-height:1.45}.ai-thinking summary{cursor:pointer;color:var(--muted);font-size:12px}.ai-thinking pre{color:var(--muted);white-space:pre-wrap;word-break:break-word;margin-top:6px;font-size:11px;line-height:1.4}.ai-log{flex-direction:column;gap:4px;font-size:11px;list-style:none;display:flex}.ai-log li{background:var(--bg);border-left:2px solid var(--border);border-radius:5px;align-items:baseline;gap:6px;padding:4px 6px;display:flex}.ai-log li[data-status=ok]{border-left-color:#2fae4e}.ai-log li[data-status=error]{border-left-color:#e5484d}.ai-log li[data-status=running]{border-left-color:var(--accent)}.ai-log code{color:var(--accent);flex-shrink:0;font-weight:600}.ai-log span{color:var(--muted);word-break:break-word}.ai-mode{gap:6px;display:flex}.ai-mode .tb-btn.active{background:var(--accent);color:var(--accent-text)}.ai-plugins summary{cursor:pointer;color:var(--muted);-webkit-user-select:none;user-select:none;font-size:12px}.ai-panel-foot{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.ai-panel-foot .ai-note{flex:1;margin-top:0}.plugin-list{flex-direction:column;gap:8px;margin:8px 0 0;padding:0;list-style:none;display:flex}.plugin-item{border:1px solid var(--border);background:var(--bg);border-radius:6px;padding:8px 10px}.plugin-head{color:var(--text);justify-content:space-between;align-items:baseline;gap:8px;font-size:13px;display:flex}.plugin-actions{gap:6px;margin-top:8px;display:flex}.plugin-code{color:var(--muted);white-space:pre-wrap;word-break:break-word;max-height:180px;margin-top:6px;font-size:11px;line-height:1.4;overflow:auto}.custom-panel{border-top:1px solid var(--border);padding:8px 10px}.custom-panel h4{color:var(--text);margin:0 0 4px;font-size:12px}.toolrail{container-type:inline-size}.toolrail-inner{flex-direction:column;align-items:stretch;gap:2px;padding:4px 6px 0;display:flex}.toolrail-btn{height:clamp(30px, calc(var(--rail-w) - 16px), 46px);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:0;font-size:12.5px;transition:background .12s,color .12s;display:flex}.toolrail-btn[data-active]{background:var(--accent);color:var(--accent-text)}.toolrail-btn:hover:not([data-active]){background:var(--hover)}.toolrail-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.toolrail-icon{flex-shrink:0;justify-content:center;align-items:center;display:flex}.toolrail-icon svg{width:clamp(18px, calc(var(--rail-w) * .42), 26px);height:auto}.toolrail-label{display:none}@container (width>=104px){.toolrail-btn{justify-content:flex-start;padding:0 10px}.toolrail-label{display:inline}}.draw-options-bar{z-index:400;color:var(--text);border-radius:var(--r-panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);-webkit-user-select:none;user-select:none;background:#1f2226eb;border:none;align-items:center;gap:8px;max-width:calc(100% - 20px);padding:5px 8px;font-size:12px;display:flex;position:absolute;top:10px;left:10px;box-shadow:0 8px 24px #0006}.dob-hint{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.dob-sep{background:var(--border);align-self:stretch;width:1px;margin:2px 0}.dob-toggle{font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:11px;transition:background .12s,color .12s}.dob-toggle:hover{background:var(--hover);color:var(--text)}.dob-toggle.active{color:var(--accent-text);background:var(--accent);font-weight:600}.dob-stepper{align-items:center;gap:4px;display:flex}.dob-stepper-label{color:var(--muted);font-size:11px}.dob-step{width:20px;height:20px;color:var(--text);background:var(--inset);cursor:pointer;border:none;border-radius:5px;justify-content:center;align-items:center;font-size:14px;line-height:1;display:inline-flex}.dob-step:hover{background:var(--hover)}.dob-step-val{text-align:center;font-variant-numeric:tabular-nums;min-width:14px;font-weight:600}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);background-clip:padding-box;border:2px solid #0000;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:padding-box}.sidepanel input[type=number],.sidepanel input[type=text],.sidepanel select{font:inherit;color:var(--text);background:var(--inset);border-radius:var(--r-ctl);border:none;min-width:0;max-width:100%;padding:6px 9px;font-size:12px}.sidepanel .sp-num{width:clamp(54px,32%,120px)}.sidepanel label,.sidepanel .sp-row{min-width:0}.sidepanel input[type=number]:focus,.sidepanel input[type=text]:focus,.sidepanel select:focus{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:0}.sidepanel input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.sidepanel input[type=color]{background:var(--inset);cursor:pointer;border:none;border-radius:5px;width:34px;height:22px;padding:0}.sidepanel label{color:var(--muted)}.ribbon{flex-direction:column;height:100%;display:flex}.rib-tabs{flex-shrink:0;align-items:center;gap:8px;padding:6px 8px 4px;display:flex}.rib-tabstrip{background:var(--inset);border-radius:var(--r-pill);scrollbar-width:none;align-items:center;gap:2px;min-width:0;padding:2px;display:flex;overflow-x:auto}.rib-tabstrip::-webkit-scrollbar{display:none}.rib-tab{appearance:none;color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:5px 12px;font-size:12px}.rib-tab:hover{color:var(--text)}.rib-tab.on{background:var(--active);color:var(--heading);font-weight:600}.rib-body{flex:1;align-items:stretch;gap:0;min-height:0;padding:2px 4px 6px;display:flex;overflow:auto}.rib-group{border-right:1px solid var(--border);flex-direction:column;justify-content:space-between;padding:0 12px;display:flex}.rib-tiles{align-content:flex-start;gap:4px;display:grid}.rib-tile{border-radius:var(--r-ctl);cursor:grab;height:36px;color:var(--text);white-space:nowrap;background:0 0;border:none;flex-direction:row;align-items:center;gap:6px;padding:0 10px;display:flex}.rib-tile:hover{background:var(--hover)}.rib-tile.armed{background:color-mix(in srgb, var(--accent) 22%, transparent);color:var(--heading)}.rib-glyph{line-height:0;display:block}.rib-tile-cap{color:var(--muted);font-size:12px;line-height:1.1}.rib-tile.armed .rib-tile-cap{color:var(--heading)}.rib-group-cap{color:var(--faint);justify-content:center;align-items:center;gap:8px;padding-top:6px;font-size:11px;display:flex}.rib-more{appearance:none;background:var(--inset);border-radius:var(--r-ctl);color:var(--accent);font:inherit;cursor:pointer;border:none;padding:2px 7px;font-size:10.5px}.rib-more:hover{background:var(--hover)}.rib-search{background:var(--inset);border-radius:var(--r-ctl);width:clamp(88px,30%,160px);height:26px;color:var(--text);font:inherit;border:none;flex-shrink:0;margin-left:auto;padding:0 8px;font-size:12px}.rib-search:focus{outline:2px solid color-mix(in srgb, var(--accent) 60%, transparent);outline-offset:0}.settings-backdrop{z-index:1200;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.settings-modal{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;width:min(1400px,92vw);min-width:320px;height:min(900px,90vh);min-height:320px;display:flex;overflow:hidden;box-shadow:0 20px 60px #0006}.settings-head{border-bottom:1px solid var(--border);color:var(--text);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.settings-body{flex:1;display:flex;overflow:hidden}.settings-rail{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:2px;width:160px;padding:10px;display:flex;overflow-y:auto}.settings-rail-btn{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:8px 10px;font-size:13px}.settings-rail-btn:hover{background:var(--hover)}.settings-rail-btn.active{background:var(--accent);color:var(--accent-text)}.settings-content{color:var(--text);flex:1;padding:16px;overflow-y:auto}.settings-content h3{margin:0 0 10px;font-size:14px}.ai-settings-summary{color:var(--muted);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding-bottom:4px;font-size:12px;display:flex}.sheet-preview{border:1px solid var(--border);background:#e9e9e9;border-radius:6px;flex:1;justify-content:center;align-items:center;min-width:300px;display:flex;overflow:hidden}.sheet-preview-box{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.sheet-preview-box svg{max-width:100%;max-height:100%}.settings-export-sheet{gap:20px;height:100%;display:flex}.settings-export-fields{flex-direction:column;flex:0 320px;gap:4px;min-width:220px;display:flex;overflow-y:auto}.settings-notes-label{flex-direction:column;gap:4px;margin-top:4px;font-size:12px;display:flex}.settings-notes-label textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);resize:vertical;border-radius:6px;padding:6px 8px;font-size:12px}.settings-revisions{border-collapse:collapse;width:100%;font-size:11px}.settings-revisions th,.settings-revisions td{text-align:left;padding:2px 4px}.settings-revisions input{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:4px;padding:2px 4px;font-size:11px}.settings-hint{color:var(--muted);margin:0 0 10px;font-size:12px;line-height:1.45}.preset-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;margin-bottom:10px;display:grid}.preset-card{border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--inset,var(--hover));display:flex;position:relative;overflow:hidden}.preset-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.preset-pick{color:var(--text);text-align:left;cursor:pointer;font:inherit;background:0 0;border:none;flex:1;grid-template-columns:auto 1fr;grid-template-areas:"chip name""chip desc";align-items:center;gap:2px 10px;padding:9px 10px;display:grid}.preset-pick:hover{background:var(--hover)}.preset-pick:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.preset-chip{border-radius:4px;grid-area:chip;grid-template-columns:repeat(2,11px);grid-auto-rows:11px;gap:2px;display:grid;overflow:hidden}.preset-chip>span{border-radius:2px;display:block}.preset-chip>span:first-child{grid-column:1/span 2}.preset-name{color:var(--heading,var(--text));grid-area:name;font-size:12.5px;font-weight:600}.preset-desc{color:var(--muted);grid-area:desc;font-size:11px;line-height:1.35}.preset-del{width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:5px;align-self:flex-start;margin:4px 4px 0 0;font-size:11px}.preset-del:hover{background:var(--hover);color:var(--danger,var(--text))}.preset-save{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px;display:flex}.preset-save input{background:var(--inset,var(--hover));border:1px solid var(--border);border-radius:var(--r-ctl);min-width:140px;color:var(--text);font:inherit;flex:180px;padding:7px 9px;font-size:12.5px}.preset-save .tb-btn{background:var(--inset,var(--hover));white-space:nowrap}.colour-group{margin-bottom:10px}.colour-group-cap{text-transform:uppercase;letter-spacing:.06em;color:var(--faint,var(--muted));border-bottom:1px solid var(--border);margin-bottom:2px;padding:4px 0;font-size:11px}.colour-row{cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:5px 4px;display:flex}.colour-row:hover{background:var(--hover)}.colour-row input[type=color]{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:5px;flex-shrink:0;width:30px;height:24px;padding:0}.colour-row-text{flex-direction:column;flex:1;min-width:0;display:flex}.colour-row-label{font-size:12.5px}.colour-row-hint{color:var(--muted);font-size:11px;line-height:1.3}.colour-row-hex{color:var(--faint,var(--muted));flex-shrink:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.palette-preview{border:1px solid var(--border);border-radius:var(--r-ctl);width:100%;max-width:480px;height:auto;display:block}.kpi-backdrop{z-index:1300;pointer-events:none;position:fixed;inset:0}.kpi-window{pointer-events:auto;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--r-panel);flex-direction:column;display:flex;position:absolute;overflow:hidden;box-shadow:0 24px 70px #00000080}.kpi-head{border-bottom:1px solid var(--border);cursor:move;touch-action:none;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:9px 12px;display:flex}.kpi-head-title{font-size:13px;font-weight:600}.kpi-head-sub{color:var(--muted);flex:1;font-size:11px}.kpi-body{flex:1;grid-template-columns:176px minmax(0,1fr) 292px;display:grid;overflow:hidden}.kpi-rail{border-right:1px solid var(--border);flex-direction:column;gap:2px;padding:10px 8px;display:flex;overflow-y:auto}.kpi-rail-cap{text-transform:uppercase;letter-spacing:.05em;color:var(--faint,var(--muted));padding:8px 6px 3px;font-size:10.5px}.kpi-rail-btn{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 8px;font-size:12px;line-height:1.3}.kpi-rail-btn:hover{background:var(--hover)}.kpi-rail-btn.on{background:var(--accent);color:var(--accent-text)}.kpi-rail-empty{color:var(--muted);padding:2px 8px 6px;font-size:11px}.kpi-preview{flex-direction:column;gap:8px;min-width:0;padding:12px;display:flex;overflow-y:auto}.kpi-toolbar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.kpi-toolbar-gap{flex:1}.kpi-btn{border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--inset,var(--hover));color:var(--text);cursor:pointer;padding:5px 10px;font-size:12px}.kpi-btn:hover:not(:disabled){background:var(--hover)}.kpi-btn:disabled{opacity:.45;cursor:default}.kpi-btn.danger{color:var(--danger)}.kpi-btn.wide{width:100%;margin-top:8px}.kpi-icon-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 5px}.kpi-icon-btn:hover:not(:disabled){background:var(--hover);color:var(--text)}.kpi-icon-btn:disabled{opacity:.35;cursor:default}.kpi-dirty{color:var(--warn,#e0a800);font-size:11px}.kpi-canvas{min-width:0;overflow-x:auto}.kpi-chart-empty{text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:var(--r-ctl);justify-content:center;align-items:center;padding:24px;font-size:12px;display:flex}.kpi-chart-wrap{-webkit-user-select:none;user-select:none}.kpi-tooltip{z-index:2;pointer-events:none;background:var(--surface);border:1px solid var(--border);border-radius:6px;min-width:150px;padding:7px 9px;font-size:11px;position:absolute;box-shadow:0 6px 20px #00000059}.kpi-tooltip-head{margin-bottom:4px;font-weight:600}.kpi-tooltip-row{align-items:center;gap:6px;display:flex}.kpi-tooltip-swatch{border-radius:2px;flex-shrink:0;width:9px;height:9px}.kpi-tooltip-label{color:var(--muted);flex:1}.kpi-tooltip-value{font-variant-numeric:tabular-nums}.kpi-datatable>summary{color:var(--muted);cursor:pointer;padding:4px 0;font-size:11px}.kpi-footer{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.kpi-table{border-collapse:collapse;width:100%}.kpi-table-title{margin-bottom:2px;font-size:14px;font-weight:600}.kpi-table-subtitle{margin-bottom:8px;font-size:11px}.kpi-side{border-left:1px solid var(--border);display:flex;overflow:hidden}.kpi-inspector{flex-direction:column;flex:1;min-width:0;display:flex}.kpi-inspector-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;padding:8px 8px 6px;display:flex}.kpi-itab{border-radius:var(--r-pill);color:var(--muted);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:11px}.kpi-itab:hover{background:var(--hover);color:var(--text)}.kpi-itab.on{background:var(--accent);color:var(--accent-text)}.kpi-inspector-body{flex:1;padding:8px 10px 24px;overflow-y:auto}.kpi-group{border-bottom:1px solid var(--border)}.kpi-group>summary{cursor:pointer;padding:7px 2px;font-size:11.5px;font-weight:600}.kpi-group-body{flex-direction:column;gap:3px;padding:2px 0 10px 4px;display:flex}.kpi-subgroup{margin:4px 0 4px 4px}.kpi-subgroup>summary{color:var(--muted);cursor:pointer;padding:4px 0;font-size:11px}.kpi-row{grid-template-columns:1fr auto;align-items:center;gap:8px;min-height:24px;display:grid}.kpi-row-label{color:var(--muted);font-size:11.5px}.kpi-row-ctl{justify-content:flex-end;align-items:center;gap:6px;display:flex}.kpi-num{align-items:center;gap:3px;display:inline-flex}.kpi-num input{width:62px}.kpi-num-suffix{color:var(--faint,var(--muted));font-size:10px}.kpi-autonum{width:72px}.kpi-text{width:128px}.kpi-select{max-width:148px}.kpi-inspector input[type=text],.kpi-inspector input[type=number],.kpi-inspector select{color:var(--text);background:var(--inset,var(--hover));border:1px solid var(--border);border-radius:5px;padding:3px 5px;font-size:11.5px}.kpi-color{align-items:center;gap:6px;display:inline-flex}.kpi-color input[type=color]{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;width:28px;height:22px;padding:0}.kpi-color input[type=color]:disabled{opacity:.4;cursor:default}.kpi-check{color:var(--muted);align-items:center;gap:4px;font-size:11px;display:inline-flex}.kpi-series-row{align-items:center;gap:6px;display:flex}.kpi-series-row .kpi-select{flex:1;max-width:none}.kpi-hint{color:var(--muted);padding:4px 0;font-size:10.5px;line-height:1.4}.kpi-warn{color:var(--text);background:color-mix(in srgb, var(--warn,#e0a800) 14%, transparent);border:1px solid color-mix(in srgb, var(--warn,#e0a800) 40%, transparent);border-radius:var(--r-ctl);margin-top:10px;padding:8px 9px;font-size:11px;line-height:1.45}.kpi-swatches{flex-wrap:wrap;gap:6px;padding:4px 0;display:flex}.kpi-swatch{color:var(--faint,var(--muted));flex-direction:column;align-items:center;gap:2px;font-size:9.5px;display:flex}.kpi-swatch input[type=color]{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:5px;width:30px;height:26px;padding:0}.kpi-swatch-actions{flex-wrap:wrap;gap:6px;padding-top:4px;display:flex}.kpi-grip{cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg, transparent 50%, var(--border) 50%, var(--border) 62%, transparent 62%, transparent 74%, var(--border) 74%, var(--border) 86%, transparent 86%);width:18px;height:18px;position:absolute;bottom:0;right:0}@media (width<=980px){.kpi-body{grid-template-columns:140px minmax(0,1fr)}.kpi-side{border-left:none;border-top:1px solid var(--border);grid-column:1/-1}}.kpi-sheet{z-index:3;background:var(--surface);border-top:1px solid var(--border);flex-direction:column;display:flex;position:absolute;inset:34px 0 0}.kpi-sheet-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;display:flex}.kpi-sheet-body{flex:1;max-width:720px;padding:10px 16px 24px;overflow-y:auto}.kpi-sheet-body .kpi-row{grid-template-columns:1fr auto}.kpi-sheet-body .kpi-text{width:260px}.kpi-sheet-body .kpi-select{max-width:260px}.kpi-schema{flex-wrap:wrap;gap:4px 6px;padding:4px 0;list-style:none;display:flex}.kpi-schema code{background:var(--inset,var(--hover));color:var(--text);white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:10.5px}.kpi-head-tabs{gap:2px;display:flex}.kpi-body-density{flex:1;min-width:0;overflow:auto}.kpi-density{grid-template-columns:minmax(0,1fr) 268px;align-items:start;gap:12px;padding:12px;display:grid}.kpi-density-main{flex-direction:column;gap:10px;min-width:0;display:flex}.kpi-density-side{border-left:1px solid var(--border);padding-left:12px}.kpi-heatmap-wrap{border:1px solid var(--border);border-radius:var(--r-ctl);background:var(--canvas-bg,var(--inset));overflow:hidden}.kpi-transport{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.kpi-scrub{min-width:140px;accent-color:var(--accent);flex:1}.kpi-clock{font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.kpi-frameno{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10.5px}.kpi-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:10.5px;display:flex}.kpi-legend-cap{color:var(--text);font-weight:600}.kpi-legend-bar{border-radius:3px;width:200px;height:10px;display:flex;overflow:hidden}.kpi-legend-bar>span{flex:1}.kpi-legend-ticks{font-variant-numeric:tabular-nums;gap:10px;display:flex}.kpi-legend-note{font-style:italic}.kpi-spacetime{flex-direction:column;gap:3px;display:flex}.kpi-spacetime-plot{border:1px solid var(--border);border-radius:var(--r-ctl);cursor:crosshair;overflow:hidden}.kpi-spacetime-playhead{background:var(--accent);pointer-events:none;width:1px;position:absolute;top:0;bottom:0}.kpi-spacetime-axis{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:10px;display:flex}.kpi-spacetime-axis-mid{font-variant-numeric:normal}@media (width<=980px){.kpi-density{grid-template-columns:minmax(0,1fr)}.kpi-density-side{border-left:none;border-top:1px solid var(--border);padding:12px 0 0}}
