:root{font-family:Inter,Segoe UI,Roboto,sans-serif;line-height:1.4;color:#14213d;background:radial-gradient(circle at top,rgba(37,99,235,.14),transparent 34%),linear-gradient(180deg,#f7faff,#eef4ff 45%,#f9fbff);color-scheme:light;--bg: #eef4ff;--bg-soft: #f7faff;--surface: rgba(255, 255, 255, .84);--surface-strong: #ffffff;--surface-muted: #f3f6fc;--border: rgba(78, 96, 141, .18);--border-strong: rgba(49, 68, 112, .24);--text: #14213d;--text-muted: #5a6785;--heading: #0b1530;--brand: #d62939;--brand-dark: #b61d2b;--brand-soft: #ffe5e9;--navy: #16233f;--navy-soft: #243659;--info-soft: #e8f0ff;--info: #285dd8;--success-soft: #ebfff3;--success: #2b8a57;--warning-soft: #fff5d9;--warning: #b8860b;--shadow-lg: 0 26px 60px -30px rgba(15, 23, 42, .35);--shadow-md: 0 18px 34px -26px rgba(17, 24, 39, .28);--shadow-sm: 0 10px 22px -18px rgba(15, 23, 42, .3);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html{min-height:100vh;overflow-anchor:none}body{margin:0;min-width:320px;min-height:100vh;color:var(--text);background:radial-gradient(circle at top,rgba(37,99,235,.14),transparent 34%),linear-gradient(180deg,#f7faff,#eef4ff 45%,#f9fbff)}*{scrollbar-width:thin;scrollbar-color:rgba(78,96,141,.35) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#4e608d38;border:2px solid transparent;background-clip:padding-box;border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:#4e608d66;background-clip:padding-box}:focus-visible{outline:2px solid rgba(37,99,235,.55);outline-offset:2px;border-radius:6px}.btn:focus-visible,.hero-branch-label:focus-within,input:focus,select:focus,textarea:focus,.license-selector:focus-within{outline:none}input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.65}::selection{background:#16233f2e;color:var(--heading)}#app{padding:1.5rem}.page{max-width:1360px;margin:0 auto;display:flex;flex-direction:column;gap:1.25rem}.page.page-auth-only{max-width:520px}.hero-login-only{flex-direction:column;align-items:stretch}.hero-login-only .hero-brand{width:100%}.hero-login-tagline{margin:.35rem 0 0;font-size:.95rem}.hero-branch-label{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:.4rem;padding:.3rem .45rem .3rem .75rem;border-radius:999px;border:1px solid var(--border);background:var(--surface-strong);color:var(--text-muted);box-shadow:var(--shadow-sm);transition:border-color .14s ease,box-shadow .14s ease,background-color .14s ease}.hero-branch-label:hover{border-color:var(--border-strong);background:#fff}.hero-branch-label:focus-within{border-color:#16233f73;box-shadow:var(--shadow-sm),0 0 0 3px #16233f14}.hero-branch-label-muted{background:#ffffff8c;color:var(--text-muted)}.hero-branch-eyebrow{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);padding-right:.15rem}.hero-branch-label-muted .muted{font-size:.82rem;font-weight:500;color:var(--text-muted)}.hero-branch-label select{appearance:none;-webkit-appearance:none;font-weight:600;font-size:.88rem;color:var(--text);padding:.2rem 1.6rem .2rem .25rem;border-radius:8px;border:1px solid transparent;background-color:transparent;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 8l5 5 5-5' stroke='%234e608d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .4rem center;width:auto;max-width:14rem;cursor:pointer;box-shadow:none}.hero-branch-label select:focus{outline:none}.save-state{display:inline-flex;align-items:center;gap:.4rem;padding:.48rem .7rem;border:1px solid var(--border);border-radius:999px;background:#ffffffc7;color:var(--text);box-shadow:var(--shadow-sm);font-size:.82rem;white-space:nowrap}.save-state-dot{width:.55rem;height:.55rem;border-radius:999px;background:var(--text-muted)}.save-state-text{font-weight:800}.save-state-detail{color:var(--text-muted);font-size:.75rem}.save-state-saved .save-state-dot{background:var(--success)}.save-state-saving .save-state-dot,.save-state-unsaved .save-state-dot{background:var(--warning)}.save-state-paused{border-color:#d6293952;background:var(--brand-soft)}.save-state-paused .save-state-dot{background:var(--brand)}.save-state-view .save-state-dot,.save-state-local .save-state-dot{background:var(--info)}.team-branch-checkboxes{display:flex;flex-wrap:wrap;gap:.35rem 1rem;margin:.35rem 0 .5rem}.team-branch-note{margin:.35rem 0 0;font-size:.88rem}.team-branch-access{margin-top:.5rem;padding-top:.5rem;border-top:1px solid rgba(78,96,141,.12)}.auth-gate-panel{padding:1.1rem 1.15rem}.auth-gate-panel .settings-card-auth-gate{border-radius:12px}.settings-card-auth-gate h3{margin-top:0}.auth-gate-actions{flex-wrap:wrap;gap:.5rem}.auth-gate-status{margin-bottom:0}.tabs{display:flex;flex-wrap:wrap;gap:.5rem}.tab-icon{margin-right:.35rem}.quick-actions{display:none}.panel{padding:1rem;border-radius:14px}.grid{display:grid;gap:.8rem}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.schedule-meta{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:1rem}label{display:flex;flex-direction:column;font-size:.9rem;gap:.3rem;color:var(--text)}input,select,textarea{width:100%;border-radius:8px;border:1px solid #cdd4e0;padding:.55rem .65rem;font:inherit;background:#fff}input[type=checkbox]{width:auto}textarea{resize:vertical}.btn{border:0;font:inherit;cursor:pointer;white-space:nowrap}.availability{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;margin-bottom:1rem}.crew-template-chip{display:inline-flex;flex-direction:column;gap:.1rem;background:#e9eefc;border:1px solid #c8d3ee;padding:.3rem .6rem;border-radius:999px;line-height:1.15;cursor:grab}.crew-template-chip:active{cursor:grabbing}.crew-template-chip-name{font-weight:600;font-size:.9rem;color:#1e2a44}.crew-template-chip-meta{font-size:.72rem;color:#5a6380}.crew-template-members{margin-top:.5rem;padding-top:.5rem;border-top:1px dashed #d8def0;display:flex;flex-direction:column;gap:.45rem}.crew-template-members-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.9rem}.crew-template-member-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}.crew-template-member-name{display:flex;align-items:center;gap:.4rem;font-size:.92rem;color:#1e2a44}.crew-template-member-name .role-pill{font-size:.7rem;padding:.05rem .4rem;border-radius:999px;background:#e9eefc;color:#3c4b6c;font-weight:600;letter-spacing:.03em}.crew-template-member-times{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.crew-template-member-times label{display:flex;flex-direction:column;font-size:.72rem;color:#5a6380;gap:.2rem}.crew-template-member-times input[type=time]{padding:.25rem .4rem;border-radius:6px;border:1px solid #bfcbe3;background:#fff;font-size:.88rem}.crew-template-member-reset{padding:.1rem .4rem;font-size:.8rem}.planner-sticky-bar{position:sticky;top:.75rem;z-index:8;background:#fff;padding:.2rem 0 .8rem;margin-bottom:1rem;border-bottom:1px solid #e9eef7;box-shadow:0 8px 18px -18px #1b274273}.planner-sticky-bar .availability{margin-bottom:0}.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.45rem}.chip{background:#eef2f8;border:1px solid #d9e0ec;color:#2d3448;border-radius:999px;padding:.22rem .6rem;font-size:.84rem}.chip.draggable{cursor:grab}.chip.removable{display:inline-flex;align-items:center;gap:.4rem}.chip.removable button{border:0;background:transparent;color:#9a2a32;cursor:pointer;font-weight:700}.muted{color:#6c7282;font-size:.88rem}.drop-zone{min-height:2.2rem;border:1px dashed #b9c4d8;border-radius:10px;padding:.35rem}.toolbar{display:flex;justify-content:flex-end;margin-bottom:.7rem}.job-list{display:flex;flex-direction:column;gap:.9rem}.job-card{border:1px solid #d7deea;border-radius:12px;padding:.8rem;background:#fbfcff;display:flex;flex-direction:column;gap:.8rem}.job-card-manual{border-left:4px solid #9ba7bf}.job-card-auto{border-left:4px solid #5080d8}.job-card-locked{border-left:4px solid #a65ad8}.job-head{display:flex;align-items:end;justify-content:space-between;gap:.6rem}.job-head h3{margin:0}.team-row{display:grid;grid-template-columns:2fr 1fr;gap:.8rem}.inline-control{display:flex;gap:.5rem}.project-schedule{border:1px solid #d7deea;border-radius:10px;padding:.7rem;background:#fcfdff;display:grid;gap:.6rem}.section-header-inline{display:flex;justify-content:space-between;align-items:center;gap:.6rem}.schedule-nav{margin-bottom:.9rem;align-items:center}.scheduler-summary{margin-top:0}.schedule-nav-actions{display:flex;gap:.45rem;flex-wrap:wrap}.weekday-pills{display:flex;flex-wrap:wrap;gap:.45rem}.weekday-pill{flex-direction:row;align-items:center;gap:.3rem;padding:.2rem .45rem;border:1px solid #d8dfeb;border-radius:999px;background:#f6f9ff;width:auto}.day-progress{margin:0;font-size:.9rem;color:#1e365f;font-weight:600}.rain-delay-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.rain-delay-summary-item{border:1px solid #d8dfeb;border-radius:10px;background:#f7f9fd;padding:.55rem .65rem;display:grid;gap:.15rem}.rain-delay-summary-item strong{color:#1e365f}.materials-job-title{margin:.15rem 0 0}.materials-job-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.materials-job-meta span{color:#2e3550;font-size:.92rem}.vehicle-drop-row{display:grid;grid-template-columns:1fr 2fr;gap:.8rem;align-items:center}.vehicle-drop{color:#4f5870;font-size:.88rem}.vehicle-summary{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap;color:#2e3447}.warning{margin:0;color:#9b2121;background:#fdecec;border:1px solid #f4c1c1;border-radius:8px;padding:.45rem .55rem;font-size:.9rem}.warning-text{color:#9b2121;font-size:.84rem;display:block}.job-status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.18rem .5rem;font-size:.74rem;font-weight:700;letter-spacing:.02em}.job-status-badge-manual{background:#edf0f5;color:#475065}.job-status-badge-auto{background:#e8f0ff;color:#2450a7}.job-status-badge-locked{background:#f1e8ff;color:#6532b0}.job-lock-reason{margin:.1rem 0 .4rem .1rem;font-size:.78rem;color:#6a6f80}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1.1rem}.panel.settings-grid{background:transparent;border:0;padding:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.tool-picker{border:1px solid #d6deea;border-radius:8px;padding:.45rem;display:flex;flex-wrap:wrap;gap:.35rem .8rem}.tool-option{flex-direction:row;align-items:center;gap:.35rem;font-size:.9rem}.settings-card{border:1px solid var(--border);border-radius:16px;padding:1.1rem 1.15rem 1.05rem;display:flex;flex-direction:column;gap:.65rem}.settings-card h3{margin:0 0 .15rem;font-size:1.02rem;font-weight:700;letter-spacing:-.005em;color:var(--heading);display:flex;align-items:center;gap:.55rem}.settings-card h3:before{content:"";display:inline-block;width:.35rem;height:1rem;border-radius:3px;background:linear-gradient(180deg,var(--navy),var(--navy-soft));flex:none}.settings-sections{display:flex;flex-direction:column;gap:1.8rem}.settings-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.85rem;padding-bottom:.55rem;border-bottom:1px solid rgba(78,96,141,.15)}.settings-section-head h2{margin:0 0 .15rem;font-size:1.05rem;font-weight:700;color:var(--heading);letter-spacing:.01em}.settings-section-head p{margin:0;font-size:.85rem}.settings-section-actions{display:inline-flex;gap:.25rem;flex-wrap:wrap}.settings-section-actions .btn-link{font-size:.82rem;padding:.25rem .55rem}.settings-card-details{padding:0;overflow:hidden;transition:box-shadow .15s ease,border-color .15s ease}.pipeline-completed-section{margin-top:1.25rem;display:grid;gap:.6rem}.pipeline-completed-month{border:1px solid #d8dee9;border-radius:10px;background:#f8fafc}.pipeline-completed-month>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.65rem .9rem;cursor:pointer;-webkit-user-select:none;user-select:none}.pipeline-completed-month>summary::-webkit-details-marker{display:none}.pipeline-completed-month>summary:after{content:"▸";color:#64748b;transition:transform .12s ease}.pipeline-completed-month[open]>summary:after{transform:rotate(90deg)}.pipeline-completed-month>.settings-list{padding:0 .9rem .9rem}.settings-card-details>.settings-card-summary{list-style:none;display:flex;align-items:center;gap:.55rem;padding:.9rem 1.1rem;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:16px;transition:background .15s ease}.settings-card-details>.settings-card-summary::-webkit-details-marker{display:none}.settings-card-details>.settings-card-summary h3{margin:0;flex:1 1 auto;min-width:0}.settings-card-details>.settings-card-summary:hover{background:#4e608d0d}.settings-card-details[open]>.settings-card-summary{border-bottom:1px solid rgba(78,96,141,.12);border-radius:16px 16px 0 0;background:#4e608d0a}.settings-card-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.6rem;height:1.4rem;padding:0 .5rem;border-radius:999px;background:#eef2f8;border:1px solid #d9e0ec;color:#2d3448;font-size:.78rem;font-weight:600;line-height:1;flex:none}.settings-card-chevron{display:inline-flex;align-items:center;justify-content:center;color:#8590ac;font-size:.85rem;transition:transform .2s ease,color .15s ease;flex:none}.settings-card-details[open]>.settings-card-summary .settings-card-chevron{transform:rotate(90deg);color:var(--navy, #1b2742)}.settings-card-body{display:flex;flex-direction:column;gap:.65rem;padding:1rem 1.15rem 1.05rem}.settings-add-row{display:flex;gap:.5rem;margin:0;align-items:flex-end;padding:.55rem .6rem;border-radius:12px;background:#f7faffd9;border:1px dashed rgba(78,96,141,.22)}.settings-add-row-wrap{flex-wrap:wrap}.team-capacity-defaults,.team-capacity-overrides{display:block;margin-top:.75rem}.team-capacity-defaults strong,.team-capacity-overrides strong{display:block;margin-bottom:.4rem;font-size:.92rem;color:#34415f}.team-capacity-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem;padding:.55rem .6rem;border-radius:12px;background:#f7faffd9;border:1px dashed rgba(78,96,141,.22)}.team-capacity-day{display:flex!important;flex-direction:column!important;align-items:center;gap:.2rem;font-size:.82rem;color:#4a5679}.team-capacity-day input[type=number]{width:100%;max-width:4rem;text-align:center;padding:.25rem .3rem}@media(max-width:720px){.team-capacity-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.vehicle-tow-row input[type=number]{max-width:8rem}.vehicle-tow-row .inline-check{align-self:center}.vehicle-tow-summary{font-size:.78rem;color:var(--text-muted)}.team-unlinked-callout{margin:.5rem 0 .75rem;padding:.75rem .9rem;border-radius:12px;border:1px solid rgba(221,170,30,.35);background:#fff5d68c;display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;line-height:1.4}.team-unlinked-list{margin:0;padding-left:1.25rem}.team-unlinked-list li{margin:0;padding:0}.settings-inline-check{margin:0}.settings-add-person-btn{align-self:flex-start;margin:0}.settings-note{margin:0;font-size:.82rem;line-height:1.45}.materials-allocation-list{display:grid;gap:.6rem}.materials-allocation-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(140px,.8fr) minmax(90px,.5fr) auto;gap:.6rem;align-items:end;border:1px solid #e3e8f0;border-radius:10px;background:#fbfcff;padding:.65rem}.materials-allocation-total{min-height:42px;display:grid;align-content:center;justify-items:start}.materials-allocation-totals{display:grid;gap:.4rem}.materials-allocation-totals .materials-allocation-total{min-height:0;padding:.35rem .5rem;border-radius:12px;background:#ffffffb8;border:1px solid rgba(78,96,141,.1)}.materials-variance-pill{display:inline-flex;align-items:center;border-radius:999px;padding:.25rem .55rem;font-size:.8rem;font-weight:700;background:#16233f14;color:var(--navy)}.materials-variance-pill-positive{background:#2b8a571f;color:#206541}.materials-variance-pill-warning{background:#b8860b24;color:#8d6812}.materials-variance-pill-danger{background:#d629391f;color:#9a1f2c}.materials-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-top:.85rem}.materials-summary-card{border-radius:16px;border:1px solid rgba(78,96,141,.12);background:#ffffffa8;padding:.85rem .9rem;display:grid;gap:.25rem}.materials-summary-card strong{font-size:1.15rem;color:var(--heading)}.materials-summary-card span{color:var(--text-muted);font-size:.84rem}.materials-dispatch-pill-row{display:flex;flex-wrap:wrap;gap:.45rem;justify-content:flex-end}.materials-row-notes{grid-column:1 / -1}.materials-row-notes textarea{min-height:80px}.materials-empty-state{margin:0}.materials-tab-panel{display:flex;flex-direction:column;gap:1rem}.materials-tab-top{display:flex;flex-direction:column;gap:.65rem}.materials-date-row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.85rem 1rem;align-items:end}.materials-intro-row{align-items:flex-start;gap:.85rem 1rem}.materials-intro-copy{flex:1;min-width:min(100%,320px)}.materials-lead{margin:0;line-height:1.45}.materials-nav-actions{flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.materials-branch-filter-hint{margin:0;font-size:.88rem}.materials-filter-active{margin:0;font-size:.9rem;color:#2a3350}.materials-snapshot{margin-top:0}.materials-snapshot-header{align-items:flex-start;gap:1rem 1.25rem}.materials-snapshot-header h3{margin-top:0}.materials-download-actions{display:flex;flex-wrap:wrap;gap:.45rem;justify-content:flex-end}.materials-product-line{margin:.75rem 0 0;line-height:1.45;font-size:.9rem}.materials-job-list{margin-top:.75rem}.materials-empty-panel{margin-top:.5rem}.materials-planning-hint{padding:.65rem .75rem;margin:0 0 .5rem}.materials-dispatch-snapshot{margin-bottom:.35rem}.materials-induction-placeholder{display:flex;align-items:end}.out-of-service-drop{margin-bottom:.65rem;color:#4f5870;font-size:.88rem}.pipeline-form-card{margin-bottom:.9rem}.pipeline-mapping-card{border:1px solid #e3e8f0;border-radius:10px;background:#f7f9fc;padding:.75rem}.pipeline-mapping-list{margin:0}.pipeline-gantt-card{margin-top:0}.pipeline-gantt-legend{display:flex;flex-wrap:wrap;gap:.65rem 1rem;align-items:center}.pipeline-gantt-legend-item{display:inline-flex;align-items:center;gap:.35rem;color:#4b5368;font-size:.86rem}.pipeline-gantt-dot{width:.8rem;height:.8rem;border-radius:999px;border:1px solid #c8d2e2;background:#f3f6fb}.pipeline-gantt-dot-span{background:#eaf0fb}.pipeline-gantt-dot-full{background:#2f66cc;border-color:#2f66cc}.pipeline-gantt-dot-half{border-color:#5f84d3;background:linear-gradient(135deg,#5f84d3 0 50%,#eef3fb 50% 100%)}.pipeline-gantt-dot-today{background:#f8e38d;border-color:#d4b849}.pipeline-gantt-wrap{overflow:auto;border:1px solid #dbe2ee;border-radius:10px;background:#fff}.pipeline-gantt-table{border-collapse:separate;border-spacing:0;min-width:100%}.pipeline-gantt-table th,.pipeline-gantt-table td{min-width:2.2rem;padding:0;text-align:center;vertical-align:middle}.pipeline-gantt-month{background:#f4f7fc;color:#2d3650;font-size:.84rem;font-weight:700;padding:.4rem .25rem}.pipeline-gantt-date{background:#fafbfd;color:#53607b;padding:.3rem .15rem;font-size:.74rem;line-height:1.1}.pipeline-gantt-date span,.pipeline-gantt-date strong{display:block}.pipeline-gantt-date strong{color:#24304a;font-size:.82rem}.pipeline-gantt-date-today{background:#fff5cf}.pipeline-gantt-sticky,.pipeline-gantt-row-label{position:sticky;left:0;min-width:16rem;max-width:16rem;text-align:left;background:#fff;z-index:2}.pipeline-gantt-sticky{z-index:4;padding:.5rem .7rem;background:#f4f7fc}.pipeline-gantt-row-label{padding:.55rem .7rem;display:grid;gap:.15rem}.pipeline-gantt-row-label span{color:#48526a;font-size:.86rem}.pipeline-gantt-row-label small{color:#66718a;font-size:.78rem}.pipeline-gantt-cell{height:2.7rem;background:#fff}.pipeline-gantt-cell-span{background:#eef3fb}.pipeline-gantt-cell-full{background:#2f66cc}.pipeline-gantt-cell-half{background:linear-gradient(135deg,#5f84d3 0 50%,#eef3fb 50% 100%)}.pipeline-gantt-cell-today{box-shadow:inset 0 0 0 2px #d4b849}.settings-field-label{flex:1 1 220px;min-width:180px}.settings-field-block{display:grid;gap:.35rem;margin:0}.settings-field-title{font-size:.82rem;font-weight:600;color:var(--text);letter-spacing:.01em}.settings-help-list{margin-top:.35rem;margin-bottom:.7rem;padding-left:1.15rem;display:grid;gap:.2rem}.instructions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.settings-list{display:flex;flex-direction:column;gap:.5rem}.settings-item{display:flex;justify-content:space-between;align-items:flex-start;border:1px solid var(--border);border-radius:10px;padding:.55rem .7rem;gap:.6rem;transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease}.settings-item:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.settings-item-stack{display:grid;align-items:stretch}.settings-item-text{display:grid;gap:.15rem}.settings-edit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem}.settings-edit-grid small{line-height:1.35}.settings-actions{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end;align-items:flex-start}.settings-actions-inline{justify-content:flex-start;margin-bottom:.7rem}.settings-card .btn{padding:.42rem .72rem}.settings-actions .btn{min-width:0;text-align:center}.inline-check{flex-direction:row;align-items:center;gap:.4rem;width:auto;color:#2e3550}.settings-item em{color:#5b6378}.license-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.45rem}.license-list label{flex-direction:row;align-items:center;gap:.3rem}.license-pill{border:1px solid #d8dfeb;border-radius:999px;background:#f6f9ff;padding:.25rem .55rem}.license-selector{border:1px solid #cdd4e0;border-radius:8px;background:#fff}.license-selector summary{list-style:none;cursor:pointer;padding:.55rem .65rem;color:#31364a}.license-selector summary::-webkit-details-marker{display:none}.license-selector summary:after{content:"v";float:right;color:#6c7282}.license-selector[open] summary:after{content:"^"}.license-dropdown-menu{padding:0 .65rem .65rem}.table-wrap{overflow:auto}.notice-board{border:1px solid #d7deea;border-radius:12px;padding:.7rem .8rem;background:#fbfcff;margin:.8rem 0}.notice-board-warning{border-color:#f1c3c3;background:#fff7f7}.notice-board h3{margin:0 0 .4rem}.notice-board ul{margin:0;padding-left:1.2rem}.notice-board li{margin-bottom:.3rem}.sales-quick-add{border:1px solid var(--border);border-radius:12px;background:var(--surface-strong);padding:.6rem .85rem;margin:.8rem 0}.sales-quick-add[open]{padding-bottom:.95rem}.sales-quick-add>summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;gap:.4rem .85rem;align-items:baseline;color:var(--heading)}.sales-quick-add>summary::-webkit-details-marker{display:none}.sales-quick-add-title{font-weight:700;font-size:1rem}.sales-quick-add-body{margin-top:.7rem;display:grid;gap:.7rem}.sales-quick-add-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}.sales-quick-add-span-2{grid-column:span 2}.sales-quick-add-span-3{grid-column:span 3}.sales-quick-add-actions{display:flex;justify-content:flex-end}.sales-quick-add-hint{margin:.55rem 0 0;font-size:.82rem}.sales-import-file-input{display:none}.sales-import-banner{margin:0 0 .65rem;padding:.55rem .75rem;border-radius:.45rem;background:var(--surface-2, #f4f6f8);font-size:.9rem}.sales-import-mapping{margin:.75rem 0 1rem}.sales-import-mapping h4{margin:0 0 .35rem;font-size:.95rem}.sales-import-mapping-table{width:100%;border-collapse:collapse;font-size:.85rem}.sales-import-mapping-table th,.sales-import-mapping-table td{padding:.35rem .5rem;border-bottom:1px solid var(--border, #e2e6ea);text-align:left;vertical-align:top}.sales-import-mapping-table th{font-weight:600}.sales-import-required{color:#c0392b;font-weight:700}.sales-summary-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem;margin:.85rem 0 1rem}@media(max-width:720px){.sales-quick-add-grid{grid-template-columns:1fr}.sales-quick-add-span-2,.sales-quick-add-span-3{grid-column:span 1}}.management-report-panel{background:var(--surface-strong)}.management-report-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem}.management-report-controls .btn-icon{padding:.35rem .6rem;font-weight:700}.management-report-month input{min-width:150px}.project-hours-panel{margin-top:1rem}.project-hours-filter-label select{min-width:200px}.project-hours-list{display:flex;flex-direction:column;gap:.85rem;margin-top:.85rem}.project-hours-card{border:1px solid var(--border);border-radius:8px;padding:.75rem .9rem;background:var(--surface, #fff)}.project-hours-card h4{margin:0}.project-hours-total{font-weight:700;font-size:1.05rem}.project-hours-tables{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:.6rem}.project-hours-tables h5{margin:0 0 .35rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, #667)}.project-hours-table{width:100%;border-collapse:collapse;font-size:.85rem}.project-hours-table th,.project-hours-table td{text-align:left;padding:.25rem .4rem;border-bottom:1px solid var(--border)}.project-hours-table .project-hours-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.management-report-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem;margin-top:.85rem}.report-stat-card{background:var(--surface-muted);padding:.7rem .85rem}.report-stat-card strong{font-size:1.18rem;color:var(--heading)}.monthly-report-panel{background:#fff}.monthly-report-layout{display:grid;gap:.9rem}.monthly-report-section{border:1px solid var(--border);border-radius:12px;background:var(--surface-muted);padding:.85rem}.monthly-report-section-highlight{background:linear-gradient(180deg,#f6f9ff,#eef5ff)}.monthly-report-section-wide{background:#fbfcff}.monthly-report-section h4{margin:0 0 .7rem;color:var(--heading)}.monthly-report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.monthly-report-grid-compact{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.monthly-report-grid-large{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.monthly-report-section label{font-size:.82rem;font-weight:700;color:var(--text-muted)}.monthly-report-section input,.monthly-report-section textarea{margin-top:.1rem;background:#fff;color:var(--text);font-weight:400}.monthly-report-section textarea{min-height:96px;line-height:1.35}.monthly-report-list-section .monthly-list-heading{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.55rem}.monthly-report-list-section .monthly-list-heading h4{margin:0}.monthly-list-header,.monthly-list-row{display:grid;grid-template-columns:repeat(var(--monthly-list-cols, 4),minmax(0,1fr)) auto;gap:.5rem;align-items:center}.monthly-report-list-section[data-list-columns="1"]{--monthly-list-cols: 1}.monthly-report-list-section[data-list-columns="2"]{--monthly-list-cols: 2}.monthly-report-list-section[data-list-columns="3"]{--monthly-list-cols: 3}.monthly-report-list-section[data-list-columns="4"]{--monthly-list-cols: 4}.monthly-report-list-section[data-list-columns="5"]{--monthly-list-cols: 5}.monthly-report-list-section[data-list-columns="6"]{--monthly-list-cols: 6}.monthly-list-header{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:700;margin-bottom:.25rem}.monthly-list-row{margin-bottom:.4rem}.monthly-list-row input,.monthly-list-row select{margin:0;font-weight:400}.monthly-list-remove{padding:.3rem .55rem;line-height:1}.monthly-list-spacer{display:block}.monthly-list-empty{margin:.2rem 0 .4rem}.monthly-report-unified-holder .monthly-list-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:.85rem;margin-bottom:.65rem}.monthly-report-unified-wrap{margin-top:.35rem}.monthly-report-unified-row{border:1px solid rgba(30,36,53,.12);border-radius:8px;padding:.65rem .85rem;margin-bottom:.65rem;background:#fafbffe6}.monthly-unified-top{display:flex;justify-content:space-between;align-items:flex-end;gap:.5rem;margin-bottom:.5rem}.monthly-unified-type{flex:1;margin:0;min-width:0}.monthly-report-unified-empty{margin:.2rem 0 0}.monthly-unified-fields .monthly-report-grid{margin-top:0}.monthly-unified-status .status-swatch{flex-shrink:0}.status-cell{display:flex;align-items:center;gap:.4rem}.status-cell select{flex:1}.status-swatch{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid rgba(0,0,0,.08);flex-shrink:0}.project-status-row{display:grid;grid-template-columns:auto 1fr 56px auto;gap:.5rem;align-items:center}.project-status-row input[type=color]{padding:.1rem;height:36px;cursor:pointer}@media(max-width:720px){.monthly-list-header{display:none}.monthly-list-row{grid-template-columns:1fr auto;gap:.4rem}.monthly-list-row>input,.monthly-list-row>select{grid-column:span 1}.monthly-list-remove{align-self:start}}.monthly-report-span-2{grid-column:span 2}.monthly-report-section-highlight>.monthly-report-span-2{margin-top:.75rem}@media(max-width:720px){.monthly-report-span-2{grid-column:span 1}}table{width:100%;border-collapse:collapse}th,td{border:1px solid #dce2ec;text-align:left;padding:.5rem;vertical-align:top}thead th{background:#edf2fb}.warn-inline{color:#9b2121;display:block;margin-top:.2rem}.modal-backdrop{position:fixed;inset:0;background:#151a2585;display:flex;justify-content:center;align-items:center;z-index:20;padding:1rem}.modal-card{width:100%;max-width:440px;background:#fff;border:1px solid #d7deea;border-radius:12px;padding:1rem;display:grid;gap:.65rem}.modal-card h3,.modal-card p{margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem}.credentials-modal{max-width:560px}.credentials-grid{display:grid;grid-template-columns:max-content 1fr;gap:.4rem .9rem;margin:.25rem 0 0;padding:.65rem .85rem;background:#f5f7fb;border:1px solid #e2e8f2;border-radius:10px;font-size:.9rem}.credentials-grid dt{font-weight:600;color:#475569}.credentials-grid dd{margin:0;word-break:break-all}.credentials-grid code{background:transparent;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.95rem}.credentials-password{font-size:1.05rem!important;font-weight:700;letter-spacing:.05em;color:#1d4ed8}.credentials-share-label{font-size:.85rem;font-weight:600;color:#334155;margin-top:.1rem}.credentials-share-box{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem;padding:.55rem .7rem;border:1px solid #cbd5e1;border-radius:8px;resize:vertical;background:#fff;line-height:1.4}.credentials-actions{flex-wrap:wrap;justify-content:flex-start;gap:.5rem}.credentials-footnote{font-size:.8rem;line-height:1.4}.team-invite-heading{margin-top:.9rem;padding-top:.65rem;border-top:1px solid #e2e8f2;font-size:.92rem;line-height:1.35}.team-invite-heading:first-of-type{margin-top:.25rem;border-top:none;padding-top:0}.team-invite-heading strong{color:#0f172a}@media(max-width:960px){.schedule-meta,.grid.two,.grid.three,.availability,.team-row,.vehicle-drop-row,.settings-grid,.materials-job-meta{grid-template-columns:1fr}.hero{flex-direction:column;align-items:flex-start}.hero-download{display:none}.quick-actions{display:block;position:sticky;top:.5rem;z-index:10;background:#f4f6fa;padding:.2rem 0}.quick-actions .btn{width:100%}.settings-add-row,.inline-control,.settings-actions,.modal-actions,.materials-allocation-row{flex-direction:column;align-items:stretch}.materials-allocation-row{display:flex}.instructions-grid,.settings-edit-grid{grid-template-columns:1fr}.planner-sticky-bar{top:3.9rem}}.hero,.panel,.settings-card,.notice-board,.project-schedule,.pipeline-mapping-card,.pipeline-gantt-wrap,.settings-item,.materials-allocation-row,.modal-card{background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.panel,.settings-card,.notice-board,.project-schedule,.pipeline-gantt-wrap,.pipeline-mapping-card,.settings-item,.materials-allocation-row,.modal-card{border-radius:20px}.hero{display:flex;flex-direction:column;gap:.85rem;padding:1rem 1.2rem;border-radius:16px;border:1px solid rgba(78,96,141,.12);background:radial-gradient(1200px 200px at 0% 0%,rgba(91,108,255,.06),transparent 70%),#fff;box-shadow:0 1px 2px #16233f0a,0 8px 24px -16px #16233f24}.hero:after{content:none}.hero-brand,.app-toolbar{display:flex;justify-content:space-between;gap:.8rem}.hero-brand{align-items:center}.hero-brand-lockup,.app-toolbar-copy{display:flex;gap:.95rem}.hero-brand-lockup{align-items:center}.hero-logo-wrap{display:grid;place-items:center;min-width:0;padding:0;border-radius:0;background:transparent;border:0;box-shadow:none}.hero-logo{width:128px;max-width:100%;filter:drop-shadow(0 1px 1px rgba(22,35,63,.08))}.hero-text{display:grid;gap:.15rem;align-content:center}.hero-text h1,.app-toolbar-copy h2{margin:0;color:var(--heading)}.hero-text h1{font-size:clamp(1.35rem,1.7vw,1.72rem);font-weight:700;line-height:1.05;letter-spacing:-.02em}.hero-text p,.app-toolbar-copy p,.muted{color:var(--text-muted)}.hero-text p{margin:0;max-width:32rem;font-size:.88rem}.hero-subtitle{font-weight:500;color:var(--text-muted)}.hero-eyebrow,.section-eyebrow{display:inline-flex;align-items:center;gap:.35rem;width:fit-content;padding:.24rem .52rem;border-radius:999px;background:#16233f0f;color:var(--navy);font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.hero-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.45rem}.hero-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.hero-meta-badge{display:inline-flex;align-items:center;min-height:1.75rem;padding:.22rem .55rem;border-radius:999px;background:#16233f14;color:var(--navy);font-size:.7rem;font-weight:600}.hero-meta-badge-muted{background:#ffffffd1;border:1px solid rgba(78,96,141,.15)}.hero-meta-link{background:transparent;border:0;padding:.15rem .2rem;font:inherit;font-size:.78rem;font-weight:500;color:var(--text-muted);cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:color .12s ease,text-decoration-color .12s ease}.hero-meta-link:hover,.hero-meta-link:focus-visible{color:var(--navy);text-decoration-color:currentColor;outline:none}.hero-download{min-height:2.35rem;padding-inline:.75rem;box-shadow:none}.hero-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.42rem}.hero-stat{display:grid;gap:.2rem;padding:.58rem .68rem;border-radius:10px;background:#f7faffeb;border:1px solid rgba(78,96,141,.14);min-height:0;align-content:start}.hero-stat-label{color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.hero-stat strong{font-size:clamp(.92rem,1vw,1.08rem);line-height:1.2;color:var(--heading)}.hero-stat-detail{color:var(--text-muted);font-size:.72rem;line-height:1.35}.app-toolbar{padding:.8rem 1rem;gap:.65rem}.app-toolbar-copy{flex-direction:column;gap:.35rem}.app-toolbar-copy p{margin:0;max-width:100%}.app-toolbar-copy h2{font-size:1.05rem}.tabs{flex:none;justify-content:flex-start;gap:.45rem;width:100%}.tab-icon{width:1.5rem;height:1.5rem;display:inline-grid;place-items:center;margin-right:0;border-radius:999px;background:#16233f14}.tab-label{display:inline-flex;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.3rem;border:1px solid transparent;border-radius:10px;padding:.42rem .85rem;font-size:.9rem;font-weight:600;letter-spacing:.01em;transition:transform .14s ease,box-shadow .14s ease,background-color .14s ease,border-color .14s ease,color .14s ease}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn:active:not(:disabled){transform:translateY(0)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #16233f1f,var(--shadow-sm)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn-primary{background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:#fff}.btn-secondary{background:var(--navy);color:#fff;box-shadow:none}.btn-danger{background:var(--brand-soft);color:#8f1824;border-color:#d6293924}.btn-link{background:none;border:none;box-shadow:none;color:var(--info);padding:.25rem .4rem;text-decoration:underline}.btn-link:hover:not(:disabled){background:none;color:var(--info);filter:brightness(.85)}.btn-tab{background:var(--surface-muted);color:var(--navy);border-color:var(--border);box-shadow:none;min-height:2.3rem;padding:.42rem .8rem;border-radius:10px;font-size:.9rem}.btn-tab:hover:not(:disabled):not(.active){background:#fff;border-color:var(--border-strong)}.btn-tab.active{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:var(--shadow-sm)}.btn-tab.active .tab-icon{background:#ffffff29}.tab-badge{display:inline-grid;place-items:center;min-width:1.15rem;height:1.15rem;margin-left:.4rem;padding:0 .3rem;border-radius:999px;background:#c2410c;color:#fff;font-size:.72rem;font-weight:700;line-height:1}.btn-tab.active .tab-badge{background:#f97316}input,select,textarea,.license-selector{border-radius:14px;border-color:#4e608d29;background:#ffffffe0;color:var(--text);box-shadow:inset 0 1px #ffffffbf}input:focus,select:focus,textarea:focus,.license-selector:focus-within{outline:3px solid rgba(37,99,235,.15);border-color:#2563eb59}label,.settings-field-title,.settings-item em,.materials-job-meta span,.pipeline-gantt-legend-item,.vehicle-drop,.out-of-service-drop,.warning-text{color:var(--text-muted)}.planner-sticky-bar{top:1rem;background:linear-gradient(180deg,#f7fafff5,#f7faffcc);border-bottom:1px solid rgba(78,96,141,.12);box-shadow:0 18px 32px -28px #16233fbf}.availability>div,.pipeline-form-card,.settings-card,.notice-board,.project-schedule,.pipeline-gantt-card{position:relative}.availability>div{padding:1rem;border-radius:18px;background:#fff9;border:1px solid rgba(78,96,141,.12);box-shadow:inset 0 1px #ffffffa6}.availability-col-head{display:flex;align-items:center;gap:.5rem;justify-content:space-between}.availability-col-head strong{font-size:.88rem}.availability-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;padding:.05rem .45rem;border-radius:999px;background:#eef2f8;border:1px solid #d9e0ec;color:#2d3448;font-size:.78rem;font-weight:600;line-height:1.3}.availability-collapsible{cursor:pointer;outline:none}.availability-collapsible>.availability-col{padding:.45rem .75rem;transition:padding .2s ease,background .2s ease}.availability-collapsible .chips{max-height:0;margin-top:0;overflow:hidden;opacity:0;pointer-events:none;transition:max-height .3s ease,margin-top .2s ease,opacity .2s ease}.availability-collapsible:hover,.availability-collapsible:focus-within,.availability-collapsible.availability-expanded{cursor:default}.availability-collapsible:hover>.availability-col,.availability-collapsible:focus-within>.availability-col,.availability-collapsible.availability-expanded>.availability-col{padding:1rem}.availability-collapsible:hover .chips,.availability-collapsible:focus-within .chips,.availability-collapsible.availability-expanded .chips{max-height:40rem;margin-top:.45rem;opacity:1;pointer-events:auto}.availability-collapsible:after{content:""}.drop-zone{background:#f7faffb8;border-color:#4e608d38;border-style:dashed}.chip,.weekday-pill,.license-pill{background:#ffffffd6;border-color:#4e608d2e;color:var(--navy)}.chip.removable button{color:#8f1824}.job-card,.settings-card,.notice-board,.settings-item,.materials-allocation-row,.project-schedule{border-color:#4e608d24;background:linear-gradient(180deg,#ffffffeb,#f7faffdb)}.job-card{gap:1rem;border-radius:18px}.planning-header{display:grid;gap:1rem;margin-bottom:1rem}.planning-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1.4rem;padding:.75rem 1rem;background:linear-gradient(180deg,#fff,#f7faff);border:1px solid rgba(78,96,141,.16);border-radius:14px;box-shadow:0 1px #ffffffb3 inset,0 6px 18px -16px #16233f59}.planning-toolbar-cell{display:flex;flex-direction:column;gap:.3rem;min-width:0}.planning-toolbar-date input[type=date]{min-width:9.5rem;max-width:11rem;height:2.3rem}.planning-toolbar-capacity input[type=number]{width:3.4rem;height:2.3rem;text-align:center;font-weight:600;font-size:1rem}.planning-toolbar-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.45rem;margin-left:auto}.planning-toolbar-actions .btn{min-height:2.3rem;padding:.42rem .85rem;border-radius:10px;font-size:.9rem;line-height:1.2;box-shadow:none}.planning-toolbar-actions .btn-primary{font-weight:600}.planning-kicker{display:inline-flex;align-items:center;gap:.35rem;width:fit-content;color:var(--navy);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.info-popover{position:relative;display:inline-flex;align-items:center}.info-popover>summary.info-icon{list-style:none;cursor:pointer;width:1.15rem;height:1.15rem;border-radius:999px;background:#eef2f8;color:#4e608d;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;font-style:italic;font-family:Georgia,Times New Roman,serif;border:1px solid #d9e0ec;text-transform:none;letter-spacing:0;-webkit-user-select:none;user-select:none;transition:background .15s ease,color .15s ease,border-color .15s ease}.info-popover>summary.info-icon::-webkit-details-marker{display:none}.info-popover>summary.info-icon::marker{display:none;content:""}.info-popover>summary.info-icon:hover,.info-popover[open]>summary.info-icon{background:var(--navy, #1b2742);color:#fff;border-color:var(--navy, #1b2742)}.info-popover-body{display:none}.info-popover[open] .info-popover-body{display:block;position:absolute;top:calc(100% + .5rem);left:0;z-index:30;min-width:18rem;max-width:24rem;padding:.75rem .9rem;background:#fff;border:1px solid #d9e0ec;border-radius:12px;box-shadow:0 14px 32px -16px #16233f66;font-size:.85rem;font-weight:400;text-transform:none;letter-spacing:normal;color:#4e5d7e;line-height:1.45}.planning-summary-card{margin:0}.planning-section-title{margin:0;font-size:1.05rem}.planning-summary-copy{margin:0}.split-start-wrap{display:grid;gap:.75rem}.split-start-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.split-start-toolbar p,.split-start-toolbar strong{margin:0}.split-start-group-list{display:grid;gap:.7rem}.split-start-group-card{display:grid;gap:.65rem;padding:.85rem;border-radius:16px;border:1px solid rgba(78,96,141,.14);background:#ffffff94}.split-start-group-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.split-start-group-head strong,.split-start-group-head p{margin:0}.split-start-group-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.split-start-group-members{display:grid;gap:.55rem}.split-start-group-members .chips{margin-top:0}.split-start-group-members .chip{align-items:center}.split-start-group-members .chip small{color:var(--text-muted)}.split-start-person-picker{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;align-items:end}.job-card-manual{border-left-color:#94a3b8}.job-card-auto{border-left-color:var(--info)}.job-card-locked{border-left-color:#7c3aed}.job-status-badge-manual{background:#eef2f8;color:#4f5d78}.job-status-badge-auto{background:var(--info-soft);color:#1f4fb6}.job-status-badge-locked{background:#f2ebff;color:#6f32c2}.job-status-badge-complete{background:#dcfce7;color:#166534}.warning{color:#93333b;background:#fff1f2;border-color:#d6293938}.timesheet-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.timesheet-stat{display:grid;gap:.2rem;padding:.9rem 1rem;border-radius:18px;background:#ffffffad;border:1px solid rgba(78,96,141,.14)}.timesheet-stat strong{font-size:1.25rem;color:var(--heading)}.timesheet-job-card{gap:1rem}.timesheet-job-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.timesheet-job-header p,.timesheet-job-header h3,.timesheet-job-header h4{margin:0}.timesheet-job-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.timesheet-job-meta span{display:block;color:var(--text-muted);font-size:.85rem}.timesheet-job-meta strong{display:block;margin-top:.2rem}.timesheet-template-card,.timesheet-member-card{display:grid;gap:.8rem}.timesheet-member-list{display:grid;gap:.75rem}.timesheet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.timesheet-shift-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.timesheet-segment-row{display:grid;grid-template-columns:repeat(6,minmax(100px,1fr)) minmax(135px,1.2fr) auto;gap:.5rem;align-items:end;padding:.7rem;border-radius:14px;background:#ffffff94;border:1px solid rgba(78,96,141,.14)}.timesheet-segment-row strong{display:block;margin-bottom:.25rem}.timesheet-member-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem}.timesheet-member-summary{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}.timesheet-member-summary .btn{padding:.28rem .55rem;font-size:.8rem}.timesheet-pill{display:inline-flex;align-items:center;border-radius:999px;padding:.28rem .65rem;background:#16233f12;color:var(--navy);font-size:.82rem;font-weight:600}.timesheet-pill-warning{background:#d6293914;color:#9a1e2b}.timesheet-pill-approved{background:#16a34a1a;color:#15803d}.timesheet-segment-list{display:grid;gap:.65rem}.timesheet-template-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:flex-end;margin-top:.85rem;padding-top:.85rem;border-top:1px solid rgba(78,96,141,.12)}.timesheet-segment-display{display:grid;grid-template-columns:minmax(145px,1.2fr) minmax(145px,1.1fr) minmax(170px,1.45fr) repeat(3,minmax(84px,.72fr)) minmax(120px,.95fr) minmax(120px,1fr) auto;gap:.5rem;padding:.62rem;border-radius:12px;border:1px solid rgba(78,96,141,.12);background:#ffffff80}.timesheet-segment-display strong,.timesheet-segment-display span,.timesheet-segment-display small{display:block}.timesheet-empty{margin:0}.notice-board-warning{border-color:#d6293933;background:linear-gradient(180deg,#fff7f7f5,#fff1f2eb)}.toolbar,.section-header-inline,.settings-actions,.modal-actions{gap:.6rem}thead th,.pipeline-gantt-month,.pipeline-gantt-sticky{background:#edf3ff;color:var(--heading)}th,td{border-color:#4e608d24}.pipeline-gantt-date,.pipeline-gantt-dot-span,.pipeline-gantt-cell-span{background:#eff4fd}.pipeline-gantt-cell-full,.pipeline-gantt-dot-full{background:var(--info);border-color:var(--info)}.pipeline-gantt-cell-half,.pipeline-gantt-dot-half{background:linear-gradient(135deg,#6e94e4 0 50%,#edf3ff 50% 100%)}.pipeline-gantt-date-today,.pipeline-gantt-dot-today{background:var(--warning-soft);border-color:#b8860b66}.pipeline-gantt-cell-today{box-shadow:inset 0 0 0 2px #b8860b8c}.modal-backdrop{background:#0a14268f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.quick-actions{background:transparent}@media(max-width:1120px){.hero-brand,.app-toolbar{flex-direction:column;align-items:stretch}.hero-actions{align-items:flex-start}.hero-meta,.tabs{justify-content:flex-start}.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.planning-toolbar{flex-direction:column;align-items:stretch}.planning-toolbar-actions{margin-left:0;justify-content:flex-start}}@media(max-width:960px){#app{padding:1rem}.hero{padding:1.1rem}.hero-brand-lockup{flex-direction:column}.hero-logo-wrap{min-width:0;width:fit-content}.hero-stats{grid-template-columns:1fr}.app-toolbar{padding:1rem}.tabs{gap:.5rem}.btn-tab{width:100%;justify-content:flex-start}.quick-actions{position:sticky;top:.65rem;z-index:11;padding:.1rem 0}.planner-sticky-bar{top:4.2rem}.timesheet-overview,.materials-summary-grid,.timesheet-job-meta,.timesheet-grid,.timesheet-shift-grid,.timesheet-segment-row,.timesheet-segment-display{grid-template-columns:1fr}.planning-toolbar-actions .btn,.planning-toolbar-date input[type=date]{width:100%;max-width:none}.timesheet-job-header,.timesheet-member-header,.materials-dispatch-pill-row{flex-direction:column}}.worker-fillin-page .panel{margin-bottom:1rem}.worker-fillin-controls .settings-actions{flex-wrap:wrap;gap:.5rem;align-items:flex-end}.worker-fillin-instructions{margin-top:.75rem;border:1px solid #bfcbe3;border-radius:10px;background:#f0f5ff}.worker-fillin-instructions summary{display:flex;align-items:center;justify-content:space-between;gap:.5rem;cursor:pointer;list-style:none;padding:.7rem 1rem;font-weight:600;color:#1e3a5f;-webkit-user-select:none;user-select:none;border-radius:10px}.worker-fillin-instructions summary::-webkit-details-marker{display:none}.worker-fillin-instructions[open] summary{border-bottom:1px solid #bfcbe3;border-radius:10px 10px 0 0}.worker-fillin-instructions-label{display:flex;align-items:center;gap:.4rem}.worker-fillin-instructions-cue{font-size:.78rem;font-weight:500;color:#2563eb;white-space:nowrap}.worker-fillin-instructions[open] .worker-fillin-instructions-cue{display:none}.worker-fillin-instructions summary:after{content:"▸";font-size:.9rem;color:#2563eb;transition:transform .15s}.worker-fillin-instructions[open] summary:after{content:"▾"}.worker-fillin-help-list{margin:.5rem 0 0;padding:0 1rem .75rem 2rem}.worker-fillin-help-list li{margin-bottom:.45rem}.worker-day-nav{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-end}.worker-day-pick{display:flex;flex-direction:column;font-size:.8rem;gap:.15rem}.worker-tab-strip{display:flex;gap:.35rem;margin:.25rem 0 .5rem;border-bottom:1px solid var(--border)}.worker-tab{appearance:none;background:transparent;border:1px solid transparent;border-bottom:none;border-radius:6px 6px 0 0;padding:.4rem .8rem;font-size:.9rem;font-weight:600;color:var(--text-muted, #667);cursor:pointer}.worker-tab:hover:not(.worker-tab-active){color:var(--text)}.worker-tab-active{background:var(--surface, #fff);border-color:var(--border);border-bottom:2px solid var(--accent, #2563eb);color:var(--text);cursor:default}.worker-tab-muted{font-weight:500;font-size:.82rem;opacity:.75}.worker-tab-muted.worker-tab-active{opacity:1;border-bottom-color:var(--warning, #d97706)}.worker-reset-crew{padding:0;margin-left:.25rem}.worker-fillin-day{margin-bottom:1rem}.worker-fillin-segment{display:grid;grid-template-columns:1.4fr repeat(5,1fr) 1.2fr 1.6fr;gap:.5rem;align-items:end;padding:.5rem 0;border-top:1px solid var(--border)}.worker-fillin-segment:first-child{border-top:none}.worker-fillin-segment-label{display:flex;flex-direction:column;gap:.15rem}.worker-fillin-segment label{font-size:.85rem;display:flex;flex-direction:column}.worker-fillin-day-note{display:flex;flex-direction:column;margin-top:.5rem}.worker-fillin-planner-note{background:var(--info-soft);border-left:3px solid var(--info);padding:.5rem .75rem;border-radius:4px;margin:.5rem 0}.worker-fillin-crew-banner{background:var(--warning-soft);border-left:3px solid var(--warning);padding:.5rem .75rem;border-radius:4px;margin:.5rem 0;font-size:.9rem}.worker-fillin-crew-banner.worker-fillin-crew-unlinked{background:var(--info-soft);border-left-color:var(--info)}.worker-fillin-add-segment{margin-top:.5rem}.timesheet-prefilled-heading{margin:1.25rem 0 .25rem;padding-top:.75rem;border-top:1px solid var(--border)}.worker-fillin-remove-segment{grid-column:1 / -1;justify-self:end;padding:0;color:var(--danger, #b3261e)}@media(max-width:780px){.worker-fillin-segment{grid-template-columns:1fr 1fr;gap:.6rem .75rem;padding:.75rem 0}.worker-fillin-segment-label,.worker-fillin-project,.worker-fillin-vehicle,.worker-fillin-notes{grid-column:1 / -1}.worker-fillin-segment input,.worker-fillin-segment select{font-size:1rem;min-height:2.4rem}.worker-fillin-remove-segment{padding:.25rem 0;min-height:2rem}}.planner-capacity-bar{margin:0 0 .75rem;padding:.75rem 1rem;background:#f5f8ff;border:1px solid #d9e2f5;border-radius:12px;box-shadow:0 2px 6px -6px #1b274259}.planner-capacity-row{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem 1.4rem;justify-content:space-between}.planner-capacity-label{display:flex;align-items:center;gap:.6rem;font-weight:600;color:#1e2a44}.planner-capacity-label input[type=number]{width:5rem;padding:.35rem .55rem;border-radius:8px;border:1px solid #bfcbe3;background:#fff;font-weight:600;font-size:1rem;text-align:center}.planner-capacity-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;color:#5a6380;font-size:.88rem}.planner-capacity-meta strong{color:#1e2a44}.planner-capacity-reset{padding:.15rem .4rem;font-size:.85rem;font-weight:500}.planner-capacity-default-note{font-size:.82rem}.planner-capacity-warning{margin-top:.7rem;padding:.55rem .85rem;background:#fff4e0;border:1px solid #f0c97a;border-radius:8px;color:#7a4d00;display:flex;flex-wrap:wrap;gap:.4rem .9rem;align-items:baseline;font-size:.9rem}.planner-capacity-warning strong{color:#7a4d00}.management-report-completed{margin-top:.7rem;padding:.55rem .85rem;background:#eef8f0;border:1px solid #9fd4a8;border-radius:8px;color:#1f5a2d;display:flex;flex-wrap:wrap;gap:.4rem .9rem;align-items:baseline;font-size:.9rem}.management-report-completed strong{color:#1f5a2d}.sales-stale-leads-banner{margin:.85rem 0;padding:.65rem .9rem;background:#fff8ee;border:1px solid #e8c98a;border-radius:8px;color:#6a4300;display:flex;flex-direction:column;gap:.45rem;font-size:.9rem}.sales-stale-leads-banner strong{color:#6a4300}.sales-stale-leads-list{margin:.15rem 0 0;padding-left:1.1rem}.sales-stale-lead-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;margin-bottom:.35rem}.sales-stale-lead-text{display:flex;flex-direction:column;gap:.1rem;min-width:0}.sales-stale-badge{display:inline-block;margin-left:.45rem;padding:.08rem .4rem;border-radius:999px;background:#fff1d6;border:1px solid #e8c98a;color:#7a4d00;font-size:.72rem;font-weight:600;vertical-align:middle}.settings-item-stale{border-left:3px solid #e8c98a}.preformed-calendar-panel{margin-top:1rem}.preformed-calendar-scroll{overflow-x:auto;margin-top:.5rem}.preformed-calendar-table{width:max-content;min-width:100%;border-collapse:collapse;font-size:.82rem}.preformed-calendar-table th,.preformed-calendar-table td{border:1px solid #d8dfeb;padding:.35rem .45rem;text-align:center;white-space:nowrap}.preformed-calendar-table th.preformed-cal-mould{text-align:left;position:sticky;left:0;background:#fff;z-index:1;min-width:8rem}.preformed-cal-today{background:#eef4ff;font-weight:600}.preformed-cal-cell.preformed-cal-free{background:#fafbfd}.preformed-cal-cell.preformed-cal-pour{background:#dbeafe;color:#1e40af;font-weight:600}.preformed-cal-cell.preformed-cal-cure{background:#fef3c7;color:#92400e}.preformed-cal-cell.preformed-cal-demould{background:#dcfce7;color:#166534;font-weight:600}.preformed-cal-cell.preformed-cal-cure.preformed-cal-full{background:#fde68a;color:#92400e;font-weight:600}.preformed-orders-panel{margin-top:1rem}.preformed-order-row{border-left:3px solid #c7d2fe}.preformed-materials-editor{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e8ecf4}.preformed-materials-editor h5{margin:0 0 .5rem;font-size:.92rem}.leave-auto-remove-banner{margin:0 0 .75rem;padding:.6rem 1rem;background:#fff8e8;border:1px solid #f0c97a;border-left:4px solid #e08d00;border-radius:10px;color:#6a4300;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.leave-auto-remove-banner button{padding:.15rem .55rem;font-size:.85rem}.readonly-banner{margin:0 0 .75rem;padding:.6rem 1rem;background:#eef3ff;border:1px solid #b3c4ee;border-left:4px solid #3b62c8;border-radius:10px;color:#1f2d52;font-size:.92rem}.readonly-banner strong{color:#1f2d52;margin-right:.2rem}body.app-read-only input:disabled,body.app-read-only textarea:disabled,body.app-read-only select:disabled{background:#f4f6fa;color:#5a6171;border-color:#d6dbe4;cursor:not-allowed}body.app-read-only button:disabled{opacity:.45;cursor:not-allowed}.app-error-toast{position:fixed;top:16px;right:16px;z-index:9999;max-width:420px;padding:.75rem 1rem;border-radius:10px;background:#b61d2b;color:#fff;font-size:.9rem;line-height:1.4;box-shadow:0 18px 34px -22px #0f172a80;opacity:0;transform:translateY(-8px);transition:opacity .22s ease,transform .22s ease;pointer-events:none}.app-error-toast+.app-error-toast{margin-top:.5rem}.app-error-toast-visible{opacity:1;transform:translateY(0)}.ts-sub-tab-nav{display:flex;gap:.4rem;padding:.9rem 1.1rem 0;border-bottom:2px solid rgba(78,96,141,.1);margin-bottom:0}.ts-sub-tab-btn{position:relative;background:none;border:none;padding:.55rem 1.1rem;border-radius:8px 8px 0 0;font-size:.95rem;font-weight:600;color:var(--muted, #6b7280);cursor:pointer;transition:background .15s,color .15s;display:inline-flex;align-items:center;gap:.5rem}.ts-sub-tab-btn:hover{background:#4e608d12;color:var(--navy)}.ts-sub-tab-btn.active{background:#16233f0f;color:var(--navy);border-bottom:2px solid var(--brand, #d62939);margin-bottom:-2px}.ts-sub-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;height:1.4rem;padding:0 .35rem;border-radius:999px;background:#d62939;color:#fff;font-size:.72rem;font-weight:700}.ts-submission-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.2rem}.ts-submission-card{border:1px solid rgba(78,96,141,.14);border-radius:14px;padding:.82rem .92rem;background:#fff;transition:border-color .2s}.ts-submission-card.ts-status-submitted,.ts-submission-card.ts-status-changes_requested{border-color:#d6293940;background:#d6293905}.ts-submission-card.ts-status-approved{border-color:#16a34a33;background:#16a34a05}.ts-submission-card.ts-status-prefilled{border-color:#eab30847;background:#eab30808}.ts-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem;flex-wrap:wrap;margin-bottom:.3rem}.ts-card-who{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.ts-card-actions{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;flex-shrink:0}.ts-card-project{font-size:.82rem;margin:0 0 .35rem}.ts-seg-list{display:flex;flex-direction:column;gap:.14rem;margin-bottom:.48rem}.ts-seg-row{display:flex;align-items:center;gap:.6rem;font-size:.875rem;flex-wrap:wrap}.ts-seg-time{font-weight:600;font-variant-numeric:tabular-nums;min-width:10ch}.ts-seg-label{color:var(--navy)}.ts-seg-project{color:var(--muted, #6b7280);font-size:.8rem}.ts-seg-km{margin-left:.5rem;display:inline-flex;align-items:center;gap:.2rem;font-size:.8rem;background:#eab3081f;color:#92400e;padding:.1rem .5rem;border-radius:999px;font-weight:600}.ts-card-footer{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;font-size:.82rem;padding-top:.5rem;border-top:1px solid rgba(78,96,141,.08);margin-top:.3rem}.ts-total-hrs{font-weight:700;color:var(--navy)}.ts-worker-note,.ts-planner-note{color:var(--muted, #6b7280)}.ts-prefilled-note{color:#92400e;font-style:italic}.ts-section-heading{font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted, #6b7280);margin:1.2rem 0 .5rem;padding-bottom:.3rem;border-bottom:1px solid rgba(78,96,141,.1)}.ts-heading-urgent{color:#9a1e2b;border-bottom-color:#d6293933}.ts-prefilled-intro{font-size:.85rem;margin-bottom:.75rem}.ts-empty-state{padding:1.5rem 0;text-align:center}.ts-queue-banner{padding:.6rem .9rem;border-radius:8px;background:#d629390f;color:#9a1e2b;font-size:.875rem;margin-bottom:.75rem}.ts-approved-label{font-size:.875rem;color:#15803d;font-weight:600}.btn-sm{padding:.3rem .65rem;font-size:.82rem}.own-transport-grid{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin:.5rem 0 .75rem}.own-transport-check{display:flex;align-items:center;gap:.4rem;font-size:.9rem;cursor:pointer;font-weight:400;margin:0}.own-transport-count-label{display:block;margin-top:.6rem;font-size:.875rem}.own-transport-count-label input{width:5rem;margin-right:.5rem}.worker-km-row{margin:.75rem 0;background:#eab30812;border:1px solid rgba(234,179,8,.25);border-radius:10px;padding:.75rem 1rem}.worker-km-label{display:flex;flex-direction:column;gap:.35rem;font-weight:600;font-size:.92rem;margin:0}.worker-km-icon{font-size:1.1em}.worker-km-label input{max-width:12rem;margin-top:.2rem}.ts-card-editing{border-color:#16233f4d!important;background:#16233f05!important}.ts-edit-seg-list{display:flex;flex-direction:column;gap:.6rem;margin:.5rem 0}.ts-edit-seg-row{display:grid;grid-template-columns:minmax(150px,1.45fr) minmax(170px,1.6fr) repeat(3,minmax(82px,.75fr)) auto;gap:.5rem;align-items:end;padding:.52rem .62rem;border-radius:10px;background:#ffffffb3;border:1px solid rgba(78,96,141,.12)}.ts-edit-seg-row label{display:flex;flex-direction:column;gap:.2rem;font-size:.8rem;font-weight:600;margin:0}.ts-edit-add-row{display:flex;gap:.5rem;margin:.4rem 0;flex-wrap:wrap}.ts-edit-save-row{display:flex;gap:.5rem;align-items:center;padding-top:.6rem;border-top:1px solid rgba(78,96,141,.1);margin-top:.4rem;flex-wrap:wrap}.ts-edit-note-label,.ts-edit-km-label{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;margin:.4rem 0}.ts-edit-note-label textarea{flex:1;min-width:0}.ts-edit-km-label input{width:8rem}@media(max-width:1320px){.timesheet-segment-row{grid-template-columns:repeat(4,minmax(120px,1fr))}.timesheet-segment-display,.ts-edit-seg-row{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1120px){.timesheet-segment-row,.timesheet-segment-display,.ts-edit-seg-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
