﻿
:root{--p:#2563EB;--pd:#1D4ED8;--pl:#3B82F6;--pbg:#EFF6FF;--pbg2:#DBEAFE;--pbdr:#93C5FD;--green:#10B981;--gbg:#ECFDF5;--gbdr:#6EE7B7;--red:#EF4444;--rbg:#FEF2F2;--rbdr:#FCA5A5;--amber:#F59E0B;--abg:#FFFBEB;--abdr:#FCD34D;--blue:#3B82F6;--bbg:#EFF6FF;--bbdr:#93C5FD;--pur:#8B5CF6;--purbg:#F5F3FF;--purbdr:#C4B5FD;--bg:#F0F4FF;--bg2:#fff;--bg3:#E8EFFF;--sb:#0D1B2E;--bdr:#C7D8F5;--bdr2:#A5C0EC;--txt:#0D1B2E;--txt2:#1E3A5F;--txt3:#4A6FA5;--txt4:#8AAFD4;--shadow:0 1px 3px rgba(37,99,235,.08),0 1px 2px rgba(0,0,0,.04);--shadow2:0 4px 16px rgba(37,99,235,.1),0 1px 4px rgba(0,0,0,.05);--shadow3:0 16px 48px rgba(37,99,235,.15),0 4px 12px rgba(0,0,0,.08);--r:12px;--rsm:8px;--rlg:18px;--sw:228px;--font:'Plus Jakarta Sans',sans-serif;--mono:'DM Mono',monospace;}
[data-theme="emerald"]{--p:#059669;--pd:#047857;--pl:#10B981;--pbg:#ECFDF5;--pbg2:#D1FAE5;--pbdr:#6EE7B7;--bg:#F0FDF7;--bg3:#D1FAE5;--bdr:#A7F3D0;--sb:#022C22;}
[data-theme="violet"]{--p:#7C3AED;--pd:#6D28D9;--pl:#8B5CF6;--pbg:#F5F3FF;--pbg2:#EDE9FE;--pbdr:#C4B5FD;--bg:#F5F3FF;--bg3:#EDE9FE;--bdr:#DDD6FE;--sb:#1E1B4B;}
[data-theme="rose"]{--p:#BE185D;--pd:#9D174D;--pl:#EC4899;--pbg:#FDF2F8;--pbg2:#FCE7F3;--pbdr:#F9A8D4;--bg:#FFF0F7;--bg3:#FCE7F3;--bdr:#F9A8D4;--sb:#500724;}
[data-theme="slate"]{--p:#475569;--pd:#334155;--pl:#64748B;--pbg:#F8FAFC;--pbg2:#F1F5F9;--pbdr:#CBD5E1;--bg:#F8FAFC;--bg3:#F1F5F9;--bdr:#E2E8F0;--sb:#0F172A;}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html,body{height:100%;font-family:var(--font);font-size:14px;background:var(--bg);color:var(--txt);-webkit-font-smoothing:antialiased;}
button,input,select,textarea{font-family:var(--font);}
::-webkit-scrollbar{width:4px;height:4px;}::-webkit-scrollbar-thumb{background:var(--bdr2);border-radius:2px;}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes spin{to{transform:rotate(360deg)}}
/* ── LOGIN ── */
#loginPage{display:flex;min-height:100vh;background:linear-gradient(135deg,#0D1B2E 0%,#0F2744 25%,#112D50 55%,#0E3060 80%,#122840 100%);align-items:center;justify-content:center;position:relative;overflow:hidden;}
#loginCanvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}
.login-glow{position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(32,120,220,.18) 0%,transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;}
.lcard{position:relative;z-index:10;background:rgba(18,36,62,.92);border-radius:22px;padding:42px 38px;width:100%;max-width:410px;box-shadow:0 32px 80px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.06);animation:fadeUp .4s ease;border:1px solid rgba(255,255,255,.07);}
.llogo{text-align:center;margin-bottom:26px;}
.llogo-name{font-size:23px;font-weight:800;color:#14C4BE;letter-spacing:-.5px;margin-top:7px;}
.llogo-sub{font-size:11px;color:rgba(255,255,255,.3);letter-spacing:1.5px;text-transform:uppercase;}
.lfield{margin-bottom:13px;}
.llabel{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:5px;display:block;}
.liw{position:relative;}
.lico{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#4A6FA5;}
.linp{width:100%;height:44px;padding:0 38px 0 36px;border:2px solid rgba(255,255,255,.1);border-radius:9px;background:rgba(255,255,255,.95);font-size:14px;color:#0D1B2E;outline:none;transition:all .2s;}
.linp:focus{border-color:#14C4BE;box-shadow:0 0 0 4px rgba(20,196,190,.14);}
.leye{position:absolute;right:11px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#4A6FA5;display:flex;align-items:center;}
.lbtn{width:100%;height:46px;margin-top:5px;background:linear-gradient(135deg,#10B981,#0EA5A0);color:white;border:none;border-radius:9px;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px;position:relative;overflow:hidden;}
.lbtn:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(16,185,129,.4);}
.lbtn.loading .lbt{opacity:0;}
.lbtn.loading::after{content:'';position:absolute;width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:white;border-radius:50%;animation:spin .7s linear infinite;}
.lerr{display:none;align-items:center;gap:8px;padding:9px 12px;background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.3);border-radius:7px;color:#FC8181;font-size:12px;font-weight:500;margin-bottom:12px;}
.lerr.show{display:flex;}
.lfooter{text-align:center;margin-top:18px;font-size:11px;color:rgba(255,255,255,.2);}
.lfooter span{color:#14C4BE;}
/* ── SHELL ── */
#appPage{display:none;min-height:100vh;}
.app{display:flex;min-height:100vh;}
.sb{width:var(--sw);min-width:var(--sw);background:var(--sb);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:200;}
.sb-hd{padding:17px 13px 11px;border-bottom:1px solid rgba(255,255,255,.06);}
.sb-brand{display:flex;align-items:center;gap:8px;margin-bottom:13px;}
.sb-bico{width:31px;height:31px;border-radius:7px;background:rgba(37,99,235,.25);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.sb-bname{font-size:15px;font-weight:800;color:white;}
.sb-bsub{font-size:10px;color:rgba(255,255,255,.27);letter-spacing:1.5px;text-transform:uppercase;}
.sb-user{display:flex;align-items:center;gap:8px;padding:8px 10px;background:rgba(255,255,255,.05);border-radius:8px;border:1px solid rgba(255,255,255,.07);}
.sb-av{width:27px;height:27px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:white;flex-shrink:0;}
.sb-uname{font-size:12px;font-weight:600;color:white;}
.sb-urole{font-size:10px;color:rgba(255,255,255,.32);text-transform:capitalize;}
.sb-nav{flex:1;padding:7px 6px;overflow-y:auto;}
.sb-grp{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.17);font-weight:700;padding:10px 8px 3px;}
.sb-it{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:7px;cursor:pointer;transition:all .12s;color:rgba(255,255,255,.37);font-size:12.5px;font-weight:500;margin-bottom:1px;border:1px solid transparent;position:relative;}
.sb-it:hover{background:rgba(255,255,255,.05);color:rgba(255,255,255,.7);}
.sb-it.active{background:rgba(37,99,235,.2);color:white;border-color:rgba(37,99,235,.35);}
.sb-it.active::before{content:'';position:absolute;left:0;top:22%;bottom:22%;width:2px;background:var(--pl);border-radius:0 2px 2px 0;}
.sb-it svg{width:13px;height:13px;flex-shrink:0;opacity:.65;}
.sb-it.active svg{opacity:1;}
.sb-it.hidden{display:none!important;}
.sb-ft{padding:8px 6px;border-top:1px solid rgba(255,255,255,.06);}
.sb-switch{display:none;align-items:center;gap:7px;width:100%;padding:7px 9px;border-radius:7px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.25);color:#F59E0B;font-size:12px;font-weight:600;cursor:pointer;margin-bottom:5px;}
.sb-logout{display:flex;align-items:center;gap:7px;width:100%;padding:7px 9px;border-radius:7px;background:none;border:none;color:rgba(255,255,255,.27);font-size:12px;cursor:pointer;transition:all .12s;}
.sb-logout:hover{background:rgba(239,68,68,.1);color:#FC8181;}
.topbar{height:54px;background:var(--bg2);border-bottom:1px solid var(--bdr);display:flex;align-items:center;padding:0 20px;position:sticky;top:0;z-index:100;box-shadow:0 1px 5px rgba(37,99,235,.06);}
.tb-title{font-size:15px;font-weight:700;color:var(--txt);}
.tb-r{margin-left:auto;display:flex;align-items:center;gap:10px;}
.tb-clock{text-align:right;}
.tb-time{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--txt2);}
.tb-date{font-size:11px;color:var(--txt3);}
.tb-user{display:flex;align-items:center;gap:7px;padding:5px 10px;background:var(--pbg);border-radius:7px;border:1px solid var(--pbdr);}
.tb-av{width:23px;height:23px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:white;flex-shrink:0;}
.tb-uname{font-size:12px;font-weight:600;color:var(--txt);}
.tb-urole{font-size:11px;color:var(--p);text-transform:capitalize;font-weight:500;}
.notif-wrap{position:relative;}
.notif-btn{position:relative;width:36px;height:36px;border-radius:8px;border:1px solid var(--bdr);background:var(--bg2);color:var(--txt2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.notif-btn:hover{background:var(--pbg);color:var(--p);border-color:var(--pbdr);}
.notif-badge{position:absolute;top:-4px;right:-4px;min-width:17px;height:17px;padding:0 4px;border-radius:10px;background:var(--red);color:white;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg2);animation:notifPulse 2s infinite;}
@keyframes notifPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.notif-panel{position:absolute;top:calc(100% + 8px);right:0;width:340px;max-height:420px;background:white;border:1px solid var(--bdr);border-radius:12px;box-shadow:var(--shadow2);z-index:500;overflow:hidden;}
.notif-panel-hd{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--bdr);font-size:13px;font-weight:700;color:var(--txt);}
.notif-panel-hd button{font-size:11px;font-weight:600;color:var(--p);background:none;border:none;cursor:pointer;}
.notif-list{max-height:360px;overflow-y:auto;}
.notif-item{display:flex;gap:10px;padding:12px 14px;border-bottom:1px solid var(--bdr);cursor:pointer;transition:background .12s;}
.notif-item:hover{background:var(--bg3);}
.notif-item.unread{background:var(--pbg);}
.notif-item-dot{width:8px;height:8px;border-radius:50%;background:var(--p);margin-top:5px;flex-shrink:0;}
.notif-item.unread .notif-item-dot{background:var(--red);}
.notif-item-body{flex:1;min-width:0;}
.notif-item-title{font-size:12px;font-weight:700;color:var(--txt);margin-bottom:2px;}
.notif-item-msg{font-size:11px;color:var(--txt3);line-height:1.4;}
.notif-item-time{font-size:10px;color:var(--txt3);margin-top:4px;}
.notif-empty{padding:32px 16px;text-align:center;font-size:12px;color:var(--txt3);}
.pfbanner{display:none;align-items:center;gap:10px;padding:8px 18px;background:var(--abg);border-bottom:1px solid var(--abdr);}
.pfbanner-txt{font-size:12px;font-weight:600;color:var(--amber);flex:1;}
.pfbanner-btn{font-size:11px;font-weight:700;color:var(--amber);background:white;border:1px solid var(--abdr);padding:3px 9px;border-radius:5px;cursor:pointer;}
.main-wrap{margin-left:var(--sw);flex:1;display:flex;flex-direction:column;min-height:100vh;}
.ca{flex:1;padding:18px;}
/* ── COMPONENTES ── */
.page-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.page-title{font-size:20px;font-weight:800;color:var(--txt);letter-spacing:-.4px;}
.cnt{font-size:12px;font-weight:500;color:var(--txt3);background:var(--bg3);padding:3px 9px;border-radius:20px;border:1px solid var(--bdr);margin-left:8px;}
.btn{display:inline-flex;align-items:center;gap:6px;padding:0 13px;height:35px;border-radius:var(--rsm);font-size:12px;font-weight:600;border:none;cursor:pointer;transition:all .15s;}
.btn svg{width:13px;height:13px;}
.btn-p{background:var(--p);color:white;}
.btn-p:hover{background:var(--pd);}
.btn-s{background:var(--bg2);color:var(--txt2);border:1px solid var(--bdr);}
.btn-g{background:var(--gbg);color:var(--green);border:1px solid var(--gbdr);}
.btn-r{background:var(--rbg);color:var(--red);border:1px solid var(--rbdr);}
.btn-a{background:var(--abg);color:var(--amber);border:1px solid var(--abdr);}
.filters{display:flex;gap:8px;margin-bottom:13px;flex-wrap:wrap;}
.sw{position:relative;flex:1;min-width:160px;}
.sw-ico{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--txt3);}
.sw-inp{width:100%;height:35px;padding:0 11px 0 32px;border:1px solid var(--bdr);border-radius:var(--rsm);background:var(--bg2);font-size:13px;color:var(--txt);outline:none;}
.sw-inp:focus{border-color:var(--p);}
.fsel{height:35px;padding:0 9px;border:1px solid var(--bdr);border-radius:var(--rsm);background:var(--bg2);font-size:13px;color:var(--txt2);outline:none;cursor:pointer;}
.card{background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;}
.card-hd{padding:13px 17px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;justify-content:space-between;}
.card-title{font-size:14px;font-weight:700;color:var(--txt);}
.card-body{padding:16px;}
table{width:100%;border-collapse:collapse;}
thead th{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--txt3);padding:8px 13px;text-align:left;border-bottom:1px solid var(--bdr);background:var(--bg3);white-space:nowrap;}
tbody td{padding:10px 13px;border-bottom:1px solid var(--bg3);font-size:13px;color:var(--txt2);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover td{background:var(--bg);}
.td-b{font-weight:700;color:var(--txt);}
.td-p{color:var(--p);font-family:var(--mono);font-weight:700;}
.td-g{color:var(--green);font-family:var(--mono);font-weight:700;}
.td-r{color:var(--red);font-family:var(--mono);font-weight:700;}
.b{display:inline-flex;align-items:center;padding:3px 8px;border-radius:20px;font-size:11px;font-weight:600;}
.b-ativo{background:var(--gbg);color:var(--green);border:1px solid var(--gbdr);}
.b-inativo{background:var(--bg3);color:var(--txt3);border:1px solid var(--bdr);}
.b-rascunho{background:var(--bg3);color:var(--txt3);border:1px solid var(--bdr);}
.b-aguardando{background:var(--abg);color:var(--amber);border:1px solid var(--abdr);}
.b-aprovado{background:var(--gbg);color:var(--green);border:1px solid var(--gbdr);}
.b-reprovado{background:var(--rbg);color:var(--red);border:1px solid var(--rbdr);}
.b-expirado{background:var(--bg3);color:var(--txt3);border:1px solid var(--bdr);}
.b-impressao{background:var(--bbg);color:var(--blue);border:1px solid var(--bbdr);}
.b-acabamento{background:var(--purbg);color:var(--pur);border:1px solid var(--purbdr);}
.b-pronto{background:var(--gbg);color:var(--green);border:1px solid var(--gbdr);}
.b-entregue{background:var(--bg3);color:var(--txt3);border:1px solid var(--bdr);}
.b-pendente{background:var(--rbg);color:var(--red);border:1px solid var(--rbdr);}
.b-pago{background:var(--gbg);color:var(--green);border:1px solid var(--gbdr);}
.b-parcial{background:var(--abg);color:var(--amber);border:1px solid var(--abdr);}
.acts{display:flex;gap:5px;align-items:center;}
.act{width:25px;height:25px;border-radius:5px;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;}
.act-e{background:var(--pbg);color:var(--p);}
.act-e:hover{background:var(--p);color:white;}
.act-t{background:var(--bg3);color:var(--txt3);}
.act-t:hover{background:var(--rbg);color:var(--red);}
.pag{display:flex;align-items:center;justify-content:space-between;padding:10px 13px;border-top:1px solid var(--bdr);}
.pag-i{font-size:12px;color:var(--txt3);}
.pag-bs{display:flex;gap:3px;}
.pb{width:27px;height:27px;border-radius:5px;border:1px solid var(--bdr);background:var(--bg2);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--txt2);}
.pb.on{background:var(--p);color:white;border-color:var(--p);}
/* MODAL */
.ov{display:none;position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:1000;align-items:flex-start;justify-content:center;padding:18px;overflow-y:auto;backdrop-filter:blur(3px);cursor:default;}
.ov.open{display:flex;}
.ov-center{align-items:center;}
.modal{background:var(--bg2);border-radius:var(--rlg);width:100%;max-width:680px;box-shadow:var(--shadow3);animation:fadeUp .2s ease;margin-bottom:18px;}
.modal-lg{max-width:900px;}
.modal-sm{max-width:480px;}
.prod-combo-list{display:none;position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--bg2);border:1px solid var(--bdr);border-radius:8px;box-shadow:var(--shadow3);z-index:60;max-height:240px;overflow-y:auto;}
.prod-combo-item{padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--bg3);}
.prod-combo-item:last-child{border-bottom:none;}
.prod-combo-item:hover,.prod-combo-item.sel{background:var(--pbg);}
.prod-combo-item .pc-nome{font-size:13px;font-weight:600;color:var(--txt);}
.prod-combo-item .pc-grp{font-size:10px;color:var(--txt3);margin-top:1px;}
.mhd{display:flex;align-items:center;justify-content:space-between;padding:17px 21px;border-bottom:1px solid var(--bdr);}
.mtitle{font-size:16px;font-weight:700;color:var(--txt);}
.mclose{width:29px;height:29px;border-radius:5px;border:none;background:var(--bg3);color:var(--txt3);cursor:pointer;display:flex;align-items:center;justify-content:center;}
.mclose:hover{background:var(--rbg);color:var(--red);}
.mbody{padding:20px;max-height:70vh;overflow-y:auto;}
.mft{padding:13px 21px;border-top:1px solid var(--bdr);display:flex;justify-content:flex-end;gap:7px;align-items:center;}
.fg{display:flex;flex-direction:column;gap:4px;}
.fg label{font-size:11px;font-weight:600;letter-spacing:.4px;color:var(--txt2);}
.req{color:var(--red);}
.fi{height:37px;padding:0 10px;border:1.5px solid var(--bdr);border-radius:var(--rsm);font-size:13px;color:var(--txt);background:var(--bg);outline:none;transition:border-color .15s,box-shadow .15s;width:100%;}
.fi.orc-campo-erro,.fis.orc-campo-erro{border-color:var(--red)!important;box-shadow:0 0 0 2px var(--rbdr)!important;background:var(--rbg)!important;}
.fi:focus{border-color:var(--p);background:var(--bg2);}
.fi.err{border-color:var(--red);}
.fis{height:37px;padding:0 9px;border:1.5px solid var(--bdr);border-radius:var(--rsm);font-size:13px;color:var(--txt);background:var(--bg);outline:none;cursor:pointer;width:100%;}
.fis:focus{border-color:var(--p);}
.fta{padding:8px 10px;border:1.5px solid var(--bdr);border-radius:var(--rsm);font-size:13px;color:var(--txt);background:var(--bg);outline:none;resize:vertical;min-height:68px;width:100%;}
.fta:focus{border-color:var(--p);}
.fn{font-size:11px;color:var(--txt3);margin-top:2px;}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:13px;}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:13px;}
.full{grid-column:1/-1;}
.stitle{font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--p);border-bottom:2px solid var(--pbg2);padding-bottom:5px;margin-bottom:11px;margin-top:4px;}
.tog{width:36px;height:19px;background:var(--bdr2);border-radius:10px;position:relative;cursor:pointer;transition:background .2s;border:none;flex-shrink:0;}
.tog.on{background:var(--green);}
.tog::after{content:'';position:absolute;width:13px;height:13px;background:white;border-radius:50%;top:3px;left:3px;transition:transform .2s;}
.tog.on::after{transform:translateX(17px);}
.trow{display:flex;align-items:center;gap:9px;}
/* DASHBOARD */
.dw{background:linear-gradient(135deg,#0D1B2E 0%,#1D4ED8 55%,#3B82F6 100%);border-radius:var(--rlg);padding:20px 24px;margin-bottom:15px;position:relative;overflow:hidden;}
.dw::before{content:'';position:absolute;right:-25px;top:-25px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.04);}
.dw-h2{font-size:18px;font-weight:800;color:white;margin-bottom:3px;}
.dw-sub{font-size:12px;color:rgba(255,255,255,.45);}
.kgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:15px;}
.kpi{background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r);padding:15px;box-shadow:var(--shadow);transition:all .2s;cursor:pointer;}
.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow2);}
.kpi-bar{height:3px;border-radius:var(--r) var(--r) 0 0;margin:-15px -15px 11px;}
.kpi-p .kpi-bar{background:linear-gradient(90deg,var(--pd),var(--pl));}
.kpi-g .kpi-bar{background:linear-gradient(90deg,#059669,var(--green));}
.kpi-a .kpi-bar{background:linear-gradient(90deg,#D97706,var(--amber));}
.kpi-r .kpi-bar{background:linear-gradient(90deg,#DC2626,var(--red));}
.kpi-pu .kpi-bar{background:linear-gradient(90deg,#7C3AED,var(--pur));}
.kpi-lbl{font-size:10px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--txt3);margin-bottom:5px;}
.kpi-val{font-size:22px;font-weight:800;letter-spacing:-.4px;line-height:1;}
.kpi-sub{font-size:11px;color:var(--txt3);margin-top:4px;}
.spark{width:100%;height:30px;margin-top:7px;}
.mgrid{display:grid;grid-template-columns:2fr 1fr;gap:13px;margin-bottom:15px;}
.bgrid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:15px;}
.agrid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;}
.ac{background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r);padding:13px 17px;display:flex;align-items:center;gap:11px;box-shadow:var(--shadow);}
.ac-ico{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ac-num{font-size:22px;font-weight:800;font-family:var(--mono);line-height:1;}
.ac-lbl{font-size:12px;color:var(--txt3);margin-top:2px;}
.chart-bars{display:flex;align-items:flex-end;gap:5px;height:120px;}
.bc{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end;}
.bv{font-size:9px;font-weight:600;color:var(--p);font-family:var(--mono);}
.bf{width:100%;border-radius:3px 3px 0 0;background:linear-gradient(180deg,var(--pl),var(--p));}
.bl{font-size:10px;color:var(--txt3);}
.km-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:15px;}
.km{background:var(--bg2);border:1px solid var(--bdr);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);}
.km-hd{padding:8px 11px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;justify-content:space-between;}
.km-nm{font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;}
.km-ct{font-size:17px;font-weight:800;font-family:var(--mono);}
.km-aw{border-top:2px solid var(--amber);}
.km-aw .km-nm,.km-aw .km-ct{color:var(--amber);}
.km-im{border-top:2px solid var(--blue);}
.km-im .km-nm,.km-im .km-ct{color:var(--blue);}
.km-ac{border-top:2px solid var(--pur);}
.km-ac .km-nm,.km-ac .km-ct{color:var(--pur);}
.km-pr{border-top:2px solid var(--green);}
.km-pr .km-nm,.km-pr .km-ct{color:var(--green);}
.km-body{padding:7px;}
.kmc{background:var(--bg);border:1px solid var(--bdr);border-radius:5px;padding:7px 9px;margin-bottom:5px;cursor:pointer;}
.kmc:hover{border-color:var(--pbdr);background:var(--pbg);}
.kmc-id{font-size:10px;font-weight:700;color:var(--p);font-family:var(--mono);}
.kmc-cli{font-size:12px;font-weight:700;color:var(--txt);}
.kmc-prd{font-size:11px;color:var(--txt3);margin-bottom:4px;}
.kmc-ft{display:flex;align-items:center;justify-content:space-between;}
.tag{font-size:10px;font-weight:600;padding:2px 6px;border-radius:9px;}
.tag-l{background:var(--pbg2);color:var(--pd);}
.tag-a{background:var(--abg);color:#92400E;}
.tag-b{background:var(--gbg);color:#065F46;}
.kmc-pz{font-size:10px;color:var(--txt3);}
.kmc-pz.urg{color:var(--red);font-weight:700;}
.vrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--bg3);}
.vrow:last-child{border-bottom:none;}
.vav{width:33px;height:33px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:white;flex-shrink:0;}
.vname{font-size:13px;font-weight:700;color:var(--txt);}
.vmeta{font-size:11px;color:var(--txt3);}
.vval{font-size:14px;font-weight:800;color:var(--p);font-family:var(--mono);}
.prog{height:4px;background:var(--bg3);border-radius:2px;overflow:hidden;margin-top:3px;}
.pf{height:100%;border-radius:2px;}
.donut-w{display:flex;align-items:center;gap:16px;}
.dl{display:flex;flex-direction:column;gap:6px;}
.dl-it{display:flex;align-items:center;gap:7px;}
.dl-dot{width:9px;height:9px;border-radius:2px;flex-shrink:0;}
.dl-nm{font-size:12px;color:var(--txt2);flex:1;}
.dl-p{font-size:12px;font-weight:700;color:var(--txt);font-family:var(--mono);}
.fin-sum{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:11px;}
.fbox{background:var(--bg3);border-radius:6px;padding:9px;text-align:center;}
.fbox-val{font-size:15px;font-weight:800;font-family:var(--mono);}
.fbox-lbl{font-size:10px;color:var(--txt3);letter-spacing:1px;text-transform:uppercase;margin-top:2px;}
/* THEME FAB */
.tdot{width:22px;height:22px;border-radius:50%;border:2.5px solid transparent;cursor:pointer;transition:all .15s;}
.tdot:hover{transform:scale(1.15);}
.tdot.active{border-color:var(--p);box-shadow:0 0 0 2px var(--p)33;}
/* TOAST */
#toasts{position:fixed;bottom:16px;right:16px;z-index:3000;display:flex;flex-direction:column;gap:6px;}
.toast{display:flex;align-items:center;gap:8px;padding:10px 13px;background:var(--bg2);border-radius:var(--r);box-shadow:var(--shadow3);font-size:13px;font-weight:500;min-width:230px;animation:fadeUp .2s ease;border-left:3px solid var(--green);}
.toast.err{border-left-color:var(--red);}
.toast.warn{border-left-color:var(--amber);}
/* ORC ITEMS */
.oi{border:1px solid var(--bdr);border-radius:8px;padding:11px;margin-bottom:8px;background:var(--bg);}
.oi-r1{display:grid;grid-template-columns:2.5fr 1fr 1fr 1fr 1fr;gap:8px;margin-bottom:8px;}
.oi-r2{display:grid;grid-template-columns:1fr 1fr 1fr 1fr auto;gap:8px;align-items:end;}
.oi-lbl{font-size:10px;font-weight:600;color:var(--txt3);display:block;margin-bottom:3px;text-transform:uppercase;letter-spacing:.3px;}
.oi-f{width:100%;height:32px;padding:0 7px;border:1.5px solid var(--bdr);border-radius:5px;font-size:12px;color:var(--txt);outline:none;background:var(--bg2);}
.oi-f:focus{border-color:var(--p);}
.oi-calc{height:32px;padding:0 7px;border:1px solid var(--bdr);border-radius:5px;font-size:12px;background:var(--bg3);display:flex;align-items:center;font-family:var(--mono);color:var(--txt2);}
.oi-sub{height:32px;padding:0 7px;border:1px solid var(--pbdr);border-radius:5px;font-size:12px;font-weight:800;background:var(--pbg);display:flex;align-items:center;font-family:var(--mono);color:var(--p);}
.oi-del{width:32px;height:32px;border-radius:5px;border:none;background:var(--rbg);color:var(--red);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.orc-total{display:flex;justify-content:flex-end;padding:11px 13px;background:var(--pbg);border:1px solid var(--pbdr);border-radius:8px;margin-top:4px;}
.orc-tval{font-size:24px;font-weight:800;color:var(--p);font-family:var(--mono);}
.orc-lancar-r1{display:grid;grid-template-columns:minmax(140px,1fr) 56px 100px 100px minmax(120px,1fr);gap:8px;align-items:end;margin-bottom:8px;}
.orc-lancar-r2{display:grid;grid-template-columns:minmax(120px,1fr) 96px 112px auto;gap:8px;align-items:end;}
.orc-fi-med{font-family:var(--mono);font-size:13px;text-align:center;padding:0 8px!important;min-width:0;}
.fi-upper{text-transform:uppercase;}
.orc-n-sub{height:37px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:800;font-size:13px;color:var(--p);background:var(--bg2);border:1.5px solid var(--bdr);border-radius:var(--rsm);cursor:default;}
@media(max-width:900px){
  .orc-lancar-r1{grid-template-columns:1fr 1fr;grid-template-rows:auto;}
  .orc-lancar-r1>div:first-child{grid-column:1/-1;}
  .orc-lancar-r2{grid-template-columns:1fr 1fr;}
  .orc-lancar-r2>div:first-child{grid-column:1/-1;}
}
/* OS DETAIL */
.os-grid{display:grid;grid-template-columns:1fr 300px;min-height:360px;}
.os-left{padding:18px 20px;border-right:1px solid var(--bdr);}
.os-right{padding:16px;}
.ig{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:14px;}
.ibox{padding:8px 10px;background:var(--bg3);border-radius:6px;}
.ilbl{font-size:10px;font-weight:600;color:var(--txt3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:2px;}
.ival{font-size:13px;font-weight:600;color:var(--txt);}
.arte-ok{border:1px solid var(--gbdr);border-radius:8px;padding:11px;background:var(--gbg);margin-bottom:9px;}
.arte-miss{border:2px dashed var(--rbdr);border-radius:8px;padding:16px;background:var(--rbg);text-align:center;margin-bottom:9px;}
/* PERM */
.perm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.pit{padding:10px;border:1px solid var(--bdr);border-radius:var(--rsm);transition:all .15s;}
.pit.on{background:var(--pbg);border-color:var(--pbdr);}
.pit-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:6px;}
.pit-ico{width:24px;height:24px;border-radius:5px;display:flex;align-items:center;justify-content:center;}
.pit-nm{font-size:11px;font-weight:700;color:var(--txt);margin-bottom:1px;}
.pit-desc{font-size:10px;color:var(--txt3);}
/* VENDEDOR DASH */
.vd-meta{font-size:12px;color:var(--txt3);margin-bottom:4px;}
.meta-bar{height:9px;background:var(--bg3);border-radius:5px;overflow:hidden;margin-bottom:6px;}
.meta-fill{height:100%;border-radius:5px;}
/* RESPONSIVO */
@media(max-width:1200px){
  .kgrid,.bgrid{grid-template-columns:repeat(2,1fr)!important;}
  .dw-h2{font-size:18px!important;}
}
.tb-menu{display:none;align-items:center;justify-content:center;width:36px;height:36px;margin-right:10px;border:1px solid var(--bdr);border-radius:8px;background:var(--bg3);color:var(--txt2);cursor:pointer;flex-shrink:0;}
.tb-menu:hover{color:var(--txt);border-color:var(--p);}
.sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:199;}
.sb-overlay.show{display:block;}
.pwa-install-bar{position:fixed;bottom:0;left:0;right:0;z-index:500;padding:12px 16px;background:linear-gradient(180deg,transparent,rgba(12,25,41,.92) 30%);}
.pwa-install-inner{display:flex;align-items:center;gap:12px;max-width:480px;margin:0 auto;padding:12px 14px;background:var(--bg2);border:1px solid var(--bdr);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.35);}
.pwa-install-ico{width:40px;height:40px;border-radius:10px;background:var(--pbg);color:var(--p);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.pwa-install-txt{flex:1;min-width:0;}
.pwa-install-txt strong{display:block;font-size:13px;color:var(--txt);margin-bottom:2px;}
.pwa-install-txt span{display:block;font-size:11px;color:var(--txt3);line-height:1.35;}
.pwa-install-btn{padding:8px 14px;border:none;border-radius:8px;background:var(--p);color:#fff;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;}
.pwa-install-btn:hover{filter:brightness(1.08);}
.pwa-install-x{width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:var(--txt3);font-size:20px;line-height:1;cursor:pointer;flex-shrink:0;}
@media(max-width:900px){
  .tb-menu{display:flex;}
  .sb{transform:translateX(-100%);transition:transform .25s ease;box-shadow:4px 0 24px rgba(0,0,0,.2);}
  .sb.sb-open{transform:translateX(0);}
  .main-wrap{margin-left:0!important;}
  .ca{padding:12px!important;}
  .g2,.g3{grid-template-columns:1fr!important;}
  .page-hd{flex-direction:column;align-items:flex-start!important;gap:10px;}
  .filters{flex-direction:column;}
  .sw{min-width:100%!important;}
}
@media(max-width:640px){
  .kgrid,.bgrid{grid-template-columns:1fr!important;}
  table{display:block;overflow-x:auto;}
  .modal,.modal-lg{max-width:100%!important;}
}

.sb-it-lbl{display:inline;}
/* MAPA LEAFLET — tela cheia */
.ca.mapa-page{padding:0;display:flex;flex-direction:column;min-height:calc(100vh - 54px);overflow:hidden;}
.mapa-shell{flex:1;display:flex;flex-direction:column;min-height:0;background:var(--bg2);}
.mapa-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:10px 16px;border-bottom:1px solid var(--bdr);background:var(--bg2);flex-shrink:0;
}
.mapa-toolbar-l{display:flex;align-items:center;gap:8px;}
.mapa-toolbar-r{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.mapa-legenda{display:flex;align-items:center;gap:10px;padding:5px 12px;background:var(--bg3);border:1px solid var(--bdr);border-radius:8px;font-size:11px;font-weight:600;color:var(--txt2);}
.mapa-legenda span{display:inline-flex;align-items:center;gap:4px;}
.mapa-legenda i{width:8px;height:8px;border-radius:50%;display:inline-block;}
.mapa-stats{display:flex;gap:8px;padding:8px 16px;background:var(--bg);border-bottom:1px solid var(--bdr);flex-shrink:0;}
.mapa-stat{flex:1;display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--bg2);border:1px solid var(--bdr);border-radius:8px;font-size:11px;font-weight:600;color:var(--txt3);}
.mapa-stat strong{font-size:18px;font-family:var(--mono);}
.mapa-full{flex:1;min-height:0;position:relative;}
#mapaContainer{height:100%;width:100%;z-index:1;}
.mapa-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg2);z-index:2;}
.mapa-loading-spin{width:32px;height:32px;border:3px solid var(--bdr);border-top-color:var(--p);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 10px;}
.mapa-pin{width:30px;height:30px;position:relative;display:flex;align-items:center;justify-content:center;}
.mapa-pin::before{content:'';position:absolute;inset:0;border-radius:50%;background:var(--cor);opacity:.22;}
.mapa-pin span{position:relative;width:22px;height:22px;border-radius:50%;background:var(--cor);border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;color:#fff;}
.mapa-popup{min-width:220px;font-family:var(--font);}
.mapa-popup-hd{display:flex;align-items:center;gap:10px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--bdr);}
.mapa-popup-av{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:800;color:#fff;flex-shrink:0;}
.mapa-popup-nome{font-size:14px;font-weight:700;color:var(--txt);}
.mapa-popup-sub{font-size:11px;color:var(--txt3);}
.mapa-popup-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px;}
.mapa-popup-grid div{padding:6px 8px;background:var(--bg3);border-radius:6px;}
.mapa-popup-grid span{display:block;font-size:9px;font-weight:700;text-transform:uppercase;color:var(--txt3);margin-bottom:1px;}
.mapa-popup-grid strong{font-size:12px;color:var(--txt);}
.mapa-popup-wa{display:flex;align-items:center;justify-content:center;padding:8px;background:#25D366;color:#fff;border-radius:7px;text-decoration:none;font-size:12px;font-weight:700;margin-bottom:6px;}
.mapa-popup-status{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:6px;border:1px solid;font-size:11px;font-weight:600;}
.mapa-popup-status span{width:8px;height:8px;border-radius:50%;}
.mapa-popup-ult{font-size:11px;color:var(--txt3);margin-top:6px;text-align:center;}
@media(max-width:900px){
  .mapa-stats{flex-wrap:wrap;}
  .mapa-stat{min-width:calc(50% - 4px);}
  .mapa-toolbar{flex-direction:column;align-items:flex-start;}
}
