/* =====================================================================
   Plataforma Connect — Design System (identidade oficial da marca)
   Azul #003466 (dominante) · Laranja #fe7702 (acento) · Cinza #F2F2F2
   Montserrat (fonte única do sistema)
   ===================================================================== */

:root{
  --navy:#003466; --navy-d:#012a52; --navy-l:#0a4a82;
  --orange:#fe7702; --orange-d:#e56a00;
  --gray:#F2F2F2; --bg:#f5f7fa; --card:#ffffff; --line:#e3e8ef;
  --txt:#16263b; --muted:#6b7d93;
  --green:#1f9d57; --red:#dc2626; --amber:#e08a00;
  --radius:14px; --shadow:0 6px 24px rgba(0,52,102,.08);
  --title:'Montserrat',system-ui,sans-serif; --body:'Montserrat',system-ui,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden}
body{font-family:var(--body);background:var(--bg);color:var(--txt);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}
button{font-family:inherit;cursor:pointer;border:none}
a{text-decoration:none;color:inherit}
.hidden{display:none !important}

/* ---------------- LOGIN ---------------- */
.loginwrap{min-height:100vh;display:grid;place-items:center;padding:20px;
  background:radial-gradient(1100px 560px at 15% -10%,#0a4a82,transparent 55%),
             radial-gradient(900px 500px at 110% 120%,#012a52,transparent 50%),var(--navy)}
.login{width:100%;max-width:390px;background:#fff;border-radius:18px;padding:38px 32px;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.login .login-logo{display:block;width:210px;max-width:80%;height:auto;margin:0 auto 2px}
.login .sub{text-align:center;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:1px;margin:6px 0 24px}
.login label{display:block;font-size:12.5px;color:var(--muted);font-weight:600;margin:14px 0 6px}
.login input{width:100%;padding:12px 13px;border:1.5px solid var(--line);border-radius:10px;font-size:14px;outline:none;font-family:var(--body)}
.login input:focus{border-color:var(--orange)}
.btn{width:100%;background:var(--navy);color:#fff;padding:13px;border-radius:10px;font-weight:700;font-size:15px;margin-top:22px;border-left:5px solid var(--orange)}
.btn:hover{background:var(--navy-l)}
.err{background:#fdeeee;color:#b32f2f;padding:11px;border-radius:8px;font-size:13px;margin-top:14px;text-align:center}

/* ---------------- APP SHELL (sidebar + main) ---------------- */
.app{min-height:100vh}
.side{position:fixed;top:0;left:0;width:240px;height:100vh;background:var(--navy);z-index:20}
.side-inner{display:flex;flex-direction:column;height:100%;padding:20px 14px;overflow-y:auto}
.side .brand{padding:8px 8px 18px;margin-bottom:8px;border-bottom:1px solid #ffffff1a}
.side .brand .blogo{display:block;width:100%;max-width:180px;height:auto}
.nav{display:flex;flex-direction:column;gap:3px;margin-top:8px}
.nav a{display:flex;align-items:center;gap:11px;color:#bcd0e6;padding:11px 12px;border-radius:10px;font-size:13.5px;font-weight:500}
.nav a .ic{width:20px;text-align:center;font-size:15px}
.nav a:hover{background:#ffffff12;color:#fff}
.nav a.active{background:var(--orange);color:#fff;font-weight:600}
.userbox{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px 8px 4px;border-top:1px solid #ffffff1a}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--orange);display:grid;place-items:center;font-size:14px;font-weight:700;color:#fff;flex-shrink:0;overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.userlink{display:flex;align-items:center;gap:10px;flex:1;min-width:0;border-radius:10px;padding:5px;margin:-5px;transition:.15s;cursor:pointer}
.userlink:hover{background:#ffffff14}
.uinfo{flex:1;min-width:0}
.uinfo b{display:block;font-size:13px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uinfo small{color:#9fb6cf;font-size:11px;text-transform:capitalize}
.sair{color:#fff;background:#ffffff1f;border:1px solid #ffffff33;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-size:15px;flex-shrink:0}
.sair:hover{background:#ffffff33}

.main{margin-left:240px;padding:28px 32px;overflow:auto}

/* ---- Sidebar recolhível (só ícones) ---- */
.side,.main{transition:width .18s ease,margin-left .18s ease}
.side .brand{display:flex;align-items:center;gap:8px}
.side .brand .blogo{flex:1;min-width:0;width:auto}
.side-toggle{flex-shrink:0;background:#ffffff1f;border:1px solid #ffffff33;color:#fff;width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:15px;line-height:1;display:grid;place-items:center}
.side-toggle:hover{background:#ffffff33}
@media(min-width:861px){
  html.side-collapsed .side{width:66px}
  html.side-collapsed .main{margin-left:66px}
  html.side-collapsed .side-inner{padding:18px 9px}
  html.side-collapsed .brand{justify-content:center;padding:8px 0 14px}
  html.side-collapsed .brand .blogo{display:none}
  html.side-collapsed .nav a{justify-content:center;gap:0;padding:11px 0}
  html.side-collapsed .nav a .lbl{display:none}
  html.side-collapsed .nav a .ic{width:auto;font-size:17px}
  html.side-collapsed .userbox{flex-direction:column;gap:10px;padding:12px 0 4px}
  html.side-collapsed .userlink{justify-content:center;padding:0;margin:0}
  html.side-collapsed .uinfo{display:none}
  html.side-collapsed .sair{margin:0}
}
@media(max-width:860px){.side-toggle{display:none}}

.page-head{margin-bottom:24px}
.page-head h1{font-size:23px;font-weight:700;color:var(--navy)}
.page-head p{color:var(--muted);font-size:13px;margin-top:4px}

/* ---------------- CARDS DE MÓDULO ---------------- */
.mods-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.modcard{display:block;background:var(--card);border:1px solid var(--line);border-top:3px solid var(--orange);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);transition:.15s}
.modcard:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,52,102,.14)}
.modcard .ic{font-size:30px;line-height:1}
.modcard h3{color:var(--navy);font-size:16px;margin:13px 0 6px}
.modcard p{color:var(--muted);font-size:12.5px;line-height:1.45}
.vazio{color:var(--muted);font-size:14px;padding:24px}
.modcard.disabled{opacity:.6;cursor:not-allowed;box-shadow:none}
.modcard.disabled:hover{transform:none;box-shadow:var(--shadow)}
.cfg-tag{display:inline-block;margin-top:11px;font-size:11px;font-weight:700;color:var(--orange);background:#fe770214;padding:3px 10px;border-radius:20px}
.cfg-tag.soon{color:var(--muted);background:var(--gray)}

/* ---------------- PAINEL / PLACEHOLDER ---------------- */
.painel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.placeholder{color:var(--muted);text-align:center;padding:64px 20px;font-size:14px;line-height:1.5}
.placeholder .big{font-size:42px;margin-bottom:14px}
.placeholder code{background:var(--gray);padding:1px 6px;border-radius:5px;font-size:12.5px}

/* ---------------- PORTAL DO CLIENTE (topbar dedicada) ---------------- */
.cli-top{background:var(--navy);color:#fff;padding:14px 28px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}
.cli-top .cli-logo{height:30px;width:auto;display:block}
.cli-right{display:flex;align-items:center;gap:14px;font-size:13px}
.cli-wrap{max-width:1000px;margin:0 auto;padding:28px}

/* ---------------- MÓDULO PROJETOS: lista ---------------- */
.badge{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap;display:inline-block}
.b-pend{background:#fe770218;color:#b85600}
.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.proj-card{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);transition:.15s}
.proj-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(0,52,102,.14)}
.proj-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
.proj-card h3,.proj-top > b{color:var(--navy);font-size:15px;font-weight:700;line-height:1.3}
.proj-top .badge{flex-shrink:0;align-self:flex-start}
.proj-sub{color:var(--muted);font-size:12px;margin:5px 0 12px}
.prog{height:6px;background:#e3e8ef;border-radius:10px;overflow:hidden;width:100%}
.prog i{display:block;height:100%;background:var(--orange)}
.proj-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--muted);font-size:11.5px;margin-top:8px}
.proj-foot .badge{flex-shrink:0}

/* ---------------- MÓDULO PROJETOS: painel do projeto ---------------- */
.voltar{display:inline-block;color:var(--orange);font-size:12.5px;font-weight:600;margin-bottom:6px}
/* ---------------- ACESSO RÁPIDO ÀS TELAS (topo do projeto) ---------------- */
.quickbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.quickbar .qa{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1.5px solid var(--line);color:var(--navy);padding:7px 12px;border-radius:10px;font-size:12.5px;font-weight:600;text-decoration:none;transition:.15s}
.quickbar .qa:hover{border-color:var(--orange);box-shadow:0 6px 16px rgba(0,52,102,.10);transform:translateY(-1px)}
.quickbar .qa .qa-ic{font-size:15px;line-height:1}
.quickbar .qa .qa-del{font-size:11px;color:var(--muted);opacity:0;transition:.15s;padding-left:3px}
.quickbar .qa:hover .qa-del{opacity:.5}
.quickbar .qa .qa-del:hover{opacity:1;color:var(--red)}
.quickbar .qa-add{background:transparent;border-style:dashed;color:var(--muted)}
.quickbar .qa-add:hover{color:var(--orange);border-color:var(--orange);transform:none;box-shadow:none}
.quickbar .qa-load{font-size:12px;color:var(--muted)}

/* ---------------- TELA DE PERFIL ---------------- */
.perfil-foto{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.avatar-lg{width:88px;height:88px;border-radius:50%;background:var(--orange);display:grid;place-items:center;color:#fff;font-size:32px;font-weight:700;overflow:hidden;flex-shrink:0}
.avatar-lg img{width:100%;height:100%;object-fit:cover;display:block}
.perfil-foto-acts{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.perfil-hint{font-size:11.5px;color:var(--muted)}
.perfil-field{display:block;margin:12px 0 6px;font-size:12.5px;color:var(--muted);font-weight:600}
.perfil-input{width:100%;border:1.5px solid var(--line);border-radius:9px;padding:10px 12px;font-size:13.5px;font-family:var(--body);outline:none}
.perfil-input:focus{border-color:var(--orange)}
.perfil-msg{font-size:13px;margin-top:10px;font-weight:600;min-height:1px}
.perfil-msg.ok{color:var(--green)}
.perfil-msg.err{color:var(--red)}

/* ---------------- FORM GENÉRICO (fora de modal) ex.: geração solar ---------------- */
.gform label{display:block;font-size:12.5px;color:var(--muted);font-weight:600;margin:12px 0 6px}
.gform .frow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.gform .frow > div{display:flex;flex-direction:column}
.gform .frow label{margin-top:0}
.gform input,.gform textarea{width:100%;border:1.5px solid var(--line);border-radius:9px;padding:10px 12px;font-size:13.5px;font-family:var(--body);color:var(--txt);background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}
.gform input:focus,.gform textarea:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(254,119,2,.12)}
@media(max-width:560px){.gform .frow{grid-template-columns:1fr}}

/* ---------------- LOG DE ACESSOS: barra de filtros ---------------- */
.logfilter{align-items:flex-end !important;gap:12px !important;padding:16px !important}
.logfilter > div{display:flex;flex-direction:column}
.logfilter label{font-size:10.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px !important}
.logfilter input,.logfilter select{width:100%;height:40px;border:1.5px solid var(--line);border-radius:10px;padding:0 12px;font-size:13px;font-family:var(--body);color:var(--txt);background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}
.logfilter input::placeholder{color:#9fb0c4}
.logfilter input:focus,.logfilter select:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(254,119,2,.12)}
.logfilter select{cursor:pointer;appearance:none;-webkit-appearance:none;padding-right:30px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7d93' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center}
.logfilter input[type=date]{min-width:150px;color:var(--txt)}
.logfilter .pill{height:40px;display:inline-flex;align-items:center}

/* ---------------- VISUALIZADOR DE TELAS (casca + abas + iframe) ---------------- */
.tela-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 18px;background:var(--navy)}
.tela-bar .voltar{color:#cfe0f2;margin:0}
.tela-bar .voltar:hover{color:#fff}
.telatabs{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.telatabs .ttab{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.12);border:1.5px solid transparent;color:#eaf1f9;padding:8px 14px;border-radius:10px;font-size:13px;font-weight:600;text-decoration:none;transition:.15s}
.telatabs .ttab:hover{background:rgba(255,255,255,.2)}
.telatabs .ttab.active{background:var(--orange);color:#fff;border-color:var(--orange)}
.telatabs .ttab .ic{font-size:15px;line-height:1}
.telatabs .ttab.ext{font-weight:700;color:var(--muted);padding:8px 11px}
.telatabs .ttab.ext:hover{color:var(--orange)}
.telaframe{background:#fff;overflow:hidden;height:calc(100vh - 60px);min-height:560px}
.telaframe iframe{width:100%;height:100%;border:0;display:block}
@media(max-width:860px){.telaframe{height:calc(100vh - 150px);min-height:460px}}

.qtoolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.qtoolbar-right{display:flex;align-items:center;gap:10px}
.fbtns{display:flex;flex-wrap:wrap;gap:6px}
.fbtn{background:#fff;border:1.5px solid var(--line);color:var(--navy);padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600}
.fbtn.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.fselect{background:#fff;border:1.5px solid var(--line);color:var(--txt);padding:8px 11px;border-radius:9px;font-size:12.5px;font-family:var(--body)}
.pill{background:#fff;border:1.5px solid var(--line);color:var(--navy);padding:9px 15px;border-radius:10px;font-size:13px;font-weight:600}
.pill:hover{filter:brightness(.97)}
.pill.primary{background:var(--orange);border-color:var(--orange);color:#fff}
.pill.primary:hover{background:var(--orange-d);filter:none}
.pill.sm{padding:6px 11px;font-size:11.5px}

.qlist{display:flex;flex-direction:column;gap:14px}
.qcard{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}
.qhead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.qtitle{font-size:14.5px;font-weight:700;color:var(--navy);line-height:1.35}
/* cards de conversa recolhíveis (portal do cliente) */
.qcard.colaps .qhead{cursor:pointer}
.qhead-r{display:flex;align-items:center;gap:8px;flex-shrink:0}
.qmsgs{font-size:11.5px;color:var(--muted);white-space:nowrap}
.qcaret{display:inline-block;transition:transform .15s;font-size:11px;color:var(--muted);margin-right:2px}
.qcard.collapsed .qcaret{transform:rotate(-90deg)}
.qcard.collapsed{padding-top:14px;padding-bottom:14px}
.qcard.collapsed .qbody{display:none}
.qtags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}
.tag{font-size:10.5px;font-weight:600;color:var(--muted);background:var(--gray);padding:2px 9px;border-radius:20px}
/* ---------------- DADOS DO PROJETO ---------------- */
.dados-proj{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 22px;margin-top:6px}
.dados-proj > div{display:flex;flex-direction:column;gap:2px}
.dlbl{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.dval{font-size:14px;color:var(--navy);font-weight:600}
.dados-desc{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:13.5px;color:#16263b;line-height:1.5}
@media(max-width:780px){.dados-proj{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.dados-proj{grid-template-columns:1fr}}
.thread{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.bub{max-width:88%;padding:9px 12px;border-radius:12px;font-size:13px;line-height:1.4}
.bub .bmeta{font-size:10.5px;color:var(--muted);margin-bottom:3px}
.bub.empresa{align-self:flex-start;background:#eef2f7;border:1px solid #e1e8f0}
.bub.cliente{align-self:flex-end;background:#fff4e9;border:1px solid #ffe0c2}
.bub .btxt{color:var(--txt);white-space:pre-wrap}
/* avatar ao lado da mensagem (estilo grupo de WhatsApp) */
.msgrow{display:flex;align-items:flex-end;gap:8px;max-width:90%}
.msgrow.empresa{align-self:flex-start}
.msgrow.cliente{align-self:flex-end;flex-direction:row-reverse}
.msgrow .bub{max-width:100%}
.msg-av{width:30px;height:30px;border-radius:50%;flex-shrink:0;overflow:hidden;display:grid;place-items:center;background:var(--navy);color:#fff;font-size:12px;font-weight:700;margin-bottom:2px}
.msgrow.cliente .msg-av{background:var(--orange)}
.msg-av img{width:100%;height:100%;object-fit:cover;display:block}
/* recebedores de avisos */
.receb-list{display:flex;flex-direction:column}
.receb-row{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid #eef2f7;cursor:pointer;flex-wrap:wrap}
.receb-row:last-child{border-bottom:none}
.receb-row input{width:auto;cursor:pointer}
.receb-nome{font-weight:600;color:var(--navy);min-width:180px}
.receb-nome small{color:var(--muted);font-weight:400}
.receb-mail{color:var(--muted);font-size:12.5px;flex:1;min-width:160px}
.bub{position:relative}
.bub-del{position:absolute;top:5px;right:6px;background:none;border:none;cursor:pointer;font-size:11px;line-height:1;opacity:0;transition:.15s;padding:1px}
.bub:hover .bub-del{opacity:.5}
.bub-del:hover{opacity:1}
.bub.apagada{opacity:.8}
.btxt.removida{color:var(--muted);font-style:italic}
/* caixa de resposta: textarea em largura total + botões (anexar/enviar) embaixo, à direita */
.qreply{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;margin-bottom:10px}
.qreply textarea{flex:1 1 100%;width:100%;border:1.5px solid var(--line);border-radius:10px;padding:9px 11px;font-size:13px;font-family:var(--body);resize:vertical;min-height:44px;outline:none}
.qreply textarea:focus{border-color:var(--orange)}
.qreply .pill.sm{padding:5px 13px;font-size:12px}
.qacts{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:10px}
.qacts-l{font-size:11.5px;color:var(--muted);font-weight:600}

/* ---------------- QUESTIONAMENTOS: kanban (3 colunas) ---------------- */
.qboard{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.qkcard{background:#fff;border:1px solid var(--line);border-top:3px solid var(--muted);border-radius:10px;padding:11px 12px;margin-bottom:10px;cursor:pointer;box-shadow:0 1px 3px rgba(0,52,102,.05);transition:.15s}
.qkcard:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,52,102,.12)}
.qktags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:7px}
.qktitle{font-size:13.5px;font-weight:600;color:var(--navy);line-height:1.35}
.qkfoot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:9px;color:var(--muted);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.agealert{display:inline-block;font-size:11px;font-weight:700;padding:4px 10px;border-radius:7px;margin:8px 0}
.agealert.red{background:#ef444422;color:#b32f2f}
.agealert.amber{background:#f59e0b22;color:#a86500}
.qkcard.aged-red{border-top-color:#dc2626 !important;background:#fdf1f1}
.qkcard.aged-amber{background:#fffaf2}
.qkcard[draggable="true"]{cursor:grab}
.qkcard.dragging{opacity:.45;cursor:grabbing}
.kcol.kcol-over{outline:2px dashed var(--orange);outline-offset:3px;border-radius:10px;background:rgba(254,119,2,.05)}
@media(max-width:780px){.qboard{grid-template-columns:1fr}}

/* ---------------- ANEXOS ---------------- */
.qreply{align-items:center}
.qclip{display:grid;place-items:center;width:30px;height:30px;border:1.5px solid var(--line);border-radius:8px;cursor:pointer;font-size:13px;flex-shrink:0;background:#fff}
.qclip:hover{background:#f1f4f8;border-color:var(--orange)}
.anexos{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.anximg img{width:62px;height:62px;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block}
.anxfile{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:11.5px;color:var(--navy);font-weight:600}
.anxfile:hover{border-color:var(--orange)}

/* ---------------- DOCUMENTOS / TELAS ---------------- */
.telas{display:flex;flex-wrap:wrap;gap:10px}
.tela{display:flex;align-items:center;gap:6px;background:#f7f9fc;border:1px solid var(--line);border-radius:10px;padding:6px 8px 6px 12px}
.tela-link{font-size:13px;font-weight:600;color:var(--navy)}
.tela-link:hover{color:var(--orange)}
/* cards de Levantamentos & telas (Vistoria / Elétrica / Lógica…) */
.tela-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.tela-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;
  background:#f7f9fc;border:1px solid var(--line);border-radius:12px;padding:18px 12px;text-decoration:none;color:var(--navy);
  font-weight:600;font-size:13px;transition:.15s}
.tela-card:hover{border-color:var(--orange);box-shadow:0 8px 20px rgba(0,52,102,.10);transform:translateY(-2px)}
.tela-card .tic{font-size:26px;line-height:1}
.tela-card .tdel{position:absolute;top:6px;right:6px;opacity:0;transition:.15s}
.tela-card:hover .tdel{opacity:1}

/* ---------------- ACESSO DO CLIENTE ---------------- */
.acesso-url{background:var(--gray);border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-size:12.5px;color:var(--navy);word-break:break-all;font-family:var(--title)}

/* ---------------- ETAPAS & ACEITES ---------------- */
.etapas{display:flex;flex-direction:column;gap:12px}
.etapa{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:#fff}
.etapa-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.etapa-info b{font-size:14px;color:var(--navy)}
.etapa-desc{color:var(--muted);font-size:12.5px;margin-top:3px;line-height:1.4}
.etapa-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;border-top:1px dashed var(--line);padding-top:10px}
.pill.sm.del{color:#b32f2f;border-color:#f3b8b8}
.pill.sm.del:hover{background:#fdeeee}
.aceites{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.aceite{background:#f7f9fc;border:1px solid var(--line);border-left:3px solid var(--green);border-radius:8px;padding:8px 11px;font-size:12px;color:var(--muted)}
.aceite-obs{color:var(--txt);margin-top:3px}

/* ---------------- MODAL ---------------- */
.modal-bg{position:fixed;inset:0;background:rgba(2,18,40,.5);display:none;align-items:center;justify-content:center;padding:20px;z-index:50}
.modal-bg.show{display:flex}
#modalNovo{z-index:60}
.modal{background:#fff;border-radius:16px;width:460px;max-width:100%;box-shadow:0 24px 60px rgba(0,0,0,.35);overflow:hidden}
.modal.lg{width:620px}
.modal.lg .modal-body{max-height:72vh;overflow:auto}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line);color:var(--navy)}
.modal-head .x{background:none;font-size:16px;color:var(--muted)}
.modal-body{padding:18px 20px}
.modal-body label{display:block;font-size:12.5px;color:var(--muted);font-weight:600;margin:12px 0 6px}
.modal-body label:first-child{margin-top:0}
.modal-body input,.modal-body textarea,.modal-body select{width:100%;border:1.5px solid var(--line);border-radius:9px;padding:10px 12px;font-size:13.5px;font-family:var(--body);outline:none}
.modal-body input:focus,.modal-body textarea:focus,.modal-body select:focus{border-color:var(--orange)}
.modal-body .frow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.chk-grid{display:flex;flex-wrap:wrap;gap:8px}
.chk{display:flex;align-items:center;gap:6px;background:#f7f9fc;border:1px solid var(--line);border-radius:8px;padding:7px 11px;font-size:12.5px;color:var(--txt);cursor:pointer}
.chk input{width:auto}
.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--line);background:#fafbfc}

/* ---------------- DASHBOARD: KPIs ---------------- */
.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:24px}
.topbar h1{font-size:23px;font-weight:700;color:var(--navy)}
.topbar .sub{color:var(--muted);font-size:13px;margin-top:4px}
.actions{display:flex;gap:10px;flex-wrap:wrap}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.kpi .lbl{color:var(--muted);font-size:12.5px;font-weight:600;display:flex;align-items:center;gap:8px}
.kpi .val{font-family:var(--title);font-size:26px;font-weight:700;margin-top:10px;color:var(--navy)}
.kpi .delta{font-size:12px;margin-top:6px;font-weight:600;color:var(--muted)}
.kpi .delta.up{color:var(--green)} .kpi .delta.down{color:var(--red)}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.seclabel{font-size:12px;font-weight:700;color:var(--navy);text-transform:uppercase;letter-spacing:.4px;margin:6px 0 14px}

/* ---------------- DASHBOARD: painéis (2 colunas) ---------------- */
.cols{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.panel .ph{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.panel h4{font-size:14px;color:var(--navy)}
.panel .ph a{font-size:12px;color:var(--orange);font-weight:600;cursor:pointer}
.row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #eef2f7}
.row:last-child{border-bottom:none}
.row .tg{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-size:16px;flex-shrink:0;color:#fff}
.row .info{flex:1;min-width:0}
.row .info b{font-size:13.5px;color:var(--navy);display:block;line-height:1.3}
.row .info small{color:var(--muted);font-size:11.5px}
.b-and{background:#00346618;color:var(--navy)}
.b-cli{background:#fe770218;color:#b85600}
.b-ok{background:#1f9d5718;color:#157a42}

/* ---------------- KANBAN (Projetos & Demandas) ---------------- */
.board{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.kcol{background:#eef2f7;border:1px solid var(--line);border-radius:12px;padding:12px;min-height:200px}
.kcol h4{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--navy);font-weight:700;display:flex;align-items:center;gap:8px;margin-bottom:12px}
.kcol h4 .count{margin-left:auto;background:#fff;border:1px solid var(--line);padding:1px 8px;border-radius:20px;font-size:11px}
.ticket{display:block;background:#fff;border:1px solid var(--line);border-left:3px solid var(--orange);border-radius:10px;padding:12px;margin-bottom:10px;box-shadow:0 1px 3px rgba(0,52,102,.05);transition:.15s}
.ticket:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,52,102,.12)}
.ticket .t{font-size:13.5px;font-weight:600;line-height:1.35;color:var(--navy)}
.ticket .meta{display:flex;align-items:center;gap:6px;margin-top:10px;flex-wrap:wrap}
.ticket .cli{color:var(--muted);font-size:11.5px;margin-top:9px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.ticket .miniprog{margin-top:9px}
.mini-av{width:24px;height:24px;border-radius:50%;background:var(--navy);display:grid;place-items:center;font-size:10px;font-weight:700;color:#fff;flex-shrink:0}
.b-eletrica{background:#003466;color:#fff}
.b-auto{background:#fe770222;color:#b85600}
.b-projeto{background:#1f9d5722;color:#157a42}
.b-logica{background:#0a4a8222;color:#0a4a82}

/* ---------------- TABELA (lista) ---------------- */
table{width:100%;border-collapse:collapse}
th{text-align:left;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.4px;font-weight:700;padding:12px;border-bottom:2px solid var(--line)}
td{padding:13px 12px;border-bottom:1px solid #eef2f7;font-size:13.5px}
tr:hover td{background:#f7f9fc}

/* ---------------- FILTROS (padrão protótipo) ---------------- */
.filterbar{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.flabel{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);width:78px;flex-shrink:0}
.fgroup{display:flex;gap:7px;flex-wrap:wrap}
.fbtn{background:#eef2f7;border:1px solid var(--line);color:var(--muted);padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600}
.fbtn.active{background:var(--navy);color:#fff;border-color:var(--navy)}

/* ===================== RESPONSIVO / MOBILE ===================== */
@media(max-width:980px){
  .grid4,.board{grid-template-columns:repeat(2,1fr)}
  .cols{grid-template-columns:1fr}
}

/* tablet/celular: a barra lateral vira uma barra SUPERIOR com nav rolável */
@media(max-width:860px){
  .main{margin-left:0;min-width:0;max-width:100%}
  .side{position:sticky;top:0;left:auto;width:auto;height:auto;z-index:30;box-shadow:0 2px 12px rgba(0,52,102,.25)}
  .side-inner{position:static;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:9px 14px;height:auto;overflow:visible}
  .side .brand{order:1;flex:1;min-width:0;border:none;margin:0;padding:0}
  .side .brand .blogo{max-width:130px}
  .userbox{order:2;margin:0;border:none;padding:0;width:auto;flex-shrink:0}
  .userbox .uinfo{display:none}
  .userbox .userlink{flex:0 0 auto;padding:0;margin:0}
  .nav{order:3;flex:1 1 100%;width:100%;flex-direction:row;flex-wrap:nowrap;gap:8px;margin:0;
       overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;
       scrollbar-width:none;padding-bottom:1px}
  .nav::-webkit-scrollbar{display:none}
  .nav a{flex:0 0 auto;white-space:nowrap;scroll-snap-align:start;padding:9px 14px;font-size:13px}
  .main{padding:18px 16px}
  .topbar{flex-direction:column;align-items:stretch;gap:12px}
  .topbar .actions{width:100%;flex-wrap:wrap}
  .topbar .actions .pill{flex:1 1 auto;justify-content:center}
  .fselect{width:100%}
}

/* tabelas: rolagem horizontal em vez de estourar a tela */
@media(max-width:780px){
  table{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}
}

/* celular: 1 coluna em tudo + espaçamentos menores */
@media(max-width:560px){
  .grid4,.board,.qboard,.mods-grid{grid-template-columns:1fr}
  .main{padding:14px 12px}
  .cli-wrap{padding:16px 12px}
  .panel{padding:16px}
  .kpi{padding:15px}
  .kpi .val{font-size:23px}
  .modal-body .frow{grid-template-columns:1fr}
  .topbar h1,.page-head h1{font-size:20px}
  .modal-head,.modal-body,.modal-foot{padding-left:16px;padding-right:16px}
  .panel .ph{flex-wrap:wrap;gap:8px 10px}
  .panel .ph > div:first-child{flex:1 1 60%;min-width:0}
  .panel .ph .pill{flex:1 1 auto;justify-content:center}
  /* login no celular */
  .loginwrap{padding:16px}
  .login{padding:30px 22px}
}
