
:root{--ink:#18352e;--muted:#77847c;--green:#216a50;--line:#e0e6df;--bg:#f4f6f1}*{box-sizing:border-box}body{margin:0;font:14px/1.5 system-ui,Arial;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #cba947;outline-offset:3px}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}aside{background:#143e32;color:#e7f1e9;padding:32px 22px;display:flex;flex-direction:column;gap:28px}.brand{font-size:25px;font-weight:800;letter-spacing:-1px}.brand small{display:block;font-size:10px;font-weight:500;letter-spacing:3px;color:#a3bcae;margin-top:4px}nav{display:grid;gap:7px}nav button{background:none;border:0;text-align:left;color:#bcd0c2;padding:12px 14px;border-radius:8px}nav button.active{background:#2b5645;color:white}nav button:hover{background:#244d3e}.aside-foot{margin-top:auto;font-size:12px;color:#adc2b3}.role{margin-top:12px;width:100%;background:#244e3e;color:white;border:1px solid #49705c;padding:10px;border-radius:7px}main{padding:30px 44px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;padding-bottom:25px;border-bottom:1px solid var(--line);gap:12px}.crumb{font-size:12px;color:var(--muted)}.avatar{border-radius:50%;background:#e2e9da;padding:10px;font-size:12px;font-weight:700}.user{display:flex;align-items:center;gap:10px;font-size:12px}.user small{display:block;color:var(--muted)}.heading{display:flex;align-items:center;justify-content:space-between;margin:30px 0 22px;gap:15px}h1{font-size:30px;font-weight:650;letter-spacing:-1px;margin:0}h2{font-size:20px;margin:0 0 18px}p{margin:6px 0;color:var(--muted)}.btn{border:1px solid var(--line);background:white;color:var(--ink);padding:10px 16px;border-radius:7px;font-weight:600}.primary{background:var(--green);border-color:var(--green);color:white}.danger{color:#a43c3c}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:26px}.metric,.panel{background:white;border:1px solid var(--line);border-radius:10px}.metric{padding:19px 22px}.metric small{color:var(--muted);font-size:12px}.metric strong{display:block;font-size:29px;font-weight:650;margin:9px 0}.metric span{font-size:11px;color:var(--green)}.panel{padding:22px;margin-bottom:22px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}.toolbar input{flex:1;min-width:180px}.toolbar select{max-width:200px}input,select,textarea{border:1px solid #d9e1d7;border-radius:6px;padding:10px 12px;background:white;color:var(--ink);max-width:100%}input:focus,select:focus,textarea:focus{outline:2px solid #90b89d;outline-offset:1px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:600;background:#f8faf6}td,th{padding:15px 12px;border-bottom:1px solid #edf0e9}tbody tr:last-child td{border:0}td small{display:block;color:var(--muted);font-size:11px}.number{font-weight:700;color:var(--green)}.amount{text-align:right;font-variant-numeric:tabular-nums}.badge{display:inline-block;border-radius:5px;padding:4px 8px;font-size:11px;font-weight:600}.b0{background:#f1efdd;color:#8a7328}.b1{background:#e3eef5;color:#376681}.b2{background:#e6edff;color:#5065a2}.b3{background:#e0f0e3;color:#277342}.b4{background:#ece9f7;color:#746093}.b5{background:#e5eae4;color:#61725a}.b6{background:#fbe6e1;color:#ae5947}.link{background:none;border:0;color:var(--green);font-weight:600;padding:5px}.muted{color:var(--muted);font-size:12px}.demo{border:1px solid #dedcc2;border-radius:7px;background:#f9f7e8;padding:10px 14px;font-size:12px;color:#807443;margin-top:20px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:grid;gap:6px}.field label{font-size:12px;font-weight:600}.full{grid-column:1/-1}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;flex-wrap:wrap}.line-items select{min-width:220px;width:100%}.line-items input{width:110px}.summary{display:flex;justify-content:space-between;padding:22px 0;border-top:1px solid var(--line);margin-top:18px;font-weight:700;font-size:20px}.empty{text-align:center;padding:40px;color:var(--muted)}.timeline{border-left:2px solid #dbe5d9;margin:12px;padding-left:20px}.event{margin-bottom:18px;font-size:13px}.event small{display:block;color:var(--muted)}.toast{position:fixed;bottom:26px;right:26px;background:#153e32;color:white;padding:14px 24px;border-radius:8px;box-shadow:0 10px 40px #0002;z-index:10}.split{display:grid;grid-template-columns:2fr 1fr;gap:22px}.count{font-size:12px;color:var(--muted);margin-top:15px}.file{display:none}.info{background:#f3f6ef;border-radius:7px;padding:14px;font-size:12px}.edit-title{font-size:12px;color:var(--green);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}@media(max-width:1050px){main{padding:25px}.metrics{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}}@media(max-width:700px){.shell{grid-template-columns:1fr}aside{padding:16px;gap:12px}.brand small,.aside-foot>p{display:none}.aside-foot{display:block;height:0}.aside-foot{font-size:0}nav{display:flex;overflow:auto}nav button{white-space:nowrap}.role{margin:0;width:auto;position:absolute;right:15px;top:15px;max-width:150px}.brand{font-size:20px}main{padding:18px}.topbar{padding-bottom:15px}.heading{align-items:flex-start}h1{font-size:25px}.metrics{gap:10px}.metric{padding:15px}.metric strong{font-size:24px}.grid{grid-template-columns:1fr}.full{grid-column:auto}.user div:last-child{display:none}.panel{padding:16px}.heading p{font-size:12px}}
.brand{background:#fff;padding:14px 12px 10px;border-radius:8px;text-align:center;line-height:1}.brand img{display:block;width:100%;height:auto}.brand small{color:#776a47;font-size:8px;letter-spacing:1.3px;line-height:1.5;margin-top:10px}@media(max-width:700px){.brand{width:112px;padding:5px 8px}.brand img{width:96px}.brand small{display:none}}
[hidden]{display:none!important}#loginScreen[hidden]{display:none!important}body.signed-out .shell{display:none}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at top,#e9e9d8,#f4f6f1 60%)}.login-card{background:white;border:1px solid var(--line);border-radius:14px;padding:32px;width:100%;max-width:430px;box-shadow:0 18px 60px #18352e0d}.login-logo{display:block;width:180px;height:auto;margin:0 auto 24px}.login-card h1{font-size:25px;text-align:center}.login-card>p{text-align:center;font-size:13px;margin:10px 0 24px}.login-card .field{margin:16px 0}.login-card .btn{width:100%}.login-error{color:#a43c3c;background:#fff0ed;padding:10px;border-radius:6px;font-size:13px;margin-bottom:14px}.demo-accounts{font-size:12px;line-height:1.8;padding:14px;background:#f6f4e9;border-radius:7px;margin-top:22px}.demo-accounts code{color:#5e532e;font-size:12px}.logout{padding:7px 12px;font-size:12px;margin-left:8px}#role{display:none!important}
.client-picker{position:relative}.client-picker>input:not([type=hidden]){width:100%}.client-results{position:absolute;top:calc(100% + 5px);left:0;right:0;background:white;border:1px solid #c9d8c9;border-radius:8px;max-height:290px;overflow:auto;z-index:5;box-shadow:0 10px 30px #18352e20}.client-result{display:block;text-align:left;width:100%;background:white;border:0;border-bottom:1px solid #edf0e9;padding:10px 12px;color:var(--ink)}.client-result:hover,.client-result[aria-selected=true]{background:#e7f0e5}.client-result small{display:block;color:var(--muted);font-size:11px}.client-no-results{padding:15px;color:var(--muted);font-size:12px}.pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:20px}.pagination .count{margin:0}.page-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.btn:disabled{opacity:.4;cursor:default}@media(max-width:700px){.page-controls{gap:8px}.page-controls .btn{padding:8px 10px}}.metric-filter{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}.metric-filter:hover{color:var(--green,#245748)}.metric-filter:focus-visible{outline:3px solid #cdb06a;outline-offset:5px;border-radius:4px}.client-history summary{cursor:pointer;font-size:16px;font-weight:600}.client-history[open] summary{margin-bottom:14px}.client-history .table-wrap{margin-top:16px}.crm-agreement{padding:16px 0;border-bottom:1px solid var(--line)}.crm-agreement:last-child{border-bottom:0}.crm-agreement-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.crm-agreement-text{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:10px}.crm-timeline{max-height:600px;overflow:auto;margin-top:16px;padding-right:8px}
.order-print{display:none}
@media print{
 @page{size:A4;margin:14mm}
 body.printing-order{background:#fff;color:#111;font:11pt/1.4 Arial,sans-serif}
 body.printing-order>*{display:none!important}
 body.printing-order>#orderPrint{display:block!important}
 .order-print h1{font-size:20pt;letter-spacing:0;margin:0 0 8pt}
 .order-print p{color:#111;margin:4pt 0;overflow-wrap:anywhere}
 .print-header{display:flex;align-items:center;justify-content:space-between;gap:20pt;margin-bottom:22pt}
 .print-header img{width:90pt;height:auto}
 .print-header>div{text-align:right}
 .print-info{display:grid;grid-template-columns:3fr 2fr;gap:24pt;margin-bottom:20pt}
 .print-info b{display:block;margin-top:10pt}
 .print-items{table-layout:fixed;white-space:normal;width:100%;font-size:9pt;border-collapse:collapse}
 .print-items th,.print-items td{padding:7pt 4pt;border-bottom:1px solid #ccc;overflow-wrap:anywhere;vertical-align:top;color:#111}
 .print-items th{background:none;font-size:8pt;letter-spacing:0;text-transform:none;border-top:1px solid #111;border-bottom:1px solid #111}
 .print-items thead{display:table-header-group}
 .print-items tr{break-inside:avoid}
 .print-totals{margin:18pt 0 18pt auto;width:65%;break-inside:avoid}
 .print-totals>div{display:flex;justify-content:space-between;gap:16pt;padding:4pt 0}
 .print-grand-total{border-top:1px solid #111;margin-top:5pt;font-size:13pt}
 .print-totals p{font-size:9pt;text-align:right}
 .print-note{white-space:pre-wrap;margin-top:18pt}
 .print-signatures{display:flex;justify-content:space-between;gap:18pt;margin-top:40pt;break-inside:avoid;font-size:10pt}
 .print-header,.print-info{break-inside:avoid}
}
