:root{
  --bg:#101319; --panel:#171b24; --panel2:#202533; --line:#2a3041; --txt:#e9ecf3; --mut:#8e96ab;
  --pri:#1f5fe0; --pri-h:#3573f0; --ok:#2fbf71; --bad:#e5484d; --mine:#1b4fc4; --theirs:#262c3b; --hot:#e5484d;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--txt);font-size:15px;line-height:1.4}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;border-radius:10px;background:var(--panel2);padding:9px 14px}
button:hover:not(:disabled){filter:brightness(1.15)}
button:disabled{opacity:.45;cursor:not-allowed}
button.pri{background:var(--pri)} button.bad{background:var(--bad)} button.ok{background:var(--ok);color:#04210f;font-weight:600}
button.ico{background:transparent;padding:8px 10px;font-size:19px;line-height:1}
:focus-visible{outline:2px solid var(--pri-h);outline-offset:2px}
input,select,textarea{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;width:100%;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--pri-h)}
a{color:#7aa7ff}
label{display:block;margin:0 0 12px;color:var(--mut);font-size:13px}
label input,label select{margin-top:4px;color:var(--txt);font-size:15px}
.hidden{display:none!important}
.mut{color:var(--mut)} .small{font-size:12.5px} .grow{flex:1} .err{color:#ff8a8d;min-height:20px;margin:6px 0;font-size:14px}
.row{display:flex;gap:10px;align-items:center}
.badge{display:inline-block;min-width:20px;padding:1px 7px;border-radius:99px;background:var(--panel2);font-size:12px;text-align:center}
.badge.hot{background:var(--hot);color:#fff}

/* páginas simples (cliente) */
.card-page{max-width:460px;margin:0 auto;padding:28px 20px 40px}
.card-page h1{font-size:24px;margin:8px 0 4px}
.card-page h2{font-size:19px;margin:6px 0 16px}
.deps{display:grid;gap:10px;margin-top:18px}
button.dep{padding:18px 16px;text-align:left;font-size:17px;background:var(--panel);border:1px solid var(--line)}
button.dep:hover{border-color:var(--pri-h)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.45}
.check input{width:auto;margin-top:3px}

/* overlays */
.overlay{position:fixed;inset:0;background:rgba(5,7,12,.78);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}
.modal{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px;width:100%;max-width:380px;display:grid;gap:12px;text-align:center}
.modal h2{margin:0}.modal .big{font-size:44px}
.modal .row{justify-content:center}

/* chat */
.chat-wrap{display:flex;flex-direction:column;height:100dvh;min-height:0}
.top{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--panel);border-bottom:1px solid var(--line)}
.top .info{flex:1;min-width:0}.top .info strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.callbar{display:flex;gap:10px;align-items:center;padding:8px 14px;background:#12351f;border-bottom:1px solid #1f6b3d}
.callbar span{flex:1}
.msgs{flex:1;overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:6px;min-height:0}
.msg{max-width:80%;padding:7px 10px 5px;border-radius:12px;overflow-wrap:anywhere}
.msg.mine{align-self:flex-end;background:var(--mine);border-bottom-right-radius:4px}
.msg.theirs{align-self:flex-start;background:var(--theirs);border-bottom-left-radius:4px}
.msg .who{font-size:12px;color:#9fbaff;margin-bottom:2px}
.msg .txt{white-space:pre-wrap}
.msg .time{font-size:11px;color:#b9c0d4;text-align:right;margin-top:2px}
.msg img,.msg video{display:block;max-width:100%;max-height:340px;border-radius:8px;margin-bottom:4px}
.msg audio{width:240px;max-width:100%;margin-bottom:2px}
.msg a.file{display:block;padding:6px 0;color:#fff}
.sys{align-self:center;background:var(--panel2);color:var(--mut);font-size:12px;padding:4px 12px;border-radius:99px;text-align:center}
.typing{padding:0 16px 4px;color:var(--mut);font-size:12.5px}
.upl{padding:6px 14px;background:var(--panel2);font-size:13px;color:var(--mut)}
.closedbar,.startbar{padding:12px 14px;background:var(--panel);border-top:1px solid var(--line);display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap}

/* composer */
.composer{position:relative;background:var(--panel);border-top:1px solid var(--line);padding:8px 10px calc(8px + env(safe-area-inset-bottom))}
.composer .crow{display:flex;align-items:flex-end;gap:6px}
.composer textarea{resize:none;max-height:120px;border-radius:20px;padding:10px 14px}
.composer.disabled{opacity:.6}
.attach-menu{position:absolute;bottom:100%;left:10px;margin-bottom:6px;background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:6px;display:grid;min-width:200px;box-shadow:0 8px 24px rgba(0,0,0,.45)}
.attach-menu label{margin:0;padding:11px 14px;color:var(--txt);font-size:15px;cursor:pointer;border-radius:10px}
.attach-menu label:hover{background:var(--panel)}
.recbar{display:flex;align-items:center;gap:12px;padding:4px}
.recdot{width:10px;height:10px;border-radius:50%;background:var(--bad);animation:pulse 1s infinite}
@keyframes pulse{50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.recdot{animation:none}}

/* painel do atendente */
.app{display:grid;grid-template-columns:350px 1fr;height:100dvh}
.side{display:flex;flex-direction:column;border-right:1px solid var(--line);min-height:0;background:var(--panel)}
.side-top{display:flex;gap:8px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
.tabs{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line)}
.tab{flex:1;background:transparent;border:1px solid var(--line)}
.tab.on{background:var(--panel2);border-color:var(--pri-h)}
.list{flex:1;overflow-y:auto}
.item{padding:12px 14px;border-bottom:1px solid var(--line);cursor:pointer}
.item:hover{background:var(--panel2)} .item.sel{background:#16233f}
.irow{display:flex;justify-content:space-between;gap:8px;align-items:center}
.preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.empty{margin:auto;color:var(--mut);padding:24px;text-align:center}
.main{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg)}
.main .chat-wrap{height:100%}
.back{display:none}
@media (max-width:820px){
  .app{grid-template-columns:1fr}
  .main{display:none}
  .app.chat-open .side{display:none}
  .app.chat-open .main{display:flex}
  .back{display:inline-block}
}

/* admin */
.admin-page{max-width:1100px;margin:0 auto;padding:18px}
.admin-top{display:flex;gap:12px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.admin-top h1{font-size:20px;margin:0;flex:1}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{color:var(--mut);font-weight:500;font-size:13px}
tr.clk{cursor:pointer} tr.clk:hover{background:var(--panel2)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:16px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.checks{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.checks label{display:flex;gap:6px;align-items:center;margin:0;color:var(--txt)}
.checks input{width:auto;margin:0}
.convo{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:6px;max-height:60vh;overflow:auto;margin-top:12px}
@media (max-width:640px){.grid2{grid-template-columns:1fr}}
