/* Cape Maker — every rule scoped under #tool, colours from the site tokens only. */
#tool .cpk{font-family:var(--fb);color:var(--ink);display:grid;gap:14px}
#tool .cpk *{box-sizing:border-box}
#tool .cpk-layout{display:grid;gap:14px;grid-template-columns:minmax(0,1fr)}
#tool .cpk-side,#tool .cpk-main{display:grid;gap:14px;align-content:start;min-width:0}
@media (min-width:720px){
  #tool .cpk-layout{grid-template-columns:minmax(0,290px) minmax(0,1fr)}
  #tool .cpk-side{position:sticky;top:12px;align-self:start}
}
#tool .cpk-card{border:1px solid var(--line);border-radius:16px;background:var(--card);padding:14px;min-width:0}
#tool .cpk-card h2{font:700 17px/1.2 var(--fh);margin:0 0 10px;color:var(--ink)}
#tool .cpk-card h2:not(:first-child){margin-top:16px}
#tool .cpk-hint{color:var(--soft);font-size:14px;line-height:1.45;margin:0 0 10px}
#tool .cpk-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 0}
#tool .cpk-label{color:var(--soft);font-size:14px;font-weight:600;min-width:74px}

/* buttons */
#tool button{font:inherit;color:inherit}
#tool button.go,#tool label.go{border:0;cursor:pointer;color:#fff}
#tool .cpk-btn,#tool .cpk-chip,#tool .cpk-seg button,#tool .cpk-tabs button{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:0 12px;
  border:1px solid var(--line);border-radius:10px;background:var(--soft-bg);color:var(--ink);
  font:600 14px var(--fb);cursor:pointer;user-select:none;-webkit-user-select:none}
#tool .cpk-btn:hover,#tool .cpk-chip:hover,#tool .cpk-seg button:hover{border-color:var(--go)}
#tool .cpk-btn:disabled{opacity:.45;cursor:default;border-color:var(--line)}
#tool button[aria-pressed=true]{background:var(--chip);border-color:var(--go);color:var(--ink)}
#tool .cpk-btn:focus-visible,#tool .cpk-chip:focus-visible,#tool .cpk-seg button:focus-visible,
#tool .cpk-tabs button:focus-visible,#tool .go:focus-visible{outline:2px solid var(--go);outline-offset:2px}
#tool .cpk-chips{display:flex;flex-wrap:wrap;gap:7px}
#tool .cpk-chip{min-height:36px;border-radius:99px;padding:0 13px}
#tool .cpk-preset i{width:16px;height:16px;border-radius:5px;display:inline-block;border:1px solid var(--line)}
#tool .cpk-seg{display:inline-flex;flex-wrap:wrap;gap:6px}
#tool .cpk-link{background:none;border:0;padding:6px 0;color:var(--soft);font-size:14px;text-decoration:underline;cursor:pointer}
#tool .cpk-file{position:relative;overflow:hidden}
#tool .cpk-file input{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0}

/* tabs */
#tool .cpk-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
#tool .cpk-tabs button{min-height:44px;padding:0 4px;font:700 15px var(--fh)}
#tool .cpk-tabs button[aria-selected=true]{background:var(--go);border-color:var(--go);color:#fff}

/* form bits */
#tool .cpk-colors{display:flex;flex-wrap:wrap;gap:10px 16px;margin:12px 0 0}
#tool .cpk-colors label{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--ink)}
#tool input[type=color]{width:44px;height:36px;padding:2px;border:1px solid var(--line);border-radius:9px;background:var(--card);cursor:pointer}
#tool input[type=checkbox]{width:18px;height:18px;accent-color:var(--go)}
#tool select,#tool textarea,#tool input[type=text]{font:500 15px var(--fb);color:var(--ink);background:var(--card);
  border:1px solid var(--line);border-radius:10px;padding:8px 10px;min-height:38px}
#tool textarea{width:100%;resize:vertical;font:700 18px/1.3 var(--fb);letter-spacing:.08em;text-transform:uppercase}
#tool input[type=text]{width:110px;font-family:ui-monospace,Menlo,Consolas,monospace}
#tool select:focus,#tool textarea:focus,#tool input[type=text]:focus{outline:2px solid var(--go);outline-offset:1px}
#tool .cpk-range{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:10px;margin:12px 0 0;font-size:14px;color:var(--soft);font-weight:600}
#tool .cpk-range[hidden]{display:none}
#tool input[type=range]{width:100%;accent-color:var(--go)}
#tool .cpk-textwarn{margin:8px 0 0;font-size:14px;color:var(--ink);background:var(--soft-bg);border-left:3px solid var(--go);padding:6px 10px;border-radius:6px}
#tool .cpk-imginfo{font-size:14px;color:var(--soft);margin:10px 0 0;overflow-wrap:anywhere}
#tool [hidden]{display:none !important}

/* preview */
#tool .cpk-3d{position:relative;border-radius:12px;background:var(--soft-bg);overflow:hidden;min-height:220px}
#tool .cpk-3d canvas{display:block;margin:0 auto;touch-action:none;cursor:grab}
#tool .cpk-3dmsg{margin:0;padding:24px 16px;color:var(--soft);font-size:14px;text-align:center}
#tool .cpk-viewbtns .cpk-btn{min-height:34px;padding:0 10px;font-size:13px}
#tool .cpk-sheet{margin:12px 0 0}
#tool .cpk-sheet canvas,#tool .cpk-ed canvas{image-rendering:pixelated;image-rendering:crisp-edges;display:block;
  background-color:var(--card);background-image:conic-gradient(var(--soft-bg) 25%,var(--line) 0 50%,var(--soft-bg) 0 75%,var(--line) 0);
  background-size:12px 12px;border:1px solid var(--line);border-radius:6px}
#tool .cpk-sheet canvas{width:100%;height:auto;aspect-ratio:2/1}
#tool .cpk-sheet p{margin:6px 0 0;font-size:13px;color:var(--soft)}

/* pixel editor */
#tool .cpk-ed{margin:12px 0 0;display:flex;justify-content:center;overflow:auto;max-width:100%}
#tool .cpk-ed canvas{touch-action:none;cursor:crosshair;border-radius:4px}
#tool .cpk[data-tool=pick] .cpk-ed canvas{cursor:copy}
#tool .cpk-tools .cpk-btn{min-width:64px}
#tool .cpk-pal{margin-top:12px}
#tool .cpk-swatches{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;margin:10px 0 0}
#tool .cpk-swatches button{aspect-ratio:1;min-height:0;width:100%;border:1px solid var(--line);border-radius:7px;cursor:pointer;padding:0}
#tool .cpk-swatches button[aria-pressed=true]{outline:2px solid var(--go);outline-offset:2px}

/* download + note */
#tool .cpk-save .cpk-row{margin-top:0}
#tool .cpk-save .go{flex:1 1 200px}
#tool .cpk-hd{min-height:46px}
#tool .cpk-status{min-height:1.4em;margin:10px 0 0;font-size:14px;color:var(--soft)}
#tool .cpk-status.is-bad{color:var(--ink);font-weight:600}
#tool .cpk-note p,#tool .cpk-note li{font-size:15px;line-height:1.55;color:var(--ink)}
#tool .cpk-note p{margin:0 0 10px}
#tool .cpk-note ul{margin:0 0 10px;padding-left:20px}
#tool .cpk-note li{margin:0 0 6px}
#tool .cpk-note code{font-size:13px;background:var(--soft-bg);border:1px solid var(--line);border-radius:5px;padding:0 4px;overflow-wrap:anywhere}

@media (max-width:420px){
  #tool .cpk-card{padding:12px}
  #tool .cpk-range{grid-template-columns:82px minmax(0,1fr)}
  #tool .cpk-tabs button{font-size:14px}
}
