@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap";:root{color:#152033;font-synthesis:none;text-rendering:optimizelegibility;--navy:#0c1c35;--navy-soft:#142846;--blue:#2458c6;--blue-deep:#173d8f;--blue-pale:#edf3ff;--green:#25b958;--green-deep:#14803b;--green-pale:#eaf9ef;--amber:#b8740c;--amber-pale:#fff6df;--purple:#7455c9;--purple-pale:#f3efff;--red:#c0383f;--red-pale:#fff0f0;--ink:#152033;--muted:#647087;--line:#dfe5ed;--surface:#fff;--sidebar:252px;--shadow-sm:0 1px 2px #0f1e370a, 0 5px 18px #0f1e370a;--shadow-lg:0 24px 70px #09193233;background:#f3f6fa;font-family:DM Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{min-width:320px;min-height:100%}body{background:#f3f6fa;min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.025em;font-family:Manrope,DM Sans,sans-serif}h1{margin-bottom:.45rem;font-size:clamp(1.75rem,3vw,2.35rem);line-height:1.15}h2{margin-bottom:0;font-size:1.08rem}h3{margin-bottom:0;font-size:.96rem}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #2458c63d}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.app-frame{min-height:100vh}.sidebar{width:var(--sidebar);background:var(--navy);color:#d8e2f2;flex-direction:column;display:flex}.desktop-sidebar{z-index:20;position:fixed;inset:0 auto 0 0}.brand-block{border-bottom:1px solid #ffffff17;flex-direction:column;justify-content:center;align-items:flex-start;gap:.15rem;height:91px;padding:.8rem 1.25rem;display:flex}.brand-logo{width:180px;height:auto;display:block}.brand-mark{color:#fff;letter-spacing:-.08em;background:linear-gradient(145deg, var(--blue), var(--green));border-radius:12px 12px 12px 4px;flex:none;place-items:center;width:38px;height:38px;font-family:Manrope,sans-serif;font-size:.9rem;font-weight:800;display:grid;box-shadow:0 7px 18px #1053b852}.brand-name,.brand-product{display:block}.brand-name{color:#fff;font-family:Manrope,sans-serif;font-size:.96rem;font-weight:600;line-height:1.2}.brand-name b{color:#32cb67}.brand-product{color:#92a4bd;letter-spacing:.14em;text-transform:uppercase;margin-top:.18rem;font-size:.62rem}.main-nav{flex:1;padding:1.3rem .8rem;overflow-y:auto}.nav-heading{color:#70849f;letter-spacing:.14em;text-transform:uppercase;margin:0 0 .45rem .65rem;font-size:.64rem;font-weight:700}.nav-heading-secondary{margin-top:1.9rem}.nav-link{color:#aebdd0;border-radius:9px;align-items:center;gap:.75rem;min-height:44px;margin:.15rem 0;padding:.65rem .72rem;font-size:.87rem;font-weight:500;transition:all .15s;display:flex}.nav-link:hover{color:#f1f6ff;background:#ffffff0e}.nav-link.active{color:#fff;background:linear-gradient(90deg,#265bc840,#265bc81a);box-shadow:inset 3px 0 #33c966}.sidebar-profile{border-top:1px solid #ffffff17;align-items:center;gap:.65rem;padding:1rem;display:flex}.avatar{color:#fff;background:#2a4770;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:.76rem;font-weight:700;display:grid}.profile-copy{flex:1;min-width:0}.profile-copy strong,.profile-copy span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.profile-copy strong{color:#fff;font-size:.78rem}.profile-copy span{color:#8194ae;margin-top:.18rem;font-size:.66rem}.icon-button{width:38px;height:38px;color:inherit;background:0 0;border:0;border-radius:9px;place-items:center;display:inline-grid}.icon-button:hover{background:#8091a61f}.icon-button.bordered{border:1px solid var(--line);color:var(--ink);background:#fff}.sidebar-collapse{z-index:22;left:calc(var(--sidebar) - 13px);background:var(--navy-soft);color:#aab9cc;border:1px solid #314866;border-radius:50%;place-items:center;width:27px;height:27px;display:grid;position:fixed;bottom:80px}.mobile-header,.mobile-menu-layer{display:none}.app-main{min-height:100vh;margin-left:var(--sidebar);padding:2rem clamp(1.5rem,3vw,3.2rem) 4rem;animation:.2s page-in}@keyframes page-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.page-stack{flex-direction:column;gap:1.45rem;max-width:1540px;margin:0 auto;display:flex}.page-header{justify-content:space-between;align-items:flex-end;gap:1.5rem;min-height:65px;display:flex}.page-header h1{margin:0}.page-description{color:var(--muted);margin:.5rem 0 0;font-size:.9rem}.page-actions{flex:none;gap:.6rem;display:flex}.eyebrow{color:var(--blue);letter-spacing:.13em;text-transform:uppercase;margin-bottom:.38rem;font-size:.67rem;font-weight:700}.eyebrow-light{color:#79d995}.button{border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;min-height:40px;padding:.62rem .9rem;font-size:.82rem;font-weight:700;transition:all .16s;display:inline-flex}.button:disabled{cursor:not-allowed;opacity:.5}.button-primary{color:#fff;background:var(--blue);box-shadow:0 5px 14px #2458c633}.button-primary:hover:not(:disabled){background:#1949ad;transform:translateY(-1px)}.button-secondary{color:#34435a;border-color:var(--line);background:#fff}.button-secondary:hover:not(:disabled){background:#f8fafc;border-color:#c6d0dc}.button-full{width:100%}.button-small{min-height:34px;padding:.45rem .65rem}.text-link{color:var(--blue);background:0 0;border:0;align-items:center;gap:.35rem;padding:0;font-size:.79rem;font-weight:700;display:inline-flex}.text-link:hover{color:var(--blue-deep)}.card,.toolbar-card,.job-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:12px}.card{padding:1.25rem}.card-heading{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.card-heading.compact{margin-bottom:.7rem}.card-heading .eyebrow{margin-bottom:.25rem}.card-heading>svg{color:#8090a6}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;display:grid}.metric-card{align-items:center;gap:1rem;min-height:122px;padding:1rem;display:flex}.metric-icon{border-radius:11px;flex:none;place-items:center;width:43px;height:43px;display:grid}.metric-icon svg{width:21px;height:21px}.metric-blue{color:var(--blue);background:var(--blue-pale)}.metric-green{color:var(--green-deep);background:var(--green-pale)}.metric-amber{color:var(--amber);background:var(--amber-pale)}.metric-purple{color:var(--purple);background:var(--purple-pale)}.metric-card span,.metric-card small{display:block}.metric-card span{color:var(--muted);font-size:.74rem;font-weight:600}.metric-card strong{color:var(--ink);margin:.08rem 0;font-family:Manrope,sans-serif;font-size:1.65rem;line-height:1.2;display:block}.metric-card small{color:#929bac;font-size:.67rem}.dashboard-grid{grid-template-columns:minmax(0,1.75fr) minmax(280px,.75fr);align-items:start;gap:1rem;display:grid}.dashboard-side-stack{gap:1rem;display:grid}.schedule-list{margin:0 -1.25rem -1.25rem}.schedule-row{border-top:1px solid #edf0f4;gap:.9rem;padding:.9rem 1.25rem;display:flex}.schedule-row:hover{background:#fafbfd}.date-tile{width:46px;height:51px;color:var(--blue);background:var(--blue-pale);text-align:center;border-radius:9px;flex:none;place-content:center;display:grid}.date-tile strong{font-family:Manrope,sans-serif;font-size:1.08rem;line-height:1}.date-tile span{text-transform:uppercase;margin-top:.15rem;font-size:.57rem;font-weight:700}.schedule-main{flex:1;min-width:0}.row-title-line{justify-content:space-between;align-items:center;gap:.7rem;display:flex}.schedule-main h3{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.schedule-main p{color:var(--muted);margin:.2rem 0 .12rem;font-size:.74rem}.schedule-main>span{color:#8993a3;font-size:.68rem}.status-pill{white-space:nowrap;border-radius:99px;flex:none;justify-content:center;align-items:center;min-height:22px;padding:.17rem .48rem;font-size:.63rem;font-weight:700;display:inline-flex}.status-neutral{color:#5e6b7c;background:#eff2f6}.status-positive{color:var(--green-deep);background:var(--green-pale)}.status-warning{color:#94600c;background:var(--amber-pale)}.status-danger{color:var(--red);background:var(--red-pale)}.status-blue{color:var(--blue-deep);background:var(--blue-pale)}.alert-list{display:grid}.alert-count{border-top:1px solid #edf0f4;align-items:center;gap:.7rem;padding:.68rem 0;display:flex}.alert-count:first-child{border-top:0}.alert-count .metric-icon{width:36px;height:36px}.alert-count .metric-icon svg{width:17px}.alert-count strong,.alert-count span{display:block}.alert-count strong{font-family:Manrope,sans-serif}.alert-count span{color:var(--muted);font-size:.72rem}.team-summary{text-align:center;padding:.25rem 0 1rem}.team-summary strong{color:var(--blue-deep);font-family:Manrope,sans-serif;font-size:2.5rem}.team-summary p{margin:-.15rem 0 .45rem;font-weight:700}.team-summary span{color:var(--muted);font-size:.72rem}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:.76rem}th{border-bottom:1px solid var(--line);color:#788396;letter-spacing:.07em;text-align:left;text-transform:uppercase;padding:.65rem .75rem;font-size:.63rem}td{color:#4e5d73;border-bottom:1px solid #edf0f4;padding:.78rem .75rem}td strong,td span{display:block}td strong{color:var(--ink)}td span{color:#8792a3;margin-top:.12rem;font-size:.68rem}.danger-text{color:var(--red);font-weight:700}.toolbar-card{align-items:center;gap:1rem;padding:.75rem;display:flex}.search-field{border:1px solid var(--line);color:#8792a3;background:#fafbfd;border-radius:8px;flex:1;align-items:center;gap:.55rem;min-width:260px;padding:0 .7rem;display:flex}.search-field:focus-within{background:#fff;border-color:#9db7eb;box-shadow:0 0 0 3px #2458c617}.search-field input{width:100%;min-height:39px;color:var(--ink);background:0 0;border:0;outline:0;font-size:.8rem}.filter-pills{gap:.3rem;display:flex;overflow-x:auto}.filter-pill{color:#667287;white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:.5rem .7rem;font-size:.72rem;font-weight:700}.filter-pill:hover,.filter-pill.active{color:var(--blue-deep);background:var(--blue-pale)}.jobs-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.job-card{padding:1rem 1.1rem;transition:all .16s}.job-card:hover{border-color:#c8d5e9;transform:translateY(-1px);box-shadow:0 7px 24px #19376414}.job-card-top{justify-content:space-between;gap:1rem;display:flex}.job-card-top>div{min-width:0}.job-number{color:var(--blue);letter-spacing:.08em;text-transform:uppercase;font-size:.67rem;font-weight:700}.job-card h2{text-overflow:ellipsis;white-space:nowrap;margin-top:.25rem;overflow:hidden}.job-card-top p{color:var(--muted);margin:.28rem 0 0;font-size:.75rem}.job-card-dates{background:#f7f9fc;border-radius:8px;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:1rem 0;padding:.8rem;display:grid}.job-card-dates span,.job-card-dates strong{display:block}.job-card-dates span{color:#8993a2;font-size:.62rem}.job-card-dates strong{color:#4c5a6f;margin-top:.2rem;font-size:.7rem}.job-card-dates .ready-text{color:var(--green-deep)}.job-card-footer{color:#758094;align-items:center;gap:1rem;font-size:.68rem;display:flex}.job-card-footer>span{align-items:center;gap:.3rem;display:flex}.job-card-footer .text-link{margin-left:auto}.back-link{color:#667389;align-items:center;gap:.35rem;width:fit-content;margin-bottom:-.65rem;font-size:.72rem;font-weight:700;display:inline-flex}.back-link:hover{color:var(--blue)}.job-detail-grid{grid-template-columns:minmax(0,1fr) 325px;align-items:start;gap:1rem;display:grid}.job-detail-main,.job-detail-side{gap:1rem;display:grid}.job-detail-side{position:sticky;top:1rem}.milestone-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;display:grid}.milestone{background:#fafbfd;border:1px solid #e7ebf0;border-radius:9px;gap:.65rem;padding:.8rem;display:flex}.milestone.complete{background:#f7fcf8;border-color:#ccebd6}.milestone-icon{color:#7b8799;background:#edf1f5;border-radius:8px;flex:none;place-items:center;width:32px;height:32px;display:grid}.milestone.complete .milestone-icon{color:var(--green-deep);background:var(--green-pale)}.milestone-icon svg{width:16px}.milestone span,.milestone strong,.milestone small{display:block}.milestone span{color:#7d889a;font-size:.6rem}.milestone strong{color:#344259;margin:.2rem 0;font-size:.72rem}.milestone small{color:#959eac;font-size:.58rem;line-height:1.3}.job-risk-banner{color:#8f343a;background:var(--red-pale);border-radius:8px;gap:.7rem;margin-top:1rem;padding:.8rem;display:flex}.job-risk-banner>svg{flex:none}.job-risk-banner strong{font-size:.76rem;display:block}.job-risk-banner p{margin:.2rem 0 0;font-size:.68rem;line-height:1.45}.segment-list{margin:0 -1.25rem -1.25rem}.segment-list article{border-top:1px solid #edf0f4;grid-template-columns:130px minmax(0,1fr) auto;align-items:center;gap:.85rem;padding:.8rem 1.25rem;display:grid}.segment-date strong,.segment-date span{display:block}.segment-date strong{font-size:.72rem}.segment-date span{color:#8993a4;margin-top:.1rem;font-size:.64rem}.segment-list h3{margin-bottom:.12rem}.segment-list p{color:var(--muted);margin:0;font-size:.68rem}.note-form{grid-template-columns:115px minmax(0,1fr) auto;gap:.55rem;margin-bottom:1rem;display:grid}.note-form select,.note-form textarea{border:1px solid var(--line);min-height:42px;color:var(--ink);resize:vertical;background:#fff;border-radius:8px;outline:0;padding:.6rem;font-size:.73rem}.note-form .form-error{grid-column:1/-1}.notes-list{margin:0 -1.25rem -1.25rem}.notes-list article{border-top:1px solid #edf0f4;gap:.7rem;padding:.85rem 1.25rem;display:flex}.notes-list article>div:last-child{flex:1;min-width:0}.note-heading{align-items:center;gap:.5rem;display:flex}.note-heading strong{font-size:.72rem}.note-heading>span:last-child{color:#909aa9;margin-left:auto;font-size:.6rem}.notes-list p{color:#4c5a6e;white-space:pre-wrap;margin:.35rem 0 0;font-size:.72rem;line-height:1.5}.status-form{gap:.6rem;display:grid}.status-form select,.status-form textarea{border:1px solid var(--line);width:100%;min-height:40px;color:var(--ink);resize:vertical;background:#fff;border-radius:8px;outline:0;padding:.6rem;font-size:.72rem}.hours-progress>div:first-child{align-items:baseline;gap:.4rem;display:flex}.hours-progress>div:first-child strong{font-family:Manrope,sans-serif;font-size:2rem}.hours-progress>div:first-child span{color:var(--muted);font-size:.68rem}.hours-progress>i{background:#edf1f5;border-radius:99px;height:8px;margin:.5rem 0;display:block;overflow:hidden}.hours-progress>i b{border-radius:inherit;background:linear-gradient(90deg, var(--blue), var(--green));height:100%;display:block}.hours-progress-total{color:#7d8899;justify-content:space-between;font-size:.63rem;display:flex}.detail-list{margin:0}.detail-list>div{border-top:1px solid #edf0f4;justify-content:space-between;gap:1rem;padding:.55rem 0;display:flex}.detail-list>div:first-child{border-top:0}.detail-list dt{color:#7b8799;font-size:.65rem}.detail-list dd{color:#3f4d62;text-align:right;align-items:center;gap:.3rem;margin:0;font-size:.68rem;font-weight:700;display:flex}.timeline{position:relative}.timeline:before{content:"";background:#dfe5ec;width:1px;position:absolute;top:8px;bottom:8px;left:4px}.timeline article{grid-template-columns:10px 1fr;gap:.6rem;padding:.45rem 0;display:grid;position:relative}.timeline article>i{z-index:1;background:var(--blue);border:2px solid #fff;border-radius:50%;width:9px;height:9px;margin-top:.25rem;box-shadow:0 0 0 1px #b9c9e7}.timeline strong,.timeline span{display:block}.timeline strong{font-size:.65rem}.timeline p{color:#657187;margin:.15rem 0;font-size:.62rem}.timeline span,.muted-copy{color:#929cab;font-size:.58rem}.calendar-toolbar{border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fff;border-radius:11px;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem;display:flex}.calendar-nav,.calendar-filters{align-items:center;gap:.5rem;display:flex}.calendar-nav h2{min-width:195px;margin-left:.35rem}.calendar-filters{color:#8290a5}.calendar-filters select{border:1px solid var(--line);color:#4c5a6e;background:#fff;border-radius:7px;min-height:38px;padding:0 1.8rem 0 .65rem;font-size:.72rem}.calendar-legend{color:var(--muted);justify-content:flex-end;gap:1rem;margin-top:-.8rem;font-size:.67rem;display:flex}.calendar-legend span{align-items:center;gap:.35rem;display:flex}.legend-dot{background:#ccd3dd;border-radius:50%;width:8px;height:8px}.legend-dot.locked{background:var(--blue)}.legend-dot.provisional{background:#d8901e}.legend-dot.mobile{background:var(--green)}.week-calendar{border:1px solid var(--line);min-width:820px;min-height:720px;box-shadow:var(--shadow-sm);background:#fff;border-radius:12px;grid-template-rows:58px minmax(660px,1fr);grid-template-columns:62px repeat(5,minmax(145px,1fr));display:grid;overflow:hidden}.week-header{border-left:1px solid var(--line);border-bottom:1px solid var(--line);color:#788397;justify-content:center;align-items:center;gap:.4rem;display:flex}.week-header span{text-transform:uppercase;font-size:.66rem;font-weight:700}.week-header strong{border-radius:50%;place-items:center;width:29px;height:29px;font-family:Manrope,sans-serif;display:grid}.week-header.today strong{color:#fff;background:var(--blue)}.time-column-header{border-left:0}.time-column{border-right:1px solid var(--line);color:#8a95a6;position:relative}.time-column span{text-align:center;font-size:.6rem;position:absolute;left:0;right:0;transform:translateY(-50%)}.time-column span:first-child{top:0%;transform:translateY(7px)}.time-column span:nth-child(2){top:10%}.time-column span:nth-child(3){top:20%}.time-column span:nth-child(4){top:30%}.time-column span:nth-child(5){top:40%}.time-column span:nth-child(6){top:50%}.time-column span:nth-child(7){top:60%}.time-column span:nth-child(8){top:70%}.time-column span:nth-child(9){top:80%}.time-column span:nth-child(10){top:90%}.day-column{border-right:1px solid var(--line);background:#fff;position:relative}.day-column:last-child{border-right:0}.day-column.today{background:#fbfdff}.hour-line{border-bottom:1px solid #edf0f4;height:10%}.calendar-event{z-index:2;border-left:3px solid var(--blue);color:#173a83;background:#eaf1ff;border-radius:5px;min-height:46px;padding:.38rem .44rem;position:absolute;left:5px;right:5px;overflow:hidden;box-shadow:0 2px 6px #1c43931f}.calendar-event.provisional{color:#77500b;background:#fff5dc;border-left-color:#d8901e}.calendar-event.mobile{box-shadow:inset 0 -3px #25b9588c}.calendar-event-title{justify-content:space-between;align-items:center;gap:.25rem;font-size:.62rem;display:flex}.calendar-event h3{text-overflow:ellipsis;white-space:nowrap;margin:.18rem 0;font-size:.72rem;overflow:hidden}.calendar-event>span{font-size:.58rem}.event-meta{flex-wrap:wrap;gap:.4rem;margin-top:.2rem;font-size:.55rem;display:flex}.event-meta span{align-items:center;gap:.2rem;display:inline-flex}.event-meta svg{width:9px;height:9px}.calendar-page{overflow-x:auto}.team-layout{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);align-items:start;gap:1rem;display:grid}.worker-list{margin:0 -1.25rem -1.25rem}.worker-row{border-top:1px solid #edf0f4;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.8rem;padding:.85rem 1.25rem;display:grid}.worker-avatar{color:#fff}.worker-row h3{margin-bottom:.1rem}.worker-row p{color:var(--muted);margin:0;font-size:.68rem}.worker-hours{text-align:right}.worker-hours strong,.worker-hours span{display:block}.worker-hours strong{font-family:Manrope,sans-serif}.worker-hours span{color:var(--muted);font-size:.63rem}.availability-list article{border-top:1px solid #edf0f4;grid-template-columns:auto 1fr auto;align-items:center;gap:.7rem;padding:.7rem 0;display:grid}.availability-list article:first-child{border-top:0}.availability-icon{border-radius:8px;place-items:center;width:34px;height:34px;display:grid}.availability-icon svg{width:16px}.availability-icon.leave{color:var(--purple);background:var(--purple-pale)}.availability-icon.overtime{color:var(--green-deep);background:var(--green-pale)}.availability-list h3{margin-bottom:.12rem}.availability-list p,.availability-list span{color:var(--muted);margin:0;font-size:.65rem}.availability-list article>strong{color:#58677c;font-size:.75rem}.report-placeholder{flex-direction:column;justify-content:center;align-items:center;height:320px;display:flex}.report-bars{border-bottom:1px solid var(--line);background:repeating-linear-gradient(0deg,#0000 0 44px,#eef1f5 45px);align-items:flex-end;gap:1rem;width:min(720px,90%);height:190px;padding:1rem 1rem 0;display:flex}.report-bars i{background:linear-gradient(to top, var(--blue), #5482de);opacity:.78;border-radius:4px 4px 0 0;flex:1;min-width:8px}.report-placeholder p{color:var(--muted);margin:1.2rem 0 0;font-size:.75rem}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.report-workers{grid-column:1/-1}.pipeline-chart,.completeness-list{gap:.72rem;display:grid}.pipeline-chart>div{grid-template-columns:120px minmax(0,1fr) 28px;align-items:center;gap:.65rem;display:grid}.pipeline-chart span,.completeness-list span{color:#5b697d;font-size:.68rem;font-weight:700}.pipeline-chart i,.completeness-list i{background:#edf1f6;border-radius:5px;height:9px;overflow:hidden}.pipeline-chart i b,.completeness-list i b{border-radius:inherit;background:linear-gradient(90deg, var(--blue), #5f8ce3);min-width:3px;height:100%;display:block}.pipeline-chart>div>strong,.completeness-list>div>strong{color:#516077;text-align:right;font-size:.7rem}.completeness-list>div{grid-template-columns:150px minmax(0,1fr) 38px;align-items:center;gap:.65rem;display:grid}.completeness-list span{justify-content:space-between;gap:.4rem;display:flex}.completeness-list span b{color:#9aa4b3;font-size:.58rem}.completeness-list i b{background:linear-gradient(90deg, var(--green-deep), var(--green))}.notification-list{margin:-1.25rem}.notification-list article{border-bottom:1px solid #edf0f4;gap:.8rem;padding:1rem 1.25rem;display:flex}.notification-list article.unread{background:#f7faff}.notification-icon{width:38px;height:38px;color:var(--blue);background:var(--blue-pale);border-radius:50%;flex:none;place-items:center;display:grid}.notification-icon svg{width:17px}.notification-icon.danger{color:var(--red);background:var(--red-pale)}.notification-icon.purple{color:var(--purple);background:var(--purple-pale)}.notification-list h2{font-size:.9rem}.notification-list p{color:#536177;margin:.25rem 0;font-size:.76rem}.notification-list article>div:last-child>span{color:#8b96a7;font-size:.65rem}.action-notifications{margin-top:0}.action-notifications article:last-child{border-bottom:0}.notification-list .text-link{margin-top:.45rem;display:inline-flex}.push-card{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;display:grid}.push-card-icon{width:48px;height:48px;color:var(--blue);background:var(--blue-pale);border-radius:14px;place-items:center;display:grid}.push-card-icon svg{width:22px}.push-card h2{margin:.1rem 0 .3rem;font-size:1rem}.push-card p:not(.eyebrow){color:#657186;margin:0;font-size:.76rem}.settings-tabs{border:1px solid var(--line);background:#fff;border-radius:9px;align-self:flex-start;gap:.3rem;padding:.3rem;display:flex}.settings-tabs button{color:#69758a;background:0 0;border:0;border-radius:6px;align-items:center;gap:.45rem;min-height:37px;padding:0 .75rem;font-size:.74rem;font-weight:700;display:flex}.settings-tabs button svg{width:16px}.settings-tabs button.active{color:var(--blue-deep);background:var(--blue-pale)}.settings-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:1rem;display:grid}.settings-main,.settings-fields{gap:1rem;display:grid}.settings-fields.grid-2{grid-template-columns:repeat(2,1fr)}.settings-save{position:sticky;top:1rem}.settings-save h2{margin-bottom:.5rem}.settings-save p{color:var(--muted);font-size:.74rem;line-height:1.5}.input-suffix{align-items:center;display:flex}.input-suffix input{border-radius:8px 0 0 8px!important}.input-suffix b{border:1px solid var(--line);color:#758196;background:#f7f9fb;border-left:0;border-radius:0 8px 8px 0;place-items:center;min-height:42px;padding:0 .65rem;font-size:.67rem;display:grid}.form-field{color:#46546a;gap:.38rem;font-size:.72rem;font-weight:700;display:grid}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--line);width:100%;min-height:42px;color:var(--ink);background:#fff;border-radius:8px;outline:0;padding:.62rem .7rem;font-size:.79rem;font-weight:400}.form-field input[type=color]{width:70px;padding:.3rem}.form-field textarea{resize:vertical}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#8eace7;box-shadow:0 0 0 3px #2458c614}.form-field small{color:#8b95a5;font-size:.64rem;font-weight:400;line-height:1.4}.form-row{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}.form-error,.form-success{border-radius:7px;padding:.65rem .75rem;font-size:.72rem}.form-error{color:#9f2930;background:var(--red-pale)}.form-success{color:var(--green-deep);background:var(--green-pale)}.form-hint{color:#58677d;background:var(--blue-pale);border-radius:7px;padding:.7rem;font-size:.69rem;line-height:1.45}.detail-header-actions{align-items:center;gap:.6rem;display:flex}.booking-job-summary{color:var(--blue);background:#f7faff;border:1px solid #dbe5f5;border-radius:9px;align-items:center;gap:.75rem;padding:.8rem;display:flex}.booking-job-summary>svg{flex:none}.booking-job-summary strong,.booking-job-summary span{display:block}.booking-job-summary strong{color:var(--ink);font-size:.82rem}.booking-job-summary span{color:var(--muted);margin-top:.12rem;font-size:.67rem}.worker-selector{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.worker-selector label{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:.5rem;min-width:0;padding:.65rem;display:flex}.worker-selector label.selected{background:var(--blue-pale);border-color:#8eace7;box-shadow:0 0 0 2px #2458c60d}.worker-selector label:has(input:disabled){cursor:default}.worker-selector input{width:15px;height:15px;margin:0}.worker-selector i{border-radius:4px;flex:none;width:10px;height:28px}.worker-selector span{min-width:0}.worker-selector strong,.worker-selector small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.worker-selector strong{color:var(--ink);font-size:.72rem}.worker-selector small{color:var(--muted);margin-top:.12rem;font-size:.6rem}.proposed-segments{border:1px solid var(--line);background:#fafbfc;border-radius:8px;gap:.42rem;padding:.75rem;display:grid}.proposed-segments>strong{color:#5f6c80;letter-spacing:.04em;text-transform:uppercase;font-size:.65rem}.proposed-segments>div{color:#536177;justify-content:space-between;align-items:center;gap:.5rem;font-size:.68rem;display:flex}.proposed-segments b{color:var(--blue-deep);font-size:.65rem}.compact-form{border-top:1px solid #edf0f4;gap:.65rem;margin-top:.8rem;padding-top:.8rem;display:grid}.compact-form-actions{justify-content:flex-end;gap:.45rem;display:flex}.work-entry-list{gap:.35rem;margin:.8rem 0;display:grid}.work-entry-list>div{border-top:1px solid #edf0f4;grid-template-columns:minmax(0,1fr) auto;gap:.1rem .5rem;padding:.5rem 0;font-size:.65rem;display:grid}.work-entry-list span strong{color:#46546a;display:block}.work-entry-list span{color:var(--muted)}.work-entry-list b{color:var(--blue-deep)}.work-entry-list small{color:#758196;grid-column:1/-1}.move-request-form{background:#f7f9fc;border-radius:8px;grid-template-columns:minmax(180px,.7fr) minmax(260px,1.3fr) auto;align-items:end;gap:.65rem;margin-bottom:.8rem;padding:.75rem;display:grid}.move-request-list article{border-top:1px solid #edf0f4;justify-content:space-between;align-items:center;gap:.8rem;padding:.75rem 0;display:flex}.move-request-list p{color:#536177;margin:.25rem 0;font-size:.72rem}.move-request-list span,.move-request-list small{color:var(--muted);font-size:.62rem;display:block}.move-request-list small{color:#526177;margin-top:.25rem}.move-request-actions{flex:none;gap:.4rem;display:flex}.records-toolbar{justify-content:space-between}.records-toolbar .settings-tabs{border:0;padding:0}.records-toolbar .settings-tabs b{color:#60708a;background:#eef2f7;border-radius:10px;place-items:center;min-width:19px;height:19px;margin-left:.15rem;font-size:.58rem;display:grid}.records-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;display:grid}.record-card{flex-direction:column;min-height:210px;display:flex}.record-card-heading{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;display:grid}.record-card-heading h2{text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.record-card-heading p{color:var(--muted);margin:.15rem 0 0;font-size:.66rem}.record-icon{width:38px;height:38px;color:var(--blue);background:var(--blue-pale);border-radius:10px;place-items:center;display:grid}.record-icon.vehicle{color:var(--green-deep);background:var(--green-pale)}.record-icon svg{width:18px}.record-contact{color:#617086;gap:.42rem;margin-top:1rem;font-size:.66rem;display:grid}.record-contact span{overflow-wrap:anywhere;align-items:center;gap:.38rem;min-width:0;display:flex}.record-contact svg{color:#8c9bb0;flex:none;width:13px;height:13px}.record-card-footer{color:#758196;border-top:1px solid #edf0f4;align-items:center;gap:.8rem;margin:auto -1.25rem -1.25rem;padding:.7rem 1.25rem;font-size:.64rem;display:flex}.section-divider{color:#7f8999;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:.6rem;margin:.4rem 0 -.1rem;font-size:.64rem;font-weight:700;display:flex}.section-divider:after{content:"";background:var(--line);flex:1;height:1px}.drawer-layer{z-index:100;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#07122473;border:0;width:100%;position:absolute;inset:0}.drawer{z-index:1;width:min(560px,94vw);height:100%;box-shadow:var(--shadow-lg);background:#fff;animation:.2s drawer-in;position:relative;overflow-y:auto}.drawer-small{width:min(430px,94vw)}@keyframes drawer-in{0%{opacity:0;transform:translate(40px)}}.drawer-header{z-index:2;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff5;justify-content:space-between;align-items:center;padding:1.3rem 1.4rem;display:flex;position:sticky;top:0}.drawer-form{gap:1rem;padding:1.25rem 1.4rem 6rem;display:grid}.drawer-actions{z-index:3;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;justify-content:flex-end;gap:.6rem;width:min(560px,94vw);padding:.9rem 1.4rem;display:flex;position:fixed;bottom:0;right:0}.drawer-small .drawer-actions{width:min(430px,94vw)}.state-panel,.empty-state{color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.state-panel{gap:.7rem;min-height:50vh}.state-panel svg{color:var(--blue)}.empty-state{min-height:230px;padding:2rem}.empty-state-icon{width:52px;height:52px;color:var(--blue);background:var(--blue-pale);border-radius:14px;place-items:center;margin-bottom:.8rem;display:grid}.empty-state h3{color:var(--ink);margin-bottom:.35rem;font-size:1rem}.empty-state p{max-width:460px;margin:0 0 1rem;font-size:.75rem;line-height:1.55}.alert{border-radius:8px;align-items:center;gap:.65rem;padding:.8rem;display:flex}.alert-error{color:var(--red);background:var(--red-pale)}.alert-info{color:var(--blue-deep);background:var(--blue-pale);font-size:.72rem}.auth-loading{place-items:center;min-height:100vh;display:grid}.route-loading{place-items:center;min-height:60vh;display:grid}.login-page{background:#fff;grid-template-columns:minmax(430px,.95fr) minmax(520px,1.05fr);min-height:100vh;display:grid}.login-brand-panel{color:#fff;background:radial-gradient(circle at 70% 35%,#235bbe57,#0000 34%),linear-gradient(145deg,#07182e 0%,#10284a 62%,#0c2544 100%);flex-direction:column;justify-content:space-between;min-height:100vh;padding:clamp(2rem,5vw,4.5rem);display:flex;position:relative;overflow:hidden}.login-brand{z-index:2;flex-direction:column;align-items:flex-start;gap:.15rem;display:flex;position:relative}.login-logo{width:min(310px,70%);height:auto;display:block}.brand-mark-large{border-radius:15px 15px 15px 5px;width:50px;height:50px;font-size:1.05rem}.brand-name-large{font-size:1.25rem}.login-message{z-index:2;max-width:580px;position:relative}.login-message h1{color:#fff;max-width:570px;font-size:clamp(2.4rem,5vw,4.4rem);line-height:1.02}.login-message>p:last-child{color:#aebed2;max-width:520px;font-size:1rem;line-height:1.7}.login-benefits{z-index:2;color:#bed0e5;gap:1.4rem;font-size:.75rem;display:flex;position:relative}.login-benefits span{align-items:center;gap:.5rem;display:flex}.login-benefits svg{color:#3bcc6a;width:18px}.blueprint-lines{opacity:.11;border:2px solid #77a6f8;border-radius:48% 12% 35% 4%;width:550px;height:360px;position:absolute;bottom:40px;right:-130px;transform:rotate(-8deg);box-shadow:0 0 0 40px #0000,0 0 0 42px #77a6f8,0 0 0 90px #0000,0 0 0 92px #77a6f8}.login-form-panel{background:#f8fafc;place-items:center;padding:2rem;display:grid}.login-card{border:1px solid var(--line);background:#fff;border-radius:16px;width:min(420px,100%);padding:2rem;box-shadow:0 22px 60px #10234117}.login-lock{width:44px;height:44px;color:var(--blue);background:var(--blue-pale);border-radius:12px;place-items:center;margin-bottom:1.1rem;display:grid}.login-lock svg{width:20px}.login-card h2{margin-bottom:.35rem;font-size:1.4rem}.form-intro{color:var(--muted);margin-bottom:1.4rem;font-size:.76rem}.login-card .form-field{margin-bottom:1rem}.login-help{color:#8a94a4;text-align:center;margin:1rem 0 0;font-size:.68rem}@media (width<=1150px){.metric-grid{grid-template-columns:repeat(2,1fr)}.jobs-card-grid{grid-template-columns:1fr}.records-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-layout,.job-detail-grid{grid-template-columns:1fr}.job-detail-side{position:static}.milestone-grid{grid-template-columns:repeat(2,1fr)}.settings-save{position:static}.login-page{grid-template-columns:.85fr 1fr}}@media (width<=900px){:root{--sidebar:0px}.desktop-sidebar,.sidebar-collapse{display:none}.mobile-header{z-index:40;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);height:59px;color:var(--navy);background:#fffffff0;justify-content:space-between;align-items:center;padding:0 .7rem;display:flex;position:sticky;top:0}.mobile-header>span{font-family:Manrope,sans-serif;font-size:.88rem}.mobile-header b{color:var(--green-deep)}.mobile-menu-layer{z-index:80;display:block;position:fixed;inset:0}.menu-backdrop{background:#040f2080;border:0;width:100%;position:absolute;inset:0}.mobile-sidebar{max-width:86vw;height:100%;box-shadow:var(--shadow-lg);animation:.18s menu-in;position:relative}@keyframes menu-in{0%{opacity:0;transform:translate(-30px)}}.close-menu{z-index:3;position:absolute;top:.5rem;right:.5rem}.app-main{margin-left:0;padding:1.4rem 1rem 4rem}.dashboard-grid,.team-layout,.report-grid{grid-template-columns:1fr}.report-workers{grid-column:auto}.login-page{background:#f8fafc;grid-template-columns:1fr}.login-brand-panel{min-height:340px;padding:2rem}.login-message h1{font-size:2.4rem}.login-message>p:last-child{font-size:.85rem}.login-benefits{display:none}.login-form-panel{padding:2rem 1rem 3rem}.calendar-toolbar{flex-direction:column;align-items:flex-start}.calendar-filters{width:100%;overflow-x:auto}}@media (width<=600px){.page-header{flex-direction:column;align-items:flex-start;gap:.9rem}.page-actions,.page-actions .button{width:100%}.metric-grid{grid-template-columns:1fr 1fr;gap:.65rem}.metric-card{align-items:flex-start;gap:.65rem;min-height:105px;padding:.8rem}.metric-icon{border-radius:9px;width:34px;height:34px}.metric-icon svg{width:17px}.metric-card strong{font-size:1.35rem}.metric-card small{display:none}.toolbar-card{flex-direction:column;align-items:stretch}.records-grid{grid-template-columns:1fr}.search-field{min-width:0}.filter-pills{width:calc(100vw - 3.5rem)}.job-card-dates{grid-template-columns:1fr}.job-card-dates>div{justify-content:space-between;align-items:center;display:flex}.job-card-footer{flex-wrap:wrap;align-items:flex-start}.job-card-footer .text-link{margin-left:0}.risk-table-card{display:none}.form-row,.settings-fields.grid-2{grid-template-columns:1fr}.calendar-nav{flex-wrap:wrap;width:100%}.calendar-nav h2{width:100%;margin:.5rem 0 0}.calendar-legend{justify-content:flex-start}.worker-row{grid-template-columns:auto 1fr auto}.worker-row .status-pill{display:none}.login-brand-panel{min-height:300px}.login-message h1{font-size:2rem}.login-message>p:last-child{display:none}.login-card{padding:1.4rem}.pipeline-chart>div{grid-template-columns:95px minmax(0,1fr) 24px}.completeness-list>div{grid-template-columns:125px minmax(0,1fr) 34px}.drawer,.drawer-actions{width:100%;max-width:100%}.milestone-grid{grid-template-columns:1fr}.detail-header-actions{justify-content:space-between;width:100%}.worker-selector{grid-template-columns:1fr}.segment-list article{grid-template-columns:1fr auto}.segment-date{grid-column:1/-1}.note-form,.move-request-form{grid-template-columns:1fr}.move-request-list article{flex-direction:column;align-items:flex-start}.push-card{grid-template-columns:auto minmax(0,1fr)}.push-card .button{grid-column:1/-1;width:100%}}
