:root{--bg:#faf8f5;--fg:#1c1b1a;--muted:#6f6a63;--card:#fff;--line:#e4dfd8;--accent:#8a5a2b;--accent-fg:#fff;--ok:#2f7d4f;--warn:#b26a00;--bad:#b3261e}
@media (prefers-color-scheme:dark){:root{--bg:#161514;--fg:#f0ede8;--muted:#a39c92;--card:#201f1d;--line:#34312d;--accent:#d29a5e;--accent-fg:#1a1208;--ok:#6cc08b;--warn:#e0a24a;--bad:#f2867f}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}
.wrap{max-width:960px;margin:0 auto;padding:24px 16px 64px}
header.site{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;color:var(--muted);font-size:14px}
header.site strong{color:var(--fg);font-size:16px;letter-spacing:.02em}
h1{font-size:26px;line-height:1.2;margin:0 0 8px}
p.lead{color:var(--muted);margin:0 0 20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}
input[type=email],input[type=text],textarea{width:100%;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);font:inherit}
textarea{min-height:110px;font-family:ui-monospace,monospace;font-size:14px}
button,.btn{display:inline-block;background:var(--accent);color:var(--accent-fg);border:0;border-radius:8px;padding:12px 20px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
button.secondary,.btn.secondary{background:transparent;color:var(--fg);border:1px solid var(--line)}
button.small{padding:6px 10px;font-size:13px}
button.danger{background:transparent;color:var(--bad);border:1px solid var(--bad)}
button:disabled{opacity:.45;cursor:not-allowed}
.msg{padding:12px 14px;border-radius:8px;margin-bottom:16px;border:1px solid var(--line);background:var(--card)}
.msg.error{border-color:var(--bad);color:var(--bad)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin:16px 0}
.grid label{display:block;cursor:pointer;position:relative}
.grid input{position:absolute;opacity:0}
.thumb{border:3px solid transparent;border-radius:10px;overflow:hidden;background:var(--card);box-shadow:0 0 0 1px var(--line)}
.thumb img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
.thumb span{display:block;padding:6px 8px;font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.grid input:checked + .thumb{border-color:var(--accent)}
.grid input:focus-visible + .thumb{outline:2px solid var(--fg)}
.bar{position:sticky;bottom:0;background:var(--bg);padding:12px 0;border-top:1px solid var(--line);display:flex;gap:12px;align-items:center;justify-content:space-between}
.single{max-width:420px;margin:0 auto;text-align:center}
.single img{width:100%;border-radius:10px}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--muted);font-weight:600;white-space:nowrap}
.pill{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:600;border:1px solid currentColor;white-space:nowrap}
.s-downloaded{color:var(--ok)}.s-chosen{color:var(--warn)}.s-visited{color:var(--accent)}.s-waiting{color:var(--muted)}.s-empty{color:var(--bad)}
.kpis{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 20px}
.kpi{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:10px 14px;min-width:120px}
.kpi b{display:block;font-size:22px}
.tablewrap{overflow-x:auto}
form.inline{display:inline}
.muted{color:var(--muted)}
code{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-size:13px}

.brand{display:inline-flex;line-height:0}
.brand img{height:64px;width:auto}

.grid label{position:relative}
.eye{position:absolute;top:8px;right:8px;width:38px;height:38px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;border:1px solid rgba(255,255,255,.55);cursor:zoom-in}
.eye:hover,.eye:focus-visible{background:rgba(0,0,0,.85)}
.lb{position:fixed;inset:0;z-index:50;background:#050505;display:flex;align-items:center;justify-content:center}
.lb[hidden]{display:none}
.lb img{max-width:100vw;max-height:calc(100vh - 70px);object-fit:contain;margin-bottom:60px}
.lb button{color:#fff}
.lb-close{position:absolute;top:10px;right:14px;width:46px;height:46px;font-size:34px;line-height:1;background:rgba(255,255,255,.14);border:0;border-radius:50%;padding:0}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:64px;font-size:26px;background:rgba(255,255,255,.14);border:0;padding:0;border-radius:8px}
.lb-prev{left:8px}.lb-next{right:8px}
.lb-bar{position:absolute;left:0;right:0;bottom:0;padding:10px 14px;display:flex;gap:12px;align-items:center;justify-content:space-between;background:rgba(0,0,0,.7);color:#fff;font-size:14px}
.lb-bar span{overflow-wrap:anywhere}
.lb-bar button{background:var(--accent);color:var(--accent-fg);padding:10px 16px;flex:none}

.site-foot{margin-top:40px;padding-top:16px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}

.wrap.wide{max-width:1360px}
.errtxt{display:inline-block;max-width:230px;overflow-wrap:anywhere;font-size:12px}
td form.inline{margin:2px 2px 2px 0}

.notice{background:var(--card,#f3f4f6);border:1px solid var(--line);border-radius:8px;padding:.6rem .8rem;font-size:.9rem;margin:.6rem 0}
#lb-note{font-size:.8rem;opacity:.85;margin-right:.8rem}
