:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#17273b;background:#f4f6fa}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:8px;padding:10px 14px;background:#183e63;color:white}button:hover{filter:brightness(1.12)}button.secondary{background:#e9edf3;color:#21344a}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}aside{background:#12283e;color:white;padding:24px}aside h2{font-size:19px;line-height:1.35;margin:0 0 30px}nav button{display:block;text-align:left;width:100%;margin:5px 0;background:transparent}nav button.active{background:#2c5479}main{padding:30px;max-width:1250px;width:100%;margin:auto}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:12px}.badge{font-size:12px;color:#915215;background:#ffefd2;padding:7px 10px;border-radius:30px}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.card{background:white;border:1px solid #dce4ef;border-radius:12px;padding:20px;box-shadow:0 1px 3px #193b4d0b}.metric{font-size:29px;font-weight:700;margin-top:12px}.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:22px 0}.toolbar input{max-width:300px}input,select,textarea{width:100%;padding:10px;border:1px solid #b9c6d4;border-radius:8px;background:white}label{display:block;font-size:14px;font-weight:600;margin-top:10px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid #e6ebf2;padding:12px 7px}th{color:#53657a}.actions{display:flex;gap:6px;flex-wrap:wrap}.actions button{padding:6px 9px;font-size:12px}.modal{position:fixed;inset:0;background:#0e1b2caa;display:grid;place-items:center;padding:20px}.dialog{background:white;border-radius:14px;padding:24px;width:min(520px,100%);max-height:90vh;overflow:auto}.dialog h2{margin-top:0}.form-actions{display:flex;justify-content:end;gap:8px;margin-top:18px}.notice{margin:15px 0;color:#6a4b20;background:#fff5df;padding:12px;border-radius:8px}@media(max-width:800px){.shell{display:block}aside{padding:15px}aside h2{margin-bottom:10px}nav{display:flex;gap:4px;overflow:auto}nav button{white-space:nowrap;width:auto}.grid{grid-template-columns:repeat(2,1fr)}main{padding:16px}.card{padding:13px}.toolbar{flex-wrap:wrap}}
/* Cloud signup / workspace forms */
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:20px;background:#edf2f7}
.auth-card{width:min(100%,450px);background:#fff;padding:30px;border:1px solid #dce4ef;border-radius:16px;box-shadow:0 15px 45px #18375520}
.auth-card h1{margin:0 0 10px;font-size:27px}.auth-card h2{font-size:20px;margin:10px 0}
.auth-card p{color:#64758a;line-height:1.5}
.auth-card label{margin:16px 0 8px}.auth-card input{margin-top:6px}
.auth-card #switch{margin-top:16px}
.dialog textarea{resize:vertical}.dialog label{margin-top:16px}.dialog input,.dialog select,.dialog textarea{margin-top:5px}


/* v0.3: field operations, estimate builder and printable proposals */
.grid{grid-template-columns:repeat(auto-fit,minmax(185px,1fr))}
.report-row{display:flex;justify-content:space-between;align-items:center;padding:12px 2px;border-bottom:1px solid #e2e7ef;text-transform:capitalize}
.estimate-line{display:flex;gap:10px;align-items:end;padding:8px 0;border-bottom:1px solid #e5ebf2}
.estimate-line label{margin:0;min-width:0}
.estimate-line input{margin-top:5px}
.estimate-line .remove-line{flex:0 0 35px;padding:9px 0}
.estimate-summary{margin-top:14px;text-align:right;font-size:18px}
.dialog:has(.estimate-line){width:min(760px,100%)}
.print-dialog{width:min(860px,100%)}
.print-letter{background:#fff;color:#1a2739;padding:20px}
.print-head{display:flex;justify-content:space-between;gap:30px;border-bottom:3px solid #173c60;padding-bottom:20px}
.print-head h1{font-size:21px;margin:0}.print-head h2{letter-spacing:2px}
.print-head p{font-size:12px;color:#52667a}
.print-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin:25px 0}
.print-grid p{margin:7px 0}.print-total{display:flex;justify-content:space-between;font-size:20px;margin-top:20px;padding-top:12px;border-top:2px solid #1a3654}
.print-letter footer{margin-top:60px;padding-top:15px;border-top:1px solid #d8e1ea;font-size:12px;color:#52667a}
@media(max-width:650px){.estimate-line{flex-wrap:wrap}.estimate-line label:first-child{flex-basis:100%!important}.estimate-line label{flex:1!important}.print-grid{grid-template-columns:1fr}}
@media print{
 @page{size:letter;margin:0.6in}
 body{background:#fff!important}
 #root>.shell{display:none!important}
 #modal-root{display:block!important}
 #modal-root>.modal{position:static!important;display:block!important;background:#fff!important;padding:0!important}
 #modal-root>.modal>.dialog{width:100%!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;border:0!important;padding:0!important}
 .no-print{display:none!important}
 .print-letter{padding:0!important}
 .print-letter tr{break-inside:avoid}
}


/* v0.4 company branding */
.company-heading{display:flex;align-items:center;gap:12px;margin:0 0 26px}
.company-heading h2{margin:0}
.sidebar-logo{width:53px;height:53px;object-fit:contain;background:#fff;border-radius:8px;padding:3px}
.branding-preview{display:flex;align-items:center;justify-content:center;background:#f5f7f9;border:1px dashed #a8b6c6;border-radius:10px;min-height:150px;padding:15px;margin:14px 0}
.branding-image{max-height:160px;max-width:100%;object-fit:contain}
.logo-empty{color:#708092}
.hint{font-size:13px;color:#62758a;line-height:1.5}
.print-company{display:flex;align-items:center;gap:18px}
.print-logo{width:105px;max-height:105px;object-fit:contain;flex-shrink:0}
@media print{.print-logo{max-height:95px;width:95px}}
