:root{--bg:#0b1020;--panel:#141b33;--panel2:#1b2442;--line:#2a3558;--text:#e8ecf8;--muted:#8f9bbf;--accent:#5b8cff;--ok:#33c48d;--warn:#f0b429;--err:#ff6b6b}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}
a{color:var(--accent);text-decoration:none}
h1{font-size:22px;margin:0 0 14px}h2{font-size:17px;margin:26px 0 10px}
main{max-width:1100px;margin:0 auto;padding:16px}
.top{display:flex;align-items:center;gap:18px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--line)}
.top .brand{font-weight:700;color:var(--text)}
.top nav{display:flex;gap:6px;flex:1}
.top nav a{padding:6px 12px;border-radius:8px;color:var(--muted)}
.top nav a.on,.top nav a:hover{background:var(--panel2);color:var(--text)}
.top .out{color:var(--muted);font-size:13px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px}
.card.narrow{max-width:420px;margin:60px auto}
label{display:block;margin:0 0 14px;font-weight:600}
label .muted,label span.muted{font-weight:400}
input[type=text],input[type=password],input[type=datetime-local],textarea{width:100%;margin-top:6px;padding:10px 12px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;font:inherit}
textarea{resize:vertical}
input[type=file]{color:var(--muted)}
fieldset{border:1px solid var(--line);border-radius:10px;margin:0 0 14px;padding:10px 12px}
legend{padding:0 6px;font-weight:600}
.muted{color:var(--muted);font-size:13px}
.err-text{color:var(--err)}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.row.between{justify-content:space-between}
.push{margin-left:auto}
.btn{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:8px;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer}
.btn.ghost{background:var(--panel2);color:var(--text);border:1px solid var(--line)}
.btn.small{padding:5px 10px;font-size:13px}
.link{background:none;border:0;color:var(--accent);cursor:pointer;font:inherit;padding:0}
.link.danger{color:var(--err)}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:12px;border:1px solid var(--line)}
.flash.ok{background:#12301f;border-color:#1f5a3b}
.flash.err{background:#3a1a1f;border-color:#6a2b34}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.chip{margin:0;font-weight:500}
.chip input{display:none}
.chip span{display:inline-block;padding:7px 14px;border-radius:999px;border:1px solid var(--line);background:var(--bg);cursor:pointer}
.chip input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.grid.small{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;max-height:340px;overflow:auto}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:6px}
.tile .meta{display:flex;flex-direction:column;font-size:13px}
.thumb{position:relative;aspect-ratio:1/1;background:#000;border-radius:8px;overflow:hidden}
.thumb img,.thumb video{width:100%;height:100%;object-fit:cover;display:block}
.badge{position:absolute;left:5px;bottom:5px;background:rgba(0,0,0,.65);font-size:11px;padding:2px 6px;border-radius:5px}
.pick{margin:0;cursor:pointer;position:relative}
.pick input{position:absolute;top:6px;left:6px;z-index:2;width:18px;height:18px}
.pick input{width:22px;height:22px;accent-color:#22c55e}
.pick input:checked~.thumb{outline:4px solid #22c55e;outline-offset:-1px;box-shadow:0 0 0 3px rgba(34,197,94,.35),0 0 18px rgba(34,197,94,.45)}
.pick input:checked~.thumb::after{content:"\2713  Selected";position:absolute;top:6px;right:6px;background:#22c55e;color:#04210f;font-size:12px;font-weight:800;padding:3px 8px;border-radius:999px;z-index:3}
.picker:has(input:checked) .pick:not(:has(input:checked)) .thumb{opacity:.4;filter:grayscale(.6)}
.picker:has(input:checked) .pick:not(:has(input:checked)) .thumb:hover{opacity:.9;filter:none}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.dow{background:var(--panel2);padding:6px;text-align:center;font-size:12px;color:var(--muted)}
.day{background:var(--panel);min-height:150px;padding:4px;display:flex;flex-direction:column;gap:3px}
.day.out{background:#10162b;opacity:.6}
.day.today{box-shadow:inset 0 0 0 2px var(--accent)}
.dnum{font-size:12px;color:var(--muted);align-self:flex-start;padding:1px 5px}
.more{font:inherit;font-size:12px;color:var(--accent);background:none;border:0;cursor:pointer;text-align:left;padding:2px 5px}
.rest{display:flex;flex-direction:column;gap:3px}
.rest[hidden]{display:none}
.pill{display:block;font-size:12px;padding:3px 5px;border-radius:6px;background:var(--panel2);color:var(--text);border-left:3px solid var(--accent);overflow:hidden}
.pill b{color:var(--muted);font-weight:600;margin-right:3px}
.pill.s-draft{border-left-color:var(--muted)}
.pill.s-published{border-left-color:var(--ok)}
.pill.s-partial,.pill.s-failed{border-left-color:var(--err)}
.pill.s-attention{border-left-color:var(--warn)}
.dots{display:flex;gap:3px;margin-top:2px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--muted);display:inline-block}
.dot.t-published{background:var(--ok)}.dot.t-failed{background:var(--err)}.dot.t-reminder{background:var(--warn)}
.list .item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.list .item:last-child{border-bottom:0}
.tag{display:inline-block;font-size:11px;padding:2px 8px;border-radius:999px;margin-right:6px;background:var(--panel2)}
.tag.t-ok{background:#12301f;color:#7be0b0}
.tag.t-failed{background:#4a2027;color:#ffb3b3}.tag.t-reminder{background:#4a3a12;color:#ffe08a}
code{background:var(--bg);padding:2px 6px;border-radius:5px}
@media(max-width:700px){
  main{padding:10px}
  .day{min-height:64px}
  .pill{font-size:0;padding:0;height:8px;border-left-width:0;background:var(--accent)}
  .pill b,.pill .dots{display:none}
  .grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
}
fieldset.when .row{gap:8px;flex-wrap:wrap;margin-top:6px}.when select,.when input[type=date]{padding:10px 12px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;font:inherit;color-scheme:dark}.when .quick{margin-top:10px}

.day[data-date]{cursor:pointer}
.pill[draggable=true]{cursor:grab}
.day.drop{background:var(--panel2);box-shadow:inset 0 0 0 2px var(--accent)}


.wk{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.wk-head,.wk-row{display:grid;grid-template-columns:52px repeat(7,minmax(110px,1fr));gap:1px}
.wk-head{position:sticky;top:0;background:var(--panel2);border-bottom:1px solid var(--line)}
.wk-head span{padding:8px 6px;font-size:13px;color:var(--muted);text-align:center}
.wk-head span.today{color:var(--text);font-weight:700}
.wk-row{border-top:1px solid var(--line)}
.wk-hour{font-size:11px;color:var(--muted);padding:4px 6px;text-align:right}
.wk-cell{min-height:42px;padding:3px 4px;display:flex;flex-direction:column;gap:2px;cursor:pointer;position:relative}
.wk-cell:hover{box-shadow:inset 0 0 0 2px var(--accent)}
.wk-cell.past{opacity:.55}
.wk-cell.nowcell{box-shadow:inset 0 0 0 2px var(--ok)}
.wk-score{font-size:10px;color:var(--muted);font-style:italic;align-self:center}

[hidden]{display:none!important}
.mt-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 10px}
.mt-bar label{margin:0;display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.mt-bar select{width:auto;padding:5px 8px}
.mt-views{display:flex;gap:4px;margin-left:auto}
.mt-views button{font:inherit;font-size:12px;padding:5px 10px;border-radius:7px;border:1px solid var(--line);background:var(--bg);color:var(--muted);cursor:pointer}
.mt-views button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.badge.dur{left:auto;right:5px}
.badge.dur:empty{display:none}
.mg.mg-s{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}
.mg.mg-m{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.mg.mg-l{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.mg.picker{max-height:420px;overflow:auto}
.pmeta{display:none}
.mg.mg-list{display:flex;flex-direction:column;gap:6px}
.mg-list .tile,.mg-list .pick{flex-direction:row;align-items:center;gap:12px;display:flex}
.mg-list .thumb{width:64px;flex:none}
.mg-list .tile .meta{flex:1;min-width:0}
.mg-list .pick input{position:static;flex:none}
.mg-list .pick{padding:4px 6px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.mg-list .pmeta{display:flex;flex-direction:column;font-size:13px;min-width:0}
.mg-list .pick input{width:22px;height:22px;accent-color:#22c55e}
.pick input:checked~.thumb{outline:4px solid #22c55e;outline-offset:-1px;box-shadow:0 0 0 3px rgba(34,197,94,.35),0 0 18px rgba(34,197,94,.45)}
.pick input:checked~.thumb::after{content:"\2713  Selected";position:absolute;top:6px;right:6px;background:#22c55e;color:#04210f;font-size:12px;font-weight:800;padding:3px 8px;border-radius:999px;z-index:3}
.picker:has(input:checked) .pick:not(:has(input:checked)) .thumb{opacity:.4;filter:grayscale(.6)}
.picker:has(input:checked) .pick:not(:has(input:checked)) .thumb:hover{opacity:.9;filter:none}
.mg-list .badge:not(.dur){display:none}

.nets{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;margin-top:3px;padding:4px 4px 0 0}
.net{position:relative;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;line-height:1;padding:4px 0;border-radius:4px;color:#fff;background:#3a4570;cursor:default}
.net em{position:absolute;top:-5px;right:-4px;width:11px;height:11px;border-radius:50%;background:#0b1020;font-style:normal;font-size:9px;line-height:11px;text-align:center;color:#fff}
.net.n-facebook{background:#2f62c9}.net.n-instagram{background:#b83e86}.net.n-threads{background:#4a4a5c}
.net.n-youtube{background:#c63a3a}.net.n-tiktok{background:#20202a;box-shadow:inset 0 0 0 1px #3fd0d8}.net.n-linkedin{background:#2677b3}
.net.t-pending{opacity:.5}.net.t-pending em{display:none}
.net.t-published em{color:#8cf0bf}
.net.t-failed{outline:1px solid var(--err)}.net.t-failed em{color:var(--err)}
.net.t-reminder{outline:1px solid var(--warn)}.net.t-reminder em{color:var(--warn)}
.net.t-publishing{animation:netpulse 1s infinite}
@keyframes netpulse{50%{opacity:.45}}
.net-tip{position:absolute;display:none;background:#000;color:#fff;padding:4px 8px;border-radius:6px;font-size:12px;white-space:nowrap;z-index:50;pointer-events:none;border:1px solid var(--line)}
.net-legend{margin:10px 2px 0;font-size:12px;line-height:2}
.net-legend .net{display:inline-flex;margin-right:2px;font-size:10px;padding:4px 5px}

.cap-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:8px}
.cap-tools select{width:auto;max-width:100%}

.top nav{gap:12px}
.top nav a{display:inline-block;transition:transform .12s ease-out,background .15s,color .15s;position:relative}
.top nav:hover a{z-index:2}
a.prof{color:inherit;text-decoration:none;border-bottom:1px dotted var(--muted)}
a.prof:hover{border-bottom-style:solid}

.bt-toggle{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:14px;cursor:pointer;margin-right:6px}
.bts{display:none;flex-wrap:wrap;gap:3px;margin:2px 0 4px}
.cal.bt-on .bts{display:flex}
.bts .bt{font-size:11px;line-height:1;padding:3px 5px;border-radius:6px;color:#cfe0ff;background:rgba(79,124,255,.22);text-decoration:none;border:1px solid rgba(79,124,255,.35)}
.bts .bt:hover{background:rgba(79,124,255,.45);color:#fff}
.bts .bt.taken{opacity:.45}

.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.seg a{padding:8px 14px;color:var(--muted);font-weight:600}
.seg a.on{background:var(--panel2);color:var(--text)}
.wk .wk-cell{background:transparent}
.wk.heat .wk-cell{background:var(--c,transparent)}
.wk .wk-score{display:none}
.wk.heat .wk-score{display:inline}
.bt-note{display:none}
.bt-note-on .bt-note{display:block}

.top .brand{display:inline-flex;align-items:center;gap:9px;cursor:default;user-select:none;font-size:18px;letter-spacing:.2px;background:linear-gradient(90deg,#8fb0ff,#c58bff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.top .brand .logo{width:30px;height:30px;flex:none;-webkit-text-fill-color:initial}

.bts .heat{display:flex;width:100%;height:16px;border-radius:4px;overflow:hidden;margin-bottom:3px;border:1px solid rgba(91,140,255,.25)}
.bts .hb{flex:1;background:var(--c,#444);display:block}
.bts .hb:hover{outline:2px solid #fff;outline-offset:-2px}
.bts .hb.taken{box-shadow:inset 0 -3px 0 var(--ok)}

.bts .heat{border-color:rgba(255,255,255,.18)}
.bts .bt{background:rgba(51,196,141,.16);border-color:rgba(51,196,141,.4);color:#bff3dc}
.bts .bt:hover{background:rgba(51,196,141,.4);color:#fff}
.wk.heat .wk-score{color:#fff;font-style:normal;opacity:.85}

.cal.bt-on .day{background-image:var(--g,none)}

.net.n-pinterest{background:#c8102e}
/* Autopost */
.ap-title{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:8px}.ap-title h1{margin:0}
.ap-top{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;padding:10px 14px;margin-bottom:6px}
.ap-top label{margin:0;font-size:12px}
.ap-top select,.ap-slot select,.ap-slot input[type=time]{margin-top:4px;padding:6px 8px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;font:inherit;font-size:13px}
.ap-day{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ap-day input[type=date]{margin:0;padding:6px 8px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;font:inherit;font-size:13px}
.ap-dayname{font-weight:700;margin:0 6px}
.ap-go{margin-left:auto;display:flex;gap:8px}
.ap-spin{background:var(--panel2);border:1px solid var(--accent)}
.ap-sum{margin:0 2px 8px;font-size:12px}
.ap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ap-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:900px){.ap-grid,.ap-grid.two{grid-template-columns:1fr}}
.ap-slot{margin:0;padding:10px 12px}
.ap-head{display:flex;align-items:center;gap:8px}
.ap-head h2{margin:0;flex:1;font-size:15px}
.ap-head select,.ap-head input[type=time]{margin:0}
.ap-head label{margin:0;font-weight:500;font-size:13px;cursor:pointer}
.reel{height:150px;overflow:hidden;border-radius:10px;background:#05080f;border:2px solid var(--line);margin:8px 0 4px;position:relative}
.reel::before,.reel::after{content:"";position:absolute;left:0;right:0;height:18px;z-index:2;pointer-events:none}
.reel::before{top:0;background:linear-gradient(#05080f,transparent)}
.reel::after{bottom:0;background:linear-gradient(transparent,#05080f)}
.strip{will-change:transform}
.ap-item{height:150px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.ap-item img,.ap-item video{max-width:100%;max-height:100%;object-fit:contain}
.ap-item.blur{filter:blur(1.5px) saturate(.8)}
.ap-q{font-size:56px;color:var(--line);font-weight:800}
.ap-meta{min-height:16px;margin-bottom:4px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ap-btns{margin:4px 0;gap:6px}
.ap-btns .btn.small{padding:4px 8px;font-size:12px}
.ap-cap{margin:4px 0 2px;font-size:13px;padding:8px 10px}
.ap-foot{display:flex;justify-content:space-between;font-size:12px}
.ap-foot .link{font-size:12px}
.ap-nets{margin:6px 0 0;gap:5px}
.ap-nets .chip span{padding:3px 9px;font-size:12px}
.ap-slot.busy .reel{border-color:var(--accent);box-shadow:0 0 14px rgba(91,140,255,.45)}
.ap-slot.busy .ap-cap{opacity:.55}
/* Media fit + balance */
.fit{flex-wrap:wrap;display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:12px}
.fitpill{padding:2px 8px;border-radius:999px;font-weight:700;background:#12301f;color:#7be3b2;white-space:nowrap}
.fit-fixed .fitpill{background:#1c2a52;color:#9db8ff}
.fit-warn .fitpill,.fit-unknown .fitpill{background:#3d2d0c;color:#f6c453}
.fitnote{font-size:11.5px;line-height:1.35}
.fitbtns{display:flex;flex-wrap:wrap;gap:6px}
.fitbtns form{display:flex;gap:6px;align-items:center;margin:0}
.fitbtns .btn.small{padding:3px 8px;font-size:12px}
.mg-s .fitnote,.mg-s .fitbtns,.mg-s .fit .muted{display:none}
