@font-face{font-family:Montserrat;src:url("assets/fonts/Montserrat-Variable.ttf") format("truetype");font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:"Open Sans";src:url("assets/fonts/OpenSans-Variable.ttf") format("truetype");font-style:normal;font-weight:300 800;font-display:swap}
:root{--navy:#2a2f5f;--navy-dark:#22274f;--accent:#ef4223;--ink:#252b3a;--muted:#818697;--subtle:#b0b4c1;--bg:#f7f8fb;--line:#e9ebf1;--white:#fff;--green:#26856b;--blue:#5977cc;--amber:#bb842e;--purple:#9472bf;--radius:13px;--shadow:0 4px 24px #26305105;--sidebar:230px}
*{box-sizing:border-box}body{margin:0;font-family:"Open Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{opacity:.45;cursor:not-allowed}button,a{touch-action:manipulation}a{color:var(--navy);text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a7b6ed;outline-offset:3px}button svg,svg.icon{width:17px;height:17px;stroke-width:1.7;flex-shrink:0}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:Montserrat,"Open Sans",sans-serif}h1{font-size:29px;line-height:1.25;font-weight:650;letter-spacing:-1px}h2{font-size:15px;font-weight:600;letter-spacing:-.2px}h3{font-size:14px;font-weight:600}small{font-size:11px}button{border:0;background:none}.muted{color:var(--muted)}.subtext{font-size:12px;color:var(--muted)}.num{font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.flex{display:flex;align-items:center}.gap8{gap:8px}.gap12{gap:12px}.between{justify-content:space-between}.mt16{margin-top:16px}.mt24{margin-top:24px}.wfull{width:100%}.bold{font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sidebar{width:var(--sidebar);height:100dvh;position:fixed;left:0;top:0;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:30;padding:29px 17px 16px}.brand{padding:0 18px 25px;display:block}.brand img{display:block;width:158px;height:auto}.brand-caption{font-size:9px;font-weight:600;letter-spacing:2.5px;margin-top:13px;color:#9a9ead}.nav-label{font-size:9px;letter-spacing:1.55px;color:#9b9fad;font-weight:600;margin:22px 17px 10px}.nav-button{display:flex;align-items:center;gap:12px;width:100%;padding:12px 15px;margin:3px 0;border-radius:8px;font-weight:500;text-align:left;color:#717687;font-size:12px;transition:background .15s,color .15s}.nav-button svg{width:18px;height:18px}.nav-button:hover{background:#f5f6fa;color:var(--navy)}.nav-button.active{background:#eeeff7;color:var(--navy);font-weight:650}.nav-badge{margin-left:auto;background:#e0e3f1;font-size:10px;min-width:22px;text-align:center;padding:1px 5px;border-radius:5px;color:var(--navy)}.sidebar-bottom{margin-top:auto}.facility-card{margin:20px 5px;padding:14px;border:1px solid var(--line);border-radius:10px}.facility-card .facility-symbol{width:30px;height:30px;display:grid;place-items:center;background:#f3f4f9;border-radius:8px;color:var(--navy);margin-bottom:10px}.facility-card strong{font-size:11px;font-weight:600;display:block}.facility-card p{color:var(--muted);font-size:10px;margin-top:3px}.facility-status{display:flex;align-items:center;gap:5px;color:var(--green);font-size:10px;margin-top:10px}.dot{width:5px;height:5px;background:currentColor;display:inline-block;border-radius:50%;flex-shrink:0}.user-card{border-top:1px solid var(--line);padding:16px 9px 0;display:flex;align-items:center;gap:10px}.avatar{width:33px;height:33px;border-radius:50%;display:grid;place-items:center;background:#eceef6;color:var(--navy);font-size:11px;font-weight:600;flex-shrink:0}.user-card strong{font-size:11px}.user-card p{font-size:10px;color:var(--muted)}.user-card button{margin-left:auto;color:#8b90a0;padding:5px}
.workspace{margin-left:var(--sidebar);min-height:100dvh}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;gap:16px;position:sticky;top:0;z-index:20}.breadcrumb{display:flex;align-items:center;gap:12px;font-size:11px;color:#8c90a0}.breadcrumb svg{width:14px}.breadcrumb .current{color:#4b5164;font-weight:500}.top-actions{display:flex;align-items:center;gap:17px}.global-search{border:1px solid var(--line);border-radius:7px;padding:8px 10px;color:#979baa;width:235px;display:flex;align-items:center;gap:8px;font-size:11px}.global-search kbd{margin-left:auto;background:#f5f6fa;border:1px solid var(--line);padding:0 5px;border-radius:3px;font-size:10px}.top-divider{height:22px;width:1px;background:var(--line)}.demo-pill{border:1px solid #e5e1d1;border-radius:5px;color:#928054;background:#fbfaf5;display:flex;align-items:center;gap:6px;padding:4px 8px;font-size:9px;letter-spacing:.2px;font-weight:500;white-space:nowrap}.icon-button{width:33px;height:33px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;position:relative;color:#858a9a;flex-shrink:0}.icon-button:hover{background:#f0f1f7;color:var(--navy)}.notification-dot{position:absolute;width:5px;height:5px;background:var(--accent);border:2px solid white;border-radius:50%;right:6px;top:5px;box-sizing:content-box}.mobile-menu{display:none}.main{max-width:1640px;padding:32px 34px 24px;margin:0 auto}.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:27px}.eyebrow{font-size:9px;text-transform:uppercase;letter-spacing:1.6px;font-weight:600;color:#9a9eab;margin-bottom:7px}.page-subtitle{color:var(--muted);font-size:12px;margin-top:8px}.header-actions{display:flex;align-items:center;gap:8px}.btn{height:36px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);border-radius:7px;background:white;font-size:11px;font-weight:550;white-space:nowrap;transition:all .15s}.btn:hover{background:#f5f6fa;border-color:#d2d6e4}.btn.primary{background:var(--navy);color:white;border-color:var(--navy);box-shadow:0 3px 6px #2a2f5f12}.btn.primary:hover{background:#3a4078}.btn.secondary{background:#f3f4fa;border-color:#e6e8f2;color:var(--navy)}.btn.danger{color:#c8584d;border-color:#eedbd9}.btn.small{height:30px;font-size:10px;padding:0 10px}.btn.large{height:41px;padding:0 18px}.text-button{display:inline-flex;align-items:center;gap:5px;color:var(--navy);font-size:10px;font-weight:550;padding:5px 0}.text-button svg{width:13px;height:13px}.text-button:hover{color:#5966a3}.page-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:22px 2px 0;font-size:9px;color:#9ca1ae}.page-footer strong{font-weight:600;color:#787e91}.page-footer .dot{color:#b4b8c6}
.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:23px}.metric{border:1px solid var(--line);background:white;border-radius:11px;padding:18px 20px;box-shadow:var(--shadow);position:relative;text-align:left;min-height:130px}.metric:hover{border-color:#d4d8e6}.metric-top{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#777d8e;font-size:11px;font-weight:450}.metric-icon{width:29px;height:29px;border-radius:7px;display:grid;place-items:center;background:#f2f3f9;color:#7c84a9}.metric-icon svg{width:15px;height:15px}.metric-value{font-size:31px;line-height:1.3;letter-spacing:-1.2px;font-weight:650;margin-top:9px;color:#303650}.metric-note{font-size:10px;color:#9a9eac;margin-top:6px;display:flex;align-items:center;gap:5px}.metric-note .positive{color:var(--green)}.metric-note svg{width:12px;height:12px}.metric-note strong{font-weight:500;color:#747c93}.overview-grid{display:grid;grid-template-columns:minmax(0,1fr) 302px;gap:22px;align-items:start}.stack{display:flex;flex-direction:column;gap:21px}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:20px 22px 17px;gap:12px}.panel-header h2{display:flex;align-items:center;gap:7px}.panel-header p{font-size:10px;color:var(--muted);margin-top:4px}.panel-body{padding:0 22px 20px}.count-chip{font-size:9px;padding:2px 6px;border-radius:4px;background:#f1f2f7;color:#9096a6;margin-left:2px;font-weight:500}.pipeline{padding:3px 22px 23px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.pipeline-stage{padding:0;text-align:left;min-width:0}.pipeline-stage .stage-top{display:flex;align-items:center;justify-content:space-between;gap:3px;margin-bottom:11px}.pipeline-stage .stage-name{font-size:9px;color:#878c9b}.pipeline-stage strong{font-size:19px;line-height:1;font-weight:600;color:#4c5369}.pipeline-stage .track{height:5px;border-radius:4px;background:var(--tint);position:relative}.pipeline-stage .fill{height:100%;min-width:6px;background:var(--stage-color);border-radius:4px}.pipeline-stage:hover .stage-name{color:var(--navy)}.stage-template{--stage-color:#758acc;--tint:#edf0f9}.stage-fabrication{--stage-color:#b49bcb;--tint:#f2edf6}.stage-install{--stage-color:#d9b16c;--tint:#faf3e9}.stage-invoice{--stage-color:#85acbb;--tint:#ecf3f6}.stage-complete{--stage-color:#6cae97;--tint:#edf5f1}.status-pill{display:inline-flex;align-items:center;gap:5px;background:var(--tint,#f1f2f6);color:var(--stage-color,#858c9d);padding:4px 8px;border-radius:5px;font-size:9px;font-weight:500;white-space:nowrap;line-height:1.4}.status-pill .dot{width:4px;height:4px}.status-pill.green{--tint:#edf6f1;--stage-color:#468b70}.status-pill.amber{--tint:#fcf5e8;--stage-color:#bb8f46}.status-pill.red{--tint:#fbefec;--stage-color:#c07864}.status-pill.neutral{--tint:#f0f2f6;--stage-color:#808799}.status-pill.blue{--tint:#eef1fa;--stage-color:#7186bb}.status-pill.purple{--tint:#f4eff8;--stage-color:#9a7cb1}
.table-scroll{overflow:auto}.data-table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left}.data-table thead th{background:#fafbfc;color:#a0a5b1;font-size:9px;letter-spacing:.35px;font-weight:500;padding:11px 18px;border-bottom:1px solid var(--line);border-top:1px solid var(--line)}.data-table th:first-child,.data-table td:first-child{padding-left:22px}.data-table th:last-child,.data-table td:last-child{padding-right:22px}.data-table td{padding:15px 18px;border-bottom:1px solid #f0f1f5;font-size:10px;color:#7d8494}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr{transition:background .1s}.data-table tbody tr.clickable{cursor:pointer}.data-table tbody tr.clickable:hover{background:#fafbfe}.job-name{font-size:11px;color:#3e455c;font-weight:550;display:block}.job-id{font-size:9px;color:#a3a8b6;letter-spacing:.1px;margin-top:3px;display:block}.table-main{display:flex;align-items:center;gap:9px}.stone-thumb{width:28px;height:28px;border-radius:5px;object-fit:cover;border:1px solid #00000005;flex-shrink:0}.customer-mini{font-size:10px;color:#969bac;margin-top:2px;display:block}.date-cell{font-variant-numeric:tabular-nums;color:#7e8596}.date-cell.due{color:#c3934e}.table-footer{display:flex;align-items:center;justify-content:space-between;padding:13px 22px;border-top:1px solid var(--line);font-size:9px;color:#a1a6b4}.mini-avatars{display:flex}.mini-avatar{width:23px;height:23px;border-radius:50%;background:#edeff7;color:#8087a0;display:grid;place-items:center;font-size:8px;font-weight:600;border:2px solid white;margin-right:-5px}
.attention-panel{background:#fffefd;border-color:#eee9df}.attention-panel .panel-header{padding-bottom:10px}.attention-icon{width:23px;height:23px;display:grid;place-items:center;background:#fbf2e4;border-radius:6px;color:#bd955d}.attention-icon svg{width:13px;height:13px}.attention-item{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;padding:13px 0;border-bottom:1px solid #f1eee8}.attention-item:last-child{border:0;padding-bottom:0}.attention-item:hover strong{color:var(--navy)}.attention-dot{width:5px;height:5px;background:#d1a369;border-radius:50%;margin-top:6px;flex-shrink:0}.attention-item strong{font-size:10px;font-weight:550;color:#676377;display:block}.attention-item p{font-size:9px;color:#aba5ab;margin-top:4px;line-height:1.5}.attention-item>svg{width:13px;height:13px;color:#bab5bb;margin-left:auto;margin-top:4px;flex-shrink:0}.schedule-today .panel-header{padding-bottom:12px}.today-event{display:flex;gap:12px;margin:0 22px;padding:12px 0;border-top:1px solid #f2f3f6;text-align:left;width:calc(100% - 44px);align-items:flex-start}.today-event:hover .event-name{color:var(--navy)}.event-time{font-size:9px;color:#9b9faf;width:37px;flex-shrink:0;padding-top:2px;font-variant-numeric:tabular-nums}.event-line{width:3px;height:32px;background:var(--stage-color);border-radius:4px;flex-shrink:0;margin-top:1px}.event-name{font-size:10px;font-weight:550;color:#62697d;display:block;line-height:1.4}.event-meta{font-size:9px;color:#a0a4b2;margin-top:4px}.schedule-footer{margin:3px 22px 15px;border-top:1px solid var(--line);padding-top:10px}.bottom-overview{display:grid;grid-template-columns:1fr 1fr;gap:21px}.capacity-total{font-size:22px;letter-spacing:-.8px;color:#4e566e;font-weight:600}.capacity-total span{font-size:10px;color:#a0a5b3;font-weight:400;letter-spacing:0}.bar-chart{height:110px;display:flex;align-items:flex-end;gap:18px;padding:12px 4px 0}.bar-col{height:100%;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:7px;min-width:0}.bar-track{width:100%;max-width:35px;height:80px;display:flex;align-items:flex-end;position:relative;border-radius:4px;background:#f5f6fa}.bar-fill{background:#b8bfd8;border-radius:4px;width:100%;min-height:3px}.bar-col.today .bar-fill{background:var(--navy)}.bar-col .bar-label{font-size:9px;color:#9ba1b0}.bar-col.today .bar-label{color:var(--navy);font-weight:600}.chart-caption{font-size:9px;color:#a0a5b3;border-top:1px solid var(--line);margin-top:13px;padding-top:12px;display:flex;align-items:center;gap:6px}.activity-item{display:flex;align-items:flex-start;gap:10px;position:relative;padding:9px 0}.activity-item+.activity-item{border-top:1px solid #f4f5f8}.activity-symbol{height:24px;width:24px;flex-shrink:0;border-radius:6px;background:#f3f4f9;display:grid;place-items:center;color:#9199b3}.activity-symbol svg{height:12px;width:12px}.activity-item strong{font-size:10px;font-weight:500;color:#70778a;line-height:1.5;display:block}.activity-item p{font-size:9px;color:#a7acb8;margin-top:2px}.activity-item time{font-size:8px;color:#b0b5c1;margin-left:auto;white-space:nowrap;margin-top:2px}
.toolbar{display:flex;align-items:center;gap:10px;padding:15px 19px;border-bottom:1px solid var(--line);flex-wrap:wrap}.search-input{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:6px;padding:0 10px;background:#fff;min-width:180px;height:34px}.search-input svg{width:14px;height:14px;color:#a0a6b5}.search-input input{border:none;outline:none;min-width:0;width:100%;background:none;font-size:11px;color:var(--ink)}.search-input input::placeholder{color:#a3a8b4}.filter-select{height:34px;border:1px solid var(--line);border-radius:6px;background:white;padding:0 25px 0 10px;color:#7f8698;font-size:10px;max-width:200px}.toolbar-spacer{flex:1}.view-toggle{display:flex;border:1px solid var(--line);padding:3px;border-radius:6px;gap:2px}.view-toggle button{padding:4px 7px;display:flex;align-items:center;gap:5px;border-radius:3px;font-size:9px;color:#959cad}.view-toggle button svg{width:14px;height:14px}.view-toggle button.active{background:#eceef7;color:var(--navy)}.filter-tabs{display:flex;align-items:center;gap:5px;overflow:auto;padding:13px 20px;border-bottom:1px solid var(--line)}.filter-tab{font-size:10px;color:#8b92a3;padding:6px 11px;border-radius:6px;white-space:nowrap;display:flex;align-items:center;gap:6px}.filter-tab.active{background:#eff1f8;color:var(--navy);font-weight:550}.filter-tab:hover{background:#f5f6fa}.filter-tab span{font-size:9px;opacity:.65}.board{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:15px;overflow:auto;padding:20px}.board-col{background:#f8f9fc;border-radius:9px;padding:13px;min-height:280px}.board-heading{font-size:11px;display:flex;align-items:center;gap:7px;font-weight:550;margin-bottom:15px}.board-heading span:last-child{margin-left:auto;font-size:10px;color:#a1a7b8}.job-card{display:block;text-align:left;width:100%;padding:13px;border:1px solid var(--line);border-radius:8px;background:white;margin-bottom:10px}.job-card:hover{border-color:#bdc5df;box-shadow:0 3px 8px #2a2f5f07}.job-card .job-name{margin:6px 0 5px}.job-card .material-line{display:flex;align-items:center;gap:6px;font-size:9px;color:#969dae;margin:13px 0}.job-card .material-line img{width:19px;height:19px;border-radius:4px;object-fit:cover}.job-card .card-bottom{border-top:1px solid #f1f2f7;padding-top:9px;display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#959caf}.empty-state{text-align:center;padding:50px 20px;color:#979eaf}.empty-state>svg{width:32px;height:32px;color:#b4bbce;margin-bottom:12px}.empty-state h3{font-size:13px;color:#778198;margin-bottom:6px}.empty-state p{font-size:11px;max-width:340px;margin:0 auto 15px}.inline-note{border:1px solid #e8eaf3;background:#f8f9fd;padding:12px 15px;border-radius:8px;color:#8a91a4;font-size:10px;line-height:1.7;display:flex;align-items:flex-start;gap:8px}.inline-note svg{width:15px;height:15px;flex-shrink:0;margin-top:1px}.inline-note.warning{background:#fdf9f0;border-color:#f1e6cf;color:#a49169}
.calendar-controls{display:flex;align-items:center;gap:8px}.calendar-label{font-size:13px;font-weight:550;color:#515a74;min-width:175px;text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));overflow:auto}.calendar-day{border-right:1px solid var(--line);min-height:450px;min-width:0}.calendar-day:last-child{border:0}.day-heading{text-align:center;padding:17px 8px;border-bottom:1px solid var(--line);background:#fcfcfe;color:#a4aabb;font-size:9px;letter-spacing:1px;text-transform:uppercase}.day-heading strong{display:block;font-size:22px;letter-spacing:-.8px;color:#7e879e;font-weight:500;margin-top:5px}.calendar-day.today .day-heading{background:#f5f6fc}.calendar-day.today .day-heading strong{color:var(--navy)}.calendar-day.today .day-heading:after{content:'Today';font-size:8px;letter-spacing:.2px;color:#8c96b6;text-transform:none}.calendar-day:not(.today) .day-heading:after{content:' ';display:block;height:12px}.day-events{padding:11px 8px;display:flex;flex-direction:column;gap:9px}.calendar-event{border:1px solid #00000003;border-left:3px solid var(--stage-color);background:var(--tint);border-radius:5px;padding:9px 8px;text-align:left;width:100%}.calendar-event:hover{filter:brightness(.98)}.calendar-event .cal-time{font-size:8px;color:var(--stage-color);display:flex;justify-content:space-between}.calendar-event strong{font-size:10px;color:#626a80;line-height:1.45;display:block;margin:6px 0}.calendar-event p{font-size:8px;color:#949bae;margin-top:4px}.calendar-event .cal-status{font-size:8px;color:var(--stage-color);margin-top:8px;display:flex;align-items:center;gap:4px}.calendar-legend{display:flex;align-items:center;gap:20px;padding:15px 22px;font-size:9px;color:#979eae;border-top:1px solid var(--line);flex-wrap:wrap}.calendar-legend span{display:flex;align-items:center;gap:5px}.legend-dot{width:6px;height:6px;background:var(--stage-color);border-radius:2px}.calendar-empty{font-size:9px;color:#c0c5d0;text-align:center;margin-top:50px}.agenda-date{padding:14px 22px;background:#f9fafc;font-size:11px;font-weight:550;color:#7a8399;border-block:1px solid var(--line)}.agenda-event{display:flex;align-items:center;padding:16px 22px;gap:20px;border-bottom:1px solid var(--line);width:100%;text-align:left}.agenda-event:hover{background:#fafbfe}.agenda-event .event-time{width:60px}.agenda-event .agenda-detail{flex:1}
.inventory-stats{display:flex;gap:25px;align-items:center;flex-wrap:wrap;margin:0 0 24px}.inventory-stat{padding-right:25px;border-right:1px solid var(--line)}.inventory-stat:last-child{border:0}.inventory-stat strong{font-size:24px;letter-spacing:-.5px;font-weight:600;color:#4e5671;margin-right:8px}.inventory-stat span{color:#9299aa;font-size:11px}.inventory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px;padding:20px}.slab-card{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:white}.slab-image{height:158px;position:relative;overflow:hidden;background:#f0f0ed}.slab-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}.slab-card:hover .slab-image img{transform:scale(1.025)}.slab-image .status-pill{position:absolute;top:11px;left:11px;background:#ffffffee;backdrop-filter:blur(6px)}.slab-image .location{position:absolute;bottom:10px;right:10px;border-radius:4px;background:#ffffffdd;padding:3px 6px;font-size:8px;color:#707481;display:flex;align-items:center;gap:4px}.slab-image .location svg{width:10px;height:10px}.slab-content{padding:15px}.slab-title{display:flex;align-items:center;justify-content:space-between;gap:6px}.slab-title h3{font-size:12px;color:#545d74;font-weight:550}.slab-content .slab-meta{font-size:9px;color:#a1a7b5;margin-top:5px}.slab-details{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:14px;padding-top:11px;font-size:9px;color:#939bad}.slab-bottom{padding-top:13px;display:flex;align-items:center;justify-content:space-between;gap:8px}.reserved-for{font-size:9px;color:#959aae}.reserved-for strong{color:#6f7892;font-weight:500}.customer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:20px}.customer-card{border:1px solid var(--line);border-radius:9px;padding:19px;text-align:left;transition:border-color .15s}.customer-card:hover{border-color:#c1c8de}.customer-card .avatar{width:37px;height:37px;margin-bottom:14px}.customer-card h3{color:#566078;font-size:12px;margin-bottom:5px}.customer-card .city{font-size:10px;color:#a1a8b8;margin-top:13px;display:flex;align-items:center;gap:5px}.customer-card .city svg{height:12px;width:12px}.customer-stats{border-top:1px solid var(--line);margin-top:14px;padding-top:12px;display:flex;justify-content:space-between;font-size:10px;color:#9ca3b4}.customer-stats strong{color:#6a7591;font-weight:550}.insight-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:21px}.horizontal-chart{display:flex;flex-direction:column;gap:20px;padding-top:5px}.horizontal-row .row-label{display:flex;justify-content:space-between;font-size:10px;color:#939bae;margin-bottom:8px}.horizontal-row .row-label strong{font-weight:500;color:#6d7894}.horizontal-track{height:7px;border-radius:4px;background:#f3f4f9}.horizontal-fill{height:100%;border-radius:4px;background:#adb7d5;min-width:3px}.insight-summary{display:flex;align-items:center;gap:25px;padding:0 22px 20px}.insight-summary strong{font-size:28px;color:#53607c;font-weight:600;letter-spacing:-1px}.insight-summary p{font-size:10px;color:#9ca4b7}.material-mix{display:flex;flex-direction:column;gap:17px}.mix-row{display:flex;align-items:center;gap:12px}.mix-row img{width:36px;height:36px;border-radius:6px;object-fit:cover}.mix-row .mix-name{flex:1}.mix-row strong{font-size:11px;font-weight:550;color:#707c98}.mix-row p{font-size:9px;color:#a0a9bd}.mix-row>span{font-size:11px;font-weight:550;color:#6f7d99}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.settings-section{padding:22px}.settings-section h3{margin-bottom:7px}.settings-section>p{font-size:11px;color:#929aad;line-height:1.8}.settings-section .btn{margin-top:18px}.connection-row{display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}.connection-row:last-child{border:0}.connection-row>svg{color:#9aa6bd}.connection-row strong{font-size:11px;font-weight:550;color:#6f7b92}.connection-row p{font-size:10px;color:#a3acbd;margin-top:3px}.connection-row .status-pill{margin-left:auto}
.overlay{position:fixed;inset:0;background:#20243f4f;backdrop-filter:blur(3px);z-index:100;display:flex;justify-content:flex-end;animation:fade-in .16s ease}.drawer{background:#fff;width:580px;max-width:100%;height:100dvh;display:flex;flex-direction:column;box-shadow:-10px 0 40px #111b3420;animation:slide-in .22s ease}.drawer-header{padding:25px 28px 22px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.drawer-header h2{font-size:23px;font-weight:600;letter-spacing:-.7px;line-height:1.3;margin-top:5px}.drawer-header .eyebrow{font-size:9px}.drawer-header p{font-size:11px;color:#959eb1;margin-top:7px}.drawer-tabs{display:flex;padding:0 25px;border-bottom:1px solid var(--line);gap:18px}.drawer-tab{font-size:11px;color:#a2aabd;padding:14px 3px;border-bottom:2px solid transparent}.drawer-tab.active{border-bottom-color:var(--navy);color:var(--navy);font-weight:600}.drawer-body{padding:25px 28px;overflow:auto;flex:1}.drawer-footer{border-top:1px solid var(--line);padding:18px 28px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff}.drawer-footer p{font-size:10px;color:#a3abba}.detail-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;padding-bottom:22px;margin-bottom:23px;border-bottom:1px solid var(--line)}.detail-metric small{display:block;color:#a0a9ba;font-size:9px;margin-bottom:7px}.detail-metric strong{font-size:20px;color:#53617e;font-weight:550;letter-spacing:-.6px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:21px;margin:20px 0}.detail-item label{font-size:9px;color:#a3adbf;display:block;margin-bottom:6px}.detail-item p{font-size:11px;color:#65738e;font-weight:450;display:flex;align-items:center;gap:7px;line-height:1.7}.detail-section{padding-top:21px;border-top:1px solid var(--line);margin-top:21px}.detail-section h3{font-size:12px;color:#69768e;margin-bottom:13px}.milestone{display:flex;align-items:flex-start;gap:14px;position:relative;padding:0 0 25px}.milestone:last-child{padding-bottom:0}.milestone:not(:last-child):before{content:'';position:absolute;left:15px;top:31px;width:1px;height:calc(100% - 31px);background:#e8ecf3}.milestone-symbol{width:31px;height:31px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;border:1px solid #e4e9f2;background:#f8f9fc;color:#9ea9bf}.milestone-symbol.done{background:#eef7f2;border-color:#e2f0e8;color:#69a389}.milestone-symbol svg{width:14px;height:14px}.milestone-info{flex:1;padding-top:1px}.milestone-info strong{font-size:11px;font-weight:550;color:#5f6e89}.milestone-info p{font-size:10px;color:#a1acbf;margin-top:4px}.milestone-actions{display:flex;gap:4px;margin-top:8px}.milestone .status-pill{margin-top:2px}.note-item{border:1px solid var(--line);border-radius:8px;padding:13px 15px;margin-bottom:12px}.note-item p{font-size:11px;line-height:1.8;color:#7a869d;white-space:pre-wrap}.note-item small{display:block;font-size:9px;color:#aab3c4;margin-top:9px}.note-compose textarea{min-height:90px}.note-compose .btn{margin-top:10px}.allocation-row{display:flex;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.allocation-row img{width:52px;height:42px;border-radius:6px;object-fit:cover}.allocation-row strong{font-size:11px;color:#718099;font-weight:550}.allocation-row p{font-size:10px;color:#a5afc0;margin-top:4px}.allocation-row .btn{margin-left:auto}
.modal-overlay{justify-content:center;align-items:center;padding:25px}.modal{width:640px;max-width:100%;max-height:calc(100dvh - 50px);border-radius:15px;overflow:hidden;background:white;display:flex;flex-direction:column;box-shadow:0 20px 100px #18203b33;animation:scale-in .18s ease}.modal.wide{width:900px}.modal.small{width:440px}.modal-header{padding:23px 26px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.modal-header h2{font-size:20px;font-weight:600;letter-spacing:-.5px}.modal-header p{font-size:11px;color:#9ca6b9;margin-top:5px}.modal-body{padding:24px 26px;overflow:auto;flex:1}.modal-footer{border-top:1px solid var(--line);padding:18px 26px;display:flex;align-items:center;justify-content:flex-end;gap:8px}.modal-footer .muted{margin-right:auto;font-size:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full{grid-column:1 / -1}.form-field>label{font-size:10px;color:#8794ac;font-weight:500}.form-field input,.form-field select,.form-field textarea{border:1px solid #e0e5ef;border-radius:6px;background:white;min-height:38px;padding:9px 11px;color:#64738f;font-size:11px;width:100%;outline:none}.form-field textarea{resize:vertical;line-height:1.8}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#9baad1;box-shadow:0 0 0 3px #f0f3fa}.form-field small{font-size:9px;color:#a2aec0}.field-group{display:flex;gap:7px;align-items:center}.field-group>*{min-width:0}.field-group span{font-size:10px;color:#a8b1c2}.form-section-title{font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:#a1acbf;padding-bottom:12px;margin-bottom:16px;border-bottom:1px solid var(--line)}.form-check{display:flex;align-items:center;gap:8px;font-size:11px;color:#8a97af}.form-check input{accent-color:var(--navy)}.estimate-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:25px}.estimate-summary{background:#f8f9fc;border:1px solid var(--line);border-radius:9px;padding:20px;align-self:start;position:sticky;top:0}.estimate-summary h3{font-size:12px;color:#6b7a95;margin-bottom:15px}.estimate-lines{display:flex;flex-direction:column;gap:13px;padding:17px 0}.estimate-line{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;color:#929fb7}.estimate-line strong{font-weight:500;color:#707f9b}.estimate-total{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e3e8f1;padding-top:17px;font-size:11px;color:#7c8ba6}.estimate-total strong{font-size:25px;letter-spacing:-.8px;font-weight:600;color:var(--navy)}.estimate-visual{background:#fff;border:1px solid var(--line);border-radius:7px;padding:16px;margin-top:15px}.estimate-visual svg{width:100%;height:115px}.estimate-visual p{text-align:center;font-size:8px;color:#a8b3c7;margin-top:5px}.estimate-disclaimer{font-size:9px;color:#acb5c6;line-height:1.7;margin-top:14px}.error-box{padding:11px 13px;background:#fef2ef;border:1px solid #f4d9d2;border-radius:6px;font-size:11px;color:#b87b6c;margin-bottom:17px}.success-box{padding:11px 13px;background:#eef7f2;border:1px solid #dceee3;border-radius:6px;font-size:11px;color:#62977d}.search-modal-input{width:100%;border:0;border-bottom:1px solid var(--line);outline:none;padding:22px 26px;font-size:16px;color:#687695}.search-results{padding:12px;overflow:auto;max-height:420px}.search-result{display:flex;align-items:center;gap:12px;padding:12px 14px;width:100%;text-align:left;border-radius:7px}.search-result:hover{background:#f3f5fb}.search-result>svg{color:#a4afc4}.search-result strong{font-size:12px;color:#6a7997;font-weight:550}.search-result p{font-size:10px;color:#a5b0c5;margin-top:3px}.search-result>span{margin-left:auto;font-size:9px;color:#aab3c5}.toast{position:fixed;left:calc(50% + var(--sidebar)/2);bottom:26px;transform:translateX(-50%);z-index:200;display:flex;gap:10px;align-items:center;background:#303956;color:#f5f6fb;border-radius:9px;padding:13px 19px;font-size:11px;box-shadow:0 8px 30px #17213d33;animation:toast-in .2s ease;max-width:90vw}.toast svg{width:16px;height:16px;color:#a8d2bb}.toast.error svg{color:#e5ad9f}.sources-list a{display:block;font-size:11px;color:#7182aa;padding:7px 0}.data-warning{padding:11px 16px;border-radius:8px;background:#fcf9f0;border:1px solid #eee5cf;color:#a69879;font-size:10px;margin-bottom:20px}.amount{font-weight:500;color:#66738d}.print-header{display:none}
@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes slide-in{from{transform:translateX(35px);opacity:.5}to{transform:translateX(0);opacity:1}}@keyframes scale-in{from{transform:scale(.98);opacity:.6}to{transform:scale(1);opacity:1}}@keyframes toast-in{from{bottom:12px;opacity:0}to{bottom:26px;opacity:1}}
@media(min-width:1600px){.overview-grid{grid-template-columns:minmax(0,1fr) 345px}.main{padding-top:38px}.metric{padding:22px}.data-table td{padding-block:18px}.slab-image{height:185px}}
@media(max-width:1250px){:root{--sidebar:205px}.sidebar{padding-inline:12px}.brand{padding-inline:16px}.brand img{width:148px}.topbar{padding-inline:24px}.main{padding:27px 24px 20px}.overview-grid{grid-template-columns:minmax(0,1fr) 275px;gap:17px}.panel-header{padding-inline:18px}.panel-body{padding-inline:18px}.data-table td,.data-table th{padding-inline:13px}.data-table th:first-child,.data-table td:first-child{padding-left:18px}.global-search{width:195px}.metrics-grid{gap:13px}.metric{padding:16px}.bottom-overview{gap:17px}.home-table .value-col{display:none}.inventory-grid{gap:15px}.slab-image{height:140px}.nav-button{font-size:11px}.top-actions{gap:12px}}
@media(max-width:1050px){.overview-grid{grid-template-columns:minmax(0,1fr)}.overview-right{display:grid;grid-template-columns:1fr 1fr;align-items:start}.global-search{width:170px}.breadcrumb .parent,.breadcrumb .separator{display:none}.inventory-grid,.customer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.insight-grid{grid-template-columns:1fr}.top-actions{gap:9px}.page-header{align-items:flex-start}.header-actions{padding-top:3px}.page-header h1{font-size:26px}.metric-value{font-size:27px}.metric-note{font-size:9px}.metric-top{font-size:10px}.metric-icon{width:24px;height:24px}.table-scroll .data-table{min-width:580px}.home-table .value-col{display:table-cell}.calendar-grid{min-width:900px}.calendar-wrap{overflow:auto}.settings-grid{grid-template-columns:1fr}}
@media(max-width:800px){:root{--sidebar:0px}.sidebar{transform:translateX(-100%);width:230px;box-shadow:10px 0 50px #17213d20;transition:transform .2s}.sidebar.open{transform:translateX(0)}.sidebar-scrim{position:fixed;inset:0;background:#27304b45;z-index:29}.mobile-menu{display:inline-flex}.workspace{margin-left:0}.topbar{height:64px;padding-inline:20px}.top-actions .avatar{display:none}.top-actions .top-divider{display:none}.global-search{width:175px}.main{padding:25px 20px 20px}.metrics-grid{gap:12px}.page-header{margin-bottom:24px}.page-header h1{font-size:27px}.metric{padding:15px;min-height:120px}.metric-top{font-size:10px}.metric-icon{display:none}.metric-value{font-size:29px}.overview-right{gap:17px}.page-footer{flex-wrap:wrap;justify-content:center;text-align:center}.toast{left:50%}.inventory-grid,.customer-grid{padding:17px}.modal-overlay{padding:15px}.modal{max-height:calc(100dvh - 30px)}.estimate-layout{gap:18px}.breadcrumb{gap:6px}.breadcrumb .current{font-size:10px}.header-actions .btn{font-size:10px;padding-inline:10px}}
@media(max-width:580px){.main{padding:21px 16px 18px}.topbar{padding-inline:14px}.global-search{width:32px;height:32px;padding:7px;border:0}.global-search span,.global-search kbd{display:none}.top-actions{gap:7px}.demo-pill{font-size:8px;padding:4px 6px}.page-header{flex-wrap:wrap;gap:17px;margin-bottom:20px}.page-header h1{font-size:27px}.page-subtitle{font-size:11px;max-width:300px;line-height:1.6}.header-actions{padding-top:0;gap:7px}.header-actions .btn{height:33px}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-bottom:18px}.metric{min-height:115px;padding:14px 16px}.metric-icon{display:grid;width:23px;height:23px}.metric-top{font-size:10px}.metric-value{font-size:28px;margin-top:7px}.metric-note{font-size:9px}.overview-grid{gap:17px}.stack{gap:17px}.overview-right{display:flex;flex-direction:column}.overview-right>.panel{width:100%}.bottom-overview{grid-template-columns:1fr}.panel-header{padding:17px 17px 14px}.panel-header h2{font-size:13px}.pipeline{padding:3px 17px 20px;gap:9px}.pipeline-stage .stage-top{flex-direction:column;align-items:flex-start;gap:8px}.pipeline-stage .stage-name{font-size:8px}.pipeline-stage strong{font-size:21px}.pipeline-stage .stage-top{margin-bottom:10px}.panel-body{padding-inline:17px}.toolbar{padding:13px;gap:8px}.toolbar .search-input{width:100%;flex:1;min-width:165px}.toolbar .filter-select{max-width:150px}.filter-tabs{padding:10px 13px;gap:2px}.filter-tab{padding:6px 9px}.inventory-grid,.customer-grid{grid-template-columns:1fr;padding:14px;gap:15px}.slab-image{height:180px}.slab-content{padding:16px}.slab-title h3{font-size:14px}.slab-meta{font-size:10px!important}.inventory-stats{gap:16px;margin-bottom:20px}.inventory-stat{padding-right:16px}.inventory-stat strong{font-size:21px;display:block;line-height:1.3}.inventory-stat span{font-size:9px}.calendar-controls{width:100%;justify-content:space-between}.calendar-label{font-size:11px;min-width:auto}.estimate-layout{grid-template-columns:1fr}.estimate-summary{position:static}.modal-overlay{padding:9px}.modal{max-height:calc(100dvh - 18px);border-radius:12px}.modal-header{padding:19px 20px 17px}.modal-body{padding:20px}.modal-footer{padding:14px 20px;flex-wrap:wrap}.modal-footer .muted{width:100%;margin-bottom:5px}.form-grid{gap:14px}.drawer-header{padding:22px}.drawer-header h2{font-size:21px}.drawer-body{padding:21px}.drawer-tabs{padding-inline:21px;gap:17px}.drawer-tab{font-size:10px}.drawer-footer{padding:16px 21px}.detail-grid{gap:18px}.detail-metrics{gap:10px}.detail-metric strong{font-size:18px}.detail-metric small{font-size:8px}.milestone .status-pill{font-size:8px;padding:3px 6px}.insight-summary{gap:20px}.page-footer{font-size:8px}.toast{width:calc(100% - 32px);justify-content:center;bottom:18px}.settings-section{padding:19px}.settings-section>p{font-size:10px}.customer-card .avatar{float:left;margin-right:13px}.customer-card .city{clear:both;padding-top:1px}.data-warning{font-size:9px}.header-actions .btn svg{width:14px;height:14px}.toolbar-spacer{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{body{background:#fff;font-size:11px}.sidebar,.topbar,.page-footer,.header-actions,.toast,.overlay .drawer-footer,.modal-footer,.icon-button,.drawer-tabs,.btn,.text-button,.no-print{display:none!important}.workspace{margin:0}.main{padding:0}.overlay{position:static;background:none;display:block;backdrop-filter:none}.drawer,.modal{width:100%;height:auto;max-height:none;box-shadow:none;overflow:visible}.modal-body,.drawer-body{overflow:visible}.overlay~*{display:none}.print-active #app{display:none}.print-header{display:block;font-size:10px;color:#999}.panel{break-inside:avoid}.estimate-layout{display:grid;grid-template-columns:1.1fr 1fr}.estimate-summary{position:static}.data-table td{padding:10px}}
/* Full command-center navigation */
.sidebar{overflow-y:auto;padding-top:22px;scrollbar-width:thin}
.brand{padding-bottom:15px}.nav-label{margin-top:15px;margin-bottom:7px}
.nav-button{padding-top:9px;padding-bottom:9px;font-size:11px}
.tracker-launch{display:flex;align-items:center;gap:10px;padding:12px;background:linear-gradient(120deg,#f0f0f8,#f7f7fc);border:1px solid #e7e7f1;border-radius:9px;width:100%;text-align:left;margin-top:17px;color:var(--navy)}
.tracker-launch>svg{height:18px;width:18px;flex-shrink:0}.tracker-launch>svg:last-child{margin-left:auto;height:12px;width:12px}
.tracker-launch strong{font-size:11px;font-weight:650;display:block}.tracker-launch small{font-size:8px;display:block;color:#989bb0;margin-top:3px}
.watch-launch{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;font-size:9px;color:#9a9fb2;padding:11px 0}
.watch-launch svg{width:13px;height:13px}.watch-launch:hover{color:var(--navy)}
@media(max-height:1150px){.facility-card{display:none}.user-card{padding-top:12px;padding-bottom:0}.brand-caption{margin-top:10px}}
@media(max-height:850px){.sidebar{padding-top:18px}.brand{padding-bottom:8px}.brand img{width:140px}.brand-caption{font-size:8px;letter-spacing:2px}.nav-button{padding-top:7px;padding-bottom:7px;margin:2px 0}.nav-label{margin-top:11px;font-size:8px}.tracker-launch{margin-top:12px;padding:10px}.user-card{margin-top:2px}}
.metric-note{display:block;line-height:1.6}.metric-note svg{vertical-align:-2px;margin-right:4px}
@media(max-width:580px){.metric-note{font-size:9px;min-height:29px}.metric-note strong{white-space:nowrap}}
