:root{--accent:#9F1239;--tint:color-mix(in oklab,var(--accent) 7%,var(--surface));--tint2:color-mix(in oklab,var(--accent) 14%,var(--surface))}
@media (prefers-color-scheme:dark){:root{--accent:#FB7185;--accent-ink:#2a0710}}
.btn.xl{min-height:54px;padding:14px 26px;font-size:17px;border-radius:12px}
.pf-drop{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:44px 20px;border:2px dashed color-mix(in oklab,var(--accent) 35%,var(--line));border-radius:var(--r-panel);background:var(--tint);transition:background .15s,border-color .15s}
.pf-drop p{margin:0;color:var(--muted)}
.pf-ico{color:var(--accent)}
.pf-safe{font-size:13px;display:flex;align-items:center;gap:6px}
.pf-safe::before{content:"";width:8px;height:8px;border-radius:50%;background:#16a34a;flex:none}
#pf.dragging .pf-drop,#pf.dragging .pf-work{border-color:var(--accent);background:var(--tint2)}
.pf-work{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface);padding:18px;box-shadow:var(--shadow)}
@media (max-width:600px){.pf-work{padding:14px}}
.pf-head{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;margin-bottom:14px}
.pf-head b{font-size:16px;word-break:break-all}.pf-head span{color:var(--muted);font-size:14px}
.pf-opts{margin-top:16px}
.pf-opts:empty{display:none}
.pf-opts .seg{flex-wrap:wrap}
.pf-go{margin-top:18px;display:flex;justify-content:center}
.pf-go .btn{min-width:220px}
.pf-msg{color:#c2410c;font-weight:600;min-height:1em;margin:12px 0 0}
@media (prefers-color-scheme:dark){.pf-msg{color:#fb923c}}
.spin{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite;display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}

/* file list (merge) */
.fl{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.fl li{display:flex;align-items:center;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--bg)}
.fl-t{flex:1;min-width:0;display:grid}.fl-t b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fl-t span{font-size:13px;color:var(--muted)}
.fl-a{display:flex;gap:2px}
.th{display:grid;place-items:center;overflow:hidden}
.th canvas,.th img{max-width:100%;max-height:100%;transform:rotate(var(--r,0deg));transition:transform .2s cubic-bezier(.16,1,.3,1);box-shadow:0 1px 3px rgba(0,0,0,.18);background:#fff}
.th.mini{width:44px;height:56px;flex:none}
.th .ph{width:70%;height:86%;background:var(--surface-2);border-radius:3px}
.ib{display:inline-grid;place-items:center;width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;padding:0}
.ib:hover:not(:disabled){background:var(--surface-2);color:var(--text)}
.ib:disabled{opacity:.3;cursor:default}
.grip{cursor:grab;touch-action:none}
.lift{opacity:.75;box-shadow:0 8px 24px -8px rgba(0,0,0,.35);outline:2px solid var(--accent)}

/* page grid */
.pg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px;max-height:62vh;overflow:auto;padding:2px}
@media (max-width:600px){.pg-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}}
.pg{border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--bg);padding:8px;display:grid;gap:6px;position:relative}
.th-box{position:relative;aspect-ratio:1;display:grid;place-items:center;border-radius:6px}
.th-box .th{width:100%;height:100%}
.pg-bar{display:flex;align-items:center;justify-content:center;gap:0}
.pg-n{font-size:13px;font-weight:700;color:var(--muted);margin-right:auto;padding-left:4px;font-variant-numeric:tabular-nums}
.tick{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:50%;display:none;place-items:center;background:var(--accent);color:var(--accent-ink)}
.tick svg{width:18px;height:18px}
.pg-grid.selecting .th-box{cursor:pointer}
.pg.sel{border-color:var(--accent);background:var(--tint2)}.pg.sel .tick{display:grid}

/* compress levels */
.lv{display:grid;gap:8px}
.lv-o{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-ctl);cursor:pointer;margin:0;font-weight:400}
.lv-o input{margin-top:4px;accent-color:var(--accent);width:18px;height:18px;flex:none}
.lv-o b{display:block}.lv-o small{color:var(--muted);font-size:14px}
.lv-o:has(input:checked){border-color:var(--accent);background:var(--tint)}
input[type=color]{width:100%;height:44px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--bg);padding:4px}
input[type=range]{width:100%;accent-color:var(--accent)}
input[type=file]{font:inherit;font-size:14px;max-width:100%}
output{color:var(--muted);font-weight:500}

/* result */
.pf-out{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface);padding:24px;box-shadow:var(--shadow);display:grid;gap:16px}
.pf-done{display:flex;gap:14px;align-items:center}
.pf-done b{display:block;font-size:20px}.pf-done span{color:var(--muted);word-break:break-all}
.okc{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:color-mix(in oklab,#16a34a 15%,var(--surface));color:#16a34a;flex:none}
.pf-note{margin:0;padding:10px 14px;border-radius:var(--r-ctl);background:var(--surface-2)}
.out-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:280px;overflow:auto}
.out-list li{display:flex;justify-content:space-between;gap:12px;padding:6px 10px;border-radius:8px;font-size:14px}
.out-list li:nth-child(odd){background:var(--surface-2)}
.out-list a{word-break:break-all}.out-list span{color:var(--muted);white-space:nowrap}

/* tool cards */
.tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;list-style:none;margin:0;padding:0}
.tools a{display:flex;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface);text-decoration:none}
.tools a:hover{border-color:color-mix(in oklab,var(--accent) 50%,var(--line))}
.tools a[aria-current]{border-color:var(--accent);background:var(--tint)}
.tools i{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--tint2);color:var(--accent);font-style:normal;font-weight:800;font-size:13px;flex:none}
.tools b{display:block}.tools span{font-size:13px;color:var(--muted)}
