:root{--navy:#182c45;--yellow:#f9db38;--ink:#20334b;--muted:#65748a;--line:#dfe5ed;--bg:#f3f5f8;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #3b77b9;outline-offset:3px}button{border:0;background:none;color:inherit}button.primary,.primary{background:var(--yellow);color:var(--navy);border:1px solid var(--yellow);font-weight:700;padding:12px 19px;border-radius:7px}button.secondary{border:1px solid #bac6d4;background:white;padding:11px 17px;border-radius:7px;font-weight:600}button.text-button{font-weight:700;color:#245c94;padding:8px 0}.sidebar{background:var(--navy);color:#fff;position:fixed;width:240px;height:100vh;display:flex;flex-direction:column;padding:30px 20px;z-index:2}.brand{background:#fff;padding:15px 10px;border-radius:5px;display:flex;align-items:center;min-height:80px}.brand img{width:100%;height:auto}.workspace-label{color:#b1bfd0;font-size:12px;letter-spacing:1.7px;margin:38px 12px 14px}.nav{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:14px 12px;margin:4px 0;border-radius:6px;color:#c7d2e0;font-size:15px}.nav span{font-size:22px;line-height:1}.nav.active{color:#fff;background:#2b405b;border-left:3px solid var(--yellow);padding-left:9px}.nav:hover{background:#253a54}.sidebar-bottom{margin-top:auto;border-top:1px solid #425269;padding-top:23px;display:flex;gap:12px;align-items:center}.avatar{background:#f9db38;color:var(--navy);font-weight:bold;border-radius:50%;display:grid;place-items:center;min-width:42px;height:42px}.sidebar-bottom strong{font-size:14px}.sidebar-bottom small{display:block;color:#bac8d9;font-size:13px}.app{margin-left:240px}.demo-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 30px;background:#fff9d8;border-bottom:1px solid #eddda0;font-size:13px;color:#584a18}.demo-bar b{font-size:11px;letter-spacing:.6px}.demo-bar label{display:flex;gap:10px;align-items:center;white-space:nowrap}.demo-bar select{font-size:14px;padding:7px 10px;border:1px solid #d7c982;background:#fffdf2;border-radius:4px}main{max-width:1450px;margin:auto;padding:38px 40px 50px}.eyebrow{font-size:12px;letter-spacing:1.8px;color:var(--muted);font-weight:700;text-transform:uppercase;margin-bottom:7px}h1{font-size:32px;letter-spacing:-.8px;line-height:1.2;margin:0 0 10px}h2{font-size:20px;line-height:1.3;margin:0}h3{font-size:16px;margin:0 0 8px}p{margin:8px 0 16px}.muted{color:var(--muted)}.head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.head p{margin-bottom:0;color:var(--muted);font-size:15px}.actions{display:flex;gap:10px;align-items:center}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:30px}.stat{padding:23px 25px;background:#fff;border:1px solid var(--line);border-radius:9px}.stat span{display:block;font-size:14px;color:var(--muted)}.stat strong{font-size:30px;display:block;letter-spacing:-.7px;margin:7px 0}.stat small{font-size:13px;color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.panel-head{padding:23px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px}.filters{display:flex;gap:10px}.search{min-width:260px}.filters input,.filters select{padding:9px 12px;border:1px solid var(--line);border-radius:5px;background:white;font-size:14px}table{width:100%;border-collapse:collapse;text-align:left}th{background:#f8f9fc;font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:600;padding:14px 22px;border-bottom:1px solid var(--line)}td{padding:20px 22px;border-bottom:1px solid #ebeff4;font-size:14px}tr:last-child td{border-bottom:0}.table-wrap{overflow-x:auto}td strong{display:block;font-size:15px;margin-bottom:3px}td small{color:var(--muted);font-size:13px}.right{text-align:right}.money{white-space:nowrap;font-variant-numeric:tabular-nums}.badge{display:inline-block;border-radius:5px;padding:5px 9px;font-size:12px;font-weight:600;background:#eef2f6;color:#50627a}.badge.sent{color:#205b8e;background:#eaf2fb}.badge.accepted{color:#246a4d;background:#e7f4ed}.empty{text-align:center;padding:58px 25px;color:var(--muted)}.empty strong{display:block;font-size:20px;color:var(--ink);margin-bottom:9px}.notice{padding:15px 19px;background:#f0f4fa;border-left:3px solid #668bb4;font-size:14px;color:#4c627d;margin:20px 0}.tabs{display:flex;gap:2px;background:white;padding:0 15px;border:1px solid var(--line);border-radius:8px;margin-bottom:24px;overflow-x:auto}.tab{white-space:nowrap;padding:17px 14px;font-size:14px;border-bottom:3px solid transparent;color:var(--muted)}.tab.active{color:var(--navy);border-color:var(--yellow);font-weight:bold}.tab .step{font-size:12px;color:#78869a;margin-right:6px}.editor{display:grid;grid-template-columns:minmax(0,1fr) 275px;align-items:start;gap:23px}.summary{position:sticky;top:20px;background:var(--navy);color:white;padding:25px;border-radius:9px}.summary .eyebrow{color:#b8c7da}.big-total{font-size:32px;font-weight:700;letter-spacing:-1px;margin:17px 0 0;color:var(--yellow)}.summary .sub{font-size:13px;color:#b8c7da}.summary dl{border-top:1px solid #42556f;margin:22px 0;padding-top:12px}.summary dl div{display:flex;justify-content:space-between;gap:8px;font-size:14px;margin:12px 0}.summary dd{margin:0;white-space:nowrap}.summary .primary,.summary .secondary{width:100%;margin-top:9px}.summary .secondary{background:transparent;color:#fff;border-color:#60718a}.section-body{padding:25px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{display:flex;flex-direction:column;gap:7px;font-size:14px}.field input,.field select,.field textarea{width:100%;border:1px solid #ccd5e0;background:#fff;border-radius:5px;padding:11px 12px;font-size:16px;color:var(--ink)}.field textarea{min-height:110px;resize:vertical}.wide{grid-column:1/-1}.field small{color:var(--muted);font-size:13px}.required{color:#8c6500}.qty{width:76px;padding:9px 5px;text-align:center;background:#fffbed;border:1px solid #decf83;border-radius:5px;min-height:42px}.price-input{width:100px;border:1px solid #ccd5e0;padding:9px;border-radius:4px}.line-table td{padding:13px 17px}.line-table th{padding:13px 17px}.line-table .designation{min-width:200px}.line-table td small{display:block}.line-table tr.retained{background:#fffef6}.group-label{background:#eff3f8;padding:13px 18px;font-weight:700;font-size:14px;border-top:1px solid var(--line)}.total-row{display:flex;justify-content:space-between;padding:18px;background:#fff9d5;font-weight:700}.materials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.material{border:1px solid var(--line);border-radius:8px;overflow:hidden}.material img{display:block;width:100%;height:175px;object-fit:contain;padding:15px;background:white}.material-body{padding:15px;background:#f9fafc}.material-body p{font-size:14px;color:var(--muted)}.budget-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.budget-box{border:1px solid var(--line);padding:22px;border-radius:7px}.budget-box strong{display:block;font-size:25px;margin-top:12px}.budget-box small{font-size:13px;color:var(--muted)}.budget-box.highlight{background:#fff9d5;border-color:#ebd66a}.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.team-card{padding:23px;border:1px solid var(--line);background:#fff;border-radius:8px}.team-card .avatar{width:44px;margin-bottom:15px}.team-card p{color:var(--muted);font-size:14px}.spacer{height:20px}footer{max-width:1450px;margin:auto;padding:0 40px 25px;color:#718094;font-size:13px;display:flex;justify-content:space-between;gap:20px}dialog{max-width:520px;width:90%;border:1px solid var(--line);border-radius:12px;padding:28px;color:var(--ink);box-shadow:0 20px 80px #182c4530}dialog::backdrop{background:#13263b80}dialog p{white-space:pre-line;margin:20px 0}#toast{position:fixed;bottom:25px;right:25px;background:var(--navy);color:white;padding:14px 20px;border-radius:7px;box-shadow:0 8px 25px #182c4530;display:none;z-index:10;font-size:14px}#printArea{display:none}.back{display:inline-block;color:#647991;font-size:14px;margin-bottom:20px;padding:0}.chip{font-size:12px;padding:4px 8px;border:1px solid #cad5e0;border-radius:4px;color:var(--muted)}
@media(max-width:1150px){.sidebar{width:200px;padding:25px 14px}.app{margin-left:200px}main{padding:30px 24px}.editor{grid-template-columns:minmax(0,1fr)}.summary{position:static;display:block}.summary dl{display:flex;gap:25px;flex-wrap:wrap}.summary .primary,.summary .secondary{width:auto}.demo-bar{flex-direction:column;align-items:flex-start;padding:12px 24px}.team-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{position:static;width:100%;height:auto;flex-direction:row;align-items:center;padding:13px 18px;gap:15px;flex-wrap:wrap}.brand{max-width:150px;min-height:45px;padding:7px}.workspace-label,.sidebar-bottom{display:none}.sidebar nav{display:flex;gap:3px}.nav{width:auto;font-size:13px;padding:9px!important}.nav span{display:none}.app{margin:0}main{padding:25px 16px}.demo-bar{padding:10px 16px;font-size:12px}.demo-bar label{font-size:13px}.head{align-items:flex-start;flex-direction:column}h1{font-size:27px}.stats{grid-template-columns:1fr;gap:8px}.stat{padding:14px 18px;display:grid;grid-template-columns:1fr auto}.stat strong{grid-column:2;grid-row:1/3;margin:0}.stat small{grid-column:1}.panel-head{flex-direction:column;align-items:stretch;padding:18px}.filters{flex-wrap:wrap}.search{min-width:0;width:100%}.form-grid,.budget-grid,.team-grid{grid-template-columns:1fr}.section-body{padding:18px}.materials{grid-template-columns:1fr}.tab{padding:14px 10px}.actions{flex-wrap:wrap}footer{padding:0 16px 20px;flex-direction:column;gap:5px}}
@media print{@page{size:A4;margin:14mm}body{background:white;color:#182c45;font-size:10pt}.sidebar,.app,dialog,#toast{display:none!important}#printArea{display:block}.print-page{break-after:page}.print-page:last-child{break-after:auto}.print-head{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #f9db38;padding-bottom:15px;margin-bottom:25px}.print-head img{width:190px}.print-head p{text-align:right;font-size:9pt}#printArea h1{font-size:22pt}#printArea h2{margin:22px 0 12px;font-size:15pt}#printArea table{font-size:9pt}#printArea th,#printArea td{padding:9px;font-size:9pt}#printArea .total-row{margin-top:15px}.print-photo{display:block;height:300px;max-width:90%;object-fit:contain;margin:35px auto}.print-note{font-size:9pt;color:#61728a}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

[hidden]{display:none!important}

.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(140deg,#182c45 0 48%,#eef2f8 48% 100%)}
.login-card{background:white;border-radius:12px;box-shadow:0 18px 70px #13263b40;width:min(100%,440px);padding:38px;display:grid;gap:18px}
.login-card img{max-width:190px;height:auto;margin-bottom:10px}.login-card h1{margin:0}.login-card p{margin:0;color:var(--muted)}
.login-card form{display:grid;gap:18px}.login-card button.primary{width:100%}.login-card .login-error{color:#b02d30;font-size:14px}

@media print{
 .login-wrap{display:none!important}
 .print-document{display:block}
 .print-intro{margin:0 0 17px}
 #printArea .print-intro h1{margin:8px 0 3px;font-size:20pt}
 #printArea .print-intro h2{margin:0 0 7px;font-size:14pt}
 .print-intro p{margin:5px 0;font-size:9pt;color:#4c627d}
 .print-project{border-left:2px solid #f9db38;padding-left:10px;margin-top:12px!important;white-space:pre-line}
 .print-highlights{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 19px}
 .print-highlights div{background:#fff9d5;border:1px solid #f1e6a7;padding:13px 16px}
 .print-highlights span{display:block;font-size:8pt;color:#445872}
 .print-highlights strong{display:block;font-size:16pt;margin-top:5px}
 .print-section{break-inside:avoid-page;margin:18px 0 22px}
 #printArea .print-section h2{font-size:14pt;margin:0 0 9px;padding-bottom:5px;border-bottom:1px solid #e0e6ee}
 #printArea .print-section h3{font-size:10pt;margin:9px 0 7px}
 #printArea .print-section table{table-layout:fixed}
 #printArea .print-section th,#printArea .print-section td{padding:7px 8px;font-size:8.5pt}
 #printArea .print-section th:first-child,#printArea .print-section td:first-child{width:48%}
 #printArea .print-section th:nth-child(2),#printArea .print-section td:nth-child(2){width:9%;text-align:center}
 #printArea .print-section .total-row{margin-top:0;padding:9px 12px;font-size:9pt}
 #printArea .print-section .print-note{font-size:8pt;margin:8px 0 0}
 #printArea .print-budget td:first-child{width:72%;text-align:left}
 #printArea .print-budget td:nth-child(2){width:28%;text-align:right}
 #printArea .print-budget tr:nth-child(4){background:#fff9d5;font-weight:700}
 .print-material{break-before:page;break-after:page}
 .print-material:last-child{break-after:auto}
 #printArea .print-material h1{margin-top:12px}
 .print-material-caption{text-align:center;margin:10px auto;padding:16px;background:#fff9d5;max-width:75%}
 .print-material-caption p{margin:6px 0 0;font-size:9pt}
}
.login-card .text-button{justify-self:start}.request-actions{display:flex;gap:10px;flex-wrap:wrap}
@media(max-width:760px){.login-card{padding:26px}}

@media print{
 @page{size:A4;margin:0}
 #printArea{width:100%;box-sizing:border-box;padding:0 18mm}
 .print-document,.print-material{box-sizing:border-box;padding:16mm 0 12mm}
 .print-section{box-sizing:border-box;margin:0 0 12px;padding-top:12mm}
}

.once-label,.once-price{border:1px solid #decf83;border-radius:5px;background:#fffbed;color:var(--ink);padding:9px;font-size:14px}.once-label{width:min(100%,320px);min-width:190px;font-weight:700}.once-price{width:110px;text-align:right}
