:root{--bg:#0f1115;--card:#171a21;--line:#262b36;--txt:#e8ebf0;--dim:#9aa4b2;--acc:#33ff66;--warn:#ffb340;--s:#ff5c7a;--a:#ffb340;--b:#6fa8ff}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--txt);font:14px/1.45 -apple-system,Inter,Segoe UI,sans-serif}
a{color:var(--acc);text-decoration:none}.dim{color:var(--dim)}code{background:#0d0f14;padding:1px 5px;border-radius:4px}
header.top{display:flex;gap:18px;align-items:center;padding:12px 24px;border-bottom:1px solid var(--line);background:var(--card)}
header .brand{font-weight:800;font-size:17px;color:var(--txt)}header nav a{margin-right:14px;color:var(--txt)}
main{padding:20px 24px;max-width:1600px;margin:0 auto}h1{font-size:22px;margin:0 0 14px}h2{font-size:16px;margin:0 0 6px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;color:var(--txt)}
.card:hover{border-color:var(--acc)}.stats{color:var(--dim);font-size:13px}.stats b{color:var(--txt)}
nav.sub{margin:0 0 12px}nav.sub a{margin-right:14px;color:var(--dim)}nav.sub a.on{color:var(--acc)}
form.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
input,select,button{background:#0d0f14;color:var(--txt);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:13px}
button{background:var(--acc);color:#04120a;font-weight:700;border:0;cursor:pointer}
.scroll{overflow-x:auto}table.reels{width:100%;border-collapse:collapse;font-size:13px}
table.reels th,table.reels td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
table.reels th a{color:var(--dim)}table.reels tr.reel{cursor:pointer}table.reels tr.reel:hover{background:#1c2029}
table.reels td.hook{min-width:260px;max-width:420px;overflow:hidden;text-overflow:ellipsis}.tier{font-size:15px}
tr.t-S .tier{color:var(--s)}tr.t-A .tier{color:var(--a)}tr.t-B .tier{color:var(--b)}tr.t-C .tier{color:var(--dim)}
.badge{font-size:10px;background:#2a2410;color:var(--warn);border-radius:10px;padding:1px 6px;margin-left:6px}
.badge.new{background:#0e2a17;color:var(--acc);margin:0 6px 0 0}
nav.pager{display:flex;gap:14px;align-items:center;margin-top:12px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:9}
.modal[hidden]{display:none}
.modal-box{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;width:min(1100px,96vw);max-height:92vh;overflow:auto;position:relative}
.modal .close{position:absolute;top:10px;right:14px;background:none;color:var(--dim);font-size:22px}
.m-metrics{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px;margin:10px 0}
.m-metrics div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:3px 0}
.m-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.btn,.sec{background:#262b36!important;color:var(--txt)!important;padding:7px 12px;border-radius:8px}
.banner{background:#0e2a17;border:1px solid #1f7a4d;color:var(--acc);padding:8px 12px;border-radius:8px;margin:0 0 12px}
nav.sub form.inline{display:inline-block;margin-left:14px}
.form-grid{display:grid;gap:10px;max-width:640px}
textarea{background:#0d0f14;color:var(--txt);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:13px;min-height:70px;width:100%}
.card.add{border-style:dashed;color:var(--dim);text-align:center}
.st-approved{color:var(--acc)}.st-candidate{color:var(--warn)}.st-rejected{color:var(--dim)}
.st-ready,.st-handed_off{color:var(--acc)}.st-failed{color:var(--s)}.st-queued,.st-downloading,.st-analyzing{color:var(--warn)}
.err{color:var(--s)}.handoff{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0 12px}
.strip{display:flex;gap:4px;overflow-x:auto}.strip img{height:120px;border-radius:6px}
pre.box{background:#0d0f14;border:1px solid var(--line);border-radius:10px;padding:12px;white-space:pre-wrap;font-size:12px;max-height:60vh;overflow:auto}

.keys{font-size:12px;margin-top:8px}
.modal-box.details{width:min(720px,96vw)}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:20px;align-items:start}
.layout:has(#player[hidden]){grid-template-columns:1fr}
.main-col{min-width:0}
.player{position:sticky;top:12px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px}
.player video{width:100%;max-height:50vh;border-radius:10px;background:#000;display:block}
.player h2{font-size:14px;margin:10px 0 4px;white-space:normal}
.p-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--dim)}.p-meta b{color:var(--txt)}
table.reels tr.reel.cur{background:#132a1b;box-shadow:inset 3px 0 0 var(--acc)}
@media (max-width:1100px){.layout{grid-template-columns:1fr}.player{position:static}}
.hint{margin:0 0 10px;font-size:13px}
.hint summary{cursor:pointer;color:var(--acc);padding:7px 12px;border:1px dashed var(--line);
              border-radius:8px;display:inline-block;user-select:none}
.hint summary:hover{border-color:var(--acc)}
.hint summary b{display:inline-block;width:17px;height:17px;line-height:17px;text-align:center;
                border-radius:50%;background:var(--acc);color:#0f1115;margin-right:6px}
.hint dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:6px 0 0;padding:10px 12px;
         border:1px solid var(--line);border-radius:8px}
.hint dt{font-weight:600;white-space:nowrap}
.hint dd{margin:0;color:var(--dim)}
@media(max-width:640px){.hint dl{grid-template-columns:1fr}.hint dd{margin:0 0 6px}}
.rate{color:var(--dim);font-size:11px}
.theme-switch{display:flex;gap:10px;align-items:center;margin:0 0 10px;font-size:13px}
.theme-switch a{color:var(--dim);padding:4px 10px;border:1px solid var(--line);border-radius:999px}
.theme-switch a.on{color:var(--acc);border-color:var(--acc)}
.theme-switch a.sep{margin-left:auto;border-style:dashed}
.niche-tag{color:var(--txt)}

/* вход по паролю */
.login{max-width:300px;margin:12vh auto;display:flex;flex-direction:column;gap:10px}
.login h1{font-size:18px;margin:0 0 4px}
.login input,.login button{padding:8px 10px;font:inherit;border-radius:6px;border:1px solid var(--bd,#2a2a2a);background:#111;color:inherit}
.login button{background:var(--acc,#2e7d32);border-color:transparent;cursor:pointer}
.err{color:#e57373;font-size:13px;margin:0}


/* рынки внутри темы */
.market-switch{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.market-switch a{padding:3px 10px;border:1px solid var(--bd,#2a2a2a);border-radius:999px;font-size:13px;text-decoration:none}
.market-switch a.on{border-color:var(--acc,#2e7d32);color:var(--acc,#2e7d32)}
.mk{font-size:11px;opacity:.6;text-transform:uppercase}
