:root { --bg:#fff8ef; --card:#fff; --ink:#1f2937; --muted:#6b7280; --accent:#f59e0b; --green:#16a34a; --red:#dc2626; }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif; background:var(--bg); color:var(--ink); }
header { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.5rem; padding:.8rem 1rem; background:#1f2937; color:#fff; position:sticky; top:0; z-index:5; }
header a { color:#fff; text-decoration:none; }
.brand { font-weight:700; }
nav a { margin-left:1rem; opacity:.9; }
main { max-width:760px; margin:0 auto; padding:1rem; }
.card { background:var(--card); border-radius:14px; padding:1rem; margin-bottom:1rem; box-shadow:0 1px 3px rgba(0,0,0,.08); }
.narrow { max-width:420px; margin:2rem auto; }
h1 { font-size:1.3rem; margin:.2rem 0 .6rem; } h2 { font-size:1.05rem; margin:0 0 .8rem; }
label { display:block; margin-bottom:.9rem; font-weight:600; font-size:.92rem; }
input, select, textarea { width:100%; margin-top:.3rem; padding:.65rem; border:1px solid #d1d5db; border-radius:10px; font:inherit; font-weight:400; background:#fff; }
input[type=file] { padding:.4rem; }
.mono { font-family: ui-monospace, Consolas, monospace; font-size:.82rem; }
button, .btn { display:inline-block; background:var(--accent); color:#111; border:0; padding:.7rem 1rem; border-radius:10px; font:inherit; font-weight:700; cursor:pointer; text-decoration:none; }
button.green { background:var(--green); color:#fff; } button.danger { background:transparent; color:var(--red); margin-top:.5rem; }
button.ghost { background:#e5e7eb; }
.row { display:flex; gap:.5rem; align-items:center; } .row select, .row input { margin:0; flex:1; }
.wrap { flex-wrap:wrap; } .row form { margin:0; }
.muted { color:var(--muted); } .small { font-size:.82rem; font-weight:400; display:block; margin-top:.2rem; }
.flash { background:#fef3c7; border:1px solid #fcd34d; padding:.7rem 1rem; border-radius:10px; margin-bottom:1rem; }
.warn { background:#fee2e2; color:#991b1b; padding:.6rem .8rem; border-radius:10px; font-size:.9rem; word-break:break-word; }
.checks { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:.6rem; }
.chip { padding:.3rem .6rem; border-radius:999px; font-size:.82rem; } .chip.ok { background:#dcfce7; } .chip.ko { background:#fee2e2; }
.ep { display:flex; gap:.7rem; align-items:center; padding:.7rem 0; border-top:1px solid #f1f1f1; color:inherit; text-decoration:none; }
.ep-date { width:4.2rem; font-weight:700; font-size:.85rem; } .ep-body { flex:1; min-width:0; }
.ep-title { font-weight:600; overflow:hidden; text-overflow:ellipsis; }
.ep-status { font-size:.78rem; padding:.25rem .5rem; border-radius:8px; background:#f3f4f6; white-space:nowrap; }
.s-pending_approval { background:#fef3c7; } .s-approved { background:#dcfce7; } .s-published { background:#dbeafe; }
.s-failed, .s-rejected { background:#fee2e2; } .s-generating { background:#ede9fe; }
.tag { font-size:.7rem; background:#fde68a; padding:.1rem .4rem; border-radius:6px; vertical-align:middle; }
.player { width:100%; max-height:70vh; background:#000; border-radius:12px; margin:.5rem 0 1rem; }
.char { max-width:180px; border-radius:12px; display:block; margin-bottom:.7rem; }
.sticky { position:sticky; bottom:0; padding:.6rem 0; background:linear-gradient(transparent, var(--bg) 35%); }
.sticky button { width:100%; }
code { background:#f3f4f6; padding:.1rem .3rem; border-radius:5px; word-break:break-all; }
.gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:.6rem; margin-bottom:.8rem; }
.ph { border:2px solid transparent; border-radius:12px; overflow:hidden; background:#f3f4f6; }
.ph.used { border-color:var(--accent); }
.ph img { width:100%; aspect-ratio:3/4; object-fit:cover; display:block; }
.ph-bar { display:flex; justify-content:space-between; align-items:center; padding:.2rem .3rem; }
.ph-bar form { margin:0; } .ph-bar .small { margin:0; }
button.mini { padding:.2rem .45rem; font-size:.9rem; background:transparent; }
