:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#18212b;background:#eef1f4;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-width:320px;background:#eef1f4}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;display:flex;flex-direction:column;padding:22px 16px 18px;background:#17212b;color:#f6f8fa;border-right:1px solid #273440}.brand{display:flex;align-items:center;gap:12px;padding:2px 6px 22px}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:#f2f5f7;color:#17212b;font-size:21px;font-weight:800}.brand strong{display:block;font-size:18px;letter-spacing:-.02em}.brand small{display:block;margin-top:1px;color:#93a2b0;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.project-current{margin:3px 4px 20px;padding:13px 12px;border:1px solid #344451;border-radius:9px;background:#1e2a35}.project-current strong,.project-current span{display:block}.project-current strong{font-size:13px;letter-spacing:.05em}.project-current span{margin-top:3px;color:#aeb9c3;font-size:12px;line-height:1.35}.project-select{width:calc(100% - 8px);margin:3px 4px 20px;padding:11px 10px;color:#f6f8fa;background:#1e2a35;border:1px solid #344451;border-radius:9px}.sidebar nav{display:flex;flex-direction:column;gap:3px}.sidebar nav button{width:100%;padding:10px 12px;text-align:left;color:#b8c3cc;background:transparent;border:0;border-radius:7px;transition:background .12s ease,color .12s ease}.sidebar nav button:hover{color:#fff;background:#202e3a}.sidebar nav button.active{color:#fff;background:#2a3946;font-weight:650}.sidebar-footer{margin-top:auto;padding:16px 5px 0;border-top:1px solid #2c3944}.sidebar-footer span{display:block;overflow:hidden;margin-bottom:10px;color:#91a0ad;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.sidebar-footer button{width:100%;padding:8px 10px;color:#c6d0d8;background:transparent;border:1px solid #3b4954;border-radius:7px}.sidebar-footer button:hover{color:#fff;border-color:#667784}.workspace{grid-column:2;min-width:0;padding:34px 40px 64px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;max-width:1440px;margin:0 auto 30px;padding-bottom:23px;border-bottom:1px solid #d4dae0}.page-header h1{margin:3px 0 5px;color:#15202a;font-size:32px;line-height:1.12;letter-spacing:-.035em}.page-header p:not(.eyebrow){margin:0;color:#6a7680;font-size:14px}.eyebrow{margin:0;color:#64727e;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.badge{flex:0 0 auto;padding:7px 11px;color:#4e5c67;background:#f7f9fa;border:1px solid #ccd4da;border-radius:999px;font-size:11px;font-weight:650}.kpi-grid{max-width:1440px;margin:0 auto 30px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.kpi-grid article{min-width:0;padding:17px 18px 18px;background:#fff;border:1px solid #d9dfe4;border-radius:9px}.kpi-grid span{display:block;margin-bottom:9px;color:#6b7781;font-size:12px}.kpi-grid strong{display:block;overflow:hidden;color:#17212b;font-size:20px;font-variant-numeric:tabular-nums;letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap}.content-section{max-width:1440px;margin:0 auto}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:13px}.section-heading h2{margin:0 0 3px;color:#1a252f;font-size:18px;letter-spacing:-.015em}.section-heading p{margin:0;color:#75808a;font-size:12px}.order-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.order-card{min-width:0;padding:18px;background:#fff;border:1px solid #d8dee3;border-radius:9px}.order-title{min-height:48px;display:flex;justify-content:space-between;align-items:flex-start;gap:15px;padding-bottom:14px}.order-title h3{margin:0;color:#17212b;font-size:20px;letter-spacing:-.025em}.order-title p{margin:3px 0 0;color:#75818b;font-size:11px}.order-title>span{padding:4px 7px;color:#4f6256;background:#edf3ef;border-radius:5px;font-size:10px;text-transform:uppercase;letter-spacing:.04em}dl{margin:0}dl div{display:flex;justify-content:space-between;align-items:baseline;gap:15px;padding:9px 0;border-top:1px solid #edf0f2}dt{color:#6e7a84;font-size:12px}dd{margin:0;color:#26313a;font-size:12px;font-weight:650;font-variant-numeric:tabular-nums;text-align:right}.page-placeholder,.empty-state{max-width:1440px;margin:0 auto;padding:30px;background:#fff;border:1px solid #d9dfe4;border-radius:9px}.page-placeholder h1{margin:5px 0 8px;font-size:30px;letter-spacing:-.03em}.page-placeholder p:last-child,.empty-state{color:#6f7b85}.error{max-width:1440px;margin:0 auto 20px;padding:12px 14px;color:#7c2d2d;background:#fff2f2;border:1px solid #e4c1c1;border-radius:8px}.app-loading{min-height:100vh;display:grid;place-items:center;color:#697680}.login-page{min-height:100vh;display:grid;place-items:center;padding:25px;background:#17212b}.login-card{width:min(410px,100%);padding:34px;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003}.login-card h1{margin:5px 0 7px;font-size:38px;letter-spacing:-.04em}.login-card>p:not(.eyebrow){margin:0 0 25px;color:#6b7781;font-size:13px}.login-card form{display:grid;gap:15px}.login-card label{display:grid;gap:6px;color:#47535d;font-size:12px;font-weight:600}.login-card input{width:100%;padding:10px 11px;color:#17212b;background:#fff;border:1px solid #cbd3d9;border-radius:7px;outline:none}.login-card input:focus{border-color:#6b7d8b;box-shadow:0 0 0 3px #4b60701a}.login-card form button{margin-top:3px;padding:11px 14px;color:#fff;background:#17212b;border:0;border-radius:7px;font-weight:650}.login-card form button:disabled{opacity:.55;cursor:wait}.login-card .error{margin-top:16px}@media(max-width:1050px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.order-grid{grid-template-columns:1fr}}@media(max-width:760px){.app-shell{display:block}.sidebar{position:static;width:100%;min-height:auto}.sidebar nav{display:grid;grid-template-columns:repeat(2,1fr)}.sidebar-footer{margin-top:20px}.workspace{padding:25px 18px 45px}.page-header{display:block}.page-header .badge{display:inline-block;margin-top:15px}.kpi-grid{grid-template-columns:1fr}}.toolbar,.statement-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px}.toolbar button,.statement-filters button{padding:7px 12px;color:#58656f;background:#fff;border:1px solid #d2d9de;border-radius:6px;font-size:12px;font-weight:600}.toolbar button:hover,.statement-filters button:hover{color:#17212b;border-color:#aeb9c1}.toolbar button.active,.statement-filters button.active{color:#fff;background:#253541;border-color:#253541}.table-wrap{overflow-x:auto;background:#fff;border:1px solid #d8dee3;border-radius:9px}.data-table{width:100%;min-width:1080px;border-collapse:collapse;font-size:12px}.data-table th,.data-table td{padding:10px 12px;border-bottom:1px solid #e8ecef;white-space:nowrap}.data-table th{color:#64717b;background:#f7f9fa;font-size:10px;font-weight:700;text-align:left;text-transform:uppercase;letter-spacing:.055em}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#f8fafb}.data-table .numeric{text-align:right;font-variant-numeric:tabular-nums}.data-table .strong{color:#17212b;font-weight:700}.status-pill{display:inline-block;padding:4px 7px;color:#58656f;background:#edf1f3;border-radius:5px;font-size:10px;font-weight:700;text-transform:uppercase}.status-pill.closed{color:#456051;background:#eaf2ed}.status-pill.open{color:#7a5b25;background:#faf1df}@media(max-width:760px){.toolbar,.statement-toolbar{align-items:flex-start;flex-direction:column}}.clickable-row{cursor:pointer}.clickable-row:hover td{background:#ffffff8c}.back-button{border:0;background:transparent;padding:0;margin:0 0 18px;font:inherit;font-weight:700;cursor:pointer}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:20px}.section-heading h2{margin:4px 0 0}.financial-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.financial-card{padding:18px;border:1px solid #d9e0e5;border-radius:10px;background:#fff}.financial-card span,.detail-grid span{display:block;margin-bottom:8px;font-size:.78rem;font-weight:700;text-transform:uppercase;opacity:.65}.financial-card strong{font-size:1.15rem}.financial-card.strong{border-width:2px}.financial-card.strong strong{font-size:1.3rem}.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.detail-grid>div{padding:16px;border:1px solid #d9e0e5;border-radius:10px;background:#fff}.module-placeholder{padding:28px;border:1px dashed #c5ced5;border-radius:10px;text-align:center;opacity:.7}@media(max-width:1100px){.financial-grid,.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.selected-row td{background:#0000000f!important}.measurement-detail-section{margin-top:24px}.detail-close-button{border:1px solid #c5ced5;border-radius:8px;background:#fff;padding:8px 14px;font:inherit;font-weight:700;cursor:pointer}.detail-close-button:hover{background:#0000000a}.measurement-detail-table td{vertical-align:top}.measurement-detail-table th:first-child,.measurement-detail-table td:first-child{width:60px}.factor-cell{white-space:normal;min-width:180px}.raw-source{margin-top:6px;font-size:.8rem;opacity:.7}.raw-source summary{cursor:pointer}.raw-source code{display:block;margin-top:6px;white-space:normal}.measurement-drawer-backdrop{position:fixed;inset:0;z-index:90;background:#0f172a1f}.measurement-drawer{position:fixed;top:0;right:0;bottom:0;z-index:100;width:min(900px,55vw);min-width:680px;display:flex;flex-direction:column;background:#f7f9fb;border-left:1px solid #d8e0e7;box-shadow:-12px 0 36px #0f172a29}.measurement-drawer-header{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:24px 28px 20px;background:#eef2f6;border-bottom:1px solid #d8e0e7}.measurement-drawer-header h2{margin:4px 0}.measurement-drawer-header p:last-child{margin-bottom:0}.measurement-drawer-close{flex:0 0 auto;width:42px;height:42px;display:flex;align-items:center;justify-content:center;border:1px solid #c5ced5;border-radius:9px;background:#fff;font:inherit;font-size:28px;line-height:1;cursor:pointer}.measurement-drawer-close:hover{background:#e9eef2}.measurement-drawer-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:20px 28px 32px}.measurement-drawer .table-wrap{overflow-x:auto;background:#fff;border:1px solid #d8e0e7;border-radius:10px}.measurement-drawer .measurement-detail-table{margin:0;min-width:760px}.measurement-drawer .measurement-detail-table thead th{position:sticky;top:0;z-index:2;background:#f2f5f7}.measurement-drawer .measurement-detail-table td{vertical-align:top}.measurement-drawer .measurement-detail-table th:first-child,.measurement-drawer .measurement-detail-table td:first-child{width:55px}.measurement-drawer .factor-cell{min-width:180px;white-space:normal}.measurement-drawer .raw-source{margin-top:7px;font-size:.8rem;opacity:.72}.measurement-drawer .raw-source summary{cursor:pointer}.measurement-drawer .raw-source code{display:block;margin-top:6px;white-space:normal}@media(max-width:1000px){.measurement-drawer{width:100%;min-width:0}.measurement-drawer-header,.measurement-drawer-body{padding-left:18px;padding-right:18px}}.price-cell{min-width:250px}.price-cell strong{display:block;white-space:nowrap}.price-description{display:block;margin-top:4px;max-width:360px;font-size:.78rem;line-height:1.25;opacity:.68;white-space:normal}.revision-flow{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(180px,1fr) auto minmax(180px,1fr);gap:14px;align-items:stretch}.revision-flow-item{display:flex;flex-direction:column;gap:8px;padding:18px;background:var(--surface, #fff);border:1px solid var(--border);border-radius:12px}.revision-flow-item span,.revision-definitive-grid span{font-size:.8rem;opacity:.68}.revision-flow-item strong{font-size:1.15rem}.revision-flow-operator{display:flex;align-items:center;justify-content:center;font-size:1.35rem;font-weight:700;opacity:.5}.revision-flow-result{border-width:2px}.revision-definitive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.revision-definitive-grid>div{display:flex;flex-direction:column;gap:6px;padding:14px 18px;background:var(--surface, #fff);border:1px solid var(--border);border-radius:12px}.revision-adjustment-note{display:flex;flex-direction:column;gap:5px;margin-top:14px;padding:14px 18px;background:var(--surface, #fff);border:1px solid var(--border);border-radius:12px}.revision-adjustment-note span{font-size:.82rem;line-height:1.4;opacity:.72}@media(max-width:900px){.revision-flow{grid-template-columns:1fr}.revision-flow-operator{min-height:20px}.revision-definitive-grid{grid-template-columns:1fr}}.advance-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}.advance-summary>div,.advance-flow-item{display:flex;flex-direction:column;gap:8px;padding:18px;background:var(--surface, #fff);border:1px solid var(--border);border-radius:12px}.advance-summary span,.advance-flow-item span{font-size:.8rem;opacity:.68}.advance-summary strong,.advance-flow-item strong{font-size:1.15rem}.advance-flow{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(180px,1fr) auto minmax(180px,1fr);gap:14px;align-items:stretch}.advance-flow-operator{display:flex;align-items:center;justify-content:center;font-size:1.35rem;font-weight:700;opacity:.5}.advance-flow-result{border-width:2px}.advance-note,.advance-none{display:flex;flex-direction:column;gap:5px;margin-top:14px;padding:14px 18px;background:var(--surface, #fff);border:1px solid var(--border);border-radius:12px}.advance-note span,.advance-none{font-size:.82rem;line-height:1.4}.advance-note span{opacity:.72}@media(max-width:900px){.advance-summary,.advance-flow{grid-template-columns:1fr}.advance-flow-operator{min-height:20px}}.certificate-breakdown{width:min(680px,100%);margin-top:1.25rem;padding:1.1rem 1.4rem;background:#fff;border:1px solid #d8dee6;border-radius:14px}.certificate-breakdown-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:baseline;padding:.38rem 0;font-size:1rem}.certificate-breakdown-row span{min-width:0}.certificate-breakdown-row strong{min-width:150px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.certificate-secondary{color:#68717d;font-size:.92rem}.certificate-total{margin-top:.55rem;padding-top:.8rem;border-top:1px solid #b8c0ca;font-size:1.05rem}.certificate-total strong{font-size:1.1rem}.certificate-payment-separator{margin-top:1rem;padding-top:.8rem;border-top:1px dashed #c7cdd5;color:#68717d;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.certificate-payable{margin-top:.55rem;padding-top:.8rem;border-top:2px solid #1f2937;font-size:1.08rem}.certificate-payable span,.certificate-payable strong{font-weight:750}.certificate-payable strong{font-size:1.18rem}@media(max-width:640px){.certificate-breakdown{padding:1rem}.certificate-breakdown-row{gap:1rem}.certificate-breakdown-row strong{min-width:125px}}.contract-grid{max-width:1440px;margin:0 auto 30px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.contract-card{min-width:0;padding:18px;background:#fff;border:1px solid #d8dee3;border-radius:9px}.contract-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:13px}.contract-card-header h2{margin:0;font-size:22px;letter-spacing:-.025em}.contract-card-header p{margin:3px 0 0;color:#75818b;font-size:11px}.contract-card-header>strong{font-size:18px;font-variant-numeric:tabular-nums}.contract-progress{height:6px;margin-top:14px;overflow:hidden;background:#e8edf0;border-radius:999px}.contract-progress span{display:block;height:100%;background:#526b7b;border-radius:inherit}.contract-prices{margin-top:30px}.contract-toolbar{display:grid;grid-template-columns:150px minmax(260px,1fr);gap:10px;margin-bottom:13px}.contract-toolbar select,.contract-toolbar input{min-width:0;padding:9px 11px;color:#25313a;background:#fff;border:1px solid #d2d9de;border-radius:7px;outline:none}.contract-toolbar input:focus,.contract-toolbar select:focus{border-color:#8b99a4}.contract-filters{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:6px}.contract-filters button{padding:7px 10px;color:#58656f;background:#fff;border:1px solid #d2d9de;border-radius:6px;font-size:11px;font-weight:650}.contract-filters button:hover{border-color:#aeb9c1}.contract-filters button.active{color:#fff;background:#253541;border-color:#253541}.contract-price-table{min-width:1320px}.price-status{display:inline-block;padding:4px 7px;color:#58656f;background:#edf1f3;border-radius:5px;font-size:10px;font-weight:700;white-space:nowrap}.price-status.quantity_overrun{color:#8a3c31;background:#f8e9e6}.price-status.outside_contract{color:#67528a;background:#f0ebf7}.price-status.zero_initial_quantity_used{color:#7a5b25;background:#faf1df}.price-status.used{color:#456051;background:#eaf2ed}.contract-empty{padding:28px!important;color:#75808a;text-align:center}@media(max-width:1050px){.contract-grid{grid-template-columns:1fr}}@media(max-width:760px){.contract-toolbar{grid-template-columns:1fr}.contract-filters{grid-column:auto}}.contract-pending dt,.contract-pending dd{color:#7a5b25}.contract-total-measured{border-top-color:#c9d1d7}.contract-total-measured dt,.contract-total-measured dd{color:#17212b;font-weight:700}.contract-price-table{min-width:1580px}.dashboard-order-card{display:flex;flex-direction:column}.dashboard-consumption{color:#17212b;font-size:18px;font-variant-numeric:tabular-nums}.dashboard-pending dt,.dashboard-pending dd{color:#7a5b25}.dashboard-total dt,.dashboard-total dd{color:#17212b;font-weight:700}.dashboard-progress{margin-top:auto;transform:translateY(4px)}
