:root{font-family:system-ui,sans-serif;--bg: #18181c;--panel-bg: #222227;--panel-border: #36363e;--control-bg: #2e2e36;--control-bg-hover: #383841;--control-border: #45454f;--text: #d8d8de;--text-dim: #92929c;--accent: #4aa3ff;--accent-bg: rgba(74, 163, 255, .16)}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-size:13px}canvas{image-rendering:pixelated}button,input,select,output{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.editor{display:grid;grid-template-areas:"header header header" "tools  canvas colors" "footer footer footer";grid-template-rows:auto 1fr auto;grid-template-columns:auto 1fr auto;height:100%}.button{background:var(--control-bg);border:1px solid var(--control-border);border-radius:6px;color:var(--text);padding:6px 12px;cursor:pointer}.button:hover{background:var(--control-bg-hover)}.button:active{background:var(--panel-bg)}.button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-bg)}.panel-section{display:flex;flex-direction:column;gap:8px}.panel-heading{margin:0;font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--text-dim)}.option-row{display:flex;align-items:center;gap:6px;font-size:11px}.option-label{color:var(--text-dim);white-space:nowrap}.editor-header{grid-area:header;display:flex;align-items:center;gap:12px;min-width:0;padding:0 12px;height:48px;background:var(--panel-bg);border-bottom:1px solid var(--panel-border);overflow-x:auto}.logo{margin:0;font-size:16px;letter-spacing:.14em}.work-name{flex:0 1 240px;min-width:72px;background:var(--control-bg);border:1px solid var(--control-border);border-radius:6px;padding:6px 10px}.header-actions{margin-left:auto;display:flex;gap:8px}.header-actions .button{white-space:nowrap}.tool-panel{grid-area:tools;display:flex;flex-direction:column;gap:16px;width:118px;padding:10px;background:var(--panel-bg);border-right:1px solid var(--panel-border);overflow-y:auto}.tool-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.tool-button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px}.tool-key{font-size:14px;font-weight:700;line-height:1}.tool-name{font-size:10px;line-height:1;color:var(--text-dim)}.tool-button[aria-pressed=true] .tool-name{color:var(--text)}.toggle-column{display:flex;flex-direction:column;gap:6px}.toggle-column .button{padding:6px 8px;font-size:12px;white-space:nowrap}.history-row{display:flex;flex-direction:column;gap:6px}.history-row .button{padding:6px 8px;font-size:12px;white-space:nowrap}.panel-more{display:none}.panel-more[aria-expanded=true]{border-color:var(--accent);background:var(--accent-bg)}.brush-size{flex:1;min-width:0}.brush-size-value{min-width:3ch;text-align:right;font-variant-numeric:tabular-nums}.canvas-area{grid-area:canvas;position:relative;min-width:0;min-height:0;background:#24242a}.canvas-stage{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair;touch-action:none}.color-panel{grid-area:colors;display:flex;flex-direction:column;gap:16px;width:216px;padding:10px;background:var(--panel-bg);border-left:1px solid var(--panel-border);overflow-y:auto}.color-current{display:flex;align-items:center;gap:10px}.color-swap{position:relative;width:46px;height:46px}.color-chip{position:absolute;width:30px;height:30px;border:1px solid var(--panel-border);border-radius:4px;box-shadow:0 0 0 1px #0006}.color-chip{background:linear-gradient(var(--chip-color, #000),var(--chip-color, #000)),repeating-conic-gradient(#cfcfd4 0% 25%,#a3a3ac 0% 50%) 0 0 / 8px 8px}.color-main{left:0;top:0}.color-sub{right:0;bottom:0}.picker-layout,.picker-controls{display:flex;flex-direction:column;gap:8px}.picker-sv{position:relative;width:100%;aspect-ratio:1;border:1px solid var(--control-border);border-radius:6px;background:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,var(--picker-hue-color, #f00));cursor:crosshair;touch-action:none}.picker-knob{position:absolute;left:var(--sv-x, 0%);top:var(--sv-y, 100%);width:12px;height:12px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #0009;transform:translate(-50%,-50%);pointer-events:none}.picker-hue,.picker-alpha{appearance:none;-webkit-appearance:none;width:100%;height:14px;margin:0;border:1px solid var(--control-border);border-radius:7px}.picker-hue{background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.picker-alpha{background:linear-gradient(to right,transparent,var(--alpha-color, #000)),repeating-conic-gradient(#cfcfd4 0% 25%,#a3a3ac 0% 50%) 0 0 / 8px 8px}.picker-hue::-webkit-slider-thumb,.picker-alpha::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:1px solid rgba(0,0,0,.5);box-shadow:0 0 0 1px #0000004d}.picker-hue::-moz-range-thumb,.picker-alpha::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:1px solid rgba(0,0,0,.5)}.picker-hue::-moz-range-track,.picker-hue::-moz-range-progress{height:14px;border-radius:7px;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.picker-alpha::-moz-range-track,.picker-alpha::-moz-range-progress{height:14px;border-radius:7px;background:linear-gradient(to right,transparent,var(--alpha-color, #000)),repeating-conic-gradient(#cfcfd4 0% 25%,#a3a3ac 0% 50%) 0 0 / 8px 8px}.picker-hex{display:flex;align-items:center;gap:6px;font-size:11px}.picker-hex input{flex:1;min-width:0;background:var(--control-bg);border:1px solid var(--control-border);border-radius:4px;padding:4px 6px}.picker-rgba{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px}.picker-rgba label{display:flex;align-items:center;gap:4px;font-size:11px}.picker-rgba input{width:100%;min-width:0;background:var(--control-bg);border:1px solid var(--control-border);border-radius:4px;padding:3px 4px}.palette-select{width:100%;background:var(--control-bg);border:1px solid var(--control-border);border-radius:6px;padding:5px 6px}.swatch-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}.swatch{aspect-ratio:1;padding:0;border:1px solid rgba(255,255,255,.14);border-radius:3px;background:linear-gradient(var(--swatch),var(--swatch)),repeating-conic-gradient(#cfcfd4 0% 25%,#a3a3ac 0% 50%) 0 0 / 8px 8px;cursor:pointer}.swatch:hover{border-color:var(--accent)}.editor-footer{grid-area:footer;display:flex;align-items:center;gap:16px;min-width:0;min-height:34px;padding:4px 12px calc(4px + env(safe-area-inset-bottom));background:var(--panel-bg);border-top:1px solid var(--panel-border);font-size:12px;color:var(--text-dim);overflow-x:auto}.footer-group{display:flex;align-items:center;gap:6px;white-space:nowrap}.footer-button{padding:2px 8px;font-size:12px}.footer-label{color:var(--text-dim)}.footer-value{color:var(--text);font-variant-numeric:tabular-nums}.zoom-value{min-width:3.5ch;text-align:center}.cursor-pos{min-width:6ch}.footer-spacer{flex:1}.footer-hint{white-space:nowrap}@media(max-width:900px){.footer-hint{display:none}}.edit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.edit-grid .button{padding:6px 4px;font-size:11px;white-space:nowrap}.shift-row{display:flex;align-items:center;gap:4px}.shift-row .button{flex:1;padding:4px 0;font-size:11px}.palette-actions{display:flex;gap:6px}.palette-actions .button{flex:1;padding:4px 8px;font-size:11px}.palette-actions .button:disabled{opacity:.4;cursor:default}.selection-box{position:absolute;border:1px dashed #fff;outline:1px dashed rgba(0,0,0,.85);outline-offset:-2px;pointer-events:none;animation:selection-ants .8s linear infinite}@keyframes selection-ants{to{border-color:#fff6}}.dialog{min-width:280px;max-width:min(92vw,560px);max-height:86vh;background:var(--panel-bg);color:var(--text);border:1px solid var(--panel-border);border-radius:10px;padding:16px;box-shadow:0 12px 40px #00000080}.dialog::backdrop{background:#0000008c}.dialog-heading{margin:0 0 12px;font-size:14px}.dialog-note{margin:0 0 12px;font-size:12px;color:var(--text-dim)}.dialog-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.dialog-row label{display:flex;align-items:center;gap:6px}.dialog-row input[type=number],.dialog-row select{background:var(--control-bg);border:1px solid var(--control-border);border-radius:4px;padding:5px 6px;width:80px}.dialog-row select{width:auto}.dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin:12px 0 0}.works-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:56vh;overflow-y:auto}.works-item{display:flex;align-items:center;gap:12px;padding:8px;background:var(--control-bg);border:1px solid var(--control-border);border-radius:8px}.works-thumb{width:56px;height:56px;flex:0 0 auto;object-fit:contain;image-rendering:pixelated;background:repeating-conic-gradient(#cfcfd4 0% 25%,#a3a3ac 0% 50%) 0 0 / 8px 8px;border-radius:4px}.works-thumb-missing{display:flex;align-items:center;justify-content:center;color:#44444c;font-size:10px}.works-info{flex:1;min-width:0}.works-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.works-meta{font-size:11px;color:var(--text-dim)}.works-buttons{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.works-buttons .button{padding:3px 8px;font-size:11px}.works-empty{color:var(--text-dim)}.size-presets{display:flex;gap:6px;margin-bottom:12px}.size-presets .button{flex:1}.anchor-fieldset{margin:0 0 12px;padding:8px;border:1px solid var(--control-border);border-radius:6px}.anchor-grid{display:grid;grid-template-columns:repeat(3,32px);gap:4px;margin-top:6px}.anchor-grid label{position:relative;display:flex;align-items:center;justify-content:center;height:32px;background:var(--control-bg);border:1px solid var(--control-border);border-radius:4px;cursor:pointer}.anchor-grid input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.anchor-grid label:has(input:checked){border-color:var(--accent);background:var(--accent-bg)}@media(orientation:portrait){.editor{grid-template-areas:"header" "tools" "canvas" "colors" "footer";grid-template-rows:auto auto 1fr auto auto;grid-template-columns:1fr}.panel-heading{display:none}.editor-header{flex-wrap:wrap;height:auto;padding:8px 10px;gap:6px 8px;overflow:visible}.work-name{flex:1 1 96px}.header-actions{flex:1 1 100%;margin-left:0;flex-wrap:wrap;gap:6px}.header-actions .button{flex:1 1 auto;padding:6px 4px;font-size:12px}.tool-panel{width:auto;gap:8px;padding:8px;border-right:none;border-bottom:1px solid var(--panel-border);max-height:38vh;overflow-x:hidden;overflow-y:auto}.tool-panel .panel-section{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px}.tool-panel:not(.is-open) .panel-advanced{display:none}.tool-grid{display:flex;flex-wrap:wrap;flex:1 1 100%;gap:4px}.tool-button{flex:1 1 38px;max-width:72px;width:auto}.tool-name{font-size:9px}.history-row{flex:1 1 100%;flex-direction:row}.history-row .action-undo,.history-row .action-redo{flex:1 1 auto}.panel-more{display:inline-flex;align-items:center;justify-content:center;min-width:44px}.option-row .brush-size{flex:1 1 88px;max-width:160px}.toggle-column{display:contents}.edit-grid{display:flex;flex-wrap:wrap;gap:6px}.edit-grid .button,.toggle-column .button,.shift-row{flex:1 1 auto}.color-panel{width:auto;gap:8px;padding:8px;border-left:none;border-top:1px solid var(--panel-border);max-height:44vh;overflow-x:hidden;overflow-y:auto}.color-panel:not(.is-open) :is(.picker-section,.palette-actions,.swatch-recent){display:none}.color-current .panel-more{margin-left:auto}.picker-layout{flex-direction:row}.picker-sv{width:120px;flex:0 0 auto}.picker-controls{flex:1;min-width:0}.swatch-grid{grid-template-columns:repeat(auto-fill,minmax(28px,1fr))}.editor-footer{flex-wrap:wrap;gap:4px 12px;padding-top:6px;overflow:visible}.footer-spacer{display:none}}@media(orientation:landscape)and (max-width:760px){.tool-panel{width:96px}.color-panel{width:180px}.editor-header{height:40px}}
