:root{--brand-dark: #104a74;--brand-medium: #809eba;--brand-light: #a6d6f3;--brand-accent: #a6d6f3;--brand-pale: #e8f2fb;--bg-body: #f0f4f8;--bg-card: #ffffff;--bg-nav: var(--brand-dark);--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--text-on-dark: #ffffff;--text-on-dark-muted: rgba(255, 255, 255, .7);--border-light: #dbe3f0;--border-medium: #e2e8f0;--border-strong: #cbd5e1;--green-bg: #dcfce7;--green-text: #166534;--green-border: #bbf7d0;--green-solid: #22c55e;--red-bg: #fef2f2;--red-text: #991b1b;--red-border: #fecaca;--red-solid: #ef4444;--amber-text: #92400e;--amber-bg: #fef3c7;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-pill: 999px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:var(--text-primary);background-color:var(--bg-body);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg-body);color:var(--text-primary)}a{color:inherit}.app-shell{min-height:100vh}.top-nav-wrap{background:var(--brand-dark);position:sticky;top:0;z-index:100;box-shadow:0 2px 8px #00000026}.top-nav{max-width:1200px;margin:0 auto;padding:0 1rem;display:flex;gap:.25rem;align-items:center;overflow-x:auto;min-height:3.5rem}.nav-brand{font-weight:800;font-size:1.1rem;color:var(--text-on-dark);margin-right:1.5rem;white-space:nowrap;letter-spacing:.02em}.nav-brand-logo{height:2rem;width:auto;margin-right:1.5rem;flex-shrink:0}.top-nav-link{text-decoration:none;padding:.5rem .85rem;border-radius:var(--radius-md);color:var(--text-on-dark-muted);font-weight:600;font-size:.9rem;white-space:nowrap;transition:all .2s}.top-nav-link:hover{color:var(--text-on-dark);background:#ffffff1a}.top-nav-link.active{background:#ffffff2e;color:var(--text-on-dark)}.page-wrap{max-width:1200px;margin:0 auto;padding:1.25rem 1rem}.settings-header h1{margin:0;font-size:1.6rem}.settings-header p{margin:.4rem 0 0;color:var(--text-muted)}.settings-tabs{display:flex;gap:.5rem;margin-top:1rem;border-bottom:1px solid var(--border-light);overflow-x:auto}.settings-tab{text-decoration:none;padding:.7rem .9rem;border-radius:var(--radius-md) var(--radius-md) 0 0;color:var(--text-secondary);font-weight:600;white-space:nowrap;transition:all .2s}.settings-tab:hover{color:var(--text-primary);background:#003b5c0a}.settings-tab.active{background:var(--bg-card);border:1px solid var(--border-light);border-bottom-color:var(--bg-card);color:var(--brand-dark)}.settings-page{padding:1.5rem 0}.settings-layout{display:flex;flex-direction:column;gap:1.5rem;max-width:900px}.settings-section{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-lg);padding:1.5rem;overflow:hidden}.section-header{margin-bottom:1.25rem}.section-header h2{margin:0 0 .5rem;font-size:1.25rem;color:var(--text-primary)}.section-header p{margin:0;color:var(--text-muted);font-size:.95rem}.input-form{display:flex;flex-direction:column;gap:1rem}.form-field{display:flex;flex-direction:column;gap:.4rem}.form-field label{font-size:.9rem;font-weight:600;color:#334155}.form-field input,.form-field textarea{width:100%;padding:.65rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);font:inherit;color:inherit;background:var(--bg-card);transition:border-color .2s}.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--brand-light);box-shadow:0 0 0 3px #0077a81f}.form-field textarea{resize:vertical;min-height:80px}.field{display:flex;flex-direction:column;gap:.4rem}.field span{font-size:.9rem;font-weight:600;color:#334155}.field input,.field select,.field textarea{width:100%;padding:.65rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);font:inherit;color:inherit;background:var(--bg-card)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brand-light);box-shadow:0 0 0 3px #0077a81f}.muted{margin:0;color:var(--text-muted);font-size:.95rem}.checkbox-label{display:inline-flex;align-items:center;gap:.5rem;font-size:.95rem;color:var(--text-primary);cursor:pointer}.checkbox-label input[type=checkbox]{width:1.15rem;height:1.15rem;margin:0;flex-shrink:0;cursor:pointer;accent-color:var(--brand-dark)}.color-picker{padding:.25rem;height:2.75rem;width:100%;max-width:8rem;cursor:pointer}.filter-toggle{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:0;font-size:.95rem;color:#334155;cursor:pointer;width:fit-content;-webkit-user-select:none;user-select:none}.filter-toggle input[type=checkbox]{width:1.15rem;height:1.15rem;margin:0;flex-shrink:0;cursor:pointer;accent-color:var(--brand-dark)}.empty-message{color:var(--text-muted);font-size:.95rem;margin:0 0 1rem;display:block}.card{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-lg);padding:1.25rem}.button-group{display:flex;gap:.65rem;flex-wrap:wrap;width:fit-content;max-width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-card);color:var(--text-primary);font:inherit;font-size:.9rem;font-weight:600;line-height:1.3;cursor:pointer;transition:all .2s;min-height:2.5rem;pointer-events:auto;touch-action:manipulation}.btn:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--brand-dark);border-color:var(--brand-dark);color:var(--text-on-dark)}.btn-primary:hover:not(:disabled){background:var(--brand-medium);border-color:var(--brand-medium)}.btn-outline{background:transparent;border-color:var(--brand-dark);color:var(--brand-dark)}.btn-outline:hover:not(:disabled){background:var(--brand-pale)}.btn-success{background:#f0fdf4;border-color:var(--green-solid);color:var(--green-text)}.btn-success:hover:not(:disabled){background:var(--green-bg);border-color:#16a34a}.btn-danger{background:var(--red-bg);border-color:var(--red-solid);color:var(--red-text)}.btn-danger:hover:not(:disabled){background:#fee2e2;border-color:#dc2626}.btn-sm{padding:.35rem .65rem;font-size:.82rem;min-height:2rem}.btn-active{background:var(--brand-pale);border-color:var(--brand-light);color:var(--brand-dark)}.alert-error{margin-bottom:1rem;padding:.875rem 1rem;background:var(--red-bg);border:1px solid var(--red-border);border-radius:var(--radius-lg);color:var(--red-text);font-size:.95rem}.cal-modal .alert-error{position:sticky;top:-1.75rem;z-index:210;margin:-1.75rem -1.75rem 1rem;padding:.875rem 1.75rem;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.entity-list{display:flex;flex-direction:column;gap:.5rem;margin-top:0;padding-top:0}.entity-item{background:var(--bg-card);border:2px solid var(--border-medium);border-radius:var(--radius-lg);padding:.75rem 1rem;display:flex;flex-direction:row;align-items:center;gap:.75rem;transition:border-color .2s}.entity-item.inactive{background:#f8fafc;border-color:var(--border-strong)}.entity-item[draggable=true]{cursor:grab}.entity-item[draggable=true]:active{cursor:grabbing}.entity-item.entity-drag-over{border-color:var(--brand-accent);box-shadow:0 0 0 2px #00a3e040}.entity-drag-handle{display:flex;align-items:center;font-size:1.1rem;color:var(--text-muted);cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;letter-spacing:.05em}.entity-info{display:flex;gap:.75rem;align-items:center;flex:1;min-width:0}.color-swatch{display:block;width:1rem;height:1rem;border-radius:var(--radius-sm);flex-shrink:0;margin-top:.25rem;border:1px solid rgba(0,0,0,.1)}.entity-details{flex:1;min-width:0}.entity-name{margin:0 0 .2rem;font-size:.95rem;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entity-description{margin:0 0 .2rem;font-size:.8rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge-group{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center;margin-top:.15rem}.status-badge{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:var(--radius-pill);font-size:.72rem;font-weight:600;border:1px solid}.status-badge.active{background:var(--green-bg);color:var(--green-text);border-color:var(--green-border)}.status-badge.inactive{background:#f1f5f9;color:var(--text-secondary);border-color:var(--border-strong)}.entity-item .button-group{flex-direction:column;flex-shrink:0;flex-wrap:nowrap;gap:.4rem;width:auto;align-items:stretch}.entity-item .button-group .btn{font-size:.8rem;padding:.3rem .75rem;white-space:nowrap}.entity-edit-form{display:flex;flex-direction:column;gap:1rem;flex:1}.jobs-page{display:flex;flex-direction:column;gap:1rem;padding-top:1rem}.jobs-header h1{margin:0;font-size:1.6rem}.jobs-header p{margin:.4rem 0 0;color:var(--text-muted)}.jobs-toolbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;align-items:end}.jobs-filters-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-light)}.jobs-filters-row .field{min-width:180px;flex:1;max-width:280px}.jobs-sort-btns{display:flex;gap:.35rem;align-items:center}.jobs-summary-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.jobs-summary-item{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-lg);padding:1rem;display:flex;flex-direction:column;gap:.25rem}.jobs-summary-label{font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.jobs-summary-value{font-size:1.3rem;font-weight:700;color:var(--brand-dark)}.jobs-summary-profit{color:var(--green-text)}.jobs-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.jobs-span-full{grid-column:1 / -1}.inline-create{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.inline-create input{min-width:180px;flex:1 1 180px;padding:.65rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);font:inherit}.inline-create-compact{grid-column:1 / -1}.inline-create-compact input{min-width:120px;flex:1 1 120px;padding:.45rem;font-size:.85rem}.engineer-picker{margin:0;border:1px solid var(--border-light);border-radius:.6rem;padding:.75rem;grid-column:1 / -1}.engineer-picker legend{padding:0 .35rem;font-weight:600;color:#334155}.engineer-picker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.day-engineer-section{grid-column:1 / -1;margin-top:.25rem}.day-engineer-section .btn-sm{font-size:.75rem;padding:.2rem .5rem;margin-bottom:.35rem}.day-engineer-grid{border:1px solid var(--border-light);border-radius:var(--radius-md);overflow:auto;max-height:300px;font-size:.8rem}.day-eng-header-row,.day-eng-row{display:grid;border-bottom:1px solid var(--border-light);align-items:center}.day-eng-header-row{background:var(--bg-body);font-weight:600;position:sticky;top:0;z-index:1}.day-eng-date-cell{padding:.25rem .4rem;font-weight:600;border-right:1px solid var(--border-light);white-space:nowrap}.day-eng-cell{display:flex;align-items:center;justify-content:center;gap:.15rem;padding:.15rem}.btn-star-sm{font-size:.7rem;padding:0;width:1rem;height:1rem;min-width:0}.recurring-fieldset{margin:0;border:1px solid var(--border-light);border-radius:.6rem;padding:.75rem;grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1rem}.recurring-fieldset legend{padding:0 .35rem;font-weight:600;color:#334155}.jobs-list{display:flex;flex-direction:column;gap:.7rem}.jobs-row{border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:.85rem;display:flex;justify-content:space-between;gap:.8rem;align-items:flex-start;transition:border-color .2s}.jobs-row:hover{border-color:var(--brand-accent)}.jobs-row-main{flex:1;min-width:0}.item-title{margin:0;font-weight:700}.item-meta{margin:.35rem 0 0;color:var(--text-secondary);font-size:.92rem}.jobs-row-muted{opacity:.65;border-style:dashed}.job-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .5rem;border-radius:var(--radius-pill);font-size:.8rem;font-weight:600;color:#fff;line-height:1.4;white-space:nowrap}.job-pill-outline{display:inline-flex;align-items:center;gap:.25rem;padding:.1rem .45rem;border-radius:var(--radius-pill);font-size:.78rem;font-weight:600;border:2px solid;background:transparent;line-height:1.35;white-space:nowrap}.job-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.3rem}.job-meta-separator{color:var(--text-muted);font-size:.8rem}.job-invoice-icon{font-size:.9rem}.checkbox-field{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-field input[type=checkbox]{width:1.15rem;height:1.15rem;margin:0;flex-shrink:0;accent-color:var(--brand-dark);cursor:pointer}.checkbox-field span{line-height:1.3}.no-spin::-webkit-inner-spin-button,.no-spin::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.no-spin{-moz-appearance:textfield}.searchable-select{position:relative}.searchable-select-trigger{display:flex;align-items:center;gap:.3rem;padding:.55rem .65rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-card);cursor:pointer;min-height:2.4rem;transition:border-color .2s}.searchable-select-trigger.open{border-color:var(--brand-light);box-shadow:0 0 0 3px #0077a81f}.searchable-select-input{flex:1;border:none;outline:none;font:inherit;background:transparent;color:inherit;padding:0}.searchable-select-display{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.searchable-select-display.placeholder{color:var(--text-muted)}.searchable-select-clear{border:none;background:none;cursor:pointer;font-size:1.1rem;color:var(--text-muted);padding:0 .15rem;line-height:1}.searchable-select-clear:hover{color:var(--red-solid)}.searchable-select-dropdown{position:absolute;top:100%;left:0;right:0;z-index:300;background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:0 4px 16px #0000001f;max-height:220px;overflow-y:auto;margin-top:2px}.searchable-select-option{padding:.45rem .65rem;cursor:pointer;font-size:.92rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem}.searchable-select-option:hover{background:var(--brand-pale)}.searchable-select-option.selected{background:var(--brand-pale);font-weight:600}.searchable-select-sublabel{font-size:.8rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:50%}.searchable-select-empty{padding:.65rem;color:var(--text-muted);font-size:.9rem;text-align:center}.settings-toolbar,.settings-search-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem}.settings-search{flex:1;min-width:160px;padding:.55rem .65rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);font:inherit;color:inherit;background:var(--bg-card);transition:border-color .2s}.settings-search:focus{outline:none;border-color:var(--brand-light);box-shadow:0 0 0 3px #0077a81f}.settings-count{font-size:.85rem;color:var(--text-muted);white-space:nowrap}.actions{display:flex;gap:.5rem;flex-wrap:wrap}.jobs-delete-confirm{display:flex;gap:.35rem;align-items:center}.jobs-delete-input{width:110px;padding:.35rem .5rem;border:1px solid var(--red-border);border-radius:var(--radius-md);font:inherit;font-size:.82rem}.dashboard-page{display:flex;flex-direction:column;gap:1.25rem;padding-top:1rem}.dash-header h1{margin:0;font-size:1.6rem}.dash-header p{margin:.3rem 0 0;color:var(--text-muted)}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem}.kpi-card{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-lg);padding:1.1rem 1rem;display:flex;flex-direction:column;gap:.35rem;border-top:3px solid var(--brand-dark)}.kpi-label{font-size:.78rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.kpi-value{font-size:1.5rem;font-weight:800;color:var(--brand-dark)}.kpi-profit{color:var(--green-text)}.kpi-warn{color:var(--amber-text)}.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.dash-card{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-lg);padding:1.25rem}.dash-card h2{margin:0 0 1rem;font-size:1.15rem;color:var(--brand-dark)}.dash-card-span{grid-column:1 / -1}.bar-compare{display:flex;flex-direction:column;gap:1.25rem}.bar-group{display:flex;flex-direction:column;gap:.5rem}.bar-label{font-size:.85rem;font-weight:700;color:var(--text-secondary)}.bar-row{display:grid;grid-template-columns:60px 1fr 90px;gap:.5rem;align-items:center}.bar-tag{font-size:.78rem;font-weight:600;color:var(--text-muted)}.bar-track{height:1.4rem;background:var(--bg-body);border-radius:var(--radius-md);overflow:hidden}.bar-fill{height:100%;border-radius:var(--radius-md);transition:width .6s ease;min-width:2px}.bar-revenue{background:var(--brand-light)}.bar-cost{background:var(--red-solid)}.bar-val{font-size:.82rem;font-weight:700;color:var(--text-primary);text-align:right}.recent-jobs-list{display:flex;flex-direction:column;gap:.5rem}.recent-job-row{display:flex;justify-content:space-between;align-items:center;padding:.65rem 0;border-bottom:1px solid var(--border-light);gap:.75rem}.recent-job-row:last-child{border-bottom:none}.recent-job-main{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;min-width:0}.recent-job-date{font-size:.85rem;font-weight:600;color:var(--text-secondary);white-space:nowrap}.recent-job-customer{font-weight:700;font-size:.92rem}.recent-job-type{font-size:.82rem;color:var(--text-muted)}.recent-job-right{display:flex;gap:.5rem;align-items:center;flex-shrink:0}.recent-job-revenue{font-weight:700;font-size:.92rem;color:var(--brand-dark)}.badge-confirmed{display:inline-flex;padding:.2rem .5rem;border-radius:var(--radius-pill);font-size:.72rem;font-weight:600;background:var(--green-bg);color:var(--green-text);border:1px solid var(--green-border)}.badge-unconfirmed{display:inline-flex;padding:.2rem .5rem;border-radius:var(--radius-pill);font-size:.72rem;font-weight:600;background:var(--amber-bg);color:var(--amber-text);border:1px solid #fde68a}.kpi-change{font-size:.72rem;font-weight:600;margin-top:.1rem}.kpi-change-up{color:var(--green-text)}.kpi-change-down{color:var(--red-text)}.kpi-change-flat{color:var(--text-muted)}.kpi-sub{font-size:.72rem;color:var(--text-muted);font-weight:600}.bar-profit{background:var(--green-solid)}.dash-card-full{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-lg);padding:1.25rem}.dash-card-full h2{margin:0 0 1rem;font-size:1.15rem;color:var(--brand-dark)}.dash-eng-list{display:flex;flex-direction:column;gap:.6rem}.dash-eng-row{display:flex;flex-direction:column;gap:.3rem}.dash-eng-info{display:flex;gap:.5rem;align-items:center}.dash-eng-swatch{display:block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.dash-eng-name{font-weight:700;font-size:.88rem}.dash-eng-jobs{font-size:.78rem;color:var(--text-muted)}.dash-eng-bar-wrap{display:grid;grid-template-columns:1fr 90px;gap:.5rem;align-items:center}.dash-eng-val{font-size:.85rem;font-weight:700;text-align:right;color:var(--brand-dark)}.dash-jt-list{display:flex;flex-direction:column;gap:.7rem}.dash-jt-row{display:flex;flex-direction:column;gap:.2rem}.dash-jt-info{display:flex;gap:.5rem;align-items:baseline}.dash-jt-name{font-weight:700;font-size:.88rem}.dash-jt-count{font-size:.78rem;color:var(--text-muted)}.dash-jt-bar-wrap{display:grid;grid-template-columns:1fr 90px;gap:.5rem;align-items:center}.dash-jt-val{font-size:.85rem;font-weight:700;text-align:right;color:var(--brand-dark)}.dash-jt-profit{font-size:.78rem;color:var(--green-text);font-weight:600}.dash-cust-list{display:flex;flex-direction:column;gap:.7rem}.dash-cust-row{display:flex;flex-direction:column;gap:.2rem}.dash-cust-info{display:flex;gap:.5rem;align-items:baseline}.dash-cust-name{font-weight:700;font-size:.88rem}.dash-cust-jobs{font-size:.78rem;color:var(--text-muted)}.dash-cust-bar-wrap{display:grid;grid-template-columns:1fr 90px;align-items:center;gap:.5rem}.dash-cust-val{font-weight:700;font-size:.82rem;text-align:right;color:var(--brand-dark)}.dash-cust-profit{font-size:.78rem;color:var(--green-text);font-weight:600}.eng-insights-list{display:flex;flex-direction:column;gap:.7rem}.eng-insight-row{border:1px solid var(--border-light);border-radius:var(--radius-md);padding:.65rem .75rem;background:var(--bg-body);display:flex;flex-direction:column;gap:.5rem}.eng-insight-ident{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.eng-insight-name{font-weight:700;font-size:.9rem;color:var(--brand-dark)}.eng-insight-code{font-size:.76rem;color:var(--text-muted);font-weight:600}.eng-cap-badge{border-radius:var(--radius-pill);padding:.12rem .45rem;font-size:.68rem;font-weight:700;letter-spacing:.02em}.eng-cap-badge.over{background:var(--red-bg);color:var(--red-text);border:1px solid var(--red-border)}.eng-cap-badge.under{background:var(--amber-bg);color:var(--amber-text);border:1px solid #fde68a}.eng-insight-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.35rem .55rem;font-size:.78rem;color:var(--text-secondary)}.eng-insight-metrics strong{color:var(--text-primary)}.eng-insight-heatmap{display:grid;grid-template-columns:repeat(5,minmax(34px,1fr));gap:.35rem}.eng-heat-cell{text-align:center;border-radius:var(--radius-sm);font-size:.7rem;font-weight:700;padding:.22rem 0;border:1px solid var(--border-light)}.eng-heat-cell.idle{background:#f1f5f9;color:#475569}.eng-heat-cell.booked{background:#dcfce7;color:#166534;border-color:#86efac}.eng-heat-cell.office{background:#e0f2fe;color:#075985;border-color:#7dd3fc}.eng-summary-wrap{display:flex;flex-direction:column;gap:.8rem}.eng-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.55rem}.eng-summary-card{border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-body);padding:.6rem .65rem;display:flex;flex-direction:column;gap:.16rem}.eng-summary-card span{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-weight:600}.eng-summary-card strong{font-size:1.08rem;color:var(--brand-dark)}.eng-summary-heatmap{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem}.eng-summary-heat-row{border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-body);padding:.45rem .5rem;display:flex;flex-direction:column;gap:.32rem}.eng-summary-heat-head{display:flex;align-items:center;justify-content:space-between;font-size:.72rem;color:var(--text-secondary);font-weight:700}.eng-summary-heat-head strong{color:var(--brand-dark)}.eng-summary-heat-stack{width:100%;height:.48rem;border-radius:999px;overflow:hidden;display:flex;background:#e2e8f0}.eng-summary-heat-stack span{height:100%}.eng-summary-heat-stack .booked{background:#22c55e}.eng-summary-heat-stack .office{background:#38bdf8}.eng-summary-heat-stack .idle{background:#cbd5e1}.eng-summary-heat-sub{font-size:.68rem;color:var(--text-muted);font-weight:600}.dash-capacity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.dash-capacity-col h3{margin:0 0 .55rem;font-size:.88rem;color:var(--text-secondary)}.dash-capacity-list{display:flex;flex-direction:column;gap:.45rem}.dash-capacity-item{border-radius:var(--radius-md);padding:.5rem .6rem;display:flex;align-items:center;justify-content:space-between;font-size:.82rem;font-weight:600}.dash-capacity-item.over{background:var(--red-bg);color:var(--red-text);border:1px solid var(--red-border)}.dash-capacity-item.under{background:var(--amber-bg);color:var(--amber-text);border:1px solid #fde68a}.dash-cost-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.dash-cost-item{background:var(--bg-body);border-radius:var(--radius-md);padding:.75rem;display:flex;flex-direction:column;gap:.2rem;text-align:center}.dash-cost-label{font-size:.78rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.dash-cost-value{font-size:1.1rem;font-weight:700;color:var(--brand-dark)}.dash-cost-pct{font-size:.75rem;color:var(--text-muted);font-weight:600}.calendar-page{display:flex;flex-direction:column;gap:1rem;padding-top:1rem}.cal-header-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.cal-header h1{margin:0;font-size:1.6rem}.cal-view-toggle{display:flex;gap:.35rem}.cal-nav{display:flex;gap:.5rem;align-items:center;margin-top:.75rem;flex-wrap:wrap}.cal-nav-label{font-weight:700;font-size:1.05rem;color:var(--brand-dark);min-width:200px;text-align:center}.cal-week{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-lg);overflow:hidden}.cal-week-header{display:grid;grid-template-columns:140px repeat(7,1fr);background:var(--brand-dark);color:var(--text-on-dark)}.cal-week-eng-label{padding:.65rem .75rem;font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.03em}.cal-week-day-header{padding:.5rem;text-align:center;display:flex;flex-direction:column;gap:.1rem;border-left:1px solid rgba(255,255,255,.1)}.cal-day-name{font-size:.72rem;font-weight:600;text-transform:uppercase;opacity:.8}.cal-day-num{font-size:1rem;font-weight:700}.cal-week-row{display:grid;grid-template-columns:140px 1fr;border-top:1px solid var(--border-light)}.cal-week-eng{padding:.6rem .75rem;border-left:4px solid var(--brand-light);display:flex;flex-direction:column;gap:.15rem;background:#f8fafc}.cal-week-eng strong{font-size:.9rem;color:var(--brand-dark)}.cal-week-eng span{font-size:.78rem;color:var(--text-muted)}.cal-week-eng-unassigned{border-left-color:var(--border-strong)}.cal-week-cells{grid-column:2 / -1;display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(var(--week-rows, 1),minmax(2.5rem,auto));position:relative;min-height:2.5rem;align-content:start}.cal-week-gridline{border-left:1px solid var(--border-light);grid-row:1 / -1}.cal-week-gridline:first-child{border-left:none}.cal-span-block{display:flex;align-items:center;gap:.25rem;padding:.35rem .5rem;border-radius:var(--radius-sm);border:none;cursor:pointer;text-align:left;font:inherit;font-size:.75rem;font-weight:600;color:#fff;transition:opacity .2s;overflow:hidden;position:relative;margin:.2rem .15rem;min-height:2rem}.cal-span-block:hover{opacity:.85}.cal-span-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-span-type-stripe{display:block;width:6px;align-self:stretch;border-radius:3px;flex-shrink:0;margin:-.15rem -.25rem -.15rem .25rem}.cal-week-cell{min-height:3.5rem;padding:.35rem;border-left:1px solid var(--border-light);display:flex;flex-direction:column;gap:.25rem}.cal-job-block{display:block;width:100%;padding:.3rem .45rem;border-radius:var(--radius-sm);border:none;cursor:pointer;text-align:left;font:inherit;font-size:.72rem;font-weight:600;color:#fff;transition:opacity .2s;overflow:hidden}.cal-job-block:hover{opacity:.85}.cal-job-text{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-job-unconfirmed{border:2px dashed rgba(255,255,255,.5);opacity:.75}.cal-job-excluded{opacity:.6;background-image:repeating-linear-gradient(-45deg,transparent,transparent 4px,rgba(255,255,255,.25) 4px,rgba(255,255,255,.25) 8px)!important;border:1.5px dashed rgba(255,255,255,.5)}.wb-block.wb-excluded{opacity:.5;background-image:repeating-linear-gradient(-45deg,transparent,transparent 3px,rgba(255,255,255,.25) 3px,rgba(255,255,255,.25) 6px)!important;border:1px dashed rgba(255,255,255,.5)}.cal-month{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-lg);overflow:hidden}.cal-month-header{display:grid;grid-template-columns:repeat(7,1fr);background:var(--brand-dark);color:var(--text-on-dark)}.cal-month-day-label{padding:.55rem;text-align:center;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.cal-month-week{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--border-light)}.cal-month-cell{min-height:5.5rem;padding:.4rem;border-left:1px solid var(--border-light);display:flex;flex-direction:column;gap:.2rem}.cal-month-cell:first-child{border-left:none}.cal-month-cell-other{background:#f8fafc}.cal-month-cell-other .cal-month-date{color:var(--border-strong)}.cal-month-date{font-size:.82rem;font-weight:700;color:var(--text-secondary);margin-bottom:.15rem}.cal-month-jobs{display:flex;flex-direction:column;gap:.15rem}.cal-month-tag{display:flex;align-items:center;gap:.15rem;width:100%;padding:.2rem .35rem;border-radius:var(--radius-sm);border:none;cursor:pointer;text-align:left;font:inherit;font-size:.68rem;font-weight:600;color:#fff;overflow:hidden;position:relative}.cal-month-tag:hover{opacity:.85}.cal-month-tag-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-month-tag-stripe{display:block;width:4px;align-self:stretch;border-radius:2px;flex-shrink:0;margin:-.1rem -.15rem -.1rem .15rem}.cal-month-more{font-size:.68rem;color:var(--text-muted);font-weight:600}.cal-gantt-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.cal-gantt{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-lg);overflow:hidden;min-width:900px}.cal-gantt-header{display:grid;grid-template-columns:120px repeat(var(--gantt-cols),1fr);background:var(--brand-dark);color:var(--text-on-dark)}.cal-gantt-eng-label{padding:.5rem .6rem;font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}.cal-gantt-day-header{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.3rem 0;border-left:1px solid rgba(255,255,255,.08);min-width:0}.cal-gantt-day-header.cal-gantt-weekend{background:#00000026}.cal-gantt-day-dow{font-size:.6rem;font-weight:600;opacity:.7;text-transform:uppercase}.cal-gantt-day-num{font-size:.78rem;font-weight:700}.cal-gantt-row{display:grid;grid-template-columns:120px 1fr;border-top:1px solid var(--border-light);min-height:3.5rem}.cal-gantt-eng{padding:.5rem .6rem;border-left:4px solid var(--brand-light);display:flex;flex-direction:column;gap:.1rem;background:#f8fafc;justify-content:center}.cal-gantt-eng strong{font-size:.82rem;color:var(--brand-dark)}.cal-gantt-eng span{font-size:.72rem;color:var(--text-muted)}.cal-gantt-cells{display:grid;grid-template-columns:repeat(var(--gantt-cols),1fr);grid-template-rows:repeat(var(--gantt-rows),minmax(2rem,auto));position:relative;min-height:2.2rem;align-content:start}.cal-gantt-gridline{border-left:1px solid var(--border-light)}.cal-gantt-gridline:first-of-type{border-left:none}.cal-gantt-weekend-col{background:#00000006}.cal-gantt-block{display:flex;align-items:center;gap:.15rem;padding:.2rem .35rem;border-radius:var(--radius-sm);border:none;cursor:pointer;text-align:left;font:inherit;font-size:.7rem;font-weight:600;color:#fff;transition:opacity .15s,min-width .15s,z-index 0s;overflow:hidden;margin:1px;min-height:1.7rem;z-index:1;position:relative}.cal-gantt-block:hover{opacity:1;z-index:50;overflow:visible;min-width:max-content}.cal-gantt-block:hover .cal-gantt-block-text{overflow:visible;white-space:nowrap}.cal-gantt-block:hover .cal-gantt-block-stripe{margin-left:.3rem}.cal-gantt-block-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-gantt-block-stripe{display:block;width:4px;align-self:stretch;border-radius:2px;flex-shrink:0;margin:-.1rem -.15rem -.1rem .1rem}.cal-gantt-drop-target{background:#00a3e02e!important;box-shadow:inset 0 0 0 2px #a6d6f399}.cal-gantt-block[draggable],.cal-span-block[draggable]{cursor:grab}.cal-gantt-block[draggable]:active,.cal-span-block[draggable]:active{cursor:grabbing}.cal-modal-overlay{position:fixed;inset:0;background:#00000073;z-index:200;display:flex;align-items:flex-start;justify-content:center;padding:3rem 1rem;overflow-y:auto}.cal-modal{background:var(--bg-card);border-radius:var(--radius-xl);padding:1.75rem;width:100%;max-width:720px;box-shadow:0 8px 32px #0003}.cal-modal h2{margin:0 0 1rem;font-size:1.25rem;color:var(--brand-dark)}.cal-delete-section{grid-column:1 / -1;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--red-border);display:flex;gap:.75rem;align-items:end}.cal-delete-section .field{flex:1}.cal-delete-section .btn-danger{flex-shrink:0}.reports-page{display:flex;flex-direction:column;gap:1.25rem;padding-top:1rem}.reports-header-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.reports-header h1{margin:0;font-size:1.6rem}.reports-header p{margin:.3rem 0 0;color:var(--text-muted)}.reports-controls{display:flex;gap:.75rem;align-items:end}.report-meta{font-size:.88rem;color:var(--text-muted);font-weight:600}.report-card{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-lg);padding:1.25rem}.report-card h2{margin:0 0 1rem;font-size:1.15rem;color:var(--brand-dark)}.report-card-sub{margin:-.6rem 0 .75rem;font-size:.82rem;color:var(--text-muted)}.report-table-wrap{overflow-x:auto}.report-table{width:100%;border-collapse:collapse;font-size:.88rem}.report-table th{text-align:left;padding:.6rem .75rem;font-weight:700;color:var(--text-secondary);border-bottom:2px solid var(--brand-dark);font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.report-table th.num{text-align:right}.report-table td{padding:.55rem .75rem;border-bottom:1px solid var(--border-light);color:var(--text-primary)}.report-table td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.report-table tbody tr:hover{background:var(--brand-pale)}.report-row-muted td{opacity:.55}.cost-breakdown{display:flex;flex-direction:column;gap:.6rem}.cost-breakdown-row{display:grid;grid-template-columns:100px 1fr 100px 60px;gap:.75rem;align-items:center}.cost-breakdown-label{font-size:.88rem;font-weight:600;color:var(--text-secondary)}.cost-breakdown-bar-track{height:1.2rem;background:var(--bg-body);border-radius:var(--radius-md);overflow:hidden}.cost-breakdown-bar-fill{height:100%;background:var(--brand-dark);border-radius:var(--radius-md);transition:width .5s ease;min-width:2px}.cost-breakdown-value{font-size:.88rem;font-weight:700;color:var(--text-primary);text-align:right;font-variant-numeric:tabular-nums}.cost-breakdown-pct{font-size:.82rem;color:var(--text-muted);font-weight:600;text-align:right}.cost-breakdown-total{display:flex;justify-content:space-between;padding-top:.6rem;border-top:2px solid var(--brand-dark);margin-top:.25rem}.whiteboard-page{display:flex;flex-direction:column;gap:.75rem;padding-top:.5rem}.wb-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}.wb-header h1{margin:0;font-size:1.4rem}.wb-nav{display:flex;align-items:center;gap:.4rem}.wb-month-label{font-weight:700;font-size:1rem;min-width:130px;text-align:center}.wb-grid-wrap{overflow-x:auto;border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-card)}.wb-grid{display:grid;grid-template-columns:5rem repeat(var(--wb-eng-cols),minmax(140px,1fr));min-width:fit-content}.wb-grid-corner{position:sticky;left:0;z-index:10;background:#f1f5f9;font-size:.72rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;padding:.5rem;display:flex;align-items:center;justify-content:center;border-bottom:2px solid var(--border-light);border-right:1px solid var(--border-light)}.wb-grid-eng-header{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;padding:.5rem .3rem;background:#f1f5f9;border-bottom:3px solid;text-align:center;min-width:0}.wb-grid-eng-header strong{font-size:.9rem;color:var(--brand-dark)}.wb-grid-eng-header span{font-size:.7rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.wb-grid-date{position:sticky;left:0;z-index:5;background:var(--bg-card);display:flex;align-items:center;gap:.3rem;padding:.35rem .5rem;border-top:1px solid var(--border-light);border-right:1px solid var(--border-light);font-size:.78rem;min-height:2.8rem}.wb-grid-date-day{font-weight:600;color:var(--text-muted);min-width:1.8rem}.wb-grid-date-num{font-weight:700;color:var(--text-primary)}.wb-grid-today{background:#00a3e00f!important}.wb-grid-holiday{background:#ea580c0a!important}.wb-grid-holiday .wb-grid-date-num,.wb-grid-holiday .wb-grid-date-day{color:#ea580c}.wb-grid-weekend{background:#f8fafc!important}.wb-grid-weekend .wb-grid-date-num,.wb-grid-weekend .wb-grid-date-day{color:var(--text-muted);opacity:.7}.wb-grid-cell{border-top:1px solid var(--border-light);border-right:1px solid var(--border-light);padding:.2rem;display:flex;flex-direction:column;gap:.15rem;min-height:2.8rem}.wb-grid-cell:last-child{border-right:none}.wb-grid-job{display:flex;flex-direction:column;align-items:stretch;gap:.18rem;padding:.25rem .4rem;border-radius:var(--radius-sm);border:none;border-left:3px solid;background:#f8fafc;cursor:pointer;text-align:left;font:inherit;line-height:1.3;min-width:0;width:100%;transition:background .15s}.wb-grid-job:hover{background:#e2e8f0}.wb-grid-job-name{font-size:.8rem;font-weight:700;color:var(--text-primary);word-break:break-word;line-height:1.3}.wb-grid-job-meta{display:flex;align-items:center;gap:.2rem;flex-wrap:wrap}.wb-grid-job-type{font-size:.6rem;font-weight:600;color:#fff;padding:.05rem .3rem;border-radius:var(--radius-pill);white-space:nowrap;flex-shrink:0}.wb-grid-job-tbc{font-size:.55rem;font-weight:700;padding:.05rem .25rem;border-radius:var(--radius-sm);background:var(--amber-bg);color:var(--amber-text);border:1px solid rgba(146,64,14,.2);flex-shrink:0}.wb-grid-job-unconfirmed{opacity:.65}.wb-grid-job-excluded{opacity:.5;background-image:repeating-linear-gradient(-45deg,transparent,transparent 4px,rgba(0,0,0,.04) 4px,rgba(0,0,0,.04) 8px)}.wb-overlay-bg{position:fixed;inset:0;background:#0006;z-index:300;display:flex;align-items:center;justify-content:center;padding:1rem}.wb-overlay{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:0 20px 60px #0000004d;max-width:480px;width:100%;max-height:85vh;overflow-y:auto}.wb-overlay-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-light)}.wb-overlay-header h3{margin:0;font-size:1.15rem;color:var(--brand-dark)}.wb-overlay-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-muted);padding:0 .25rem;line-height:1}.wb-overlay-close:hover{color:var(--text-primary)}.wb-overlay-body{padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.6rem}.wb-overlay-row{display:flex;gap:.75rem;align-items:baseline;font-size:.88rem}.wb-overlay-label{flex-shrink:0;min-width:5.5rem;font-weight:600;color:var(--text-muted);font-size:.8rem}.wb-overlay-type-badge{font-size:.75rem;font-weight:600;color:#fff;padding:.15rem .5rem;border-radius:var(--radius-pill)}.wb-overlay-status{font-size:.8rem;font-weight:600;padding:.1rem .5rem;border-radius:var(--radius-pill)}.wb-overlay-status.confirmed{background:#22c55e1a;color:#16a34a}.wb-overlay-status.unconfirmed{background:var(--amber-bg);color:var(--amber-text)}.wb-overlay-engineers{display:flex;flex-direction:column;gap:.3rem}.wb-overlay-eng{display:inline-flex;align-items:center;gap:.3rem;font-size:.85rem;border-left:3px solid;padding-left:.4rem}.wb-overlay-eng strong{color:var(--brand-dark)}.wb-overlay-primary{color:#f59e0b;font-size:.8rem;margin-left:.15rem}.wb-overlay-notes{font-size:.85rem;color:var(--text-secondary);white-space:pre-wrap}.wb-overlay-section{margin-top:.5rem;padding-top:.6rem;border-top:1px solid var(--border-light)}.wb-overlay-section h4{margin:0 0 .4rem;font-size:.85rem;font-weight:700;color:var(--brand-dark)}@media(max-width:1100px){.jobs-toolbar,.jobs-form-grid,.engineer-picker-grid{grid-template-columns:1fr}.jobs-row{flex-direction:column}.dash-grid{grid-template-columns:1fr}.jobs-summary-row{grid-template-columns:repeat(2,1fr)}.cal-week-header{grid-template-columns:100px repeat(7,1fr)}.cal-week-row{grid-template-columns:100px 1fr}.cal-week-eng{padding:.4rem}.cal-week-eng span{display:none}.cal-gantt-header{grid-template-columns:90px repeat(var(--gantt-cols),1fr)}.cal-gantt-row{grid-template-columns:90px 1fr}.cal-gantt-eng span{display:none}}@media(max-width:640px){.page-wrap{padding:.75rem}.settings-section{padding:1rem}.button-group:not(.entity-item .button-group){flex-direction:column}.button-group:not(.entity-item .button-group) .btn{width:100%}.kpi-row{grid-template-columns:repeat(2,1fr)}.jobs-summary-row{grid-template-columns:1fr 1fr}.reports-header-top{flex-direction:column}.cal-week-header{grid-template-columns:80px repeat(7,1fr)}.cal-week-row{grid-template-columns:80px 1fr}.cal-nav-label{min-width:auto}.bar-row{grid-template-columns:50px 1fr 70px}}.cal-block-secondary{opacity:.3!important}.cal-block-badge{font-size:.85em;line-height:1;flex-shrink:0}.cal-badge-overnight{display:inline-flex;align-items:center;background:#000000a6;color:#fff;padding:.1rem .25rem;border-radius:999px;flex-shrink:0;vertical-align:middle}.cal-badge-overnight svg{display:block}.cal-bank-holiday{background-color:#dc50501f!important}.cal-bank-holiday-col{background-color:#dc505014!important}.cal-bank-holiday-dot{display:block;width:5px;height:5px;border-radius:50%;background:#c0392b;margin:1px auto 0}.engineer-picker-row{display:flex;align-items:center;gap:.25rem}.btn-star{background:none;border:none;cursor:pointer;font-size:1.05rem;padding:0 .15rem;line-height:1;color:#d1d5db;transition:color .15s}.btn-star:hover,.btn-star.active{color:#f59e0b}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--brand-dark) 0%,#0a2e4a 50%,#061e32 100%);padding:1rem}.login-card{background:var(--bg-card);border-radius:var(--radius-xl);padding:2.5rem 2rem;width:100%;max-width:380px;box-shadow:0 20px 60px #0000004d}.login-brand{display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem}.login-logo{max-width:220px;height:auto}.login-card h2{font-size:1.3rem;margin:0 0 1.25rem;color:var(--text-primary)}.login-error{background:var(--red-bg);color:var(--red-text);border:1px solid var(--red-border);border-radius:var(--radius-md);padding:.6rem .75rem;font-size:.85rem;margin-bottom:1rem}.login-field{display:block;margin-bottom:1rem}.login-field span{display:block;font-size:.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:.3rem}.login-field input{width:100%;padding:.6rem .75rem;border:1.5px solid var(--border-light);border-radius:var(--radius-md);font-size:.95rem;transition:border-color .15s;box-sizing:border-box}.login-field input:focus{outline:none;border-color:var(--brand-dark);box-shadow:0 0 0 3px #104a741f}.login-submit{width:100%;padding:.7rem;font-size:.95rem;margin-top:.5rem}.loading-splash{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-body)}.loading-spinner{width:36px;height:36px;border:3.5px solid var(--border-light);border-top-color:var(--brand-dark);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.nav-spacer{flex:1}.nav-user-area{display:flex;align-items:center;gap:.5rem;margin-left:1rem}.nav-user-name{font-size:.8rem;color:var(--text-on-dark-muted);font-weight:500}.nav-role-badge{font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;padding:.15rem .45rem;border-radius:var(--radius-pill)}.nav-logout-btn{background:#ffffff1f!important;color:var(--text-on-dark)!important;border:1px solid rgba(255,255,255,.2)!important;font-size:.75rem!important;padding:.25rem .6rem!important}.nav-logout-btn:hover{background:#ffffff38!important}.role-badge{display:inline-block;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;padding:.15rem .45rem;border-radius:var(--radius-pill)}.role-admin,.role-badge.role-admin,.nav-role-badge.role-admin{background:#ef444426;color:#dc2626}.nav-role-badge.role-admin{background:#ef444440;color:#fca5a5}.role-manager,.role-badge.role-manager,.nav-role-badge.role-manager{background:#ea580c1f;color:#c2410c}.nav-role-badge.role-manager{background:#ea580c47;color:#fdba74}.role-office,.role-badge.role-office,.nav-role-badge.role-office{background:#3b82f61f;color:#2563eb}.nav-role-badge.role-office{background:#3b82f640;color:#93c5fd}.role-engineer,.role-badge.role-engineer,.nav-role-badge.role-engineer{background:#22c55e1f;color:#16a34a}.nav-role-badge.role-engineer{background:#22c55e40;color:#86efac}.role-display,.role-badge.role-display,.nav-role-badge.role-display{background:#a855f71f;color:#7c3aed}.nav-role-badge.role-display{background:#a855f740;color:#c4b5fd}.tv-presets-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.tv-preset-card{display:flex;align-items:center;gap:.25rem;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);overflow:hidden;transition:border-color .15s}.tv-preset-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.tv-preset-load-btn{background:none;border:none;cursor:pointer;padding:.5rem .6rem;display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;color:var(--text-primary)}.tv-preset-load-btn:hover{background:var(--bg-hover)}.tv-preset-name{font-weight:600;font-size:.85rem}.tv-preset-meta{font-size:.7rem;color:var(--text-muted)}.tv-preset-delete{margin-right:.35rem;padding:.15rem .35rem!important;font-size:.75rem;opacity:.5}.tv-preset-card:hover .tv-preset-delete{opacity:1}.tv-preset-save-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.profile-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:1.5rem;max-width:480px}.profile-card h3{margin:0 0 1rem;font-size:1.1rem}.profile-card h4{margin:0 0 .75rem;font-size:.95rem;color:var(--text-secondary)}.profile-info{display:flex;flex-direction:column;gap:.4rem;font-size:.9rem}.form-success{background:var(--green-bg);color:var(--green-text);border:1px solid var(--green-border);border-radius:var(--radius-md);padding:.6rem .75rem;font-size:.85rem;margin-bottom:.75rem}.row-inactive{opacity:.5}.row-inactive td{text-decoration:line-through;text-decoration-color:var(--text-muted)}.activity-table td{vertical-align:top}.activity-action{display:inline-block;font-size:.75rem;font-weight:600;padding:.15rem .4rem;border-radius:var(--radius-sm);white-space:nowrap}.cal-week-gridline,.cal-gantt-gridline{cursor:cell}.job-pill-toggle{cursor:pointer;border:none;font-size:inherit;font-weight:inherit;color:inherit;transition:filter .15s,transform .1s}.job-pill-toggle:hover{filter:brightness(1.15);transform:scale(1.05)}.job-invoice-toggle{background:none;border:none;cursor:pointer;font-size:.95rem;padding:0 .15rem;line-height:1;transition:transform .15s}.job-invoice-toggle:hover{transform:scale(1.2)}.cal-block-quick-actions{display:none;align-items:center;gap:2px;margin-left:.2rem}.cal-gantt-block:hover .cal-block-quick-actions,.cal-span-block:hover .cal-block-quick-actions{display:flex}.cal-quick-btn{display:inline-flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem;font-size:.6rem;font-weight:700;border-radius:3px;background:#ffffff40;color:#fff;cursor:pointer;transition:background .12s,transform .1s;line-height:1;flex-shrink:0}.cal-quick-btn:hover{background:#ffffff73;transform:scale(1.15)}.cal-saved-views{display:flex;align-items:center;gap:.35rem;margin-left:.75rem;flex-wrap:wrap}.cal-saved-view-chip{display:inline-flex;align-items:center;gap:.2rem;background:var(--brand-pale);color:var(--brand-dark);border:1px solid var(--brand-light);border-radius:var(--radius-pill);padding:.2rem .55rem;font-size:.72rem;font-weight:600;cursor:pointer;transition:background .15s,box-shadow .15s;white-space:nowrap}.cal-saved-view-chip:hover{background:var(--brand-light);color:#fff;box-shadow:0 1px 4px #0000001a}.cal-chip-delete{font-size:.8rem;font-weight:700;opacity:0;margin-left:.1rem;cursor:pointer;color:var(--red-text);transition:opacity .12s}.cal-saved-view-chip:hover .cal-chip-delete{opacity:1}.cal-save-view-input{display:inline-flex;align-items:center;gap:.25rem}.cal-save-view-input input{width:110px;padding:.2rem .4rem;border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:.78rem}.activity-auth{background:#3b82f61a;color:#2563eb}.activity-job{background:#22c55e1a;color:#16a34a}.activity-engineer{background:#a855f71a;color:#7c3aed}.activity-customer{background:#f59e0b1a;color:#d97706}.activity-user{background:#ef44441a;color:#dc2626}.activity-jobtype{background:#0ea5e91a;color:#0284c7}.tv-loading p{font-size:1.2rem;color:#fff9}.tv-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 2.5rem;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.08)}.tv-logo{height:3rem;border-radius:50%;background:#ffffff14;padding:.15rem}.tv-header-right{display:flex;align-items:baseline;gap:1.5rem}.tv-clock{font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.02em}.tv-date{font-size:1rem;color:#fff9}.tv-slide-in{opacity:1;transform:translateY(0)}.tv-slide-out{opacity:0;transform:translateY(20px)}.tv-kpi-grid-3{grid-template-columns:repeat(4,1fr)}.tv-kpi{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:1rem;padding:1.8rem 1.4rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center}.tv-kpi-label{font-size:1.02rem;color:#ffffff80;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.tv-kpi-value{font-size:3rem;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.tv-kpi-profit{color:#4ade80}.tv-kpi-warn{color:#fbbf24}.tv-kpi-change{font-size:.85rem;font-weight:600;padding:.15rem .6rem;border-radius:var(--radius-pill)}.tv-change-up{background:#22c55e33;color:#4ade80}.tv-change-down{background:#ef444433;color:#f87171}.tv-change-flat{color:#ffffff80}.tv-kpi-sub{font-size:.8rem;color:#fff6}.tv-bar-compare{display:flex;gap:3rem}.tv-bar-group{flex:1}.tv-bar-group-label{display:block;font-size:1.1rem;font-weight:700;margin-bottom:1rem;color:#ffffffb3}.tv-bar-row{display:grid;grid-template-columns:80px 1fr 120px;align-items:center;gap:.75rem;margin-bottom:.75rem}.tv-bar-tag{font-size:.85rem;font-weight:600;color:#fff9;text-align:right}.tv-bar-track{height:2rem;background:#ffffff0f;border-radius:.5rem;overflow:hidden}.tv-bar-fill{height:100%;border-radius:.5rem;transition:width .8s ease}.tv-bar-revenue{background:linear-gradient(90deg,#00a3e0,#0077a8)}.tv-bar-cost{background:linear-gradient(90deg,#f87171,#dc2626)}.tv-bar-profit{background:linear-gradient(90deg,#4ade80,#16a34a)}.tv-bar-val{font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums;color:#ffffffd9}.tv-eng-list{display:flex;flex-direction:column;gap:1rem}.tv-eng-row{display:grid;grid-template-columns:280px 1fr;align-items:center;gap:1.5rem}.tv-eng-info{display:flex;align-items:center;gap:.75rem}.tv-eng-swatch{width:1.25rem;height:1.25rem;border-radius:50%;flex-shrink:0;border:2px solid rgba(255,255,255,.2)}.tv-eng-name{font-size:1.1rem;font-weight:600}.tv-eng-jobs{font-size:.85rem;color:#fff6;margin-left:auto}.tv-eng-bar-wrap{display:flex;align-items:center;gap:1rem}.tv-eng-bar-wrap .tv-bar-track{flex:1}.tv-eng-val{font-size:1.05rem;font-weight:700;min-width:100px;text-align:right;font-variant-numeric:tabular-nums}.tv-jt-list{display:flex;flex-direction:column;gap:1rem}.tv-jt-row{display:grid;grid-template-columns:250px 1fr 140px;align-items:center;gap:1rem}.tv-jt-info{display:flex;align-items:center;gap:.75rem}.tv-jt-swatch{width:.75rem;height:.75rem;border-radius:3px;flex-shrink:0}.tv-jt-name{font-size:1.05rem;font-weight:600}.tv-jt-count{font-size:.8rem;color:#fff6;margin-left:auto}.tv-jt-bar-wrap{display:flex;align-items:center;gap:1rem}.tv-jt-bar-wrap .tv-bar-track{flex:1}.tv-jt-val{font-size:1rem;font-weight:700;min-width:100px;text-align:right;font-variant-numeric:tabular-nums}.tv-jt-profit{font-size:.85rem;color:#4ade80;text-align:right}.tv-cust-list{display:flex;flex-direction:column;gap:.9rem}.tv-cust-row{display:grid;grid-template-columns:280px 1fr 140px;align-items:center;gap:1rem}.tv-cust-info{display:flex;align-items:center;gap:.75rem}.tv-cust-name{font-size:1.05rem;font-weight:600}.tv-cust-count{font-size:.8rem;color:#fff6;margin-left:auto}.tv-cust-bar-wrap{display:flex;align-items:center;gap:1rem}.tv-cust-bar-wrap .tv-bar-track{flex:1}.tv-cust-val{font-size:1rem;font-weight:700;min-width:100px;text-align:right;font-variant-numeric:tabular-nums}.tv-cust-profit{font-size:.85rem;color:#4ade80;text-align:right}.tv-cost-total{font-size:1.3rem;font-weight:700;text-align:center;margin-bottom:2rem;color:#ffffffb3}.tv-cost-list{display:flex;flex-direction:column;gap:1rem;max-width:900px;margin:0 auto}.tv-cost-row{display:grid;grid-template-columns:120px 1fr 120px 60px;align-items:center;gap:1rem}.tv-cost-label{font-size:1rem;font-weight:600;text-align:right;color:#ffffffb3}.tv-cost-val{font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums}.tv-cost-pct{font-size:.85rem;color:#fff6}.tv-recent-list{display:flex;flex-direction:column;gap:.5rem;max-width:1100px;margin:0 auto}.tv-recent-row{display:grid;grid-template-columns:100px 1fr 160px 120px 100px;align-items:center;gap:1rem;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:.6rem;padding:.75rem 1.25rem}.tv-recent-date{font-size:.9rem;color:#ffffff80;font-variant-numeric:tabular-nums}.tv-recent-customer{font-size:1.05rem;font-weight:600}.tv-recent-type{font-size:.85rem;color:#ffffff80}.tv-recent-value{font-size:1rem;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.tv-recent-status{font-size:.75rem;font-weight:700;padding:.2rem .6rem;border-radius:var(--radius-pill);text-align:center;text-transform:uppercase;letter-spacing:.04em}.tv-recent-status.confirmed{background:#22c55e33;color:#4ade80}.tv-recent-status.unconfirmed{background:#f59e0b33;color:#fbbf24}.tv-footer{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:1rem 2rem;flex-shrink:0;border-top:1px solid rgba(255,255,255,.06)}.tv-dot{width:12px;height:12px}.tv-slide-counter{font-size:.92rem;color:#ffffff9e}.tv-dots{display:flex;gap:.5rem}.tv-slide-counter{font-size:.8rem;color:#ffffff59;font-variant-numeric:tabular-nums}@keyframes tv-pulse{0%,to{opacity:1}50%{opacity:.5}}.tv-clock:after{content:"";animation:tv-pulse 2s ease infinite}.tv-dot{width:10px;height:10px;border-radius:50%;background:#ffffff26;transition:background .3s,transform .3s;border:none;cursor:pointer;padding:0;flex-shrink:0}.tv-dot.active{background:#00a3e0;transform:scale(1.3)}.tv-paused-badge{background:#fbbf2433;color:#fbbf24;border:1px solid rgba(251,191,36,.3);border-radius:var(--radius-pill);padding:.25rem .75rem;font-size:.9rem;font-weight:600;letter-spacing:.02em;margin-left:auto}.tv-launcher{display:flex;flex-direction:column;gap:0;max-width:860px}.tv-launcher-header{padding:1.5rem 1.5rem .5rem}.tv-launcher-header h2{margin:0 0 .3rem;font-size:1.4rem}.tv-launcher-body{display:flex;flex-direction:column;gap:0}.tv-settings-section{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-light)}.tv-settings-section h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--text-muted);margin:0 0 1rem}.tv-settings-hint-text{font-size:.82rem;color:var(--text-muted);margin:-.5rem 0 1rem}.tv-settings-grid{display:flex;flex-direction:column;gap:1rem}.tv-setting-row{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.tv-setting-label{display:flex;flex-direction:column;gap:.15rem;cursor:default}.tv-setting-label span:first-child{font-size:.95rem;font-weight:500;color:var(--text-primary)}.tv-setting-hint{font-size:.78rem;color:var(--text-muted)}.tv-setting-control{flex-shrink:0}.tv-btn-group{display:flex;border:1.5px solid var(--border-medium);border-radius:var(--radius-md);overflow:hidden}.tv-seg-btn{padding:.4rem .9rem;font-size:.85rem;font-weight:600;background:transparent;border:none;border-right:1.5px solid var(--border-medium);cursor:pointer;color:var(--text-secondary);transition:background .15s,color .15s;white-space:nowrap}.tv-seg-btn:last-child{border-right:none}.tv-seg-btn:hover{background:var(--brand-pale);color:var(--brand-dark)}.tv-seg-btn.active{background:var(--brand-dark);color:#fff}.tv-toggle{width:3rem;height:1.6rem;border-radius:999px;background:var(--border-medium);border:none;cursor:pointer;position:relative;transition:background .2s;flex-shrink:0}.tv-toggle.on{background:var(--brand-dark)}.tv-toggle-knob{position:absolute;top:.2rem;left:.2rem;width:1.2rem;height:1.2rem;border-radius:50%;background:#fff;transition:left .2s;box-shadow:0 1px 3px #0003}.tv-toggle.on .tv-toggle-knob{left:1.6rem}.tv-slides-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.6rem}.tv-slide-chip{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;padding:.7rem .9rem;border:1.5px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-card);cursor:pointer;transition:border-color .15s,background .15s;text-align:left}.tv-slide-chip:hover{border-color:var(--brand-light);background:var(--brand-pale)}.tv-slide-chip.active{border-color:var(--brand-dark);background:#003b5c0f}.tv-slide-chip-check{font-size:.75rem;font-weight:700;color:var(--brand-dark);min-height:1em;min-width:1em}.tv-slide-chip-label{font-size:.88rem;font-weight:600;color:var(--text-primary)}.tv-slide-chip-desc{font-size:.75rem;color:var(--text-muted);line-height:1.3}.tv-launcher-footer{padding:1.25rem 1.5rem;display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;border-top:1px solid var(--border-light);background:var(--bg-subtle);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.tv-launcher-summary{font-size:.85rem;color:var(--text-muted);flex:1}.tv-launch-btn{font-size:1rem!important;padding:.65rem 1.75rem!important;font-weight:700!important}.tv-launcher-keys{width:100%;font-size:.75rem!important;margin:-.5rem 0 0!important}.tv-mode{--tv-motion-duration: 1;--tv-motion-amplitude: 1;--tv-base-font-size: 19px;--tv-header-h: 110px;--tv-footer-h-base: 64px;--tv-footer-h: 0px;--tv-slide-pad-x: 1.2rem;--tv-slide-pad-y-top: 1.1rem;--tv-slide-pad-y-bottom: 1rem;--tv-title-size: 2.35rem;--tv-kpi-value-size: 3.35rem;--tv-chip-label-size: .62rem;--tv-chip-value-size: 1.14rem;--tv-clock-size: 2.2rem;--tv-date-size: .82rem;--tv-updated-size: .67rem;--tv-header-left-col: minmax(250px, 340px);--tv-header-right-col: minmax(230px, 320px);--tv-chip-min: 120px;position:fixed;inset:0;width:100vw;height:100vh;overflow:hidden;display:block;z-index:10000;background:linear-gradient(135deg,#061e32,#0a2e4a 40%,#05243d);color:#fff;font-family:var(--font-family)}.tv-mode.tv-mode-with-footer{--tv-footer-h: var(--tv-footer-h-base)}.tv-mode.tv-res-720p{--tv-base-font-size: 13px;--tv-header-h: 82px;--tv-footer-h-base: 48px;--tv-title-size: 1.78rem;--tv-kpi-value-size: 2.15rem;--tv-chip-label-size: .55rem;--tv-chip-value-size: .9rem;--tv-clock-size: 1.55rem;--tv-date-size: .68rem;--tv-updated-size: .58rem;--tv-header-left-col: minmax(190px, 260px);--tv-header-right-col: minmax(180px, 240px);--tv-chip-min: 86px}.tv-mode.tv-res-1080p{--tv-base-font-size: 16px;--tv-header-h: 96px;--tv-footer-h-base: 56px;--tv-title-size: 2.08rem;--tv-kpi-value-size: 2.85rem;--tv-chip-label-size: .59rem;--tv-chip-value-size: 1.02rem;--tv-clock-size: 1.95rem;--tv-date-size: .76rem;--tv-updated-size: .63rem;--tv-header-left-col: minmax(220px, 300px);--tv-header-right-col: minmax(210px, 290px);--tv-chip-min: 104px}.tv-mode.tv-res-1440p{--tv-base-font-size: 17.5px;--tv-header-h: 104px;--tv-footer-h-base: 60px;--tv-slide-pad-x: 1.15rem;--tv-slide-pad-y-top: 1.05rem;--tv-slide-pad-y-bottom: .95rem;--tv-title-size: 2.22rem;--tv-kpi-value-size: 3.1rem;--tv-chip-label-size: .61rem;--tv-chip-value-size: 1.08rem;--tv-clock-size: 2.08rem;--tv-date-size: .8rem;--tv-updated-size: .65rem;--tv-header-left-col: minmax(238px, 320px);--tv-header-right-col: minmax(220px, 304px);--tv-chip-min: 112px}.tv-mode.tv-res-4k{--tv-base-font-size: 19px;--tv-header-h: 110px;--tv-footer-h-base: 64px;--tv-title-size: 2.35rem;--tv-kpi-value-size: 3.35rem;--tv-chip-label-size: .62rem;--tv-chip-value-size: 1.14rem;--tv-clock-size: 2.2rem;--tv-date-size: .82rem;--tv-updated-size: .67rem;--tv-header-left-col: minmax(250px, 340px);--tv-header-right-col: minmax(230px, 320px);--tv-chip-min: 120px}.tv-canvas{position:relative;width:100vw;height:100vh;overflow:hidden;display:block;font-size:var(--tv-base-font-size);transform:none!important;will-change:auto}.tv-canvas:before{content:"";position:absolute;inset:-8%;background:radial-gradient(circle at 20% 28%,rgba(56,189,248,.13),transparent 44%),radial-gradient(circle at 78% 70%,rgba(14,165,233,.11),transparent 48%);animation:tv-ambient-drift calc(22s * var(--tv-motion-duration)) ease-in-out infinite alternate;pointer-events:none}.tv-canvas>*{position:relative;z-index:1}.tv-motion-low{--tv-motion-duration: 1.35;--tv-motion-amplitude: .65}.tv-motion-medium{--tv-motion-duration: 1;--tv-motion-amplitude: 1}.tv-motion-high{--tv-motion-duration: .82;--tv-motion-amplitude: 1.35}.tv-slide-area{position:absolute;top:var(--tv-header-h);right:0;bottom:var(--tv-footer-h);left:0;padding:var(--tv-slide-pad-y-top) var(--tv-slide-pad-x) var(--tv-slide-pad-y-bottom);box-sizing:border-box;overflow:hidden;display:flex;align-items:stretch;justify-content:stretch;transition:opacity calc(.5s * var(--tv-motion-duration)) ease,transform calc(.5s * var(--tv-motion-duration)) ease}.tv-slide{width:100%;height:100%;max-width:100%;display:flex;flex-direction:column;overflow:hidden}.tv-slide-title{font-size:var(--tv-title-size);margin:0 0 1.35rem;letter-spacing:.01em;text-shadow:0 4px 16px rgba(2,6,23,.4)}.tv-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.tv-kpi-grid{gap:1.15rem}.tv-kpi{padding:1.55rem 1.15rem;border-radius:1.05rem;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.tv-kpi-label{font-size:1rem}.tv-kpi-value{font-size:var(--tv-kpi-value-size)}.tv-header-mission{position:fixed;top:0;left:0;width:100vw;height:var(--tv-header-h);box-sizing:border-box;z-index:25;display:grid;grid-template-columns:var(--tv-header-left-col) minmax(0,1fr) var(--tv-header-right-col);align-items:center;gap:1.15rem;padding:.75rem 1.25rem;background:radial-gradient(circle at 14% 18%,rgba(0,163,224,.16),transparent 36%),linear-gradient(90deg,#041d31f2,#072c45f2);border-bottom:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);overflow:hidden}.tv-header-brand{display:flex;align-items:center;gap:.72rem;min-width:255px}.tv-live-title-wrap{display:flex;flex-direction:column;gap:.12rem}.tv-live-title-row{display:flex;align-items:center;gap:.55rem}.tv-live-dot{width:.72rem;height:.72rem;border-radius:50%;background:#22c55e;box-shadow:0 0 10px #22c55ecc;animation:tv-live-pulse calc(2.1s * var(--tv-motion-duration)) ease-in-out infinite}.tv-live-title{font-size:1.26rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.tv-live-sub{font-size:.8rem;color:#ffffff94;letter-spacing:.07em;text-transform:uppercase}.tv-ops-chip-row{min-width:0;display:grid;grid-template-columns:repeat(4,minmax(var(--tv-chip-min),1fr));gap:.44rem;max-width:none}.tv-ops-chip{display:flex;flex-direction:column;justify-content:center;gap:.08rem;padding:.48rem .56rem;border-radius:.58rem;background:#ffffff17;border:1px solid rgba(255,255,255,.16)}.tv-ops-chip span{font-size:var(--tv-chip-label-size);letter-spacing:.07em;text-transform:uppercase;color:#ffffff9e}.tv-ops-chip strong{font-size:var(--tv-chip-value-size);line-height:1.05;font-variant-numeric:tabular-nums}.tv-ops-chip-alert{border-color:#fbbf2473;background:#fbbf2424}.tv-ops-chip-financial{border-color:#38bdf873;background:#38bdf829}.tv-header-mission .tv-header-right{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:.14rem;min-width:0}.tv-header-mission .tv-clock{font-size:var(--tv-clock-size);line-height:1}.tv-header-mission .tv-date{font-size:var(--tv-date-size);letter-spacing:.03em;color:#ffffffb8}.tv-last-updated{font-size:var(--tv-updated-size);letter-spacing:.06em;text-transform:uppercase;color:#7dd3fcc2}.tv-rp-layout{display:grid;grid-template-columns:290px 1fr;gap:1.2rem;align-items:stretch;height:100%}.tv-bar-compare{width:100%;height:100%}.tv-cost-list,.tv-recent-list{max-width:none;margin:0}.tv-kpi-grid-2col{grid-template-columns:repeat(2,minmax(0,1fr))}.tv-revenue-tank-card{border-radius:1rem;padding:1.1rem .95rem .9rem;background:#ffffff12;border:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column;align-items:center;gap:.75rem}.tv-revenue-tank-title{margin:0;font-size:.86rem;letter-spacing:.06em;text-transform:uppercase;color:#ffffffa6}.tv-revenue-tank-shell{width:116px;height:270px;border-radius:999px;background:#0f172ad1;border:2px solid rgba(148,163,184,.35);overflow:hidden;position:relative;display:flex;align-items:flex-end}.tv-revenue-tank-shell:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#ffffff14,#fff0);pointer-events:none}.tv-revenue-tank-fill{width:100%;background:radial-gradient(circle at 30% 28%,rgba(186,230,253,.65),transparent 35%),linear-gradient(180deg,#52d6ff,#00a3e0 48%,#0077a8);transition:height calc(1s * var(--tv-motion-duration)) ease;box-shadow:inset 0 12px 24px #ffffff40}.tv-revenue-tank-values{display:flex;flex-direction:column;align-items:center;gap:.2rem;text-align:center}.tv-revenue-tank-values strong{font-size:1.18rem;font-variant-numeric:tabular-nums}.tv-revenue-tank-values span{font-size:.73rem;color:#ffffff94}.tv-slide-engineers .tv-slide-title,.tv-slide-weekly-calendar .tv-slide-title,.tv-slide-revenue-performance .tv-slide-title{margin-bottom:1.25rem}.tv-eng-tile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.95rem}.tv-eng-overview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem;margin-bottom:.95rem}.tv-eng-overview-card{border-radius:.68rem;border:1px solid rgba(148,163,184,.28);background:#ffffff12;padding:.44rem .56rem;display:flex;flex-direction:column;gap:.1rem}.tv-eng-overview-card span{font-size:.59rem;letter-spacing:.08em;text-transform:uppercase;color:#ffffff9e}.tv-eng-overview-card strong{font-size:.92rem;font-variant-numeric:tabular-nums}.tv-eng-tile{--tv-eng-accent: #00a3e0;background:radial-gradient(circle at 12% 14%,rgba(255,255,255,.13),transparent 32%),#ffffff12;border:1px solid rgba(255,255,255,.18);border-left:5px solid var(--tv-eng-accent);border-radius:.88rem;padding:.8rem .85rem;display:flex;flex-direction:column;gap:.72rem;transition:opacity .35s ease,box-shadow .35s ease}.tv-eng-tile.is-active{box-shadow:0 0 calc(20px * var(--tv-motion-amplitude)) #22c55e3d,inset 0 0 calc(20px * var(--tv-motion-amplitude)) #ffffff0f;animation:tv-active-glow calc(3s * var(--tv-motion-duration)) ease-in-out infinite}.tv-eng-tile.is-faded{opacity:.2}.tv-eng-tile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem}.tv-eng-tile-badges{display:flex;flex-direction:column;align-items:flex-end;gap:.28rem}.tv-eng-tile-ident{display:flex;align-items:center;gap:.58rem;min-width:0}.tv-eng-tile-dot{width:.63rem;height:.63rem;border-radius:50%;background:var(--tv-eng-accent);box-shadow:0 0 10px #38bdf88c;flex-shrink:0}.tv-eng-tile-ident strong{display:block;font-size:.96rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-eng-tile-ident span{font-size:.73rem;color:#ffffff94}.tv-status-badge{border-radius:var(--radius-pill);padding:.2rem .5rem;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;white-space:nowrap}.tv-status-badge.on-site{color:#86efac;background:#16a34a3d;border:1px solid rgba(134,239,172,.35)}.tv-status-badge.confirmed{color:#38bdf8;background:#0e749040;border:1px solid rgba(125,211,252,.35)}.tv-status-badge.available{color:#cbd5e1;background:#4755694d;border:1px solid rgba(148,163,184,.3)}.tv-status-badge.cancelled{color:#fca5a5;background:#b91c1c3b;border:1px solid rgba(252,165,165,.3)}.tv-eng-cap-badge{border-radius:999px;padding:.14rem .44rem;font-size:.56rem;letter-spacing:.06em;text-transform:uppercase;font-weight:800;border:1px solid rgba(148,163,184,.35);background:#3341556b;color:#e2e8f0e6}.tv-eng-cap-badge.over{border-color:#fb923c8f;color:#fdba74;background:#9a341242}.tv-eng-cap-badge.under{border-color:#60a5fa8f;color:#93c5fd;background:#1e40af3d}.tv-eng-tile-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.tv-eng-tile-metrics div{display:flex;flex-direction:column;gap:.16rem}.tv-eng-tile-metrics span{font-size:.63rem;color:#fff9;text-transform:uppercase;letter-spacing:.08em}.tv-eng-tile-metrics strong{font-size:.9rem;font-variant-numeric:tabular-nums}.tv-eng-tile-metrics-sub strong{font-size:.82rem}.tv-eng-heatmap{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.3rem}.tv-eng-heat-cell{display:inline-flex;align-items:center;justify-content:center;border-radius:.36rem;border:1px solid rgba(148,163,184,.24);background:#0f172ab3;color:#e2e8f0d9;font-size:.59rem;font-weight:700;min-height:1.05rem}.tv-eng-heat-cell.booked{border-color:#4ade809e;background:#16a34a47;color:#bbf7d0}.tv-eng-heat-cell.office{border-color:#94a3b873;background:#64748b5c;color:#f1f5f9e6}.tv-eng-heat-cell.idle{opacity:.8}.tv-eng-tile-progress{height:.42rem;border-radius:999px;background:#ffffff1c;overflow:hidden}.tv-eng-tile-progress-fill{height:100%;background:linear-gradient(90deg,var(--tv-eng-accent),#52d6ff);border-radius:inherit;transition:width calc(.85s * var(--tv-motion-duration)) ease}.tv-slide-engineer-stats,.tv-slide-engineer-capacity{width:100%}.tv-engstats-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem;margin-bottom:.9rem}.tv-engstats-kpi{border-radius:.72rem;border:1px solid rgba(148,163,184,.24);background:#ffffff12;padding:.52rem .58rem;display:flex;flex-direction:column;gap:.12rem}.tv-engstats-kpi span{font-size:.62rem;color:#fff9;text-transform:uppercase;letter-spacing:.07em}.tv-engstats-kpi strong{font-size:1rem;font-variant-numeric:tabular-nums}.tv-engstats-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:.8rem;min-height:0;flex:1}.tv-engstats-panel,.tv-engcap-panel{border-radius:.86rem;border:1px solid rgba(148,163,184,.24);background:#02132280;padding:.64rem;min-height:0;display:flex;flex-direction:column}.tv-engstats-heading{margin:0 0 .48rem;font-size:.76rem;letter-spacing:.07em;text-transform:uppercase;color:#7dd3fcdb}.tv-engstats-week-list{display:flex;flex-direction:column;gap:.4rem}.tv-engstats-week-row{border-radius:.56rem;border:1px solid rgba(148,163,184,.2);background:#0f172a75;padding:.4rem .46rem;display:flex;flex-direction:column;gap:.2rem}.tv-engstats-week-head{display:flex;align-items:center;justify-content:space-between;font-size:.68rem;color:#e2e8f0e6;font-weight:700}.tv-engstats-week-track{height:.42rem;border-radius:999px;overflow:hidden;display:flex;background:#94a3b842}.tv-engstats-week-track span{height:100%}.tv-engstats-week-track .booked{background:#4ade80c7}.tv-engstats-week-track .office{background:#38bdf8c7}.tv-engstats-week-track .idle{background:#94a3b8b3}.tv-engstats-week-sub{font-size:.62rem;color:#e2e8f0a8}.tv-engstats-rank-list{display:flex;flex-direction:column;gap:.34rem;margin-bottom:.55rem}.tv-engstats-rank-row{border-radius:.54rem;border:1px solid rgba(148,163,184,.2);background:#0f172a6b;padding:.32rem .44rem;display:grid;grid-template-columns:1fr auto;gap:.45rem;align-items:center}.tv-engstats-rank-main{display:flex;align-items:center;gap:.42rem;min-width:0}.tv-engstats-rank-main span:last-child{font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-engstats-rank-row strong{font-size:.7rem;font-variant-numeric:tabular-nums}.tv-engstats-rank-bar-row{grid-template-columns:minmax(0,1fr) minmax(72px,1fr) auto}.tv-engstats-rank-bar{height:.38rem;border-radius:999px;background:#94a3b842;overflow:hidden}.tv-engstats-rank-bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#00a3e0,#52d6ff)}.tv-engcap-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-bottom:.9rem}.tv-engcap-summary-card{border-radius:.72rem;border:1px solid rgba(148,163,184,.24);background:#ffffff12;padding:.52rem .58rem;display:flex;flex-direction:column;gap:.12rem}.tv-engcap-summary-card span{font-size:.62rem;color:#ffffff9e;text-transform:uppercase;letter-spacing:.07em}.tv-engcap-summary-card strong{font-size:1rem;font-variant-numeric:tabular-nums}.tv-engcap-summary-card.over{border-color:#fb923c80}.tv-engcap-summary-card.under{border-color:#60a5fa80}.tv-engcap-summary-card.balanced{border-color:#4ade8080}.tv-engcap-summary-card.neutral{border-color:#94a3b873}.tv-engcap-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;min-height:0;flex:1}.tv-engcap-list{display:flex;flex-direction:column;gap:.42rem;min-height:0}.tv-engcap-row{border-radius:.56rem;border:1px solid rgba(148,163,184,.25);background:#0f172a75;padding:.4rem .46rem;display:flex;flex-direction:column;gap:.2rem}.tv-engcap-row-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.68rem}.tv-engcap-row-head span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-engcap-row-head strong{font-size:.7rem;font-variant-numeric:tabular-nums}.tv-engcap-track{height:.38rem;border-radius:999px;background:#94a3b847;overflow:hidden}.tv-engcap-fill{height:100%;border-radius:inherit}.tv-engcap-row.over .tv-engcap-fill{background:linear-gradient(90deg,#f59e0b,#fb923c)}.tv-engcap-row.under .tv-engcap-fill{background:linear-gradient(90deg,#38bdf8,#60a5fa)}.tv-engcap-sub{font-size:.62rem;color:#e2e8f0a6}.tv-slide-weekly-calendar{width:100%}.tv-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.52rem;height:100%}.tv-week-day-col{border-radius:.8rem;border:1px solid rgba(148,163,184,.2);background:#0213227a;min-height:0;display:flex;flex-direction:column;overflow:hidden}.tv-week-day-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.35rem;padding:.46rem .56rem;border-bottom:1px solid rgba(148,163,184,.18);background:#081d31c7}.tv-week-day-name{font-size:.74rem;font-weight:700;letter-spacing:.04em}.tv-week-day-date{font-size:.67rem;color:#ffffff94}.tv-week-day-count{min-width:1.3rem;text-align:center;border-radius:999px;background:#ffffff24;padding:.05rem .35rem;font-size:.66rem;font-weight:700}.tv-week-day-cards{padding:.44rem;display:flex;flex-direction:column;gap:.38rem;min-height:0;flex:1}.tv-week-empty,.tv-week-more{border-radius:.56rem;border:1px dashed rgba(148,163,184,.26);color:#ffffff73;font-size:.66rem;text-align:center;padding:.42rem}.tv-week-more{background:#ffffff0f;border-style:solid}.tv-cal-job-card{position:relative;border-radius:.56rem;padding:.44rem .48rem;background:#081827c7;border:1px solid rgba(148,163,184,.24);display:flex;flex-direction:column;gap:.22rem;animation:tv-card-enter calc(.44s * var(--tv-motion-duration)) ease both;animation-delay:calc(var(--tv-stagger, 0) * 60ms)}.tv-cal-job-card.confirmed{border-color:#4ade80ad;box-shadow:0 0 calc(12px * var(--tv-motion-amplitude)) #4ade802e}.tv-cal-job-card.unconfirmed{border-style:dashed;border-color:#fbbf24d9}.tv-cal-job-card.office-only{background:linear-gradient(140deg,#47556994,#33415575),#4755696b;border-color:#cbd5e166}.tv-cal-job-card.cancelled{border-color:#f87171bf;opacity:.78}.tv-cal-job-card.updated:after{content:"";position:absolute;inset:-1px;border-radius:inherit;border:1px solid rgba(250,204,21,.85);animation:tv-updated-flash calc(2.2s * var(--tv-motion-duration)) ease-out;pointer-events:none}.tv-cal-job-top{display:flex;align-items:center;justify-content:space-between;gap:.35rem}.tv-cal-job-customer{font-size:.69rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-cal-job-moon{font-size:.73rem;filter:drop-shadow(0 0 6px rgba(250,204,21,.45));animation:tv-moon-float calc(2.8s * var(--tv-motion-duration)) ease-in-out infinite}.tv-cal-job-meta{display:flex;flex-direction:column;gap:.05rem}.tv-cal-job-meta span{font-size:.62rem;color:#fff9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-cal-job-status{align-self:flex-start;border-radius:999px;padding:.06rem .4rem;font-size:.57rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:#ffffff24;color:#ffffffe0}.tv-bottom-bar{position:fixed;left:0;right:0;bottom:calc(var(--tv-footer-h) + .2rem);min-height:3.95rem;z-index:24;display:grid;grid-template-columns:10.5rem minmax(0,1fr) auto;align-items:center;gap:.95rem;padding:.62rem 1.2rem;border-top:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.1);background:radial-gradient(circle at 14% 50%,rgba(56,189,248,.18),transparent 38%),linear-gradient(90deg,#081426f2,#06243ae6);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);box-shadow:0 -10px 30px #0208177a;animation:tv-bottom-bar-pop calc(.42s * var(--tv-motion-duration)) cubic-bezier(.2,.8,.25,1)}.tv-bottom-bar:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#38bdf8}.tv-bottom-bar-activity:before{background:#fbbf24}.tv-bottom-tone-success:before{background:#4ade80}.tv-bottom-tone-danger:before{background:#f87171}.tv-bottom-bar-kicker{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#7dd3fcdb;font-weight:800;white-space:nowrap}.tv-bottom-bar-main{min-width:0;display:flex;align-items:center;gap:.55rem;overflow:hidden}.tv-bottom-bar-main strong{font-size:1rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-bottom-bar-detail{font-size:.76rem;color:#ffffffb8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-bottom-bar-side{display:flex;flex-direction:column;align-items:flex-end;gap:.07rem;font-size:.67rem;text-transform:uppercase;letter-spacing:.05em;color:#ffffffa8;font-variant-numeric:tabular-nums;white-space:nowrap}.tv-bottom-bar-metric{font-size:.79rem;color:#ffffffc7;white-space:nowrap}.tv-bottom-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.16rem .5rem;font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800;border:1px solid rgba(255,255,255,.25)}.tv-bottom-pill.info{background:#38bdf833;color:#bae6fd}.tv-bottom-pill.success{background:#4ade8033;color:#bbf7d0}.tv-bottom-pill.danger{background:#f8717133;color:#fecaca}.tv-bottom-eng-dot{width:.76rem;height:.76rem;border-radius:50%;box-shadow:0 0 12px #7dd3fc7a;flex-shrink:0}.tv-footer{position:fixed;right:0;bottom:0;left:0;height:var(--tv-footer-h);box-sizing:border-box;z-index:22;display:flex;align-items:center;justify-content:center;gap:1.1rem;padding:.65rem 1.1rem;background:linear-gradient(180deg,#020c160d,#020c166b);border-top:1px solid rgba(255,255,255,.12)}.tv-spotlight-label{font-size:.67rem;text-transform:uppercase;letter-spacing:.08em;color:#7dd3fccc;font-weight:700}.tv-spotlight-name-row{display:flex;align-items:center;gap:.5rem}.tv-spotlight-colour{width:.75rem;height:.75rem;border-radius:50%;box-shadow:0 0 10px #7dd3fc73}.tv-spotlight-name-row strong{font-size:1rem;line-height:1.15}.tv-spotlight-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.tv-spotlight-stats div{display:flex;flex-direction:column;gap:.13rem;border-radius:.55rem;background:#ffffff14;border:1px solid rgba(255,255,255,.12);padding:.4rem .48rem}.tv-spotlight-stats span{font-size:.61rem;letter-spacing:.05em;text-transform:uppercase;color:#ffffff8c}.tv-spotlight-stats strong{font-size:.9rem;font-variant-numeric:tabular-nums}.tv-empty{text-align:center;color:#ffffff85;font-size:1rem}.tv-recent-status.cancelled{background:#ef444433;color:#fca5a5}@keyframes tv-live-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(calc(1 + .28 * var(--tv-motion-amplitude)));opacity:.72}}@keyframes tv-ambient-drift{0%{transform:translate(0) translateY(0)}to{transform:translate(calc(28px * var(--tv-motion-amplitude))) translateY(calc(-18px * var(--tv-motion-amplitude)))}}@keyframes tv-card-enter{0%{opacity:0;transform:translateY(calc(10px * var(--tv-motion-amplitude)))}to{opacity:1;transform:translateY(0)}}@keyframes tv-updated-flash{0%{opacity:.95}to{opacity:0}}@keyframes tv-moon-float{0%,to{transform:translateY(0)}50%{transform:translateY(calc(-3px * var(--tv-motion-amplitude)))}}@keyframes tv-active-glow{0%,to{box-shadow:0 0 calc(18px * var(--tv-motion-amplitude)) #22c55e33,inset 0 0 12px #ffffff0a}50%{box-shadow:0 0 calc(30px * var(--tv-motion-amplitude)) #22c55e57,inset 0 0 18px #ffffff14}}@keyframes tv-spotlight-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes tv-bottom-bar-pop{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.er-alert-success{margin-bottom:1rem;padding:.875rem 1rem;background:var(--green-bg);border:1px solid var(--green-border);border-radius:var(--radius-lg);color:var(--green-text);font-size:.95rem}.er-recipients-textarea{width:100%;padding:.65rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);font:inherit;font-size:.9rem;color:inherit;background:var(--bg-card);resize:vertical;min-height:3.5rem;transition:border-color .2s}.er-recipients-textarea:focus{outline:none;border-color:var(--brand-light);box-shadow:0 0 0 3px #0077a81f}.er-time-input{padding:.5rem .65rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);font:inherit;font-size:.9rem;background:var(--bg-card);color:inherit}.er-time-input:focus{outline:none;border-color:var(--brand-light);box-shadow:0 0 0 3px #0077a81f}.er-status-success{color:var(--green-text);font-weight:600}.er-status-error{color:var(--red-text);font-weight:600}.er-badge-auto,.er-badge-manual{display:inline-block;padding:.15rem .5rem;border-radius:var(--radius-md);font-size:.78rem;font-weight:600;letter-spacing:.02em}.er-badge-auto{background:var(--brand-dark);color:#fff}.er-badge-manual{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border-subtle)}.login-links{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-light)}.login-link{font-size:.85rem;color:var(--brand-medium);text-decoration:none;transition:color .15s}.login-link:hover{color:var(--brand-dark);text-decoration:underline}.login-link-btn{background:none;border:none;cursor:pointer;font-size:.85rem;color:var(--brand-medium);padding:0;transition:color .15s}.login-link-btn:hover{color:var(--brand-dark);text-decoration:underline}.login-help-popup{position:fixed;inset:0;background:#00000059;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.login-help-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:1.5rem;width:100%;max-width:420px}.login-help-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.login-help-header h3{margin:0;font-size:1.1rem;color:var(--brand-dark)}.login-help-close{background:none;border:none;cursor:pointer;font-size:1.5rem;color:var(--text-muted);padding:0;line-height:1}.login-help-close:hover{color:var(--text-primary)}.password-policy{display:flex;flex-direction:column;gap:.35rem;margin:.5rem 0 .75rem;padding:.75rem;background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border-light)}.pw-req{font-size:.82rem;color:var(--text-muted);padding-left:1.5rem;position:relative;line-height:1.4}.pw-req:before{content:"";position:absolute;left:0;top:.3em;width:12px;height:12px;border-radius:50%;background:var(--border-light);transition:background .2s}.pw-req.met{color:var(--green-text, #1a7431)}.pw-req.met:before{background:var(--green-text, #1a7431);content:"";background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='white' d='M10 3L4.5 8.5L2 6'/%3E%3Cpath fill='none' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M10 3L4.5 8.5L2 6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center}.password-expired-banner{background:#fff3cd;border:1px solid #ffc107;color:#856404;padding:.85rem 1.25rem;border-radius:var(--radius-md);margin-bottom:1rem;font-size:.9rem;font-weight:500;text-align:center}.fab-btn{position:fixed;bottom:24px;right:24px;width:52px;height:52px;border-radius:50%;background:var(--brand-dark);color:#fff;border:none;cursor:pointer;box-shadow:0 4px 12px #003b5c59;display:flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s;z-index:900}.fab-btn:hover{transform:scale(1.08);box-shadow:0 6px 20px #003b5c73}.fab-popup{position:fixed;bottom:24px;right:24px;width:340px;background:#fff;border-radius:var(--radius-lg);box-shadow:0 8px 32px #0000002e;z-index:901;overflow:hidden;animation:fabSlideUp .2s ease-out}@keyframes fabSlideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.fab-popup-header{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;background:var(--brand-dark);color:#fff}.fab-popup-title{font-weight:600;font-size:.95rem}.fab-popup-close{background:none;border:none;color:#ffffffb3;cursor:pointer;font-size:1.3rem;padding:0;line-height:1}.fab-popup-close:hover{color:#fff}.fab-popup-tabs{display:flex;border-bottom:1px solid var(--border-light)}.fab-tab{flex:1;padding:.6rem;font-size:.82rem;font-weight:500;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;color:var(--text-muted);transition:color .15s,border-color .15s}.fab-tab:hover{color:var(--brand-dark)}.fab-tab.active{color:var(--brand-dark);border-bottom-color:var(--brand-dark)}.fab-popup-body{padding:1rem}.fab-textarea{width:100%;padding:.6rem .75rem;border:1px solid var(--border-light);border-radius:var(--radius-md);font-family:inherit;font-size:.85rem;resize:vertical;min-height:80px;box-sizing:border-box}.fab-textarea:focus{outline:none;border-color:var(--brand-dark);box-shadow:0 0 0 3px #003b5c1a}.fab-send-btn{width:100%;margin-top:.75rem;padding:.55rem;font-size:.85rem}.page-guide{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:1rem;padding:.875rem 1rem;background:var(--brand-pale);border:1px solid var(--brand-light);border-left:4px solid var(--brand-accent);border-radius:var(--radius-lg);animation:pageGuideIn .3s ease-out}.page-guide-icon{flex-shrink:0;color:var(--brand-dark);margin-top:.1rem}.page-guide-body{flex:1;display:flex;flex-direction:column;gap:.15rem}.page-guide-title{font-size:.85rem;font-weight:700;color:var(--brand-dark)}.page-guide-text{font-size:.82rem;color:var(--text-secondary);line-height:1.45}.page-guide-dismiss{flex-shrink:0;background:none;border:none;font-size:1.25rem;line-height:1;color:var(--text-muted);cursor:pointer;padding:0 .25rem;transition:color .15s}.page-guide-dismiss:hover{color:var(--brand-dark)}@keyframes pageGuideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.infotip-wrap{display:inline-flex;align-items:center;position:relative;vertical-align:middle;margin-left:.3rem}.infotip-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:none;background:none;color:var(--text-muted);cursor:help;padding:0;transition:color .15s}.infotip-icon:hover,.infotip-icon:focus{color:var(--brand-accent)}.infotip-bubble{position:absolute;z-index:800;width:max-content;max-width:260px;padding:.5rem .65rem;background:var(--brand-dark);color:#fff;font-size:.76rem;font-weight:400;line-height:1.45;border-radius:var(--radius-md);box-shadow:0 4px 14px #0003;pointer-events:none;animation:infotipIn .15s ease-out}.infotip-top{bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.infotip-bottom{top:calc(100% + 6px);left:50%;transform:translate(-50%)}.infotip-left{right:calc(100% + 6px);top:50%;transform:translateY(-50%)}.infotip-right{left:calc(100% + 6px);top:50%;transform:translateY(-50%)}@keyframes infotipIn{0%{opacity:0}to{opacity:1}}.fab-pulse{animation:fabPulse 2s ease-in-out 3}@keyframes fabPulse{0%,to{box-shadow:0 4px 16px #003b5c4d}50%{box-shadow:0 0 0 8px #003b5c26,0 4px 16px #003b5c4d}}.fab-nudge{position:fixed;bottom:82px;right:24px;background:var(--brand-dark);color:#fff;font-size:.78rem;font-weight:500;padding:.4rem .7rem;border-radius:var(--radius-md);box-shadow:0 4px 14px #0003;white-space:nowrap;z-index:900;animation:fabNudgeIn .25s ease-out;pointer-events:none}.fab-nudge:after{content:"";position:absolute;bottom:-5px;right:16px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid var(--brand-dark)}@keyframes fabNudgeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:480px){.fab-popup{width:calc(100vw - 32px);bottom:16px;right:16px}.fab-btn{bottom:16px;right:16px}.fab-nudge{bottom:74px;right:16px}}.wn-form-group{margin-bottom:1rem}.wn-label{display:block;font-size:.82rem;font-weight:700;color:var(--text-secondary);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.03em}.wn-subject-input{width:100%;padding:.65rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);font:inherit;font-size:1rem;font-weight:600;color:var(--text-primary);background:var(--bg-card);transition:border-color .2s;box-sizing:border-box}.wn-subject-input:focus{outline:none;border-color:var(--brand-light);box-shadow:0 0 0 3px #0077a81f}.wn-textarea{width:100%;padding:.65rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);font:inherit;color:var(--text-primary);background:var(--bg-card);resize:vertical;box-sizing:border-box;transition:border-color .2s}.wn-textarea:focus{outline:none;border-color:var(--brand-light);box-shadow:0 0 0 3px #0077a81f}.wn-bullet-list{display:flex;flex-direction:column;gap:.4rem}.wn-bullet-row{display:flex;align-items:center;gap:.4rem}.wn-bullet-dot{color:var(--text-muted);font-size:1.1rem;flex-shrink:0;width:1rem;text-align:center}.wn-bullet-input{flex:1;padding:.5rem .65rem;border:1px solid var(--border-medium);border-radius:var(--radius-md);font:inherit;color:var(--text-primary);background:var(--bg-card);transition:border-color .2s}.wn-bullet-input:focus{outline:none;border-color:var(--brand-light);box-shadow:0 0 0 3px #0077a81f}.wn-bullet-remove{background:none;border:none;font-size:1.2rem;line-height:1;color:var(--text-muted);cursor:pointer;padding:.2rem .4rem;border-radius:var(--radius-sm);transition:color .15s,background .15s}.wn-bullet-remove:hover{color:var(--red-solid);background:var(--red-bg)}.wn-add-btn{align-self:flex-start;margin-top:.25rem;font-size:.8rem!important;padding:.3rem .75rem!important}.wn-role-toggles{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.wn-selected-count{font-size:.82rem;font-weight:600;color:var(--text-secondary);margin:.5rem 0}.wn-user-table{font-size:.85rem}.wn-user-toggle{transform:scale(.85)}.wn-user-excluded td{opacity:.45}.wn-user-excluded td:last-child{opacity:1}.wn-log-row{transition:background .15s}.wn-log-row:hover,.wn-log-expanded{background:var(--brand-pale)}.wn-log-detail{margin-top:.75rem;padding:.75rem;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);font-weight:400}.wn-log-section{margin-bottom:.5rem}.wn-log-section:last-child{margin-bottom:0}.wn-log-section-label{font-size:.78rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.wn-log-section p{margin:.2rem 0 0;font-size:.85rem;color:var(--text-secondary);line-height:1.45}.wn-log-section ul{margin:.25rem 0 0;padding-left:1.25rem;font-size:.85rem;color:var(--text-secondary);line-height:1.45}.nav-theme-btn{background:#ffffff1f;color:var(--text-on-dark);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);padding:.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;line-height:1}.nav-theme-btn:hover{background:#ffffff38}[data-theme=dark]{--brand-pale: #162638;--bg-body: #0f1419;--bg-card: #1a2230;--bg-nav: #0a1929;--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #7a8ba0;--border-light: #243040;--border-medium: #2d3a4a;--border-strong: #3d4d5f;--green-bg: #0d2818;--green-text: #4ade80;--green-border: #166534;--green-solid: #22c55e;--red-bg: #2a1215;--red-text: #f87171;--red-border: #7f1d1d;--red-solid: #ef4444;--amber-text: #fbbf24;--amber-bg: #2a2008}[data-theme=dark] .entity-item.inactive,[data-theme=dark] .cal-week-eng,[data-theme=dark] .cal-month-cell-other,[data-theme=dark] .cal-month-cell-week,[data-theme=dark] .wb-grid-job{background:#1e2a38}[data-theme=dark] .wb-grid-weekend{background:#1e2a38!important}[data-theme=dark] .btn:hover:not(:disabled){background:#243040;border-color:#4a5a6c}[data-theme=dark] .status-badge.inactive,[data-theme=dark] .eng-heat-cell.idle{background:#1a2432;color:var(--text-muted)}[data-theme=dark] .wb-grid-col-hours,[data-theme=dark] .wb-grid-col-eng-header{background:#162230}[data-theme=dark] .eng-summary-heat-stack{background:#2d3a4a}[data-theme=dark] .eng-summary-heat-stack .idle{background:#3d4d5f}[data-theme=dark] .wb-grid-job:hover{background:#2d3a4a}[data-theme=dark] .toggle-slider{background:#3d4d5f}[data-theme=dark] .login-help-card,[data-theme=dark] .fab-popup{background:var(--bg-card)}[data-theme=dark] .form-field label,[data-theme=dark] .field span,[data-theme=dark] .field label,[data-theme=dark] .engineer-picker legend,[data-theme=dark] .recurring-fieldset legend{color:var(--text-secondary)}[data-theme=dark] .login-field input{background:var(--bg-card);color:var(--text-primary)}[data-theme=dark] .login-field span{color:var(--text-secondary)}[data-theme=dark] .eng-heat-cell.booked{background:#0d2818;color:#4ade80;border-color:#166534}[data-theme=dark] .eng-heat-cell.office{background:#0c1d2e;color:#7dd3fc;border-color:#075985}[data-theme=dark] .expense-warning,[data-theme=dark] .eng-cap-badge.under,[data-theme=dark] .dash-capacity-item.under{border-color:#92400e}[data-theme=dark] .password-expired-banner{background:#2a2008;border-color:#92400e;color:#fbbf24}[data-theme=dark] .searchable-select-dropdown{box-shadow:0 4px 16px #0006}[data-theme=dark] .searchable-select-input{background:transparent;color:var(--text-primary)}[data-theme=dark] .cal-month-date{color:var(--text-primary)}[data-theme=dark] .cal-gantt-weekend-col{background:#ffffff08}[data-theme=dark] .cal-gantt-day-header.cal-gantt-weekend{background:#ffffff14}[data-theme=dark] .cal-modal-overlay{background:#000000a6}[data-theme=dark] .wb-grid-today{background:#00a3e01a!important}[data-theme=dark] .wb-grid-holiday{background:#ea580c14!important}[data-theme=dark] .wb-overlay-bg{background:#0009}[data-theme=dark] .wb-overlay-modal{box-shadow:0 20px 60px #00000080}[data-theme=dark] .top-nav{box-shadow:0 2px 8px #0006}[data-theme=dark] .fab-popup{box-shadow:0 8px 32px #00000073}[data-theme=dark] .cal-modal{box-shadow:0 8px 32px #00000080}[data-theme=dark] .activity-job{color:#4ade80}[data-theme=dark] .activity-engineer{color:#a78bfa}[data-theme=dark] .activity-customer{color:#fbbf24}[data-theme=dark] .activity-user{color:#f87171}[data-theme=dark] .activity-jobtype{color:#38bdf8}[data-theme=dark] .role-admin{color:#f87171}[data-theme=dark] .role-manager{color:#fb923c}[data-theme=dark] .role-engineer{color:#4ade80}[data-theme=dark] .role-display{color:#c084fc}[data-theme=dark] .pw-req.met{color:#4ade80}[data-theme=dark] .pw-req.met:before{background:#4ade80}[data-theme=dark] .settings-tab:hover{background:#ffffff0f}[data-theme=dark] .tv-mode{--brand-pale: #e8f2fb;--bg-body: #f0f4f8;--bg-card: #ffffff;--bg-nav: var(--brand-dark);--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--text-on-dark: #ffffff;--text-on-dark-muted: rgba(255, 255, 255, .7);--border-light: #dbe3f0;--border-medium: #e2e8f0;--border-strong: #cbd5e1;--green-bg: #dcfce7;--green-text: #166534;--green-border: #bbf7d0;--green-solid: #22c55e;--red-bg: #fef2f2;--red-text: #991b1b;--red-border: #fecaca;--red-solid: #ef4444;--amber-text: #92400e;--amber-bg: #fef3c7}.form-label{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:600;color:var(--text-secondary);margin-bottom:.5rem}.form-input{width:100%;padding:.55rem .65rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);font:inherit;font-size:.9rem;color:var(--text-primary);background:var(--bg-card);transition:border-color .2s;box-sizing:border-box}.form-input:focus{outline:none;border-color:var(--brand-light);box-shadow:0 0 0 3px #0077a81f}.form-error{font-size:.82rem;color:var(--red-text);margin:0}.page-section{padding:1.5rem 0 2rem}.page-section-header{margin-bottom:1.25rem}.page-section-header h1{font-size:1.4rem;font-weight:800;color:var(--brand-dark);margin:0 0 .25rem}.page-section-header p{margin:0;color:var(--text-muted);font-size:.9rem}.cc-input-wrap{display:flex;align-items:center;gap:.35rem}.cc-prefix,.cc-suffix{font-size:.85rem;color:var(--text-muted);white-space:nowrap}.cc-num-input{width:90px!important;text-align:right}.cc-rate-pair{display:flex;align-items:flex-end;gap:.75rem;flex-wrap:wrap}.cc-rate-col{display:flex;flex-direction:column;gap:.25rem}.cc-rate-label{font-size:.72rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.cc-rate-sale{color:var(--brand-medium, #00587A)}.cc-rate-divider{font-size:1.2rem;color:var(--border-strong);padding-bottom:.55rem;flex-shrink:0}.cc-response-grid{display:grid;gap:.6rem;margin-top:.5rem}.cc-response-header{display:grid;grid-template-columns:140px repeat(3,1fr);gap:.5rem;font-size:.78rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;padding:0 .25rem}.cc-response-row{display:grid;grid-template-columns:140px repeat(3,1fr);gap:.5rem;align-items:center}.cc-response-label{font-size:.88rem;color:var(--text-secondary);font-weight:500}.pb-add-form,.pb-edit-form{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-lg);padding:1rem 1.25rem;margin-bottom:.75rem}.pb-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem}.pb-form-grid label{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:600;color:var(--text-secondary)}.pb-item-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;flex-wrap:wrap}.pb-item-code{font-family:var(--font-mono, monospace);font-size:.8rem;font-weight:700;color:var(--brand-dark);background:var(--brand-pale);border-radius:var(--radius-sm);padding:.2rem .5rem;white-space:nowrap}.pb-item-desc{flex:1 1 160px;font-size:.9rem}.pb-item-prices{display:flex;gap:.5rem;align-items:center;font-size:.82rem;color:var(--text-secondary)}.pb-margin-badge{background:var(--green-bg);color:var(--green-text);border:1px solid var(--green-border);border-radius:var(--radius-sm);padding:.1rem .4rem;font-size:.75rem;font-weight:700}.pb-item-unit{white-space:nowrap}.pt-card{padding:0!important;overflow:hidden}.pt-header-row{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;gap:1rem}.pt-header-left{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.pt-plant-type{font-size:.75rem;text-transform:uppercase;font-weight:700;letter-spacing:.06em;color:var(--brand-medium);background:var(--brand-pale);border-radius:var(--radius-sm);padding:.15rem .5rem}.pt-model{font-size:.95rem;color:var(--text-primary)}.pt-header-right{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.pt-chevron{font-size:.75rem;color:var(--text-muted)}.pt-expanded{border-top:1px solid var(--border-light);padding:.75rem 1rem 1rem}.pt-sub-tabs{display:flex;gap:.25rem;margin-bottom:.75rem;border-bottom:1px solid var(--border-light);padding-bottom:.5rem}.pt-sub-tab{padding:.3rem .8rem;border:1px solid transparent;border-radius:var(--radius-md);background:none;font:inherit;font-size:.82rem;color:var(--text-muted);cursor:pointer;transition:all .15s}.pt-sub-tab:hover{background:var(--bg-body);color:var(--text-primary)}.pt-sub-tab.active{background:var(--brand-pale);color:var(--brand-dark);border-color:var(--brand-light);font-weight:700}.pt-sub-section{padding:.25rem 0}.pt-items-table{font-size:.82rem;margin-bottom:.5rem}.pt-plan-badges{display:inline-flex;gap:.25rem;flex-wrap:wrap}.pt-plan-badge{font-size:.7rem;font-weight:700;border-radius:9999px;padding:.1rem .45rem}.pt-plan-base{background:#f1f5f9;color:#475569}.pt-plan-plus{background:#eff6ff;color:#1d4ed8}.pt-plan-premium{background:#faf5ff;color:#7e22ce}.pt-add-sub-form{background:var(--bg-body);border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:.75rem;margin-top:.5rem}.pt-plan-checkboxes{display:flex;gap:1rem;margin-top:.5rem}.pt-checkbox-label{display:flex;align-items:center;gap:.35rem;font-size:.85rem;cursor:pointer}.pt-remedial-card{background:var(--bg-body);border:1px solid var(--border-light);border-radius:var(--radius-md);padding:.6rem .75rem;margin-bottom:.5rem}.pt-remedial-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.calc-layout{display:grid;grid-template-columns:1fr 340px;gap:1.5rem;margin-top:1rem;align-items:start}@media(max-width:900px){.calc-layout{grid-template-columns:1fr}}.calc-form-col{display:flex;flex-direction:column;gap:1rem}.calc-step{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-lg);padding:1rem 1.25rem}.calc-step-title{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-medium);margin-bottom:.85rem}.calc-grid-2{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.85rem}.calc-btn-group{display:flex;gap:.35rem;margin-top:.3rem}.calc-length-btn{padding:.4rem .85rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-card);font:inherit;font-size:.85rem;cursor:pointer;color:var(--text-secondary);transition:all .15s}.calc-length-btn.active,.calc-length-btn:hover{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}.calc-pkg-btn{padding:.4rem .85rem;border:2px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-card);font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s}.calc-pkg-base{color:#475569}.calc-pkg-plus{color:#1d4ed8}.calc-pkg-premium{color:#7e22ce}.calc-pkg-base.active{background:#f1f5f9;border-color:#94a3b8}.calc-pkg-plus.active{background:#eff6ff;border-color:#3b82f6}.calc-pkg-premium.active{background:#faf5ff;border-color:#a855f7}.calc-pkg-badge{display:inline-block;font-size:.72rem;font-weight:700;border-radius:9999px;padding:.15rem .55rem}.calc-pkg-badge.calc-pkg-base{background:#f1f5f9;color:#475569}.calc-pkg-badge.calc-pkg-plus{background:#eff6ff;color:#1d4ed8}.calc-pkg-badge.calc-pkg-premium{background:#faf5ff;color:#7e22ce}.calc-status-badge{display:inline-block;font-size:.72rem;font-weight:700;border-radius:9999px;padding:.15rem .55rem;text-transform:capitalize;background:var(--bg-body);color:var(--text-muted)}.calc-status-badge.calc-status-accepted{background:var(--green-bg);color:var(--green-text)}.calc-status-badge.calc-status-sent{background:#eff6ff;color:#1d4ed8}.calc-status-badge.calc-status-declined{background:var(--red-bg);color:var(--red-text)}.calc-status-select{appearance:none;border:1px solid var(--border-medium);border-radius:var(--radius-sm);padding:.2rem .5rem;font-size:.78rem;font-weight:600;cursor:pointer;background:var(--bg-card);color:var(--text-secondary);text-align:center}.calc-status-select:disabled{opacity:.6;cursor:default}.calc-status-sel-draft{background:var(--bg-subtle);color:var(--text-muted)}.calc-status-sel-sent{background:#eff6ff;color:#1d4ed8}.calc-status-sel-accepted{background:var(--green-bg);color:var(--green-text)}.calc-status-sel-declined{background:var(--red-bg);color:var(--red-text)}.calc-overnight-warn{display:block;font-size:.77rem;color:var(--amber-text);margin-top:.25rem}.calc-add-plant-row{display:flex;gap:.5rem;align-items:flex-end;flex-wrap:wrap}.calc-qty-wrap{display:flex;flex-direction:column;gap:.25rem}.calc-plant-table{font-size:.82rem}.calc-breakdown-col{position:sticky;top:1rem}.calc-cost-breakdown{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-lg);padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.4rem}.calc-cost-title{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-medium);margin-bottom:.5rem}.calc-cost-meta{font-size:.78rem;color:var(--text-muted);margin-bottom:.25rem}.calc-cost-row{display:flex;justify-content:space-between;align-items:baseline;font-size:.85rem;color:var(--text-secondary)}.calc-cost-sub{border-top:1px solid var(--border-light);padding-top:.4rem;margin-top:.1rem;font-weight:600;color:var(--text-primary)}.calc-cost-annual{font-size:.8rem;color:var(--text-muted)}.calc-cost-total{display:flex;justify-content:space-between;align-items:baseline;background:var(--brand-dark);color:#fff;border-radius:var(--radius-md);padding:.6rem .75rem;font-weight:700;font-size:.95rem;margin:.25rem 0}.calc-cost-divider{height:1px;background:var(--border-medium);margin:.4rem 0}.customer-price-row{display:flex;flex-direction:column;gap:.4rem}.margin-badge{display:inline-block;font-size:.82rem;font-weight:700;border-radius:var(--radius-sm);padding:.25rem .6rem;text-align:center}.margin-badge.good{background:var(--green-bg);color:var(--green-text)}.margin-badge.ok{background:var(--amber-bg);color:var(--amber-text)}.margin-badge.low{background:var(--red-bg);color:var(--red-text)}.calc-plant-edit-panel{background:var(--bg-subtle);border-top:1px solid var(--border-light);padding:1rem 1rem .75rem}.calc-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-light)}.contracts-tabs{display:flex;gap:0;border-bottom:2px solid var(--border-medium);margin-bottom:0}.contracts-tab{padding:.65rem 1.25rem;border:none;background:none;font:inherit;font-size:.9rem;font-weight:600;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s}.contracts-tab:hover{color:var(--text-primary)}.contracts-tab.active{color:var(--brand-dark);border-bottom-color:var(--brand-dark)}.web-tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;margin-top:1.5rem}.web-tool-card{background:var(--bg-card);border:1px solid var(--border-medium);border-radius:var(--radius-lg);padding:1.5rem;display:flex;gap:1rem;align-items:flex-start;transition:box-shadow .2s}.web-tool-card:hover{box-shadow:var(--shadow-md)}.wt-icon{font-size:2rem;line-height:1;flex-shrink:0}.wt-content h3{font-size:1rem;font-weight:700;color:var(--text-primary);margin:0 0 .35rem}.wt-content p{font-size:.85rem;color:var(--text-muted);margin:0 0 .75rem}.wt-coming-soon{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:var(--amber-bg);color:var(--amber-text);border-radius:9999px;padding:.2rem .65rem}.wt-tab-bar{display:flex;gap:0;border-bottom:2px solid var(--border-medium);margin-bottom:1.5rem}.wt-tab{padding:.6rem 1.25rem;border:none;background:transparent;color:var(--text-muted);font-weight:500;font-size:.9rem;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.wt-tab:hover{color:var(--brand-dark)}.wt-tab-active{color:var(--brand-dark);border-bottom-color:var(--brand-dark);font-weight:600}.wt-calc-wrap{max-width:520px}.wt-calc-form{background:var(--bg-card);border-radius:var(--radius-lg);padding:1.25rem;border:1px solid var(--border-medium);box-shadow:var(--shadow-sm)}.wt-form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.wt-form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem}.wt-calc-btn{margin-top:1rem;width:100%}.wt-reset-btn{margin-top:.875rem}.wt-results-card{background:var(--bg-card);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-medium);box-shadow:var(--shadow-sm)}.wt-results-header{background:var(--brand-dark);color:#fff;padding:1.25rem 1rem;text-align:center}.wt-rh-warn{background:#b45309}.wt-rh-eyebrow{font-size:.72rem;opacity:.8;margin-bottom:.2rem;text-transform:uppercase;letter-spacing:.04em}.wt-type-badge{display:inline-block;padding:2px 12px;border-radius:999px;font-size:.72rem;font-weight:600;background:#fff3;margin-bottom:.45rem}.wt-rh-model{font-size:2rem;font-weight:700;line-height:1.15}.wt-rh-sub{font-size:.95rem;opacity:.9;margin-top:.2rem}.wt-results-body{padding:1rem}.wt-result-section{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-light)}.wt-result-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.wt-result-section-title{font-size:.68rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.5rem}.wt-result-row{display:flex;justify-content:space-between;align-items:baseline;padding:.3rem 0;font-size:.875rem}.wt-result-label{color:var(--text-muted)}.wt-result-value{font-weight:600;color:var(--text-primary);text-align:right}.wt-highlight{color:var(--brand-dark)!important}.wt-flow-diagram{display:flex;align-items:center;flex-wrap:wrap;gap:4px;padding:.4rem 0;font-size:.78rem}.wt-flow-step{background:var(--bg-body);padding:5px 10px;border-radius:4px;text-align:center;line-height:1.3}.wt-fs-ro{background:var(--brand-dark);color:#fff}.wt-fs-softener{background:#15803d;color:#fff}.wt-fs-polisher{background:#6d28d9;color:#fff}.wt-fs-antiscalant{background:#b45309;color:#fff}.wt-flow-arrow{color:var(--border-strong);font-size:.9rem}.wt-equip-list{display:flex;flex-direction:column;gap:.5rem}.wt-equip-box{padding:.6rem .75rem;border-radius:var(--radius-md);border-left:4px solid transparent;background:var(--bg-body)}.wt-equip-primary{background:#e8f1f9;border-left-color:var(--brand-dark)}.wt-equip-softener{background:#dcfce7;border-left-color:#15803d}.wt-equip-polisher{background:#ede9fe;border-left-color:#6d28d9}.wt-equip-polisher-alt{background:#f5f3ff;border-left-color:#a78bfa}.wt-equip-warn{background:var(--amber-bg);border-left-color:#b45309}.wt-equip-name{font-weight:700;color:var(--text-primary);font-size:.9rem}.wt-equip-detail{font-size:.78rem;color:var(--text-muted);margin-top:2px}.wt-opt-label{font-size:.62rem;font-weight:600;background:#0000001f;padding:1px 7px;border-radius:999px;margin-left:5px;vertical-align:middle}.wt-life-warn{color:#b45309;font-weight:600}.wt-life-ok{color:#15803d;font-weight:600}.wt-result-note{background:var(--brand-pale);border-left:3px solid var(--brand-dark);padding:.6rem .75rem;border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:.82rem;color:var(--text-primary);margin-top:.75rem}.wt-note-warn{background:var(--amber-bg);border-left-color:#b45309;color:var(--amber-text)}.wt-equip-add-form{background:var(--brand-pale);border:1px solid var(--brand-light);border-radius:var(--radius-sm);padding:.75rem;margin-bottom:1rem}.rp-matrix-wrap{overflow-x:auto;margin:0 -.25rem}.rp-matrix{width:100%;border-collapse:collapse;font-size:.85rem}.rp-matrix thead th{padding:.6rem .75rem;text-align:center;background:var(--surface-raised);border-bottom:2px solid var(--border);font-weight:600}.rp-page-col{text-align:left!important;min-width:180px}.rp-role-col{min-width:110px}.rp-role-header{display:flex;flex-direction:column;align-items:center;gap:.35rem}.rp-presets{display:flex;gap:.2rem}.rp-preset-btn{font-size:.65rem;padding:.1rem .35rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted);cursor:pointer;line-height:1.4;transition:background .15s,color .15s}.rp-preset-btn:hover{background:var(--brand-pale);color:var(--brand-dark)}.rp-preset-none:hover{background:#fee2e2;color:#dc2626;border-color:#fca5a5}.rp-page-row{border-bottom:1px solid var(--border-subtle, var(--border))}.rp-page-row:last-child{border-bottom:none}.rp-page-row:hover{background:var(--surface-raised)}.rp-page-cell{padding:.6rem .75rem;vertical-align:middle}.rp-page-name{font-weight:600;color:var(--text-primary)}.rp-page-desc{font-size:.75rem;color:var(--text-muted);margin-top:.1rem}.rp-perm-cell{padding:.5rem;text-align:center;vertical-align:middle}.rp-toggle{display:block;width:64px;margin:0 auto .25rem;padding:.2rem 0;font-size:.72rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;border-radius:var(--radius-pill);border:1.5px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.rp-toggle:last-child{margin-bottom:0}.rp-toggle.rp-toggle-on{background:var(--brand-dark);border-color:var(--brand-dark);color:#fff}.rp-toggle.rp-toggle-dim{opacity:.35;cursor:not-allowed}.rp-toggle:not(.rp-toggle-dim):hover{border-color:var(--brand-medium);background:var(--brand-pale);color:var(--brand-dark)}.rp-toggle.rp-toggle-on:not(.rp-toggle-dim):hover{background:var(--brand-medium);color:#fff}.rp-group-row td.rp-group-header{padding:.9rem .75rem .3rem;font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--brand-medium, #00587A);background:var(--bg-secondary, #f4f6f8);border-top:2px solid var(--border);border-bottom:1px solid var(--border-subtle, var(--border))}.dark .rp-group-row td.rp-group-header{background:var(--surface-raised);color:var(--accent, #00A3E0)}.modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:10000;padding:1rem}.modal-box{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:0 8px 40px #00000038;width:100%;max-width:540px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.modal-close-btn{background:none;border:none;cursor:pointer;font-size:1.2rem;color:var(--text-muted);padding:.25rem;line-height:1;flex-shrink:0}.modal-close-btn:hover{color:var(--text-primary)}.whats-new-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.25rem 1.5rem .75rem;border-bottom:1px solid var(--border-light);background:linear-gradient(135deg,var(--brand-dark) 0%,var(--brand-medium) 100%);color:#fff}.whats-new-modal-eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.8;margin-bottom:.2rem}.whats-new-modal-title{font-size:1.15rem;font-weight:700;margin:0 0 .2rem;color:#fff}.whats-new-modal-date{font-size:.78rem;opacity:.75}.whats-new-modal-header .modal-close-btn{color:#ffffffb3}.whats-new-modal-header .modal-close-btn:hover{color:#fff}.whats-new-modal-body{padding:1.25rem 1.5rem;overflow-y:auto;flex:1}.whats-new-modal-intro{font-size:.92rem;color:var(--text-secondary);margin-bottom:1rem;line-height:1.5}.whats-new-section{margin-bottom:1rem}.whats-new-section-label{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.4rem}.whats-new-features-label{color:#d97706}.whats-new-fixes-label{color:var(--brand-medium)}.whats-new-list{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.3rem}.whats-new-list li{font-size:.9rem;line-height:1.45}.whats-new-modal-closing{font-size:.88rem;color:var(--text-muted);font-style:italic;margin-top:.75rem;margin-bottom:0}.whats-new-modal-footer{padding:.75rem 1.5rem;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end}
