html,body,#root{height:100%}body{margin:0}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#e8e4dc;--panel:#f6f3ec;--ink:#1c1a17;--muted:#6b6560;--line:#d2cbc0;--accent:#2f5d50;--accent-2:#c45c26;--danger:#8b2e2e;--tap-min:36px;font-family:IBM Plex Sans,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body{max-width:100%;margin:0;overflow-x:hidden}body{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%}.app{flex-direction:column;max-width:100%;min-height:100dvh;display:flex;overflow-x:hidden}.header{border-bottom:1px solid var(--line);background:#faf8f3;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.75rem;padding:.7rem 1rem .55rem;display:flex}.header h1{letter-spacing:-.02em;margin:0;font-size:1.3rem}.tagline{color:var(--muted);margin:.1rem 0 0;font-size:.75rem}.header-actions{flex-wrap:wrap;gap:.3rem;display:flex}button{font:inherit;border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:5px;padding:.3rem .6rem;font-size:.82rem}button.tap{min-height:var(--tap-min);min-width:var(--tap-min);padding:.35rem .7rem}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.secondary{background:#fff}.banner{padding:.3rem 1rem;font-size:.78rem}.banner.status{color:var(--muted);border-bottom:1px solid var(--line)}.banner.error{color:var(--danger);background:#f8e4e4}.main{flex:1;grid-template-columns:minmax(260px,310px) 1fr;gap:0;min-width:0;min-height:0;display:grid}.main-narrow{grid-template-columns:1fr;grid-template-areas:"preview""panel"}.main-narrow .preview-wrap{grid-area:preview}.main-narrow .panel{grid-area:panel}.panel{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;min-height:0;max-height:calc(100dvh - 95px);padding:.5rem .7rem 1.25rem;font-size:13px;display:flex;overflow:auto}.panel-collapsed{display:none}.panel section,.panel .panel-tab-section{border-bottom:1px dashed var(--line);margin-bottom:.65rem;padding-bottom:.55rem}.panel .panel-tab-section{border-bottom:none;margin-bottom:0;padding-bottom:0}.panel h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .4rem;font-size:.68rem}.panel-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:thin;z-index:3;background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:nowrap;gap:.15rem;margin:0 -.15rem .35rem;padding:.15rem 0 .4rem;display:flex;position:sticky;top:0;overflow-x:auto}.panel-tab{font:inherit;letter-spacing:.02em;text-transform:uppercase;min-width:0;min-height:32px;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:5px;flex:none;padding:.35rem .55rem;font-size:.72rem;font-weight:600}.panel-tab:hover{color:var(--ink);border-color:var(--line);background:#ffffff8c}.panel-tab.active{color:var(--ink);border-color:var(--line);background:#fff;box-shadow:0 1px 2px #0000000a}.panel-tab-body{flex:auto;min-height:0}.panel-actions{z-index:3;border-top:1px solid var(--line);background:linear-gradient(to bottom, transparent, var(--panel) 12%);margin-top:auto;padding-top:.55rem;position:sticky;bottom:0;border-bottom:none!important;margin-bottom:0!important;padding-bottom:.15rem!important}.row{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.3rem;font-size:.82rem;display:flex}.row label{min-width:5rem}.row.dual input[type=number]{width:5rem;min-height:32px}.row input[type=text],.row select,.row textarea{min-width:0;font:inherit;border:1px solid var(--line);background:#fff;border-radius:4px;flex:1;min-height:32px;padding:.3rem .4rem}.row input[type=number]{font:inherit;border:1px solid var(--line);background:#fff;border-radius:4px;min-height:32px;padding:.3rem .4rem}.row.stack{flex-direction:column;align-items:stretch}.row.stack label{min-width:0}.unit{color:var(--muted);min-width:1.35rem;font-size:.72rem}.hint{color:var(--muted);margin:.25rem 0 0;font-size:.68rem;line-height:1.3}.actions{flex-direction:column;gap:.3rem;display:flex}.actions button{width:100%}.v2{opacity:.75}.pen-list{flex-direction:column;gap:.3rem;margin:.25rem 0 .45rem;display:flex}.pen-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.pen-swatch{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:5px;flex-shrink:0;width:40px;height:36px;padding:0}.pen-label-input{min-width:100px;font:inherit;border:1px solid var(--line);background:#fff;border-radius:4px;flex:1;min-height:36px;padding:.3rem .4rem}.manual-list{border:1px solid var(--line);background:#fff;border-radius:6px;max-height:220px;margin:.35rem 0;padding:.35rem;overflow:auto}.manual-row{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.35rem;display:flex}.manual-label{min-width:4.5rem;font-size:.78rem}.manual-row select{min-width:100px;min-height:32px;font:inherit;flex:1}.chip{border:1px solid #0003;border-radius:3px;flex-shrink:0;width:14px;height:14px;display:inline-block}.pen-legend{color:var(--muted);flex-wrap:wrap;gap:.35rem .65rem;font-size:.72rem;display:flex}.pen-legend-item{align-items:center;gap:.35rem;display:inline-flex}.preview-wrap{flex-direction:column;gap:.45rem;min-width:0;padding:.75rem;display:flex}.preview-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.preview-meta{color:var(--muted);font-size:.75rem}.zoom-controls{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.zoom-label{color:var(--muted);min-width:3rem;font-size:.8rem}.preview-stage{touch-action:none;-webkit-user-select:none;user-select:none;background:#d9d3c8;border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:280px;padding:.75rem;display:flex;position:relative;overflow:hidden}.preview-stage.panning{cursor:grab}.preview-stage.panning:active{cursor:grabbing}.preview-transform{transform-origin:50%;will-change:transform;justify-content:center;align-items:center;display:flex}.preview-svg{border-radius:2px;max-width:100%;box-shadow:0 8px 28px #0000002e}.empty{color:var(--muted);text-align:center;padding:3rem}.player-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .15rem;display:flex}.player-controls{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;align-items:center;gap:.35rem;max-width:100%;padding-bottom:.15rem;display:flex;overflow-x:auto}.speed-label{color:var(--muted);flex-shrink:0;align-items:center;gap:.3rem;font-size:.75rem;display:inline-flex}.speed-label select{font:inherit;border:1px solid var(--line);background:#fff;border-radius:4px;min-height:36px;padding:.25rem .35rem}.player-progress{color:var(--muted);font-variant-numeric:tabular-nums;word-break:break-word;font-size:.75rem}.pen-tip{pointer-events:none}@media (width<=900px){.main{grid-template-columns:1fr}.panel{border-right:none;border-top:1px solid var(--line);max-height:none;padding-bottom:3rem}.header{align-items:flex-start;padding:.65rem .75rem .5rem}.header h1{font-size:1.15rem}.panel-tabs{position:sticky;top:0}.preview-wrap{z-index:2;background:var(--bg);padding:.6rem;position:sticky;top:0}.preview-stage{min-height:52dvh;padding:.6rem}.player-controls,.player-progress{width:100%}.row label{min-width:4.5rem}}@media (width<=420px){.header-actions button.tap{flex:calc(50% - .4rem)}.zoom-controls{width:100%}.zoom-controls button.tap{flex:1}}.manual-last{color:var(--ink);margin:.25rem 0 0;font-size:.78rem}.pen-legend-assign{align-items:center}.pen-assign-chip{font:inherit;color:var(--ink);cursor:pointer;background:#fff;border:2px solid #0000;border-radius:999px;align-items:center;gap:.35rem;min-height:36px;padding:.25rem .55rem;font-size:.8rem;display:inline-flex}.pen-assign-chip.active{border-color:var(--ink);box-shadow:0 0 0 1px #00000014}.pen-assign-chip:hover{background:#f3f0ea}.assign-hint{color:var(--muted);font-size:.78rem}.preview-stage.assigning{cursor:crosshair}.preview-stage.assigning.panning{cursor:grab}.preview-stage.assigning.panning:active{cursor:grabbing}.assign-halo{pointer-events:none}.settings-v2{border-top:1px dashed var(--line);margin-top:.75rem;padding-top:.55rem}
