/* tool styles, tokenised onto the shared design system */
*{box-sizing:border-box}
  .wrap{max-width:560px;margin:0 auto;padding:18px 16px 64px}
  h1{font-size:24px;margin:0 0 2px}
  .sub{color:var(--muted);margin:0 0 16px}
  #drop{display:block;position:relative;border:2px dashed var(--line-strong);border-radius:16px;padding:38px 20px;text-align:center;color:var(--muted);cursor:pointer;background:var(--surface)}
  #drop.over{border-color:var(--accent);background:var(--accent-weak);color:var(--accent)}
  #drop strong{color:var(--ink);font-size:17px}
  #drop input{position:absolute;width:1px;height:1px;opacity:0}
  #status{text-align:center;color:var(--muted);min-height:20px;margin:10px 0}
  #app{display:none}
  .stageWrap{text-align:center;margin-bottom:14px}
  .cbox{display:inline-block;background:conic-gradient(var(--chk1) 25%,#0000 0 50%,var(--chk1) 0 75%,#0000 0) 0 0/16px 16px,var(--chk2);border:1px solid var(--line);border-radius:14px;padding:10px;max-width:100%}
  canvas{display:block;image-rendering:pixelated;max-width:280px;height:auto;margin:0 auto;cursor:crosshair}
  .hint{min-height:22px;color:var(--accent);font-weight:600;margin:10px 0 0}
  .card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:12px}
  .q{font-size:17px;font-weight:700;margin:0 0 12px}
  .choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .big{display:flex;flex-direction:column;gap:3px;align-items:flex-start;text-align:left;border:2px solid var(--line);background:var(--surface);border-radius:12px;padding:14px;cursor:pointer;font:inherit}
  .big b{font-size:16px}
  .big span{font-size:13px;color:var(--muted)}
  .big[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-weak)}
  .chips{display:flex;flex-wrap:wrap;gap:10px}
  .chip{display:flex;align-items:center;gap:8px;border:2px solid var(--line);background:var(--surface);border-radius:999px;padding:8px 10px;cursor:pointer;font:inherit;font-size:15px}
  .chip[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-weak)}
  .chip.clash{border-color:var(--warn);background:var(--surface)5f0}
  .chip .dot{width:22px;height:22px;border-radius:50%;border:1px solid var(--line-strong);flex:0 0 auto}
  .chip .dot.empty{background:repeating-linear-gradient(45deg,var(--chk1) 0 5px,var(--chk2) 0 10px)}
  .chip .clr{border:0;background:#0000;color:var(--muted);cursor:pointer;font-size:18px;line-height:1;padding:0 2px}
  .row{display:flex;align-items:center;gap:10px}
  .swatch{width:26px;height:26px;border-radius:7px;border:1px solid var(--line-strong)}
  .swatch.empty{background:repeating-linear-gradient(45deg,var(--chk1) 0 5px,var(--chk2) 0 10px)}
  .tiny{font-size:13px;color:var(--muted)}
  .link{border:0;background:#0000;color:var(--accent);cursor:pointer;font:inherit;font-size:14px;padding:8px 0 0;text-decoration:underline}
  .download{width:100%;border:0;background:var(--accent);color:var(--accent-ink);font:inherit;font-weight:700;font-size:17px;padding:15px;border-radius:14px;cursor:pointer}
  .download:disabled{opacity:.5;cursor:not-allowed}
  .fname{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:13px;color:var(--muted)}
  .fname input{flex:1;min-width:0;font:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;color:var(--ink)}
  .ok{color:var(--ok)} .warn{color:var(--warn)}
  #loupe{position:fixed;z-index:60;pointer-events:none;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:6px;box-shadow:0 8px 28px #0003;text-align:center}
  #loupe canvas{display:block;border-radius:8px;image-rendering:pixelated}
  #loupeHex{margin-top:5px;font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}
  #loupeName{font-size:12px;font-weight:700;color:var(--ink);margin-bottom:4px}
  #loupeHex.taken{color:var(--warn);font-weight:700}
  .palrow{display:flex;flex-wrap:wrap;gap:8px}
  .palcell{display:flex;flex-direction:column;align-items:center;gap:3px;width:56px;text-align:center}
  .psw{width:26px;height:26px;border-radius:6px;border:1px solid var(--line-strong)}
  .psw.empty{background:repeating-linear-gradient(45deg,var(--chk1) 0 5px,var(--chk2) 0 10px)}
  .plab{font-size:11px;color:var(--muted);line-height:1.15}
  #extra .psw{width:22px;height:22px}
  @media (max-width:480px){ body{padding:12px} .choice{grid-template-columns:1fr} canvas{max-width:240px} }
