*{box-sizing:border-box;margin:0;padding:0}
:root{
  --ocean:#0c3252;--ocean-hover:rgba(255,255,255,.08);--ocean-border:rgba(255,255,255,.1);
  --bg:#eef4fb;--card:#fff;--surface2:#f4f8fd;
  --accent:#0d7fc0;--accent-dark:#085d8f;--accent-light:#ddf0fc;
  --green:#059669;--red:#dc2626;--yellow:#d97706;
  --text:#0d1f2d;--muted:#5b7a96;--border:#d8e5f1;
  --shadow:0 1px 3px rgba(12,50,82,.07),0 1px 2px rgba(12,50,82,.05);
  --shadow-md:0 4px 12px rgba(12,50,82,.1);
}
body{background:var(--bg);color:var(--text);font-family:'Segoe UI',system-ui,sans-serif;display:flex;min-height:100vh}
a{color:var(--accent);text-decoration:none}

/* SIDEBAR */
#sidebar{width:230px;background:var(--ocean);display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}
#sidebar .logo{padding:20px 20px 16px;border-bottom:1px solid var(--ocean-border);display:flex;align-items:center;gap:11px}
#sidebar .logo-mark{width:34px;height:34px;background:var(--accent);border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#fff;flex-shrink:0}
#sidebar .logo-text{font-size:15px;font-weight:700;color:#fff}
#sidebar .logo-sub{font-size:11px;color:rgba(255,255,255,.35);margin-top:1px}
#sidebar nav{padding:10px 10px;flex:1}
#sidebar nav a{display:flex;align-items:center;gap:9px;padding:9px 10px;color:rgba(255,255,255,.55);font-size:13.5px;transition:.12s;border-left:3px solid transparent;border-radius:0 8px 8px 0;margin-bottom:1px}
#sidebar nav a:hover{background:var(--ocean-hover);color:rgba(255,255,255,.9)}
#sidebar nav a.active{background:var(--ocean-hover);color:#fff;font-weight:600;border-left-color:var(--accent)}
#sidebar nav a .badge{margin-left:auto;background:var(--red);color:#fff;border-radius:10px;font-size:10px;padding:2px 6px;font-weight:700}
#sidebar .sep{height:1px;background:var(--ocean-border);margin:6px 10px}
#sidebar .usr{padding:14px 20px;font-size:12px;color:rgba(255,255,255,.3);border-top:1px solid var(--ocean-border);margin-top:auto}
#sidebar .usr b{color:rgba(255,255,255,.75);display:block;font-size:13px;margin-bottom:2px}
#btn-logout{margin:8px 10px;padding:9px;background:transparent;border:1px solid var(--ocean-border);border-radius:8px;color:rgba(255,255,255,.4);cursor:pointer;font-size:13px;transition:.15s;width:calc(100% - 20px)}
#btn-logout:hover{border-color:rgba(220,38,38,.6);color:var(--red);background:rgba(220,38,38,.08)}

/* MAIN */
#main{margin-left:230px;flex:1;padding:28px 32px;max-width:calc(100% - 230px)}
h1{font-size:20px;font-weight:800;margin-bottom:22px;color:var(--text);letter-spacing:-.01em}
h2{font-size:14px;font-weight:700;margin-bottom:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}

/* CARDS */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:14px;margin-bottom:24px}
.cards-row{display:flex;flex-direction:row;gap:14px;margin-bottom:20px}
.cards-row>.card{flex:1;min-width:0}
tr.row-credito td{color:var(--green)}
tr.row-debito td{color:var(--red)}
tr.row-cancelado td{text-decoration:line-through;opacity:.55}
.card{background:var(--card);border-radius:12px;padding:18px;border:1px solid var(--border);box-shadow:var(--shadow);border-top:3px solid var(--border)}
.card .label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-weight:700;margin-bottom:8px}
.card .value{font-size:26px;font-weight:800;color:var(--text);letter-spacing:-.02em}
.card .sub{font-size:12px;color:var(--muted);margin-top:4px}
.card.green{border-top-color:var(--green)}.card.green .value{color:var(--green)}
.card.red{border-top-color:var(--red)}.card.red .value{color:var(--red)}
.card.yellow{border-top-color:var(--yellow)}.card.yellow .value{color:var(--yellow)}

/* TABLES */
.tbl-wrap{background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:24px;box-shadow:var(--shadow)}
table{width:100%;border-collapse:collapse;font-size:13px}
th{background:var(--surface2);color:var(--muted);font-weight:700;padding:10px 14px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;font-size:11px;text-transform:uppercase;letter-spacing:.06em}
td{padding:10px 14px;border-bottom:1px solid var(--border);color:var(--text)}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover td{background:var(--surface2)}
.badge-pago{background:#dcfce7;color:#166534;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:700}
.badge-vencido{background:#fee2e2;color:#991b1b;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:700}
.badge-aberto{background:#fef3c7;color:#92400e;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:700}

/* FORMS */
.form-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:14px}
label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px;font-weight:600}
input,select,textarea{width:100%;background:var(--surface2);border:1.5px solid var(--border);border-radius:8px;color:var(--text);padding:9px 12px;font-size:13px;outline:none;transition:.15s;font-family:inherit}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(13,127,192,.1)}
textarea{resize:vertical;min-height:80px}
.btn{padding:10px 20px;border-radius:8px;border:1.5px solid transparent;font-size:13px;font-weight:600;cursor:pointer;transition:.13s;display:inline-flex;align-items:center;gap:6px}
.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark)}
.btn-danger{background:var(--red);color:#fff}.btn-danger:hover{background:#b91c1c}
.btn-sm{padding:5px 12px;font-size:12px}
.btn-outline{background:var(--card);border:1.5px solid var(--border);color:var(--muted)}.btn-outline:hover{border-color:var(--accent);color:var(--accent)}
.btn-green{background:var(--green);color:#fff}.btn-green:hover{background:#047857}

/* SECTION */
.section{display:none}.section.active{display:block}
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:18px;flex-wrap:wrap}
.toolbar input,.toolbar select{max-width:220px}
.sec-header{background:#0c3252;border-radius:12px;padding:16px 20px;margin-bottom:16px;box-shadow:0 2px 8px rgba(12,50,82,.25)}
.sec-header h1{margin:0 0 8px;color:#fff}
.sec-header p{color:#fff;margin:0}
.sec-filters{background:#fff;border:1px solid #d8e5f1;border-radius:10px;padding:14px 16px;margin-bottom:18px;box-shadow:0 1px 4px rgba(12,50,82,.06);display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.sec-filters input,.sec-filters select{max-width:220px}
#s-contas .sec-filters{flex-wrap:nowrap;align-items:flex-start;gap:10px;padding:16px 18px}
#s-baixar-contas .sec-filters{flex-wrap:nowrap;align-items:flex-start;gap:10px;padding:16px 18px}
#bcr-cliente,#bcr-empresa{width:148px}
#bcr-tipo-data{width:130px}
#bcr-di,#bcr-df{width:128px}
#s-relatorio-receber .sec-filters{flex-wrap:nowrap;align-items:flex-start;gap:10px;padding:16px 18px}
#rr-cliente,#rr-empresa{width:148px}
#rr-status{width:105px}
#rr-di,#rr-df{width:128px}
#s-acoes-fornecedor .sec-filters{flex-wrap:nowrap;align-items:flex-start;gap:10px;padding:16px 18px}
#af-tipo,#af-status{width:120px}
.badge-tipo-sell-in{background:#dbeafe;color:#1d4ed8;font-size:11px;font-weight:700;padding:2px 8px;border-radius:12px;text-transform:uppercase}
.badge-tipo-sell-out{background:#fce7f3;color:#be185d;font-size:11px;font-weight:700;padding:2px 8px;border-radius:12px;text-transform:uppercase}
.af-reimb{font-weight:600;color:var(--green)}
#af-produto-busca{width:100%}
#af-preco-atual,#af-preco-novo,#af-preco-acao,#af-reembolso,#af-limite-qty{width:100%}
#af-data-inicio,#af-data-fim{width:100%}
#af-tipo-acao,#af-status-acao{width:100%}
#s-cpagar .sec-filters{flex-wrap:nowrap;align-items:flex-start;gap:10px;padding:16px 18px}
#cp-fornecedor-busca{width:180px}
#cp-status{width:105px}
#cp-tipo-data{width:130px}
#cp-di,#cp-df{width:128px}
#s-baixar-cpagar .sec-filters{flex-wrap:nowrap;align-items:flex-start;gap:10px;padding:16px 18px}
#bcp-fornecedor{width:180px}
#bcp-tipo-data{width:130px}
#bcp-di,#bcp-df{width:128px}
#s-relatorio-pagar .sec-filters{flex-wrap:nowrap;align-items:flex-start;gap:10px;padding:16px 18px}
#rp-fornecedor{width:180px}
#rp-status{width:105px}
#rp-di,#rp-df{width:128px}
#bcp-resumo{margin:12px 0;font-size:13px;color:var(--muted)}
.filter-btns{display:flex;gap:8px;flex-shrink:0;padding-top:22px}
#cr-cliente-busca,#cr-empresa{width:148px}
#cr-status{width:105px}
#cr-tipo-data{width:130px}
#cr-di,#cr-df{width:128px}
#cr-btns{display:flex;gap:8px;flex-shrink:0;padding-top:22px}
.btn-dark{background:#0c3252!important;color:#fff!important}.btn-dark:hover{background:#0a2840!important}
#tbl-lancamentos td:last-child,#tbl-lancamentos th:last-child{text-align:center}

/* LOGIN */
#login-screen{background:var(--bg)}

/* MODAL */
.modal-bg{display:none;position:fixed;inset:0;background:rgba(12,50,82,.45);backdrop-filter:blur(3px);z-index:1000;align-items:center;justify-content:center}
.modal-bg.open{display:flex}
.modal{background:var(--card);border-radius:16px;padding:28px;width:100%;max-width:560px;border:1px solid var(--border);max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-md)}
.modal.modal-lg{max-width:700px}
.modal h2{margin-bottom:20px;font-size:17px;font-weight:700;color:var(--text)}
.modal-btns{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}
.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:4px 0 8px}
.modal-grid .span2{grid-column:1/-1}
.modal-grid label{display:block;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
.modal-grid input,.modal-grid select{width:100%}

/* PAGINATION */
.pagination{display:flex;align-items:center;gap:10px;margin-top:12px;justify-content:center}
.pagination button{padding:6px 18px;border-radius:8px;border:1.5px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;font-size:13px;font-weight:500;transition:.13s}
.pagination button:hover{border-color:var(--accent);color:var(--accent)}
.pagination .pg-info{font-size:13px;color:var(--muted)}

/* CHART */
.chart-wrap{background:var(--card);border-radius:12px;padding:20px;margin-bottom:24px;border:1px solid var(--border);box-shadow:var(--shadow)}
canvas{max-height:260px}

.alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:13px}
.alert-error{background:#fee2e2;border:1px solid var(--red);color:#991b1b}
.alert-ok{background:#dcfce7;border:1px solid var(--green);color:#166534}

.row-actions{display:flex;gap:6px;flex-wrap:nowrap}
::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}

/* FECHAMENTO */
.fech-table{width:100%;border-collapse:collapse;font-size:14px}
.fech-table th{background:var(--surface2);color:var(--muted);font-weight:700;padding:11px 16px;text-align:right;border-bottom:2px solid var(--border);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.fech-table th:first-child{text-align:left}
.fech-table td{padding:14px 16px;border-bottom:1px solid var(--border);vertical-align:middle;text-align:right}
.fech-table td:first-child{text-align:left;font-weight:600;font-size:14px}
.fech-table tbody tr:last-child td{border-bottom:none}
.fech-table tbody tr:hover td{background:var(--surface2)}
.fech-table tfoot td{font-weight:700;font-size:14px;padding:14px 16px;border-top:2px solid var(--border);background:var(--surface2)}
.fech-table tfoot td:first-child{text-align:left}
.fech-input{width:130px;text-align:right;padding:8px 10px;border:1.5px solid var(--border);border-radius:8px;font-size:14px;background:var(--card);color:var(--text);font-family:inherit}
.fech-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(13,127,192,.1);outline:none}
.fech-input::-webkit-outer-spin-button,.fech-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.fech-input[type=number]{-moz-appearance:textfield}
.ei-qtd::-webkit-outer-spin-button,.ei-qtd::-webkit-inner-spin-button,.ei-custo::-webkit-outer-spin-button,.ei-custo::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.fech-dif.ok{color:var(--green);font-weight:700}
.fech-dif.falta{color:var(--red);font-weight:700}
.fech-dif.zero{color:var(--muted);font-weight:600}
.fech-icon{display:inline-block;width:28px;height:28px;border-radius:8px;text-align:center;line-height:28px;font-size:14px;margin-right:8px;vertical-align:middle}
/* NF-e MÓDULO */
.nfe-status{display:inline-block;padding:2px 10px;border-radius:10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.nfe-status.pendente{background:#fff3cd;color:#856404}
.nfe-status.ciencia{background:#cfe2ff;color:#084298}
.nfe-status.confirmada{background:#d1e7dd;color:#0f5132}
.nfe-status.desconhecida{background:#f8d7da;color:#842029}
.nfe-status.nao_realizada{background:#e2e3e5;color:#41464b}
.nfe-filter.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.nfe-item-row{display:grid;grid-template-columns:2fr 1fr 80px 90px 90px 100px 1fr;gap:8px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px}
.nfe-item-row:last-child{border-bottom:none}
.nfe-item-row:nth-child(even){background:rgba(0,0,0,.018)}
.nfe-item-header{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;background:var(--bg)}
.nfe-match{display:flex;gap:6px;align-items:center}
.nfe-busca-wrap{position:relative;flex:1}
.nfe-busca-inp{width:100%;font-size:12px;padding:5px 28px 5px 8px;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--text);box-sizing:border-box}
.nfe-busca-inp.vinculado{border-color:var(--green);background:#f0fff4}
.nfe-busca-inp.nao-vinculado{border-color:#dc3545;background:#fff5f5}
.nfe-busca-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);cursor:pointer;color:var(--muted);font-size:14px;line-height:1;background:none;border:none;padding:0}
.nfe-busca-drop{position:absolute;top:calc(100% + 2px);left:0;right:0;background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-md);z-index:9999;max-height:220px;overflow-y:auto;display:none}
.nfe-busca-drop.open{display:block}
.nfe-busca-item{padding:7px 10px;font-size:12px;cursor:pointer;border-bottom:1px solid var(--border)}
.nfe-busca-item:last-child{border-bottom:none}
.nfe-busca-item:hover,.nfe-busca-item.focused{background:var(--accent-light);color:var(--accent)}
.nfe-busca-item b{color:var(--accent)}
.nfe-busca-vazio{padding:10px;font-size:12px;color:var(--muted);text-align:center}
.cfg-fiscal-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
/* TRIBUTAÇÃO PRODUTO */
.prod-tabs{display:flex;gap:4px;margin-bottom:18px;border-bottom:2px solid var(--border);padding-bottom:0}
.prod-tab{padding:8px 18px;border-radius:8px 8px 0 0;font-size:12.5px;font-weight:600;cursor:pointer;color:var(--muted);background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;transition:.13s}
.prod-tab.active{color:var(--accent);border-bottom-color:var(--accent);background:var(--accent-light)}
.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:14px}
.form-grid-4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:10px;margin-bottom:14px}
.fiscal-sec{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--accent);padding:12px 0 7px;border-bottom:1px solid var(--border);margin-bottom:12px}
.fiscal-val{border-radius:8px;padding:10px 13px;margin-bottom:14px;font-size:12.5px;display:none}
.fiscal-val.ok{background:#d1e7dd;border:1px solid #a3cfbb;color:#0a3622;display:block}
.fiscal-val.aviso{background:#fff3cd;border:1px solid #ffc107;color:#664d03;display:block}
.fiscal-val.erro{background:#f8d7da;border:1px solid #f1aeb5;color:#58151c;display:block}
.fiscal-val ul{margin:4px 0 0 16px;padding:0}
.fiscal-val ul li{margin-bottom:3px}

/* MÓDULOS — HOME */
.module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;margin-bottom:32px}
.module-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:28px 22px;cursor:pointer;transition:all .15s;box-shadow:var(--shadow);border-top:4px solid var(--border);user-select:none}
.module-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--border)}
.module-card[data-module="dashboard"]{border-top-color:#0d7fc0}
.module-card[data-module="vendas"]{border-top-color:#059669}
.module-card[data-module="cadastros"]{border-top-color:#7c3aed}
.module-card[data-module="fiscal"]{border-top-color:#d97706}
.module-card[data-module="financeiro"]{border-top-color:#0891b2}
.module-card[data-module="relatorios"]{border-top-color:#6d28d9}
.module-card[data-module="config"]{border-top-color:#6b7280}
.module-card-icon{font-size:30px;margin-bottom:12px;line-height:1}
.module-card-label{font-size:16px;font-weight:700;color:var(--text);margin-bottom:6px}
.module-card-desc{font-size:12px;color:var(--muted);line-height:1.55}

/* MÓDULOS — NAV SIDEBAR */
#nav-back-btn{background:rgba(255,255,255,.07);border:none;border-radius:8px;padding:9px 10px;color:rgba(255,255,255,.7);font-size:13px;cursor:pointer;width:100%;text-align:left;margin-bottom:6px;transition:.12s;font-family:inherit;display:flex;align-items:center;gap:6px}
#nav-back-btn:hover{background:rgba(255,255,255,.13);color:#fff}
#sidebar-mod-title{padding:0 4px 6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.3)}
/* Grupo expansível no nav */
.nav-group-wrap{display:none}
.nav-group-body{display:none;overflow:hidden}
.nav-group-wrap.expanded .nav-group-body{display:block}
.nav-arrow{margin-left:auto;font-size:9px;display:inline-block;transition:transform .18s;opacity:.45}
.nav-group-wrap.expanded .nav-group-head .nav-arrow{transform:rotate(90deg);opacity:.75}
.nav-group-head{font-weight:500}
.nav-group-head.active .nav-arrow{opacity:.85}
.nav-child{padding-left:26px!important;font-size:13px!important;opacity:.9}

/* AUTOCOMPLETE */
.ac-wrap{position:relative}
.ac-wrap .ac-input{width:100%}
.ac-list{display:none;position:absolute;top:calc(100% + 3px);left:0;right:0;z-index:200;background:var(--card);border:1.5px solid var(--accent);border-radius:8px;max-height:105px;overflow-y:auto;box-shadow:0 6px 18px rgba(0,0,0,.12)}
.ac-item{padding:8px 12px;cursor:pointer;font-size:13px;color:var(--text)}
.ac-item:hover,.ac-item.ac-active{background:var(--surface2)}
.ac-item-empty{padding:10px 12px;font-size:12px;color:var(--muted);text-align:center}
.ac-error{border-color:var(--red)!important;box-shadow:0 0 0 3px rgba(239,68,68,.12)!important}
.field-error{border-color:var(--red)!important;box-shadow:0 0 0 3px rgba(239,68,68,.12)!important}
input[readonly]{background:var(--surface2);color:var(--muted);cursor:default}
#rr-totais,#rp-totais{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.col-center{text-align:center}
.resumo-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px}
.resumo-card-label{font-size:11px;color:var(--muted);text-transform:uppercase;margin-bottom:4px}
.resumo-card-valor{font-size:1.3rem;font-weight:700}
.resumo-card-sub{font-size:11px;color:var(--muted)}
.resumo-card-valor.green{color:#059669}
.resumo-card-valor.red{color:#ef4444}
#tbl-baixar-contas input[type=checkbox],#tbl-baixar-cpagar input[type=checkbox]{appearance:none;-webkit-appearance:none;width:20px;height:20px;min-width:20px;border:2px solid #b0c4d8;border-radius:5px;background:#fff;cursor:pointer;display:block;position:relative;transition:background .15s,border-color .15s;outline:none}
#tbl-baixar-contas input[type=checkbox]:checked,#tbl-baixar-cpagar input[type=checkbox]:checked{background:var(--accent,#1a6fb4);border-color:var(--accent,#1a6fb4)}
#tbl-baixar-contas input[type=checkbox]:checked::after,#tbl-baixar-cpagar input[type=checkbox]:checked::after{content:'';position:absolute;left:5px;top:2px;width:6px;height:10px;border:2px solid #fff;border-top:none;border-left:none;transform:rotate(45deg)}
#tbl-baixar-contas input[type=checkbox]:focus,#tbl-baixar-cpagar input[type=checkbox]:focus{outline:none;box-shadow:none}

/* ═══════════════════════════════════════════
   LOGIN PAGE — full-screen professional
═══════════════════════════════════════════ */
#login-screen{
  position:fixed;inset:0;z-index:2000;
  display:flex;
  background:#05192d;
  overflow:hidden;
}
body.login-active #sidebar,
body.login-active #content{ display:none !important; }

/* Formas geométricas de fundo */
.login-bg-shapes{ position:absolute;inset:0;overflow:hidden;pointer-events:none }
.login-shape{
  position:absolute;border-radius:50%;
  background:linear-gradient(135deg,rgba(13,127,192,.25),rgba(12,50,82,.1));
  animation:loginFloat 8s ease-in-out infinite;
}
.login-shape.s1{ width:600px;height:600px;top:-200px;left:-150px;animation-delay:0s }
.login-shape.s2{ width:400px;height:400px;bottom:-100px;left:20%;animation-delay:2s;background:linear-gradient(135deg,rgba(13,127,192,.15),transparent) }
.login-shape.s3{ width:300px;height:300px;top:10%;right:35%;animation-delay:4s;background:linear-gradient(135deg,rgba(255,255,255,.04),transparent) }
.login-shape.s4{ width:500px;height:500px;bottom:-200px;right:-100px;animation-delay:1s;background:linear-gradient(135deg,rgba(9,100,155,.2),transparent) }
@keyframes loginFloat{
  0%,100%{ transform:translateY(0) scale(1) }
  50%{ transform:translateY(-20px) scale(1.02) }
}

/* Lado esquerdo — branding */
.login-left{
  flex:1;display:flex;flex-direction:column;justify-content:center;
  padding:60px 70px;position:relative;z-index:1;
}
.login-brand{ display:flex;align-items:center;gap:14px;margin-bottom:60px }
.login-brand{ flex-direction:column;align-items:flex-start }
.login-brand-logo{ width:220px;height:auto;filter:drop-shadow(0 4px 24px rgba(30,120,255,.35)) }
.login-brand-tagline{
  font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:transparent;
  background:linear-gradient(90deg,#1a7fff,#00c8ff,#1a7fff);
  background-size:200% auto;
  -webkit-background-clip:text;background-clip:text;
  animation:loginShine 3s linear infinite;
  margin-top:-4px;padding-left:2px;
}
@keyframes loginShine{
  0%{ background-position:0% center }
  100%{ background-position:200% center }
}
.login-headline{
  font-size:46px;font-weight:800;line-height:1.15;
  color:rgba(255,255,255,.9);margin-bottom:48px;letter-spacing:-.5px;
}
.login-headline span{ color:var(--accent) }
.login-features{ display:flex;flex-direction:column;gap:16px }
.login-feature{
  display:flex;align-items:center;gap:12px;
  color:rgba(255,255,255,.55);font-size:14px;
  padding:14px 0;
}
.login-feature-divider{
  height:1px;
  background:linear-gradient(to right, rgba(255,255,255,.12), rgba(255,255,255,.03));
}
.lf-icon{ font-size:18px }

/* Lado direito — card de login */
.login-right{
  width:480px;display:flex;align-items:center;justify-content:center;
  padding:40px;position:relative;z-index:1;
  background:rgba(255,255,255,.03);
  border-left:1px solid rgba(255,255,255,.06);
  backdrop-filter:blur(10px);
}
.login-card{
  width:100%;max-width:380px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;padding:40px 36px;
  box-shadow:0 24px 80px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.05) inset;
  backdrop-filter:blur(20px);
}
.login-card-header{ text-align:center;margin-bottom:32px }
.login-card-logo-img{
  width:140px;height:auto;margin-bottom:8px;
  filter:drop-shadow(0 4px 16px rgba(30,120,255,.4));
}
.login-card-title{ font-size:22px;font-weight:700;color:#fff;margin-bottom:4px }
.login-card-sub{ font-size:13px;color:rgba(255,255,255,.4) }

/* Campos */
.login-field{ margin-bottom:18px }
.login-label{
  display:block;font-size:12px;font-weight:600;
  color:rgba(255,255,255,.5);margin-bottom:7px;text-transform:uppercase;letter-spacing:.06em;
}
.login-label-opt{ font-weight:400;text-transform:none;letter-spacing:0;opacity:.7 }
.login-input-wrap{ position:relative }
.login-input-icon{
  position:absolute;left:14px;top:50%;transform:translateY(-50%);
  width:16px;height:16px;color:rgba(255,255,255,.3);pointer-events:none;
}
.login-input{
  width:100%;padding:12px 14px 12px 42px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;color:#fff;font-size:14px;
  transition:border-color .2s,background .2s,box-shadow .2s;
  outline:none;
}
.login-input::placeholder{ color:rgba(255,255,255,.25) }
.login-input:focus{
  border-color:var(--accent);
  background:rgba(13,127,192,.12);
  box-shadow:0 0 0 3px rgba(13,127,192,.2);
}
.login-eye{
  position:absolute;right:12px;top:50%;transform:translateY(-50%);
  background:none;border:none;cursor:pointer;padding:4px;
  color:rgba(255,255,255,.3);transition:color .2s;
}
.login-eye svg{ width:16px;height:16px;display:block }
.login-eye:hover,.login-eye.active{ color:rgba(255,255,255,.7) }

/* Botão entrar */
.login-btn{
  width:100%;padding:14px;margin-top:8px;
  background:linear-gradient(135deg,#0d7fc0,#085d8f);
  border:none;border-radius:12px;
  color:#fff;font-size:15px;font-weight:600;
  display:flex;align-items:center;justify-content:center;gap:10px;
  cursor:pointer;transition:transform .15s,box-shadow .15s,opacity .15s;
  box-shadow:0 4px 20px rgba(13,127,192,.4);letter-spacing:.02em;
}
.login-btn:hover{ transform:translateY(-1px);box-shadow:0 8px 28px rgba(13,127,192,.55) }
.login-btn:active{ transform:translateY(0);opacity:.9 }
.login-btn svg{ width:18px;height:18px }
.login-btn.loading .login-btn-text::after{ content:'...' }
.login-footer{ text-align:center;margin-top:20px }
.login-forgot{ font-size:12px;color:rgba(255,255,255,.35);text-decoration:none;transition:color .2s }
.login-forgot:hover{ color:rgba(255,255,255,.7) }

/* Alert de erro no login */
#login-screen .alert-error{
  background:rgba(220,38,38,.15);border:1px solid rgba(220,38,38,.3);
  color:#fca5a5;border-radius:10px;padding:10px 14px;
  font-size:13px;margin-bottom:16px;
}

/* Responsivo */
@media(max-width:900px){
  .login-left{ display:none }
  .login-right{ width:100%;border-left:none;background:none }
}
