:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#090c0b;--panel:#121613;--panel-strong:#171a14;--border:#303632;--text:#f1efe8;--muted:#aaa69e;--accent:#c89a2f;--accent-soft:#c89a2f26;--green:#83bd87;--red:#e47c8d;--orange:#ff8a45}*{box-sizing:border-box}body{background:linear-gradient(#ffffff09 1px, transparent 1px), linear-gradient(90deg, #ffffff09 1px, transparent 1px), var(--bg);color:var(--text);background-size:38px 38px;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.landing-page,.auth-gate{min-height:100vh;color:var(--text);background:radial-gradient(circle at 50% 100%,#c89a2f2e,#0000 36%),#090c0b}.landing-topbar{justify-content:space-between;align-items:center;gap:18px;width:min(1180px,100% - 32px);min-height:68px;margin:0 auto;display:flex}.landing-brand{font-size:18px;font-weight:900}.landing-login-button{color:#0a0c0b;cursor:pointer;background:#f4bd2f;border:1px solid #ffcd4a99;border-radius:8px;min-height:40px;padding:0 18px;font-weight:900}.landing-login-button:disabled{cursor:progress;opacity:.7}.landing-hero{text-align:center;align-content:start;gap:18px;width:min(1180px,100% - 32px);min-height:calc(100vh - 68px);margin:0 auto;padding:12px 0 48px;display:grid}.eyebrow{color:#f4bd2f;text-transform:uppercase;letter-spacing:0;margin:0;font-weight:900}.landing-hero h1{margin:0;font-size:clamp(42px,8vw,82px);font-weight:950;line-height:.98}.landing-subtitle,.landing-tagline,.auth-gate-panel p,.login-modal p{color:var(--muted);margin:0}.landing-subtitle{font-size:20px}.landing-capabilities{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:8px;display:grid}.landing-capability{text-align:left;background:#121613c2;border:1px solid #c89a2f47;border-radius:8px;align-content:center;gap:4px;min-height:72px;padding:10px;display:grid}.landing-capability strong,.landing-capability span{overflow-wrap:anywhere}.landing-capability span{color:var(--muted);font-size:13px}.landing-dashboard-preview{text-align:left;background:linear-gradient(#151a16,#0d1110);border:1px solid #c89a2f66;border-radius:8px;min-height:420px;padding:16px;box-shadow:0 24px 80px #0000005c}.preview-toolbar{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.preview-toolbar span,.preview-metric,.preview-lane{border:1px solid var(--border);background:#090c0ba8;border-radius:8px}.preview-toolbar span{min-height:30px;color:var(--muted);align-items:center;padding:0 10px;font-size:13px;font-weight:800;display:inline-flex}.landing-dashboard-preview h2{margin:0 0 14px;font-size:22px}.preview-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.preview-metric{align-content:center;gap:6px;min-height:92px;padding:12px;display:grid}.preview-metric span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:900}.preview-metric strong{font-size:24px}.preview-lanes{grid-template-columns:1.4fr 1fr 1fr;gap:10px;margin-top:10px;display:grid}.preview-lane{min-height:130px}.preview-lane.wide{min-height:160px}.landing-tagline{color:var(--text);font-size:24px;font-weight:900}.landing-carousel{gap:12px;display:grid}.landing-carousel-frame{aspect-ratio:16/9;background:#121613;border:1px solid #c89a2f6b;border-radius:8px;min-height:0;position:relative;overflow:hidden;box-shadow:0 24px 80px #0000005c}.landing-carousel-frame img{object-fit:cover;width:100%;height:100%;display:block}.carousel-arrow{color:#0a0c0b;cursor:pointer;background:#f4bd2feb;border:1px solid #ffcd4ab3;border-radius:999px;width:44px;height:44px;font-size:32px;font-weight:900;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.carousel-arrow.prev{left:14px}.carousel-arrow.next{right:14px}.landing-carousel-meta{text-align:left;gap:4px;min-height:58px;display:grid}.landing-carousel-meta h2{margin:0;font-size:22px}.landing-carousel-meta p{color:var(--muted);margin:0}.landing-carousel-tabs{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.carousel-tab{border:1px solid var(--border);min-height:40px;color:var(--muted);cursor:pointer;background:#121613c2;border-radius:8px;padding:0 8px;font-size:12px;font-weight:900}.carousel-tab.active{background:var(--accent-soft);color:var(--text);border-color:#c89a2fbf}.auth-gate{place-items:center;padding:24px;display:grid}.auth-gate-panel{border:1px solid var(--border);background:var(--panel);border-radius:8px;gap:14px;width:min(480px,100%);padding:24px;display:grid}.login-modal-backdrop{z-index:30;background:#000000a3;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.login-modal{border:1px solid var(--border);background:#121613;border-radius:8px;gap:14px;width:min(460px,100%);padding:24px;display:grid;position:relative}.login-close-button{border:1px solid var(--border);width:34px;height:34px;color:var(--text);cursor:pointer;background:0 0;border-radius:8px;font-size:24px;line-height:1;position:absolute;top:10px;right:10px}.login-form{gap:12px;display:grid}.login-form label{color:var(--muted);gap:6px;font-weight:800;display:grid}.login-form input{border:1px solid var(--border);min-height:44px;color:var(--text);background:#090c0b;border-radius:8px;padding:0 12px}.login-status{color:var(--green)}.login-error{color:var(--red)}button,input,select{font:inherit}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.project-controls-app{width:min(100%,1720px);min-height:100vh;margin:0 auto;padding:0 18px 24px;overflow-x:hidden}.platform-bar{border-bottom:1px solid var(--border);align-items:center;gap:12px;min-height:58px;padding:10px 0;display:flex}.project-selector,.nav-button,.updated-pill,.user-chip,.tab,.period-button,.period-label,.action-button,.form-actions button{border:1px solid var(--border);color:var(--muted);background:#090c0bdb;border-radius:8px;justify-content:center;align-items:center;min-height:36px;font-weight:800;display:inline-flex}.project-selector{color:var(--text);max-width:320px;padding:0 12px}.app-nav{flex-wrap:wrap;flex:1;gap:8px;display:flex}.nav-button{cursor:pointer;white-space:nowrap;height:36px;padding:0 12px;font-family:inherit;font-size:14px;font-weight:800;line-height:1}.nav-button.active,.tab.active{color:var(--text);background:var(--accent-soft);border-color:#c89a2fbf}.updated-pill{color:var(--text);background:var(--accent-soft);border-color:#c89a2fa6;padding:0 14px}.user-chip{color:var(--text);border-radius:999px;gap:8px;padding:0 14px 0 5px}.user-menu{position:relative}.user-menu>summary{cursor:pointer;list-style:none}.user-menu>summary::-webkit-details-marker{display:none}.user-menu-panel{z-index:5;border:1px solid var(--border);background:var(--panel-strong);border-radius:8px;width:150px;padding:6px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 16px 32px #0000004d}.user-menu-panel button{width:100%;min-height:34px;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;justify-content:flex-start;font-weight:800}.user-menu-panel button:hover{background:var(--accent-soft)}.avatar{background:var(--accent);color:#0a0c0b;border-radius:999px;place-items:center;width:29px;height:29px;font-weight:900;display:inline-grid}.app-content{padding-top:14px}.hero,.panel,.card{border:1px solid var(--border);background:var(--panel);border-radius:8px}.hero{padding:16px 22px}h1,h2,h3{letter-spacing:0;margin:0}.hero h1{font-size:24px;font-weight:900;line-height:1.08}.period-row,.daily-report-controls{justify-content:space-between;align-items:center;gap:20px;margin:18px 0 12px;display:flex}.daily-report-controls-left{align-items:center;gap:18px;min-width:0;display:flex}.period-control{align-items:center;gap:10px;display:flex}.period-control.standalone{justify-content:flex-end;margin:16px 0}.period-button{width:42px;color:var(--text);cursor:pointer;font-size:24px}.period-label{min-width:280px;color:var(--text);padding:0 18px}.tabs{border:1px solid var(--border);border-radius:8px;display:inline-grid;overflow:hidden}.period-tabs{grid-template-columns:repeat(3,104px)}.daily-report-view-tabs{grid-template-columns:repeat(2,112px)}.section-tabs,.project-data-tabs{grid-template-columns:repeat(auto-fit,minmax(128px,1fr));width:100%;margin:14px 0}.stock-tabs{grid-template-columns:repeat(2,minmax(120px,1fr));width:min(320px,100%);margin:14px 0}.works-tabs,.cost-category-tabs{flex-wrap:nowrap;width:100%;margin:14px 0;display:flex;overflow-x:auto}.works-tabs .tab,.cost-category-tabs .tab{white-space:nowrap;flex:none;min-width:160px}.tab{border:0;border-right:1px solid var(--border);cursor:pointer;border-radius:0;padding:0 10px}.row-expand-button{color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.detail-row>td{background:#ffffff06;padding:0}.detail-table{border:0;width:100%}.detail-table th,.detail-table td{padding:10px 18px;font-size:13px}.tab:last-child{border-right:0}.grid{gap:12px;display:grid}.overview{grid-template-columns:repeat(4,minmax(0,1fr))}.categories{grid-template-columns:repeat(7,minmax(0,1fr));margin-top:12px}.dashboard-page .categories{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}.dashboard-page .categories .card{min-height:104px;padding:10px}.dashboard-page .categories .card-label{font-size:10px;line-height:1.2}.dashboard-page .categories .card-value{margin-top:12px;font-size:clamp(17px,1.15vw,22px)}.dashboard-page .categories .card-note{margin-top:8px;font-size:11px;line-height:1.25}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.card{min-height:128px;padding:16px}.card-label{color:var(--muted);text-transform:uppercase;font-size:13px;font-weight:900}.card-value{margin-top:18px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:clamp(24px,1.9vw,32px);font-weight:900;line-height:1}.card-note{color:var(--muted);margin-top:12px;font-size:13px}.card-note.green{color:var(--green)}.card-note.red{color:var(--red)}.card-note.orange{color:var(--orange)}.panel{margin-top:14px;overflow:hidden}.nested-panel,.modal-preview{margin-top:0}.modal-backdrop{z-index:50;background:#0000009e;place-items:start center;padding:64px 16px;display:grid;position:fixed;inset:0;overflow:auto}.modal-preview{width:min(760px,100%);box-shadow:0 24px 60px #00000073}.panel-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;min-height:58px;padding:14px 18px;display:flex}.panel-head h1,.panel-head h2{font-size:24px;font-weight:900;line-height:1.08}.result-grid{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.result-head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.result-mode{grid-template-columns:repeat(2,82px)}.result-mode .tab{min-height:30px;font-size:13px}.result-cell{border-right:1px solid var(--border);padding:14px 18px}.result-cell:last-child{border-right:0}.result-cell strong{margin-top:10px;font-size:24px;display:block}.result-cell.strong{border-top:2px solid var(--accent);background:#c89a2f1a}.result-panel .panel-head h2{font-size:20px}.result-cell.negative strong{color:var(--red)}.result-cell.positive strong{color:var(--green)}.dashboard-visuals{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1.2fr);gap:12px;margin-top:12px;display:grid}.visual-panel{min-height:148px;margin-top:0;padding:14px 16px}.visual-panel h2{color:var(--muted);text-transform:uppercase;margin-bottom:14px;font-size:13px;font-weight:900}.progress-row{gap:7px;margin-bottom:14px;display:grid}.progress-row>div:first-child{color:var(--muted);justify-content:space-between;align-items:baseline;gap:12px;font-size:13px;font-weight:800;display:flex}.progress-row strong{color:var(--text)}.progress-track,.bridge-track,.mix-bar{border:1px solid var(--border);background:#090c0bb8;border-radius:999px;overflow:hidden}.progress-track{height:11px}.progress-track i,.bridge-fill,.mix-segment{height:100%;display:block}.progress-track .green,.bridge-fill.green,.mix-segment.green,.mix-dot.green{background:var(--green)}.progress-track .orange,.bridge-fill.orange,.mix-segment.orange,.mix-dot.orange{background:var(--orange)}.bridge-fill.red,.mix-segment.red,.mix-dot.red{background:var(--red)}.mix-segment.accent,.mix-dot.accent{background:var(--accent)}.mix-segment.fuel,.mix-dot.fuel{background:#8bb8d8}.mix-segment.overheads,.mix-dot.overheads{background:#9a7f4f}.mix-segment.other,.mix-dot.other{background:#77736a}.mix-segment.muted,.mix-dot.muted{background:var(--muted)}.mix-bar{height:16px;display:flex}.mix-legend{color:var(--muted);flex-wrap:wrap;gap:8px 12px;margin-top:13px;font-size:12px;font-weight:800;display:flex}.mix-legend span{align-items:center;gap:6px;display:inline-flex}.mix-dot{border-radius:999px;width:8px;height:8px}.bridge-bars{gap:8px;display:grid}.bridge-row{color:var(--muted);grid-template-columns:78px minmax(0,1fr) 112px;align-items:center;gap:10px;font-size:12px;font-weight:900;display:grid}.bridge-track{height:10px;position:relative}.bridge-result-fill{position:absolute;top:0;bottom:0}.bridge-zero-line{z-index:1;background:#eee6d4b8;border-radius:999px;width:2px;position:absolute;top:-3px;bottom:-3px;left:50%;transform:translate(-50%)}.bridge-row strong{color:var(--text);text-align:right}.summary-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px 18px;display:grid}.summary-box{border:1px solid var(--border);background:#090c0b80;border-radius:8px;gap:6px;padding:10px 12px;display:grid}.summary-box span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:900}.summary-box strong{font-size:20px}.green{color:var(--green)}.negative{color:var(--red)}.log-grid,.settings-grid{gap:14px;padding:14px;display:grid}.table-wrap{width:100%;overflow-x:hidden}table{border-collapse:collapse;table-layout:fixed;width:100%}th,td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;text-overflow:ellipsis;overflow-wrap:normal;word-break:normal;border-right:1px solid #303632b8;height:42px;padding:9px 12px;overflow:hidden}th:last-child,td:last-child{border-right:0}th{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:900;line-height:1.2}.total-row td{color:var(--text);background:#c89a2f1a;border-bottom-color:#c89a2f8c;font-weight:900}.total-row .col-actions{background:#252315}.num{text-align:right}col.col-position,.col-position{width:76px}col.col-unit,.col-unit{width:70px}col.col-id,.col-id{width:100px}col.col-project-id,.col-project-id{width:180px}col.col-code,.col-code{width:132px}col.col-date,.col-date{width:128px}col.col-datetime,.col-datetime{width:176px}col.col-quantity,.col-quantity{width:92px}col.col-money,.col-money,col.col-actions,.col-actions{width:132px}.col-actions{z-index:1;background:var(--panel);position:sticky;right:0}col.col-text,.col-text{width:auto}.col-text{white-space:normal;overflow-wrap:break-word;min-width:260px}.project-data-boq col.col-position,.project-data-boq .col-position{width:90px}.project-data-boq col.col-text,.project-data-boq .col-text{width:auto;min-width:520px}.project-data-boq col.col-unit,.project-data-boq .col-unit{width:76px}.project-data-boq col.col-quantity,.project-data-boq .col-quantity{width:108px}.project-data-boq col.col-money,.project-data-boq .col-money{width:150px}.project-data-boq col.col-actions,.project-data-boq .col-actions{width:156px}.budget-unit{color:var(--gold)}td.col-position,td.col-unit,td.col-id,td.col-project-id,td.col-code,td.col-date,td.col-datetime,td.col-quantity,td.col-money{white-space:nowrap}.movement-chip{border:1px solid var(--border);min-height:24px;color:var(--text);border-radius:999px;align-items:center;padding:0 9px;font-size:12px;font-weight:900;display:inline-flex}.movement-chip.received{color:var(--green);background:#83bd871f;border-color:#83bd8780}.movement-chip.consumed{color:var(--orange);background:#ff8a451f;border-color:#ff8a4580}.forma2-estimate{background:#ffffff06}.forma2-previous{background:#aaa69e14}.forma2-current{background:#c89a2f21}.forma2-total{background:#83bd871a}.forma2-remaining{background:#ff8a451a}.works-budget{background:#83bd871a}.works-value{background:#c89a2f21}.works-actual{background:#ff8a451a}.works-variance{background:#ffffff06}.muted{color:var(--muted)}.action-button,.form-actions button,.settings-card button{min-height:34px;color:var(--text);cursor:pointer;padding:0 12px}.project-data-actions{justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.icon-action-button{border:1px solid var(--border);width:36px;min-height:34px;color:var(--text);cursor:pointer;background:#090c0bdb;border-radius:8px;place-items:center;display:inline-grid}.icon-action-button:disabled{cursor:wait;opacity:.6}.inline-status{color:var(--muted);white-space:nowrap;font-size:13px;font-weight:800}.inline-status.success{color:var(--green)}.inline-status.error{color:var(--red);text-overflow:ellipsis;max-width:520px;overflow:hidden}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.form-grid{gap:12px;padding:14px;display:grid}.form-grid label{color:var(--muted);gap:6px;font-weight:800;display:grid}.form-grid input,.form-grid select,.settings-card input,.settings-card select{border:1px solid var(--border);min-height:40px;color:var(--text);background:#090c0b;border-radius:8px;padding:0 12px}.form-actions{justify-content:flex-end;gap:10px;padding:0 14px 14px;display:flex}.form-error{color:var(--red);margin:0 14px 14px;font-weight:800}.row-actions,.preview-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row-actions{flex-wrap:nowrap}.preview-summary{color:var(--text);font-weight:800}.row-actions button,.preview-actions button{border:1px solid var(--border);min-height:26px;color:var(--text);cursor:pointer;white-space:nowrap;background:#090c0bdb;border-radius:7px;justify-content:center;padding:0 8px;font-size:12px;font-weight:800;line-height:1}.row-actions .danger{color:var(--red)}.row-actions button{min-width:32px;padding:0 7px}.stock-remaining{color:var(--green);background:#83bd8714}.stock-total-value{color:var(--accent);background:#c89a2f1a}.preview-actions{padding:14px}.settings-card{border:1px solid var(--border);background:var(--panel-strong);border-radius:8px;padding:14px}.settings-card label{color:var(--muted);gap:8px;margin-top:12px;font-weight:800;display:grid}.settings-actions{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.settings-separator{background:var(--border);border:0;height:1px;margin:18px 0 14px}.danger-button{color:var(--red);border-color:#e47c8dbf}@media (width<=980px){.landing-capabilities,.landing-carousel-tabs,.preview-metrics,.preview-lanes{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-bar{flex-wrap:wrap;align-items:flex-start}.app-nav{order:3;width:100%}.overview,.dashboard-visuals,.summary-grid,.categories{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1100px){.table-wrap{overflow-x:visible}table,thead,tbody,tr,th,td{width:100%;display:block}thead{display:none}tbody tr{border:1px solid var(--border);background:#121613d1;border-radius:8px;margin-bottom:10px;overflow:hidden}tbody tr.total-row{background:#c89a2f1a;border-color:#c89a2f8c}td{white-space:normal;height:auto;min-height:42px;text-overflow:initial;border-bottom:1px solid #303632bf;border-right:0;grid-template-columns:minmax(128px,34%) minmax(0,1fr);gap:12px;display:grid;overflow:visible}td:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:900}td:last-child{border-bottom:0}td.num{text-align:left}.col-position,.col-unit,.col-id,.col-project-id,.col-code,.col-date,.col-datetime,.col-quantity,.col-money,.col-actions,.col-text,.project-data-boq .col-position,.project-data-boq .col-unit,.project-data-boq .col-quantity,.project-data-boq .col-money,.project-data-boq .col-actions,.project-data-boq .col-text{width:100%;min-width:0;position:static}}@media (width<=680px){.landing-capabilities,.landing-carousel-tabs,.preview-metrics,.preview-lanes{grid-template-columns:1fr}.landing-hero{text-align:left}.landing-subtitle,.landing-tagline{font-size:18px}.project-controls-app{padding:0 10px 18px}.period-row{flex-direction:column;align-items:stretch}.app-nav{flex:1 0 100%;order:4;grid-template-columns:1fr;width:100%;padding-bottom:0;display:grid;overflow:visible}.project-selector,.updated-pill{flex:1 0 100%;justify-content:flex-start;width:100%}.user-menu{order:3;width:100%}.user-chip{justify-content:flex-start;width:100%}.nav-button{width:100%;min-width:0}.period-tabs{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;display:grid}.period-tabs .tab{min-width:0;padding:0 6px;font-size:13px}.period-control,.period-control.standalone{grid-template-columns:38px minmax(0,1fr) 38px;justify-content:stretch;gap:6px;width:100%;display:grid}.period-button{width:100%;min-width:0;padding:0}.period-label{flex:1;width:100%;min-width:0;padding:0 8px}.overview,.dashboard-visuals,.categories,.summary-grid,.result-grid{grid-template-columns:1fr}.result-cell{border-right:0;border-bottom:1px solid var(--border)}.hero{padding:14px 16px}}
