:root{
  --nav:#16202a;--nav2:#22313f;--bg:#f4f6f8;--card:#fff;--line:#dce3e8;
  --text:#1c2733;--muted:#65717d;--accent:#2367c9;--accent-dark:#194e9a;
  --good:#238636;--warn:#a96e13;--bad:#c53030;--info:#0f6f8a;--shadow:0 4px 18px rgba(22,32,42,.08)
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}
button{touch-action:manipulation}
.hidden{display:none!important}
.mobile-only{display:none}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#16202a,#263d52)}
.login-card{width:min(440px,100%);background:#fff;border-radius:18px;padding:30px;box-shadow:0 24px 70px rgba(0,0,0,.3)}
.logo-mark{width:58px;height:58px;border-radius:14px;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:23px;font-weight:900}

.billing-percentage-panel{display:grid;gap:12px}
.billing-percentage-rule{border:1px solid #d7dde2;border-radius:10px;padding:12px;background:#fff;display:grid;gap:10px;margin-bottom:10px}
.billing-percentage-remove{display:flex;align-items:end;justify-content:flex-end}
.billing-percentage-selected-lines{display:grid;gap:7px;padding:10px;border-radius:8px;background:#f7f9fa}
.billing-percentage-preview{font-weight:700;color:#315b48;background:#edf7f1;border-radius:8px;padding:9px 11px}
.billing-percentage-row{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px}
.billing-percentage-row small{grid-column:1/-1;color:#66727d}
.login-card h1{margin:18px 0 6px}.login-card p{color:var(--muted);line-height:1.5;margin:0 0 22px}.login-card label{display:grid;gap:6px;font-size:13px;font-weight:700;margin-bottom:14px;color:#52606c}.login-card input{width:100%;padding:12px;border:1px solid #cbd4dc;border-radius:9px}.login-card small{display:block;margin-top:14px;color:var(--muted);line-height:1.4}
.app-shell{--sidebar-width:248px;min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);grid-template-rows:68px 1fr;grid-template-areas:"header header" "sidebar content";transition:grid-template-columns .18s ease}.app-shell.sidebar-collapsed{grid-template-columns:74px minmax(0,1fr)}
.header{grid-area:header;position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:14px;padding:0 18px;background:#fff;border-bottom:1px solid var(--line)}
.header-brand{display:flex;align-items:baseline;gap:8px;min-width:210px}.header-brand strong{font-size:20px}.header-brand span{font-size:11px;color:var(--muted)}
.header-search{position:relative;flex:1;max-width:620px;min-width:0}.header-search-controls{display:flex;align-items:center;gap:8px}.header-search input{flex:1;min-width:0;width:100%;border:1px solid var(--line);border-radius:9px;background:#f8fafb;padding:10px 12px}.header-search-button{flex:0 0 auto;white-space:nowrap}.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);max-height:420px;overflow:auto;padding:8px;z-index:500}.search-group-title{padding:8px 10px 4px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.search-item{display:block;width:100%;text-align:left;border:0;background:transparent;border-radius:8px;padding:9px 10px;cursor:pointer}.search-item:hover,.search-item:focus{background:#eef4fb;outline:2px solid #9eb7d7;outline-offset:-2px}.search-item strong{display:block}.search-item small{color:var(--muted)}
#companySwitcher{max-width:220px;border:1px solid var(--line);border-radius:9px;padding:9px;background:#fff}.icon-button{position:relative;border:0;background:#eef2f5;border-radius:9px;min-width:42px;min-height:42px;cursor:pointer}.count-badge{position:absolute;right:-4px;top:-4px;background:var(--bad);color:#fff;font-size:10px;border-radius:999px;padding:2px 5px}.user-button{display:flex;align-items:center;gap:8px;border:0;background:transparent;cursor:pointer;white-space:nowrap}.user-button>span:first-child{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#dce9f8;color:#174c8d;font-weight:800}
.sidebar{grid-area:sidebar;position:sticky;top:68px;height:calc(100vh - 68px);background:var(--nav);padding:12px;display:flex;flex-direction:column;justify-content:space-between;z-index:90;transition:width .18s ease,padding .18s ease}.sidebar nav{display:grid;gap:5px}.nav-link,.sidebar-collapse{display:flex;align-items:center;gap:11px;width:100%;border:0;background:transparent;color:#dce5ed;text-align:left;padding:12px 13px;border-radius:9px;cursor:pointer;font-weight:650}.nav-link:hover,.nav-link.active,.sidebar-collapse:hover{background:var(--nav2);color:#fff}.nav-icon,.collapse-icon{width:22px;text-align:center;flex:0 0 22px}.sidebar-collapse{margin-bottom:8px;color:#b9c7d3;border:1px solid rgba(255,255,255,.08)}.app-shell.sidebar-collapsed .sidebar{padding-left:8px;padding-right:8px}.app-shell.sidebar-collapsed .nav-link,.app-shell.sidebar-collapsed .sidebar-collapse{justify-content:center;gap:0;padding-left:8px;padding-right:8px}.app-shell.sidebar-collapsed .nav-text{display:none}.app-shell.sidebar-collapsed .collapse-icon{transform:rotate(180deg)}
.content{grid-area:content;padding:25px 27px 60px;min-width:0}.view{display:none}.view.active{display:block}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}.page-heading h1{margin:0;font-size:28px}.page-heading p{margin:5px 0 0;color:var(--muted)}.heading-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.heading-actions input,.filter-bar input,.filter-bar select{border:1px solid var(--line);border-radius:8px;padding:9px;background:#fff}
.btn{border:0;border-radius:8px;padding:10px 14px;cursor:pointer;font-weight:750;min-height:40px}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-dark)}.btn.secondary{background:#e9eef4;color:#253342}.btn.good{background:var(--good);color:#fff}.btn.warning{background:var(--warn);color:#fff}.btn.danger{background:var(--bad);color:#fff}.btn.wide{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:0 1px 2px rgba(0,0,0,.03)}.metric-card .label{font-size:13px;color:var(--muted)}.metric-card .value{font-size:31px;font-weight:900;margin-top:5px}.metric-card .hint{font-size:12px;color:#53606c;margin-top:8px}
.section-heading{display:flex;align-items:center;gap:8px;margin:25px 0 10px}.section-heading h2{font-size:19px;margin:0}.pill{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#e9eef4;color:#344353;font-size:12px;font-weight:800}.pill.good{background:#ddf4e2;color:#176d28}.pill.warning{background:#fff0cc;color:#7a5200}.pill.bad{background:#fde2e2;color:#8c2525}.pill.info{background:#dff3f8;color:#0c6178}.pill.neutral{background:#e9eef4;color:#344353}
.attention-list{display:grid;gap:8px}.attention-item{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;cursor:pointer}.attention-item:hover{border-color:#9eb7d7}.attention-item strong{display:block;margin-bottom:3px}.attention-item p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}
.board-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 2px rgba(0,0,0,.03);padding:16px;min-width:0}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.panel h2{font-size:18px;margin:0}.panel-head span{font-size:12px;color:var(--muted)}.job-list{display:grid;gap:9px}.job-card{border:1px solid var(--line);border-radius:10px;padding:12px;cursor:pointer;background:#fff}.job-card:hover{border-color:#9eb7d7;box-shadow:0 3px 12px rgba(35,103,201,.07)}.job-card-top{display:flex;justify-content:space-between;gap:10px}.job-card .record{font-weight:850}.job-card .customer{font-weight:750;margin-top:5px}.job-card .description{margin-top:4px}.job-card .meta{display:flex;flex-wrap:wrap;gap:7px 13px;color:var(--muted);font-size:12px;margin-top:8px}.resource-confirmation-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.resource-confirmation{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:4px 8px;font-size:11px;line-height:1.2;background:#f5f7f9;color:#4a5968}.resource-confirmation strong{font-weight:800}.resource-confirmation.complete{background:#e9f7ed;border-color:#b9dfc3;color:#216b35}.resource-confirmation.partial{background:#fff6db;border-color:#ead48e;color:#7a5a00}.resource-confirmation.missing{background:#fff0f0;border-color:#e5bcbc;color:#8c2525}.resource-confirmation.neutral{background:#f5f7f9;border-color:#d9e0e6;color:#617080}.job-card-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;margin-top:9px}.job-card-detail{display:flex;gap:6px;align-items:flex-start;min-width:0;background:#f7f9fb;border:1px solid #e7edf3;border-radius:7px;padding:6px 8px;font-size:11px;line-height:1.3}.job-card-detail>span{color:var(--muted);font-weight:750;white-space:nowrap}.job-card-detail>strong{font-weight:650;min-width:0;overflow-wrap:anywhere}.job-card-contact{grid-column:1/-1}.job-contact-link{color:var(--blue);text-decoration:none}.job-contact-link:hover{text-decoration:underline}.warning-line{margin-top:8px;padding-top:8px;border-top:1px solid #f0d7d7;color:#8c2525;font-size:12px}.empty-state{padding:26px;text-align:center;color:var(--muted);border:1px dashed #ccd5dd;border-radius:10px}
.filter-bar{display:flex;gap:9px;margin-bottom:13px}.filter-bar input{flex:1}.table-panel{overflow:auto;padding:0}table{width:100%;border-collapse:collapse}th,td{text-align:left;border-bottom:1px solid var(--line);padding:12px 11px;font-size:14px;white-space:nowrap}th{font-size:12px;color:var(--muted);font-weight:800;background:#f8fafb;position:sticky;top:0}.click-row{cursor:pointer}.click-row:hover{background:#f2f7fc}
.form-layout{display:grid;gap:15px}.form-section h2{margin:0 0 14px}.form-section>p{margin:-7px 0 14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label{display:grid;gap:6px;color:#52606c;font-weight:700;font-size:13px}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid #cbd4dc;border-radius:8px;padding:10px;background:#fff;color:var(--text)}.form-grid textarea{min-height:86px;resize:vertical}.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:9px}.form-error{color:var(--bad);font-weight:700;margin-top:8px;white-space:pre-wrap}.muted{color:var(--muted)}
.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.resource-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px}.resource-card h3{margin:0}.resource-card p{margin:5px 0;color:var(--muted)}.resource-meta{display:flex;justify-content:space-between;gap:10px;margin-top:12px;font-size:12px}
.drawer-backdrop{position:fixed;inset:0;background:rgba(17,28,39,.38);z-index:600}.drawer{position:fixed;right:0;top:0;height:100vh;width:min(1120px,96vw);background:#f5f7f9;z-index:700;box-shadow:-18px 0 50px rgba(0,0,0,.22);transform:translateX(102%);transition:transform .2s ease;overflow:auto}.drawer.open{transform:translateX(0)}.drawer-head{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);z-index:10;padding:18px 20px;display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.drawer-head h2{margin:8px 0 2px}.drawer-head p{margin:0;color:var(--muted)}.back-button{border:0;background:transparent;color:var(--accent);font-weight:800;padding:0;cursor:pointer}.drawer-content{padding:18px;display:grid;gap:14px}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.detail-box{background:#f8fafc;border:1px solid var(--line);border-radius:9px;padding:11px}.detail-box .k{font-size:11px;color:var(--muted);text-transform:uppercase;font-weight:800}.detail-box .v{font-weight:750;margin-top:5px}.schedule-card{border:1px solid var(--line);border-radius:11px;padding:13px;background:#fff}.schedule-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.schedule-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.requirement-list,.assignment-list,.timeline-list{display:grid;gap:8px;margin-top:10px}.requirement-row,.assignment-row,.timeline-row{border:1px solid var(--line);border-radius:9px;padding:10px;background:#fff}.requirement-row{display:grid;grid-template-columns:minmax(130px,1fr) repeat(4,auto);gap:12px;align-items:center}.req-num{text-align:center}.req-num strong{display:block}.req-num small{color:var(--muted)}.assignment-row{display:flex;justify-content:space-between;gap:10px;align-items:center}.assignment-row .sub{font-size:12px;color:var(--muted);margin-top:3px}.inline-actions{display:flex;gap:5px;flex-wrap:wrap}.mini-btn{border:0;border-radius:7px;padding:7px 9px;cursor:pointer;font-size:12px;font-weight:750;background:#e9eef4;color:#253342}.mini-btn.good{background:#dcf5e2;color:#176d28}.mini-btn.bad{background:#fde2e2;color:#8c2525}.mini-btn.warning{background:#fff0cc;color:#7a5200}.blocker-box{border:1px solid #efc0c0;background:#fff4f4;color:#8c2525;border-radius:8px;padding:10px;font-size:13px;margin-top:8px}.timeline-row{border-left:4px solid #c9d7e8}.timeline-row small{color:var(--muted)}
.modal-backdrop{position:fixed;inset:0;background:rgba(17,28,39,.5);z-index:900;display:grid;place-items:center;padding:18px}.modal{width:min(620px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,.3);padding:18px}.modal h2{margin-top:0}.modal .form-grid{grid-template-columns:1fr}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.toast{position:fixed;right:22px;bottom:22px;z-index:1100;max-width:420px;background:#17232f;color:#fff;border-radius:10px;padding:12px 15px;box-shadow:var(--shadow)}.toast.error{background:#8c2525}.toast.success{background:#176d28}
@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,1fr)}.resource-grid{grid-template-columns:repeat(2,1fr)}.board-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){
  .mobile-only{display:inline-grid}.app-shell{display:block}.sidebar-collapse{display:none}.header{height:auto;min-height:64px;flex-wrap:wrap;padding:10px 12px}.header-brand{min-width:0}.header-search{order:5;flex-basis:100%;max-width:none}.header-search input,.header-search-button{min-height:44px}#companySwitcher{max-width:180px;flex:1}.user-button #userName{display:none}.sidebar{position:fixed;left:0;top:0;height:100vh;width:270px;transform:translateX(-103%);transition:transform .2s ease;z-index:800;padding-top:80px}.sidebar.open{transform:translateX(0)}.content{padding:17px 13px 50px}.page-heading{flex-direction:column}.heading-actions{width:100%}.heading-actions .btn,.heading-actions input{flex:1}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.resource-grid,.metrics{grid-template-columns:1fr}.filter-bar{flex-direction:column}.drawer{width:100vw}.detail-grid{grid-template-columns:1fr}.requirement-row{grid-template-columns:1fr 1fr}.requirement-row>div:first-child{grid-column:1/-1}.assignment-row{align-items:flex-start;flex-direction:column}.table-panel table,.table-panel thead,.table-panel tbody,.table-panel th,.table-panel td,.table-panel tr{display:block}.table-panel thead{display:none}.table-panel tr{border-bottom:1px solid var(--line);padding:8px}.table-panel td{border:0;padding:4px;white-space:normal}.table-panel td:before{content:attr(data-label);display:block;font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase}}
.admin-tabs{display:flex;gap:7px;overflow:auto;padding-bottom:10px;margin-bottom:10px}.admin-tabs button{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 13px;font-weight:750;cursor:pointer}.admin-tabs button.active{background:var(--nav);border-color:var(--nav);color:#fff}.admin-panel{padding:0;overflow:hidden}.admin-toolbar{padding:16px;margin:0;border-bottom:1px solid var(--line);align-items:flex-end}.admin-toolbar p{margin:4px 0 0}.admin-table-wrap{overflow:auto}.admin-table{min-width:850px}.admin-table td.wrap{white-space:normal;min-width:190px}.admin-table .row-actions{display:flex;gap:5px}.admin-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--good);margin-right:6px}.admin-status-dot.inactive{background:#9aa6b2}.admin-form-note{background:#f4f7fa;border:1px solid var(--line);border-radius:8px;padding:10px;font-size:13px;color:var(--muted);margin-bottom:12px}.checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.checkbox-option{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start;gap:8px!important;border:1px solid var(--line);padding:9px;border-radius:8px;font-weight:600!important}.checkbox-option input{width:auto!important;margin-top:2px}.admin-subtable{margin-top:12px;border:1px solid var(--line);border-radius:9px;overflow:auto}.admin-subtable table{min-width:620px}.file-drop{border:2px dashed #bcc9d5;border-radius:10px;padding:16px;text-align:center;background:#f8fafc}.file-drop input{margin-top:9px}.attachment-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:10px}.attachment-row .sub{font-size:12px;color:var(--muted);margin-top:3px}.unread{border-left-color:var(--accent);background:#f7fbff}
@media(max-width:780px){.admin-tabs{margin-left:-4px;margin-right:-4px}.admin-toolbar{align-items:flex-start;flex-direction:column}.admin-toolbar .heading-actions{width:100%}.admin-toolbar .heading-actions .btn{flex:1}.checkbox-grid{grid-template-columns:1fr}.attachment-row{align-items:flex-start;flex-direction:column}}
.saved-filter-bar{display:flex;gap:8px;align-items:center;margin-bottom:10px}.saved-filter-bar select{min-width:210px;border:1px solid var(--line);border-radius:8px;padding:9px;background:#fff}.job-filter-grid{display:grid;grid-template-columns:minmax(180px,1.5fr) repeat(3,minmax(140px,1fr)) minmax(130px,.8fr) minmax(130px,.8fr) auto;align-items:end}.compact-label{display:grid;gap:4px;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase}.compact-label input,.compact-label select{min-height:40px;text-transform:none;font-size:14px;font-weight:500;color:var(--text)}
.task-board,.task-list,.comment-list,.progress-list{display:grid;gap:9px}.task-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:11px;background:#fff}.task-row.overdue{border-left:5px solid var(--bad);background:#fffafa}.task-main{display:flex;gap:10px;align-items:flex-start;flex:1;border:0;background:transparent;text-align:left;padding:0;color:inherit;cursor:pointer}.task-main p{margin:4px 0;color:var(--muted);line-height:1.4}.task-main small{color:var(--muted)}.task-row>select{border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff}.comment-row{border:1px solid var(--line);border-radius:10px;padding:11px;background:#fff}.comment-head,.timeline-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.comment-head small{color:var(--muted);white-space:nowrap}.comment-row p{line-height:1.5;margin:10px 0}.thread-replies{display:grid;gap:8px;margin:11px 0 0 20px;padding-left:12px;border-left:3px solid #d8e4f1}.progress-list{margin:12px 0}.progress-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border:1px solid #cfe1ee;background:#f7fbfe;border-radius:9px;padding:9px}.progress-row small{color:var(--muted)}.mini-btn.info{background:#dff3f8;color:#0c6178}.timeline-details{margin-top:8px}.timeline-details summary{cursor:pointer;color:var(--accent);font-size:12px;font-weight:750}.timeline-details pre{white-space:pre-wrap;overflow:auto;background:#f5f7f9;border-radius:7px;padding:9px;font-size:11px;line-height:1.35}.check-label{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:8px!important}.check-label input{width:auto!important}.field-action-bar{position:relative}
@media(max-width:1150px){.job-filter-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}}
@media(max-width:780px){.saved-filter-bar{align-items:stretch;flex-direction:column}.saved-filter-bar select{min-width:0;width:100%}.job-filter-grid{display:flex;flex-direction:column;align-items:stretch}.task-row{align-items:stretch;flex-direction:column}.task-row>select{width:100%;min-height:44px}.comment-head,.timeline-head{align-items:flex-start;flex-direction:column}.thread-replies{margin-left:7px;padding-left:8px}.progress-row{grid-template-columns:1fr}.field-action-bar{position:sticky;bottom:0;z-index:5;background:#fff;border-top:1px solid var(--line);padding:10px;margin-left:-13px;margin-right:-13px;margin-bottom:-13px}.field-action-bar .mini-btn{flex:1;min-height:42px}.modal{max-height:94vh;border-radius:12px}.modal-actions .btn{min-height:46px;flex:1}}
.environment-banner{display:flex;align-items:center;gap:12px;border:1px solid #e0a82f;background:#fff4d5;color:#6f4b00;border-radius:10px;padding:10px 13px;margin-bottom:16px}.environment-banner strong{letter-spacing:.08em}.uat-test-list,.uat-feedback-list{display:grid;gap:10px}.uat-test-card{border:1px solid var(--line);border-radius:11px;padding:12px;background:#fff}.uat-test-card.passed{border-left:5px solid var(--good)}.uat-test-card.failed{border-left:5px solid var(--bad)}.uat-test-card.blocked{border-left:5px solid var(--warn)}.uat-test-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.uat-test-title{display:flex;gap:9px;align-items:flex-start}.uat-test-title h3{margin:0 0 4px;font-size:16px}.uat-test-card p{margin:8px 0;color:var(--muted);line-height:1.45}.uat-test-card details{margin-top:8px}.uat-test-card details summary{cursor:pointer;color:var(--accent);font-weight:750}.uat-test-actions{display:grid;grid-template-columns:minmax(150px,auto) minmax(220px,1fr) auto;gap:8px;align-items:end;margin-top:10px}.uat-test-actions label{display:grid;gap:4px;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase}.uat-test-actions select,.uat-test-actions textarea{border:1px solid var(--line);border-radius:8px;padding:9px;background:#fff;color:var(--text);text-transform:none;font-size:14px;font-weight:500}.uat-test-actions textarea{min-height:42px;resize:vertical}.compact-form{max-width:none}.uat-feedback-card{border:1px solid var(--line);border-radius:11px;padding:13px;background:#fff}.uat-feedback-card.critical{border-left:5px solid var(--bad)}.uat-feedback-card.high{border-left:5px solid var(--warn)}.uat-feedback-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.uat-feedback-head h3{margin:5px 0 0}.uat-feedback-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.uat-feedback-body{display:grid;gap:8px;margin:12px 0}.uat-feedback-body p{margin:0;line-height:1.45}.uat-feedback-context{background:#f6f8fa;border-radius:8px;padding:9px;font-size:12px;color:var(--muted);word-break:break-word}.uat-review-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:8px;margin-top:10px}.uat-review-grid label{display:grid;gap:4px;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase}.uat-review-grid select,.uat-review-grid textarea{border:1px solid var(--line);border-radius:8px;padding:9px;background:#fff;text-transform:none;font-size:14px;font-weight:500}.uat-review-grid .full{grid-column:1/-1}.team-summary-table{width:100%;border-collapse:collapse}.team-summary-table th,.team-summary-table td{border-bottom:1px solid var(--line);padding:9px;text-align:left}.feedback-files{display:grid;gap:8px;margin-top:10px}
@media(max-width:780px){.environment-banner{align-items:flex-start;flex-direction:column}.uat-test-head,.uat-feedback-head{flex-direction:column}.uat-test-actions{grid-template-columns:1fr}.uat-test-actions .btn{min-height:44px}.uat-review-grid{grid-template-columns:1fr}.uat-review-grid .full{grid-column:auto}.uat-feedback-meta{align-items:flex-start}.team-summary-table,.team-summary-table tbody,.team-summary-table tr,.team-summary-table td{display:block}.team-summary-table thead{display:none}.team-summary-table tr{padding:8px;border-bottom:1px solid var(--line)}.team-summary-table td{border:0;padding:3px}.team-summary-table td:before{content:attr(data-label);display:block;font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase}}

.mfa-qr { display:block; width:min(240px, 80vw); height:auto; margin:1rem auto; border:1px solid #d7dde5; border-radius:10px; background:#fff; padding:10px; }
.recovery-codes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; padding:1rem; background:#f5f7fa; border-radius:10px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
.security-badge { display:inline-flex; align-items:center; gap:.35rem; border-radius:999px; padding:.25rem .65rem; font-size:.85rem; font-weight:700; }
.security-badge.good { background:#dff3e7; color:#12643a; }
.security-badge.warning { background:#fff1cc; color:#7c5400; }
@media (max-width:600px){ .recovery-codes{grid-template-columns:1fr;} }

/* v0.7.1 Compact Daily Operations */
.availability-quick{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:8px;margin:12px 0 18px}.availability-chip{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;text-align:left;cursor:pointer;display:grid;gap:2px}.availability-chip strong{font-size:20px}.availability-chip span{font-size:11px;color:var(--muted)}.availability-chip.good{border-left:5px solid var(--good)}.availability-chip.info{border-left:5px solid var(--accent)}.availability-chip.warning{border-left:5px solid var(--warn)}.availability-chip.bad{border-left:5px solid var(--bad)}
.command-item{cursor:pointer}.command-item.high,.command-item.critical{border-left:5px solid var(--bad)}.command-item.medium{border-left:5px solid var(--warn)}.command-item.low{border-left:5px solid #7ca3c6}.command-item small{color:var(--accent);font-weight:700}
.availability-board,.daily-list{display:grid;gap:8px}.availability-row,.daily-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff}.availability-main{display:grid;gap:3px;min-width:0}.availability-main small{color:var(--muted);line-height:1.35}.availability-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.availability-actions select{border:1px solid var(--line);border-radius:8px;padding:7px;background:#fff}.daily-row p{margin:5px 0;color:var(--muted);line-height:1.4}.daily-row small{color:var(--muted)}.daily-summary-panel h3{margin:0 0 10px}.daily-summary{display:grid;gap:8px}.summary-section{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:8px}.summary-section span{font-weight:800}.availability-grid,.daily-lower-grid{align-items:start}
@media(max-width:1100px){.availability-quick{grid-template-columns:repeat(3,minmax(120px,1fr))}}
@media(max-width:780px){.availability-quick{grid-template-columns:repeat(2,minmax(0,1fr))}.availability-row,.daily-row{align-items:flex-start;flex-direction:column}.availability-actions{width:100%}.availability-actions .mini-btn,.availability-actions select{flex:1;min-height:42px}.daily-summary-panel{padding:13px}}

/* v0.7.1 compact resource status lists */
.availability-summary-bar{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 4px}.availability-summary-item{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:6px 10px;font-size:12px}.availability-summary-item strong{font-size:14px}.status-dot{display:inline-block;width:11px;height:11px;border-radius:50%;flex:0 0 11px;box-shadow:0 0 0 2px rgba(0,0,0,.04)}.status-dot.green{background:var(--good)}.status-dot.blue{background:var(--accent)}.status-dot.yellow{background:#e3a008}.status-dot.red{background:var(--bad)}.status-dot.gray{background:#8b98a5}.availability-filter-bar{display:flex;gap:6px;flex-wrap:wrap;padding:2px 0 9px}.availability-filter-button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:750;cursor:pointer}.availability-filter-button.active{border-color:#7f98b5;background:#eef4fb}.availability-filter-button .count{font-weight:900}.compact-resource-head,.compact-resource-row{display:grid;grid-template-columns:16px minmax(100px,1.15fr) minmax(80px,.72fr) minmax(110px,1.25fr) auto;gap:9px;align-items:center}.compact-resource-head{padding:6px 7px;border-bottom:1px solid var(--line);font-size:10px;color:var(--muted);font-weight:850;text-transform:uppercase}.compact-resource-row{min-height:43px;padding:6px 7px;border-bottom:1px solid #edf1f4}.compact-resource-row:last-child{border-bottom:0}.compact-resource-row:hover{background:#f8fafc}.compact-resource-name,.compact-resource-status,.compact-resource-job{min-width:0}.compact-resource-name strong,.compact-resource-status strong{display:block;font-size:13px}.compact-resource-name small,.compact-resource-status small,.compact-resource-job small{display:block;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-resource-job{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-resource-actions{display:flex;gap:5px;justify-content:flex-end;align-items:center}.compact-resource-actions .mini-btn{padding:5px 7px;font-size:11px}.compact-availability-panel{padding:12px}.compact-availability-panel .panel-head{margin-bottom:5px}
@media(max-width:780px){.compact-resource-head{display:none}.compact-resource-row{grid-template-columns:14px minmax(0,1fr) auto;gap:7px;padding:8px 5px;align-items:start}.compact-resource-status,.compact-resource-job{grid-column:2/4}.compact-resource-status{display:flex;gap:7px;align-items:baseline}.compact-resource-status small{white-space:normal}.compact-resource-job{white-space:normal}.compact-resource-actions{grid-column:2/4;justify-content:flex-start;flex-wrap:wrap}.availability-filter-button{padding:6px 9px}.availability-summary-bar{gap:6px}.availability-summary-item{padding:5px 8px}}

/* v0.7.7 complete job cards + confirmed/required resource badges + safe resource management + simple resource status tables — Dot | Name/Unit | Type/Role | Status | Current Job */
.availability-grid{grid-template-columns:1fr}
.compact-resource-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:9px;background:#fff;-webkit-overflow-scrolling:touch}
.compact-resource-table{width:100%;min-width:760px;border-collapse:collapse;table-layout:fixed;background:#fff}
.compact-resource-table th{padding:9px 10px;border-bottom:1px solid var(--line);background:#f8fafc;color:var(--text);font-size:12px;font-weight:850;text-align:left;white-space:nowrap}
.compact-resource-table td{padding:9px 10px;border-bottom:1px solid #e8edf2;color:var(--text);font-size:13px;line-height:1.3;vertical-align:middle;white-space:normal;overflow-wrap:anywhere}
.compact-resource-table tbody tr:last-child td{border-bottom:0}
.compact-resource-table tbody tr:hover td{background:#fbfcfd}
.compact-resource-table .resource-dot-column,.compact-resource-table .resource-dot-cell{width:58px;text-align:center}
.compact-resource-table th:nth-child(2){width:20%}
.compact-resource-table th:nth-child(3){width:18%}
.compact-resource-table th:nth-child(4){width:17%}
.compact-resource-table th:nth-child(5){width:auto}
.compact-resource-table .resource-actions-column{width:170px;text-align:right}
.compact-resource-table .status-dot{width:18px;height:18px;box-shadow:inset 0 -1px 2px rgba(0,0,0,.14),0 0 0 1px rgba(0,0,0,.08)}
.compact-resource-table .compact-resource-row{display:table-row;min-height:0;padding:0;border:0}
.compact-resource-table .compact-resource-name,.compact-resource-table .compact-resource-type,.compact-resource-table .compact-resource-status,.compact-resource-table .compact-resource-job,.compact-resource-table .compact-resource-actions{display:table-cell;min-width:0}
.compact-resource-table .compact-resource-name strong,.compact-resource-table .compact-resource-status strong{display:block;font-size:13px}
.compact-resource-table .compact-resource-type{color:#334155}
.compact-resource-table .compact-resource-job{font-size:12px;color:#334155;white-space:normal}
.compact-resource-table .compact-resource-actions{text-align:right;white-space:nowrap}
.compact-resource-table .compact-resource-actions .mini-btn{display:inline-block;margin-left:4px;padding:5px 7px;font-size:11px}
.compact-availability-panel{padding:13px}

@media(max-width:780px){
  .compact-resource-table{min-width:690px}
  .compact-resource-table th,.compact-resource-table td{padding:8px 8px;font-size:12px}
  .compact-resource-table .resource-actions-column{width:145px}
  .compact-resource-table .compact-resource-row{display:table-row;grid-template-columns:none;padding:0}
  .compact-resource-table .compact-resource-status,.compact-resource-table .compact-resource-job,.compact-resource-table .compact-resource-actions{grid-column:auto}
  .compact-resource-table .compact-resource-status{display:table-cell}
  .compact-resource-table .compact-resource-actions{display:table-cell;text-align:right}
  .compact-resource-table .status-dot{width:16px;height:16px}
}

.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* v0.7.7: Daily Operations order is Needs Attention, Today, Tomorrow, then availability. */
#view-daily .daily-job-board{margin-bottom:20px}
#view-daily .daily-summary-panel{margin-top:0;margin-bottom:20px}

/* v0.7.7 — safe Employee and Equipment removal/restoration. */
.archived-row td{background:#f5f7f9;color:#66727e}
.archived-row strong{text-decoration:line-through;text-decoration-thickness:1px}
.archived-row:hover td{background:#eef2f5}

@media(max-width:700px){.job-card-details{grid-template-columns:1fr}.job-card-contact{grid-column:auto}}

/* v0.7.7 — explicit date-based Employee / Equipment availability planning. */
.availability-date-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:14px 0 8px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f8fbfe}
.availability-date-copy{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.availability-date-copy strong{font-size:13px}.availability-date-label{font-size:14px;font-weight:850;color:var(--ink)}
.availability-date-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.availability-date-button.active{background:#e7f0fb;border-color:#7397bd;box-shadow:inset 0 0 0 1px #7397bd}.availability-date-picker{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:750;color:var(--muted)}.availability-date-picker input{min-width:145px}
.resource-page-date-panel{margin:0 0 10px}.job-card-actions{display:flex;justify-content:flex-end;margin-top:8px}.check-availability-button{font-weight:800}
@media(max-width:780px){.availability-date-panel{align-items:stretch}.availability-date-copy{width:100%}.availability-date-controls{width:100%}.availability-date-controls .btn{flex:1 1 auto}.availability-date-picker{width:100%;justify-content:space-between}.availability-date-picker input{flex:1;min-width:0}.job-card-actions{justify-content:flex-start}}

/* v0.7.7.7 */
.timesheet-date-col{width:72px;min-width:72px;max-width:72px;white-space:nowrap}.availability-grid{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}

/* v0.7.8.0 — stronger scan-friendly operations headings */
.section-title{display:inline-block;margin:0;font-size:20px!important;font-weight:900!important;letter-spacing:.01em;padding:4px 10px 5px;border-radius:8px}
.section-title.normal{color:#176d28;background:#e8f6eb;border-left:4px solid #238636}
.section-title.attention{color:#8a3e08;background:#fff1dd;border-left:4px solid #d97706}
#view-daily .panel-head{border-bottom:1px solid #e4e9ee;padding-bottom:8px}
#view-dashboard .panel-head{border-bottom:1px solid #e4e9ee;padding-bottom:8px}
@media(max-width:780px){.section-title{font-size:18px!important}.drawer{width:100vw}}

/* v0.7.8.1 employee profiles */
.modal.employee-profile-modal{width:min(1280px,98vw)}
.employee-name-link{appearance:none;border:0;background:none;padding:0;color:#174f7c;font:inherit;font-weight:850;cursor:pointer;text-align:left}.employee-name-link:hover{text-decoration:underline}
.employee-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.employee-profile-section{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.employee-profile-section h3{margin:0 0 9px;color:#176b48}.qualification-row{display:grid;grid-template-columns:1.2fr .8fr .8fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #edf1f4}.qualification-row:last-child{border-bottom:0}
.profile-history-table{width:100%;border-collapse:collapse}.profile-history-table th,.profile-history-table td{padding:7px 8px;border-bottom:1px solid #edf1f4;text-align:left;font-size:12px}
.sensitive-box{border:1px solid #e3b4b4;background:#fff8f8;border-radius:10px;padding:12px}.profile-document-list{display:flex;flex-direction:column;gap:6px}
@media(max-width:780px){.employee-profile-grid{grid-template-columns:1fr}.qualification-row{grid-template-columns:1fr}.modal.employee-profile-modal{width:100%}}

.employee-profile-grid .profile-field{padding:12px 14px}.employee-profile-grid .profile-field strong{display:block;margin-bottom:4px}.employee-profile-section{margin-top:16px}.employee-profile-section h3{font-size:1.25rem;font-weight:800}

.equipment-profile .detail-box small{display:block;margin-top:6px}.equipment-profile .pill{vertical-align:middle}

/* v0.7.8.6 maintenance command centre and clearer actions */
.mini-btn.emphasis{background:#16834b;color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.15)}
.mini-btn.emphasis:hover{background:#11683b}
.mini-btn.emphasis-alt{background:#1769aa;color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.15)}
.mini-btn.emphasis-alt:hover{background:#115486}
.modal{position:relative}.modal-close-x{position:absolute;right:12px;top:10px;border:0;background:#edf1f5;color:#253342;border-radius:999px;width:34px;height:34px;font-size:22px;line-height:1;cursor:pointer;z-index:20}.modal-close-x:hover{background:#dfe6ed}
.modal.employee-profile-modal{width:min(1440px,99vw)}
.maintenance-metrics{grid-template-columns:repeat(5,minmax(130px,1fr))}
.maintenance-resource-row td{vertical-align:middle}.maintenance-resource-row .compact-resource-actions{min-width:290px;flex-wrap:wrap}.maintenance-resource-row .pill{white-space:nowrap}
.brief-section{display:block!important;padding:10px 0;border-bottom:1px solid #e6ebef}.brief-section-head{display:flex;justify-content:space-between;gap:12px}.brief-items{display:grid;gap:5px;margin-top:7px}.brief-item{border:1px solid #dfe6ed;background:#fff;border-radius:8px;padding:8px 10px;text-align:left;color:inherit}.brief-item.clickable{cursor:pointer}.brief-item.clickable:hover{border-color:#8fb4d0;background:#f5fbff}.brief-item strong,.brief-item small{display:block}.brief-item small{color:var(--muted);margin-top:2px}
@media(max-width:1100px){.maintenance-metrics{grid-template-columns:repeat(2,minmax(130px,1fr))}.compact-resource-table{min-width:1200px}}

/* v0.7.8.6 maintenance command-centre layout */
#view-equipment .maintenance-metrics{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;margin:0 0 16px}
#view-equipment .maintenance-metrics .metric-card{min-height:92px;border-top:4px solid #2f7d4a}
#view-equipment .compact-resource-table-wrap{overflow-x:auto}
#view-equipment .equipment-top-scroll{width:100%;height:22px;margin:0 0 6px;overflow-x:auto;overflow-y:hidden;border:1px solid #d6e1e9;border-radius:8px;background:#f7fafc;scrollbar-gutter:stable}
#view-equipment .equipment-top-scroll-inner{height:1px}
#view-equipment .equipment-top-scroll:focus-visible{outline:3px solid rgba(47,120,171,.25);outline-offset:2px}
#view-equipment .compact-resource-table{min-width:1380px;table-layout:auto}
#view-equipment .compact-resource-table th{white-space:nowrap;font-size:.78rem;letter-spacing:.02em}
#view-equipment .maintenance-resource-row td{min-width:110px}
#view-equipment .maintenance-resource-row td:nth-child(2){min-width:100px;font-weight:700}
#view-equipment .maintenance-resource-row td:nth-child(5){min-width:150px}
#view-equipment .maintenance-resource-row td:nth-child(9){min-width:170px}
#view-equipment .maintenance-resource-row td:last-child{min-width:310px}
@media(max-width:1100px){#view-equipment .maintenance-metrics{grid-template-columns:repeat(2,minmax(150px,1fr))}}

/* v0.7.8.6 maintenance clarity */
.equipment-profile .detail-box label{display:block;margin-bottom:7px;font-weight:700;color:#53606a}.equipment-profile .detail-box strong{display:block;margin-top:2px}.text-bad{color:#b42318;font-weight:800}.maintenance-open-row{background:rgba(245,158,11,.06)}.maintenance-resource-row td:nth-child(5){font-weight:700}.maintenance-resource-row td:nth-child(5):has(+ td){}

/* v0.7.8.7 work orders */
.work-order-list{display:grid;gap:10px}.work-order-row{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid #e3e8e5;border-radius:10px;padding:12px;background:#fff}.work-order-row small{display:block;margin-top:6px}.work-order-part-row{display:grid;grid-template-columns:1fr 1.6fr .65fr 1fr .8fr auto;gap:8px;align-items:center;margin:8px 0}.work-order-part-row input{min-width:0}.sticky-maintenance-modal .work-order-part-row{width:100%}@media(max-width:1000px){.work-order-part-row{grid-template-columns:1fr 1fr}.work-order-row{align-items:flex-start;flex-direction:column}}


/* v0.7.8.8 compact operations cleanup */
.timesheet-date-col{width:92px!important;min-width:92px!important;max-width:92px!important;white-space:nowrap!important}
#view-timesheets .compact-resource-table th:first-child,#view-timesheets .compact-resource-table td:first-child{min-width:130px;width:130px}
#view-timesheets .compact-resource-table th:nth-child(7),#view-timesheets .compact-resource-table td:nth-child(7){min-width:130px}
#view-timesheets .compact-resource-table th:nth-child(8),#view-timesheets .compact-resource-table td:nth-child(8){min-width:110px}
#view-timesheets .pill{white-space:nowrap;display:inline-block}
#view-daily .availability-grid{align-items:start}
#view-daily .compact-availability-panel{max-height:430px;overflow:hidden}
#view-daily .compact-resource-table-wrap{max-height:330px;overflow:auto}
#view-daily .compact-resource-table{min-width:650px}
#view-daily .compact-resource-table .compact-resource-job{min-width:180px;word-break:normal;overflow-wrap:normal}
#view-daily .compact-resource-table .compact-resource-name{min-width:125px}
.maintenance-metric-button{appearance:none;width:100%;text-align:left;cursor:pointer;color:inherit;font:inherit}
.maintenance-metric-button:hover,.maintenance-metric-button.active{box-shadow:0 0 0 2px #6fa887;background:#f4fbf6}


/* v0.8.0.0 — payroll entry safety + readable timesheet columns */
.timesheet-table{width:100%;table-layout:fixed;min-width:1180px}
.timesheet-table th,.timesheet-table td{vertical-align:top}
.timesheet-table th:nth-child(1),.timesheet-table td:nth-child(1){width:92px}
.timesheet-table th:nth-child(2),.timesheet-table td:nth-child(2){width:82px}
.timesheet-table th:nth-child(3),.timesheet-table td:nth-child(3){width:160px}
.timesheet-table th:nth-child(4),.timesheet-table td:nth-child(4){width:145px}
.timesheet-table th:nth-child(5),.timesheet-table td:nth-child(5){width:58px}
.timesheet-table th:nth-child(6),.timesheet-table td:nth-child(6){width:190px}
.timesheet-table th:nth-child(7),.timesheet-table td:nth-child(7){width:128px}
.timesheet-table th:nth-child(8),.timesheet-table td:nth-child(8){width:118px}
.timesheet-table th:nth-child(9),.timesheet-table td:nth-child(9){width:170px}
.timesheet-employee-col{white-space:normal!important}
.timesheet-worker-name{display:inline-flex;flex-direction:column;line-height:1.25;white-space:normal}
.timesheet-date-col{width:82px!important;min-width:82px!important;max-width:82px!important;white-space:normal!important;line-height:1.25}
.timesheet-table td:nth-child(3),.timesheet-table td:nth-child(4),.timesheet-table td:nth-child(6){white-space:normal;overflow-wrap:anywhere}
.timesheet-table td:nth-child(7) .pill,.timesheet-table td:nth-child(8) .pill{white-space:normal;display:inline-block;line-height:1.2}
.timesheet-table td:nth-child(9) .inline-actions{display:grid;grid-template-columns:1fr;gap:6px;align-items:start}
.timesheet-table td:nth-child(9) .mini-btn{width:100%;white-space:normal;line-height:1.2}
@media(max-width:780px){
  .timesheet-table{min-width:0;table-layout:auto}
  .timesheet-table th,.timesheet-table td{width:auto!important;min-width:0!important;max-width:none!important}
  .timesheet-table td:nth-child(9) .inline-actions{display:flex}
  .timesheet-table td:nth-child(9) .mini-btn{width:auto}
}


/* v0.8.0.0 — fit all payroll columns on normal laptop screens */
.timesheet-table{min-width:900px!important}
.timesheet-table th:nth-child(1),.timesheet-table td:nth-child(1){width:70px!important}
.timesheet-table th:nth-child(2),.timesheet-table td:nth-child(2){width:70px!important}
.timesheet-table th:nth-child(3),.timesheet-table td:nth-child(3){width:130px!important}
.timesheet-table th:nth-child(4),.timesheet-table td:nth-child(4){width:115px!important}
.timesheet-table th:nth-child(5),.timesheet-table td:nth-child(5){width:50px!important}
.timesheet-table th:nth-child(6),.timesheet-table td:nth-child(6){width:155px!important}
.timesheet-table th:nth-child(7),.timesheet-table td:nth-child(7){width:105px!important}
.timesheet-table th:nth-child(8),.timesheet-table td:nth-child(8){width:90px!important}
.timesheet-table th:nth-child(9),.timesheet-table td:nth-child(9){width:115px!important}
.timesheet-table th,.timesheet-table td{padding-left:7px!important;padding-right:7px!important}
.timesheet-table td{font-size:12px}
.timesheet-table th{font-size:11px}
.timesheet-table .mini-btn{padding:5px 6px;font-size:10.5px}


/* v0.8.0.0 — safer payroll job selection and Manager Approve All review */
.payroll-override-row{border:1px solid #e6c978;background:#fff9e8;border-radius:9px;padding:10px}
.payroll-override-row .sub{display:block;margin-top:5px;color:var(--muted)}
.approval-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.approval-summary>div{border:1px solid var(--line);border-radius:10px;padding:12px;background:#f7fafc}
.approval-summary strong{display:block;font-size:24px}.approval-summary span{font-size:12px;color:var(--muted);font-weight:750}
.approval-review-table-wrap{overflow:auto;max-height:52vh;border:1px solid var(--line);border-radius:10px}
.approval-review-table{width:100%;border-collapse:collapse;min-width:720px}
.approval-review-table th,.approval-review-table td{padding:8px 9px;border-bottom:1px solid #edf1f4;text-align:left;vertical-align:top;font-size:12px}
.approval-review-table th{position:sticky;top:0;background:#f4f7fa;z-index:1;font-size:11px;text-transform:uppercase;color:var(--muted)}
.approval-review-table .hours-cell{text-align:right;font-weight:850}
.manager-approval-review .modal-actions{position:sticky;bottom:-18px;background:#fff;padding-top:12px;padding-bottom:2px}


/* v0.8.0.0 — multi-role workflow, clearer payroll/billing, resizable navigation */

/* Resizable desktop sidebar */
.sidebar{position:sticky}
.sidebar-resize-handle{position:absolute;top:0;right:-5px;width:10px;height:100%;cursor:col-resize;z-index:95;touch-action:none}
.sidebar-resize-handle:after{content:"";position:absolute;top:0;bottom:0;left:4px;width:2px;background:transparent;transition:background .15s}
.sidebar-resize-handle:hover:after,.sidebar-resize-handle:active:after{background:#7fa9cf}
.app-shell.sidebar-collapsed .sidebar-resize-handle{display:none}
body.sidebar-resizing{cursor:col-resize;user-select:none}
@media(max-width:780px){.sidebar-resize-handle{display:none}.app-shell{--sidebar-width:270px}}

/* More readable Timesheet command metrics */
#timesheetMetrics{grid-template-columns:repeat(5,minmax(120px,1fr));gap:12px;margin-bottom:14px}
.timesheet-metric{position:relative;overflow:hidden;border-width:2px;box-shadow:0 4px 14px rgba(27,45,61,.08);min-height:118px}
.timesheet-metric:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px}
.timesheet-metric .label{font-weight:850;color:#344353}
.timesheet-metric .value{font-size:34px}
.timesheet-metric{cursor:pointer;text-align:left;font:inherit;color:inherit}
.timesheet-metric:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(27,45,61,.12)}
.timesheet-metric.active{outline:3px solid rgba(38,102,153,.22);outline-offset:1px;box-shadow:0 7px 20px rgba(27,45,61,.16)}
.timesheet-metric.metric-total{border-color:#b7c4d0;background:#fbfcfd}.timesheet-metric.metric-total:before{background:#708090}
.timesheet-metric.metric-submitted{border-color:#b9d8eb;background:#f7fcff}.timesheet-metric.metric-submitted:before{background:#4386b3}
.timesheet-metric.metric-manager,.timesheet-metric.metric-dispatch-approved{border-color:#efd49c;background:#fffaf0}.timesheet-metric.metric-manager:before,.timesheet-metric.metric-dispatch-approved:before{background:#d99216}
.timesheet-metric.metric-ready,.timesheet-metric.metric-approved{border-color:#b8dec3;background:#f5fbf7}.timesheet-metric.metric-ready:before,.timesheet-metric.metric-approved:before{background:#2e8b57}
.timesheet-metric.metric-complete,.timesheet-metric.metric-processed{border-color:#a9d5b7;background:#f1faf4}.timesheet-metric.metric-complete:before,.timesheet-metric.metric-processed:before{background:#19733e}
@media(max-width:1200px){#timesheetMetrics{grid-template-columns:repeat(3,minmax(130px,1fr))}}
@media(max-width:780px){#timesheetMetrics{grid-template-columns:1fr 1fr}.timesheet-metric{min-height:100px}.timesheet-metric .value{font-size:29px}}

/* Compact, conditional Extra Work handoff on Timesheets */
.timesheet-extra-work-helper{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:8px 11px;border:1px solid #efcf8e;border-left:4px solid #d99216;border-radius:8px;background:#fffaf0;color:#6e4a12;font-size:11px;line-height:1.35}
.timesheet-extra-work-helper.hidden{display:none}
.timesheet-extra-work-helper strong{margin-right:5px}.timesheet-extra-work-helper .mini-btn{flex:0 0 auto;min-height:30px}

/* Dedicated Billing Review */
.billing-review-panel{border-top:4px solid #d97706}
.billing-metrics{grid-template-columns:repeat(6,minmax(120px,1fr));margin:12px 0 18px}
.billing-metric{border-width:2px;box-shadow:0 3px 12px rgba(27,45,61,.06)}
.billing-metric.metric-review{border-color:#efcf8e;background:#fffaf0}
.billing-metric.metric-invoicecorrection{border-color:#e6b6a6;background:#fff7f3}
.billing-metric.metric-ready{border-color:#b8dec3;background:#f5fbf7}
.billing-metric.metric-invoiced{border-color:#9fd1af;background:#eff9f2}
.billing-metric.metric-notbillable{border-color:#c9d0d7;background:#f7f8f9}
.billing-review-list{display:grid;gap:12px}
.billing-review-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;border:1px solid var(--line);border-left:6px solid #d97706;border-radius:12px;padding:14px 16px;background:#fff;box-shadow:0 2px 8px rgba(27,45,61,.05)}
.billing-review-card.status-ready-to-invoice{border-left-color:#2e8b57}
.billing-review-card.status-invoiced{border-left-color:#19733e}
.billing-review-card.status-not-billable{border-left-color:#8996a3}
.billing-review-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:16px}
.billing-review-job{margin-top:7px;color:#334454}
.billing-review-activity{margin-top:5px}
.billing-review-meta{margin-top:6px;color:var(--muted);font-size:12px;line-height:1.4}
.billing-review-side{display:grid;justify-items:end;gap:10px;min-width:220px}
.billing-status-label{display:inline-flex;border-radius:8px;padding:7px 10px;font-size:12px;font-weight:850;border:1px solid #cfd7de;background:#f6f8fa;color:#344353}
.billing-status-label.warning{border-color:#e8c575;background:#fff6dc;color:#745100}
.billing-status-label.good{border-color:#acd7b8;background:#eef9f1;color:#176d28}
.billing-review-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.billing-action{min-height:36px;padding:8px 11px;font-size:12px}
@media(max-width:900px){.billing-review-card{grid-template-columns:1fr}.billing-review-side{justify-items:start;min-width:0}.billing-review-actions{justify-content:flex-start}.billing-metrics{grid-template-columns:repeat(2,minmax(130px,1fr))}}

/* Manager Approve All — full review width without side-to-side scrolling */
.modal.manager-approval-modal{width:min(1180px,96vw);max-height:92vh}
.manager-approval-modal .approval-review-table-wrap{overflow-y:auto;overflow-x:hidden;max-height:58vh}
.manager-approval-modal .approval-review-table{width:100%;min-width:0!important;table-layout:fixed}
.manager-approval-modal .approval-review-table th,.manager-approval-modal .approval-review-table td{white-space:normal;overflow-wrap:anywhere;line-height:1.3;padding:8px 7px}
.manager-approval-modal .approval-review-table th:nth-last-child(1),.manager-approval-modal .approval-review-table td:nth-last-child(1){width:70px;text-align:right}
.manager-approval-modal .approval-review-table th:nth-child(2),.manager-approval-modal .approval-review-table td:nth-child(2){width:16%}
.manager-approval-modal .approval-review-table th:nth-child(3),.manager-approval-modal .approval-review-table td:nth-child(3){width:12%}
.manager-approval-modal .approval-review-table th:nth-child(4),.manager-approval-modal .approval-review-table td:nth-child(4){width:24%}
.manager-approval-modal .approval-review-table th:nth-child(5),.manager-approval-modal .approval-review-table td:nth-child(5){width:26%}

/* Payroll entry/correction should remain stable until Save, Cancel or X */
.modal.payroll-adjust-modal,.modal.payroll-entry-modal{width:min(820px,94vw);max-height:92vh}
.modal.payroll-adjust-modal{box-shadow:0 28px 80px rgba(0,0,0,.36)}
.modal-backdrop.explicit-close-modal{cursor:default}
.modal-backdrop.explicit-close-modal:after{content:"";position:fixed;inset:0;pointer-events:none}

/* Work role entry help */
#wkRoles + small{line-height:1.4}


/* v0.8.1.0 — clearer command surfaces without visual clutter */

/* Sidebar can go narrower while staying readable */
.app-shell.sidebar-narrow .sidebar{padding-left:7px;padding-right:7px}
.app-shell.sidebar-narrow .nav-link,.app-shell.sidebar-narrow .sidebar-collapse{gap:7px;padding-left:8px;padding-right:8px;font-size:12px}
.app-shell.sidebar-narrow .nav-icon,.app-shell.sidebar-narrow .collapse-icon{width:18px;flex-basis:18px}
.app-shell.sidebar-narrow .nav-text{line-height:1.15}

/* Clickable Daily Operations summary shortcuts */
.availability-summary-button{appearance:none;border:1px solid transparent;background:transparent;border-radius:999px;padding:7px 10px;cursor:pointer;font:inherit;color:inherit;transition:background .15s,border-color .15s,box-shadow .15s}
.availability-summary-button:hover{background:#f4f8fb;border-color:#cbd8e3}
.availability-summary-button.active{background:#e8f2fb;border-color:#7ba6c8;box-shadow:0 0 0 2px rgba(64,122,168,.10)}
.availability-summary-button strong{font-weight:900}

/* Simplified Job Readiness */
.job-readiness{display:flex;align-items:center;justify-content:space-between;gap:14px;border:2px solid var(--line);border-radius:12px;padding:13px 15px;margin:13px 0}
.job-readiness>div{display:grid;gap:3px}.job-readiness strong{font-size:16px}.job-readiness span{font-size:12px;color:var(--muted)}
.job-readiness.readiness-ready{border-color:#8fc5a0;background:#eff9f2}.job-readiness.readiness-ready strong{color:#176d28}
.job-readiness.readiness-pending{border-color:#e7cb8d;background:#fffaf0}.job-readiness.readiness-pending strong{color:#7a5200}
.job-readiness.readiness-attention{border-color:#e4ad8d;background:#fff6f1}.job-readiness.readiness-attention strong{color:#9a4a18}
.requirement-card-list{display:grid;gap:11px}
.requirement-card{border:1px solid var(--line);border-left:6px solid #aeb9c4;border-radius:12px;background:#fff;padding:13px 14px}
.requirement-card.requirement-needs{border-left-color:#d97706;background:#fffcf7}
.requirement-card.requirement-waiting{border-left-color:#4789bb;background:#f8fcff}
.requirement-card.requirement-confirmed{border-left-color:#2f8b4c;background:#f7fcf8}
.requirement-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.requirement-title-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap;font-size:16px}
.requirement-state{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:850}
.requirement-state.state-needs{background:#fff0cc;color:#7a5200}
.requirement-state.state-waiting{background:#e2f1fb;color:#245f88}
.requirement-state.state-confirmed{background:#ddf4e2;color:#176d28}
.requirement-resources{display:grid;gap:7px;margin-top:10px}.requirement-resources .assignment-row{background:rgba(255,255,255,.8)}
.requirement-empty{color:var(--muted);font-size:13px;padding:8px 0}
.requirement-details{margin-top:8px}.requirement-details summary,.unlinked-assignments summary{cursor:pointer;color:#53606c;font-size:12px;font-weight:750}
.requirement-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(75px,1fr));gap:7px;margin:9px 0}
.requirement-detail-grid>div{border:1px solid #e2e7eb;border-radius:8px;padding:7px;text-align:center;background:#fff}
.requirement-detail-grid strong,.requirement-detail-grid span{display:block}.requirement-detail-grid span{font-size:10px;color:var(--muted);text-transform:uppercase}
.details-actions{margin-top:8px}.secondary-assignment-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px dashed #dce3e8}
.requirement-fill-button{min-height:35px;padding:8px 11px;font-size:12px}
@media(max-width:780px){.requirement-card-head,.job-readiness{align-items:flex-start;flex-direction:column}.requirement-detail-grid{grid-template-columns:1fr 1fr}}

/* Equipment command cards — stronger but restrained */
#view-equipment .maintenance-metrics .metric-card{border-width:2px;border-top-width:5px;box-shadow:0 4px 14px rgba(27,45,61,.07);transition:transform .12s,box-shadow .12s}
#view-equipment .maintenance-metrics .metric-card:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(27,45,61,.10)}
#view-equipment [data-maint-focus="service"]{border-color:#d3ad58;background:#fffaf0}
#view-equipment [data-maint-focus="monthly"]{border-color:#d4bd6b;background:#fffdf4}
#view-equipment [data-maint-focus="cvip"]{border-color:#76a6c8;background:#f5fbff}
#view-equipment [data-maint-focus="repairs"]{border-color:#d08b75;background:#fff7f4}
#view-equipment [data-maint-focus="out"]{border-color:#cc7777;background:#fff6f6}
#view-equipment .maintenance-metric-button.active{box-shadow:0 0 0 3px rgba(39,105,154,.15),0 5px 14px rgba(27,45,61,.08)}
#view-equipment .maintenance-metrics .value{font-size:30px}

/* Employee profile top fields */
.employee-profile-grid .detail-box{padding:13px 15px!important;min-height:76px}
.employee-profile-grid .detail-box label{display:block!important;margin:0 0 6px!important;color:#687684;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.03em}
.employee-profile-grid .detail-box strong{display:block!important;margin:0!important;font-size:14px;line-height:1.35;color:#253342}
.employee-profile-grid{row-gap:12px}

/* Billing Review controls and history/export clarity */
.billing-job-link{appearance:none;border:0;background:none;padding:0;color:#1769aa;font:inherit;font-weight:900;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.billing-job-link:hover{color:#0e4f84}
.exported-badge{display:inline-flex;border-radius:6px;padding:2px 6px;background:#edf1f5;color:#52606c;font-weight:750}
.billing-single-review{border:1px solid var(--line);border-radius:10px;padding:12px;background:#f8fafc;display:grid;gap:5px;margin:12px 0}
.billing-single-review span{font-size:12px;color:var(--muted)}.billing-single-review p{margin:2px 0 0}
.worker-role-grid{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:9px;padding:8px}


/* v0.8.2.0 — Combined Owner View readability and clearer interactive controls */

/* Daily Operations top availability command bar */
.availability-summary-bar{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px!important;
  margin:12px 0 14px!important;
}
.availability-summary-group{
  border:1px solid #d7e0e7;
  border-radius:12px;
  background:#fbfcfd;
  padding:9px 10px 10px;
  box-shadow:0 2px 8px rgba(27,45,61,.05);
}
.availability-summary-group-title{
  display:block;
  margin:0 0 7px;
  font-size:12px;
  color:#40505f;
  text-transform:uppercase;
  letter-spacing:.035em;
}
.availability-summary-pills{display:flex;gap:6px;flex-wrap:wrap}
.availability-summary-button{
  appearance:none;
  display:inline-flex!important;
  align-items:center;
  gap:6px;
  border:1px solid #cbd6df!important;
  border-radius:999px!important;
  background:#fff!important;
  padding:7px 10px!important;
  color:#344353;
  font-size:11.5px;
  font-weight:750;
  cursor:pointer;
  box-shadow:0 1px 2px rgba(27,45,61,.04);
  transition:border-color .14s,background .14s,box-shadow .14s,transform .14s;
}
.availability-summary-button:hover{
  border-color:#8eabc2!important;
  background:#f4f9fd!important;
  box-shadow:0 2px 7px rgba(27,45,61,.08);
  transform:translateY(-1px);
}
.availability-summary-button.active{
  border-color:#4c87b3!important;
  background:#e8f3fb!important;
  box-shadow:0 0 0 2px rgba(60,124,172,.12);
}
.availability-summary-button strong{font-size:13px;font-weight:950}
@media(max-width:900px){.availability-summary-bar{grid-template-columns:1fr!important}}

/* Local availability filter rows stay visible in every resource section */
.daily-equipment-availability .availability-filter-bar,
.daily-truck-availability .availability-filter-bar,
.daily-trailer-availability .availability-filter-bar{display:flex}
.availability-filter-button{box-shadow:0 1px 2px rgba(27,45,61,.04)}
.availability-filter-button:hover{border-color:#90a9bf;background:#f6f9fc}
.availability-filter-button.active{border-color:#5488b2;background:#eaf3fa;box-shadow:0 0 0 2px rgba(60,124,172,.09)}

/* Availability table space allocation */
.daily-worker-availability .compact-resource-table{min-width:650px}
.daily-worker-availability .compact-resource-table th:nth-child(2){width:17%}
.daily-worker-availability .compact-resource-table th:nth-child(3){width:22%}
.daily-worker-availability .compact-resource-table th:nth-child(4){width:14%}
.daily-worker-availability .compact-resource-table th:nth-child(5){width:25%}
.daily-worker-availability .compact-resource-table .resource-actions-column{width:88px}
.daily-worker-availability .compact-resource-name,
.daily-worker-availability .employee-name-link{
  white-space:normal!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  line-height:1.15;
}
.daily-worker-availability .employee-name-link{max-width:92px;text-align:left}
.daily-worker-availability .compact-resource-job{
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:normal!important;
  word-break:keep-all!important;
  min-width:145px;
}

.daily-equipment-availability .compact-resource-table,
.daily-truck-availability .compact-resource-table,
.daily-trailer-availability .compact-resource-table{min-width:620px}
.daily-equipment-availability .compact-resource-table th:nth-child(2),
.daily-truck-availability .compact-resource-table th:nth-child(2),
.daily-trailer-availability .compact-resource-table th:nth-child(2){width:13%}
.daily-equipment-availability .compact-resource-table th:nth-child(3),
.daily-truck-availability .compact-resource-table th:nth-child(3),
.daily-trailer-availability .compact-resource-table th:nth-child(3){width:23%}
.daily-equipment-availability .compact-resource-table th:nth-child(4),
.daily-truck-availability .compact-resource-table th:nth-child(4),
.daily-trailer-availability .compact-resource-table th:nth-child(4){width:14%}
.daily-equipment-availability .compact-resource-table th:nth-child(5),
.daily-truck-availability .compact-resource-table th:nth-child(5),
.daily-trailer-availability .compact-resource-table th:nth-child(5){width:29%}
.daily-equipment-availability .compact-resource-table .resource-actions-column,
.daily-truck-availability .compact-resource-table .resource-actions-column,
.daily-trailer-availability .compact-resource-table .resource-actions-column{width:80px}
.daily-equipment-availability .compact-resource-name,
.daily-truck-availability .compact-resource-name,
.daily-trailer-availability .compact-resource-name{white-space:nowrap}
.daily-equipment-availability .compact-resource-job,
.daily-truck-availability .compact-resource-job,
.daily-trailer-availability .compact-resource-job{
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  overflow-wrap:normal!important;
  word-break:keep-all!important;
  min-width:150px;
}

/* Billing status cards: command shortcuts styled like Timesheets */
.billing-metric{
  appearance:none;
  text-align:left;
  cursor:pointer;
  min-height:112px;
  position:relative;
  overflow:hidden;
  border-width:2px!important;
  box-shadow:0 4px 14px rgba(27,45,61,.08)!important;
  transition:transform .13s,box-shadow .13s,border-color .13s;
}
.billing-metric:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px}
.billing-metric .label{font-weight:900!important;color:#344353!important;font-size:13px}
.billing-metric .value{font-size:34px!important;font-weight:950!important;margin-top:5px}
.billing-metric .hint{font-size:12px}
.billing-metric.metric-review:before{background:#d99216}
.billing-metric.metric-invoicecorrection:before{background:#c65d35}
.billing-metric.metric-ready:before{background:#2e8b57}
.billing-metric.metric-invoiced:before{background:#19733e}
.billing-metric.metric-notbillable:before{background:#7d8995}
.billing-metric:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(27,45,61,.12)!important}
.billing-metric.active{box-shadow:0 0 0 3px rgba(55,115,160,.17),0 6px 18px rgba(27,45,61,.10)!important;border-color:#5c8fb6!important}

/* Billing manager/invoice confirmation context */
.billing-review-context{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.billing-review-context span{display:grid;gap:3px;border:1px solid #e1e7ec;border-radius:8px;padding:8px;background:#fff}
.billing-review-context span strong{font-size:10px;color:#687684;text-transform:uppercase;letter-spacing:.03em}
.important-explainer{border:2px solid #e5c36b;background:#fff9e7;border-radius:10px;padding:11px 13px;margin:10px 0}
.important-explainer p{margin:5px 0 0;line-height:1.45}
.billing-status-confirm label{display:grid;gap:6px;font-weight:750;margin-top:10px}
.billing-status-confirm textarea{min-height:82px}
.billing-decision-options{display:grid;gap:10px;margin:14px 0;padding:12px;border:1px solid #d8e1e7;border-radius:10px;background:#f8fafb}
.billing-decision-options legend{padding:0 6px;font-size:13px;font-weight:900;color:#344b5b}
.billing-status-confirm .billing-decision-option{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;margin:0;padding:11px;border:1px solid #d8e1e7;border-radius:9px;background:#fff;cursor:pointer}
.billing-decision-option:has(input:checked){border-color:#4d8eb7;background:#edf7fd;box-shadow:inset 4px 0 #327aa7}
.billing-decision-option input{width:18px;height:18px;margin:2px 0 0}
.billing-decision-option span{display:grid;gap:4px;min-width:0}.billing-decision-option strong,.billing-decision-option small{display:block;overflow-wrap:anywhere}.billing-decision-option small{font-weight:500;color:#63727d;line-height:1.35}
@media(max-width:780px){.billing-review-context{grid-template-columns:1fr}}

/* Job Overview matches the simplified resource/readiness design */
.job-overview-panel{border-top:4px solid #4d7fa7;padding-top:14px}
.job-overview-panel>.panel-head{align-items:flex-start}
.job-overview-panel>.panel-head h2{font-size:21px}
.job-overview-panel>.panel-head p{margin:4px 0 0}
.job-overview-primary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px}
.job-overview-secondary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.job-overview-panel .detail-box{
  border:1px solid #dce4ea;
  border-radius:10px;
  padding:12px 13px;
  background:#fbfcfd;
  min-height:70px;
}
.job-overview-primary .detail-box{border-color:#c7d9e7;background:#f7fbfe}
.job-overview-panel .detail-box .k{font-size:10px!important;font-weight:900!important;color:#687684!important;text-transform:uppercase;letter-spacing:.035em;margin-bottom:6px}
.job-overview-panel .detail-box .v{font-size:14px!important;font-weight:800!important;line-height:1.35}
.job-overview-notes{margin-top:10px;border:1px solid #e0e6ea;border-radius:9px;background:#fff;padding:10px 12px}
.job-overview-notes p{margin:4px 0 0}
@media(max-width:1100px){.job-overview-primary{grid-template-columns:repeat(2,1fr)}.job-overview-secondary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.job-overview-primary,.job-overview-secondary{grid-template-columns:1fr}}

/* Job lifecycle banners after Dispatch / Start / Complete */
.job-readiness.readiness-dispatched{border-color:#76a6c8;background:#f3f9fd}.job-readiness.readiness-dispatched strong{color:#245f88}
.job-readiness.readiness-progress{border-color:#72b18a;background:#f2faf5}.job-readiness.readiness-progress strong{color:#176d28}
.job-readiness.readiness-completed{border-color:#9fc9ad;background:#f0f8f2}.job-readiness.readiness-completed strong{color:#176d28}
.job-readiness.readiness-cancelled{border-color:#d8a2a2;background:#fff5f5}.job-readiness.readiness-cancelled strong{color:#8c2525}
.job-readonly-notice,.schedule-cancellation-details{display:grid;gap:4px;border:1px solid #e1a9a9;border-left:5px solid #b93535;border-radius:10px;background:#fff5f5;padding:11px 13px;margin:10px 0;color:#672323}.job-readonly-notice strong,.schedule-cancellation-details strong{color:#8c2525}.job-readonly-notice span,.schedule-cancellation-details span{font-size:12px;color:#755252}.schedule-cancellation-details p{margin:1px 0;white-space:pre-wrap;line-height:1.45}.assignment-history-reason{margin-top:5px;padding:5px 7px;border-left:3px solid #c99045;background:#fff9ee;border-radius:4px;color:#6d5129;font-size:11px;line-height:1.35}.assignment-history>summary{cursor:pointer;font-weight:800;color:#526472;margin:10px 0}
.cancel-job-modal .important-explainer{border-color:#e0a8a8;background:#fff6f6}.cancel-job-modal form{display:grid;gap:12px}.cancel-scope-options{display:grid;gap:8px;border:0;padding:0;margin:0}.cancel-scope-options legend{font-weight:800;margin-bottom:5px}.cancel-scope-options label{display:flex;align-items:flex-start;gap:9px;border:1px solid #d8e0e6;border-radius:9px;padding:10px 11px;cursor:pointer;background:#fff}.cancel-scope-options label:has(input:checked){border-color:#b93535;background:#fff6f6;box-shadow:0 0 0 2px rgba(185,53,53,.09)}.cancel-scope-options input{margin-top:3px}.cancel-scope-options span,.cancel-scope-summary{display:grid;gap:3px}.cancel-scope-options small,.cancel-scope-summary span{color:var(--muted);font-size:12px;line-height:1.35}.cancel-scope-summary{border:1px solid #e2b2b2;border-radius:9px;background:#fff7f7;padding:10px 12px}.cancel-reason-label{display:grid;gap:6px;font-weight:800}.cancel-reason-label textarea{min-height:110px}

/* v0.8.3.0 — billing handoff clarity, optional field updates, and stable availability rows */
.compact-resource-table .availability-table-row{display:table-row!important;visibility:visible!important;opacity:1!important}
.compact-resource-table .availability-table-row>td{display:table-cell!important;visibility:visible!important;opacity:1!important}
.daily-worker-availability #workerAvailabilityBoard,.daily-equipment-availability #equipmentAvailabilityBoard{display:table-row-group!important;visibility:visible!important;opacity:1!important}

.field-update-section{margin:10px 0 14px;border:1px solid #dce4ea;border-radius:10px;background:#fafcfd;padding:9px 11px}
.field-update-section>summary{cursor:pointer;font-weight:850;color:#405363;list-style-position:inside}
.field-update-body{display:grid;gap:9px;padding-top:9px}.field-update-body>.mini-btn{justify-self:start}
.empty-state.compact{padding:8px 0;background:transparent;border:0;text-align:left}

.billing-queue-job-link{appearance:none;border:0;background:none;padding:0;color:#174f7c;font:inherit;font-weight:900;cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:2px}
.billing-queue-job-link:hover{color:#0e4f84}
.billing-handoff-complete label,.billing-adjust-modal label,.time-correction-modal label{display:grid;gap:6px;font-weight:750}
.billing-handoff-complete input,.billing-handoff-complete textarea{width:100%}

.billing-hours-summary{display:inline-flex;border:1px solid #cfdbe4;border-radius:999px;background:#f5f9fc;padding:4px 8px;font-size:12px;font-weight:850;color:#3b5265}
.billing-adjusted-badge{display:inline-flex;border-radius:6px;padding:2px 6px;background:#eaf4fb;color:#245f88;font-weight:800}
.time-correction-note{margin-top:5px;border-left:4px solid #d9911b;background:#fff7df;padding:6px 8px;border-radius:6px;color:#6b4b0b}
.billing-review-card.status-time-correction-required{border-left-color:#d9911b;background:#fffdf7}

.job-complete-confirm .important-explainer{margin-bottom:12px}

/* v0.8.4.0 — simpler owner workflow, maintenance, tasks and administration */
.daily-top-metrics{margin:10px 0 14px}.daily-command-card{border:2px solid #d8e2e9!important;background:#fbfdff!important;box-shadow:0 4px 12px rgba(27,45,61,.06)!important}.daily-command-card .value{font-size:32px!important}.daily-command-card:nth-child(2){border-color:#ddb36d!important;background:#fffaf0!important}.daily-command-card:nth-child(3),.daily-command-card:nth-child(4){border-color:#a8cfb7!important;background:#f7fcf8!important}

/* Billing status should feel like the active workspace, not a detached filter. */
#view-billing .billing-filter-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}#view-billing .billing-view-button.active{box-shadow:0 0 0 3px rgba(55,115,160,.16);font-weight:900}.billing-section-heading{border-left:6px solid #5d8fb3;padding-left:12px}.time-correction-note{border-left-color:#c83232!important;background:#fff1f1!important;color:#7d1f1f!important}.billing-review-card.status-time-correction-required{border-left-color:#c83232!important;background:#fff8f8!important}

/* Equipment table: compact identity/status columns, room only where long content needs it. */
#view-equipment .compact-resource-table{min-width:980px!important;table-layout:auto}#view-equipment .maintenance-resource-row td{min-width:0!important;padding:7px 6px!important;white-space:nowrap}#view-equipment .maintenance-resource-row td:nth-child(1){width:24px!important;padding-right:2px!important}#view-equipment .maintenance-resource-row td:nth-child(2){width:64px!important}#view-equipment .maintenance-resource-row td:nth-child(3){width:92px!important;white-space:normal}#view-equipment .maintenance-resource-row td:nth-child(4){width:86px!important}#view-equipment .maintenance-resource-row td:nth-child(5){width:125px!important}#view-equipment .maintenance-resource-row td:nth-child(6),#view-equipment .maintenance-resource-row td:nth-child(7){width:90px!important}#view-equipment .maintenance-resource-row td:nth-child(8){width:74px!important}#view-equipment .maintenance-resource-row td:nth-child(9){min-width:150px!important;white-space:normal}#view-equipment .maintenance-resource-row td:last-child{min-width:250px!important}.maintenance-resource-row .compact-resource-actions{min-width:0!important;gap:4px!important}.maintenance-resource-row .mini-btn{padding:5px 7px!important;font-size:10px!important}.maintenance-metric-button.active{transform:translateY(-1px);border-width:2px!important;box-shadow:0 0 0 3px rgba(62,117,156,.18),0 6px 15px rgba(27,45,61,.10)!important}

/* Equipment profile and maintenance forms. */
.equipment-profile-head{border-bottom:2px solid #dce6ed;padding-bottom:12px;margin-bottom:12px}.equipment-profile-title{font-size:28px!important;line-height:1.15;color:#235f89;margin:0}.equipment-identity-grid .detail-box{min-height:82px;background:#f8fbfd;border:1px solid #d5e1ea}.equipment-identity-grid .detail-box strong{font-size:17px!important}.equipment-identity-grid .identity-status strong{color:#237344}.readonly-generated{background:#f2f5f7!important;color:#5a6772!important;font-style:italic}.maintenance-field-hidden{display:none!important}.sticky-maintenance-modal .modal-actions,.work-order-sticky-actions,.sticky-record-actions{position:sticky;bottom:0;z-index:5;background:#fff;border-top:1px solid #d9e2e8;padding:12px 0 3px;margin-top:14px;box-shadow:0 -8px 15px rgba(255,255,255,.9)}.work-order-parts-head,.work-order-part-row{display:grid;grid-template-columns:1.05fr 1.55fr .6fr 1.15fr .85fr auto;gap:6px;align-items:center}.work-order-parts-head{font-size:10px;font-weight:850;text-transform:uppercase;color:#65727e;padding:5px 2px}.work-order-part-row{margin:5px 0}.delete-work-order-confirm .important-explainer{border-color:#e0a8a8;background:#fff6f6}

/* Employee profile: stronger identity hierarchy and compact history. */
.employee-profile-head{border-bottom:2px solid #dce6ed;padding-bottom:12px;margin-bottom:12px}.employee-name-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.employee-name-status h2{font-size:29px!important;line-height:1.1;margin:0;color:#263847}.employee-profile-head p{margin:5px 0 0;color:#5b6873}.employee-identity-grid{grid-template-columns:minmax(150px,.7fr) minmax(150px,.7fr) minmax(260px,1.6fr)!important}.employee-identity-grid .detail-box{background:#f8fbfd;border:1px solid #d5e1ea}.employee-identity-grid .detail-box strong{font-size:16px!important}.employee-profile-notes{border:1px solid #e0e6ea;background:#fbfcfd;border-radius:9px;padding:9px 12px;margin:10px 0}.employee-profile-notes p{margin:4px 0 0}.history-job-link{appearance:none;border:0;background:none;color:#1769aa;text-decoration:underline;text-underline-offset:2px;font:inherit;font-weight:850;cursor:pointer;padding:0}.history-job-link:hover{color:#0e4f84}.profile-history-table td,.profile-history-table th{padding:7px 8px!important}

/* Tasks: priority is display-only; task/job link is the obvious action. */
.task-metric-card{appearance:none;text-align:left;cursor:pointer}.task-metric-card:hover{border-color:#7da4bf;box-shadow:0 4px 12px rgba(27,45,61,.08)}.task-main{display:grid!important;grid-template-columns:auto minmax(190px,.8fr) minmax(220px,1.2fr)!important;align-items:center;gap:10px}.task-title-link{appearance:none;border:0;background:none;padding:0;text-align:left;color:#194f78;cursor:pointer;display:grid;gap:3px}.task-title-link strong{text-decoration:underline;text-underline-offset:2px}.task-job-link-label{font-size:11px;font-weight:800;color:#587184}.task-copy p{margin:0 0 3px}.task-shortcut{border-color:#7aa7c5!important;background:#eef7fd!important;color:#245f88!important}

/* Administration: clickable summary shortcuts and simpler grouped forms. */
.admin-metric{appearance:none;text-align:left;cursor:pointer;min-height:105px;border:2px solid #d8e2e9!important;box-shadow:0 3px 10px rgba(27,45,61,.06)!important}.admin-metric .value{font-size:31px!important}.admin-metric:hover,.admin-metric.active{transform:translateY(-1px);border-color:#6897b9!important;box-shadow:0 0 0 3px rgba(68,126,168,.13),0 5px 14px rgba(27,45,61,.09)!important}.admin-metric-customers{background:#f7fbfe!important}.admin-metric-workers{background:#f8fcf8!important}.admin-metric-equipment{background:#fffaf2!important}.admin-form-section{border-bottom:1px solid #dce4ea;padding:3px 0 6px;margin:2px 0 4px}.admin-form-section h3{margin:0;color:#315c78}.permission-group{border:1px solid #dce4ea;border-radius:10px;padding:10px;margin:8px 0;background:#fbfcfd}.permission-group h3{margin:0 0 8px;color:#315c78}.role-permission-groups .checkbox-option strong{font-size:13px}.compact-role-grid{gap:6px!important}.admin-form-note{background:#f1f6fa;border:1px solid #d6e3ec;border-radius:8px;padding:8px 10px;color:#526574;margin-bottom:8px}

/* v0.8.6.5 Equipment Master workbook preview and guarded import. */
.modal.equipment-import-modal{width:min(1180px,96vw)}.equipment-import-rules{margin:12px 0 16px;padding-left:23px}.equipment-import-rules li{margin:6px 0}.equipment-import-metrics{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:8px;margin:12px 0}.equipment-import-metrics>div{border:1px solid #d8e2e9;border-top:4px solid #7d8995;border-radius:9px;background:#fbfcfd;padding:10px}.equipment-import-metrics>div.good{border-top-color:#238636;background:#f4fbf6}.equipment-import-metrics>div.info{border-top-color:#4386b3;background:#f4faff}.equipment-import-metrics>div.warning{border-top-color:#d99216;background:#fffaf0}.equipment-import-metrics>div.bad{border-top-color:#c83232;background:#fff7f7}.equipment-import-metrics strong{display:block;font-size:25px;line-height:1.05}.equipment-import-metrics span{display:block;margin-top:5px;font-size:11px;font-weight:800;color:#566674}.equipment-import-table{max-height:46vh;border:1px solid #d8e2e9;border-radius:9px}.equipment-import-table .admin-table{min-width:980px}.equipment-import-table td{vertical-align:top}.equipment-import-issue,.equipment-import-warning{display:block;margin:0 0 4px;padding-left:11px;position:relative;font-size:12px}.equipment-import-issue{color:#922929}.equipment-import-warning{color:#775400}.equipment-import-issue:before,.equipment-import-warning:before{content:"•";position:absolute;left:0}.equipment-import-confirm{margin:14px 0!important;border:2px solid #a9d5b7!important;background:#f1faf4!important;padding:12px!important;border-radius:9px}.equipment-import-confirm input{width:auto!important;margin-right:8px}
.employee-import-rules{margin:12px 0 16px;padding-left:23px}.employee-import-rules li{margin:6px 0}.employee-import-table .admin-table{min-width:1180px}
@media(max-width:780px){.equipment-import-metrics{grid-template-columns:repeat(2,1fr)}.modal.equipment-import-modal{width:100%}.equipment-import-table{max-height:42vh}}

/* v0.8.6.6 fleet-type shortcuts on Equipment & Maintenance. */
.fleet-type-filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 8px;padding:10px 12px;border:1px solid #d6e1e9;border-radius:10px;background:#f7fafc}.fleet-type-filter-label{font-size:12px;color:#536574;text-transform:uppercase;letter-spacing:.04em}.fleet-type-filter-buttons{display:flex;gap:7px;flex-wrap:wrap}.fleet-type-filter-button{appearance:none;display:inline-flex;align-items:center;gap:8px;min-height:36px;border:2px solid #d2dce4;border-radius:999px;background:#fff;padding:6px 12px;color:#31414f;font:inherit;font-size:12px;font-weight:850;cursor:pointer}.fleet-type-filter-button strong{display:inline-grid;place-items:center;min-width:23px;height:23px;border-radius:999px;background:#eaf0f4;font-size:11px}.fleet-type-filter-button:hover{border-color:#83a5bd;background:#f7fbfe}.fleet-type-filter-button.active{border-color:#2f78ab;background:#eaf5fc;color:#174f75;box-shadow:0 0 0 3px rgba(47,120,171,.12)}.fleet-type-truck.active{border-color:#447fbe;background:#edf5fd}.fleet-type-trailer.active{border-color:#8a6caf;background:#f6f1fb}.fleet-type-equipment.active{border-color:#b77a2b;background:#fff6e8}.fleet-type-pickup.active{border-color:#3a8a6b;background:#edf9f4}
@media(max-width:780px){.fleet-type-filter-bar{align-items:flex-start;flex-direction:column}.fleet-type-filter-buttons{width:100%}.fleet-type-filter-button{flex:1 1 calc(50% - 7px);justify-content:space-between}}

@media(max-width:800px){.employee-identity-grid{grid-template-columns:1fr!important}.work-order-parts-head{display:none}.work-order-part-row{grid-template-columns:1fr 1fr}.task-main{grid-template-columns:1fr!important}}

/* v0.8.4.1 usability (retained in later builds) */
.daily-command-card{position:relative;text-align:left;cursor:pointer;width:100%;font:inherit}.daily-command-card:hover,.daily-command-card:focus-visible{transform:translateY(-1px);box-shadow:0 7px 18px rgba(27,45,61,.12)!important;outline:2px solid rgba(35,103,201,.18);outline-offset:1px}.metric-open-cue{margin-top:8px;font-size:11px;font-weight:850;color:#326aa8}.job-open-cue{margin-right:auto;color:#326aa8;font-weight:850;font-size:12px;align-self:center}.job-card:hover .job-open-cue{ text-decoration:underline}.resource-company-badge{display:block;margin-top:3px;color:#66727d;font-size:10px;font-weight:750}.assignment-override-note{margin-top:5px;padding:5px 7px;border-left:3px solid #d59b2b;background:#fff8e8;color:#68501f;font-size:11px}.dispatch-blocker-list{margin:12px 0;padding-left:22px}.dispatch-blocker-list li{margin:6px 0}.billing-view-toggle .btn.active{background:#263847!important;color:#fff!important;border-color:#263847!important;box-shadow:0 2px 8px rgba(38,56,71,.2)}.billing-section-heading{border-top:3px solid #d8e2e9;padding-top:12px}.billing-review-card.status-invoiced .billing-review-title .pill,.billing-review-card.status-not-billable .billing-review-title .pill{opacity:.75}.compact-resource-name .resource-company-badge{white-space:normal}

/* v0.8.4.3 Daily Operations command cards: medium, readable and colorful without dominating the page. */
#view-daily .daily-top-metrics{gap:14px;margin:12px 0 16px}
#view-daily .daily-command-card{min-height:106px;padding:15px 16px!important;border-width:2px!important;border-top-width:5px!important;display:flex;flex-direction:column;justify-content:flex-start}
#view-daily .daily-command-card .label{font-size:14px!important;font-weight:900!important;color:#243442!important;line-height:1.2}
#view-daily .daily-command-card .value{font-size:34px!important;line-height:1;margin-top:8px!important}
#view-daily .daily-command-card .hint{font-size:12px!important;line-height:1.3;margin-top:7px!important;color:#4e5e6c!important}
#view-daily .daily-command-card .metric-open-cue{font-size:12px!important;margin-top:auto!important;padding-top:7px}
#view-daily .daily-command-card:nth-child(1){border-color:#6a9ac0!important;background:#eef7ff!important}
#view-daily .daily-command-card:nth-child(2){border-color:#d29a3d!important;background:#fff7e6!important}
#view-daily .daily-command-card:nth-child(3){border-color:#5da67a!important;background:#edf9f1!important}
#view-daily .daily-command-card:nth-child(4){border-color:#4b908a!important;background:#eaf8f7!important}
@media(max-width:780px){#view-daily .daily-command-card{min-height:98px;padding:14px!important}#view-daily .daily-command-card .label{font-size:13px!important}#view-daily .daily-command-card .value{font-size:31px!important}}

/* Customer rate sheets should fit a laptop screen without sideways scrolling. */
.modal.rate-sheet-modal{width:min(1120px,96vw)}
.rate-sheet-modal .admin-table-wrap{overflow-x:visible}
.rate-sheet-modal .admin-table{min-width:0!important;width:100%;table-layout:fixed}
.rate-sheet-modal .admin-table th,.rate-sheet-modal .admin-table td{white-space:normal;overflow-wrap:anywhere;padding-left:8px;padding-right:8px}
.rate-sheet-modal .admin-table th:nth-child(1){width:25%}.rate-sheet-modal .admin-table th:nth-child(2){width:17%}.rate-sheet-modal .admin-table th:nth-child(3){width:11%}.rate-sheet-modal .admin-table th:nth-child(4){width:12%}.rate-sheet-modal .admin-table th:nth-child(5){width:18%}.rate-sheet-modal .admin-table th:nth-child(6){width:9%}.rate-sheet-modal .admin-table th:nth-child(7){width:8%}
@media(max-width:780px){.modal.rate-sheet-modal{width:100%}.rate-sheet-modal .admin-table-wrap{overflow-x:auto}.rate-sheet-modal .admin-table{min-width:820px!important}}

/* Billing status colors must match their metric cards. */
.section-title.ready{color:#215e82;background:#e9f5fc;border-left:4px solid #4c91bc}
.section-title.invoiced{color:#176d28;background:#e8f6eb;border-left:4px solid #238636}
.section-title.neutral{color:#4e5c67;background:#eef1f3;border-left:4px solid #83909b}
#view-billing .billing-section-heading:has(.section-title.ready){border-left-color:#4c91bc}
#view-billing .billing-section-heading:has(.section-title.invoiced){border-left-color:#238636}

/* v0.8.4.4 — compact billing, inline job attention and invoice workflow polish */
.job-card-needs-attention{border:2px solid #d85a52!important;background:#fffafa!important;box-shadow:0 4px 14px rgba(180,45,38,.08)!important}
.job-card-needs-attention .record{color:#a72721}
.job-attention-panel{margin-top:10px;border-left:5px solid #cf3f36;background:#fff0ef;border-radius:8px;padding:9px 11px;color:#7f211d}
.job-attention-panel>strong{display:block;font-size:12px;letter-spacing:.04em;color:#b72e28;margin-bottom:4px}
.job-attention-panel ul{margin:0;padding-left:18px}.job-attention-panel li{margin:2px 0;font-weight:750;line-height:1.3}

.billing-review-card-compact{display:block!important;padding:12px 14px!important;min-height:0!important}
.billing-compact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.billing-compact-identity{min-width:0;flex:1}.billing-compact-date{color:var(--muted);font-size:12px;font-weight:650}
.billing-compact-numbers{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;flex:0 0 auto}
.billing-compact-numbers>span:not(.billing-status-label){display:grid;gap:2px;min-width:82px;padding:6px 9px;border:1px solid #dce3e8;border-radius:8px;background:#f8fafb;text-align:right}
.billing-compact-numbers small{font-size:10px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:800}
.billing-compact-numbers strong{font-size:13px;color:#263847}
.billing-primary-actions{justify-content:flex-start!important;margin-top:9px;gap:6px!important}
.billing-primary-actions .billing-action{min-height:32px;padding:6px 9px;font-size:11px}
.billing-review-details{margin-top:8px;border-top:1px solid #e5eaee;padding-top:7px}
.billing-review-details summary{cursor:pointer;color:#35698d;font-weight:850;font-size:12px;width:max-content;user-select:none}
.billing-details-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px 10px;margin-top:9px}
.billing-details-grid>div{display:grid;gap:2px;padding:7px 8px;border:1px solid #e4e9ed;border-radius:7px;background:#fafbfc;min-width:0}
.billing-details-grid>div strong{font-size:10px;text-transform:uppercase;letter-spacing:.03em;color:#66727d}
.billing-details-grid>div span{font-size:12px;overflow-wrap:anywhere}.billing-detail-wide{grid-column:1/-1}
.billing-secondary-actions{justify-content:flex-start!important;margin-top:9px;padding-top:8px;border-top:1px dashed #d8dee3}
.billing-secondary-actions .billing-action{min-height:32px;padding:6px 9px;font-size:11px}
.invoice-summary-modal textarea{min-height:150px}
@media(max-width:900px){.billing-compact-head{display:grid}.billing-compact-numbers{justify-content:flex-start}.billing-details-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.billing-details-grid{grid-template-columns:1fr}.billing-compact-numbers>span:not(.billing-status-label){min-width:72px;text-align:left}}

.header-signout{border:1px solid #d3dbe2;background:#fff;color:#33424f;border-radius:10px;padding:9px 12px;font-weight:700;cursor:pointer;white-space:nowrap}.header-signout:hover{background:#f4f7f9}@media(max-width:760px){.header-signout{padding:8px 9px;font-size:12px}}

/* v0.8.4.7 workflow clarity */
.billing-view-toggle .btn{border:2px solid #b9c7d3;background:#f5f8fa;color:#44515c;font-weight:800}
.billing-view-toggle .btn.active{background:#245f88!important;border-color:#245f88!important;color:#fff!important;box-shadow:0 0 0 3px rgba(36,95,136,.15)}
.billing-metric .hint{min-height:32px;font-weight:700}

/* v0.8.4.8 — billing, payroll correction and email polish */
.modal:has(.invoice-email-modal){width:min(860px,96vw)}
.invoice-email-modal label{display:grid;gap:6px;font-weight:750}
.invoice-email-modal input,.invoice-email-modal textarea{width:100%}
.email-attachment-preview{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #d8e2e8;border-radius:10px;background:#f8fbfd;padding:11px 12px;color:#53616d}
.time-correction-source{border:1px solid #e3a7a7;border-left:5px solid #b93535;background:#fff6f6;border-radius:10px;padding:11px 13px;margin:10px 0 14px}
.time-correction-source strong{color:#8e2525}.time-correction-source p{margin:5px 0 0;white-space:pre-wrap}
.billing-status-label.warning,.pill.warning{font-weight:850}

/* v0.8.5.0 — multi-status Jobs filters and workflow polish */
.job-status-presets{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 10px}.job-status-presets .active{background:#1f6fb2;color:#fff;border-color:#1f6fb2}.job-status-multiselect{position:relative;min-width:190px;border:1px solid var(--border,#d8e0e6);border-radius:8px;background:#fff}.job-status-multiselect>summary{cursor:pointer;padding:10px 12px;list-style:none;font-weight:600}.job-status-multiselect>summary::-webkit-details-marker{display:none}.job-status-options{position:absolute;z-index:40;top:calc(100% + 4px);left:0;min-width:240px;max-height:320px;overflow:auto;background:#fff;border:1px solid #ccd6dd;border-radius:10px;box-shadow:0 10px 28px rgba(0,0,0,.16);padding:8px}.job-status-options .checkbox-option{display:flex;gap:8px;padding:7px 8px;align-items:center}.metric-correction{border-left:4px solid #c53a45}.metric-correction.active{box-shadow:0 0 0 2px rgba(197,58,69,.18)}

/* v0.8.5.0 — explicit Jobs filter actions and saved-filter dialogs */
.job-status-options{padding:8px 8px 0}
.job-status-options #jobStatusChoices{max-height:260px;overflow:auto}
.job-status-actions{position:sticky;bottom:0;margin:6px -8px 0;padding:9px 8px;background:#fff;border-top:1px solid #d9e2e8;border-radius:0 0 10px 10px}
.job-status-actions .btn{width:100%;min-height:38px}
.saved-filter-summary{display:grid;gap:4px;border:1px solid #d5e1ea;border-left:5px solid #2b78ad;background:#f6fafc;border-radius:10px;padding:11px 13px;margin:10px 0 16px}
.saved-filter-summary span{color:var(--muted);font-size:13px}
.saved-filter-modal label{display:grid;gap:7px}
.saved-filter-modal .check-label{display:flex;margin-top:14px}
.delete-saved-filter-confirm .important-explainer{border-color:#e0a8a8;background:#fff6f6}
.repair-oos-option{border:1px solid #e3b0b0;border-left:5px solid #bd3b42;background:#fff7f7;border-radius:10px;padding:10px 12px}
.repair-oos-option .sub{display:block;margin:4px 0 0 26px;color:var(--muted)}
.work-order-audit-context{display:flex;justify-content:space-between;gap:12px;border:1px solid #cfe1ed;background:#f4f9fc;border-radius:9px;padding:9px 12px;margin:0 0 12px}
.work-order-audit-context span{color:var(--muted)}

/* v0.8.8.4 — plain-language billing flow and laptop-safe card layout */
#view-billing .billing-review-panel{overflow:visible;min-width:0}
.billing-page-guide{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,1fr);gap:18px;align-items:center;margin:12px 0 16px;padding:14px 16px;border:1px solid #bdd5e5;border-left:6px solid #327aa7;border-radius:12px;background:#f4f9fc}
.billing-page-guide>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.billing-page-guide>div>strong{margin-right:4px;color:#214f70}
.billing-page-guide>div>span{padding:6px 9px;border:1px solid #ccdde8;border-radius:999px;background:#fff;font-size:12px;font-weight:800;color:#334b5c}
.billing-page-guide p{margin:0;color:#455965;font-size:12px;line-height:1.45}

.billing-review-card-compact{overflow:hidden;min-width:0;padding:16px!important}
.billing-compact-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px 18px}
.billing-card-status{display:flex;justify-content:flex-end;align-items:center;gap:7px;flex-wrap:wrap;max-width:340px}
.billing-card-status .pill,.billing-card-status .billing-status-label{white-space:normal;text-align:center}

.billing-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:14px 0 11px;min-width:0}
.billing-flow-step{display:flex;align-items:center;gap:7px;min-width:0;padding:8px 4px;border:0;border-bottom:3px solid #dbe3e8;border-radius:0;background:transparent;color:#71808b;cursor:default;pointer-events:none;user-select:none}
.billing-flow-step>span{display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:#dce3e8;color:#53616b;font-size:11px;font-weight:900}
.billing-flow-step>strong{min-width:0;font-size:11px;line-height:1.2;overflow-wrap:anywhere}
.billing-flow-step.done{border-bottom-color:#75b88a;background:transparent;color:#27623b}.billing-flow-step.done>span{background:#2e8b57;color:#fff}
.billing-flow-step.current{border-bottom-color:#4388b6;background:transparent;color:#174f75}.billing-flow-step.current>span{background:#327aa7;color:#fff}
.billing-flow-closed{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 11px;padding:10px 12px;border:1px solid #cfd9df;border-radius:9px;background:#f3f6f8;color:#40535f;cursor:default}
.billing-flow-closed strong{font-size:13px}.billing-flow-closed span{font-size:12px;font-weight:800;text-align:right}

.billing-reconciliation-panel{display:block;margin:10px 0 0;padding:13px;border:1px solid #d8e3ea;border-radius:11px;background:#fbfdfe;min-width:0}
.billing-reconciliation-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.billing-reconciliation-heading>div{min-width:0;flex:1 1 280px}
.billing-reconciliation-heading h3{margin:0;color:#263f50;font-size:15px}.billing-reconciliation-heading p{margin:3px 0 0;color:#5d6e79;font-size:12px;line-height:1.4}
.billing-compare-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.billing-compare-box{display:grid;align-content:start;gap:4px;min-width:0;padding:11px 12px;border:1px solid #d9e2e8;border-radius:9px;background:#fff}
.billing-compare-box.payroll{border-left:5px solid #75899a}.billing-compare-box.customer{border-left:5px solid #2d8b62}
.billing-compare-label{font-size:11px;text-transform:uppercase;letter-spacing:.035em;color:#62717c;font-weight:900}
.billing-compare-value{font-size:22px;line-height:1.1;color:#243947;overflow-wrap:anywhere}
.billing-compare-box small{color:#687782;line-height:1.3}
.billing-payroll-state{width:max-content;max-width:100%;margin-top:5px;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:850;overflow-wrap:anywhere}
.billing-payroll-state.good{background:#e8f6ec;color:#216b38}.billing-payroll-state.warning{background:#fff1cf;color:#795600}
.billing-quantity-row,.billing-invoice-amount{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:5px;padding-top:7px;border-top:1px solid #e5eaed;font-size:12px}
.billing-quantity-row strong,.billing-invoice-amount strong{text-align:right;overflow-wrap:anywhere}.billing-invoice-amount strong{font-size:17px;color:#176d3c}
.billing-comparison-result{margin-top:9px;padding:9px 11px;border-radius:8px;font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.billing-comparison-result.good{background:#eaf7ee;color:#23663a}.billing-comparison-result.info{background:#edf6fc;color:#245e82}.billing-comparison-result.neutral{background:#f1f4f6;color:#445560}.billing-comparison-result.warning{background:#fff4d8;color:#775400}.billing-comparison-result.bad{background:#fff0ef;color:#8b2923}
.billing-difference-reason{display:grid;gap:3px;margin-top:8px;padding:9px 11px;border-left:4px solid #d39a2d;border-radius:7px;background:#fff9ea;font-size:12px}.billing-difference-reason strong{color:#6d501b}.billing-difference-reason span{overflow-wrap:anywhere}

.billing-next-step{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 10px;align-items:center;margin-top:10px;padding:10px 12px;border-left:5px solid #327aa7;border-radius:8px;background:#eef7fc;color:#294b61;font-size:12px;line-height:1.4}
.billing-next-step strong{white-space:nowrap;color:#1c5a82}
.billing-primary-actions{display:block!important;margin-top:9px!important}
.billing-action-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0;padding:9px 10px;border-radius:9px}
.billing-action-row.primary-row{border:1px solid #c7dfcf;background:#f2faf4}.billing-action-row.secondary-row{margin-top:7px;border:1px solid #e1e6e9;background:#f8fafb}
.billing-action-row-label{flex:0 0 82px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#687782;font-weight:900}
.billing-action-row .billing-action{white-space:normal;max-width:100%;overflow-wrap:anywhere}
.billing-action-row .billing-next-button{box-shadow:0 2px 7px rgba(27,85,52,.15);font-weight:900}
.billing-secondary-actions{display:flex!important;gap:7px!important;flex-wrap:wrap}
.billing-line-list{display:grid;gap:8px;margin-top:6px}.billing-line-list>div{padding:9px;border:1px solid #e0e6ea;border-radius:8px;background:#fff;overflow-wrap:anywhere}
.billing-line-reconciliation{margin-top:7px!important}

@media(max-width:1100px){
  .billing-page-guide{grid-template-columns:1fr}
  .billing-metrics{grid-template-columns:repeat(3,minmax(120px,1fr))}
  .billing-compact-head{grid-template-columns:1fr}
  .billing-card-status{justify-content:flex-start;max-width:none}
}
@media(max-width:760px){
  .billing-page-guide{padding:12px}.billing-page-guide>div{align-items:flex-start}
  .billing-flow{grid-template-columns:repeat(2,minmax(0,1fr))}
  .billing-compare-columns{grid-template-columns:1fr}
  .billing-next-step{grid-template-columns:1fr}.billing-next-step strong{white-space:normal}
  .billing-action-row-label{flex-basis:100%}
}
@media(max-width:480px){.billing-flow{grid-template-columns:1fr}.billing-metrics{grid-template-columns:1fr}}
.time-correction-choice{margin-bottom:14px}

/* v0.8.9.0 — employee corrections, compact payroll flow and document review */
.drawer-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;flex:0 0 auto}
.drawer-head-actions #refreshJobDrawer{min-height:38px;padding:8px 12px;border:1px solid #b9cad7;background:#eef6fb;color:#205f88;font-weight:850}
.drawer-head-actions #refreshJobDrawer:hover,.drawer-head-actions #refreshJobDrawer:focus-visible{background:#dfeff9;box-shadow:0 0 0 3px rgba(43,120,173,.15);outline:0}

.returned-work-entry{border:2px solid #e1adad!important;border-left:6px solid var(--bad)!important;background:#fff8f8!important;align-items:flex-start}
.returned-entry-note{display:grid;gap:3px;margin-top:8px;padding:9px 11px;border-radius:8px;background:#fdeaea;color:#7f2424;white-space:normal;line-height:1.35}
.returned-entry-note strong{font-size:12px}.returned-entry-note span{font-size:12px;overflow-wrap:anywhere}
.returned-entry-alert{display:grid;gap:5px;margin:0 0 15px;padding:13px 15px;border:1px solid #dfaaaa;border-left:6px solid var(--bad);border-radius:10px;background:#fff4f4;color:#762323}
.returned-entry-alert strong{font-size:14px}.returned-entry-alert p{margin:0;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.returned-entry-alert small{color:#855252}

.attachment-list{display:grid;gap:9px}
.supporting-file-row{align-items:flex-start;background:#fbfcfd;min-width:0}
.supporting-file-row>div:first-child{min-width:0;flex:1}
.supporting-file-row strong,.supporting-file-row .sub{white-space:normal;overflow-wrap:anywhere}
.supporting-file-row .inline-actions{justify-content:flex-end;flex:0 0 auto}
.attachment-note{margin-top:5px;padding:6px 8px;border-left:3px solid #8da9bd;background:#f1f6f9;border-radius:5px;line-height:1.35}
.supporting-files-heading,.attachment-gallery-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}
.supporting-files-count,.attachment-count{white-space:nowrap;font-size:12px;font-weight:850;color:#38576c;background:#e8f3f9;border-radius:999px;padding:5px 9px}
.attachment-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:10px 0}
.attachment-gallery>h2,.attachment-gallery>p,.attachment-gallery>.modal-actions{grid-column:1/-1}
.attachment-gallery-group{display:grid;gap:9px;align-content:start;min-width:0;padding:11px;border:1px solid #dbe4ea;border-radius:10px;background:#f8fbfc}
.attachment-gallery-group .section-heading{align-items:flex-start;margin:0}.attachment-gallery-group h3{margin:0 0 3px}
.attachment-gallery .supporting-file-row{display:grid;gap:9px;height:100%}
.attachment-gallery .supporting-file-row .inline-actions{justify-content:flex-start}
.billing-supporting-summary{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:11px 0;padding:10px 12px;border:1px solid #b8d4e5;border-left:5px solid #2f80c9;border-radius:9px;background:#f1f8fc}
.billing-supporting-summary>div{display:grid;gap:2px;min-width:0}.billing-supporting-summary strong{color:#245b7d}.billing-supporting-summary span{font-size:11px;color:#5f7180;overflow-wrap:anywhere}
.billing-supporting-summary .btn{flex:0 0 auto}.billing-card-supporting{margin:8px 0}

#timesheetMetrics{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.timesheet-metric.metric-returned,.timesheet-metric.metric-rejected{border-color:#e2b1b1;background:#fff7f7}
.timesheet-metric.metric-returned:before,.timesheet-metric.metric-rejected:before{background:var(--bad)}
.returned-timesheet-row{background:#fff8f8}.returned-timesheet-row:hover{background:#fff3f3}
.timesheet-table th:nth-child(7),.timesheet-table td:nth-child(7){width:145px!important}
.timesheet-table th:nth-child(9),.timesheet-table td:nth-child(9){width:140px!important}
.timesheet-workflow,.timesheet-stage-summary,.timesheet-entry-workflow{display:grid;gap:4px;min-width:0;padding:8px 9px;border:1px solid #d7e0e6;border-left:4px solid #4386b3;border-radius:8px;background:#f7fbfd;white-space:normal;line-height:1.25}
.timesheet-workflow strong,.timesheet-stage-summary strong,.timesheet-entry-workflow strong{font-size:12px;color:#264e69;overflow-wrap:anywhere}
.timesheet-workflow small,.timesheet-workflow span,.timesheet-stage-summary small,.timesheet-stage-summary span,.timesheet-entry-workflow small,.timesheet-entry-workflow span{font-size:11px;color:#62717c;overflow-wrap:anywhere}
.timesheet-workflow.complete,.timesheet-stage-summary.complete,.timesheet-entry-workflow.complete{border-left-color:var(--good);background:#f2faf4}
.timesheet-workflow.returned,.timesheet-stage-summary.returned,.timesheet-entry-workflow.returned{border-left-color:var(--bad);background:#fff5f5}
.timesheet-row-actions,.timesheet-compact-actions{display:grid;gap:6px;align-content:start}
.timesheet-row-actions .mini-btn,.timesheet-compact-actions .mini-btn,.timesheet-primary-action,.timesheet-more-actions,[data-timesheet-more]{width:100%;white-space:normal;line-height:1.2;min-height:32px}
.timesheet-primary-action{font-weight:900;box-shadow:0 2px 6px rgba(26,86,48,.12)}
.timesheet-more-actions,[data-timesheet-more]{border:1px solid #cbd6de;background:#f5f7f9;color:#3d4c58}
.timesheet-attachment-count{display:block;margin-top:6px;padding:4px 6px;border-radius:6px;background:#eef5f8;color:#416174;font-size:10.5px;font-weight:800;text-align:center;white-space:normal}
.timesheet-added-hours-band td{padding:5px 7px!important;border-bottom:0!important;background:#fffdf8}
.timesheet-added-hours-band.resolved td{background:#f7fbf8}
.timesheet-added-hours-warning{display:flex;align-items:center;flex-wrap:wrap;gap:5px 12px;padding:8px 10px;border:1px solid #edc477;border-left:5px solid #d99216;border-radius:8px;background:#fff8e9;color:#6e4a12;line-height:1.3}
.timesheet-added-hours-band.resolved .timesheet-added-hours-warning{border-color:#afd0b9;border-left-color:var(--good);background:#f1f8f3;color:#2f6540}
.timesheet-added-hours-warning strong{font-size:11px}.timesheet-added-hours-warning span{font-size:11px;overflow-wrap:anywhere}
.timesheet-action-sheet,.timesheet-more-actions-sheet,.timesheet-entry-actions{display:grid;gap:10px}
.timesheet-action-sheet-header,.timesheet-action-context{display:grid;gap:5px;padding:12px 13px;border:1px solid #d6e1e8;border-left:5px solid #4386b3;border-radius:9px;background:#f5fafc}
.timesheet-action-sheet-header p,.timesheet-action-context p{margin:0;color:#5e6e79;line-height:1.4;overflow-wrap:anywhere}
.timesheet-action-list,.timesheet-secondary-action-list{display:grid;gap:8px}
.timesheet-action-list .btn,.timesheet-secondary-action-list .btn{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;gap:12px;white-space:normal}
.timesheet-return-form textarea{min-height:105px}

.modal.billing-approval-modal,.modal:has(.billing-approval-review){width:min(1040px,96vw);max-height:94vh}
.billing-approval-review{min-width:0}
.billing-approval-review .approval-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.billing-approval-review .billing-single-review{min-width:0}
.billing-approval-review .billing-review-context{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px}
.billing-approval-review .billing-details-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.billing-approval-review .billing-line-reconciliation,.billing-approval-review .billing-line-list>div{white-space:normal;overflow-wrap:anywhere}
.billing-approval-review .modal-actions{position:sticky;bottom:-18px;margin-left:-18px;margin-right:-18px;padding:13px 18px 2px;background:#fff;border-top:1px solid #e1e6ea;z-index:2}

@media(max-width:1200px){#timesheetMetrics{grid-template-columns:repeat(3,minmax(130px,1fr))}}
@media(max-width:780px){
  .drawer-head{align-items:flex-start}.drawer-head-actions{display:grid;justify-items:end}.drawer-head-actions #refreshJobDrawer{min-width:92px}
  #timesheetMetrics{grid-template-columns:1fr 1fr}
  .supporting-file-row{flex-direction:column}.supporting-file-row .inline-actions{justify-content:flex-start;width:100%}.supporting-file-row .mini-btn{min-height:38px}
  .attachment-gallery{grid-template-columns:1fr}
  .billing-supporting-summary{align-items:flex-start;flex-direction:column}.billing-supporting-summary .btn{width:100%}
  .modal.billing-approval-modal,.modal:has(.billing-approval-review){width:100%;max-height:94vh}
  .billing-approval-review .billing-review-context,.billing-approval-review .billing-details-grid{grid-template-columns:1fr}
  .billing-approval-review .modal-actions{flex-wrap:wrap}.billing-approval-review .modal-actions .btn{flex:1 1 150px}
  .timesheet-extra-work-helper{align-items:stretch;flex-direction:column}.timesheet-extra-work-helper .mini-btn{width:100%}
}
@media(max-width:480px){#timesheetMetrics{grid-template-columns:1fr}.drawer-head-actions{gap:6px}.drawer-head-actions #refreshJobDrawer{min-width:0}}

/* v0.8.5.1 — blocker fixes from live staging */
.time-correction-inline-action{margin-top:7px}.time-correction-inline-action .mini-btn{width:auto!important;min-height:34px;padding:7px 10px}.time-correction-review-grid{margin:12px 0}.time-correction-review-reason{display:grid;gap:6px;font-weight:750;color:#52606c}.time-correction-review-reason textarea{min-height:82px;border:1px solid #cbd4dc;border-radius:8px;padding:10px;background:#fff;color:var(--text);resize:vertical}

/* v0.8.5.3 — field-test polish and scalable company setup */
.maintenance-history-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:end;margin:8px 0 10px}.maintenance-history-controls select,.maintenance-history-controls input{min-height:34px}.maintenance-history-controls label{display:flex;gap:5px;align-items:center;font-size:11px;color:#66727d}.timeline-detail-card{margin-top:8px;padding:10px 12px;border:1px solid #d7dde2;border-radius:10px;background:#f8fafb}.timeline-detail-card p{margin:4px 0 8px}.timeline-detail-card ul{margin:5px 0 8px 18px}.timeline-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.timeline-detail-grid>div{display:flex;flex-direction:column;gap:3px}.billing-handoff-section{margin-top:20px;border-top:3px solid #d8e2e9;padding-top:12px}.billing-handoff-card{border-left:4px solid #2f80c9}.danger-confirm-modal .important-explainer{border-left-color:#c64a4a}.maintenance-metric-button.active{box-shadow:0 0 0 2px rgba(35,103,201,.2),0 6px 16px rgba(27,45,61,.12)}

.my-hours-status-button{border:0;cursor:pointer;font:inherit}.my-hours-status-button:hover,.my-hours-status-button:focus-visible{box-shadow:0 0 0 3px rgba(55,115,160,.18);outline:none}.my-hours-metric{width:100%}

/* v0.8.5.8 — persistent invoice-correction context and original invoice controls */
.invoice-correction-context{display:flex;gap:8px;align-items:flex-start;margin-top:7px;padding:8px 10px;border-left:4px solid #c27a18;border-radius:7px;background:#fff7e8;color:#6f4a17;font-size:11px;line-height:1.35}
.invoice-correction-context strong{white-space:nowrap;color:#8c5510}.invoice-correction-context span{overflow-wrap:anywhere}
.original-rate-hint{grid-column:1/-1;padding:8px 10px;border:1px solid #d8e2e8;border-radius:8px;background:#f7fafc;color:#465765;font-size:12px}
.original-rate-hint .mini-btn{margin-left:8px}.billing-inline-actions{display:flex!important;gap:6px;flex-wrap:wrap;margin-top:6px}
.billing-inline-actions .billing-action{min-height:30px;padding:5px 8px;font-size:11px}

/* v0.8.6.1 — Upcoming Jobs rendering on Dashboard + Daily Operations */
.upcoming-jobs-panel{margin-top:16px;border-top:3px solid #d9e7f7}
.upcoming-jobs-panel .panel-head{align-items:flex-start}
.upcoming-jobs-help{margin:4px 0 0;font-size:12px}
.upcoming-job-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.upcoming-job-list .job-card{min-width:0}
@media(max-width:1100px){.upcoming-job-list{grid-template-columns:1fr}}

/* v0.8.6.1 — Daily Operations Upcoming Jobs */
.daily-upcoming-jobs-panel{margin-top:16px;margin-bottom:16px}
