:root{color-scheme:dark;--bg: #0f1117;--surface: #171a22;--surface2: #1e2230;--border: #2a3142;--text: #e8eaef;--muted: #8b93a7;--accent: #4c8dff;--ok: #3ecf8e;--warn: #f0b429;--err: #f07178;--motion-fast: .15s ease-out;--motion-base: .24s cubic-bezier(.22, 1, .36, 1);--motion-slow: .38s cubic-bezier(.22, 1, .36, 1);--space-1: 4px;--space-2: 8px;--space-3: 12px;--icon-size-header: 16px;--icon-size-toolbar: 14px;--icon-size-disclosure: 18px;--scrollbar-size: 6px;--scrollbar-thumb: rgba(139, 147, 167, .55);--scrollbar-thumb-hover: rgba(139, 147, 167, .78);font-family:SF Pro Text,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text)}@media(prefers-reduced-motion:reduce){:root{--motion-fast: 0ms;--motion-base: 0ms;--motion-slow: 0ms}}*{box-sizing:border-box}body{margin:0}html.overlay-scrollbars,html.overlay-scrollbars *{scrollbar-width:thin;scrollbar-color:transparent transparent}html.overlay-scrollbars.is-scrolling,html.overlay-scrollbars *.is-scrolling{scrollbar-color:var(--scrollbar-thumb) transparent}html.overlay-scrollbars::-webkit-scrollbar,html.overlay-scrollbars *::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}html.overlay-scrollbars::-webkit-scrollbar-track,html.overlay-scrollbars *::-webkit-scrollbar-track{background:transparent}html.overlay-scrollbars::-webkit-scrollbar-thumb,html.overlay-scrollbars *::-webkit-scrollbar-thumb{background-color:transparent;border-radius:999px;min-height:32px}html.overlay-scrollbars.is-scrolling::-webkit-scrollbar-thumb,html.overlay-scrollbars *.is-scrolling::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb)}html.overlay-scrollbars.is-scrolling::-webkit-scrollbar-thumb:hover,html.overlay-scrollbars *.is-scrolling::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}html.desktop-win{--desktop-titlebar-height: 40px;--desktop-window-controls-width: 138px}html.desktop-win body{background:var(--bg)}html.desktop-win .app{padding:0 20px 16px}html.desktop-win .app--preview-first .header{margin-bottom:10px}html.desktop-win .header{display:flex;align-items:center;justify-content:flex-start;gap:12px;margin:0 -20px;padding:0 calc(var(--desktop-window-controls-width) + 12px) 0 16px;min-height:var(--desktop-titlebar-height);flex-wrap:nowrap;-webkit-app-region:drag;-webkit-user-select:none;user-select:none;background:var(--bg);border-bottom:1px solid color-mix(in srgb,var(--border) 65%,transparent)}html.desktop-win .header-brand{display:flex;align-items:center;gap:8px;min-width:0;flex:1;-webkit-app-region:drag}html.desktop-win .header-brand:before{content:"";width:3px;height:14px;border-radius:2px;background:var(--accent);flex-shrink:0;opacity:.85}html.desktop-win .header h1{margin:0;font-size:12px;font-weight:600;line-height:1;letter-spacing:.03em;flex-shrink:0}html.desktop-win .header .subtitle{display:none}html.desktop-win .header-actions,html.desktop-win .header button,html.desktop-win .header a,html.desktop-win .header select,html.desktop-win .header .github-link,html.desktop-win .header .lang-select-wrap,html.desktop-win .header .header-menu-select,html.desktop-win .header .header-toolbar-select-wrap{-webkit-app-region:no-drag}html.desktop-win .header-actions{flex-shrink:0;margin-left:auto;gap:0}html.desktop-win .header-actions--compact .header-actions-group{padding:1px;gap:0;border-radius:8px;background:color-mix(in srgb,var(--surface2) 88%,transparent);border:1px solid color-mix(in srgb,var(--border) 80%,transparent)}html.desktop-win .header-actions--compact .header-actions-divider{height:14px}html.desktop-win .header-actions--compact .header-toolbar-control,html.desktop-win .header-actions--compact .github-link{min-height:26px;padding:4px 8px}html.desktop-win .workbench.panel{margin-top:10px}html.desktop-custom-chrome{--desktop-titlebar-height: 40px;--desktop-traffic-lights-width: 68px}html.desktop-custom-chrome body{background:var(--bg)}html.desktop-custom-chrome .app{padding:0 20px 16px}html.desktop-custom-chrome .app--preview-first .header{margin-bottom:10px}html.desktop-custom-chrome .header{display:flex;align-items:center;justify-content:flex-start;gap:0;margin:0 -20px;padding:0 16px 0 0;min-height:var(--desktop-titlebar-height);flex-wrap:nowrap;overflow:visible;-webkit-app-region:drag;-webkit-user-select:none;user-select:none;background:var(--bg);border-bottom:1px solid color-mix(in srgb,var(--border) 65%,transparent)}html.desktop-custom-chrome .desktop-traffic-lights{display:flex;align-items:center;gap:8px;flex-shrink:0;width:calc(var(--desktop-traffic-lights-width) + 16px);padding:0 0 0 16px;height:var(--desktop-titlebar-height);-webkit-app-region:no-drag}html.desktop-custom-chrome .traffic-light{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;border-radius:50%;border:none;padding:0;cursor:default;flex-shrink:0;opacity:1;transition:opacity .12s ease;position:relative;overflow:hidden}html.desktop-custom-chrome .desktop-traffic-lights:hover .traffic-light{cursor:pointer}html.desktop-custom-chrome .traffic-light-glyph{opacity:0;transform:scale(.85);transition:opacity .12s ease,transform .12s ease;pointer-events:none}html.desktop-custom-chrome .desktop-traffic-lights:hover .traffic-light-glyph{opacity:1;transform:scale(1)}html.desktop-custom-chrome .traffic-light-glyph--close{font-size:10px;line-height:1;font-weight:700;color:#46100ab8;transform:translateY(-.5px)}html.desktop-custom-chrome .traffic-light-glyph--close:before{content:"×"}html.desktop-custom-chrome .traffic-light-glyph--minimize{display:block;width:8px;height:1.5px;border-radius:1px;background:#5a3a06b8}html.desktop-custom-chrome .traffic-light-glyph--maximize{display:block;font-size:9px;line-height:1;font-weight:700;color:#083a0eb8}html.desktop-custom-chrome .traffic-light-glyph--maximize:before{content:"+"}html.desktop-custom-chrome .traffic-light--close{background:#ff5f57}html.desktop-custom-chrome .traffic-light--minimize{background:#febc2e}html.desktop-custom-chrome .traffic-light--maximize{background:#28c840}html.desktop-custom-chrome .header-brand{display:flex;align-items:center;gap:8px;min-width:0;flex:1;-webkit-app-region:drag}html.desktop-custom-chrome .header-brand:before{content:"";width:3px;height:14px;border-radius:2px;background:var(--accent);flex-shrink:0;opacity:.85}html.desktop-custom-chrome .header h1{margin:0;font-size:12px;font-weight:600;line-height:1;letter-spacing:.03em;flex-shrink:0}html.desktop-custom-chrome .header .subtitle{display:none}html.desktop-custom-chrome .header-actions,html.desktop-custom-chrome .header button:not(.traffic-light),html.desktop-custom-chrome .header a,html.desktop-custom-chrome .header select,html.desktop-custom-chrome .header .github-link,html.desktop-custom-chrome .header .lang-select-wrap,html.desktop-custom-chrome .header .header-menu-select,html.desktop-custom-chrome .header .header-toolbar-select-wrap{-webkit-app-region:no-drag}html.desktop-custom-chrome .header-actions{flex-shrink:0;margin-left:auto;gap:0;overflow:visible}html.desktop-custom-chrome .header-actions--compact .header-actions-group{padding:1px;gap:0;border-radius:8px;background:color-mix(in srgb,var(--surface2) 88%,transparent);border:1px solid color-mix(in srgb,var(--border) 80%,transparent);overflow:visible}html.desktop-custom-chrome .header-actions--compact .header-actions-divider{height:14px}html.desktop-custom-chrome .header-actions--compact .header-toolbar-control,html.desktop-custom-chrome .header-actions--compact .github-link{min-height:26px;padding:4px 8px}html.desktop-custom-chrome .workbench.panel{margin-top:10px}.app{min-height:100vh;padding:20px 24px 32px}.app--preview-first{display:flex;flex-direction:column;padding-bottom:16px}.app--preview-first .header{margin-bottom:12px;flex-shrink:0}.toolbelt{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;flex-shrink:0}.toolbelt-btn{padding:6px 12px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:13px;cursor:pointer}.toolbelt-btn:hover,.toolbelt-btn.active{border-color:var(--accent)}.toolbelt-btn.active{background:color-mix(in srgb,var(--accent) 12%,var(--surface2))}.toolbelt-meta{margin-left:auto;font-size:12px;color:var(--muted);white-space:nowrap}.workbench.panel{padding:0;overflow:hidden}.workbench{margin-bottom:12px;flex-shrink:0;display:flex;flex-direction:column;min-height:0}.workbench.workbench--cmd-ref-open{overflow:visible}.workbench-header{display:flex;align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;padding:10px 12px;min-height:44px;box-sizing:border-box;width:100%;text-align:left;cursor:pointer;border:none;font:inherit;color:inherit;background:var(--surface2);transition:background var(--motion-fast)}.workbench:not(.workbench--collapsed-shell) .workbench-header{border-bottom:1px solid var(--border);border-radius:10px 10px 0 0}.workbench--collapsed-shell .workbench-header{border-radius:10px}.workbench-header-btn:hover{background:color-mix(in srgb,var(--accent) 6%,var(--surface2))}.disclosure-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;color:var(--muted);line-height:1;transition:transform var(--motion-fast),color var(--motion-fast)}.disclosure-toggle-icon{display:block;flex-shrink:0;width:var(--icon-size-disclosure);height:var(--icon-size-disclosure)}.disclosure-toggle--open{transform:rotate(180deg)}.workbench-header-btn:hover .disclosure-toggle,.cmd-ref-trigger:hover .disclosure-toggle,.cmd-ref-trigger.active .disclosure-toggle{color:var(--text)}.workbench-header-meta--end{margin-left:auto}.workbench-header-title{font-size:13px;font-weight:600}.workbench-header-meta{font-size:12px;color:var(--muted)}.workbench-split{display:flex;flex-direction:row;align-items:stretch;min-height:580px}.workbench-sim{flex:0 0 38%;width:38%;min-width:260px;max-width:38%;padding:10px 12px;border-right:1px solid var(--border);overflow:hidden;min-height:0;display:flex;flex-direction:column}.workbench-sim>.printer-sim-panel{flex:1 1 0;min-height:0;overflow:hidden}.workbench-right{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column}.workbench-tabs{display:flex;gap:4px;padding:8px 12px 0;flex-shrink:0}.workbench-tab{padding:6px 12px;border:1px solid transparent;border-bottom:none;border-radius:8px 8px 0 0;background:transparent;color:var(--muted);font-size:12px;font-weight:500;cursor:pointer;transition:color var(--motion-fast),background var(--motion-fast),border-color var(--motion-fast)}.workbench-tab.active{color:var(--text);background:var(--surface);border-color:var(--border)}.workbench-tab:hover:not(.active){color:var(--text)}.workbench-right-body{flex:1 1 auto;min-height:0;overflow:visible;padding:10px 12px 12px;border-top:1px solid var(--border);display:flex;flex-direction:column}.workbench.workbench--cmd-ref-open .workbench-right-body{overflow:visible}.workbench-cmd-ref{flex-shrink:0;border-top:1px solid var(--border);padding:10px 12px 14px;background:var(--surface);max-height:none;overflow:visible}.workbench.workbench--cmd-ref-open .workbench-cmd-ref{overflow-y:auto;max-height:min(480px,50vh)}.cmd-ref-trigger{display:flex;align-items:center;width:100%;gap:10px;margin-top:6px;padding:8px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:12px;font-weight:600;cursor:pointer;text-align:left;transition:border-color var(--motion-fast),background var(--motion-fast)}.cmd-ref-trigger-title{flex:1;min-width:0}.cmd-ref-trigger:hover,.cmd-ref-trigger.active{border-color:var(--accent)}.cmd-ref-trigger.active{background:color-mix(in srgb,var(--accent) 10%,var(--surface2))}.cmd-ref--embedded .cmd-ref-body{padding-top:0}.workbench-debug .debug-top-hint{margin:0 0 8px;font-size:12px;color:var(--muted)}.workbench-debug.cmd-ref-open{display:flex;flex-direction:column;min-height:280px}.history-sidebar-head-actions,.sim-events-head-actions{display:flex;align-items:center;gap:8px}.btn-ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn-ghost:hover:not(:disabled){color:var(--text);border-color:var(--border);background:var(--surface2)}.printer-sim-panel--compact{gap:8px;flex:1 1 0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.printer-sim-panel--compact .printer-sim-header h3{font-size:13px}.printer-sim-panel--compact .sim-scenario-btn{padding:3px 7px;font-size:10px}.printer-sim-panel--compact .sim-live-state-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.printer-sim-panel--compact .sim-live-cell{padding:4px 6px}.printer-sim-panel--compact .sim-events.sim-events--primary{flex:1 1 0;min-height:0;max-height:none;overflow:hidden}.printer-sim-panel--compact .sim-events-head,.printer-sim-panel--compact .sim-event-tabs{flex-shrink:0}.printer-sim-panel--compact .sim-events.sim-events--primary .sim-events-list{flex:1 1 0;min-height:0;max-height:none;overflow-y:auto}.printer-sim-panel--compact .cash-drawer-unit{flex-shrink:0}.printer-sim-panel--compact .printer-sim-field{gap:4px}.cash-drawer-row{display:flex;align-items:center;gap:10px;flex-shrink:0;padding:6px 8px;border-radius:8px;border:1px solid var(--border);background:var(--surface2)}.cash-drawer-row-label{font-size:11px;font-weight:600;color:var(--muted);flex-shrink:0}.cash-drawer-row-status{font-size:11px;margin-left:auto}.drawer-switch{position:relative;display:inline-flex;align-items:center;width:36px;height:20px;flex-shrink:0;cursor:pointer}.drawer-switch input{position:absolute;opacity:0;width:0;height:0}.drawer-switch-track{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:999px;background:var(--border);transition:background var(--motion-fast)}.drawer-switch-track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--text);transition:transform .15s ease}.drawer-switch input:checked+.drawer-switch-track{background:color-mix(in srgb,var(--ok) 55%,var(--border))}.drawer-switch input:checked+.drawer-switch-track:after{transform:translate(16px);background:var(--ok)}.drawer-switch input:disabled+.drawer-switch-track{opacity:.5;cursor:not-allowed}.sim-event-duration{font-variant-numeric:tabular-nums;color:var(--warn);font-size:10px;white-space:nowrap}@media(max-width:900px){.workbench-split{flex-direction:column}.workbench-sim{flex:0 0 auto;width:100%;max-width:none;border-right:none;border-bottom:1px solid var(--border);max-height:min(360px,40vh)}}.toolbelt-panel{margin-bottom:12px;flex-shrink:0}.toolbelt-panel:not(.debug-top-panel){max-height:min(380px,42vh);overflow-y:auto}.toolbelt-panel.debug-top-panel{padding:12px 14px 14px;overflow:visible}.preview-stage{display:grid;grid-template-columns:1fr minmax(260px,320px);gap:12px;flex:1;min-height:0;align-items:stretch}.preview-primary{flex:1;min-height:calc(100vh - 280px);min-width:0;display:flex;flex-direction:column}.history-sidebar{display:flex;flex-direction:column;min-height:calc(100vh - 280px);max-height:calc(100vh - 280px);min-width:0}.history-sidebar-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:10px;flex-shrink:0}.history-sidebar h2{margin:0;font-size:14px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.history-count{font-size:12px;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.history-sidebar .history-list{flex:1;overflow-y:auto;min-height:0}.history-sidebar .empty{flex:1;display:flex;flex-direction:column;justify-content:center}.preview-primary .preview-wrap{flex:1;display:flex;flex-direction:column;min-height:0}.preview-primary .preview-mount{flex:1;overflow:auto}@media(max-width:900px){.preview-stage{grid-template-columns:1fr}.preview-primary,.history-sidebar{min-height:auto;max-height:none}.history-sidebar{max-height:360px}}@media(max-width:768px){.toolbelt-meta{width:100%;margin-left:0}.preview-primary{min-height:280px}}.header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap}.header h1{margin:0;font-size:24px;font-weight:600}.subtitle{margin:4px 0 0;color:var(--muted);font-size:14px}.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.header-actions-group{display:inline-flex;align-items:stretch;gap:0;padding:3px;border-radius:10px;border:1px solid var(--border);background:var(--surface2)}.header-actions-divider{align-self:center;width:1px;height:18px;background:var(--border);flex-shrink:0}.header-toolbar-select-wrap{position:relative;display:inline-flex;align-items:center;min-height:30px}.header-toolbar-select-label{font-size:12px;line-height:1.2;color:var(--text);padding:5px 22px 5px 2px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-repeat:no-repeat;background-position:calc(100% - 10px) 55%,calc(100% - 6px) 55%;background-size:4px 4px,4px 4px;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap}.header-toolbar-select-native{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;border:none;opacity:0;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}.header-menu-select{position:relative;display:inline-flex;align-items:center}.header-menu-select-trigger{display:inline-flex;align-items:center;gap:4px;margin:0;padding:5px 6px 5px 2px;border:none;background:transparent;color:var(--text);font:inherit;font-size:12px;line-height:1.2;cursor:pointer;border-radius:6px;white-space:nowrap}.header-menu-select-trigger:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.header-menu-select-chevron{font-size:10px;color:var(--muted)}.header-menu-select-popover{position:absolute;top:calc(100% + 4px);left:0;z-index:200;min-width:140px;max-height:280px;overflow-y:auto;margin:0;padding:4px;list-style:none;border-radius:8px;border:1px solid var(--border);background:var(--surface);box-shadow:0 8px 24px #00000059}.header-menu-select-popover--portal{position:fixed;top:auto;left:auto}.header-menu-select-option{display:block;width:100%;padding:6px 10px;border:none;border-radius:4px;background:transparent;color:var(--text);font:inherit;font-size:12px;text-align:left;cursor:pointer}.header-menu-select-option:hover{background:var(--surface2)}.header-menu-select-option.active{background:color-mix(in srgb,var(--accent) 12%,var(--surface2));color:var(--accent)}.header-toolbar-control{margin:0;padding:0 4px 0 6px;gap:4px}.header-actions-group .github-link,.header-actions-group .header-toolbar-control{border:none;background:transparent;border-radius:7px;min-height:30px}.header-actions-group .github-link{display:inline-flex;align-items:center;justify-content:center;padding:0 8px}.header-actions-group .github-link:hover,.header-actions-group .header-toolbar-control:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.version-badge{display:inline-flex;align-items:center;min-height:36px;padding:0 10px;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--muted);border-radius:10px;border:1px solid var(--border);background:var(--surface2);letter-spacing:.03em}.github-link--icon{padding:6px 8px}.github-link{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--muted);font-size:13px;text-decoration:none;transition:color .15s,border-color .15s}.github-link:hover{color:var(--text);border-color:var(--accent)}.github-link-icon{flex-shrink:0;width:var(--icon-size-header);height:var(--icon-size-header)}.lang-select-wrap{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);cursor:pointer}.lang-globe-icon{flex-shrink:0;width:var(--icon-size-header);height:var(--icon-size-header);color:var(--muted)}.lang-select-wrap:hover .lang-globe-icon{color:var(--text)}.lang-select{padding:6px 28px 6px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:13px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 14px) 55%,calc(100% - 9px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.lang-select:hover,.lang-select:focus{border-color:var(--accent);outline:none}.field-inline{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.field-inline input{width:220px;padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text)}button{padding:6px 12px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer}button:hover{border-color:var(--accent)}.badge{padding:4px 10px;border-radius:999px;font-size:12px;border:1px solid var(--border)}.badge.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--border))}.badge.err{color:var(--err);border-color:color-mix(in srgb,var(--err) 40%,var(--border))}.top-section{margin-bottom:16px}.top-bar{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.top-panel{min-width:0}.debug-top-panel{padding:14px 16px 16px;border-left:3px solid color-mix(in srgb,var(--accent) 50%,var(--border));background:color-mix(in srgb,var(--surface) 92%,var(--accent) 8%)}.debug-top-panel h2{margin:0 0 4px;font-size:1.02rem}.debug-top-hint{margin:0 0 12px;font-size:13px;color:var(--muted)}.debug-panel-split{display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(420px,1fr);gap:0 20px;align-items:start}.debug-panel-split.cmd-ref-open{align-items:stretch}.debug-panel-main{min-width:0}.debug-panel-divider{width:1px;align-self:stretch;background:var(--border)}.debug-panel-split.cmd-ref-open .debug-panel-divider{min-height:280px}.debug-panel-sim{min-width:0;display:flex;flex-direction:column}.debug-panel-split.cmd-ref-open .debug-panel-sim{min-height:280px}.debug-panel-split.cmd-ref-open .debug-panel-sim .printer-sim-panel{flex:1;min-height:0;height:100%}@media(max-width:900px){.debug-panel-split{grid-template-columns:1fr;gap:16px 0}.debug-panel-divider{width:100%;height:1px;min-height:0}}.main-split{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:16px;align-items:start}.history-panel{max-height:calc(100vh - 220px);display:flex;flex-direction:column;min-height:400px}.history-panel .history-list{flex:1;overflow-y:auto;max-height:calc(100vh - 280px)}.preview-panel{min-height:calc(100vh - 220px)}.preview-panel .preview-mount{overflow:visible}.network-panel-compact .network-hint{font-size:11px}.network-setup{padding:10px 12px;margin-bottom:10px;border-radius:8px;border:1px solid color-mix(in srgb,var(--warn) 35%,var(--border));background:color-mix(in srgb,var(--warn) 6%,var(--surface2))}.network-setup-title{font-size:13px;font-weight:600;margin-bottom:4px}.network-setup-hint{margin:0 0 8px;font-size:12px;color:var(--muted);line-height:1.45}.network-setup-row{display:flex;gap:8px}.network-setup-row input{flex:1;min-width:0;padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.network-desktop{padding:10px 12px;margin-bottom:10px;border-radius:8px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));background:color-mix(in srgb,var(--accent) 6%,var(--surface2))}.network-desktop-toggle{display:flex;align-items:center;gap:8px;margin:8px 0 10px;font-size:13px;cursor:pointer}.network-desktop .network-setup-row{align-items:end;flex-wrap:wrap;margin-bottom:8px}.network-lan{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;margin-bottom:8px;border-radius:8px;background:color-mix(in srgb,var(--ok) 8%,var(--surface2));border:1px solid color-mix(in srgb,var(--ok) 30%,var(--border))}.network-lan-label{font-size:12px;color:var(--muted)}.network-lan-link{font-size:12px;word-break:break-all;color:var(--accent);text-decoration:none}.network-lan-link:hover{text-decoration:underline}.hub-list{max-height:140px;overflow-y:auto}@media(max-width:900px){.top-bar,.main-split{grid-template-columns:1fr}.history-panel,.preview-panel{max-height:none}}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.upload-panel{display:flex;flex-direction:column;gap:10px}.upload-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.upload-row select{padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.upload-btn{display:inline-block;padding:6px 12px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);cursor:pointer;font-size:13px}.upload-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;padding:24px 16px;border-radius:8px;border:1px dashed var(--border);background:var(--surface2);cursor:pointer;text-align:center;transition:border-color var(--motion-fast),background var(--motion-fast)}.upload-dropzone:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface2))}.upload-dropzone input{display:none}.upload-dropzone-title{font-size:13px;font-weight:600;color:var(--text)}.upload-dropzone-hint{font-size:12px;color:var(--muted)}.upload-btn input{display:none}.upload-msg{font-size:12px;color:var(--muted)}.upload-msg.ok{color:var(--ok)}.upload-msg.err{color:var(--err)}.btn-sm{padding:4px 10px;font-size:12px}.btn-accent{border-color:color-mix(in srgb,var(--accent) 60%,var(--border));background:color-mix(in srgb,var(--accent) 12%,var(--surface2));color:var(--text)}.btn-accent:hover:not(:disabled){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 22%,var(--surface2))}.sample-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px}.export-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:var(--space-2) 0 var(--space-3)}.preview-toolbar{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3)}.preview-toolbar-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.segmented-toolbar{display:inline-flex;flex-wrap:wrap;gap:2px;padding:2px;border-radius:8px;border:1px solid var(--border);background:var(--surface2)}.segmented-btn{padding:4px 10px;border:none;border-radius:6px;background:transparent;color:var(--muted);font-size:11px;cursor:pointer;transition:color var(--motion-fast),background var(--motion-fast)}.segmented-btn:hover:not(:disabled){color:var(--text);background:color-mix(in srgb,var(--accent) 8%,transparent)}.segmented-btn.active{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.segmented-btn--icon,.segmented-btn--icon-text{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;padding:4px 6px}.segmented-btn--icon-text{gap:4px;padding:4px 8px}.segmented-btn--icon svg,.segmented-btn--icon-text svg{flex-shrink:0;width:var(--icon-size-toolbar);height:var(--icon-size-toolbar)}.segmented-btn:disabled{opacity:.45;cursor:not-allowed}.font-cycle{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-right:8px;margin-right:4px;border-right:1px solid var(--border)}.font-cycle-label{font-size:12px;color:var(--muted);min-width:10rem}.export-msg{font-size:12px;color:var(--ok)}.network-row-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.raw-print-panel{display:flex;flex-direction:column;gap:var(--space-2);min-height:0;flex:1}.raw-editor-stack{display:flex;flex-direction:column;gap:var(--space-2);width:100%;align-self:stretch}.raw-textarea--grow{width:100%;min-height:120px;overflow:hidden;resize:none;field-sizing:content}.raw-preview-btn{align-self:flex-start}.raw-preview-btn--primary{flex:1;align-self:stretch;padding:8px 16px;font-size:13px;font-weight:600;border-radius:6px;border:1px solid var(--accent);background:var(--accent);color:var(--surface);cursor:pointer;transition:opacity var(--motion-fast),background var(--motion-fast)}.raw-preview-btn--primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 88%,white)}.raw-preview-btn--primary:disabled{opacity:.45;cursor:not-allowed}.raw-print-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.raw-print-top .raw-local-hint{margin:0;flex:1;min-width:160px}.raw-action-row{display:flex;align-items:stretch;gap:8px;width:100%}.raw-clear-btn{flex-shrink:0;white-space:nowrap;align-self:stretch;padding:8px 16px;font-size:13px;font-weight:500}.raw-clear-btn--armed{border-color:var(--err);background:var(--err);color:var(--surface);font-weight:600}.raw-clear-btn--armed:hover:not(:disabled){border-color:var(--err);background:color-mix(in srgb,var(--err) 88%,white);color:var(--surface)}.sample-load-btn{flex-shrink:0;white-space:nowrap}.sample-menu{position:relative;flex-shrink:0}.sample-menu-trigger{list-style:none;cursor:pointer;padding:5px 10px;font-size:12px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text);-webkit-user-select:none;user-select:none}.sample-menu-trigger::-webkit-details-marker{display:none}.sample-menu-trigger:after{content:" ▾";color:var(--muted)}.sample-menu[open] .sample-menu-trigger{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface2))}.sample-menu-panel{position:absolute;top:calc(100% + 4px);right:0;z-index:20;min-width:180px;padding:4px;border-radius:8px;border:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;gap:2px}.sample-menu-panel button{padding:6px 10px;font-size:12px;text-align:left;border:none;border-radius:4px;background:transparent;color:var(--text);cursor:pointer}.sample-menu-panel button:hover:not(:disabled){background:var(--surface2)}.sample-menu-panel button:disabled{opacity:.45;cursor:not-allowed}.raw-cmd-ref-block{width:100%;display:flex;flex-direction:column;gap:var(--space-2)}.raw-cmd-ref{width:100%}.raw-cmd-ref--open{padding:var(--space-2);border:1px solid var(--border);border-radius:8px;background:var(--surface2);overflow:visible;animation:cmd-ref-enter var(--motion-base) both}@keyframes cmd-ref-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.raw-tab{padding:4px 10px;font-size:12px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;transition:color var(--motion-fast),border-color var(--motion-fast),background var(--motion-fast)}.raw-tabs{display:flex;flex-wrap:wrap;gap:4px}.raw-format-hint{margin:0;font-size:12px;line-height:1.5;color:var(--muted)}.raw-tab.active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.raw-textarea{width:100%;padding:8px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;resize:vertical;min-height:80px}.cmd-ref{margin-top:4px}.cmd-ref-root,.cmd-ref-group{border:1px solid var(--border);border-radius:8px;background:var(--bg)}.cmd-ref-root>summary,.cmd-ref-group>summary{display:flex;align-items:center;gap:6px;padding:8px 10px;font-size:12px;font-weight:600;color:var(--text);cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.cmd-ref-root>summary::-webkit-details-marker,.cmd-ref-group>summary::-webkit-details-marker{display:none}.cmd-ref-root>summary:before,.cmd-ref-group>summary:before{content:"";display:inline-block;width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;opacity:.55;flex-shrink:0;transform:rotate(-45deg);transition:transform .15s ease;margin-top:-1px}.cmd-ref-root[open]>summary:before,.cmd-ref-group[open]>summary:before{transform:rotate(45deg);margin-top:1px}.cmd-ref-body{padding:0 8px 8px;display:flex;flex-direction:column;gap:6px}.cmd-ref-body,.cmd-ref-table,.cmd-ref-table th,.cmd-ref-table td,.cmd-ref-syntax,.cmd-ref-table code{user-select:text;-webkit-user-select:text}.cmd-ref-group>summary{font-weight:500;color:var(--muted);border-top:1px solid var(--border);-webkit-user-select:none;user-select:none}.cmd-ref-table{width:100%;border-collapse:collapse;font-size:11px}.cmd-ref-table th{text-align:left;padding:4px 6px;color:var(--muted);font-weight:600;border-bottom:1px solid var(--border)}.cmd-ref-table td{padding:4px 6px;vertical-align:top;border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent)}.cmd-ref-syntax{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:var(--muted);word-break:break-all}.cmd-ref-table code{font-size:10px}.cmd-ref-dialect-note{margin:0 0 8px;padding:8px 10px;font-size:11px;line-height:1.45;color:var(--muted);border-radius:6px;border:1px solid var(--border);background:var(--surface2)}.cmd-ref-dialect{display:inline-block;padding:1px 6px;border-radius:4px;font-size:9px;font-weight:600;white-space:nowrap}.cmd-ref-dialect--standard{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent)}.cmd-ref-dialect--star{background:color-mix(in srgb,#7c5cff 22%,transparent);color:#9b87ff}.cmd-ref-dialect--common{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.hub-panel{margin-bottom:16px}.hub-selector{display:flex;flex-direction:column;gap:10px}.hub-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.hub-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.hub-item{width:100%;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:2px 8px;padding:10px 12px;border-radius:8px;border:1px solid transparent;background:var(--surface2);color:var(--text);text-align:left;cursor:pointer}.hub-item.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface2))}.hub-name{font-size:14px;font-weight:500;grid-column:1}.hub-meta{font-size:12px;color:var(--muted);grid-column:1}.hub-item .pill{grid-column:2;grid-row:1 / span 2;align-self:center}.hub-manual{display:flex;gap:8px}.hub-manual input{flex:1;padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.link-btn{align-self:flex-start;background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px;padding:0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px}.panel-wide{grid-column:1 / -1}.panel h2{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.network-panel{display:flex;flex-direction:column;gap:8px}.network-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;background:var(--surface2);border-radius:8px;border:1px solid transparent}.network-row.highlight{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.network-role{font-size:14px;font-weight:500}.network-meta{font-size:12px;color:var(--muted);margin-top:2px}.network-hint,.network-foot{font-size:12px;color:var(--muted);line-height:1.5}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;background:var(--bg);padding:1px 5px;border-radius:4px}.pill{font-size:11px;padding:3px 8px;border-radius:999px;border:1px solid var(--border);white-space:nowrap}.pill.ok{color:var(--ok)}.pill.warn{color:var(--warn)}.empty{font-size:13px;color:var(--muted);padding:12px 0}.printer-sim-panel{margin-top:0;padding-top:0;border-top:none;display:flex;flex-direction:column;gap:14px;min-height:0}.printer-sim-header,.printer-sim-scenarios,.printer-sim-field,.cash-drawer-unit,.sim-error{flex-shrink:0}.sim-events--primary{flex:1 1 0;min-height:0;overflow:hidden;display:flex;flex-direction:column}.sim-events:not(.sim-events--primary){flex:0 0 auto;max-height:200px;display:flex;flex-direction:column;min-height:0;overflow:hidden}.sim-events--primary .sim-events-list{flex:1 1 0;min-height:0;max-height:none;overflow-y:auto}.sim-events-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;flex:1;min-height:0;max-height:168px;overflow-y:auto}.debug-panel-split.cmd-ref-open .sim-events{flex:1 1 auto;max-height:none;min-height:80px}.printer-sim-header h3{margin:0;font-size:15px;font-weight:600}.printer-sim-hint{display:block;margin-top:4px;font-size:12px;color:var(--muted);line-height:1.4}.printer-sim-offline{display:block;margin-top:6px;font-size:11px;color:var(--warn)}.printer-sim-scenarios{display:flex;flex-direction:column;gap:8px}.printer-sim-scenario-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.printer-sim-field-label{font-size:12px;font-weight:500;color:var(--muted)}.status-led{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--muted)}.sim-status-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500}.sim-status-badge--green .status-led{background:var(--ok)}.sim-status-badge--yellow .status-led{background:var(--warn)}.sim-status-badge--red .status-led{background:var(--err)}.sim-status-badge--green{color:var(--ok)}.sim-status-badge--yellow{color:var(--warn)}.sim-status-badge--red{color:var(--err)}.sim-scenario-group{display:flex;flex-wrap:wrap;gap:6px}.sim-scenario-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:12px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;transition:border-color var(--motion-fast),background var(--motion-fast),color var(--motion-fast)}.sim-scenario-btn:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.sim-scenario-btn.active{font-weight:500}.sim-scenario-btn.active[data-signal=green]{border-color:color-mix(in srgb,var(--ok) 55%,var(--border));color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--surface2))}.sim-scenario-btn.active[data-signal=green] .status-led{background:var(--ok)}.sim-scenario-btn.active[data-signal=yellow]{border-color:color-mix(in srgb,var(--warn) 55%,var(--border));color:var(--warn);background:color-mix(in srgb,var(--warn) 10%,var(--surface2))}.sim-scenario-btn.active[data-signal=yellow] .status-led{background:var(--warn)}.sim-scenario-btn.active[data-signal=red]{border-color:color-mix(in srgb,var(--err) 55%,var(--border));color:var(--err);background:color-mix(in srgb,var(--err) 10%,var(--surface2))}.sim-scenario-btn.active[data-signal=red] .status-led{background:var(--err)}.sim-scenario-btn:disabled{opacity:.45;cursor:not-allowed}.raw-local-hint{margin:0;font-size:12px;color:var(--muted);line-height:1.4}.printer-sim-toggle{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.printer-sim-toggle input{accent-color:var(--accent)}.sim-live-state,.sim-tcp-queue{flex-shrink:0}.sim-live-state-title,.sim-tcp-queue-title{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.sim-live-state-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.sim-live-cell{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:6px;background:var(--surface2);border:1px solid transparent}.sim-live-cell.ok{border-color:color-mix(in srgb,var(--ok) 35%,transparent)}.sim-live-cell.fault{border-color:color-mix(in srgb,var(--err) 45%,transparent)}.sim-live-cell.warn{border-color:color-mix(in srgb,var(--warn) 45%,transparent)}.sim-live-label{font-size:10px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.sim-live-value{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.sim-live-cell.ok .sim-live-value{color:var(--ok)}.sim-live-cell.fault .sim-live-value{color:var(--err)}.sim-live-cell.warn .sim-live-value{color:var(--warn)}.sim-tcp-queue-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.sim-queue-item{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;font-size:11px;padding:6px 8px;border-radius:6px;background:var(--surface2)}.sim-queue-state{font-weight:600;color:var(--accent)}.sim-queue-item--receiving .sim-queue-state{color:var(--warn)}.sim-queue-item--processing .sim-queue-state{color:var(--ok)}.sim-queue-ip{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sim-queue-bytes{font-variant-numeric:tabular-nums;color:var(--muted)}.sim-event-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px;flex-shrink:0}.sim-event-tab{padding:3px 8px;font-size:11px;font-weight:500;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);cursor:pointer}.sim-event-tab.active{background:var(--surface2);color:var(--text);border-color:var(--accent)}.sim-event-tab:hover:not(.active){color:var(--text);border-color:var(--muted)}.printer-sim-field{display:flex;flex-direction:column;gap:6px;font-size:12px}.printer-sim-field input[type=range]{width:100%}.printer-sim-delay-value{font-size:11px;color:var(--muted)}.cash-drawer-unit{display:flex;flex-direction:row;align-items:center;gap:8px;padding:6px 8px;background:var(--surface2);border-radius:8px;border:1px solid var(--border)}.cash-drawer-visual{display:flex;justify-content:center;padding:0;flex-shrink:0}.cash-drawer-printer{width:108px;position:relative}.cash-drawer-printer-face{height:12px;margin:0 8px;border-radius:3px 3px 0 0;border:1px solid var(--border);border-bottom:none;background:color-mix(in srgb,var(--surface) 80%,var(--border))}.cash-drawer-assembly{position:relative;height:32px;margin:0 4px;overflow:visible}.cash-drawer-housing{position:relative;z-index:1;height:12px;border-radius:0 0 3px 3px;border:1px solid var(--border);background:transparent;overflow:hidden;pointer-events:none}.cash-drawer-cavity{position:absolute;top:2px;right:6px;bottom:0;left:6px;border-radius:2px 2px 0 0;background:color-mix(in srgb,var(--bg) 70%,var(--text));border:1px solid color-mix(in srgb,var(--border) 80%,var(--text));border-bottom:none}.cash-drawer-tray{position:absolute;z-index:2;left:8px;right:8px;top:3px;display:flex;flex-direction:column;transform:translateY(6px);transition:transform .38s cubic-bezier(.22,1,.36,1)}.cash-drawer-tray.open{transform:translateY(9px)}.cash-drawer-tray-body{height:0;overflow:hidden;opacity:0;border-radius:2px 2px 0 0;border:1px solid transparent;border-bottom:none;background:color-mix(in srgb,var(--surface2) 92%,var(--text));transition:height .38s cubic-bezier(.22,1,.36,1),opacity .22s ease,border-color .22s ease}.cash-drawer-tray.open .cash-drawer-tray-body{height:16px;opacity:1;border-color:color-mix(in srgb,var(--border) 80%,var(--text))}.cash-drawer-tray-lip{height:8px;border-radius:0 0 2px 2px;border:1px solid color-mix(in srgb,var(--border) 70%,var(--text));background:color-mix(in srgb,var(--surface2) 85%,var(--text));display:flex;align-items:center;justify-content:center}.cash-drawer-handle{width:18px;height:3px;border-radius:2px;background:color-mix(in srgb,var(--muted) 55%,var(--surface));border:1px solid color-mix(in srgb,var(--border) 60%,var(--text))}.cash-drawer-tray-inner{display:flex;align-items:flex-end;gap:3px;padding:3px 4px 2px;height:16px}.cash-drawer-tray:not(.open) .cash-drawer-tray-inner{visibility:hidden}.cash-drawer-bill{flex:1;height:10px;max-width:16px;border-radius:1px;border:1px solid color-mix(in srgb,var(--ok) 35%,var(--border));background:color-mix(in srgb,var(--ok) 18%,var(--surface2))}.cash-drawer-coin{width:7px;height:7px;border-radius:50%;border:1px solid color-mix(in srgb,var(--warn) 40%,var(--border));background:color-mix(in srgb,var(--warn) 22%,var(--surface2));margin-bottom:1px}.cash-drawer-unit.open .cash-drawer-housing{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.cash-drawer-unit.open .cash-drawer-tray-lip{border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}.cash-drawer-meta{display:flex;flex-direction:row;align-items:center;gap:8px;flex:1;min-width:0;flex-wrap:wrap}.cash-drawer-label{font-size:12px;font-weight:500}.cash-drawer-actions{display:flex;gap:4px;flex-shrink:0}.sim-events-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px;flex-shrink:0}.sim-events-title{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.sim-events-count{font-size:12px;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.sim-events-empty{font-size:12px;color:var(--muted);padding:8px 0}.debug-panel-split.cmd-ref-open .sim-events-list{max-height:none}.sim-event{display:grid;grid-template-columns:auto auto 1fr auto auto;gap:8px;align-items:baseline;font-size:11px;padding:6px 8px;border-radius:6px;background:var(--surface2)}.sim-event-poll-byte{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;font-weight:600;color:var(--warn);white-space:nowrap}.sim-event-poll-n{margin-left:4px;font-weight:400;color:var(--muted)}.preview-duration{font-variant-numeric:tabular-nums;color:var(--warn)}.sim-event-time{color:var(--muted);font-variant-numeric:tabular-nums}.sim-event-kind{font-weight:500;color:var(--accent)}.sim-event-detail{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sim-event-ip{color:var(--muted)}.sim-error{margin:0;font-size:12px;color:var(--warn)}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.history-item{width:100%;padding:10px 12px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text);text-align:left;font-size:12px;cursor:pointer;transition:background var(--motion-fast),border-color var(--motion-fast)}.history-item--grid{display:block}.history-grid{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:4px 12px;align-items:center}.history-grid-primary{display:flex;align-items:center;gap:8px;min-width:0}.history-grid-primary .history-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-grid-meta{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}.history-duration{font-variant-numeric:tabular-nums;color:var(--warn);font-size:11px;font-weight:600;text-align:right}.history-duration--empty{visibility:hidden}.history-time{font-size:11px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.history-title{font-size:13px;font-weight:500;color:var(--text)}.empty-hint{display:block;margin-top:6px;font-size:12px;opacity:.8}.history-item:hover,.history-item.active{background:var(--surface2);border-color:var(--border)}.history-item.active{border-color:var(--accent)}.history-id{font-family:ui-monospace,monospace}.history-ip,.history-size{color:var(--muted)}.tag{display:inline-block;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:600;text-align:center}.tag.escpos{background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent)}.tag.tspl{background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}.tag.star{background:color-mix(in srgb,#7c5cff 22%,transparent);color:#9b87ff}.preview-wrap{display:flex;flex-direction:column;gap:12px}.preview-wrap>.preview-toolbar,.preview-wrap>.parse-warnings,.preview-wrap>.inspector-panel,.preview-wrap>.inspector-link-hint{flex-shrink:0}.disclosure-block>summary{display:flex;align-items:center;gap:6px;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.disclosure-block>summary::-webkit-details-marker{display:none}.disclosure-block>summary:before{content:"";display:inline-block;width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;opacity:.7;flex-shrink:0;transform:rotate(-45deg);transition:transform .15s ease;margin-top:-1px}.disclosure-block[open]>summary:before{transform:rotate(45deg);margin-top:1px}.parse-warnings{font-size:12px;color:var(--warn);background:color-mix(in srgb,var(--warn) 8%,var(--surface2));border:1px solid color-mix(in srgb,var(--warn) 25%,var(--border));border-radius:6px;padding:8px 10px}.parse-warnings>summary{color:inherit}.parse-warnings ul{margin:8px 0 0;padding-left:18px;color:var(--muted)}.inspector-panel{font-size:12px;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:10px 12px;flex-shrink:0}.preview-primary .preview-wrap>.inspector-panel{flex-shrink:0}.inspector-panel>summary{font-weight:600;color:var(--text)}.inspector-stats{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0;color:var(--muted)}.inspector-stat-warn{color:var(--warn)}.inspector-warnings{margin:0 0 8px;padding-left:18px;color:var(--warn)}.inspector-toolbar{margin-bottom:8px}.segmented-toolbar--compact .segmented-btn{padding:4px 8px;font-size:11px}.inspector-table-wrap{overflow:auto;max-height:280px}.inspector-table{width:100%;border-collapse:collapse;font-size:11px}.inspector-table th,.inspector-table td{border-bottom:1px solid var(--border);padding:4px 6px;text-align:left;vertical-align:top}.inspector-table th{position:sticky;top:0;background:var(--surface2);color:var(--muted);font-weight:600}.inspector-detail{max-width:320px;word-break:break-word;font-family:var(--font-mono, ui-monospace, monospace)}.inspector-row-warn{background:color-mix(in srgb,var(--warn) 8%,transparent)}.inspector-row-linkable{cursor:pointer}.inspector-row-linkable:hover{background:color-mix(in srgb,var(--accent) 6%,var(--surface2))}.inspector-row-selected{background:color-mix(in srgb,var(--accent) 14%,var(--surface2))}.inspector-row-selected.inspector-row-warn{background:color-mix(in srgb,var(--warn) 16%,var(--surface2))}.inspector-link-hint{margin:8px 0 0;font-size:11px;color:var(--muted)}.inspector-block-list{display:flex;flex-direction:column;gap:8px;max-height:min(360px,42vh);overflow:auto;padding:2px 1px;flex-shrink:0}.inspector-block{border:1px solid var(--border);border-radius:6px;background:var(--surface);overflow:hidden;flex-shrink:0}.inspector-block--setup{opacity:.78;background:color-mix(in srgb,var(--muted) 4%,var(--surface));border-style:dashed}.inspector-block--drawable,.inspector-block--composite{border-left:3px solid color-mix(in srgb,var(--accent) 70%,var(--border))}.inspector-block--selected{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 10%,var(--surface))}.inspector-block--selected.inspector-block--drawable,.inspector-block--selected.inspector-block--composite{border-left-color:var(--accent)}.inspector-block-head{display:flex;align-items:center;gap:10px;padding:10px 12px;min-height:44px;line-height:1.4}.inspector-block-head--linkable{cursor:pointer}.inspector-block-head--linkable:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}.inspector-block--setup .inspector-block-head{cursor:default}.inspector-block-badge{flex-shrink:0;align-self:flex-start;margin-top:1px;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 6px;border-radius:4px;line-height:1.35}.inspector-block-badge--setup{color:var(--muted);background:color-mix(in srgb,var(--muted) 12%,transparent)}.inspector-block-badge--drawable{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.inspector-block-badge--composite{color:color-mix(in srgb,var(--accent) 80%,var(--text));background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent) 25%,var(--border))}.inspector-block-main{flex:1;min-width:0}.inspector-block-title{font-weight:600;font-size:13px;color:var(--text);line-height:1.35}.inspector-block-detail{font-size:11px;color:var(--muted);font-family:var(--font-mono, ui-monospace, monospace);word-break:break-word;margin-top:4px;line-height:1.45}.inspector-block-detail:empty{display:none}.inspector-block-expand{flex-shrink:0;align-self:center;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid var(--border);border-radius:4px;background:var(--surface2);color:var(--text);font-size:15px;font-weight:500;line-height:1;cursor:pointer}.inspector-block-meta-count{flex-shrink:0;font-size:10px;color:var(--muted);padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--muted) 10%,transparent)}.inspector-block-children{list-style:none;margin:0;padding:4px 12px 10px 36px;font-size:11px;color:var(--muted);line-height:1.5}.inspector-block-children li{display:flex;gap:10px;align-items:baseline;padding:4px 0}.inspector-block-children code{font-size:10px;color:var(--text)}.inspector-block-children--muted{opacity:.85}.inspector-block-offset{margin-left:auto;font-family:var(--font-mono, ui-monospace, monospace);font-size:9px;opacity:.7}.preview-mount--linked{outline:1px solid color-mix(in srgb,var(--accent) 35%,var(--border))}.preview-meta{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;font-size:12px;color:var(--muted)}.preview-mount{position:relative;display:flex;justify-content:center;align-items:center;padding:16px;background:var(--surface2);border-radius:8px;min-height:160px;overflow:auto}.preview-mount--transformed{min-height:240px}.preview-view-toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:10px}.preview-view-toolbar .btn-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border-radius:8px;color:var(--text);background:color-mix(in srgb,var(--surface2) 88%,var(--text) 12%);border:1px solid color-mix(in srgb,var(--border) 85%,var(--text) 15%);transition:background .15s ease,border-color .15s ease,color .15s ease,transform .1s ease}.preview-view-toolbar .btn-icon:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 14%,var(--surface2));border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.preview-view-toolbar .btn-icon:active:not(:disabled){transform:scale(.96)}.preview-view-toolbar .btn-icon svg{width:18px;height:18px}.preview-view-toolbar .btn-icon.active{background:color-mix(in srgb,var(--accent) 88%,#000 12%);color:#fff;border-color:color-mix(in srgb,var(--accent) 70%,#fff 30%);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.preview-view-toolbar .btn-icon-text{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:8px;font-size:12px;color:var(--muted);background:color-mix(in srgb,var(--surface2) 88%,var(--text) 12%);border:1px solid color-mix(in srgb,var(--border) 85%,var(--text) 15%)}.preview-view-toolbar .btn-icon-text svg{width:16px;height:16px;flex-shrink:0}.preview-view-toolbar .btn-icon-text:not(:disabled):hover{color:var(--text);border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.preview-view-toolbar .btn-icon-text:disabled{opacity:.38;cursor:not-allowed}.preview-view-inner{transform-origin:center center;transition:transform .15s ease}.preview-host{width:100%;display:flex;justify-content:center}.preview-mount .preview-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.receipt-shell{width:min(100%,420px);margin:0 auto;padding:12px;border-radius:16px;background:linear-gradient(180deg,#ffffff0a,#ffffff05)}.receipt-image{display:block;width:100%;height:auto;border-radius:10px;border:1px solid var(--border);background:#f3f1eb}.receipt-compare-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:min(100%,880px);margin:0 auto}.receipt-compare-col{display:flex;flex-direction:column;gap:8px;min-width:0}.receipt-compare-label{font-size:12px;font-weight:600;color:var(--muted);text-align:center}@media(max-width:720px){.receipt-compare-grid{grid-template-columns:1fr}}.preview-loading{color:var(--muted);padding:48px 16px}.preview-paper{color:var(--muted);font-size:12px}.preview-canvas{max-width:100%;height:auto;border:1px solid var(--border);background:#fff;image-rendering:pixelated}.tspl-preview-mount{display:inline-block;max-width:100%}[data-theme=violet-night]{--bg: #0b0b0f;--surface: #13131a;--surface2: #1a1a24;--border: #2a2a38;--text: #ececf1;--muted: #8b8b9a;--accent: #8b5cf6;--ok: #34d399;--warn: #fbbf24;--err: #f87171;font-family:Inter,SF Pro Text,system-ui,sans-serif}[data-theme=carbon-black]{--bg: #000000;--surface: #0a0a0a;--surface2: #111111;--border: #333333;--text: #ededed;--muted: #888888;--accent: #0070f3;--ok: #50e3c2;--warn: #f5a623;--err: #ee0000;font-family:SF Pro Text,system-ui,sans-serif}[data-theme=forest-green]{--bg: #0c0f0e;--surface: #121816;--surface2: #181f1c;--border: #2a3530;--text: #e6eee9;--muted: #7f9488;--accent: #3ecf8e;--ok: #3ecf8e;--warn: #f0b429;--err: #ff6b6b;font-family:Inter,SF Pro Text,system-ui,sans-serif}[data-theme=warm-rose]{--bg: #1a1a1c;--surface: #212124;--surface2: #2a2a2e;--border: #3a3a40;--text: #f0f0f5;--muted: #9a9aa5;--accent: #ff6363;--ok: #4ade80;--warn: #facc15;--err: #fb7185}[data-theme=plain-paper]{--bg: #191919;--surface: #202020;--surface2: #2a2a2a;--border: #3d3d3d;--text: #ebebeb;--muted: #9b9b9b;--accent: #2383e2;--ok: #4dab7f;--warn: #d9730d;--err: #e03e3e;font-family:Inter,SF Pro Text,system-ui,sans-serif}[data-theme=deep-ocean]{--bg: #0a2540;--surface: #0f3058;--surface2: #133d6e;--border: #1e4d7b;--text: #f6f9fc;--muted: #a3b8cc;--accent: #635bff;--ok: #30d158;--warn: #ffbb00;--err: #df1b41;font-family:Inter,SF Pro Text,system-ui,sans-serif}[data-theme=steel-blue]{--bg: #161616;--surface: #1c1c1c;--surface2: #262626;--border: #393939;--text: #f4f4f4;--muted: #a8a8a8;--accent: #4589ff;--ok: #42be65;--warn: #f1c21b;--err: #fa4d56;font-family:IBM Plex Sans,SF Pro Text,system-ui,sans-serif}[data-theme=amber-glow]{--bg: #14110e;--surface: #1c1814;--surface2: #252018;--border: #3d3428;--text: #f0ebe3;--muted: #9a8f7f;--accent: #e8a838;--ok: #6bbf59;--warn: #e8a838;--err: #d45d5d;font-family:Georgia,SF Pro Text,system-ui,serif}[data-theme=celadon]{--bg: #0e1211;--surface: #151a19;--surface2: #1c2321;--border: #2a3532;--text: #e2ebe8;--muted: #7a9089;--accent: #5eb8a8;--ok: #5eb8a8;--warn: #c9a227;--err: #c96b6b;font-family:Noto Sans SC,SF Pro Text,system-ui,sans-serif}.confirm-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10001;display:flex;align-items:center;justify-content:center;padding:20px;background:color-mix(in srgb,var(--bg) 35%,transparent)}.confirm-dialog{width:min(360px,100%);padding:16px;border-radius:10px;border:1px solid var(--border);background:var(--surface)}.confirm-dialog-title{margin:0 0 8px;font-size:14px;font-weight:600}.confirm-dialog-message{margin:0 0 16px;font-size:13px;line-height:1.45;color:var(--muted)}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-dialog-confirm{border-color:var(--accent);background:var(--accent);color:var(--surface)}.confirm-dialog-confirm:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 88%,white)}.export-open-btn{border-color:var(--accent);color:var(--accent)}.export-open-btn:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 10%,var(--surface2))}.export-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10001;display:flex;align-items:center;justify-content:center;padding:20px;background:color-mix(in srgb,var(--bg) 35%,transparent)}.export-dialog{display:flex;flex-direction:column;gap:12px;width:min(640px,100%);max-height:min(85vh,720px);padding:16px;border-radius:10px;border:1px solid var(--border);background:var(--surface)}.export-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.export-dialog-title{margin:0;font-size:15px;font-weight:600}.export-dialog-subtitle{margin:4px 0 0;font-size:12px;color:var(--muted)}.export-dialog-close{flex-shrink:0}.export-dialog-tabs{flex-wrap:wrap}.export-dialog-note{margin:0;font-size:11px;color:var(--warn)}.export-dialog-preview{flex:1;min-height:0;display:flex;flex-direction:column}.export-dialog-text{width:100%;min-height:220px;max-height:360px;resize:vertical;padding:10px 12px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.45}.export-dialog-png-wrap{display:flex;justify-content:center;align-items:flex-start;min-height:220px;max-height:360px;overflow:auto;padding:12px;border-radius:6px;border:1px solid var(--border);background:var(--surface2)}.export-dialog-png{max-width:100%;height:auto;image-rendering:pixelated}.export-dialog-raw{padding:12px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);font-size:12px}.export-dialog-raw dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0 0 10px}.export-dialog-raw dt{margin:0;color:var(--muted)}.export-dialog-raw dd{margin:0}.export-dialog-raw-hint{margin:0;color:var(--muted);line-height:1.45}.export-dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.export-dialog-download{border-color:var(--accent);background:var(--accent);color:var(--surface)}.export-dialog-download:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 88%,white)}.toast-host{position:fixed;top:16px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{padding:10px 14px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:13px;line-height:1.4;max-width:min(360px,calc(100vw - 40px));animation:toast-enter var(--motion-base) both}.toast--ok{border-color:color-mix(in srgb,var(--ok) 40%,var(--border))}.toast--err{border-color:color-mix(in srgb,var(--err) 40%,var(--border));color:color-mix(in srgb,var(--err) 80%,var(--text))}@keyframes toast-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.toast,.raw-cmd-ref--open{animation:none}}
