/* ICT Image Tools: scoped UI (.ict-tool). No external fonts/CDNs. Light/dark via prefers-color-scheme. */
.ict-tool{--ict-bg:#fff;--ict-surface:#f6f7fb;--ict-surface2:#eef0f7;--ict-text:#1b1e2b;--ict-muted:#5b6275;--ict-border:#d9dce6;--ict-accent:#3b5bdb;--ict-accent-text:#fff;--ict-accent-soft:#e7ecff;--ict-good:#1e7a46;--ict-bad:#c92a2a;--ict-warn:#a35b00;--ict-radius:14px;--ict-shadow:0 1px 2px rgba(16,24,40,.06),0 8px 24px rgba(16,24,40,.06);
  box-sizing:border-box;color:var(--ict-text);background:var(--ict-bg);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;border:1px solid var(--ict-border);border-radius:calc(var(--ict-radius) + 4px);padding:clamp(12px,2.5vw,24px);margin:1.5rem 0;max-width:100%;container-type:inline-size}
@media (prefers-color-scheme:dark){.ict-tool{--ict-bg:#14161f;--ict-surface:#1c1f2b;--ict-surface2:#252938;--ict-text:#e9ebf3;--ict-muted:#a5abbd;--ict-border:#323748;--ict-accent:#7b93ff;--ict-accent-text:#0d1020;--ict-accent-soft:#232c55;--ict-good:#5fd38d;--ict-bad:#ff8787;--ict-warn:#ffc078;--ict-shadow:none}}
.ict-tool *,.ict-tool *::before,.ict-tool *::after{box-sizing:inherit}
.ict-tool :where(button,input,select,textarea){font:inherit;color:inherit}
.ict-tool :focus-visible{outline:3px solid var(--ict-accent);outline-offset:2px;border-radius:6px}
.ict-tool .ict-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ict-tool .ict-badge{display:inline-flex;align-items:center;gap:.4em;margin:0 0 12px;padding:.3em .8em;border-radius:999px;background:var(--ict-accent-soft);color:var(--ict-text);font-size:.85em;font-weight:600}
.ict-tool .ict-ico{width:1.1em;height:1.1em;fill:currentColor;flex:none}
.ict-tool .ict-badge .ict-ico{color:var(--ict-good)}
/* drop zone */
.ict-tool .ict-drop{display:grid;place-items:center;text-align:center;gap:6px;min-height:200px;padding:28px 16px;border:2px dashed var(--ict-border);border-radius:var(--ict-radius);background:var(--ict-surface);cursor:pointer;transition:border-color .15s,background .15s,transform .15s}
.ict-tool .ict-drop:hover,.ict-tool .ict-drop.ict-over{border-color:var(--ict-accent);background:var(--ict-accent-soft)}
.ict-tool .ict-drop.ict-over{transform:scale(1.01)}
.ict-tool .ict-drop p{margin:0}.ict-tool .ict-drop-title{font-size:1.35em;font-weight:700}.ict-tool .ict-drop-sub{color:var(--ict-muted)}
.ict-tool .ict-accept{font-size:.8em;color:var(--ict-muted);max-width:60ch;word-break:break-word}
.ict-tool .ict-input{display:none}
.ict-tool.ict-has .ict-drop{min-height:0;padding:14px;grid-auto-flow:column;gap:14px;justify-content:center}
.ict-tool.ict-has .ict-drop .ict-accept,.ict-tool.ict-has .ict-drop .ict-drop-sub{display:none}
.ict-tool.ict-has .ict-drop-title{font-size:1em}
/* buttons */
.ict-tool .ict-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45em;min-height:40px;padding:.5em 1em;border:1px solid var(--ict-border);border-radius:10px;background:var(--ict-bg);color:var(--ict-text);font-weight:600;text-decoration:none;cursor:pointer;line-height:1.2;transition:background .15s,border-color .15s}
.ict-tool .ict-btn:hover{border-color:var(--ict-accent);background:var(--ict-accent-soft)}
.ict-tool .ict-primary{background:var(--ict-accent);border-color:var(--ict-accent);color:var(--ict-accent-text)}
.ict-tool .ict-primary:hover{filter:brightness(1.08);background:var(--ict-accent)}
.ict-tool .ict-ghost{background:transparent}
.ict-tool .ict-sm{min-height:34px;padding:.3em .7em;font-size:.88em}
/* workspace */
.ict-tool .ict-work{display:grid;gap:16px;margin-top:16px}
@container (min-width:760px){.ict-tool .ict-work{grid-template-columns:minmax(250px,320px) 1fr;align-items:start}}
.ict-tool .ict-panel{background:var(--ict-surface);border:1px solid var(--ict-border);border-radius:var(--ict-radius);padding:14px}
@container (min-width:760px){.ict-tool .ict-panel{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}}
.ict-tool .ict-h{margin:0 0 10px;font-size:1em;letter-spacing:.02em;text-transform:uppercase;color:var(--ict-muted)}
.ict-tool .ict-field{display:grid;gap:6px;margin:0 0 14px}
.ict-tool .ict-label{font-weight:600;font-size:.92em;display:flex;justify-content:space-between;gap:8px;align-items:center}
.ict-tool .ict-val{font-variant-numeric:tabular-nums;color:var(--ict-accent);font-weight:700}
.ict-tool :where(input[type=text],input[type=number],select,textarea){width:100%;min-height:40px;padding:.45em .6em;border:1px solid var(--ict-border);border-radius:9px;background:var(--ict-bg)}
.ict-tool textarea{resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em}
.ict-tool input[type=color]{width:100%;height:40px;padding:2px;border:1px solid var(--ict-border);border-radius:9px;background:var(--ict-bg)}
.ict-tool input[type=range]{width:100%;accent-color:var(--ict-accent);min-height:28px}
.ict-tool input[type=file]{font-size:.85em;max-width:100%}
.ict-tool .ict-checkf{grid-template-columns:auto 1fr;align-items:center}.ict-tool .ict-checkf input{width:20px;height:20px;accent-color:var(--ict-accent)}
.ict-tool .ict-chips{display:flex;flex-wrap:wrap;gap:6px}
.ict-tool .ict-chip{border:1px solid var(--ict-border);background:var(--ict-bg);border-radius:999px;padding:.3em .8em;font-size:.85em;cursor:pointer;min-height:32px}
.ict-tool .ict-chip:hover{border-color:var(--ict-accent);background:var(--ict-accent-soft)}
.ict-tool .ict-hint{color:var(--ict-muted);font-size:.85em;margin:0 0 12px}
/* preview */
.ict-tool .ict-preview{min-width:0}
.ict-tool .ict-stage:empty::before{content:"";display:block;aspect-ratio:16/9;border-radius:var(--ict-radius);background:repeating-conic-gradient(var(--ict-surface) 0 25%,var(--ict-surface2) 0 50%) 0 0/20px 20px;border:1px solid var(--ict-border)}
.ict-tool .ict-frame,.ict-tool .ict-compare{position:relative;border-radius:var(--ict-radius);overflow:hidden;border:1px solid var(--ict-border);background:repeating-conic-gradient(var(--ict-surface) 0 25%,var(--ict-surface2) 0 50%) 0 0/20px 20px;display:grid;place-items:center}
.ict-tool .ict-frame img,.ict-tool .ict-compare img{display:block;max-width:100%;max-height:70vh;height:auto;width:auto;margin:auto}
.ict-tool .ict-compare{display:block;width:fit-content;max-width:100%;margin:auto}
.ict-tool .ict-compare>img{grid-area:1/1}
.ict-tool .ict-before{position:absolute;inset:0}.ict-tool .ict-before img{width:100%;height:100%;object-fit:contain;max-height:none}
.ict-tool .ict-line{position:absolute;top:0;bottom:0;width:3px;margin-left:-1.5px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.35);pointer-events:none}
.ict-tool .ict-cmp{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}
.ict-tool .ict-cmp:focus-visible+.ict-line,.ict-tool .ict-compare:focus-within .ict-line{background:var(--ict-accent)}
.ict-tool .ict-legend{display:flex;justify-content:space-between;font-size:.8em;color:var(--ict-muted);margin-top:4px}
.ict-tool .ict-split{display:grid;gap:12px}@container (min-width:900px){.ict-tool .ict-split{grid-template-columns:1fr 1fr}}
.ict-tool .ict-split figure{margin:0}.ict-tool figcaption{font-size:.8em;color:var(--ict-muted);margin-top:4px;text-align:center}
.ict-tool .ict-edit{display:block;width:fit-content;margin:auto}.ict-tool .ict-edit img{max-height:60vh}
.ict-tool .ict-overlay{position:absolute;inset:0;touch-action:none;cursor:crosshair}
.ict-tool .ict-sel{position:absolute;display:none;border:2px solid #fff;outline:1px solid rgba(0,0,0,.6);box-shadow:0 0 0 9999px rgba(0,0,0,.45);cursor:move}
.ict-tool .ict-dot{position:absolute;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:var(--ict-accent);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.5);pointer-events:none}
.ict-tool .ict-overlay svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.ict-tool .ict-stroke{fill:none;stroke:#ff2d55;stroke-width:.006;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-width:3px}
.ict-tool .ict-extra{display:grid;gap:12px;margin-top:12px}
.ict-tool .ict-textout textarea{min-height:90px}
.ict-tool .ict-table{width:100%;border-collapse:collapse;font-size:.9em;background:var(--ict-surface);border-radius:10px;overflow:hidden}
.ict-tool .ict-table caption{text-align:left;font-weight:700;padding:6px 0}
.ict-tool .ict-table th,.ict-tool .ict-table td{padding:.5em .7em;border-top:1px solid var(--ict-border);text-align:left;vertical-align:top;white-space:pre-wrap;word-break:break-word}
.ict-tool .ict-table th{width:40%;font-weight:600;color:var(--ict-muted)}
.ict-tool .ict-swatches{display:flex;flex-wrap:wrap;gap:8px}
.ict-tool .ict-swatch{display:flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;border:1px solid var(--ict-border);border-radius:10px;background:var(--ict-bg);cursor:pointer;font-family:ui-monospace,monospace;font-size:.85em}
.ict-tool .ict-swatch span{width:28px;height:28px;border-radius:6px;border:1px solid rgba(0,0,0,.15)}
.ict-tool audio{width:100%}
/* bar + queue */
.ict-tool .ict-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:16px}
.ict-tool .ict-summary{margin-right:auto;color:var(--ict-muted);font-weight:600}
.ict-tool .ict-queue{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.ict-tool .ict-item{display:grid;grid-template-columns:48px 1fr auto;grid-template-areas:"t i p" "t g g" "a a a" "e e e";gap:4px 12px;align-items:center;padding:10px;border:1px solid var(--ict-border);border-radius:12px;background:var(--ict-bg);cursor:pointer}
@container (min-width:700px){.ict-tool .ict-item{grid-template-columns:48px 1fr auto 120px auto;grid-template-areas:"t i p g a" "e e e e e"}}
.ict-tool .ict-item.ict-cur{border-color:var(--ict-accent);box-shadow:0 0 0 2px var(--ict-accent-soft)}
.ict-tool .ict-thumb{grid-area:t;width:48px;height:48px;border-radius:8px;overflow:hidden;background:var(--ict-surface2)}.ict-tool .ict-thumb img{width:100%;height:100%;object-fit:cover}
.ict-tool .ict-info{grid-area:i;min-width:0;display:grid}.ict-tool .ict-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ict-tool .ict-meta{font-size:.82em;color:var(--ict-muted);font-variant-numeric:tabular-nums}
.ict-tool .ict-good{color:var(--ict-good)}.ict-tool .ict-more{color:var(--ict-warn)}
.ict-tool .ict-pill{grid-area:p;font-size:.75em;font-weight:700;padding:.2em .6em;border-radius:999px;background:var(--ict-surface2);white-space:nowrap}
.ict-tool .ict-done .ict-pill{background:color-mix(in srgb,var(--ict-good) 18%,transparent);color:var(--ict-good)}
.ict-tool .ict-error .ict-pill{background:color-mix(in srgb,var(--ict-bad) 18%,transparent);color:var(--ict-bad)}
.ict-tool .ict-working .ict-pill{background:var(--ict-accent-soft);color:var(--ict-accent)}
.ict-tool .ict-item progress{grid-area:g;width:100%;height:6px;appearance:none;border:0;border-radius:99px;background:var(--ict-surface2);overflow:hidden;accent-color:var(--ict-accent)}
.ict-tool progress::-webkit-progress-bar{background:var(--ict-surface2)}.ict-tool progress::-webkit-progress-value{background:var(--ict-accent);border-radius:99px}.ict-tool progress::-moz-progress-bar{background:var(--ict-accent)}
.ict-tool .ict-acts{grid-area:a;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.ict-tool .ict-item>p{grid-area:e;margin:0;font-size:.85em}
.ict-tool p.ict-error{color:var(--ict-bad)}.ict-tool .ict-note{color:var(--ict-warn)}
.ict-tool.ict-gen .ict-work{margin-top:0}
.ict-tool.ict-gen .ict-queue{display:none}
.ict-fullscreen{position:fixed;inset:0;z-index:2147483647;cursor:pointer}
@media (prefers-reduced-motion:reduce){.ict-tool *{transition:none!important}}
/* grid + related (shortcodes) */
.ict-grid{container-type:inline-size}.ict-grid .ict-search{width:100%;min-height:44px;padding:.5em .8em;border:1px solid #ccd;border-radius:10px;font:inherit;margin-bottom:12px}
.ict-grid .ict-cat{margin:1.2em 0 .4em;font-size:1.05em}.ict-cards{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.ict-card a{display:block;padding:.7em .9em;border:1px solid #d9dce6;border-radius:10px;text-decoration:none;font-weight:600}.ict-card a:hover,.ict-card a:focus-visible{border-color:#3b5bdb}
.ict-related{margin:1.5em 0}
.ict-tool.ict-ready:not(.ict-has):not(.ict-gen) .ict-preview{display:none}
