:root{--bg:#0b0d14;--card:#141826;--card2:#1b2033;--line:#262c44;--tx:#e8ebf5;--mu:#8a92b2;--ac:#ff2d6f;--ac2:#25f4ee;--ok:#3ddc97;--bad:#ff5a6a;--warn:#ffc35a}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(1200px 600px at 80% -10%,#2a1240 0,transparent 60%),radial-gradient(900px 500px at -10% 10%,#0d2b3a 0,transparent 55%),var(--bg);color:var(--tx);font:15px/1.45 -apple-system,Segoe UI,Inter,Roboto,Arial,sans-serif;min-height:100vh}
a{color:var(--ac2);text-decoration:none}a:hover{text-decoration:underline}
.top{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;border-bottom:1px solid var(--line);background:rgba(11,13,20,.7);backdrop-filter:blur(10px);position:sticky;top:0;z-index:5}
.brand{font-size:20px;color:var(--tx);font-weight:600;letter-spacing:.3px}.brand b{background:linear-gradient(90deg,var(--ac),var(--ac2));-webkit-background-clip:text;color:transparent}.brand.big{font-size:30px;margin-bottom:4px}
nav a{color:var(--mu);margin-left:22px;font-weight:500}nav a.on{color:var(--tx)}nav a:hover{color:var(--tx);text-decoration:none}
main{max-width:1400px;margin:0 auto;padding:24px 28px}footer{text-align:center;color:var(--mu);padding:30px;font-size:13px}footer a{color:var(--mu)}
.card{background:linear-gradient(180deg,var(--card),#121524);border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:18px}
h2{margin:0 0 14px;font-size:18px}.muted{color:var(--mu)}.hint{color:var(--mu);font-size:13px;margin:6px 0 12px}
.row{display:flex;align-items:center}.between{justify-content:space-between}.gap{gap:10px}.wrap{flex-wrap:wrap}
.status{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stat{margin:0}.stat .lbl{color:var(--mu);font-size:12px;text-transform:uppercase;letter-spacing:.8px}.stat .val{font-size:19px;font-weight:600;margin:6px 0 2px}.stat .sub{color:var(--mu);font-size:13px}
.ok{color:var(--ok)}.bad{color:var(--bad)}
.btn{display:inline-flex;align-items:center;gap:6px;background:var(--card2);color:var(--tx);border:1px solid var(--line);border-radius:10px;padding:9px 14px;font:inherit;font-weight:500;cursor:pointer;text-decoration:none!important;white-space:nowrap}.btn:hover{border-color:#3a4366;background:#222842}
.btn.primary{background:linear-gradient(90deg,var(--ac),#ff5a8a);border:0;color:#fff}.btn.primary:hover{filter:brightness(1.1)}.btn.ghost{background:transparent}.btn.sm{padding:5px 10px;font-size:13px;border-radius:8px}.btn.wide{width:100%;justify-content:center}
.pill{padding:6px 12px;border-radius:99px;background:var(--card2);font-size:13px}.pill.live{color:var(--warn);animation:pulse 1.6s infinite}@keyframes pulse{50%{opacity:.55}}
.funnel{display:flex;flex-direction:column;gap:9px;margin-top:6px}.fstep{display:grid;grid-template-columns:1fr 170px;align-items:center;gap:14px}
.fbar{height:34px;border-radius:9px;background:linear-gradient(90deg,var(--ac),var(--ac2));display:flex;align-items:center;justify-content:flex-end;padding:0 12px;font-weight:700;transition:width .6s;min-width:46px}.fstep:nth-child(2) .fbar{opacity:.9}.fstep:nth-child(3) .fbar{opacity:.8}.fname{color:var(--mu)}
.board{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:14px;margin-bottom:18px;overflow-x:auto}
.col{background:rgba(20,24,38,.6);border:1px solid var(--line);border-radius:16px;padding:12px;min-height:160px}.colh{font-weight:600;margin:2px 4px 12px;display:flex;justify-content:space-between}.cnt{background:var(--card2);border-radius:99px;padding:0 9px;color:var(--mu);font-size:13px}
.col-published .colh{color:var(--ok)}.col-failed .colh{color:var(--bad)}.col-ready .colh{color:var(--ac2)}
.vcard{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:12px}
.thumb{position:relative;aspect-ratio:9/12;background:#0e1120;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.ph{display:flex;align-items:center;justify-content:center;height:100%;font-size:40px;opacity:.4}
.badge{position:absolute;left:8px;top:8px;font-size:11px;font-weight:700;padding:3px 8px;border-radius:99px;background:rgba(0,0,0,.65)}.b-published{color:var(--ok)}.b-failed{color:var(--bad)}.b-ready{color:var(--ac2)}.b-publishing,.b-downloading,.b-processing{color:var(--warn)}
.dur{position:absolute;right:8px;bottom:8px;font-size:11px;background:rgba(0,0,0,.65);padding:2px 7px;border-radius:6px}
.vbody{padding:10px}.cap{font-size:13px;line-height:1.35;max-height:3.9em;overflow:hidden}.meta{color:var(--mu);font-size:12px;margin-top:5px}.errtxt{color:var(--bad);font-size:12px;margin-top:6px;word-break:break-word}
.acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.acts form{margin:0}.empty{color:var(--mu);text-align:center;padding:24px 0;font-size:13px}
.log{width:100%;border-collapse:collapse;font-size:13px}.log td{padding:6px 8px;border-top:1px solid var(--line);vertical-align:top}.log td:first-child{color:var(--mu);white-space:nowrap;width:130px}.l-error td{color:var(--bad)}.l-warn td{color:var(--warn)}
details summary{cursor:pointer;color:var(--mu)}.arch{margin-top:10px}.arow{display:grid;grid-template-columns:100px 1fr auto;gap:12px;align-items:center;padding:6px 0;border-top:1px solid var(--line);font-size:13px}.arow form{margin:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid2 .card{margin:0}
label{display:block;color:var(--mu);font-size:13px;margin:0 0 12px}input,select,textarea{display:block;width:100%;margin-top:6px;background:#0e1120;border:1px solid var(--line);color:var(--tx);border-radius:10px;padding:10px 12px;font:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ac2)}
label.chk{display:flex;align-items:center;gap:9px;color:var(--tx);font-size:14px}label.chk input{width:auto;margin:0;accent-color:var(--ac)}
.row3{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:10px}.wmrow{margin-bottom:12px}.wmimg{max-height:56px;max-width:160px;background:repeating-conic-gradient(#222 0 25%,#333 0 50%) 0 0/14px 14px;border-radius:8px;padding:4px}
.preview{margin-top:6px}.preview img{max-height:360px;border-radius:12px;border:1px solid var(--line);display:block}
.acc{display:flex;align-items:center;gap:12px;margin-bottom:12px}.acc img{width:44px;height:44px;border-radius:50%}.acc>div{flex:1}
code{background:#0e1120;border:1px solid var(--line);border-radius:6px;padding:1px 6px;font-size:12.5px;color:var(--ac2);word-break:break-all}
.savebar{grid-column:1/-1;position:sticky;bottom:14px;display:flex;justify-content:flex-end}.savebar .btn{box-shadow:0 10px 30px rgba(255,45,111,.35);padding:12px 22px}
.flash{padding:11px 14px;border-radius:10px;margin-bottom:16px;background:rgba(61,220,151,.12);border:1px solid rgba(61,220,151,.4);color:var(--ok)}.flash.err{background:rgba(255,90,106,.1);border-color:rgba(255,90,106,.4);color:var(--bad)}
body.center{display:flex;align-items:center;justify-content:center}.login{width:340px;text-align:center}.login input{margin:18px 0 12px}
.legal{max-width:760px;margin:40px auto;line-height:1.6}
@media(max-width:1000px){.status{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.board{grid-template-columns:repeat(5,240px)}}
@media(max-width:560px){.row3{grid-template-columns:1fr}.status{grid-template-columns:1fr}main{padding:16px}.top{padding:12px 16px}nav a{margin-left:12px}.fstep{grid-template-columns:1fr 110px}}
h3{font-size:14px;margin:16px 0 4px;display:flex;gap:8px;align-items:center}
.chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.chips span{font-size:10.5px;padding:2px 7px;border-radius:99px;background:rgba(120,140,255,.12);color:var(--ac2);border:1px solid rgba(120,140,255,.25)}
.btn.ok{background:rgba(61,220,151,.15);border-color:rgba(61,220,151,.4);color:var(--ok)}
.badge.src{left:auto;right:8px;background:rgba(255,190,60,.85);color:#111}
.col-posted .colh{color:var(--ok)}.col-taken .colh{color:var(--warn)}
.savebar{gap:16px;align-items:center}.savebar label.chk{margin:0;background:var(--card);padding:9px 14px;border-radius:10px;border:1px solid var(--line)}
.checks label.chk{margin-bottom:9px}.upl{margin:0}.upl label.btn{margin:0;color:var(--tx);font-size:14px}
ol.hint{padding-left:20px;line-height:1.6}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(30px);background:#1f2a44;color:#fff;padding:10px 18px;border-radius:10px;opacity:0;transition:.25s;pointer-events:none;border:1px solid var(--line)}.toast.on{opacity:1;transform:translateX(-50%)}
[hidden]{display:none!important}
@media(max-width:560px){.top{flex-wrap:wrap;gap:6px}nav a{margin-left:0;margin-right:14px}}
