:root{color:#e5e7eb;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--bg:#0b0e14;--panel:#111722;--panel-muted:#0e141e;--panel-elevated:#17202e;--border:#273244;--border-strong:#3a4960;--text:#e5e7eb;--text-muted:#9aa8ba;--text-dim:#65758b;--editor-text:#dbe6f4;--accent:#5eead4;--accent-strong:#2dd4bf;--accent-ink:#062d2a;--danger:#fb7185;--warning:#fbbf24;--selection:#2dd4bf38;--active-line:#94a3b812;background:#0b0e14;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;height:100%;margin:0}body{background:radial-gradient(circle at 15% 0%, #2dd4bf12, transparent 28rem), var(--bg);overflow:hidden}button,input,select{font:inherit}button,select{border:1px solid var(--border-strong);color:var(--text);background:var(--panel-elevated);border-radius:7px}button{cursor:pointer;min-height:34px;padding:0 13px}button:hover:not(:disabled){background:#202b3b;border-color:#60718a}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.43}button.primary{border-color:var(--accent-strong);color:var(--accent-ink);background:var(--accent);font-weight:700}button.primary:hover:not(:disabled){color:#021b19;background:#99f6e4}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{grid-template-rows:auto minmax(0,1fr) auto;height:100dvh;display:grid;overflow:hidden}.app-header,.status-bar{border-color:var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0e141eeb;align-items:center;display:flex}.app-header{white-space:nowrap;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:8px 10px;min-height:52px;padding:8px 14px}.brand,.toolbar-group,.template-file-actions,.field-control,.zoom-control,.status-bar{align-items:center;display:flex}.brand{flex:none;gap:8px}.brand-mark{width:30px;height:30px;color:var(--accent);letter-spacing:.08em;background:#2dd4bf1a;border:1px solid #5eead499;border-radius:9px;place-items:center;font-size:13px;font-weight:800;display:grid}.brand h1,.panel-header h2,.panel-header p{margin:0}.brand h1{color:#f8fafc;font-size:14px;line-height:1.1}.toolbar-group,.template-file-actions{border-left:1px solid var(--border);flex:none;gap:10px;padding-left:10px}.printer-controls{margin-left:auto}.app-header button,.app-header select{height:32px;min-height:32px;font-size:12px}.app-header button{padding-inline:10px}.file-actions-label{color:var(--text-muted);letter-spacing:.03em;white-space:nowrap;font-size:10px;font-weight:700}.file-action-buttons,.panel-actions{align-items:center;gap:8px;display:flex}.panel-actions{flex-wrap:wrap}.printer-badge{border-radius:99px;padding:5px 9px;font-size:11px;font-weight:700}.printer-badge.unsupported,.printer-badge.disconnected{color:#cbd5e1;background:#64748b33}.printer-badge.connecting,.printer-badge.disconnecting{color:#fde68a;background:#f59e0b26}.printer-badge.connected{color:#99f6e4;background:#2dd4bf24}.printer-badge.printing{color:#bfdbfe;background:#3b82f62b}.segmented-control{border:0;margin:0;padding:0;display:flex}.segmented-control legend{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.segmented-control button{border-radius:0}.segmented-control button:first-of-type{border-radius:7px 0 0 7px}.segmented-control button+button{margin-left:-1px}.segmented-control button:last-of-type{border-radius:0 7px 7px 0}.segmented-control button[aria-pressed=true]{z-index:1;border-color:var(--accent-strong);color:var(--accent);background:#2dd4bf1a}.field-control,.zoom-control{color:var(--text-muted);white-space:nowrap;gap:7px;font-size:12px}.field-control select{height:34px;padding:0 28px 0 9px}.threshold-control input{width:72px;accent-color:var(--accent-strong)}.zoom-control input{width:100px;accent-color:var(--accent-strong)}.threshold-control output,.zoom-control output{min-width:29px;color:var(--text);font-variant-numeric:tabular-nums}.selection-status{color:var(--text-muted);white-space:nowrap}.print-progress{color:var(--text-muted);white-space:nowrap;align-items:center;gap:7px;font-size:11px;display:flex}.print-progress progress{width:96px;height:7px;accent-color:var(--accent-strong);border:0;border-radius:99px}.print-progress output{font-variant-numeric:tabular-nums;min-width:30px}.workspace{grid-template-rows:minmax(0,1fr) minmax(0,30dvh);grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-height:0;padding:10px;display:grid}.panel{border:1px solid var(--border);background:var(--panel);border-radius:10px;min-width:0;min-height:0;overflow:hidden;box-shadow:0 18px 42px #00000029}.editor-panel,.preview-panel{grid-template-rows:auto minmax(0,1fr) auto;display:grid}.editor-panel .panel-header{flex-wrap:wrap}.editor-panel .panel-header>div{overflow-wrap:anywhere;min-width:0}.editor-panel .panel-header>div:first-child{flex:1 1 0}.preview-panel{grid-column:1/-1}.panel-header{border-bottom:1px solid var(--border);background:var(--panel-muted);justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:9px 12px;display:flex}.panel-header h2{color:#f1f5f9;letter-spacing:.02em;font-size:13px}.panel-header p{color:var(--text-dim);margin-top:3px;font-size:11px}.editor-region{min-height:0;overflow:hidden}.editor-region>div,.editor-region .cm-editor{height:100%}.diagnostic-count{color:#fecdd3;white-space:nowrap;background:#f43f5e21;border-radius:99px;padding:4px 7px;font-size:10px;font-weight:700}.diagnostic-list{border-top:1px solid var(--border);color:#fda4af;background:#9f123914;gap:5px;max-height:74px;margin:0;padding:8px 12px;font-size:11px;list-style:none;display:grid;overflow:auto}.diagnostic-list li{align-items:flex-start;gap:7px;display:flex}.severity-dot,.status-indicator{border-radius:50%;flex:none;width:7px;height:7px;margin-top:4px}.severity-dot.error,.status-indicator.error{background:var(--danger);box-shadow:0 0 0 3px #fb71851f}.severity-dot.warning{background:var(--warning)}.preview-header{flex-wrap:wrap;grid-column:1}.preview-controls{flex-wrap:wrap;align-items:center;gap:12px;margin-left:auto;display:flex}.preview-controls .segmented-control button{white-space:nowrap;min-height:30px;padding-inline:10px;font-size:12px}.preview-viewport{contain:size;background-color:#0c111a;background-image:linear-gradient(45deg,#94a3b809 25%,#0000 25%),linear-gradient(-45deg,#94a3b809 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#94a3b809 75%),linear-gradient(-45deg,#0000 75%,#94a3b809 75%),none;background-position:0 0,0 5px,5px -5px,-5px 0;background-repeat:repeat,repeat,repeat,repeat,repeat;background-size:10px 10px;background-attachment:scroll,scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box;grid-template-columns:minmax(0,1fr);place-items:safe center;min-width:0;min-height:0;padding:24px;display:grid;overflow:auto}.preview-viewport.can-pan{cursor:grab;-webkit-user-select:none;user-select:none}.preview-viewport.is-panning{cursor:grabbing}.preview-tapes{align-items:flex-start;gap:16px;display:flex}.preview-tapes.is-wrapped{flex-wrap:wrap;width:100%}.tape-shadow{background:#fff;flex:none;line-height:0;box-shadow:0 0 0 1px #ffffff38,0 11px 32px #00000073}.tape-shadow canvas{min-width:1px;image-rendering:pixelated;display:block}.preview-message{text-align:center;gap:7px;max-width:380px;padding:20px;display:grid}.preview-message strong{color:var(--text);font-size:14px}.preview-message span{color:var(--text-muted);font-size:12px;line-height:1.5}.preview-message.error strong,.preview-message.error span{color:#fda4af}.status-bar{border-top:1px solid var(--border);min-height:31px;color:var(--text-muted);white-space:nowrap;gap:9px;padding:5px 12px;font-size:11px;overflow-x:auto}.status-indicator{margin-top:0}.status-indicator.ready{background:var(--accent-strong);box-shadow:0 0 0 3px #2dd4bf1f}.status-detail{color:var(--warning)}.notice{min-height:0;color:var(--text-muted);background:0 0;border:0;margin-left:auto;padding:3px 8px;font-size:11px}.notice.error{color:#fda4af}.status-links{flex-shrink:0;gap:8px;margin-left:auto;display:flex}.status-links a{color:var(--accent);text-decoration:none}.status-links a:hover,.status-links a:focus-visible{text-decoration:underline}.font-status{max-width:260px;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}@media (width<=620px){.editor-panel .panel-header p{display:none}.workspace{gap:7px;padding:7px}}
