:root{--bg:#fffdfb;--fg:#1f1b16;--muted:#6d6277;--brand:#5a2a83;--line:#eadff5;--shadow-img:0 10px 28px rgba(0,0,0,.10), 0 2px 6px rgba(0,0,0,.05)}
*{box-sizing:border-box} html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
.wrap{max-width:1100px;margin:0 auto;padding:16px}
a{color:var(--brand);text-decoration:none} a:hover{text-decoration:underline}
h1,h2{line-height:1.2} h1{font-size:2rem;margin:10px 0} h2{font-size:1.5rem;margin:16px 0 12px}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:0 8px 24px rgba(0,0,0,.04);margin:14px 0}
.btn{display:inline-block;background:var(--brand);color:#fff;padding:8px 12px;border-radius:10px;border:0;font-weight:700;cursor:pointer}
.muted{color:var(--muted)} .small{font-size:.92rem}
.alert{background:#fff3f3;border:1px solid #ffd0d0;padding:10px;border-radius:8px;margin:10px 0}
.top{display:flex;gap:14px;align-items:center;justify-content:space-between}
.top nav a{margin-left:12px}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.thumb img{width:100%;border-radius:10px;display:block;box-shadow:var(--shadow-img)}
img.thumb{display:block;border-radius:10px;box-shadow:var(--shadow-img)}
figure img{box-shadow:var(--shadow-img);border-radius:12px}
.row{display:flex;gap:10px;align-items:center}
.badge{font-size:.85rem; padding:2px 8px; border:1px solid var(--line); border-radius:999px}
#dropzone{border:2px dashed var(--brand); border-radius:14px; padding:20px; text-align:center; background:#fff}
#dropzone.highlight{background:#fff7f9}
#queue{list-style:none; padding:0; margin:10px 0 0}
#queue li{display:flex; align-items:center; gap:10px; padding:6px 0; border-bottom:1px solid #f1e7e0}
.progress{flex:1; height:8px; background:#f1e7e0; border-radius:6px; overflow:hidden}
.progress > span{display:block; height:100%; width:0%; background:var(--brand)}

@media (prefers-color-scheme: dark){
  :root{ --shadow-img: 0 10px 28px rgba(0,0,0,.50), 0 0 0 1px rgba(255,255,255,.07); }
}

/* Theme variants (match public site) */
html[data-theme="light"] {
  --bg:#fffdfb; --fg:#1f1b16; --muted:#6d6277; --brand:#5a2a83; --line:#eadff5; --shadow-img:0 16px 38px rgba(0,0,0,.16), 0 4px 10px rgba(0,0,0,.10), 0 0 18px rgba(165,108,255,.10);
}
html[data-theme="dark"] {
  --bg:#0f0d14; --fg:#f5f2fa; --muted:#b3a7bd; --brand:#8c5bc1; --line:#2a2630; --shadow-img:0 0 0 1px rgba(255,255,255,.07), 0 0 16px rgba(255,255,255,.08), 0 0 28px rgba(140,91,193,.20);
}
html[data-theme="purple"] {
  --bg:#2a0e3f; --fg:#f6f0ff; --muted:#cebde2; --brand:#a56cff; --line:#4a2a66; --shadow-img:0 0 0 1px rgba(255,255,255,.08), 0 0 18px rgba(165,108,255,.18), 0 0 30px rgba(165,108,255,.25);
}
@media (prefers-color-scheme: dark){ html[data-theme="auto"] {
  --bg:#0f0d14; --fg:#f5f2fa; --muted:#b3a7bd; --brand:#8c5bc1; --line:#2a2630; --shadow-img:0 0 0 1px rgba(255,255,255,.07), 0 0 16px rgba(255,255,255,.08), 0 0 28px rgba(140,91,193,.20);
} }
