:root{--navy:#142238;--navy2:#1c304b;--ink:#152538;--muted:#758399;--bg:#f4f6fa;--surface:#fff;--border:#e3e9f0;--brand:#1b835e;--lightgreen:#e4f5ed;--gold:#c28b38;--shadow:0 4px 22px rgba(13,31,52,.035)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #75bca0;outline-offset:2px}a{color:inherit;text-decoration:none}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:252px;background:var(--navy);color:#dde6ee;display:flex;flex-direction:column;z-index:30}.brand{height:104px;display:flex;align-items:center;gap:12px;padding:24px 24px 20px;border-bottom:1px solid #304056}.brand-symbol{width:38px;height:38px;border-radius:10px;background:#278766;color:white;font-size:24px;font-weight:900;display:grid;place-items:center}.brand-name{font-weight:850;color:#fff;letter-spacing:1.4px;font-size:19px}.brand-name span{font-weight:400;letter-spacing:0;font-size:14px;color:#b7c9da}.brand-sub{font-size:9px;color:#98adbf;letter-spacing:1.8px;margin-top:4px}.side-caption{font-weight:700;font-size:10px;letter-spacing:1.8px;color:#8195ab;margin:29px 25px 15px}.nav{display:flex;flex-direction:column;gap:5px;padding:0 11px}.nav-item{border:0;text-align:left;display:flex;align-items:center;gap:12px;border-radius:10px;padding:13px 17px;background:transparent;color:#becad6;font-weight:570;width:100%;transition:background .1s}.nav-item:hover{background:#213551;color:#fff}.nav-item.selected{background:#2a455d;color:#fff;box-shadow:inset 3px 0 #4cbe8e}.nav-icon{width:23px;font-size:19px;text-align:center;color:#a9bace}.sidebar-bottom{margin-top:auto;padding:22px 24px;border-top:1px solid #304056}.app-mini{font-size:11px;color:#86d4b1;line-height:1.5}.sidebar-note{font-size:11px;color:#99aabb;line-height:1.6;margin-top:10px}.main-shell{margin-left:252px;min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:77px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--border);padding:0 38px;position:sticky;top:0;z-index:20}.topbar-title{display:flex;gap:10px;align-items:center;font-weight:750;color:#26374a}.breadcrumb{font-size:12px;color:#8894a5;font-weight:500}.chevron{color:#aeb9c7;font-size:20px}.topbar-right{display:flex;align-items:center;gap:13px}.filter-label{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.4px}.branch-select{width:191px;padding:10px 30px 10px 13px;border:1px solid var(--border);border-radius:9px;background:#fff;color:#33475b;font-weight:600}.user-avatar{border-radius:50%;background:#e4f2eb;color:#197653;font-size:11px;font-weight:800;width:35px;height:35px;display:grid;place-items:center;margin-left:10px}.menu-button{display:none;border:0;background:transparent;color:var(--ink);font-size:21px}.content{width:100%;max-width:1550px;margin:0 auto;padding:36px 40px 58px;flex:1}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:27px}.eyebrow{color:#20805e;font-size:10px;letter-spacing:2.1px;font-weight:800;text-transform:uppercase;margin-bottom:10px}h1{font-size:28px;letter-spacing:-.8px;margin:0 0 7px;font-weight:780}h2{margin:0;font-size:19px;letter-spacing:-.25px}.subtitle{color:var(--muted);margin:0;line-height:1.65;font-size:13px}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.btn{border:1px solid transparent;border-radius:9px;padding:11px 16px;font-weight:700;font-size:12px;display:inline-flex;align-items:center;gap:7px;justify-content:center;transition:background .15s,transform .15s;white-space:nowrap}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn-primary{background:#197e5a;color:#fff}.btn-primary:hover{background:#126846}.btn-secondary{border-color:#dbe4ee;background:#fff;color:#344b5f}.btn-secondary:hover{background:#f6f9fc}.btn-danger{background:#fff0ee;color:#a74136;border-color:#ffd4ce}.btn-small{font-size:11px;padding:7px 10px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:19px}.metric{border:1px solid var(--border);border-radius:13px;background:white;padding:22px 22px 20px;box-shadow:var(--shadow);position:relative;min-width:0}.metric .top{display:flex;align-items:center;justify-content:space-between;gap:9px}.metric .label{color:#6c798b;font-weight:660;font-size:11px}.metric .symbol{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#eef4f8;color:#60788d;font-size:18px}.metric.positive .symbol{color:#16825b;background:#e6f6ef}.metric .value{font-size:24px;font-weight:800;letter-spacing:-.6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:20px 0 10px}.metric .foot{font-size:11px;color:#8993a3;line-height:1.5}.two-cols{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(275px,.85fr);gap:17px}.panel{border:1px solid var(--border);border-radius:13px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.panel-header{padding:21px 23px;display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid #edf0f4}.panel-header h2{font-size:16px;font-weight:760}.panel-header p{font-size:11px;color:#9aa5b2;margin:5px 0 0}.panel-body{padding:22px}.table-scroll{overflow-x:auto}.table{width:100%;border-collapse:collapse;text-align:left}.table th{background:#f8fafc;color:#8592a2;font-weight:750;font-size:10px;text-transform:uppercase;letter-spacing:.7px;padding:13px 18px;white-space:nowrap}.table td{padding:15px 18px;font-size:12px;border-bottom:1px solid #eff2f5;vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#fbfdfd}.table .main-cell{font-weight:750;color:#27394d}.minor{color:#8b98aa;font-size:11px;margin-top:5px}.right{text-align:right}.badge{display:inline-flex;align-items:center;font-size:10px;font-weight:780;border-radius:99px;padding:6px 9px;white-space:nowrap;background:#e7eff7;color:#5c7187}.badge.green{background:#e1f3e9;color:#27815b}.badge.amber{background:#fff1d9;color:#ac7831}.badge.red{background:#ffefed;color:#bb5b4e}.badge.gray{background:#eef2f6;color:#6c8090}.hint-panel{background:#f0f8f4;border:1px solid #dcefe4;border-radius:10px;padding:18px;line-height:1.65;font-size:12px;color:#446957}.hint-panel strong{display:block;color:#235741;margin-bottom:6px}.insight-list{display:grid;gap:14px}.insight{display:flex;gap:11px;align-items:flex-start}.insight-icon{background:#edf2f7;color:#5b748d;width:28px;height:28px;flex-shrink:0;display:grid;place-items:center;border-radius:8px}.insight span{color:#6e7c90;font-size:12px;line-height:1.6}.insight strong{color:#253a4e}.quick-links{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.empty{padding:45px 25px;text-align:center;color:#8795a3}.empty .empty-icon{font-size:32px;margin-bottom:11px;opacity:.6}.empty strong{color:#314358;display:block;font-size:14px;margin-bottom:5px}.search-line{display:flex;gap:10px;align-items:center;margin-bottom:17px}.search{width:100%;max-width:350px;padding:11px 13px;border:1px solid #e0e6ee;background:#fff;border-radius:8px}.footer{font-size:10px;color:#99a6b4;padding:14px 40px 19px;border-top:1px solid #e8edf2;background:#fff}.overlay{position:fixed;inset:0;background:rgba(8,21,37,.55);display:grid;place-items:center;z-index:100;padding:20px;backdrop-filter:blur(3px)}.overlay[hidden]{display:none}.modal{width:min(710px,100%);max-height:min(90vh,900px);overflow-y:auto;background:white;box-shadow:0 24px 100px #0c203950;border-radius:15px}.modal.wide{width:min(900px,100%)}.modal-header{padding:23px 27px 20px;display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #eef2f4}.modal-header .eyebrow{margin-bottom:6px}.close-button{font-size:26px;line-height:1;background:#f5f7fa;color:#607288;border:0;border-radius:8px;width:33px;height:33px}.modal-body{padding:25px 27px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{min-width:0}.field.full{grid-column:1/-1}.field label{display:block;color:#3b5065;font-size:11px;font-weight:740;margin-bottom:7px}.field input,.field textarea,.field select{width:100%;padding:12px 12px;border:1px solid #dce4eb;background:#fff;border-radius:8px;color:#21364c;font-size:12px}.field textarea{min-height:78px;resize:vertical}.form-note{background:#f5f8fb;color:#77879b;font-size:11px;line-height:1.65;padding:11px 13px;border-radius:9px;margin:18px 0}.form-footer{display:flex;justify-content:flex-end;gap:9px;margin-top:22px;padding-top:17px;border-top:1px solid #edf0f4}.detail-hero{background:#f6f9fb;border:1px solid #edf1f4;border-radius:12px;padding:17px;display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:21px}.detail-item .label{font-size:10px;color:#8996a5;margin-bottom:5px}.detail-item .val{font-weight:780;font-size:15px}.detail-section{margin-top:22px}.detail-section h3{font-size:14px;margin:0 0 12px}.detail-row{padding:12px 0;border-bottom:1px solid #edf1f5;display:flex;align-items:center;justify-content:space-between;gap:15px}.detail-row:last-child{border:0}.subhead{color:#77879a;font-size:11px;margin:5px 0}.tag{font-size:11px;color:#3c566a;background:#edf3f7;border-radius:5px;padding:5px 7px}.inline-actions{display:flex;gap:6px;align-items:center}.textbtn{background:transparent;border:0;font-size:11px;color:#1b8260;font-weight:800;padding:5px 3px}.textbtn.danger{color:#b24d43}.toast{position:fixed;bottom:26px;right:28px;z-index:150;background:#173b2e;color:white;border-radius:10px;box-shadow:0 14px 42px #1031263a;padding:13px 18px;font-size:12px;max-width:min(420px,90vw);opacity:0;transform:translateY(10px);transition:all .2s;pointer-events:none}.toast.visible{opacity:1;transform:translateY(0)}.toast.error{background:#943f39}.warning{color:#a96d27}.good{color:#1e8c5f}.divider{height:1px;background:#e9edf3;margin:18px 0}.loading-state{text-align:center;padding:60px;color:var(--muted)}.nowrap{white-space:nowrap}.callout{padding:12px 15px;background:#fffaf0;border-left:3px solid #e6b467;border-radius:5px;font-size:11px;color:#8b7149;line-height:1.7}.stat-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #f0f3f5;font-size:12px}.stat-row:last-child{border:0}.stat-row strong{color:#25394c}.search-info{font-size:11px;color:#8a98a6;margin-left:auto}
@media(max-width:1250px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-cols{grid-template-columns:1fr}.content{padding:30px 25px 45px}.topbar{padding:0 25px}}
@media(max-width:850px){.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.mobile-open{transform:translateX(0)}.main-shell{margin-left:0}.menu-button{display:block}.topbar{height:67px;padding:0 17px}.content{padding:26px 16px 38px}.page-header{flex-direction:column}.user-avatar{display:none}.footer{padding:16px}.topbar-title .breadcrumb,.topbar-title .chevron{display:none}}
@media(max-width:540px){h1{font-size:24px}.metric-grid{grid-template-columns:1fr 1fr;gap:9px}.metric{padding:16px}.metric .value{font-size:18px;margin:14px 0 8px}.metric .label{font-size:10px}.metric .foot{font-size:10px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:1}.detail-hero{grid-template-columns:1fr 1fr}.modal-body{padding:18px}.modal-header{padding:18px}.topbar-right{gap:5px}.filter-label{display:none}.branch-select{width:150px;font-size:12px}.table td{padding:12px}.actions{width:100%}.actions .btn{flex:1}}

/* Sessão e login (V0.2) */
body:not(.authenticated) .app-shell{display:none!important}
.login-screen[hidden]{display:none!important}
.login-screen{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:18px;background:linear-gradient(130deg,#0d1a2a 0%,#20394a 60%,#175341 100%)}
.login-card{width:min(430px,100%);background:white;border-radius:16px;padding:38px;box-shadow:0 25px 120px #0007}
.login-card .brand-name{color:#14283c;font-size:29px;font-weight:900;letter-spacing:-.9px}
.login-card .brand-name span{color:#16835a}
.login-card .brand-sub{color:#5a8a77;font-size:10px;letter-spacing:2px;margin:6px 0 36px}
.login-card h1{font-size:24px}.login-form{margin-top:24px;display:grid;gap:18px}
.login-form label{display:grid;gap:8px;font-size:12px;font-weight:750;color:#3a4b5f}
.login-form input{padding:13px;border:1px solid #ccd8e4;border-radius:9px;font-size:15px;width:100%;background:#fff;color:#182a3b}
.login-form .btn{padding:14px;font-size:14px}.login-error{padding:10px 12px;background:#fff0ee;color:#a02b30;border-radius:8px;font-size:12px}
.login-footer{color:#8997a6;font-size:10px;margin-top:26px;text-align:center}
.user-name{font-size:11px;font-weight:750;color:#385269;max-width:185px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
.exit-btn{border:1px solid #dce5ec;background:white;border-radius:7px;color:#45617a;padding:8px 12px;font-size:11px;font-weight:700}
.nav-item[hidden]{display:none!important}
.readonly [data-action="new"],.readonly [data-action="delete"],.readonly [data-action="edit"],.readonly [data-action="settle"]{display:none!important}
.check-branch{display:inline-flex!important;align-items:center;gap:8px;padding:8px 14px;border:1px solid #d7e1e7;border-radius:8px;margin:3px 9px 3px 0!important}
.check-branch input{width:16px!important}
@media(max-width:850px){.user-name{max-width:100px}}
@media(max-width:540px){.user-name{display:none}.login-card{padding:27px}}
