:root{--bg:#f4f7f7;--surface:#fff;--ink:#182c33;--muted:#6b8189;--line:#e3eaec;--accent:#0d7569;--accent-dark:#075b52;--tint:#eaf5f2;--warning:#aa7220;--red:#bb4952;--shadow:0 14px 38px rgba(22,53,65,.05)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{color:var(--ink)}a{color:var(--accent)}.shell{display:flex;min-height:100vh}.sidebar{width:249px;background:#0e2b34;color:#e9f2f1;min-height:100vh;position:sticky;top:0;height:100vh;padding:26px 15px 19px;display:flex;flex-direction:column;flex-shrink:0}.brand{display:flex;gap:12px;align-items:center;padding:3px 9px 28px}.brand strong{display:block;font-size:17px;letter-spacing:-.45px}.brand small{color:#92b2b8;font-size:11px}.brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#197567;color:white;font-size:30px;line-height:1}.nav-caption{font-weight:700;color:#7798a0;font-size:10px;letter-spacing:1.5px;padding:10px 13px 12px}.nav{display:grid;gap:4px}.nav-button{width:100%;border:0;text-align:left;background:transparent;color:#bcd1d4;padding:12px 13px;display:flex;align-items:center;gap:13px;border-radius:11px;font-weight:560}.nav-button:hover,.nav-button.active{background:#1e4650;color:#fff}.nav-button.active{box-shadow:inset 3px 0 #63d4b5}.nav-icon{display:flex;align-items:center;justify-content:center;width:20px;font-size:19px;font-weight:500}.sidebar-bottom{margin-top:auto;padding:14px 9px 0;color:#8eafb5;font-size:11px;border-top:1px solid #23434b}.sidebar-bottom p{margin:9px 0 0;line-height:1.55}.demo-pill{display:flex;gap:7px;align-items:center;color:#bbded4;font-size:12px;font-weight:650}.status-dot{width:7px;height:7px;border-radius:50%;background:#4bd3a2}.main-wrap{flex:1;min-width:0}.topbar{height:68px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 36px;border-bottom:1px solid var(--line)}.topbar-left,.topbar-right{display:flex;align-items:center;gap:13px}.breadcrumb{color:#60787e;font-size:13px}.breadcrumb-sep{padding:0 6px;color:#a6b6ba}.today-text{font-size:12px;color:#73878d}.role-label{color:#7d9095;font-size:12px}.topbar select{background:#f2f7f6;border:1px solid var(--line);border-radius:9px;padding:8px 28px 8px 10px;font-size:12px}.avatar{width:32px;height:32px;background:#d8eee8;border-radius:50%;display:grid;place-items:center;font-weight:800;color:var(--accent)}.content{max-width:1460px;padding:30px 36px 80px;margin:0 auto}.banner{display:flex;justify-content:space-between;gap:16px;background:#e6f5f0;border:1px solid #c8e8dc;color:#19574e;border-radius:12px;padding:13px 18px;margin-bottom:22px;font-size:12px}.banner strong{display:block;font-size:13px}.banner span{color:#48716a}.banner button{border:0;background:transparent;font-size:20px;color:#49746e}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin:0 0 25px}.page-heading h1{font-size:27px;letter-spacing:-.85px;line-height:1.15;margin:0 0 7px;font-weight:790}.page-heading p{margin:0;color:var(--muted);font-size:13px}.heading-actions{display:flex;gap:9px;flex-wrap:wrap}.btn{border:1px solid var(--line);background:#fff;color:#304a51;border-radius:10px;min-height:38px;padding:8px 14px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;white-space:nowrap}.btn:hover{background:#f8fafb}.btn.primary{border-color:var(--accent);background:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-dark)}.btn.subtle{background:var(--tint);border-color:transparent;color:var(--accent)}.btn.danger{color:#a43d45;background:#fff4f4;border-color:#f6e1e2}.btn.small{padding:5px 10px;min-height:31px;font-size:12px;border-radius:8px}.btn.text{border:0;padding:3px 5px;background:transparent;color:var(--accent);font-size:12px}.btn.block{width:100%}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}.toolbar select,.toolbar input,.field input,.field select,.field textarea,.field .fake-input,.editable{border:1px solid #d9e5e6;background:#fff;border-radius:9px;min-height:40px;padding:9px 11px;outline:0;width:100%}.toolbar select:focus,.toolbar input:focus,.field input:focus,.field select:focus,.field textarea:focus,.editable:focus{border-color:var(--accent);box-shadow:0 0 0 3px #cdeae3}.search{min-width:210px;max-width:420px;flex:1}.filter{width:180px!important}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:0 0 23px}.stat{background:#fff;padding:20px;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);min-width:0}.stat-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.stat-icon{width:33px;height:33px;background:#e7f6f1;display:grid;place-items:center;border-radius:9px;color:#187967;font-size:17px}.stat strong{display:block;letter-spacing:-.7px;font-size:27px;margin:10px 0 0;white-space:nowrap}.stat small{font-size:11px;color:#81939a;display:block}.split{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);padding:19px;margin-bottom:18px;min-width:0}.panel h2{font-size:16px;margin:0 0 14px;letter-spacing:-.3px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.panel-heading h2{margin:0}.table-scroll{overflow:auto}.data-table{border-collapse:collapse;width:100%;text-align:left}.data-table th{font-size:11px;color:#7a8d92;font-weight:750;background:#f7faf9;white-space:nowrap}.data-table td,.data-table th{padding:13px 12px;border-bottom:1px solid #edf1f2;vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fafffd}.data-table td{font-size:12.5px}.data-table .mono{white-space:nowrap;font-variant-numeric:tabular-nums}.data-table .main-cell{font-weight:720;color:#203941}.muted{color:var(--muted)}.muted-sm{font-size:11px;color:var(--muted)}.two-line strong{display:block}.two-line small{display:block;color:var(--muted);margin-top:2px}.pill{display:inline-flex;align-items:center;gap:5px;border-radius:99px;font-size:11px;padding:4px 9px;font-weight:750;white-space:nowrap;background:#eef3f4;color:#536b72}.pill.green{background:#e8f7ec;color:#23774a}.pill.orange{background:#fff5e4;color:#986717}.pill.blue{background:#e9f3fd;color:#3e7cae}.pill.red{background:#ffedef;color:#b14550}.pill.gray{background:#edf1f3;color:#637983}.pill:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.link-btn{background:transparent;border:0;color:var(--accent);font-weight:680;padding:3px 0;text-align:left}.empty{padding:34px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--ink);font-size:15px;margin:8px}.empty-icon{font-size:31px}.activity-item{display:flex;gap:10px;padding:12px 1px;border-bottom:1px solid #edf1f2}.activity-item:last-child{border:0}.activity-circle{width:31px;height:31px;border-radius:50%;background:var(--tint);display:grid;place-items:center;color:var(--accent);flex-shrink:0}.activity-item strong{font-size:12px}.activity-item p{margin:2px 0 0;font-size:11px;color:var(--muted)}.activity-item time{font-size:10px;color:#8c9ca0}.tag{font-size:10px;color:#527b72;background:#eaf5f1;border-radius:5px;padding:3px 6px;display:inline-block}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.project-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px;box-shadow:var(--shadow)}.project-card h3{font-size:15px;line-height:1.35;margin:0 0 5px}.project-card p{font-size:12px;color:var(--muted);margin:6px 0}.project-card .row-meta{margin:19px 0 10px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:12px}.row-meta b{font-size:12px}.project-card-foot{display:flex;justify-content:space-between;align-items:center;gap:8px}.details-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(310px,.9fr);gap:18px}.kv{display:grid;grid-template-columns:125px 1fr;gap:9px 12px;font-size:12px}.kv span:nth-child(odd){color:var(--muted)}.progress{height:8px;border-radius:9px;background:#e8efee;overflow:hidden;margin-top:8px}.progress>div{background:var(--accent);height:100%;border-radius:9px}.meter-row{margin-bottom:15px}.meter-title{display:flex;justify-content:space-between;font-size:12px}.mini-card{padding:14px;border-radius:11px;background:#f7faf9;border:1px solid #edf2f1}.mini-card strong{font-size:19px;display:block}.mini-card small{font-size:11px;color:var(--muted)}.mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.field{display:flex;flex-direction:column;gap:5px}.field label{font-size:11px;color:#607780;font-weight:700}.field.span2{grid-column:span 2}.field textarea{min-height:80px;resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:18px}.modal-scrim{position:fixed;inset:0;background:#102b33a3;display:flex;justify-content:center;align-items:center;padding:22px;z-index:50;overflow-y:auto}.modal{max-width:650px;width:100%;max-height:min(90vh,930px);overflow:auto;background:#fff;border-radius:16px;box-shadow:0 24px 90px #06252b55;padding:24px}.modal.wide{max-width:910px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:17px}.modal-head h2{margin:0;font-size:19px;letter-spacing:-.45px}.modal-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.close{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;border:1px solid var(--line);background:#fff;font-size:19px}.quote-workspace{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(270px,.9fr);gap:15px}.catalog-choices{max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:10px;margin-top:10px}.catalog-choice{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid #edf1f2}.catalog-choice:last-child{border:0}.catalog-choice strong{font-size:11.5px}.catalog-choice small{display:block;font-size:10px;color:var(--muted)}.catalog-choice button{flex-shrink:0}.line-editor{width:100%;border-collapse:collapse}.line-editor th,.line-editor td{border-bottom:1px solid var(--line);padding:8px 5px;text-align:left;vertical-align:middle;font-size:11px}.line-editor input{width:75px;min-height:31px;padding:5px;border:1px solid var(--line);border-radius:6px}.line-editor .description{max-width:260px;min-width:170px}.line-editor td .remove-line{background:transparent;border:0;color:#b76d70;font-size:18px}.totals{background:#eef7f4;border-radius:10px;padding:15px;margin-top:14px}.totals div{display:flex;justify-content:space-between;gap:9px;margin:4px 0}.totals .big{border-top:1px solid #c9e5da;padding-top:10px;margin-top:11px;font-size:17px;font-weight:800}.crew-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.crew-item{border:1px solid var(--line);border-radius:12px;padding:16px}.crew-item h3{margin:0;font-size:15px}.crew-item p{font-size:12px;color:var(--muted)}.crew-task{background:white;border:1px solid var(--line);border-radius:13px;padding:16px;margin-bottom:12px}.crew-task p{font-size:12px;color:var(--muted)}.dropzone{border:1px dashed #a5ccc2;border-radius:11px;padding:15px;color:var(--muted);background:#f7fcfa;font-size:12px}.photo-thumbs{display:flex;gap:9px;flex-wrap:wrap}.photo-thumb{width:90px;height:90px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.note{border-left:3px solid #9ccfc4;background:#f4faf8;padding:12px 13px;border-radius:7px;font-size:12px;color:#47666c}.help{color:var(--muted);font-size:11px}.money-positive{color:#167b5e;font-weight:700}.money-negative{color:#b15054;font-weight:700}.toast{position:fixed;right:25px;bottom:25px;background:#123d42;color:#fff;padding:12px 17px;border-radius:11px;box-shadow:0 18px 45px #173e4c35;z-index:90;opacity:0;transform:translateY(14px);pointer-events:none;transition:.2s;max-width:350px;font-size:12px}.toast.show{opacity:1;transform:translateY(0)}.mobile-nav,.mobile-only{display:none}.divider{height:1px;background:var(--line);margin:12px 0}.smallcaps{text-transform:uppercase;letter-spacing:1px;font-weight:750;font-size:10px;color:#7a8c91}.danger-note{font-size:11px;color:#ab5959}.w-full{width:100%}.nowrap{white-space:nowrap}.scroll-content{overflow:auto}.footer-hint{font-size:12px;color:#7c8f93;text-align:center;margin:22px 0}.manual-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.toggleline{display:flex;align-items:center;gap:7px;font-size:12px}.toggleline input{width:auto}.choice-inline{display:flex;gap:6px;align-items:center}.choice-inline label{font-size:11px}.catalog-price{font-size:12px;font-weight:700}.keyvalue{display:flex;justify-content:space-between;gap:8px;font-size:12px;border-bottom:1px solid var(--line);padding:8px 0}.box-title{font-weight:750;margin:0 0 11px}.guide-step{display:flex;gap:12px;margin-bottom:14px}.step-number{height:25px;width:25px;background:var(--tint);border-radius:50%;display:grid;place-items:center;color:var(--accent);font-size:12px;font-weight:850;flex-shrink:0}
@media(max-width:1150px){.stat-grid{grid-template-columns:repeat(2,1fr)}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr 1fr}.content{padding:25px}.topbar{padding:0 25px}}
@media(max-width:800px){.sidebar{display:none}.topbar{height:62px;padding:0 15px}.content{padding:19px 14px 100px}.today-text,.role-label{display:none}.mobile-only{display:inline-grid}.icon-btn{border:0;background:transparent;font-size:21px}.breadcrumb{font-size:12px}.topbar-right{gap:8px}.topbar select{max-width:132px}.page-heading h1{font-size:24px}.page-heading{align-items:flex-start}.split,.details-grid,.quote-workspace{grid-template-columns:1fr}.project-grid{grid-template-columns:1fr 1fr}.mobile-nav{position:fixed;display:flex;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e2eaea;padding:8px 4px max(8px,env(safe-area-inset-bottom));justify-content:space-around;z-index:30;box-shadow:0 -5px 25px #15383b0c}.mobile-tab{border:0;background:transparent;color:#7c8f92;font-size:9px;display:grid;justify-items:center;gap:2px;padding:2px 6px;font-weight:700;max-width:70px}.mobile-tab .nav-icon{font-size:21px}.mobile-tab.active{color:var(--accent)}.modal-scrim{padding:0;align-items:flex-end}.modal{max-height:94vh;border-radius:16px 16px 0 0;padding:21px 15px 28px}.banner{padding:12px}.heading-actions{gap:6px}.heading-actions .btn{font-size:11px}.crew-list{grid-template-columns:1fr}.mobile-menu-panel{position:fixed;inset:0;background:#102b33a3;z-index:40;padding:40px 30px}.mobile-menu-inner{background:#0e2b34;color:#fff;border-radius:14px;padding:20px;max-width:300px;margin:auto}.mobile-menu-inner .nav-button{color:#eaf3f2;width:100%}}
@media(max-width:480px){.stat-grid{gap:9px}.stat{padding:13px}.stat strong{font-size:21px}.stat-top{font-size:10px}.stat-icon{height:27px;width:27px;font-size:13px}.project-grid{grid-template-columns:1fr}.page-heading{flex-wrap:wrap}.page-heading .heading-actions{width:100%}.form-grid{grid-template-columns:1fr}.field.span2{grid-column:span 1}.toolbar .filter{width:calc(50% - 6px)!important;min-width:145px}.search{flex-basis:100%;max-width:none}.kv{grid-template-columns:95px 1fr}.mini-grid{gap:7px}}
@media print{body{background:white}body>*:not(#print-root){display:none!important}#print-root{display:block!important;font:12px Arial,sans-serif;color:black}.print-head{text-align:center;border-bottom:2px solid #222;padding-bottom:15px}.print-head h1{font-size:23px;margin:3px 0}.print-meta{margin:18px 0}.print-table{width:100%;border-collapse:collapse}.print-table th,.print-table td{border:1px solid #333;padding:8px 7px}.print-table th{background:#eee}.print-total{text-align:right;font-size:20px;font-weight:bold;margin-top:16px}.print-footer{font-size:11px;color:#555;margin-top:40px}.print-signatures{display:flex;justify-content:space-between;margin-top:70px}}
#print-root{display:none}
.catalog-choice>div{min-width:0;flex:1}.catalog-choice strong{display:block;overflow-wrap:anywhere}.catalog-choice .btn{min-width:75px}.quote-workspace>section{min-width:0}.modal .table-scroll{max-width:100%}
