.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:200px;border:2px dashed var(--rule);border-radius:16px;background:var(--card);cursor:pointer;text-align:center;padding:20px;transition:border-color .2s,background .2s}
.drop:hover,.drop.over{border-color:var(--teal);background:var(--teal-soft)}
.drop-main{font-weight:700;font-size:1.1rem}.drop-sub{color:var(--muted);font-size:.86rem}
.drop[hidden],#work[hidden]{display:none}
.bar{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;margin-bottom:12px}
.file-info{overflow-wrap:anywhere}
.actions{display:flex;flex-wrap:wrap;gap:6px}
button{font:inherit;font-size:.9rem;cursor:pointer;border:1px solid var(--rule);background:var(--card);color:var(--ink);border-radius:8px;padding:6px 12px}
button:hover{border-color:var(--teal)}
button:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.range{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;font-size:.92rem}
.range input{flex:1;min-width:180px;font:inherit;border:1px solid var(--rule);border-radius:8px;padding:7px 10px;background:var(--card)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:12px}
.cell{position:relative;padding:6px;border:2px solid var(--rule);border-radius:10px;background:var(--card)}
.cell canvas{display:block;width:100%;height:auto;border-radius:4px;background:#f1f1ef}
.cell .num{position:absolute;left:8px;bottom:8px;font-size:.75rem;font-weight:700;background:rgba(255,255,255,.9);border-radius:6px;padding:0 6px}
.cell.on{border-color:var(--teal);background:var(--teal-soft)}
.cell.on::after{content:"✓";position:absolute;top:6px;right:8px;width:22px;height:22px;border-radius:50%;background:var(--teal);color:#fff;font-weight:800;font-size:.8rem;display:flex;align-items:center;justify-content:center}
.go{position:sticky;bottom:0;display:flex;gap:12px;align-items:center;justify-content:flex-end;padding:12px 0;margin-top:14px;background:linear-gradient(to top,var(--bg) 70%,transparent)}
.primary{background:var(--teal);color:#fff;border-color:var(--teal);font-weight:700;padding:10px 18px}
.primary:disabled{opacity:.45;cursor:not-allowed}
.msg{min-height:1.7em;font-size:.92rem;color:var(--teal)}.msg.err{color:var(--red)}
.faq{margin-top:26px;background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:10px 16px}
.faq summary{cursor:pointer;font-weight:700}.faq ul{padding-left:20px;font-size:.92rem}
