:root{color-scheme:dark;--bg:#090d12;--panel:#111821;--border:#293540;--text:#eef4f8;--muted:#91a2b2;--cyan:#20c8f3}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:radial-gradient(circle at 50% -20%,#24394a 0,#090d12 55%);color:var(--text);font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",system-ui,sans-serif}
button{font:inherit}
.app-shell{width:min(1180px,calc(100% - 28px));margin:auto;padding:18px 0 12px}
.toolbar,.viewer{border:1px solid var(--border);background:rgba(17,24,33,.96);box-shadow:0 18px 70px #0008}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:13px 16px;border-radius:14px 14px 8px 8px}
.primary-tools{display:flex;align-items:center;gap:16px;min-width:0}.title-block{min-width:max-content}.eyebrow{margin:0 0 2px;color:var(--cyan);font-size:.66rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}h1{margin:0;font-size:1.2rem;letter-spacing:-.025em}
.actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.action-button{min-width:78px;padding:9px 14px;border:1px solid #3c5160;border-radius:8px;color:#d8e3ea;background:#192630;font-weight:700;cursor:pointer;transition:.15s}.action-button:hover:not(:disabled){border-color:var(--cyan);color:#fff;background:#1d303b}.action-button:active:not(:disabled){transform:translateY(1px)}.action-button:disabled{opacity:.38;cursor:not-allowed}.action-button.success{border-color:#45e386;color:#45e386}.action-button.error{border-color:#ff655e;color:#ff8a84}
.button-help-wrap{position:relative;display:inline-block}.context-help-button{position:absolute;z-index:2;top:-7px;right:-7px;width:22px;height:22px;padding:0;color:var(--text);background:#111a23;border:1px solid #526b7c;border-radius:50%;font-size:.72rem;font-weight:700;line-height:20px;text-align:center;cursor:pointer}.context-help-button:hover,.context-help-button[aria-expanded="true"]{color:var(--cyan);border-color:var(--cyan);background:#17232e}.context-help-popup{position:fixed;z-index:2147483647;max-width:min(520px,calc(100vw - 32px));padding:12px 16px;color:#fff;background:#464646;border:1px solid #69747b;border-radius:6px;box-shadow:0 8px 24px #0008;font-size:.86rem;line-height:1.7;white-space:pre-line}.context-help-popup[hidden]{display:none}
.viewer{margin-top:10px;padding:7px;border-radius:8px 8px 14px 14px;overflow:hidden}.image-stage{position:relative;display:grid;place-items:center;min-height:440px;max-height:calc(100vh - 250px);overflow:hidden;background:#05080b}.image-stage.dragover{outline:2px solid var(--cyan);outline-offset:-2px}.image-stage canvas{display:block;max-width:100%;max-height:calc(100vh - 250px);width:auto;height:auto}.empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--muted);text-align:center}.empty-state strong{color:#dce6ed;font-size:1.05rem}.empty-state span{font-size:.78rem}.working{position:absolute;inset:0;display:grid;place-items:center;background:#05080bc9;color:var(--cyan);font-size:.82rem;font-weight:800;letter-spacing:.08em}.working[hidden]{display:none}
.sample-actions{display:flex;flex-direction:column;gap:8px;width:min(210px,70vw);margin:10px 0}.sample-actions button{width:100%;padding:10px 16px;border:1px solid #3c5160;border-radius:8px;color:#d8e3ea;background:#192630;font-weight:700;cursor:pointer;transition:.15s}.sample-actions button:hover{border-color:var(--cyan);color:#fff;background:#1d303b}.sample-actions button:active{transform:translateY(1px)}
.empty-state[hidden]{display:none}
.palette-canvas{display:none;width:100%;height:94px;margin-top:3px;background:#1b1f22}.palette-canvas.visible{display:block}.status{min-height:20px;margin:8px 4px 0;color:var(--muted);font-size:.76rem}.status.error{color:#ff8a84}
@media(max-width:720px){.app-shell{width:calc(100% - 16px);padding-top:8px}.toolbar{align-items:stretch;flex-direction:column;gap:10px}.primary-tools{align-items:flex-end;gap:10px}.input-actions{display:grid;grid-template-columns:repeat(4,1fr);flex:1}.output-actions{display:grid;grid-template-columns:repeat(2,1fr);width:100%}.actions{gap:5px}.button-help-wrap{display:block}.action-button{width:100%;min-width:0;padding:8px 4px;font-size:.75rem}.image-stage{min-height:300px;max-height:calc(100vh - 280px)}.image-stage canvas{max-height:calc(100vh - 280px)}.palette-canvas{height:68px}}
