:root{--bg:#fff;--text:#1a1a1a;--muted:#5a5a5a;--line:#c9c9c9;--accent:#1f5fbf;--accent-text:#fff;--error:#b00020;--soft:#f3f5f8}@media (prefers-color-scheme:dark){:root{--bg:#15181c;--text:#eceff3;--muted:#a3acb8;--line:#3a4048;--accent:#6aa3ff;--accent-text:#0c1117;--error:#ff6b81;--soft:#1f242b}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:20px/1.5 system-ui,Segoe UI,sans-serif}#app{max-width:52rem;margin:0 auto;padding:1.5rem 1rem 4rem}h1{margin:.5rem 0;font-size:2rem}h2{margin:1.5rem 0 .5rem;font-size:1.25rem}.lead{color:var(--muted)}.back{color:var(--accent);margin-bottom:.5rem;display:inline-block}.tiles{flex-wrap:wrap;gap:.75rem;display:flex}.tile{border:2px solid var(--line);background:var(--soft);min-width:10rem;color:var(--text);border-radius:.6rem;flex-direction:column;justify-content:center;padding:.9rem 1.1rem;text-decoration:none;display:inline-flex}a.tile{border-color:var(--accent);font-weight:600}a.tile:hover,a.tile:focus-visible{outline:3px solid var(--accent)}.tile.soon{opacity:.55}.tile small{color:var(--muted);font-size:.75rem}.drop{text-align:center;cursor:pointer;border:3px dashed var(--line);background:var(--soft);border-radius:.8rem;margin:1rem 0;padding:2.5rem 1rem}.drop.over,.drop:focus-visible{border-color:var(--accent);outline:none}.drop.disabled{opacity:.5;pointer-events:none}.file-info{word-break:break-word;font-weight:600}.options{margin:1rem 0}.radio{cursor:pointer;margin:.5rem 0;display:block}.custom{margin:.5rem 0 0 1.6rem}.custom label{margin:.5rem 0;display:block}.custom input[type=range]{width:100%;max-width:24rem;display:block}.estimate{color:var(--muted);min-height:1.5em}button,.button{font:inherit;cursor:pointer;border:2px solid var(--line);background:var(--soft);color:var(--text);border-radius:.5rem;padding:.7rem 1.4rem;text-decoration:none;display:inline-block}.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:600}button:disabled{opacity:.5;cursor:default}button:focus-visible,.button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.progress-wrap{margin:1rem 0}progress{width:100%;height:1.5rem}.message.error{color:var(--error);font-weight:600}.result{margin-top:1rem}.result .big{font-size:1.5rem;font-weight:700}[hidden]{display:none!important}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.field{margin:.9rem 0;display:block}.field-label{margin-bottom:.25rem;font-weight:600;display:block}.field.check{cursor:pointer}.field input[type=text],.field input[type=number],.field select{font:inherit;border:2px solid var(--line);background:var(--bg);width:100%;max-width:28rem;color:var(--text);border-radius:.4rem;padding:.5rem .6rem}.field input[type=color]{border:2px solid var(--line);background:var(--bg);border-radius:.4rem;width:4rem;height:2.4rem;padding:0}.field input:focus-visible,.field select:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.help{color:var(--muted);margin-top:.2rem;font-size:.85rem;display:block}.note{color:var(--muted)}.file-row{border-bottom:1px solid var(--line);align-items:center;gap:.5rem;padding:.4rem 0;display:flex}.file-row .file-name{word-break:break-word;flex:1;font-weight:600}.file-row .file-size{color:var(--muted);white-space:nowrap;font-size:.9rem}.file-row button{padding:.25rem .7rem}.extra-file{margin:1rem 0}.toolbar{flex-wrap:wrap;gap:.6rem;margin:.8rem 0;display:flex}.thumb-grid{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.9rem;margin-top:1rem;display:grid}.thumb-card{border:2px solid var(--line);background:var(--soft);text-align:center;border-radius:.6rem;padding:.5rem}.thumb-card.removed{opacity:.45}.thumb-card.drop-target{border-color:var(--accent)}.thumb-box{border:1px solid var(--line);color:#555;background:#fff;justify-content:center;align-items:center;width:150px;height:190px;margin:0 auto;font-size:.8rem;display:flex;overflow:hidden}.thumb-canvas{transform-origin:50%;flex:none}.thumb-label{margin:.3rem 0;font-size:.9rem}.thumb-buttons{flex-wrap:wrap;justify-content:center;gap:.25rem;display:flex}.thumb-buttons button{padding:.15rem .5rem;font-size:1rem}.thumb-card{cursor:grab}.crop-stage{border:1px solid var(--line);max-width:100%;margin:1rem 0;line-height:0;display:inline-block;position:relative}.crop-canvas{max-width:100%;height:auto;display:block}.crop-overlay{cursor:crosshair;touch-action:none;position:absolute;inset:0}.crop-box{pointer-events:none;border:2px solid #1f5fbf;position:absolute;box-shadow:0 0 0 9999px #00000073}.update-banner{background:var(--accent);color:var(--accent-text);z-index:10;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex;position:fixed;bottom:0;left:0;right:0}.update-banner button{background:var(--bg);color:var(--text)}
