:root{--pri:#1a2744;--pril:#2c3e6b;--acc:#e67e22;--ok:#27ae60;--er:#c0392b;--wa:#f39c12;--inf:#2980b9;--bg:#f0f2f5;--cd:#fff;--tx:#2d3436;--mu:#636e72;--bd:#dfe6e9}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',Tahoma,sans-serif;background:var(--bg);color:var(--tx);font-size:13px}

/* LOGIN */
#tela-login{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(circle at top right, rgba(245,130,31,.18), transparent 20%), linear-gradient(135deg,#182748,#26396c)}
.login-box{background:white;border-radius:22px;padding:34px;width:100%;max-width:460px;box-shadow:0 24px 70px rgba(0,0,0,0.34);text-align:center}
.login-logo{font-size:48px;margin-bottom:10px}
.login-brand-img{display:block;width:min(100%,340px);margin:0 auto 16px auto;background:#fff}
.login-chip{display:inline-block;padding:8px 14px;border-radius:999px;background:#eef2ff;border:1px solid #d8e0f8;color:#1a2b5c;font-size:12px;font-weight:700;margin-bottom:14px}
.login-box h1{color:var(--pri);font-size:28px;margin-bottom:8px;letter-spacing:.02em}
.login-box p{color:var(--mu);font-size:14px;line-height:1.5;margin-bottom:18px}
.login-empresa{background:#f0f4ff;border-radius:10px;padding:12px 14px;margin-bottom:18px;font-size:13px;color:var(--pri);font-weight:700}
.login-inp{width:100%;padding:13px 14px;border:1.5px solid var(--bd);border-radius:10px;font-size:14px;margin-bottom:12px;box-sizing:border-box}
.login-inp:focus{outline:none;border-color:var(--pri)}
.btn-login{width:100%;padding:15px;background:linear-gradient(135deg,#f5821f,#ff9a3c);color:white;border:none;border-radius:12px;font-size:16px;font-weight:800;cursor:pointer;margin-bottom:4px;box-shadow:0 16px 34px rgba(245,130,31,.24)}
.btn-login:hover{filter:brightness(1.03);transform:translateY(-1px)}
.login-helper{margin-top:12px;font-size:13px;color:#667085;line-height:1.5}
.login-helper a{color:#1a2b5c;font-weight:700;text-decoration:none}
.login-helper a:hover{text-decoration:underline}
#login-erro{color:var(--er);font-size:12px;margin-top:8px;display:none}
#login-loading{color:var(--mu);font-size:12px;margin-top:8px;display:none}
.login-footer{margin-top:20px;font-size:10px;color:#aaa}

/* TRIAL BANNER */
#trial-banner{display:none;background:linear-gradient(135deg,#e67e22,#d35400);color:white;padding:10px 20px;text-align:center;font-size:12px;font-weight:700;position:sticky;top:0;z-index:999;box-shadow:0 2px 8px rgba(0,0,0,0.2)}
#trial-banner a{color:#fff;text-decoration:underline;cursor:pointer;margin-left:12px}
#trial-banner.vencido{background:linear-gradient(135deg,#c0392b,#a93226)}

/* MODAL TRIAL / PAGAMENTO */
#mo-trial{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.7);z-index:9999;align-items:center;justify-content:center}
#mo-trial.open{display:flex}
.trial-box{background:white;border-radius:16px;width:95%;max-width:500px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.4);animation:mi .25s ease}
.trial-header{background:linear-gradient(135deg,#1a2744,#2c3e6b);color:white;padding:28px 24px;text-align:center}
.trial-header h2{font-size:22px;margin-bottom:8px}
.trial-header p{font-size:13px;opacity:.8}
.trial-body{padding:24px}
.trial-feature{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #f0f2f5;font-size:13px}
.trial-feature:last-child{border-bottom:none}
.trial-feature span:first-child{font-size:18px;width:28px;text-align:center}
.trial-price{background:#f0f4ff;border-radius:10px;padding:16px;text-align:center;margin:16px 0}
.trial-price .price-val{font-size:32px;font-weight:800;color:var(--pri)}
.trial-price .price-sub{font-size:12px;color:var(--mu)}
.btn-pagar{width:100%;padding:15px;background:linear-gradient(135deg,#e67e22,#d35400);color:white;border:none;border-radius:10px;font-size:15px;font-weight:800;cursor:pointer;margin-bottom:10px;transition:.2s}
.btn-pagar:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(230,126,34,0.4)}
.btn-pagar-pix{width:100%;padding:12px;background:linear-gradient(135deg,#27ae60,#219a52);color:white;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;margin-bottom:8px;transition:.2s}
.btn-pagar-pix:hover{filter:brightness(1.1)}
.trial-footer-note{font-size:10px;color:var(--mu);text-align:center}

/* APP */
#app{display:none}
.app-wrapper{display:flex;height:calc(100vh - 0px);overflow:hidden}

/* SIDEBAR */
.sidebar{width:220px;min-width:220px;background:#1a2744;color:#a8b8d8;display:flex;flex-direction:column;height:100%;position:relative;z-index:10}
.sidebar-logo{padding:20px 16px 16px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:12px}
.sidebar-logo-icon{width:40px;height:40px;background:#e67e22;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.sidebar-logo-text h1{font-size:15px;font-weight:800;color:white;line-height:1.1}
.sidebar-logo-text p{font-size:10px;color:#a8b8d8;margin-top:2px}
.sidebar-nav{flex:1;padding:12px 8px;overflow-y:auto}
.sidebar-nav button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;background:none;color:#8fa3c4;cursor:pointer;font-weight:600;font-size:12px;border-radius:8px;text-align:left;transition:.15s;margin-bottom:2px}
.sidebar-nav button:hover{background:rgba(255,255,255,.08);color:white}
.sidebar-nav button.active{background:#e67e22;color:white}
.sidebar-nav button .nav-icon{font-size:16px;width:20px;text-align:center;flex-shrink:0}
.sidebar-nav button .bc{background:#c0392b;color:white;border-radius:10px;padding:1px 6px;font-size:9px;margin-left:auto}
.sidebar-user{padding:14px 16px;border-top:1px solid rgba(255,255,255,.1)}
.sidebar-user-name{font-size:13px;font-weight:700;color:white}
.sidebar-user-role{font-size:10px;color:#8fa3c4;margin-bottom:10px}
.sidebar-sair{display:flex;align-items:center;gap:8px;background:none;border:none;color:#8fa3c4;cursor:pointer;font-size:12px;font-weight:600;padding:6px 0}
.sidebar-sair:hover{color:#e74c3c}
.sidebar-top-actions{padding:10px 12px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.btn-top-sair{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:white;border-radius:8px;padding:9px 12px;font-size:12px;font-weight:700;cursor:pointer}
.btn-top-sair:hover{background:rgba(231,76,60,.18);border-color:rgba(231,76,60,.32)}
.mobile-head-actions{display:flex;align-items:center;gap:8px}
.mobile-logout-btn{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);color:white;border-radius:8px;padding:5px 9px;font-size:14px;font-weight:700;cursor:pointer}
.mobile-logout-btn:hover{background:rgba(231,76,60,.18)}
.base-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:15px}
.base-card{background:white;border:1px solid var(--bd);border-radius:10px;padding:14px;box-shadow:0 2px 6px rgba(0,0,0,.05)}
.base-card h3{font-size:13px;color:var(--pri);margin-bottom:10px}
.base-empty{color:var(--mu);font-size:12px;padding:12px 0}
.base-hint{font-size:11px;color:var(--mu);margin-top:8px}
@media(max-width:900px){.base-grid{grid-template-columns:1fr}}

/* CONTEÚDO */
.main-content{flex:1;overflow-y:auto;background:#f0f2f5}
.tab{display:none;padding:24px;animation:fi .2s ease}
.tab.active{display:block}
@keyframes fi{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* HEADER MOBILE */
.mobile-header{display:none;background:#1a2744;color:white;padding:12px 16px;align-items:center;justify-content:space-between}
.mobile-menu-btn{background:none;border:none;color:white;font-size:22px;cursor:pointer}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9}

@media(max-width:768px){
  .sidebar{position:fixed;left:-220px;top:0;height:100vh;z-index:10;transition:left .3s}
  .sidebar.open{left:0}
  .sidebar-overlay.open{display:block}
  .mobile-header{display:flex}
  .main-content{height:calc(100vh - 48px);overflow-y:auto}
  .app-wrapper{flex-direction:column}
}

/* CARDS */
.card{background:var(--cd);border:1px solid var(--bd);padding:17px;border-radius:10px;margin-bottom:15px;box-shadow:0 2px 6px rgba(0,0,0,.05)}
.ct{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--mu);margin-bottom:13px;border-bottom:2px solid var(--bd);padding-bottom:8px}

/* KPIs */
.kpig{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--cd);border-radius:10px;padding:15px;text-align:center;box-shadow:0 2px 6px rgba(0,0,0,.07);border-top:4px solid var(--pri)}
.kpi.d{border-top-color:var(--er)} .kpi.w{border-top-color:var(--wa)} .kpi.s{border-top-color:var(--ok)} .kpi.i{border-top-color:var(--inf)}
.kn{font-size:30px;font-weight:800;color:var(--pri);line-height:1}
.kpi.d .kn{color:var(--er)} .kpi.w .kn{color:var(--wa)} .kpi.s .kn{color:var(--ok)} .kpi.i .kn{color:var(--inf)}
.kl{font-size:10px;color:var(--mu);margin-top:4px;font-weight:600;text-transform:uppercase}

/* FORMS */
.fg{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:11px;align-items:end}
.fgi{display:flex;flex-direction:column;gap:4px}
label{font-size:10px;font-weight:700;color:var(--mu);text-transform:uppercase}
input,select,textarea{padding:8px 11px;border:1.5px solid var(--bd);border-radius:6px;font-size:12px;width:100%;transition:border-color .2s;box-sizing:border-box}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--pri)}
textarea{resize:vertical;min-height:60px}

/* BOTÕES */
.btn{padding:9px 15px;border:none;border-radius:6px;cursor:pointer;font-weight:700;font-size:11px;display:inline-flex;align-items:center;gap:5px;transition:.2s}
.btn:hover{filter:brightness(1.1)}
.bp{background:var(--pri);color:white} .bs{background:var(--ok);color:white}
.bw{background:var(--wa);color:white} .bd2{background:var(--er);color:white}
.bi{background:var(--inf);color:white} .bse{background:#636e72;color:white}
.btn-sm{padding:4px 9px;font-size:10px}

/* TABLE */
.tw{overflow-x:auto;border-radius:8px;border:1px solid var(--bd)}
table{width:100%;border-collapse:collapse;background:white}
th{background:#f8f9fa;padding:9px 11px;text-align:left;border-bottom:2px solid var(--bd);color:var(--mu);text-transform:uppercase;font-size:10px;white-space:nowrap}
td{padding:8px 11px;border-bottom:1px solid #f1f3f4;font-size:12px;vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:#fafbfc}
.er-row td{text-align:center;color:var(--mu);padding:22px;font-style:italic}
.os-n{font-family:monospace;font-weight:700;color:var(--pri);font-size:11px}

/* BADGES */
.badge{padding:2px 8px;border-radius:20px;font-size:9px;font-weight:800;text-transform:uppercase;display:inline-block}
.bprev{background:#d4edda;color:#155724} .bcorr{background:#f8d7da;color:#721c24}
.bcrit{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}
.balta{background:#fff3cd;color:#856404;border:1px solid #ffeeba}
.bnorm{background:#d1ecf1;color:#0c5460}
.bab{background:#fff3cd;color:#856404} .band{background:#cce5ff;color:#004085} .bcon{background:#d4edda;color:#155724}
.bvenc{background:#f8d7da;color:#721c24;animation:pulse 1.5s infinite}
.bhoje{background:#fff3cd;color:#856404} .bfut{background:#e2e3e5;color:#383d41}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.6}}

/* SECTION */
.sh{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:8px}
.st{font-size:15px;font-weight:700;color:var(--pri)}
.freq-b{padding:3px 7px;border-radius:4px;font-size:9px;font-weight:700}
.fD{background:#cce5ff;color:#004085}.fS{background:#d4edda;color:#155724}.fM{background:#fff3cd;color:#856404}.fT{background:#f8d7da;color:#721c24}.fA{background:#e2e3e5;color:#383d41}

/* MODAL */
.mo{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.55);z-index:1000;align-items:center;justify-content:center}
.mo.open{display:flex}
.mbox{background:white;border-radius:12px;width:95%;max-width:700px;max-height:92vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:mi .22s ease}
@keyframes mi{from{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}
.mh{background:var(--pri);color:white;padding:15px 20px;border-radius:12px 12px 0 0;display:flex;align-items:center;justify-content:space-between}
.mh h3{font-size:14px;font-weight:700}
.mc{background:none;border:none;color:white;font-size:20px;cursor:pointer}
.mb{padding:20px}
.mf{padding:13px 20px;background:#f8f9fa;border-top:1px solid var(--bd);border-radius:0 0 12px 12px;display:flex;gap:8px;justify-content:flex-end}

/* ROTAS */
.rota-card{border:2px solid var(--bd);border-radius:8px;padding:13px;margin-bottom:11px;background:#fafbfc}
.rc-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.rc-t{font-weight:700;font-size:13px;color:var(--pri)}
.ri{list-style:none}
.ri-item{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid #eee}
.ri-item:last-child{border-bottom:none}
.cb{width:18px;height:18px;border:2px solid var(--pri);border-radius:3px;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s;font-size:12px}
.cb.ok{background:var(--ok);border-color:var(--ok);color:white}
.tabs-sub{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:13px}
.tsb{padding:7px 13px;border:1.5px solid var(--bd);border-radius:6px;background:white;cursor:pointer;font-size:11px;font-weight:600;color:var(--mu)}
.tsb.active{background:var(--pri);color:white;border-color:var(--pri)}

/* BACKUP */
.backup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.backup-card{border:2px solid var(--bd);border-radius:10px;padding:18px;text-align:center;cursor:pointer;transition:.2s;background:white}
.backup-card:hover{border-color:var(--pri);transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}
.backup-icon{font-size:36px;margin-bottom:8px}
.backup-title{font-weight:700;font-size:13px;color:var(--pri);margin-bottom:4px}
.backup-desc{font-size:11px;color:var(--mu)}

/* RELATÓRIO */
.rs{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:14px}
.rb{border-radius:6px;padding:10px 12px;text-align:center}
.rb .rn{font-size:26px;font-weight:800} .rb .rl{font-size:9px;font-weight:700;text-transform:uppercase}
.rb.azul{background:#cce5ff;color:#004085} .rb.verde{background:#d4edda;color:#155724}
.rb.verm{background:#f8d7da;color:#721c24} .rb.amar{background:#fff3cd;color:#856404}

/* RELATÓRIO INSTITUCIONAL */
.rel-cabecalho{border-bottom:2px solid #1a2744;padding-bottom:10px;margin-bottom:14px;display:flex;gap:12px;align-items:flex-start}
.rel-logo-wrap{width:76px;min-width:76px;display:flex;align-items:flex-start;justify-content:flex-start}
.rel-logo{max-width:70px;max-height:70px;object-fit:contain;display:block}
.rel-info-empresa{flex:1;min-width:0}
.rel-razao-social{font-size:13px;font-weight:800;color:#1a2744;line-height:1.25;margin-bottom:2px}
.rel-nome-fantasia{font-size:11px;color:#333;line-height:1.25;margin-bottom:2px}
.rel-cnpj,.rel-numero-sanitario,.rel-categoria{font-size:10px;color:#555;line-height:1.3;margin-bottom:1px}
.rel-titulo{text-align:center;margin:10px 0 14px}
.rel-titulo h1{font-size:24px;line-height:1.1;margin:0;color:#111}
.rel-titulo p{font-size:12px;letter-spacing:.08em;margin:4px 0 0;color:#444;font-weight:700}
.rel-secao{margin-bottom:14px}
.rel-secao-titulo{font-size:16px;font-weight:800;color:#1a2744;margin-bottom:6px}
.rel-secao-conteudo{background:#fff}
.rel-tabela{width:100%;border-collapse:collapse;margin-bottom:8px}
.rel-tabela th,.rel-tabela td{border:1px solid #222;padding:6px;font-size:11px;text-align:left;vertical-align:top}
.rel-tabela th{background:#f1f3f5;font-weight:700}
.rel-rodape{margin-top:18px;padding-top:10px;border-top:1px solid #555}
.rel-rodape-info{font-size:10px;color:#333}
@media(max-width:700px){.rel-cabecalho{gap:10px}.rel-logo-wrap{width:60px;min-width:60px}.rel-logo{max-width:54px;max-height:54px}.rel-razao-social{font-size:12px}.rel-titulo h1{font-size:20px}}

/* ADMIN PANEL */
.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}
.admin-stat{background:white;border-radius:10px;padding:16px;text-align:center;border-left:4px solid var(--pri);box-shadow:0 2px 6px rgba(0,0,0,.07)}
.admin-stat .asn{font-size:28px;font-weight:800;color:var(--pri)}
.admin-stat .asl{font-size:10px;color:var(--mu);font-weight:700;text-transform:uppercase;margin-top:4px}

/* RESPONSIVO */
@media(max-width:600px){.kpig{grid-template-columns:repeat(2,1fr)}.fg{grid-template-columns:1fr}}

/* CONFIGURAÇÕES DO USUÁRIO */
.config-logo-preview{width:100px;height:100px;border:2px solid var(--bd);border-radius:8px;display:flex;align-items:center;justify-content:center;background:#f8f9fa;overflow:hidden;margin-bottom:10px}
.config-logo-preview img{max-width:100%;max-height:100%;object-fit:contain}
.config-logo-input{display:flex;gap:10px;align-items:flex-end}
.config-logo-input input[type="file"]{flex:1}
.config-logo-input button{padding:8px 12px;background:var(--inf);color:white;border:none;border-radius:6px;cursor:pointer;font-size:11px;font-weight:700}
.config-logo-input button:hover{background:#2563eb}
.config-categories{display:grid;grid-template-columns:1fr;gap:8px;max-height:300px;overflow-y:auto;border:1px solid var(--bd);border-radius:6px;padding:8px}
.config-categories label{display:flex;align-items:center;gap:8px;margin:0;padding:6px;cursor:pointer;border-radius:4px;transition:background .2s}
.config-categories label:hover{background:#f0f4ff}
.config-categories input[type="radio"]{margin:0}


.os-link{color:var(--pri);font-weight:800;text-decoration:none;cursor:pointer}
.os-link:hover{text-decoration:underline}
.os-actions{display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.os-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-bottom:12px}


/* AJUDA CONTEXTUAL */
.help-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.mh-actions{display:flex;align-items:center;gap:8px}
.btn-help{width:34px;height:34px;border-radius:999px;border:1.5px solid var(--bd);background:#fff;color:var(--pri);font-size:18px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.18s ease;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.btn-help:hover{border-color:var(--pri);background:#eef4ff;transform:translateY(-1px)}
.btn-help--modal{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.3);color:#fff;box-shadow:none}
.btn-help--modal:hover{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.55)}
.mbox-ajuda{max-width:760px}
.ajuda-conteudo{font-size:14px;color:#334155;line-height:1.6}
.ajuda-conteudo h2{font-size:22px;color:#0f172a;margin:0 0 12px}
.ajuda-conteudo h3{font-size:15px;color:#1d4ed8;margin:18px 0 8px}
.ajuda-conteudo p{margin:0 0 10px}
.ajuda-conteudo ul,.ajuda-conteudo ol{margin:0 0 12px;padding-left:22px}
.ajuda-conteudo li{margin-bottom:6px}
@media(max-width:700px){.btn-help{width:32px;height:32px;font-size:17px}}
