body.adm{position:static;overflow:auto;height:auto;min-height:100dvh}
html:has(body.adm){overflow:auto;height:auto}
.admin{flex:1;width:min(720px,100%);margin:0 auto;padding:var(--s4);display:flex;flex-direction:column;gap:var(--s4)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4)}
.login{margin-top:var(--s5);display:flex;flex-direction:column;gap:var(--s3)}
.login h1{font:800 20px/1.2 var(--display)}
.login p{color:var(--muted);font-size:14px}
.bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding-bottom:var(--s3);border-bottom:1px solid var(--line);margin-bottom:var(--s2)}
.sw{display:flex;align-items:center;gap:var(--s3);font-weight:600;font-size:14px;cursor:pointer;min-height:44px}
.sw input{position:absolute;opacity:0}
.tk{width:44px;height:26px;border-radius:var(--pill);background:var(--surface-2);border:1px solid var(--line);position:relative;transition:background .15s}
.tk::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--muted);transition:transform .15s,background .15s}
.sw input:checked+.tk{background:var(--accent)}
.sw input:checked+.tk::after{transform:translateX(18px);background:var(--on-accent)}
.sw input:focus-visible+.tk{outline:2px solid var(--accent);outline-offset:2px}
.list{display:flex;flex-direction:column}
.it{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) 0;border-bottom:1px solid var(--line)}
.it:last-child{border-bottom:0}
.it .msg{flex:1;min-width:0;padding:0}
.acts{display:flex;gap:var(--s2);flex:none}
.btn{min-height:44px;padding:0 var(--s3);border:1px solid var(--line);border-radius:var(--pill);background:var(--surface-2);color:var(--text);font-size:13px;font-weight:600;cursor:pointer}
.btn.danger{border-color:var(--live);color:var(--live)}
.btn:hover{background:var(--line)}
.empty{color:var(--muted);text-align:center;padding:var(--s5);font-size:14px}

/* links da live (uma coluna, alvos >= 44px) */
.lk{display:flex;flex-direction:column;gap:var(--s3)}
.lk h2{font:800 18px/1.2 var(--display)}
.lk h3{font:600 14px/1.2 var(--display)}
.lk-now{padding:var(--s3);border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line);font-size:14px;overflow-wrap:anywhere}
.lk-now.on{border-color:var(--accent)}
.unpin{width:100%;border-color:var(--live);color:var(--live)}
.lk-list{display:flex;flex-direction:column;gap:var(--s3)}
.lk-it{display:flex;flex-direction:column;gap:var(--s2);padding:var(--s3);border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}
.lk-it.on{border-color:var(--accent)}
.lk-n{font:800 15px/1.2 var(--display);overflow-wrap:anywhere}
.lk-t{font-size:13px}
.lk-u{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.pinbig{width:100%;min-height:56px;border:0;border-radius:var(--pill);background:var(--accent);color:var(--on-accent);font:800 17px/1 var(--display);letter-spacing:.04em;cursor:pointer}
.pinbig:active{filter:brightness(.92)}
.pinbig:disabled{background:var(--surface);color:var(--accent);border:1px solid var(--accent);cursor:default}
.lk-row{display:flex;gap:var(--s2)}
.lk-row .btn{flex:1}
.lk-form{display:flex;flex-direction:column;gap:var(--s2);padding-top:var(--s3);border-top:1px solid var(--line)}
.lk-form label{font-size:13px;color:var(--muted)}
.lk-btns{display:flex;gap:var(--s2);margin-top:var(--s2)}
.lk-btns .send,.lk-btns .btn{flex:1;min-height:48px}
.lk .note{margin:0}
.unpin:focus-visible,.pinbig:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.lk,.lk>*,.lk-form>*,.lk-it>*{flex-shrink:0}
.lk-form .inp{height:48px}

.clr{display:flex;gap:var(--s2);margin-bottom:var(--s2)}
.clr .btn{flex:1}
.btn.on{background:var(--live);color:#fff}

/* inscritos (uma coluna, alvos >= 44px) */
.sb{display:flex;flex-direction:column;gap:var(--s3)}
.sb h2{font:800 18px/1.2 var(--display)}
.sb-stats{display:flex;gap:var(--s2)}
.sb-stat{flex:1;padding:var(--s3);border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);text-align:center}
.sb-stat b{display:block;font:800 24px/1.1 var(--display);color:var(--accent)}
.sb-stat span{font-size:12px;color:var(--muted)}
.sb .inp{width:100%;flex:none;height:48px}
.sb-csv{width:100%;min-height:52px;border:0;border-radius:var(--pill);background:var(--accent);color:var(--on-accent);font:800 15px/1 var(--display);cursor:pointer}
.sb-csv:active{filter:brightness(.92)}
.sb-list{display:flex;flex-direction:column;gap:var(--s2)}
.sb-it{display:flex;flex-direction:column;gap:var(--s1);padding:var(--s3);border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}
.sb-it.ban{border-color:var(--live)}
.sb-n{font:800 15px/1.2 var(--display);overflow-wrap:anywhere}
.sb-n em{font-style:normal;margin-left:var(--s2);padding:2px 8px;border-radius:var(--pill);background:var(--live);color:#fff;font:700 11px/1.4 var(--sans)}
.sb-p{font-size:14px}
.sb-d{font-size:12px;color:var(--muted)}
.sb-it .btn{width:100%;margin-top:var(--s2);min-height:44px}
.sb-more{color:var(--muted);text-align:center;font-size:12px}
.sb-csv:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.sb,.sb>*{flex-shrink:0}

/* moderadores */
.sb-it.mod{border-color:var(--accent)}
.sb-n em.modtag{background:var(--accent);color:var(--on-accent)}
.btn.modon{border-color:var(--accent);color:var(--accent)}
.pinbox{display:flex;flex-direction:column;gap:var(--s2);padding:var(--s4);border:2px solid var(--accent);border-radius:var(--r);background:var(--surface-2);text-align:center}
.pb-t{font:800 15px/1.2 var(--display);overflow-wrap:anywhere}
.pb-pin{font:800 40px/1.1 var(--display);letter-spacing:.3em;padding-left:.3em;color:var(--accent);user-select:all}
.pb-d{font-size:12px;color:var(--muted)}
.ml{display:flex;flex-direction:column;gap:var(--s2)}
.ml h2{font:800 18px/1.2 var(--display)}
.ml-s{font-size:12px;color:var(--muted)}
.ml-list{display:flex;flex-direction:column}
.ml-it{padding:var(--s2) 0;border-bottom:1px solid var(--line)}
.ml-it:last-child{border-bottom:0}
.ml-w{font-size:14px;overflow-wrap:anywhere}
.ml-d{font-size:12px;color:var(--muted)}
.ml,.ml>*{flex-shrink:0}

/* sorteio (uma coluna, alvos >= 44px) */

/* avisos (push) */
.pu{display:flex;flex-direction:column;gap:var(--s3)}
.pu h2{font:800 18px/1.2 var(--display)}
.pu-n{font-size:14px;color:var(--muted)}
.pu-n b{color:var(--text);font-size:18px}
/* aviso de versao nova (update.js) */
.upd-bar{position:fixed;left:var(--s3);right:var(--s3);bottom:calc(var(--s3) + var(--sab));z-index:70;max-width:520px;margin:0 auto;min-height:52px;border:0;border-radius:var(--pill);background:var(--accent);color:var(--on-accent);font:800 15px/1.2 var(--display);box-shadow:0 12px 32px rgba(0,0,0,.5);cursor:pointer}

/* etapa 4: seu canal (foto/capa/link/OBS) e canais (dono) */
.cn,.cs{display:flex;flex-direction:column;gap:var(--s3)}
.cn h2,.cs h2{font:800 18px/1.2 var(--display)}
.cn h3,.cs h3{font:800 14px/1.2 var(--display);margin-top:var(--s2)}
.cn-nome{font:800 20px/1.2 var(--display);overflow-wrap:anywhere}
.cn-s{font-size:12px;color:var(--muted)}
.cn label:not(.cn-file),.cs label{font-size:13px;color:var(--muted)}
.cn-foto{display:flex;align-items:center;gap:var(--s4)}
.cn-fprev{flex:none;width:96px;height:96px;border-radius:50%;overflow:hidden;background:var(--surface-2);border:2px solid var(--line);display:grid;place-items:center;font:800 36px/1 var(--display);color:var(--muted)}
.cn-fprev img,.cs-av img{width:100%;height:100%;object-fit:cover;display:block}
.cn-cprev{width:100%;aspect-ratio:16/9;max-width:100%;border-radius:var(--r);overflow:hidden;background:var(--surface-2);border:1px solid var(--line);display:grid;place-items:center}
.cn-cprev img{width:100%;height:100%;object-fit:cover;display:block}
.cn-cprev .empty{padding:0}
.cn-row{display:flex;gap:var(--s2)}.cn-row>*{flex:1}
.cn-file{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:1;overflow:hidden}
.cn-file input{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0}
.cn-copy{display:flex;gap:var(--s2)}
.cn-copy .inp{flex:1;min-width:0;height:44px;font-size:14px}
.cn .btn.on,.cs .btn.on{background:var(--live);color:#fff;border-color:var(--live)}
.cn,.cn>*,.cs,.cs>*{flex-shrink:0}
.pinbox .cn-copy{text-align:left}
.cs-list{display:flex;flex-direction:column;gap:var(--s2)}
.cs-it{display:flex;flex-direction:column;gap:var(--s2);padding:var(--s3);border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}
.cs-it.off{opacity:.6}
.cs-top{display:flex;align-items:center;gap:var(--s3)}
.cs-av{flex:none;width:44px;height:44px;border-radius:50%;overflow:hidden;background:var(--accent);color:#fff;display:grid;place-items:center;font:800 18px/1 var(--display)}
.cs-tx{min-width:0;display:flex;flex-direction:column;gap:2px}
.cs-tx b{font:800 15px/1.2 var(--display);overflow-wrap:anywhere}
.cs-tx span{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.cs-row{display:flex;flex-wrap:wrap;gap:var(--s2)}.cs-row .btn{flex:1 1 140px}
.cs-form{display:flex;flex-direction:column;gap:var(--s2);padding-top:var(--s3);border-top:1px solid var(--line)}
.cs-form .inp{height:48px}

/* editor de enquadramento (crop.js) */
html.ed-open,html.ed-open body{overflow:hidden}
.ed{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:var(--s4);background:rgba(0,0,0,.82)}
.ed-box{width:min(600px,100%);max-height:100%;overflow:auto;display:flex;flex-direction:column;align-items:center;gap:var(--s3);padding:var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:16px}
.ed-box h2{font:800 18px/1.2 var(--display);align-self:stretch;text-align:center}
.ed-st{position:relative;overflow:hidden;background:#000;border:2px solid var(--accent);touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;max-width:100%}
.ed-st.round{border-radius:50%}
.ed-st:active{cursor:grabbing}
.ed-img{position:absolute;left:0;top:0;transform-origin:0 0;max-width:none;pointer-events:none;user-select:none;-webkit-user-drag:none}
.ed-h{font-size:13px;color:var(--muted);text-align:center;max-width:44ch}
.ed-box label{align-self:stretch;font-size:13px;color:var(--muted)}
.ed-zoom{align-self:stretch;accent-color:var(--accent);height:32px}
.ed-btns{align-self:stretch;display:flex;gap:var(--s2)}
.ed-btns>*{flex:1;min-height:48px}
/* caixas de texto dentro de formulario em coluna: o flex:1 do .inp achatava a altura */
.cs-form .inp,.lk-form .inp{flex:none}
.cs-prev{font-size:13px;color:var(--muted);overflow-wrap:anywhere}.cs-prev b{color:var(--text)}
/* abas do painel */
.tabs{position:sticky;top:0;z-index:20;display:flex;gap:var(--s2);padding:var(--s2) var(--s4);background:var(--bg);border-bottom:1px solid var(--line)}
.tabs button{flex:1;min-height:44px;border:1px solid var(--line);border-radius:var(--pill);background:var(--surface-2);color:var(--muted);font:800 14px/1 var(--display);cursor:pointer}
.tabs button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.tab-off{display:none!important}
/* caixa "canal criado": mensagem pronta */
.cb-msg{margin:0;padding:var(--s3);border-radius:var(--r);background:var(--bg);border:1px solid var(--line);color:var(--text);font:13px/1.5 var(--sans);white-space:pre-wrap;overflow-wrap:anywhere;text-align:left}
.cb-wa{display:flex;align-items:center;justify-content:center;text-decoration:none;min-height:48px}
.cs-ns{margin-top:var(--s2)}
/* dados do canal sempre visiveis (aba Canais) */
.cs-dados{display:flex;flex-direction:column;gap:6px;padding:var(--s3);border-radius:var(--r);background:var(--bg);border:1px solid var(--line)}
.cs-l{display:flex;flex-direction:column;gap:2px}
.cs-l span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.cs-l b{font:600 14px/1.35 var(--sans);overflow-wrap:anywhere;user-select:all}
