:root{--bg:#17181b;--panel:#1f2024;--panel-2:#26282d;--line:#34363d;--line-2:#44474f;--text:#e8e9ed;--muted:#9da1ac;--accent:#7c95ff;--accent-ink:#0d1330;--ok:#5fd08b;--warn:#f2b84b;--err:#ff6b6b;--sel:#ffd166;--radius:7px;color:var(--text);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px;line-height:1.4}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.small{font-size:12px}.warn-text{color:var(--warn)}.missing{color:var(--err)}.app{flex-direction:column;height:100%;display:flex}.topbar{border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap;align-items:center;gap:12px;min-height:48px;padding:6px 12px;display:flex}.brand{letter-spacing:.01em;align-items:center;gap:8px;font-weight:650;display:flex}.logo{color:var(--accent);font-size:18px}.brand .credit{color:var(--muted);margin-left:4px;font-size:11px;font-weight:500;text-decoration:none}.brand .credit:hover{color:var(--accent)}.app.mobile .brand .credit{display:none}.project-name input{border-radius:var(--radius);background:0 0;border:1px solid #0000;width:22ch;min-width:180px;padding:5px 8px;font-weight:600}.project-name input:hover,.project-name input:focus{border-color:var(--line-2);background:var(--panel-2)}.topbar-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;display:flex}.divider{background:var(--line);width:1px;height:22px;margin:0 2px}.save-status{color:var(--muted);min-width:10ch;font-size:12px}.save-status.saved{color:var(--ok)}.save-status.error{color:var(--err)}.workspace{flex:1;grid-template-columns:320px minmax(0,1fr) 300px;min-height:0;display:grid}.panel{background:var(--panel);flex-direction:column;min-height:0;display:flex}.panel.left{border-right:1px solid var(--line)}.panel.right{border-left:1px solid var(--line)}.panel-inner{flex-direction:column;height:100%;min-height:0;display:flex}.panel-title{border-bottom:1px solid var(--line);padding:10px 14px;font-weight:650}.panel-scroll{flex:1;min-height:0;padding-bottom:24px;overflow:auto}.tabs{border-bottom:1px solid var(--line);display:flex;overflow-x:auto}.tabs button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex:1 0 auto;padding:10px 7px;font-size:12px;font-weight:550}.tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.tabs button:hover{color:var(--text)}.center{flex-direction:column;min-width:0;min-height:0;display:flex}.center-inner{flex-direction:column;height:100%;min-height:0;display:flex}.center-tabs{background:var(--bg);border-bottom:1px solid var(--line);gap:2px;padding:6px 8px 0;display:flex}.center-tabs button{border-radius:var(--radius) var(--radius) 0 0;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:none;padding:7px 14px;font-weight:550}.center-tabs button.on{background:var(--panel);border-color:var(--line);color:var(--text)}.center-body{flex:1;min-height:0;display:grid}.center-body.split{grid-template-columns:1fr 1fr}.viewport{min-width:0;min-height:0;position:relative;overflow:hidden}.viewport-canvas{touch-action:none;inset:0;position:absolute!important}.editor-pane{border-left:1px solid var(--line);background:var(--panel);min-width:0;min-height:0}.center-body:not(.split) .editor-pane{border-left:none}.loading,.splash{height:100%;color:var(--muted);align-content:center;place-items:center;gap:8px;display:grid}.spinner{border:3px solid var(--line-2);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.workspace-mobile{flex-direction:column;flex:1;display:flex;overflow:auto}.workspace-mobile .center{flex:none;height:62vh;min-height:360px}.collapsible{border-top:1px solid var(--line);background:var(--panel)}.collapsible>summary{cursor:pointer;padding:12px 14px;font-weight:650}.collapsible .panel-inner{height:auto}.collapsible .panel-scroll{overflow:visible}.app.mobile .topbar .icon-label span,.app.mobile .brand-name,.app.mobile .save-status{display:none}.app.mobile .project-name input{width:16ch;min-width:120px}.btn{background:var(--panel-2);border:1px solid var(--line-2);border-radius:var(--radius);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:6px 11px;font-weight:550;display:inline-flex}.btn:hover:not(:disabled){background:#2d3036;border-color:#5b5f69}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.primary:hover:not(:disabled){background:#94a8ff}.btn.danger{color:#ffb3b3;border-color:#6a3437}.btn.danger:hover:not(:disabled){background:#3a2224}.btn.ghost{background:0 0}.btn.on{border-color:var(--accent);color:var(--accent)}.btn.sm{padding:4px 8px;font-size:12px}.icon-btn{border-radius:var(--radius);background:var(--panel-2);border:1px solid var(--line-2);cursor:pointer;width:26px;height:26px}.link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.file-btn{cursor:pointer}.btn-row{align-items:center;gap:6px;margin-top:8px;display:flex}.btn-row.wrap{flex-wrap:wrap}.btn-row.center{justify-content:center}select{background:var(--panel-2);border:1px solid var(--line-2);border-radius:var(--radius);width:100%;padding:5px 8px}select.sm{width:auto;padding:3px 6px;font-size:12px}.section{border-bottom:1px solid var(--line);padding:12px 14px}.section>header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.section h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0;font-size:11px;font-weight:650}.section-body>*+*{margin-top:8px}.row{grid-auto-columns:1fr;grid-auto-flow:column;gap:8px;display:grid}.grid2{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.field{flex-direction:column;gap:3px;min-width:0;display:flex}.field label{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:flex}.field input[type=text]{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);width:100%;padding:5px 7px}.num{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);align-items:center;display:flex}.num:focus-within{border-color:var(--accent)}.num.invalid{border-color:var(--err)}.num input[type=text]{font-variant-numeric:tabular-nums;background:0 0;border:none;min-width:0;padding:5px 7px}.num input:focus-visible{outline:none}.num input:disabled{color:var(--muted)}.unit{color:var(--muted);padding-right:7px;font-size:11px}.color-input{align-items:center;gap:6px;display:flex}.color-input input[type=color]{border:1px solid var(--line-2);cursor:pointer;background:0 0;border-radius:5px;width:32px;height:26px;padding:0}.color-input code{color:var(--muted);font-size:11px}.toggle{align-items:center;gap:6px;display:flex}.inline-check{color:var(--muted);cursor:pointer;align-items:center;gap:4px;font-size:12px;display:inline-flex}.segmented{background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);flex-wrap:wrap;gap:2px;padding:2px;display:inline-flex}.segmented button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:5px;padding:5px 10px;font-weight:550}.segmented.sm button{padding:3px 8px;font-size:12px}.segmented button.on{background:var(--accent);color:var(--accent-ink)}.segmented button:disabled{opacity:.4;cursor:not-allowed}.stat{justify-content:space-between;gap:8px;padding:2px 0;font-size:12px;display:flex}.stat span{color:var(--muted)}.stat strong{font-variant-numeric:tabular-nums;text-align:right;font-weight:600}.note{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);margin:6px 0;padding:6px 8px;font-size:12px}.help{display:inline-flex;position:relative}.help-btn{border:1px solid var(--line-2);background:var(--panel-2);cursor:help;width:16px;height:16px;color:var(--muted);border-radius:50%;padding:0;font-size:10px;line-height:1}.help-tip{z-index:50;border:1px solid var(--line-2);width:240px;color:var(--text);border-radius:var(--radius);text-transform:none;letter-spacing:0;background:#0f1013;padding:8px 10px;font-size:12px;font-weight:400;display:none;position:absolute;top:20px;left:-8px;box-shadow:0 8px 24px #0006}.help:hover .help-tip,.help:focus-within .help-tip{display:block}.dropzone{border:1.5px dashed var(--line-2);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:4px;padding:10px;display:flex}.dropzone.compact{flex-flow:wrap;align-items:center;padding:8px}.dropzone.over{border-color:var(--accent);background:#7c95ff14}.hint{color:var(--muted);font-size:11px}.status.ok{color:var(--ok);margin:6px 0 0;font-size:12px}.issues{flex-direction:column;gap:4px;margin:6px 0 0;padding:0;list-style:none;display:flex}.issues li{border-radius:var(--radius);padding:6px 8px;font-size:12px}.issues li.error{color:#ffc4c4;background:#ff6b6b1f;border:1px solid #ff6b6b66}.issues li.warning{color:#ffe0a6;background:#f2b84b1a;border:1px solid #f2b84b59}.suggest{background:var(--panel-2);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:flex}.swatch{border-radius:3px;flex:none;width:12px;height:12px;display:inline-block}.thumb{background:#fff;border-radius:3px;display:block}.art-controls h4{margin:0 0 6px}.art-slot{align-items:center;gap:10px;display:flex}.art-slot-info{flex-direction:column;gap:2px;min-width:0;font-size:12px;display:flex}.art-slot-info strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.art-controls>*+*{margin-top:8px}.fit-controls{border-top:1px solid var(--line);padding-top:10px}.library-grid{background:var(--bg);border-radius:var(--radius);grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:6px;max-height:220px;padding:6px;display:grid;overflow:auto}.library-item{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-radius:5px;place-items:center;padding:4px;display:grid}.library-item.on{border-color:var(--accent)}.gallery-toolbar{justify-content:space-between;align-items:center;display:flex}.bulk-bar{background:var(--panel-2);border:1px solid var(--accent);border-radius:var(--radius);margin-top:8px;padding:8px}.gallery-deck{margin-top:10px}.gallery-deck-header{border:1px dashed #0000;border-radius:5px;align-items:center;gap:6px;padding:4px 6px;font-weight:600;display:flex}.gallery-deck-header.drop{border-color:var(--accent);background:#7c95ff14}.tiles{grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:6px;margin:6px 0 0;padding:0;list-style:none;display:grid}.tile{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;flex-direction:column;align-items:center;gap:3px;padding:6px 4px 4px;display:flex;position:relative}.tile:hover{border-color:var(--line-2)}.tile.active{border-color:var(--sel);box-shadow:0 0 0 1px var(--sel)}.tile.checked{border-color:var(--accent);background:#7c95ff24}.tile.drop{box-shadow:-3px 0 0 var(--accent)}.tile-check{opacity:.4;width:13px;height:13px;margin:0;position:absolute;top:3px;left:3px}.tile:hover .tile-check,.tile.checked .tile-check,.tile-check:focus-visible{opacity:1}.tile-num{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10px;position:absolute;top:2px;right:4px}.tile-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--muted);font-size:10px;overflow:hidden}.badge{border-radius:3px;padding:1px 3px;font-size:9px;font-weight:700;position:absolute}.badge.missing{background:var(--err);color:#2a0b0b;bottom:18px}.badge.own-back{background:var(--accent);color:var(--accent-ink);top:16px;right:3px}.empty{color:var(--muted);margin:4px 0;font-size:12px}.deck-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.deck-list li{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2)}.deck-list li.active{border-color:var(--sel)}.deck-select{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:7px 8px;display:flex}.deck-name{flex:1;font-weight:600}.deck-edit{flex-direction:column;gap:8px;padding:4px 8px 8px;display:flex}.face-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.face-list li{gap:6px;display:flex}.face-list li>button{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;flex:1;justify-content:space-between;padding:6px 8px;display:flex}.face-list li>button.active{border-color:var(--sel)}.vt{pointer-events:none;z-index:2;flex-wrap:wrap;align-items:center;gap:6px;display:flex;position:absolute}.vt>*{pointer-events:auto}.vt .btn,.vt .segmented,.vt select,.vt .chip{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#17181bd1}.vt .btn.primary{background:var(--accent);color:var(--accent-ink)}.btn-row.tight{margin-top:0}.vt-top-left{max-width:62%;top:10px;left:10px}.vt-top-right{justify-content:flex-end;max-width:38%;top:10px;right:10px}.vt-bottom-left{max-width:70%;bottom:10px;left:10px}.vt-bottom-right{bottom:10px;right:10px}.vt-label{background:#17181bd1;border-radius:5px;padding:3px 8px;font-weight:600}.vt-hint{color:var(--muted);background:#17181bbf;border-radius:5px;padding:3px 8px;font-size:12px}.vis{flex-wrap:wrap;gap:4px;display:flex}.chip{border:1px solid var(--line-2);cursor:pointer;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;display:inline-flex}.chip input[type=color]{background:0 0;border:none;width:20px;height:18px;padding:0}.editor2d{flex-direction:column;height:100%;min-height:0;display:flex}.editor-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;display:flex}.editor-title{font-weight:650}.zoom-group{align-items:center;gap:4px;margin-left:auto;display:flex}.zoom-val{text-align:center;font-variant-numeric:tabular-nums;min-width:46px;font-size:12px}.editor-guides{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:flex-end;gap:12px;padding:6px 10px;display:flex}.guide-toggle{cursor:pointer;align-items:center;gap:4px;padding-bottom:5px;font-size:12px;display:inline-flex}.guide-toggle.cut{color:#f5f5f5}.guide-toggle.bleed{color:#ff8f8f}.guide-toggle.safe{color:#7fd3ff}.guide-values{gap:8px;margin-left:auto;display:flex}.guide-values .field{width:100px}.editor-stage{background:linear-gradient(45deg,#1c1d21 25%,#0000 25%) 0 0/20px 20px,linear-gradient(-45deg,#1c1d21 25%,#0000 25%) 0 0/20px 20px,#202126;flex:1;min-height:0;position:relative;overflow:hidden}.editor-stage.over{outline:2px dashed var(--accent);outline-offset:-6px}.editor-stage canvas{touch-action:none;position:absolute;inset:0}.editor-legend{color:var(--muted);border-top:1px solid var(--line);margin:0;padding:6px 10px;font-size:11px}.lg:before{content:"";vertical-align:middle;border-top:2px solid;width:14px;height:0;margin-right:4px;display:inline-block}.lg.cut:before{border-color:#f5f5f5}.lg.bleed:before{border-color:#ff6b6b;border-top-style:dashed}.lg.safe:before{border-color:#5ec8ff;border-top-style:dashed}.lg.fold:before{border-color:#ffd166;border-top-style:dotted}.editor-empty{text-align:center;height:100%;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex}.editor-empty h2{color:var(--text);margin:0 0 4px}.menu{position:relative}.menu-list{border:1px solid var(--line-2);border-radius:var(--radius);z-index:60;background:#121316;min-width:290px;padding:4px;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 12px 32px #00000080}.menu:first-child .menu-list{left:0;right:auto}.menu-item{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:5px;flex-direction:column;align-items:flex-start;width:100%;padding:7px 10px;display:flex}.menu-item:hover,.menu-item:focus-visible{background:var(--panel-2)}.menu-item small{color:var(--muted)}.menu-note{color:var(--warn);margin:4px 10px 6px;font-size:11px}.dialog{background:var(--panel);color:var(--text);border:1px solid var(--line-2);border-radius:10px;width:calc(100% - 32px);max-width:480px;padding:18px 20px}.dialog::backdrop{background:#0000008c}.dialog h2{margin:0 0 8px;font-size:16px}.dialog-list{background:var(--bg);border-radius:var(--radius);max-height:220px;padding:8px 8px 8px 26px;font-size:12px;overflow:auto}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.toasts{z-index:100;flex-direction:column;gap:6px;width:min(560px,100% - 24px);display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--line-2);border-left:4px solid var(--accent);border-radius:var(--radius);background:#101114;align-items:center;gap:10px;padding:8px 10px;display:flex;box-shadow:0 10px 28px #00000080}.toast span{flex:1}.toast.success{border-left-color:var(--ok)}.toast.error{border-left-color:var(--err)}.toast-x{cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:16px}@media (width<=1100px){.workspace{grid-template-columns:280px minmax(0,1fr) 260px}}
