#thicknessControl{margin:0 0 14px;padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:8px}#thicknessControl[hidden]{display:none}#thicknessControl label{display:flex;justify-content:space-between;gap:12px}#thicknessControl input{margin-top:10px}#thicknessControl input:disabled{opacity:.4}
.batch-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:20px 0 10px}.batch-heading span{color:var(--gold)}
.batch-clear,.batch-remove{color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:7px;cursor:pointer;padding:6px 9px}
.batch-list{display:grid;gap:7px;max-height:330px;overflow-y:auto}.batch-row{display:flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--bg)}
.batch-row.is-active{border-color:var(--gold)}.batch-select{display:flex;align-items:center;gap:9px;flex:1;min-width:0;padding:6px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.batch-select img{width:42px;height:42px;object-fit:contain;flex-shrink:0}.batch-select span{font-size:.8rem;overflow-wrap:anywhere}.batch-remove{border:0;border-left:1px solid var(--line);border-radius:0;font-size:1.2rem}
.batch-download{margin-top:10px}#cancelBatch{margin-top:10px}#cancelBatch[hidden]{display:none}.batch-status{white-space:pre-line;overflow-wrap:anywhere;font-size:.82rem;color:var(--muted);margin:12px 0 0}.batch-status:empty{display:none}
.batch-select:focus-visible,.batch-clear:focus-visible,.batch-remove:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}
.frame-group > summary{cursor:pointer;padding:10px 0;color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;overflow-wrap:anywhere}
.frame-group > summary::marker{color:var(--gold)}
.frame-group > summary:hover{color:var(--text)}
.frame-group > summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
.frame-group[open] > summary{margin-bottom:8px}
/* Colorable frames and color controls share one container. */
body .color-box{grid-template-columns:minmax(0,1fr);align-items:stretch}
.color-box > .color-controls{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:end}
.color-box > .color-heading{display:block}
.color-box #colorFrameGroups{display:grid;gap:18px;min-width:0}
.color-box .frame-list{min-width:0}
.admin-form .checkbox-label{display:flex;align-items:center;gap:9px;cursor:pointer}
.admin-form .checkbox-label input[type=checkbox]{width:18px;height:18px;min-height:0;margin:0;flex-shrink:0;accent-color:var(--gold)}
.frame-edit{min-width:200px;gap:10px}
/* Header typography and geometry from the supplied V20 app.css. */
.site-header{position:sticky;top:0;z-index:20;background:var(--page-bg);border-bottom:1px solid #303036;backdrop-filter:blur(12px);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:normal;color:#ece9e4}
.header-inner{width:min(1240px,calc(100% - 32px));margin:0 auto;min-height:76px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
.brand{justify-self:start;display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.brand-mark{flex-shrink:0;width:44px;height:44px;display:grid;place-items:center;box-sizing:border-box;overflow:hidden;border:1px solid #70252b;background:#050505 url('oldzocker.ico?v=2.0') center/cover no-repeat;color:transparent;font-size:0}
.brand strong,.brand small{display:block}.brand strong{font-size:1rem;font-weight:700}.brand small{margin-top:3px;color:#9c9995;font-size:.75rem}
.header-spacer{justify-self:end;width:1px;height:1px}.main-nav{justify-self:center;display:flex;justify-content:center;gap:4px;flex-wrap:wrap}
.main-nav a{padding:10px 12px;border-radius:7px;color:#bdb9b4;text-decoration:none;font-size:.86rem}.main-nav a:hover,.main-nav a.active{background:#1d1d21;color:#fff}
.token-privacy{width:min(1380px,calc(100% - 40px));margin:22px auto 0;color:#aeb6c2;font-size:.85rem}.token-privacy strong{color:#d8f2dd}
.frame-status{font-size:.84rem;color:#e8c66a;margin:12px 0 0}.frame-status:empty{display:none}
.color-box[hidden]{display:none}
body .preview-panel{top:96px}
@media(max-width:980px){.header-inner{grid-template-columns:1fr;justify-items:center;padding:14px 0}.brand,.main-nav{justify-self:center}.header-spacer{display:none}body .preview-panel{position:static}}
@media(max-width:700px){.header-inner{width:min(100% - 20px,1240px)}.main-nav{width:100%}.main-nav a{padding:8px 9px}}
/* Token mouse positioning v1.0: keep empty overlay from intercepting input. */
.canvas-empty[hidden]{display:none}
.canvas-empty{pointer-events:none}
#tokenCanvas{touch-action:none;user-select:none}
#tokenCanvas.can-drag{cursor:grab}
#tokenCanvas.is-dragging{cursor:grabbing}
:root{color-scheme:dark;--page-bg:#0b0b0d;--bg:#0b0d11;--surface:#131820;--surface2:#1a202a;--line:#2d3643;--text:#f4f0e7;--muted:#aeb6c2;--gold:#e8c66a;--danger:#8b3430;--radius:16px}
*{box-sizing:border-box}html{min-height:100%;background:var(--page-bg)}body{margin:0;min-height:100vh;color:var(--text);background:var(--page-bg);font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,select{font:inherit}a{color:var(--gold)}.site-head,footer{width:min(1380px,calc(100% - 40px));margin-inline:auto}.site-head{display:flex;align-items:end;justify-content:space-between;gap:32px;padding:38px 0 24px;border-bottom:1px solid var(--line)}
.eyebrow{color:var(--gold);font-size:.78rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font:clamp(2rem,4vw,3.35rem)/1 Georgia,serif}h2{margin-bottom:18px;font:1.35rem Georgia,serif}
.privacy-note{max-width:470px;margin:0;padding:12px 16px;color:var(--muted);background:rgba(19,24,32,.8);border:1px solid var(--line);border-radius:999px;font-size:.9rem}.privacy-note strong{color:#d8f2dd}
.workspace{width:min(1380px,calc(100% - 40px));margin:26px auto 54px;display:grid;grid-template-columns:minmax(250px,.72fr) minmax(360px,1.15fr) minmax(300px,.95fr);gap:22px;align-items:start}
.panel,.preview-panel{background:rgba(19,24,32,.88);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 18px 55px rgba(0,0,0,.24)}.panel{padding:22px}.preview-panel{position:sticky;top:20px;padding:18px;border-color:#4b4230}
.preview-heading,.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.preview-heading h2{margin-bottom:12px}.preview-heading span,.section-heading p,.filename{color:var(--muted);font-size:.84rem}.section-heading p{margin-bottom:18px}
.canvas-shell{position:relative;aspect-ratio:1;overflow:hidden;display:grid;place-items:center;background-color:#11151b;background-image:linear-gradient(45deg,#1b212a 25%,transparent 25%),linear-gradient(-45deg,#1b212a 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#1b212a 75%),linear-gradient(-45deg,transparent 75%,#1b212a 75%);background-size:28px 28px;background-position:0 0,0 14px,14px -14px,-14px 0;border:1px solid var(--line);border-radius:10px}
canvas{width:100%;height:100%;display:block}.canvas-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-weight:700}.dropzone{min-height:165px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;cursor:pointer;border:1px dashed #596576;border-radius:13px;background:#10141a;transition:.18s}
.dropzone:hover,.dropzone.is-over{border-color:var(--gold);background:#171a1e;transform:translateY(-1px)}.dropzone small{color:var(--muted)}.drop-icon{color:var(--gold);font-size:2rem;line-height:1}.control-grid{display:grid;gap:18px;margin:24px 0 18px}.control-grid label{display:grid;grid-template-columns:1fr auto;gap:8px;color:var(--muted);font-weight:650}.control-grid output{color:var(--text);font-variant-numeric:tabular-nums}input[type=range]{grid-column:1/-1;width:100%;accent-color:var(--gold)}
.button{min-height:44px;padding:10px 16px;border:1px solid transparent;border-radius:10px;cursor:pointer;font-weight:800;transition:.15s}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.42}.button-primary{width:100%;margin-top:16px;color:#17130b;background:var(--gold)}.button-muted{width:100%;color:var(--text);background:var(--surface2);border-color:var(--line)}.filename{margin:9px 0 0;text-align:center}
.color-box{display:grid;grid-template-columns:1fr 52px minmax(112px,.6fr) minmax(130px,.8fr);gap:10px;align-items:end;margin-bottom:22px;padding:14px;background:#10141a;border:1px solid var(--line);border-radius:12px}.color-box>div{display:flex;flex-direction:column}.color-box span{color:var(--muted);font-size:.78rem}.color-box label{color:var(--muted);font-size:.72rem;font-weight:750;letter-spacing:.05em}
.color-box input[type=text]{width:100%;margin-top:4px;padding:8px 9px;color:var(--text);background:var(--surface2);border:1px solid var(--line);border-radius:8px}.color-box input[type=color]{width:52px;height:40px;padding:3px;background:transparent;border:1px solid var(--line);border-radius:8px}
.frame-groups{display:grid;gap:24px}.frame-group h3{margin-bottom:10px;color:var(--muted);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}.frame-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.frame-card{min-height:88px;padding:9px 6px;color:var(--muted);background:#10141a;border:1px solid var(--line);border-radius:11px;cursor:pointer;text-align:center}.frame-card:hover{border-color:#6a7482}.frame-card.is-active{color:var(--text);border-color:var(--gold);box-shadow:0 0 0 1px #9f7f2c inset}.frame-icon{width:45px;height:45px;margin:0 auto 5px;display:block;object-fit:contain}.shape-icon{border:5px solid currentColor}.shape-circle{border-radius:50%}.shape-rounded{border-radius:13px}.shape-hexagon,.shape-shield{background:currentColor;position:relative}.shape-hexagon{clip-path:polygon(25% 6%,75% 6%,100% 50%,75% 94%,25% 94%,0 50%)}.shape-shield{clip-path:polygon(8% 5%,92% 5%,88% 64%,50% 98%,12% 64%)}.shape-hexagon:after,.shape-shield:after{content:"";position:absolute;inset:5px;clip-path:inherit;background:#10141a}.custom-frame-icon{border-radius:5px}
footer{display:flex;justify-content:space-between;gap:20px;padding:22px 0 36px;color:var(--muted);border-top:1px solid var(--line);font-size:.88rem}
.admin-wrap{width:min(940px,calc(100% - 40px));margin:42px auto}.admin-card{padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.admin-form{display:grid;gap:16px}.admin-form label{display:grid;gap:6px;color:var(--muted);font-weight:700}.admin-form input,.admin-form select{min-height:44px;padding:9px 11px;color:var(--text);background:#0d1117;border:1px solid var(--line);border-radius:8px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.notice{padding:12px 14px;border:1px solid #49604d;background:#17231a;border-radius:9px}.notice.error{border-color:#6e4140;background:#291817}.admin-list{width:100%;border-collapse:collapse;margin-top:18px}.admin-list th,.admin-list td{padding:10px;text-align:left;border-bottom:1px solid var(--line)}.admin-list img{width:56px;height:56px;object-fit:contain}.danger{color:#fff;background:var(--danger)}.logout{margin-top:22px}.table-scroll{overflow-x:auto}
@media(max-width:1050px){.workspace{grid-template-columns:1fr 1.2fr}.frames{grid-column:1/-1}}@media(max-width:720px){.site-head{align-items:start;flex-direction:column}.privacy-note{border-radius:14px}.workspace{grid-template-columns:1fr;width:min(100% - 24px,620px)}.preview-panel{position:static;grid-row:1}.frames{grid-column:auto}.color-box{grid-template-columns:48px 1fr 1fr}.color-box>div{grid-column:1/-1}.frame-list{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-grid{grid-template-columns:1fr}footer{flex-direction:column;width:calc(100% - 24px)}}

.shape-icon.shape-diamond{width:32px;height:32px;transform:rotate(45deg);margin:7px auto 11px}.popout-hint{font-size:.8rem;color:var(--muted);line-height:1.5;margin:12px 0 0}.popout-hint[hidden]{display:none}

.background-controls{display:grid;gap:8px;margin-top:16px}.background-controls .batch-status{margin:0}

.brush-panel{margin-top:16px;border:1px solid var(--line);border-radius:8px;padding:10px}.brush-panel[hidden]{display:none}.brush-panel summary{cursor:pointer}.brush-tools{display:grid;gap:8px;margin-top:12px}.brush-tools label{font-size:.82rem;display:grid;gap:5px}.brush-tools select{background:var(--surface);color:var(--text);padding:7px;border:1px solid var(--line);border-radius:6px}.brush-panel p{font-size:.8rem;color:var(--muted)}#brushCanvas{display:block;width:100%;height:auto;touch-action:none;cursor:none;background-color:#11151b;background-image:conic-gradient(#242b35 25%,transparent 0 50%,#242b35 0 75%,transparent 0);background-size:20px 20px}

#brushCursor{position:fixed;z-index:9999;pointer-events:none;box-sizing:border-box;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #111;transform:translate(-50%,-50%)}#brushCursor[hidden]{display:none}

.frame-names-hidden .frame-card .frame-name{display:none}

.background-controls[hidden]{display:none!important}.model-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;border:0;padding:0;margin:0 0 12px}.model-choices legend{font-weight:600;margin-bottom:10px}.model-choices label{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:10px;background:var(--surface);cursor:pointer}.model-choices label:has(input:checked){border-color:var(--gold);background:#28231b}.model-choices input{accent-color:var(--gold);width:16px;height:16px;margin:0}.model-choices small{display:block;color:var(--muted);margin-top:4px}.canvas-gestures{display:flex;justify-content:flex-end;gap:8px;margin:8px 0}.canvas-gestures span{display:grid;place-items:center;width:36px;height:32px;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:7px}.canvas-gestures span:focus-visible{outline:2px solid var(--gold)}.character-account{border:1px solid var(--line);border-radius:10px;margin:0 0 16px;background:var(--surface);overflow:hidden}.character-account summary{padding:12px;cursor:pointer;font-weight:600}.character-account iframe{display:block;width:100%;border:0;background:#0b0b0d}.shape-hexagon-popout{background:currentColor;position:relative;clip-path:polygon(50% 3%,94.5% 25%,94.5% 75%,50% 97%,5.5% 75%,5.5% 25%)}.shape-hexagon-popout:after{content:"";position:absolute;inset:5px;clip-path:inherit;background:#10141a}
