:root{color-scheme:dark}body{background:#0f172a;color:#e2e8f0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:#1e293b}.custom-scrollbar::-webkit-scrollbar-thumb{background:#475569;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#10b981}.vw-card{background:#1e293bb3;border:1px solid #334155;border-radius:.75rem;padding:.75rem .85rem}.vw-h2{font-size:.8rem;font-weight:700;color:#34d399;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem}.vw-sub{margin-top:.5rem;padding:.5rem;background:#0f172a73;border:1px solid #334155;border-radius:.5rem}.vw-label{display:block;font-size:.72rem;color:#94a3b8;margin-bottom:.2rem}.vw-mini{display:flex;flex-direction:column;gap:.2rem;font-size:.7rem;color:#94a3b8}.vw-select,.vw-num,.vw-text{background:#334155;border:1px solid #475569;border-radius:.375rem;color:#fff;font-size:.75rem;padding:.35rem .45rem;outline:none}.vw-select:focus,.vw-num:focus,.vw-text:focus{border-color:#10b981}.vw-num{width:100%;color:#67e8f9}.vw-text{width:100%}.vw-check{display:flex;align-items:center;gap:.45rem;color:#cbd5e1;cursor:pointer}.vw-check input{accent-color:#10b981}.vw-btn{background:#1e293b;border:1px solid #475569;color:#e2e8f0;border-radius:.375rem;padding:.3rem .55rem;font-size:.72rem}.vw-btn:hover{border-color:#10b981}.vw-btn.vw-share{background:#c2410c;border-color:#c2410c;color:#fff;font-weight:600;padding:.3rem .8rem}.vw-btn.vw-share:hover{background:#f97316;border-color:#f97316}.vw-btn:disabled{opacity:.6;cursor:progress}.vw-view{background:#0f172ad9;border:1px solid #475569;color:#cbd5e1;border-radius:.375rem;padding:.2rem .5rem;font-size:.7rem}.vw-view:hover{border-color:#10b981;color:#fff}.vw-color{width:100%;height:2rem;border:1px solid #475569;border-radius:.375rem;background:none;cursor:pointer}.vw-color-sm{width:2rem;height:1.5rem;border:1px solid #475569;border-radius:.3rem;background:none;cursor:pointer}.vw-slider{display:flex;flex-direction:column;gap:.15rem;margin-top:.45rem}.vw-slider .row{display:flex;justify-content:space-between;font-size:.72rem;color:#cbd5e1}.vw-slider .val{font-family:ui-monospace,monospace;color:#34d399}.vw-slider.amber .val{color:#fbbf24}.vw-slider input[type=range]{width:100%;accent-color:#10b981;cursor:pointer}.vw-slider.amber input[type=range]{accent-color:#f59e0b}.vw-slider input[type=range].auto-tuned{accent-color:#eab308}.vw-slider .auto-badge{font-size:.6rem;color:#0f172a;background:#eab308;border-radius:.25rem;padding:0 .3rem;margin-left:.35rem}.vw-tpl{background:#fff;border-radius:.5rem;padding:.35rem;cursor:zoom-in;display:flex;flex-direction:column;min-width:0}.vw-tpl figcaption{color:#0f172a;font-size:.7rem;font-weight:700;margin-bottom:.25rem}.vw-tpl canvas{width:100%;height:auto;display:block}.viewer-overlay{position:absolute;inset:0;display:none;align-items:center;justify-content:center;text-align:center;background:#020617d1;color:#fcd34d;font-size:.9rem;padding:1.5rem;z-index:5}.viewer-overlay small{color:#94a3b8}#status-bar.info{background:#064e3b;color:#d1fae5;border:1px solid #10b981}#status-bar.error{background:#450a0a;color:#fecaca;border:1px solid #ef4444}.status-float{color:#34d399}.status-suspend{color:#60a5fa}.status-sink{color:#f87171}*{box-sizing:border-box}html,body{margin:0}body.app{min-height:100vh;display:flex;flex-direction:column;font-size:14px}h1,h2,h3,p,figure{margin:0}button{font:inherit;cursor:pointer}.app-header{background:#0e2a47;border-bottom:1px solid #1d3d60;padding:.5rem 1rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.brand{display:flex;align-items:center;gap:.75rem}.brand img{height:48px;width:auto;object-fit:contain}.brand h1{font-size:1rem;color:#fff;line-height:1.2}.brand p{font-size:11px;color:#9fb4c9}.brand-home{display:block;line-height:0;border-radius:6px}.brand-home:focus-visible{outline:2px solid #f97316;outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.75rem;color:#94a3b8}.toolbar .sep{width:1px;height:20px;background:#334155;margin:0 .25rem}.inline-check{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;color:#cbd5e1;cursor:pointer}.inline-check input{accent-color:#10b981}.app-main{flex:1;min-height:0;display:flex;flex-direction:column;gap:.75rem;padding:.75rem}.app-aside{display:flex;flex-direction:column;gap:.75rem}.app-view{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;gap:.75rem}.viewer-box{position:relative;background:#020617;border:1px solid #1e293b;border-radius:.75rem;overflow:hidden;height:52vh;min-height:320px}#canvas-container{position:absolute;inset:0}.viewer-badge{position:absolute;top:.75rem;left:.75rem;background:#0f172ae6;border:1px solid #334155;border-radius:.5rem;padding:.4rem .7rem;font-size:.72rem;pointer-events:none;z-index:2}.viewer-badge .t{font-weight:700;color:#34d399}#mode-indicator{color:#fbbf24;font-weight:600}#dims-indicator{color:#94a3b8;font-family:ui-monospace,monospace}.viewer-buttons{position:absolute;top:.75rem;right:.75rem;display:flex;gap:.25rem;z-index:2}.viewer-warning{position:absolute;left:.75rem;right:.75rem;bottom:.75rem;background:#451a03eb;border:1px solid #b45309;color:#fef3c7;font-size:.75rem;border-radius:.5rem;padding:.5rem;z-index:2}.preview-box{background:#1e293b99;border:1px solid #334155;border-radius:.75rem;padding:.75rem;display:flex;flex-direction:column;min-height:0}.preview-head{margin-bottom:.5rem}.preview-head h2{font-size:.85rem;color:#fff}.preview-head span{font-size:11px;color:#94a3b8}#preview-container{display:grid;grid-template-columns:1fr;gap:.75rem;overflow-y:auto;padding-right:.25rem;align-items:start}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem}.colors label{display:flex;flex-direction:column;align-items:center;gap:.25rem;font-size:11px;color:#94a3b8}.row-between{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.vw-h3{font-size:.75rem;font-weight:600;color:#cbd5e1}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mb-0{margin-bottom:0!important}.full{width:100%}.span-all{grid-column:1 / -1;margin:0}.obs{color:#fbbf24}.small-note{font-size:11px;color:#94a3b8;margin-bottom:.25rem}.advice{margin-top:.5rem;font-size:.75rem;background:#451a0366;border:1px solid rgba(180,83,9,.5);color:#fde68a;border-radius:.375rem;padding:.5rem}.advice div+div{margin-top:.25rem}.advice button{background:none;border:0;color:#fff;text-decoration:underline;font-weight:700;padding:0 .2rem}.readouts{display:grid;grid-template-columns:1fr 1fr;gap:.25rem .75rem;font-size:.75rem;margin-top:.5rem;font-family:ui-monospace,monospace}.readouts .span2{grid-column:span 2}.readouts .num{color:#67e8f9}.muted{color:#94a3b8}.recs{font-size:.75rem;display:flex;flex-direction:column;gap:.25rem}.recs .ok{color:#6ee7b7}.export-list{display:grid;gap:.3rem;margin-top:.5rem;font-size:.75rem}.btn-primary{margin-top:.75rem;width:100%;background:#059669;color:#fff;font-weight:700;padding:.75rem;border:0;border-radius:.5rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-primary:hover{background:#10b981}.btn-primary:disabled{opacity:.6;cursor:progress}.footnote{font-size:10px;color:#64748b;padding:0 .25rem .5rem}#lightbox-modal{position:fixed;inset:0;background:#000000d9;z-index:50;align-items:center;justify-content:center;padding:1rem;cursor:zoom-out}#lightbox-modal.flex{display:flex}.lb-inner{max-width:95vw;max-height:92vh;overflow:auto;background:#fff;border-radius:.5rem;padding:.5rem}.lb-inner img{max-width:none;display:block}.lb-hint{position:absolute;top:.75rem;right:1rem;color:#fffc;font-size:.85rem}#status-bar{position:fixed;bottom:.75rem;left:50%;transform:translate(-50%);z-index:60;padding:.5rem 1rem;border-radius:.5rem;font-size:.85rem;box-shadow:0 10px 30px #00000080;max-width:90vw}@media(min-width:640px){#preview-container{grid-template-columns:1fr 1fr}}@media(min-width:1024px){body.app{height:100vh;overflow:hidden}.app-main{flex-direction:row}.app-aside{width:360px;flex-shrink:0;overflow-y:auto;padding-right:.25rem}.viewer-box{height:auto;flex:3}.preview-box{flex:2}}@media(min-width:1500px){#preview-container{grid-template-columns:1fr 1fr 1fr}}.guide-steps{margin:0 0 .4rem 1.1rem;padding:0;font-size:.75rem;color:#cbd5e1;display:grid;gap:.3rem}.guide-steps b{color:#e2e8f0}.vw-tip{position:fixed;z-index:80;max-width:300px;background:#0b1220;color:#e2e8f0;border:1px solid #10b981;border-radius:.5rem;padding:.5rem .65rem;font-size:.75rem;line-height:1.35;box-shadow:0 8px 24px #00000080;pointer-events:none;opacity:0;transition:opacity .12s}.vw-tip.show{opacity:1}.vw-collapsible{cursor:pointer;user-select:none;display:flex;align-items:center;justify-content:space-between}.vw-collapsible:after{content:"\25be";color:#64748b;font-size:.8rem;transition:transform .15s}.vw-card.collapsed .vw-collapsible:after{transform:rotate(-90deg)}.vw-card.collapsed .vw-card-body{display:none}.vw-card.collapsed .vw-h2{margin-bottom:0}.vw-collapsible:focus-visible{outline:2px solid #10b981;outline-offset:2px;border-radius:4px}.vw-slider .val{cursor:text;border-bottom:1px dashed transparent}.vw-slider .val:hover{border-bottom-color:#34d399}.val-edit{width:5.5em;background:#0f172a;color:#34d399;border:1px solid #10b981;border-radius:4px;font:inherit;padding:0 .25rem}.hidden,[hidden]{display:none!important}.tex-checks{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin:.6rem 0 .2rem;font-size:.85rem}.tex-col-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.45rem;margin-top:.5rem}.btn-link{background:none;border:0;color:#38bdf8;cursor:pointer;padding:0;font:inherit;text-decoration:underline}.paint-pop{position:absolute;z-index:30;min-width:13rem;max-width:17rem;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:.6rem;padding:.6rem .7rem;box-shadow:0 10px 30px #00000073;font-size:.82rem}.paint-pop h4{margin:0 0 .4rem;font-size:.85rem;color:#fbbf24}.paint-pop .sw{display:flex;flex-wrap:wrap;gap:.3rem;margin:.3rem 0 .5rem}.paint-pop .sw button{width:1.6rem;height:1.6rem;border-radius:.35rem;border:2px solid #475569;cursor:pointer}.paint-pop .sw button.on{border-color:#fbbf24}.paint-pop .row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.paint-pop .x{position:absolute;top:.3rem;right:.45rem;background:none;border:0;color:#94a3b8;cursor:pointer;font-size:1rem}.behav{display:grid;grid-template-columns:max-content 1fr;gap:.25rem .7rem;font-size:.82rem}.behav .k{color:#94a3b8}.behav .warn{color:#fbbf24}.guess{color:#38bdf8;font-weight:600;cursor:help}.behav-warn{margin-top:.4rem;font-size:.8rem;color:#fbbf24}.behav-tips{margin:.2rem 0 0 1rem;padding:0;font-size:.82rem}.behav-tips li{margin:.15rem 0}
