﻿@charset "UTF-8";
:root{color-scheme:light;--bg:#f5f7fb;--surface:#fff;--surface-2:#f9fafc;--text:#18253c;--muted:#6d7a91;--line:#e8edf5;--primary:#3565ea;--primary-soft:#edf2ff;--nav:#101e36;--green:#168873;--green-soft:#e7f6f0;--amber:#b57913;--amber-soft:#fff5df;--red:#cf5365;--red-soft:#fff0f2;--purple:#7b61c3;--radius:14px;--shadow:0 12px 48px #162c4a16;--sidebar:248px}
html[data-mode="dark"]{color-scheme:dark;--bg:#111b2b;--surface:#19263a;--surface-2:#1c2b42;--text:#edf2fc;--muted:#a1afc7;--line:#2a3850;--primary:#779aff;--primary-soft:#24365b;--green:#60c7ad;--green-soft:#1c3c39;--amber:#e6b966;--amber-soft:#3c3526;--red:#f191a0;--red-soft:#432c39;--purple:#b3a1ed}
*{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:400 1rem/1.5 "DM Sans",sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}a{color:inherit;text-decoration:none}button{color:inherit}button,input,select,textarea{outline-offset:4px}:focus-visible{outline:2px solid var(--primary)}button{background:none;border:0}svg{flex-shrink:0;vertical-align:middle}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4,.number{font-family:Manrope,"DM Sans",sans-serif}h1{font-size:2rem;line-height:1.25;letter-spacing:-1px;font-weight:800}h2{font-size:1.06rem;letter-spacing:-.25px;font-weight:750}h3{font-size:1rem;font-weight:750}small{font-size:.8125rem}img{display:block;max-width:100%}.muted{color:var(--muted)}.blue{color:var(--primary)}.green{color:var(--green)}.amber{color:var(--amber)}.red{color:var(--red)}.right{text-align:right}.mono{font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:5px}.gap-20{gap:20px}.mt-20{margin-top:20px}.mb-20{margin-bottom:20px}.full{width:100%}.skip-link{position:fixed;left:16px;top:-100px;background:var(--surface);padding:14px;z-index:100}.skip-link:focus{top:16px}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--nav);color:#a8b6cf;display:flex;flex-direction:column;padding:30px 18px 18px;z-index:30;border-right:1px solid #ffffff05}.brand{display:flex;align-items:center;gap:11px;color:white;padding:0 12px}.brand-name{font-family:Manrope,sans-serif;font-weight:800;font-size:1.13rem;letter-spacing:-.35px}.brand-sub{font-size:.75rem;letter-spacing:1.6px;text-transform:uppercase;color:#8f9fbd;margin-top:2px}.brand-mark{width:39px;height:43px;overflow:hidden;background:white;border-radius:9px;position:relative;flex-shrink:0}.brand-mark img{max-width:none;width:142px;position:absolute;left:-47px;top:-11px}.workspace-label{display:flex;align-items:center;gap:7px;margin:30px 12px 18px;font-size:.75rem;color:#8798b5;text-transform:uppercase;letter-spacing:1.8px}.nav-link{display:flex;align-items:center;gap:12px;margin:5px 0;padding:12px 15px;border-radius:8px;font-size:.875rem;font-weight:500;transition:background .18s,color .18s}.nav-link svg{opacity:.8}.nav-link:hover{background:#ffffff07;color:white}.nav-link.active{background:#3463e6;color:white;box-shadow:0 5px 20px #00000010}.nav-count{margin-left:auto;background:#ffffff16;color:#d1dced;border-radius:5px;padding:0 6px;font-size:.75rem}.nav-divider{height:1px;background:#ffffff0e;margin:19px 12px 8px}.sidebar-bottom{margin-top:auto;padding-top:30px}.demo-box{border:1px solid #ffffff16;background:#172840;border-radius:10px;padding:14px;font-size:.8125rem;margin:0 9px 24px;line-height:1.55}.demo-box .row{color:#d6e1f4;font-weight:600;margin-bottom:6px}.demo-box p{color:#8da0be}.demo-box button{color:#a8c2ff;padding:9px 0 0;font-size:.8125rem}.sidebar-user{border-top:1px solid #ffffff10;padding:19px 9px 0;display:flex;align-items:center;gap:10px}.avatar{height:36px;width:36px;border-radius:50%;background:#e9edf7;color:#5e7195;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.8125rem;font-weight:700}.sidebar .avatar{background:#304262;color:#e2e9fb}.sidebar-user strong{font-size:.875rem;color:#e1e8f6;font-weight:500}.sidebar-user small{display:block;color:#8f9fbd;font-size:.75rem}.sidebar-user .icon-btn{margin-left:auto;color:#91a3c1}.mobile-overlay{display:none}
.app-main{margin-left:var(--sidebar);min-height:100vh}.topbar{height:80px;border-bottom:1px solid var(--line);background:var(--surface);padding:0 36px;display:flex;align-items:center;justify-content:space-between;gap:16px}.breadcrumb{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.875rem}.breadcrumb strong{color:var(--text);font-weight:500}.top-actions{display:flex;align-items:center;gap:13px}.top-separator{height:24px;width:1px;background:var(--line);margin:0 3px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:var(--muted);flex-shrink:0}.icon-btn:hover{background:var(--primary-soft);color:var(--primary)}.mobile-menu{display:none}.company-select{display:flex;align-items:center;gap:8px}.company-glyph{width:26px;height:26px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;border-radius:6px}.plain-select{border:0;background:transparent;color:var(--text);padding:7px 18px 7px 0;font-size:.875rem;max-width:185px;cursor:pointer}.page{max-width:1740px;margin:auto;padding:34px 36px 24px;animation:appear .25s ease}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}.page-heading p{font-size:.9375rem;color:var(--muted);margin-top:8px}.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:1.6px;color:var(--muted);text-transform:uppercase;margin-bottom:7px}.heading-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 16px;border:1px solid var(--line);background:var(--surface);border-radius:8px;font-size:.875rem;font-weight:600;line-height:1.4;transition:background .16s,transform .16s;white-space:nowrap}.btn:hover{background:var(--surface-2);border-color:#becae0}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 3px 7px #3565ea15}.btn.primary:hover{filter:brightness(1.06)}html[data-mode="dark"] .btn.primary{color:#101e36}.btn.small{min-height:34px;padding:7px 11px;font-size:.8125rem}.btn.danger{background:var(--red-soft);color:var(--red);border-color:transparent}.text-link{font-size:.8125rem;font-weight:600;color:var(--primary);display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.text-link:hover{text-decoration:underline}.period-select{padding:10px 13px;border-radius:8px;border:1px solid var(--line);background:var(--surface);font-size:.875rem;color:var(--text);min-height:42px}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:5px;font-size:.75rem;font-weight:600;white-space:nowrap;line-height:1.5}.badge.blue{background:var(--primary-soft)}.badge.green{background:var(--green-soft)}.badge.amber{background:var(--amber-soft)}.badge.red{background:var(--red-soft)}.badge.purple{background:color-mix(in srgb,var(--purple) 12%,transparent);color:var(--purple)}.demo-badge{border:1px solid var(--line);font-size:.75rem;border-radius:5px;padding:4px 9px;color:var(--muted)}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:24px}.metric{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;position:relative;overflow:hidden}.metric-label{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:.875rem}.metric-icon{height:32px;width:32px;background:var(--primary-soft);color:var(--primary);border-radius:8px;display:grid;place-items:center}.metric:nth-child(2) .metric-icon{background:var(--green-soft);color:var(--green)}.metric:nth-child(3) .metric-icon{background:var(--amber-soft);color:var(--amber)}.metric:nth-child(4) .metric-icon{background:color-mix(in srgb,var(--purple) 12%,transparent);color:var(--purple)}.metric .number{font-size:2rem;line-height:1.35;font-weight:800;letter-spacing:-1px;margin-top:12px;white-space:nowrap}.metric .number.money{font-size:1.8rem}.metric-note{margin-top:10px;font-size:.75rem;color:var(--muted);display:flex;align-items:center;gap:5px}.metric-note strong{color:var(--green);font-weight:600}.panel{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:22px 24px 15px}.panel-head p{font-size:.8125rem;color:var(--muted);margin-top:4px}.panel-body{padding:6px 24px 24px}.analytics-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(310px,1fr);gap:24px;margin-bottom:24px}.lower-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(310px,1fr);gap:24px}.legend{display:flex;align-items:center;gap:15px;color:var(--muted);font-size:.75rem}.legend span{display:flex;align-items:center;gap:6px}.legend i{height:7px;width:7px;border-radius:2px;background:var(--primary)}.legend i.light{background:#cbd8ff}.chart{position:relative;height:204px;display:flex;gap:14px;padding:12px 3px 0}.chart-y{width:46px;flex-shrink:0;display:flex;flex-direction:column;justify-content:space-between;font-size:.75rem;color:var(--muted);padding-bottom:30px;text-align:right}.chart-plot{display:flex;flex:1;align-items:end;gap:clamp(12px,3vw,40px);position:relative;min-width:0;padding:0 10px 30px;background:repeating-linear-gradient(to top,transparent 0,transparent calc(25% - 1px),var(--line) calc(25% - 1px),var(--line) 25%);background-size:100% calc(100% - 30px);background-repeat:no-repeat}.chart-col{height:100%;display:flex;align-items:end;gap:5px;flex:1;position:relative;justify-content:center}.chart-bar{width:36%;max-width:35px;background:#dce5fe;border-radius:4px 4px 0 0;position:relative;min-height:3px}.chart-bar.actual{background:#7797f5}.chart-col:last-child .chart-bar.actual{background:var(--primary)}.chart-label{position:absolute;bottom:-27px;color:var(--muted);font-size:.75rem}.chart-bar:hover{filter:brightness(.92)}.chart-note{border-top:1px solid var(--line);padding:13px 24px;font-size:.75rem;color:var(--muted);display:flex;align-items:center;gap:7px}.donut-layout{display:flex;align-items:center;justify-content:center;gap:30px;padding:6px 0 18px}.donut{width:156px;height:156px;border-radius:50%;position:relative;display:grid;place-items:center;flex-shrink:0}.donut:before{content:"";position:absolute;inset:19px;border-radius:50%;background:var(--surface)}.donut-label{z-index:1;text-align:center}.donut-label strong{font-family:Manrope,sans-serif;font-size:1.45rem;font-weight:800;letter-spacing:-.5px}.donut-label small{display:block;color:var(--muted);font-size:.75rem}.company-breakdown{display:flex;flex-direction:column;gap:14px}.company-breakdown .row{font-size:.8125rem}.color-square{height:8px;width:8px;border-radius:2px;flex-shrink:0}.company-breakdown strong{display:block;padding-left:18px;font-weight:650;margin-top:3px}.composition-list{display:flex;flex-direction:column;gap:13px;padding-top:6px}.composition-row{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem}.composition-row .muted{font-size:.75rem}.progress{width:100%;height:5px;border-radius:9px;background:var(--line);overflow:hidden}.progress span{display:block;height:100%;background:var(--primary);border-radius:9px}.project-symbol{width:37px;height:37px;display:grid;place-items:center;border-radius:9px;font-family:Manrope,sans-serif;font-weight:800;font-size:.875rem;background:var(--primary-soft);color:var(--primary);flex-shrink:0}.project-name{font-size:.875rem;font-weight:600;display:block;white-space:normal}.project-meta{font-size:.75rem;color:var(--muted);margin-top:3px;display:block}.project-name:hover{color:var(--primary)}.table-wrap{overflow:auto;scrollbar-width:thin;max-width:100%}table{border-collapse:collapse;width:100%;text-align:left;font-size:.875rem;font-variant-numeric:tabular-nums}th{background:var(--surface-2);color:var(--muted);font-size:.75rem;font-weight:500;padding:12px 22px;white-space:nowrap;border-block:1px solid var(--line)}td{padding:16px 22px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:0}tbody tr:hover{background:var(--surface-2)}.table-wrap .compact td{padding:13px 18px}.table-wrap .compact th{padding:12px 18px}.table-footer{padding:14px 22px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.75rem;color:var(--muted)}.closing-card{padding:23px 24px}.closing-top{display:flex;justify-content:space-between;align-items:center}.closing-score{font-family:Manrope,sans-serif;font-size:2.1rem;letter-spacing:-1px;font-weight:800;margin:16px 0 10px}.closing-score small{font-size:.8125rem;font-weight:400;letter-spacing:0;color:var(--muted)}.checklist{margin:18px 0 22px;display:flex;flex-direction:column;gap:15px}.checklist-item{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.8125rem}.checklist-item .row{gap:9px}.checklist-item .muted{font-size:.75rem}.footer{font-size:.75rem;color:var(--muted);display:flex;justify-content:space-between;gap:10px;margin-top:26px}.footer span{display:flex;align-items:center;gap:6px}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px;border-bottom:1px solid var(--line);flex-wrap:wrap}.toolbar-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:9px 12px;color:var(--muted);min-width:240px}.search input{background:none;border:0;color:var(--text);outline:0;width:100%;font-size:.875rem;min-width:0}.search:focus-within{border-color:var(--primary)}.filter-select{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:9px 12px;font-size:.875rem;min-height:41px}.tabs{display:flex;gap:25px;border-bottom:1px solid var(--line);margin:0 0 22px;overflow:auto;scrollbar-width:none}.tab{padding:13px 1px;font-size:.875rem;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}.tab.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.tab:hover{color:var(--primary)}.pills{display:flex;gap:5px;background:var(--surface-2);padding:4px;border:1px solid var(--line);border-radius:9px;flex-wrap:wrap}.pill{border-radius:6px;padding:6px 12px;font-size:.8125rem;color:var(--muted)}.pill.active{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #0e244c12;font-weight:600}.contract-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.contract-card{padding:23px;display:flex;flex-direction:column;position:relative;transition:box-shadow .2s,border-color .2s}.contract-card:hover{border-color:#b8c9f6;box-shadow:0 8px 28px #1b366b0a}.contract-card h2{font-size:1.08rem;line-height:1.55;margin:18px 0 5px;min-height:3.3em}.contract-card .project-symbol{height:44px;width:44px}.contract-card .location{display:flex;gap:5px;align-items:center;font-size:.8125rem;color:var(--muted)}.contract-details{display:flex;justify-content:space-between;gap:15px;padding:21px 0;font-size:.8125rem}.contract-details strong{display:block;font-size:1rem;font-weight:650;margin-top:4px}.contract-foot{border-top:1px solid var(--line);padding-top:16px;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}.avatar-pile{display:flex;padding-left:5px}.avatar-pile .avatar{height:27px;width:27px;font-size:.75rem;margin-left:-5px;border:2px solid var(--surface)}.empty{padding:62px 20px;text-align:center;color:var(--muted);font-size:.875rem}.empty svg{margin:0 auto 15px;display:block;color:var(--primary)}.empty h3{color:var(--text);margin-bottom:7px}.back-link{display:inline-flex;align-items:center;gap:7px;font-size:.8125rem;color:var(--muted);margin-bottom:16px}.detail-banner{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:24px}.detail-banner h1{font-size:1.65rem}.detail-banner .project-symbol{width:56px;height:56px;font-size:1.1rem}.detail-meta{display:flex;align-items:center;gap:18px;margin-top:7px;color:var(--muted);font-size:.8125rem;flex-wrap:wrap}.detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:24px 0}.mini-stat{padding:18px 22px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.mini-stat span{font-size:.8125rem;color:var(--muted)}.mini-stat strong{display:block;font-family:Manrope,sans-serif;font-size:1.4rem;font-weight:800;margin-top:6px}.calendar-table{white-space:nowrap;border-collapse:separate;border-spacing:0;font-size:.8125rem}.calendar-table th,.calendar-table td{padding:0;border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:center;min-width:44px;height:43px}.calendar-table th{font-size:.75rem;padding:9px 4px;line-height:1.5}.calendar-table th:first-child,.calendar-table td:first-child{position:sticky;left:0;z-index:2;background:var(--surface);min-width:228px;text-align:left;padding:13px 18px;border-right:1px solid var(--line)}.calendar-table thead th:first-child{background:var(--surface-2);z-index:3}.calendar-table .weekend{background:var(--surface-2);color:var(--muted)}.calendar-table th small{display:block;font-size:.75rem;font-weight:400}.day-cell{width:100%;min-height:42px;font-size:.75rem;color:var(--primary);padding:4px}.day-cell:hover{background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}.day-cell.partial{color:var(--amber);background:var(--amber-soft)}.day-cell.absent{color:var(--red);background:var(--red-soft)}.allocation{height:29px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;margin:4px 0;border-radius:3px;background:var(--primary-soft);color:var(--primary)}.allocation.alencar{background:var(--green-soft);color:var(--green)}.allocation.leenne{background:var(--amber-soft);color:var(--amber)}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.report-card .panel-body{padding-top:15px}.money-list{display:flex;flex-direction:column;gap:16px;margin:10px 0 22px}.money-list .row{font-size:.875rem;justify-content:space-between}.report-total{padding-top:18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-weight:700;font-size:1rem}.audit-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.audit-card{display:flex;align-items:center;gap:13px;padding:18px 22px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.audit-card strong{font-family:Manrope,sans-serif;display:block;font-weight:800;font-size:1.6rem}.audit-card small{font-size:.8125rem;color:var(--muted)}
dialog{width:min(610px,calc(100% - 30px));max-height:90dvh;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:18px;padding:0;box-shadow:0 30px 100px #06152f50;overflow:auto}dialog::backdrop{background:#0a18396b;backdrop-filter:blur(4px)}.modal-head{display:flex;justify-content:space-between;align-items:start;padding:24px 27px 20px;border-bottom:1px solid var(--line);gap:15px}.modal-head h2{font-size:1.3rem}.modal-head p{color:var(--muted);font-size:.875rem;margin-top:6px}.modal-body{padding:24px 27px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:7px;font-size:.875rem;font-weight:500}.field.wide{grid-column:1/-1}.field input,.field select,.field textarea{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:8px;min-height:43px;padding:10px 12px;max-width:100%;width:100%;font-size:.875rem}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}.field small{color:var(--muted);font-weight:400;font-size:.75rem}.field input[type=checkbox]{width:16px;min-height:16px;accent-color:var(--primary)}.check-field{display:flex;align-items:center;gap:8px;font-size:.875rem;color:var(--muted)}.check-field input{accent-color:var(--primary);width:16px;height:16px}.modal-foot{display:flex;justify-content:flex-end;align-items:center;gap:10px;border-top:1px solid var(--line);padding:18px 27px;background:var(--surface-2)}.form-note{font-size:.75rem;color:var(--muted);display:flex;gap:6px;margin-top:21px;line-height:1.6}.inline-info{border:1px solid var(--line);background:var(--surface-2);border-radius:9px;padding:14px 16px;font-size:.8125rem;color:var(--muted);margin:17px 0}.error-message{color:var(--red);font-size:.8125rem;margin-top:14px}.holiday-row{display:flex;justify-content:space-between;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0;font-size:.875rem}.user-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.user-info-grid dt{color:var(--muted);font-size:.8125rem;margin-bottom:4px}.user-info-grid dd{margin:0;font-size:.9375rem}.login-page{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr;background:var(--surface)}.login-story{background:var(--nav);color:white;display:flex;flex-direction:column;justify-content:space-between;padding:54px 11%;position:relative;overflow:hidden}.login-story:after{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff04 1px,transparent 1px),linear-gradient(90deg,#ffffff04 1px,transparent 1px);background-size:64px 64px;pointer-events:none}.login-story>*{position:relative;z-index:1}.login-story .brand{padding:0}.login-story h1{font-size:3rem;letter-spacing:-2px;line-height:1.2;max-width:470px;margin:60px 0 22px}.login-story h1 span{color:#82a7ff}.login-story p{color:#99acca;font-size:1rem;max-width:360px}.login-story-footer{font-size:.8125rem;color:#8fa1be;margin-top:60px}.login-preview{margin-top:40px;border:1px solid #ffffff16;background:#1b2b44;max-width:360px;border-radius:12px;padding:20px}.login-preview .row{justify-content:space-between;color:#b6c5de;font-size:.8125rem}.login-preview strong{display:block;font-family:Manrope,sans-serif;font-size:2rem;margin:8px 0 15px;color:white}.login-form-side{display:flex;align-items:center;justify-content:center;padding:40px}.login-form{width:100%;max-width:370px}.login-form h2{font-size:1.7rem;letter-spacing:-.7px;margin:14px 0 8px}.login-form>p{color:var(--muted);font-size:.9375rem;margin-bottom:28px}.login-form .field{margin:18px 0}.login-company-grid{display:flex;gap:8px}.login-company{flex:1;border:1px solid var(--line);border-radius:9px;padding:12px 8px;color:var(--muted);font-size:.8125rem}.login-company.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.password-wrap{position:relative}.password-wrap input{padding-right:45px}.password-wrap .icon-btn{position:absolute;right:5px;top:4px}.login-form .btn.full{margin-top:22px}.login-form .login-note{font-size:.75rem;line-height:1.7;margin-top:20px;text-align:center;color:var(--muted)}#toast{position:fixed;bottom:25px;left:calc(50% + var(--sidebar)/2);transform:translate(-50%,20px);padding:14px 20px;background:var(--text);color:var(--surface);border-radius:10px;font-size:.875rem;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.2s;z-index:100;max-width:calc(100vw - 30px)}#toast.show{opacity:1;transform:translate(-50%,0)}@keyframes appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.page{padding:40px 45px}.topbar{padding-inline:45px}.metric{padding:24px 26px}.chart{height:230px}}
@media(max-width:1240px){:root{--sidebar:220px}.sidebar{padding-inline:13px}.page{padding:28px 25px}.topbar{padding-inline:25px}.analytics-grid,.lower-grid{grid-template-columns:minmax(0,1.55fr) minmax(285px,1fr);gap:18px}.metric{padding:17px 16px}.metric .number{font-size:1.8rem}.metric .number.money{font-size:1.5rem}.metric-label{font-size:.8125rem}.metrics{gap:13px}.panel-head{padding:20px 20px 15px}.panel-body{padding:5px 20px 22px}.donut-layout{gap:15px}.donut{width:135px;height:135px}.donut:before{inset:16px}.contract-grid{grid-template-columns:repeat(2,1fr)}.breadcrumb>span:first-child{display:none}.breadcrumb>svg:first-of-type{display:none}.audit-card{padding:15px;gap:10px}.audit-card small{font-size:.75rem}.heading-actions{gap:7px}.closing-card{padding:22px 20px}td,th{padding-inline:16px}.login-story{padding-inline:10%}}
@media(max-width:1000px){.analytics-grid,.lower-grid{grid-template-columns:1fr}.composition-list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.donut-layout{justify-content:space-around;gap:30px}.donut{width:150px;height:150px}.company-breakdown{flex:1;max-width:260px}.report-grid{grid-template-columns:1fr}.page-heading{align-items:flex-start}.heading-actions{flex-wrap:wrap;justify-content:flex-end}.closing-card .checklist{display:grid;grid-template-columns:1fr 1fr}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric .number{font-size:2rem}.metric .number.money{font-size:1.8rem}.audit-counts{grid-template-columns:repeat(2,1fr)}.topbar{height:72px}.top-actions{gap:8px}.company-select{display:none}.login-story h1{font-size:2.5rem}.detail-banner{align-items:flex-start}.detail-banner h1{font-size:1.4rem}.detail-meta{gap:9px}.contract-grid{gap:16px}}
@media(max-width:760px){:root{--sidebar:0px}.sidebar{width:248px;transform:translateX(-100%);transition:transform .22s}.nav-open .sidebar{transform:translateX(0)}.nav-open .mobile-overlay{display:block;position:fixed;inset:0;background:#07152d77;z-index:25}.mobile-menu{display:flex}.topbar{padding-inline:18px;height:66px}.top-actions .top-separator,.top-actions .demo-badge{display:none}.breadcrumb{gap:8px}.page{padding:25px 18px}.page-heading{flex-direction:column;gap:18px;margin-bottom:24px}.page-heading h1{font-size:1.8rem}.heading-actions{width:100%;justify-content:flex-start}.heading-actions .btn.primary{margin-left:auto}.metric{padding:17px}.metric .number{font-size:1.8rem}.metric .number.money{font-size:1.45rem}.metric-label{font-size:.8125rem;gap:6px}.metric-icon{height:28px;width:28px}.metric-note{font-size:.75rem;line-height:1.5}.metrics{gap:12px;margin-bottom:18px}.analytics-grid,.lower-grid{gap:18px;margin-bottom:18px}.panel-head{padding:19px 18px 12px}.panel-body{padding:4px 18px 20px}.panel-head h2{font-size:1rem}.chart{height:205px;gap:7px}.chart-plot{gap:12px;padding-inline:3px}.chart-y{width:42px}.legend{gap:10px}.composition-list{display:flex;gap:14px}.contract-grid{grid-template-columns:1fr}.contract-card h2{min-height:0}.toolbar{padding:16px;align-items:stretch}.toolbar-group{width:100%}.search{min-width:0;flex:1}.filter-select{max-width:100%;flex:1}.contract-card{padding:22px}.footer{flex-direction:column;font-size:.75rem}.tabs{gap:22px}.detail-banner{flex-direction:column;gap:20px}.detail-banner .project-symbol{height:47px;width:47px}.detail-banner h1{font-size:1.25rem}.detail-stats{gap:10px;grid-template-columns:1fr 1fr}.detail-stats .mini-stat:last-child{grid-column:1/-1}.mini-stat{padding:15px}.table-footer{font-size:.75rem;flex-wrap:wrap}.audit-counts{gap:12px}.audit-card{padding:14px}.audit-card strong{font-size:1.45rem}.closing-card .checklist{display:flex}.calendar-table th:first-child,.calendar-table td:first-child{min-width:183px;padding-inline:12px}.calendar-table .project-name{font-size:.8125rem;max-width:170px}.form-grid{gap:16px}.modal-head,.modal-body{padding:22px}.modal-foot{padding:17px 22px}.login-page{grid-template-columns:1fr}.login-story{display:none}.login-form-side{padding:45px 24px;min-height:100dvh}.login-form{max-width:390px}.login-form .brand{color:var(--text);margin-bottom:30px;padding:0}.login-form .brand-sub{color:var(--muted)}.login-mobile-brand{display:block}.user-info-grid{grid-template-columns:1fr}.chart-note{padding-inline:18px}.report-grid{gap:18px}}
@media(min-width:761px){.login-mobile-brand{display:none}}
@media(max-width:420px){.metric{padding:14px}.metric-label{font-size:.75rem}.metric-icon{width:25px;height:25px}.metric .number.money{font-size:1.3rem}.metric-note{font-size:.75rem;gap:3px}.metric-note svg{display:none}.heading-actions .btn{padding:10px 12px}.period-select{padding-inline:8px;max-width:175px}.topbar .avatar{display:none}.panel-head .legend{display:none}.form-grid{grid-template-columns:1fr}.form-grid .field{grid-column:1/-1}.donut-layout{gap:20px}.donut{width:130px;height:130px}.donut-label strong{font-size:1.3rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.sidebar,.topbar,.heading-actions,.toolbar,.tabs,.footer,.btn,.icon-btn,.back-link,.skip-link,#toast,.mobile-overlay{display:none!important}.app-main{margin:0}.page{padding:0;max-width:none}.panel,.metric{break-inside:avoid;box-shadow:none}.table-wrap{overflow:visible}.calendar-table{font-size:7px}.calendar-table th,.calendar-table td{min-width:15px!important}.calendar-table th:first-child,.calendar-table td:first-child{position:static;min-width:120px!important}.badge{border:1px solid #ddd}body{background:white;color:#18253c}html[data-mode=dark]{--surface:white;--surface-2:#f9fafc;--text:#18253c;--muted:#6d7a91;--line:#e8edf5}.page-heading{margin-bottom:20px}dialog{display:none}}

/* Readable operational labels and mobile workspace controls. */
.badge{font-size:.8125rem}.allocation{font-size:.75rem}.year-select{width:58px}.period-select{max-width:none}.sidebar-company{display:none;margin:24px 12px 0;font-size:.75rem;color:#95a6c2;flex-direction:column;gap:8px}.sidebar-company .filter-select{background:#192c48;border-color:#ffffff15;color:#dce5f7;font-size:.8125rem}.sidebar-company .filter-select option{background:#192c48}.calendar-table th small{font-size:.75rem}
@media(max-width:1000px){.sidebar-company{display:flex}.sidebar-company+.workspace-label{margin-top:22px}}

/* Employee costs: contract overview, comparison table and composition drawer. */
.cost-stat-link{text-align:left;border-color:color-mix(in srgb,var(--primary) 25%,var(--line));background:var(--primary-soft)}
.cost-stat-link>span{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--primary)}
.cost-stat-link strong{color:var(--primary)}.cost-stat-link small{display:block;margin-top:7px;font-size:.8125rem;color:var(--muted)}
.cost-title-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.cost-title-row h2{font-size:1.4rem;letter-spacing:-.5px}.cost-title-row p{font-size:.875rem;color:var(--muted);margin-top:5px}.cost-title-row .eyebrow{font-size:.75rem}
.cost-summary{display:grid;grid-template-columns:minmax(270px,1fr) minmax(0,1.85fr);gap:20px;margin-bottom:24px}
.cost-total-card{background:#1c418f;color:#fff;border-radius:14px;padding:24px;display:flex;flex-direction:column;justify-content:space-between;min-width:0}.cost-total-card>.row>span{font-size:.875rem;color:#d9e5ff}.cost-grand-total{font-family:Manrope,sans-serif;font-size:2.1rem;line-height:1.35;letter-spacing:-1px;display:block;margin:14px 0 5px;white-space:nowrap}.cost-total-meta{font-size:.8125rem;color:#bfcef0}.cost-total-footer{border-top:1px solid #ffffff20;margin-top:23px;padding-top:14px;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:.8125rem;color:#d9e5ff}.cost-total-footer strong{font-size:.9375rem;color:#fff}
.cost-composition-card{padding:24px;border:1px solid var(--line);background:var(--surface);border-radius:14px;display:flex;flex-direction:column;justify-content:space-between}.cost-composition-card h3{font-size:1rem}.cost-period-caption{font-size:.75rem;color:var(--muted);white-space:nowrap}.cost-composition{display:flex;width:100%;height:10px;gap:4px;overflow:hidden;border-radius:5px;background:var(--surface-2);margin:24px 0}.cost-composition>span{display:block;min-width:0;border-radius:3px}.cost-group-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.cost-group-label{display:flex;gap:7px;align-items:center;color:var(--muted);font-size:.875rem}.cost-group-label i,.cost-detail-group h3 i{height:8px;width:8px;border-radius:2px;flex-shrink:0}.cost-group-totals strong{display:block;font-family:Manrope,sans-serif;font-weight:800;font-size:1.2rem;white-space:nowrap;margin:7px 0 3px;letter-spacing:-.4px}.cost-group-totals small{font-size:.75rem;color:var(--muted)}
.cost-filters{padding:20px 22px;display:flex;flex-direction:column;gap:14px}.cost-filter-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.cost-filter-row .search{flex:1;min-width:210px}.cost-filter-row>.filter-select{max-width:220px;min-width:160px}.cost-dates{display:flex;align-items:center;gap:15px;color:var(--muted);font-size:.875rem;flex-wrap:wrap}.cost-dates label{display:flex;align-items:center;gap:8px;font-size:.8125rem}.cost-dates input{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:7px;padding:7px 8px;max-width:150px;font-size:.8125rem;min-height:36px}
.cost-table{font-size:.875rem;table-layout:auto}.cost-table th{font-size:.8125rem;padding:14px 16px}.cost-table td{padding:18px 16px}.cost-table .cost-person{min-width:220px}.cost-person .project-name{font-size:.875rem;text-align:left;padding:0;line-height:1.5}.cost-person .avatar{width:34px;height:34px;font-size:.75rem}.cost-person .project-meta{font-size:.75rem}.cost-hours{white-space:nowrap}.cost-hours strong{font-weight:600}.cost-hours small{font-size:.75rem;color:var(--muted);display:block;margin-top:4px}.cost-part{white-space:nowrap}.cost-table .cost-total-column{background:var(--primary-soft);border-left:1px solid var(--line);min-width:155px}.cost-value-button{display:flex;flex-direction:column;align-items:flex-end;gap:5px;padding:0;width:100%;text-align:right}.cost-value-button strong{font-family:Manrope,sans-serif;font-weight:800;white-space:nowrap;color:var(--primary);font-size:1rem}.cost-value-button>span{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:.75rem;white-space:nowrap}.cost-value-button:hover strong{text-decoration:underline}.cost-table tfoot td{border-top:2px solid var(--line);background:var(--surface-2);font-weight:700;font-size:.875rem;white-space:nowrap}.cost-table tfoot .cost-total-column{color:var(--primary);background:var(--primary-soft)}.cost-no-hours{display:block;color:var(--amber);font-size:.75rem;margin-top:3px}
.cost-context{display:flex;align-items:flex-start;justify-content:space-between;gap:25px;margin-top:17px}.cost-context p{font-size:.8125rem;color:var(--muted);line-height:1.7;max-width:760px;display:flex;gap:8px}.cost-context p svg{margin-top:3px}.cost-context .btn{flex-shrink:0}.calendar-table .calendar-cost-col{position:sticky;right:0;z-index:3;min-width:148px;background:var(--primary-soft);border-left:1px solid var(--line);box-shadow:-5px 0 12px #15274608}.calendar-table thead .calendar-cost-col{z-index:4;font-size:.8125rem;color:var(--primary)}.calendar-table .calendar-cost-col small{font-size:.75rem;font-weight:400;color:var(--muted)}.calendar-cost-button{width:100%;padding:8px 12px;color:var(--primary);font-weight:700;font-size:.875rem;white-space:nowrap}.calendar-cost-button small{display:block;line-height:1.5;margin-top:4px}.calendar-cost-button:hover{text-decoration:underline}
dialog.cost-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(590px,100vw);max-width:100vw;max-height:100dvh;height:100dvh;border-radius:18px 0 0 18px;border:0;border-left:1px solid var(--line)}.cost-drawer .modal-head{position:sticky;top:0;background:var(--surface);z-index:5;padding:24px 28px 20px}.cost-drawer .modal-head p{font-size:.8125rem}.cost-drawer .modal-body{padding:24px 28px}.cost-drawer .modal-foot{position:sticky;bottom:0;z-index:5;background:var(--surface);padding:14px 28px}.cost-drawer-person{display:flex;gap:13px;align-items:center;margin-bottom:24px}.cost-drawer-person h3{font-size:1.05rem}.cost-drawer-person p{font-size:.8125rem;color:var(--muted);margin-top:4px}.cost-drawer-total{border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line));background:var(--primary-soft);border-radius:12px;padding:22px}.cost-drawer-total>span{display:block;font-size:.875rem;color:var(--primary)}.cost-drawer-total>strong{display:block;font-family:Manrope,sans-serif;font-size:2.35rem;font-weight:800;letter-spacing:-1px;margin-top:6px;color:var(--primary)}.cost-drawer-total>small{color:var(--muted);font-size:.8125rem}.cost-drawer-total .cost-composition{height:7px;margin:20px 0}.cost-drawer-stats{display:grid;grid-template-columns:1fr .75fr 1.4fr;gap:15px}.cost-drawer-stats span{display:block;color:var(--muted);font-size:.75rem}.cost-drawer-stats strong{display:block;margin-top:5px;font-size:.9375rem;font-weight:600}.cost-detail-group{margin-top:26px}.cost-detail-group h3{display:flex;align-items:center;gap:8px;font-size:.9375rem;border-bottom:1px solid var(--line);padding-bottom:13px}.cost-detail-group h3>strong{margin-left:auto;font-size:.9375rem;font-weight:700}.cost-detail-line{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:11px 0;border-bottom:1px solid var(--line);font-size:.875rem}.cost-detail-line:last-child{border-bottom:0}.cost-detail-line>div{min-width:0}.cost-detail-line span{display:block}.cost-detail-line small{display:block;margin-top:3px;color:var(--muted);font-size:.75rem;line-height:1.5}.cost-detail-line>strong{white-space:nowrap;font-weight:600;font-size:.875rem}.cost-final-total{margin-top:22px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 0;border-block:1px solid var(--line);font-size:.9375rem;font-weight:600}.cost-final-total strong{font-family:Manrope,sans-serif;color:var(--primary);font-size:1.3rem;font-weight:800}.cost-drawer-actions{margin-top:18px}.cost-drawer-actions .btn{width:100%}.cost-advanced{border:1px solid var(--line);border-radius:9px;padding:15px;margin-top:24px}.cost-advanced summary{font-size:.875rem;cursor:pointer;font-weight:600}.cost-advanced .form-grid{margin-top:18px}.cost-advanced p{margin-top:15px;font-size:.8125rem;color:var(--muted)}.cost-method h3{margin-top:20px;font-size:.9375rem}.cost-method h3:first-child{margin-top:0}.cost-method p{margin-top:8px;font-size:.875rem;line-height:1.7;color:var(--muted)}
@media(max-width:1240px){.cost-summary{grid-template-columns:minmax(245px,1fr) minmax(0,1.8fr);gap:18px}.cost-grand-total{font-size:1.9rem}.cost-group-totals{gap:12px}.cost-group-label{font-size:.8125rem}.cost-group-totals strong{font-size:1.06rem}.cost-composition-card>.row{flex-wrap:wrap}.cost-table th,.cost-table td{padding-inline:13px}.cost-table .cost-person{min-width:200px}.cost-context{flex-direction:column;gap:13px}}
@media(max-width:1000px){.cost-summary{grid-template-columns:1fr}.cost-total-card{padding:22px}.cost-total-footer{margin-top:16px}.cost-grand-total{font-size:2.2rem}.cost-composition-card{padding:22px}.cost-title-row{align-items:flex-start;flex-wrap:wrap}.cost-group-totals strong{font-size:1.2rem}.cost-group-label{font-size:.875rem}.cost-filters{padding:18px}.cost-dates{gap:10px}}
@media(max-width:760px){.cost-title-row h2{font-size:1.25rem}.cost-title-row{gap:15px}.cost-summary{gap:15px;margin-bottom:18px}.cost-total-card{padding:21px}.cost-grand-total{font-size:2.15rem}.cost-composition-card{padding:20px}.cost-group-totals{grid-template-columns:1fr;gap:13px}.cost-group-totals>div{display:grid;grid-template-columns:1fr auto;gap:4px 15px;align-items:center}.cost-group-totals strong{font-size:1.1rem;margin:0;text-align:right}.cost-group-totals small{grid-column:2;text-align:right}.cost-group-label{font-size:.875rem}.cost-composition{margin:21px 0}.cost-filter-row{gap:10px}.cost-filter-row>.filter-select{flex:1;max-width:none;min-width:0;font-size:.8125rem}.cost-filter-row .search{min-width:100%}.cost-dates{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}.cost-dates>span{grid-column:1/-1}.cost-dates label{flex-direction:column;align-items:flex-start;gap:5px}.cost-dates input{width:100%;max-width:none;font-size:.8125rem}.cost-dates .text-link{grid-column:1/-1;margin:2px 0 5px}.cost-filter-row>.btn{width:100%}.cost-table-panel{overflow:hidden}.cost-table-panel .table-wrap{overflow:visible}.cost-table,.cost-table tbody,.cost-table tfoot{display:block}.cost-table thead{display:none}.cost-table tbody{padding:0 14px}.cost-table tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:10px 15px;border:1px solid var(--line);border-radius:11px;padding:16px;margin:0 0 14px;background:var(--surface)}.cost-table tbody td{display:block;border:0;padding:0;text-align:left;min-width:0}.cost-table .cost-person{grid-column:1/-1;min-width:0;padding-bottom:12px;border-bottom:1px solid var(--line)}.cost-person .project-name{font-size:.9375rem;line-height:1.5}.cost-person .project-meta{font-size:.8125rem}.cost-table .cost-hours{grid-column:1/-1;display:flex;align-items:center;gap:8px;font-size:.8125rem}.cost-table .cost-hours:before{content:attr(data-label);margin-right:auto;color:var(--muted)}.cost-hours small{display:inline;margin:0;font-size:.8125rem}.cost-part:before{content:attr(data-label);display:block;font-size:.75rem;color:var(--muted);margin-bottom:4px}.cost-table .cost-part{font-size:.875rem;line-height:1.6}.cost-table tbody .cost-total-column{grid-column:1/-1;background:var(--primary-soft);border:0;border-radius:7px;padding:12px;min-width:0}.cost-table tbody .cost-total-column:before{content:'Custo no contrato';display:block;font-size:.75rem;color:var(--muted);margin-bottom:6px}.cost-value-button{flex-direction:row;align-items:center;justify-content:space-between;text-align:left;gap:8px}.cost-value-button strong{font-size:1.08rem}.cost-table tfoot tr{display:grid;grid-template-columns:1fr 1fr;padding:15px 18px;gap:12px;background:var(--primary-soft)}.cost-table tfoot td{display:none;border:0!important;padding:0;background:transparent!important}.cost-table tfoot td:first-child,.cost-table tfoot td:last-child{display:block;min-width:0;white-space:normal;font-size:.9375rem}.cost-table .cost-total-column{min-width:0}.cost-table-panel .table-footer{padding:15px 18px;line-height:1.6;gap:5px}.cost-context{gap:13px}.cost-context p{font-size:.8125rem}.cost-context .btn{width:100%}.calendar-table.has-costs th:first-child,.calendar-table.has-costs td:first-child{min-width:155px;max-width:155px}.calendar-table.has-costs .project-name{max-width:130px;white-space:normal}.calendar-table.has-costs .project-meta{max-width:130px;white-space:normal}.calendar-table .calendar-cost-col{min-width:127px}.calendar-cost-button{padding:8px;font-size:.8125rem}.calendar-table thead .calendar-cost-col{font-size:.75rem}.cost-drawer .modal-head{padding:21px}.cost-drawer .modal-body{padding:20px}.cost-drawer .modal-foot{padding:13px 20px}.cost-drawer-person h3{font-size:1rem}.cost-drawer-total{padding:19px}.cost-drawer-total>strong{font-size:2.1rem}.cost-detail-line{gap:14px}.cost-detail-group h3{font-size:.875rem}.cost-detail-line span,.cost-detail-line>strong{font-size:.875rem}.cost-drawer-stats{gap:10px}.cost-title-row>.period-select{width:100%;justify-content:space-between}}
@media print{.cost-filters,.cost-context,.cost-drawer-actions,.cost-stat-link small{display:none!important}.cost-summary{grid-template-columns:1fr 1.8fr}.cost-total-card{background:#edf2ff!important;color:#18253c!important}.cost-total-card *{color:#18253c!important}.cost-composition{print-color-adjust:exact}.cost-table-panel .table-wrap{overflow:visible}.cost-table{font-size:9px;table-layout:fixed}.cost-table th,.cost-table td{padding:8px 5px!important;font-size:9px!important;min-width:0!important}.cost-table .project-name,.cost-value-button strong{font-size:10px!important}.cost-table .avatar{display:none}.cost-table .project-meta,.cost-value-button>span{font-size:8px!important}.cost-table tbody tr{break-inside:avoid}}

.cost-grand-total,.cost-drawer-total>strong,.cost-group-totals strong{white-space:normal;overflow-wrap:anywhere}



select option { background: var(--surface); color: var(--text); }
