/* S.W.W.S Atende · identidade S.W.W.S (verde petróleo, dourado e prata) */
:root{
  --petro-1:#1B636D; --petro:#0D4650; --petro-3:#02262E; --teal:#042D35;
  --gold:#B8862E; --gold-2:#E8C76A; --gold-c:#C9A44C; --silver:#C3BDB9;
  --bg:#F3F5F5; --card:#fff; --ink:#14262A; --muted:#5d6f73; --line:#dde3e4;
  --ok:#1f8a4c; --bad:#b3261e; --warn:#a86b00; --info:#1d5f9e;
  --bolha-cli:#ffffff; --bolha-ia:#dff3ee; --bolha-voce:#fbf1d6; --bolha-sis:#eef0ef;
  font-family:"Segoe UI",Roboto,Arial,sans-serif; color:var(--ink);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);font-size:14px}
.hidden{display:none!important}
button{font:inherit;cursor:pointer}
input,select,textarea{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:6px;width:100%;background:#fff;color:var(--ink);min-width:0}
textarea{resize:vertical;min-height:70px;line-height:1.4}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold-2);border-color:var(--gold)}
label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);font-weight:600}
label input,label select,label textarea{font-size:14px;font-weight:400;color:var(--ink)}
.passo{display:grid;grid-template-columns:16px minmax(0,1fr) auto;gap:4px 8px;align-items:center;padding:7px 0;border-bottom:1px dotted var(--line)}
.passo .small{text-align:right}
a{color:var(--petro-1)}
.btn{border:1px solid var(--petro);background:var(--petro);color:#fff;border-radius:6px;padding:8px 14px;font-weight:600;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;justify-content:center}
.btn:hover{background:var(--petro-1)}
.btn.gold{background:linear-gradient(180deg,var(--gold-2),var(--gold));border-color:var(--gold);color:var(--petro-3)}
.btn.gold:hover{filter:brightness(1.05)}
.btn.ghost{background:transparent;color:var(--petro);border-color:var(--line)}
.btn.ghost:hover{background:#eef4f4}
.btn.danger{background:var(--bad);border-color:var(--bad)}
.btn.ok{background:var(--ok);border-color:var(--ok)}
.btn.small{padding:5px 10px;font-size:12px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.muted{color:var(--muted)} .small{font-size:12px} .tiny{font-size:11px}
.ok{color:var(--ok)} .bad{color:var(--bad)} .warn{color:var(--warn)}
.right{text-align:right} .center{text-align:center}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.row.end{justify-content:flex-end}
.row.between{justify-content:space-between}
.grow{flex:1;min-width:0}
.grid{display:grid;gap:12px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.span2{grid-column:span 2}
.mt{margin-top:12px} .mb{margin-bottom:12px}
hr.sep{border:0;border-top:1px solid var(--line);margin:14px 0}
.pre{white-space:pre-wrap;word-break:break-word}

/* ---------- tela de entrada (igual aos sistemas S.W.W.S) ---------- */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#042D35;padding:16px}
.login-box{position:relative;width:530px;max-width:100%;background:#042D35;color:#F4F1EC;display:flex;flex-direction:column;align-items:center;padding:14px 24px 52px}
.l-topo{display:flex;align-items:center;justify-content:center;width:100%;gap:6px}
.l-linha{position:relative;flex:1;height:2px;overflow:hidden}
.l-linha.e{background:linear-gradient(90deg,rgba(201,164,76,0),rgba(201,164,76,.55) 45%,#E2C77E)}
.l-linha.d{background:linear-gradient(270deg,rgba(201,164,76,0),rgba(201,164,76,.55) 45%,#E2C77E)}
.l-linha i{position:absolute;top:-3px;width:70px;height:8px;border-radius:8px;background:radial-gradient(closest-side,#fff8dc,rgba(255,236,170,.6) 40%,rgba(255,220,120,0));animation:faisca 4.5s ease-in-out infinite}
.l-linha.e i{right:0}.l-linha.d i{left:0}
@keyframes faisca{0%,70%,100%{opacity:0}80%{opacity:1}}
.l-logo{position:relative;width:180px;height:154px;flex:none;border-radius:50%;overflow:hidden}
.l-logo img{display:block;width:180px;height:154px}
.l-luz{position:absolute;inset:-20%;background:linear-gradient(115deg,transparent 38%,rgba(255,250,230,.85) 50%,transparent 62%);transform:translateX(-120%);mix-blend-mode:screen;pointer-events:none;animation:brilho 5s ease-in-out infinite}
@keyframes brilho{0%,60%{transform:translateX(-120%)}85%,100%{transform:translateX(120%)}}
.l-swws{font-family:Georgia,serif;font-weight:700;font-size:21px;color:#C9A44C;margin-top:2px}
.l-emp{font-family:Georgia,serif;font-weight:700;font-size:20px;color:#E2C77E;text-align:center}
.l-acesso{font-size:12.5px;font-style:italic;color:#DDD6D2;margin:2px 0 12px;text-align:center}
.l-acesso.err{font-style:normal;font-weight:700;color:#E79A9A;max-width:440px;line-height:1.35}
.l-campos{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px 10px;width:330px;max-width:100%;align-items:center}
.l-campos label{display:contents;color:#F4F1EC;font-size:13.5px;font-weight:400}
.l-campos input{background:#07252b;border:0;color:#F4F1EC;caret-color:#C9A44C;padding:9px 10px;border-radius:2px}
.l-campos input:focus{outline:1px solid #C9A44C}
.l-bts{margin:16px 0 10px;display:flex;gap:10px}
.l-entrar{padding:9px 52px;font-size:15px;border-radius:2px;background:#C9A44C;border-color:#C9A44C;color:#042D35}
.l-frase{width:100%;text-align:center;margin-top:10px}
.l-frase hr{border:0;border-top:1px solid #C9A44C;margin:0 25% 6px}
.l-frase p{font-family:Georgia,serif;font-style:italic;font-size:12px;color:#DDD6D2;margin:0 20px}
.l-frase b{font-size:10px;color:#C9A44C;letter-spacing:.04em}
.l-rodape{position:absolute;left:12px;right:12px;bottom:8px;display:flex;justify-content:space-between;align-items:flex-end;gap:10px;font-size:10.5px;font-weight:700;color:#E2C77E}
.l-rodape b{color:#C9A44C;font-size:12.5px;white-space:nowrap}

/* ---------- estrutura ---------- */
#app{display:flex;min-height:100vh}
.side{width:224px;background:linear-gradient(180deg,var(--petro-1),var(--petro-3));color:#fff;flex-shrink:0;position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;z-index:40}
.brand{display:flex;gap:10px;align-items:center;padding:14px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand .bl{width:76px;display:flex;justify-content:center}
.brand img{width:66px;height:auto}
.brand b{color:var(--gold-2);font-size:17px;font-family:Georgia,serif} .brand small{display:block;color:var(--silver);font-size:12px}
nav{display:flex;flex-direction:column;padding:8px 0;flex:1}
nav a{display:flex;align-items:center;gap:10px;padding:10px 16px;color:#e9f1f1;text-decoration:none;font-weight:500;border-left:3px solid transparent}
nav a:hover{background:rgba(255,255,255,.07)}
nav a.on{background:rgba(232,199,106,.14);border-left-color:var(--gold-2);color:#fff}
nav a .ic{width:20px;text-align:center}
nav a .badge{margin-left:auto}
nav .sec{font-size:10.5px;letter-spacing:.08em;color:var(--silver);padding:12px 16px 4px;text-transform:uppercase;opacity:.8}
.side-rodape{display:flex;justify-content:space-between;gap:8px;padding:10px 14px;font-size:11px;color:var(--silver);border-top:1px solid rgba(255,255,255,.12)}
.side-rodape b{color:var(--gold-2)}
.badge{background:var(--gold-2);color:var(--petro-3);border-radius:10px;font-size:11px;font-weight:700;padding:1px 7px;min-width:20px;text-align:center}
.badge.red{background:#e0574f;color:#fff}
main{flex:1;min-width:0;display:flex;flex-direction:column}
.top{display:flex;align-items:center;gap:10px;padding:10px 18px;background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap;position:sticky;top:0;z-index:30}
.top h1{margin:0;font-size:18px;color:var(--petro);flex:1;min-width:120px}
.top-info{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.top-info select{width:auto;max-width:220px;padding:5px 8px}
.menu-btn{display:none}
#view{padding:18px;flex:1;min-width:0}
.pill{padding:4px 10px;border-radius:20px;font-size:12px;background:#e7f2ec;color:var(--ok);font-weight:600;white-space:nowrap}
.pill.off{background:#fbe9e7;color:var(--bad)} .pill.silver{background:#eef0ef;color:var(--muted)}
.pill.warn{background:#fff3d6;color:var(--warn)} .pill.info{background:#e3eef9;color:var(--info)}
.pill.gold{background:linear-gradient(180deg,var(--gold-2),var(--gold));color:var(--petro-3)}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:14px;min-width:0}
.card h3{margin:0 0 12px;font-size:15px;color:var(--petro);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.card h3 .row{margin-left:auto}
.kpi{display:flex;flex-direction:column;gap:2px;border-left:4px solid var(--gold);cursor:pointer}
.kpi b{font-size:26px;color:var(--petro)} .kpi span{color:var(--muted);font-size:12.5px}
.kpi.alerta{border-left-color:#e0574f}
.aviso{padding:10px 14px;border-radius:8px;background:#fff3d6;color:#6b4a00;border:1px solid #f1d58f;margin-bottom:12px;line-height:1.45}
.aviso.ok{background:#e7f5ed;color:#145c33;border-color:#a7dbbc}
.aviso.bad{background:#fbe9e7;color:#7a1c16;border-color:#efb5ae}
.aviso.info{background:#e8f1f9;color:#17466f;border-color:#b6d1ea}
.passos{margin:6px 0 0;padding-left:20px;line-height:1.6}

/* tabelas / listas */
.tab{width:100%;border-collapse:collapse}
.tab th{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;padding:8px;border-bottom:2px solid var(--line);white-space:nowrap}
.tab td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.tab tr.click{cursor:pointer} .tab tr.click:hover td{background:#f6f9f9}
.tab-wrap{overflow-x:auto}
.abas{display:flex;gap:4px;border-bottom:2px solid var(--line);margin-bottom:14px;flex-wrap:wrap}
.abas button{background:none;border:0;padding:9px 14px;color:var(--muted);font-weight:600;border-bottom:3px solid transparent;margin-bottom:-2px}
.abas button.on{color:var(--petro);border-bottom-color:var(--gold)}
.vazio{padding:30px;text-align:center;color:var(--muted)}

/* interruptor (padrão S.W.W.S: interruptor, não caixinha) */
.sw{display:inline-flex;align-items:center;gap:10px;cursor:pointer;flex-direction:row;font-size:13px;color:var(--ink);font-weight:600}
.sw input{display:none}
.sw i{width:42px;height:24px;border-radius:12px;background:#c9d1d2;position:relative;transition:.2s;flex:none}
.sw i:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:3px;left:3px;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.sw input:checked+i{background:var(--ok)}
.sw input:checked+i:after{left:21px}

/* modo da IA */
.modos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.modo{border:2px solid var(--line);border-radius:10px;padding:12px;cursor:pointer;background:#fff;text-align:left}
.modo b{display:block;font-size:14px;color:var(--petro);margin-bottom:4px}
.modo span{font-size:12px;color:var(--muted);line-height:1.4}
.modo.on{border-color:var(--gold);background:#fffaf0;box-shadow:0 0 0 3px rgba(232,199,106,.25)}

/* ---------- conversas ---------- */
.chat-wrap{display:grid;grid-template-columns:310px minmax(0,1fr) 270px;gap:0;height:calc(100vh - 58px - 36px);background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.chat-lista{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.chat-lista .filtros{padding:10px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.chat-lista .filtros .abas{margin:0;border:0}
.chat-lista .filtros .abas button{padding:5px 9px;font-size:12px;border-radius:14px;border:1px solid var(--line);margin:0}
.chat-lista .filtros .abas button.on{background:var(--petro);color:#fff;border-color:var(--petro)}
.itens{overflow-y:auto;flex:1}
.item{display:flex;gap:10px;padding:10px 12px;border-bottom:1px solid #eef1f1;cursor:pointer;align-items:flex-start}
.item:hover{background:#f6f9f9} .item.on{background:#fff8e6}
.av{width:38px;height:38px;border-radius:50%;background:var(--petro);color:var(--gold-2);display:flex;align-items:center;justify-content:center;font-weight:700;flex:none;font-size:14px}
.item .meio{flex:1;min-width:0}
.item .nm{font-weight:600;display:flex;gap:6px;align-items:center}
.item .nm span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.item .ul{color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.item .hr{font-size:11px;color:var(--muted);white-space:nowrap;text-align:right;display:flex;flex-direction:column;gap:4px;align-items:flex-end}
.tag{font-size:10.5px;padding:1px 6px;border-radius:8px;font-weight:700;white-space:nowrap}
.tag.ia{background:#dff3ee;color:#13624f} .tag.voce{background:#fbf1d6;color:#7b5a12} .tag.esp{background:#fbe0dd;color:#9b241c}
.tag.ign{background:#eceeee;color:#666}
.chat{display:flex;flex-direction:column;min-width:0;min-height:0;background:#efeae2 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Cpath d='M30 5l3 6-3 6-3-6z' fill='%23d9d2c5' opacity='.35'/%3E%3C/svg%3E")}
.chat-top{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap}
.chat-top .quem{min-width:150px}
.chat-top .quem b,.chat-top .quem span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-top .acoes{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.msgs{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:6px}
.dia{align-self:center;background:#e1f2f7;color:#456;font-size:11.5px;padding:3px 10px;border-radius:8px;margin:6px 0}
.b{max-width:min(78%,560px);padding:7px 10px 5px;border-radius:9px;box-shadow:0 1px 1px rgba(0,0,0,.1);line-height:1.38;word-break:break-word;white-space:pre-wrap;position:relative}
.b.cli{align-self:flex-start;background:var(--bolha-cli)}
.b.ia{align-self:flex-end;background:var(--bolha-ia)}
.b.voce{align-self:flex-end;background:var(--bolha-voce)}
.b.sis{align-self:center;background:var(--bolha-sis);font-size:12.5px;color:#444}
.b .q{display:block;font-size:10.5px;font-weight:700;margin-bottom:2px;color:var(--petro-1)}
.b.voce .q{color:#7b5a12}
.b .h{display:block;text-align:right;font-size:10.5px;color:#7a8a8d;margin-top:2px}
.b.hist{opacity:.85}
.b img.midia{max-width:240px;max-height:240px;border-radius:6px;display:block;margin-bottom:4px;cursor:zoom-in}
.b .erro{color:var(--bad);font-size:11px;display:block}
.rasc{align-self:flex-end;max-width:min(86%,600px);background:#fff;border:2px dashed var(--gold);border-radius:10px;padding:10px;width:100%}
.rasc .tt{font-size:11.5px;font-weight:700;color:var(--gold);margin-bottom:6px;display:flex;gap:6px;align-items:center}
.rasc.preco{border-color:#e0574f} .rasc.preco .tt{color:#b3261e}
.rasc textarea{min-height:80px;background:#fffdf6}
.compor{display:flex;gap:8px;padding:10px;background:#f0f2f2;border-top:1px solid var(--line);align-items:flex-end}
.compor textarea{min-height:42px;max-height:160px;border-radius:20px;padding:10px 14px}
.compor .btn{border-radius:20px}
.chat-info{border-left:1px solid var(--line);overflow-y:auto;padding:12px;min-width:0}
.chat-info h4{margin:12px 0 6px;color:var(--petro);font-size:13px}
.chat-info .card{padding:10px}
.voltar{display:none}

/* ---------- pedidos ---------- */
.st{font-size:12px;font-weight:600;white-space:nowrap}
.st.pendente{color:#b3261e} .st.aceito{color:var(--ok)} .st.enviado{color:var(--info)}
.st.em_execucao{color:var(--warn)} .st.concluido{color:#555} .st.cancelado,.st.recusado{color:#999}
.itens-tab input{padding:6px 8px}
.itens-tab td{padding:4px;vertical-align:middle}
.total-linha{font-size:18px;font-weight:700;color:var(--petro);text-align:right}
.hist-ped{font-size:12px;color:var(--muted);max-height:180px;overflow:auto}
.hist-ped div{padding:4px 0;border-bottom:1px dotted var(--line)}

/* ---------- modais e avisos ---------- */
.modal-bg{position:fixed;inset:0;background:rgba(2,38,46,.55);display:flex;align-items:flex-start;justify-content:center;padding:4vh 10px;z-index:60;overflow:auto}
.modal{background:#fff;border-radius:12px;width:min(720px,100%);border-top:4px solid var(--gold);box-shadow:0 10px 40px rgba(0,0,0,.3)}
.modal.wide{width:min(1040px,100%)}
.modal header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}
.modal header h2{margin:0;font-size:16px;color:var(--petro)}
.modal .body{padding:16px 18px}
.modal footer{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
#toast{position:fixed;bottom:18px;right:18px;z-index:99;display:flex;flex-direction:column;gap:8px;max-width:calc(100vw - 36px)}
#toast div{background:var(--petro-3);color:#fff;padding:10px 14px;border-radius:8px;border-left:4px solid var(--gold-2);max-width:420px;box-shadow:0 4px 14px rgba(0,0,0,.2);line-height:1.4}
#toast div.err{border-left-color:#ff6b5f}
.simu{background:#efeae2;border-radius:10px;padding:12px;height:360px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}
.ferr{font-size:11px;color:#13624f;background:#e8f6f1;border-radius:6px;padding:4px 8px;align-self:flex-end}
.codigo{font-family:Consolas,monospace;background:#f3f5f5;border:1px solid var(--line);border-radius:6px;padding:8px 10px;word-break:break-all;font-size:12.5px}
.ponto{display:inline-block;width:9px;height:9px;border-radius:50%;background:#bbb;margin-right:5px}
.ponto.ok{background:var(--ok)} .ponto.bad{background:var(--bad)} .ponto.warn{background:#e2a400}

/* ---------- celular / tela pequena ---------- */
@media (max-width:1360px){
  .chat-wrap{grid-template-columns:300px minmax(0,1fr)}
  .chat-info{display:none}
  .chat-info.aberta{display:block;position:fixed;right:0;top:0;bottom:0;width:min(330px,92vw);background:#fff;z-index:45;box-shadow:-6px 0 20px rgba(0,0,0,.2)}
}
@media (max-width:900px){
  .g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .modos{grid-template-columns:1fr}
}
@media (max-width:760px){
  .side{position:fixed;left:0;top:0;transform:translateX(-100%);transition:.25s}
  .side.aberta{transform:none}
  .side-fundo.aberta{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:35}
  .menu-btn{display:inline-flex}
  #view{padding:10px}
  .top{padding:8px 10px}
  .top h1{font-size:16px}
  #btn-senha,#info-user{display:none}
  .g2,.g3{grid-template-columns:1fr}
  .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi b{font-size:22px}
  .passo{grid-template-columns:16px minmax(0,1fr)}
  .passo .small{grid-column:2;text-align:left}
  .chat-top .acoes{width:100%;justify-content:flex-start}
  .span2{grid-column:auto}
  .chat-wrap{grid-template-columns:1fr;height:calc(100vh - 56px - 20px)}
  .chat-wrap .chat{display:none}
  .chat-wrap.conversa-aberta .chat-lista{display:none}
  .chat-wrap.conversa-aberta .chat{display:flex}
  .voltar{display:inline-flex}
  .b{max-width:88%}
  .tab-resp thead{display:none}
  .tab-resp tr{display:block;border-bottom:1px solid var(--line);padding:6px 0}
  .tab-resp td{display:flex;justify-content:space-between;gap:10px;border:0;padding:3px 6px}
  .tab-resp td:before{content:attr(data-l);font-size:11px;color:var(--muted);font-weight:600}
  .l-rodape{font-size:9.5px}
  .itens-tab thead{display:none}
  .itens-tab tr{display:grid;grid-template-columns:70px minmax(0,1fr) auto 40px;gap:4px;align-items:center;border-bottom:1px solid var(--line);padding:4px 0}
  .itens-tab td{width:auto!important;border:0}
  .itens-tab td:first-child{grid-column:1/-1}
}
