*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Arial,sans-serif;background:#f5f7f8;color:#102a2e}.wrap{max-width:1280px;margin:auto;padding:0 22px}header{background:#fff;border-bottom:1px solid #dfe7ea}.top{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:68px}.admin-nav{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.admin-nav a{padding:8px 10px;border-radius:9px;text-decoration:none;color:#40565a;font-size:13px;font-weight:700}.admin-nav a.active{background:#e5f6f2;color:#08766d}.customer-link{border:1px solid #d8e2e4}.admin-role-badge{font-size:11px;padding:6px 8px;border-radius:999px;background:#edf2f4}.hero{display:flex;justify-content:space-between;gap:20px;align-items:end;padding:30px 0 18px}.eyebrow{font-size:11px;letter-spacing:.13em;font-weight:800;color:#0f766e;margin:0 0 5px}.hero h1{font-size:32px;margin:0 0 7px}.muted{color:#667b80}.hero button,.action button,.upload button{background:#0f766e;color:#fff;border:0;border-radius:10px;padding:10px 14px;font-weight:800;cursor:pointer}.service-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 14px}.service-tabs button{border:1px solid #d7e1e4;background:#fff;padding:9px 13px;border-radius:999px;font-weight:750;cursor:pointer}.service-tabs button.active{background:#102a2e;color:#fff;border-color:#102a2e}.tools{display:flex;gap:12px;align-items:center;margin-bottom:14px}.tools input{flex:1;max-width:620px;padding:12px 13px;border:1px solid #ccd8dc;border-radius:10px;background:#fff}.tools #clearSearch{padding:10px 12px;border:1px solid #ccd8dc;border-radius:9px;background:#fff;color:#40565a;font-weight:750;cursor:pointer}.tools #clearSearch:hover{border-color:#9fb1b6}.tools .result-count{margin-left:auto;color:#52676c;font-size:12px;font-weight:800;white-space:nowrap}.guard{background:#eaf7f4;border:1px solid #bfe4dc;padding:13px 15px;border-radius:12px;margin-bottom:16px}.case{background:#fff;border:1px solid #dfe7ea;border-radius:16px;padding:18px;margin-bottom:14px;box-shadow:0 4px 18px rgba(18,42,46,.04)}.case-head{display:flex;justify-content:space-between;gap:16px}.case h2{font-size:18px;margin:0 0 5px}.pill{display:inline-flex;padding:6px 9px;border-radius:999px;background:#edf2f4;font-size:12px;font-weight:800}.money-grid,.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.money,.detail{border:1px solid #e1e8ea;border-radius:12px;padding:12px}.money span,.detail span{display:block;color:#718287;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.money b,.detail b{display:block;margin-top:4px;font-size:17px}.money.primary{background:#effaf7;border-color:#bde5db}.money.primary b{font-size:22px;color:#08766d}.sections{display:grid;grid-template-columns:1.1fr 1fr;gap:14px}.panel{border:1px solid #e0e7e9;border-radius:13px;padding:14px;background:#fbfcfc}.panel h3{margin:0 0 10px;font-size:15px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.fields label{font-size:12px;font-weight:700;color:#52676c}.fields input,.fields select,.fields textarea{width:100%;margin-top:5px;padding:9px 10px;border:1px solid #cfdadd;border-radius:8px;background:#fff}.fields .wide{grid-column:1/-1}.upload{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}.upload select,.upload input{padding:8px;border:1px solid #cfdadd;border-radius:8px;background:#fff}.action{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.action .secondary{background:#fff;color:#0f766e;border:1px solid #9fd5cb}.action input{padding:10px;border:1px solid #cfdadd;border-radius:8px;min-width:230px}.warn{padding:10px 12px;border-radius:10px;background:#fff6df;border:1px solid #efd58c;margin-top:10px;font-size:13px}.oknote{padding:10px 12px;border-radius:10px;background:#edf9f5;border:1px solid #bde5d8;margin-top:10px;font-size:13px}.drill{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.drill a{font-size:12px;font-weight:800;color:#08766d;text-decoration:none}.empty{padding:25px;text-align:center;background:#fff;border-radius:14px;border:1px solid #e0e7e9}@media(max-width:900px){.sections{grid-template-columns:1fr}.money-grid,.detail-grid{grid-template-columns:repeat(2,1fr)}.top{align-items:flex-start;padding:12px 0;flex-direction:column}.admin-nav{padding-bottom:10px}}@media(max-width:560px){.money-grid,.detail-grid,.fields{grid-template-columns:1fr}.case-head,.hero{align-items:flex-start;flex-direction:column}}/* V4.23.04 — compact lifecycle, service economics and vehicle history */
.lifecycle{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin:12px 0 14px}.life{display:flex;align-items:center;gap:7px;border:1px solid #dfe7ea;background:#f7f9fa;border-radius:10px;padding:8px;font-size:11px;color:#708286}.life span{display:grid;place-items:center;width:22px;height:22px;min-width:22px;border-radius:50%;background:#e6edef;font-weight:900}.life.done{background:#edf9f5;border-color:#bde5d8;color:#126b60}.life.done span{background:#cceee5;color:#08766d}.funding{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px;border-radius:13px;background:#102a2e;color:#fff}.funding span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.05em;opacity:.7}.funding b{display:block;margin-top:4px;font-size:16px}.compact{font-size:11px;margin:6px 2px 14px}.history{margin-top:14px;border-top:1px solid #e2e9eb;padding-top:13px}.history h3{font-size:14px;margin:0 0 8px}.history-row{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid #edf1f2}.history-row>div{display:flex;flex-direction:column;gap:2px}.history-row>div:last-child{text-align:right}.history-row span,.history-row small{font-size:11px;color:#718287}.history-row b{font-size:13px}@media(max-width:900px){.lifecycle{grid-template-columns:repeat(3,1fr)}.funding{grid-template-columns:1fr}}@media(max-width:560px){.lifecycle{grid-template-columns:repeat(2,1fr)}.history-row{flex-direction:column}.history-row>div:last-child{text-align:left}}

/* V4.23.04 — consolidated service queue summary and commercial-risk visibility */
.ops-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 16px}.summary-card{background:#fff;border:1px solid #dfe7ea;border-radius:13px;padding:13px}.summary-card span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#667b80}.summary-card b{display:block;font-size:24px;margin:4px 0}.summary-card small{display:block;color:#718287;line-height:1.35}.risk-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:11px;border:1px solid #dfe7ea;border-radius:12px;background:#f8fbfb;margin:10px 0 4px}.risk-strip>div{padding:7px 9px;border-right:1px solid #e1e8ea}.risk-strip>div:last-child{border-right:0}.risk-strip span{display:block;font-size:10px;text-transform:uppercase;color:#6b7f83}.risk-strip b{display:block;margin-top:3px}.risk-strip.watch{background:#fff9e9;border-color:#ead79b}.risk-strip.high{background:#fff1ef;border-color:#e7bbb5}.compact{font-size:11px;margin:5px 0 13px}@media(max-width:1000px){.ops-summary{grid-template-columns:repeat(2,1fr)}.risk-strip{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.ops-summary,.risk-strip{grid-template-columns:1fr}.risk-strip>div{border-right:0;border-bottom:1px solid #e1e8ea}.risk-strip>div:last-child{border-bottom:0}}

/* V4.23.04 — vehicle timeline + controlled cost-led price review */
.price-review{margin:12px 0 14px;border:1px solid #d8e3e5;border-radius:13px;padding:13px;background:#fbfcfc}.price-review-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.price-review h3{margin:0 0 3px;font-size:14px}.price-review p{margin:0;color:#667b80;font-size:12px}.review-note{margin-top:9px;padding:9px 10px;border-radius:9px;background:#f2f6f7;font-size:12px}.price-review-form{display:grid;grid-template-columns:220px 1fr auto;gap:9px;align-items:end;margin-top:11px}.price-review-form label{font-size:11px;font-weight:800;color:#52676c}.price-review-form input,.price-review-form textarea{display:block;width:100%;margin-top:5px;padding:9px 10px;border:1px solid #cfdadd;border-radius:8px;background:#fff}.price-review-form button{background:#102a2e;color:#fff;border:0;border-radius:9px;padding:10px 12px;font-weight:800;cursor:pointer}.timeline{margin-top:14px;border:1px solid #dfe7ea;border-radius:13px;background:#fbfcfc}.timeline summary{cursor:pointer;padding:12px 14px;font-weight:850;list-style:none}.timeline summary::-webkit-details-marker{display:none}.timeline summary span{font-weight:600;color:#718287;font-size:11px;margin-left:6px}.timeline-list{border-top:1px solid #e4eaec;padding:4px 14px 10px}.timeline-row{display:grid;grid-template-columns:125px 14px 1fr;gap:9px;align-items:start;padding:9px 0;border-bottom:1px solid #edf1f2}.timeline-row:last-child{border-bottom:0}.timeline-row time{font-size:10px;color:#7b8c90;padding-top:2px}.timeline-dot{width:9px;height:9px;border-radius:50%;background:#91a4a8;margin-top:4px}.timeline-dot.payment,.timeline-dot.settlement{background:#0f766e}.timeline-dot.document{background:#597fba}.timeline-dot.authorisation{background:#8a6a1e}.timeline-row div{display:flex;flex-direction:column;gap:2px}.timeline-row b{font-size:12px}.timeline-row small{font-size:11px;color:#718287}.timeline-row a{font-size:10px;font-weight:800;color:#08766d;text-decoration:none}@media(max-width:800px){.price-review-form{grid-template-columns:1fr}.price-review-head{flex-direction:column}.timeline-row{grid-template-columns:1fr 12px 2fr}}

/* V4.23.04 payment readiness stays inside the consolidated Service card. */
.readiness{display:grid;gap:6px;margin-top:14px;padding:12px;border:1px solid #dfe8e3;border-radius:12px;background:#f8fbf9}.readiness b{margin-bottom:2px}.readiness span{font-size:13px}.readiness .pass{color:#17633b}.readiness .fail{color:#8a4b16}

/* V4.23.05 — settlement evidence, next-service capture and compact service economics */
.lifecycle{grid-template-columns:repeat(7,minmax(0,1fr))}.economics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:10px 0}.economics>div{border:1px solid #dfe7ea;border-radius:10px;padding:10px;background:#fff}.economics span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#718287}.economics b{display:block;margin-top:4px;font-size:15px}.economics .negative{background:#fff4e8;border-color:#edc58f}.economics .positive{background:#effaf7;border-color:#bde5db}.next-service-box{margin-top:12px;padding:12px;border:1px solid #cfe0e3;border-radius:11px;background:#f7fbfb}.next-service-box small{display:block;color:#667b80;margin-top:7px}.ops-summary{grid-template-columns:repeat(auto-fit,minmax(155px,1fr))}@media(max-width:900px){.lifecycle{grid-template-columns:repeat(4,1fr)}.economics{grid-template-columns:repeat(2,1fr)}.ops-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.lifecycle,.economics,.ops-summary{grid-template-columns:1fr}}

.next-service-summary{margin-top:9px;padding:9px 11px;border-radius:9px;background:#f2f7f8;font-size:12px;color:#40565a}

/* V4.23.06 — due/overdue portfolio stays inside Service; no extra admin tab. */
.followups{margin:0 0 16px;border:1px solid #d9e4e6;border-radius:14px;background:#fff;overflow:hidden}.followups-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid #e6ecee}.followups-head h2{margin:2px 0 0;font-size:17px}.followups-head>span{font-size:11px;font-weight:850;color:#52676c;background:#eef4f5;border-radius:999px;padding:6px 9px}.followup-list{display:grid}.followup-row{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(250px,1fr) minmax(220px,1fr);gap:14px;align-items:center;padding:11px 16px;border-bottom:1px solid #edf1f2}.followup-row:last-child{border-bottom:0}.followup-row>div{display:flex;flex-direction:column;gap:3px}.followup-row small,.followup-row span{font-size:11px;color:#6e8085}.followup-row.overdue{background:#fff4f1}.followup-row.overdue>div:last-child>b{color:#a04435}.followup-row.soon{background:#fffaf0}.followup-row.soon>div:last-child>b{color:#8a651a}@media(max-width:850px){.followup-row{grid-template-columns:1fr}.followups-head{flex-direction:column}}
.followup-row.missing{background:#f5f7f8}.followup-row.missing>div:last-child>b{color:#52676c}

/* V4.23.07 — preventive follow-up: stale odometer + pre-service pricing review. */
.followup-row.stale{background:#f3f7fb}.followup-row.stale>div:last-child>b{color:#365f8d}.followup-row small{line-height:1.4}

/* V4.23.11 — preventive follow-up actions stay inside Service. */
.next-action{font-size:11px;color:#0f766e;margin-top:4px}.followup-action{grid-column:1/-1;border-top:1px dashed #dbe5e7;padding-top:7px}.followup-action summary{cursor:pointer;font-size:11px;font-weight:850;color:#52676c}.followup-form{display:grid;grid-template-columns:160px 140px 160px minmax(220px,1fr) auto;gap:8px;align-items:end;margin-top:9px}.followup-form label{font-size:10px;font-weight:800;color:#60757a}.followup-form input,.followup-form select{display:block;width:100%;margin-top:4px;padding:8px;border:1px solid #cfdadd;border-radius:8px;background:#fff}.followup-form button{padding:9px 11px;border:0;border-radius:8px;background:#0f766e;color:#fff;font-weight:850;cursor:pointer}.followup-meta{display:block;margin-top:6px;color:#718287}@media(max-width:1000px){.followup-form{grid-template-columns:repeat(2,1fr)}.followup-form .wide{grid-column:1/-1}}@media(max-width:560px){.followup-form{grid-template-columns:1fr}}

/* V4.23.11 — follow-up ownership, priority and ageing. */
.followup-form.ownership{grid-template-columns:145px 125px minmax(170px,1fr) 110px 150px minmax(220px,1.4fr) auto}.followup-meta b{color:#a04435}.followup-row:has(.followup-meta b){box-shadow:inset 4px 0 0 #d69a3a}@media(max-width:1180px){.followup-form.ownership{grid-template-columns:repeat(3,1fr)}.followup-form.ownership .wide{grid-column:1/-1}}@media(max-width:650px){.followup-form.ownership{grid-template-columns:1fr}}

/* V4.23.11 — outcome-controlled preventive follow-up + compact owner handover. */
.owner-performance{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;padding:12px 16px;background:#f7fafb;border-bottom:1px solid #e6ecee}.owner-performance-head{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;align-items:center}.owner-performance-head span{font-size:10px;color:#718287}.owner-metric{display:grid;grid-template-columns:1fr 1fr;gap:3px 9px;border:1px solid #dfe7ea;border-radius:10px;background:#fff;padding:9px}.owner-metric b{grid-column:1/-1;font-size:12px;overflow:hidden;text-overflow:ellipsis}.owner-metric span{font-size:10px;color:#667b80}.outcome-chip{display:block;margin-top:4px;color:#0f766e!important;font-weight:750}.followup-form.ownership.outcome{grid-template-columns:130px 110px minmax(155px,1fr) 100px minmax(165px,1fr) 145px minmax(210px,1.3fr) auto}@media(max-width:1250px){.followup-form.ownership.outcome{grid-template-columns:repeat(4,1fr)}.followup-form.ownership.outcome .wide{grid-column:1/-1}}@media(max-width:700px){.owner-performance-head{align-items:flex-start;flex-direction:column}.followup-form.ownership.outcome{grid-template-columns:1fr}}

/* V4.23.11 service conversion readiness */
.conversion-strip{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:8px;padding:10px 16px;background:#eef6f5;border-bottom:1px solid #dce9e7}.conversion-strip>div{display:flex;align-items:baseline;gap:7px;background:#fff;border:1px solid #d9e6e4;border-radius:9px;padding:8px 10px}.conversion-strip b{font-size:17px;color:#0f766e}.conversion-strip span{font-size:10px;color:#60757a;font-weight:750}.readiness-chip{display:block;margin-top:4px!important;font-weight:800!important}.readiness-chip.ready{color:#0f766e!important}.readiness-chip.blocked{color:#a04435!important}.readiness-chip.open{color:#365f8d!important}.choice-chip{display:block;color:#52716c!important;font-weight:750!important}.choice-confirm{grid-column:1/-1!important;display:flex!important;align-items:center;gap:7px;font-size:10px!important}.choice-confirm input{width:auto!important;margin:0!important}.followup-form.ownership.outcome{grid-template-columns:130px 110px minmax(155px,1fr) 100px minmax(165px,1fr) 145px minmax(210px,1.3fr) auto}@media(max-width:760px){.conversion-strip{grid-template-columns:repeat(2,1fr)}}


/* V4.23.18 — returned service-file quality and authorisation readiness. */
.intake-readiness{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:6px;margin:12px 0;padding:11px;border:1px solid #ead8c3;border-radius:10px;background:#fff9f1}.intake-readiness.ready{border-color:#cfe3dd;background:#f2faf7}.intake-head{grid-column:1/-1;display:flex;justify-content:space-between;gap:10px}.intake-head span{font-size:10px;font-weight:800;color:#6d7d80}.intake-readiness>span{font-size:11px}.intake-readiness .pass{color:#0f766e}.intake-readiness .fail{color:#a04435}.intake-readiness small{grid-column:1/-1;color:#6e8085}@media(max-width:650px){.intake-readiness{grid-template-columns:1fr}}
/* V4.23.18 — frozen written-authorisation baseline */
.auth-baseline-note{margin:10px 0;padding:10px 12px;border-left:3px solid currentColor;border-radius:8px;background:#f8fafc;font-size:13px;line-height:1.45}

/* V4.23.18 — settlement evidence ageing */
.proof-overdue{border-left:4px solid currentColor;font-weight:500}.proof-overdue b{display:block;margin-bottom:4px}

/* V4.23.24 — next-cycle commercial readiness without treating contributions as a wallet. */
.commercial-chip{display:block;margin-top:4px!important;font-weight:800!important}.commercial-chip.healthy{color:#0f766e!important}.commercial-chip.funding_watch{color:#9a6517!important}.commercial-chip.price_review{color:#a04435!important}.commercial-chip.monitor{color:#60757a!important}

/* V4.23.24 fixed-price cohort feedback */
.pricing-cohorts{margin:18px 0;padding:18px;border:1px solid #dbe4ea;border-radius:18px;background:#fff}.cohort-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:14px}.cohort-card{border:1px solid #dbe4ea;border-radius:14px;padding:14px;display:grid;gap:7px}.cohort-card>div{display:flex;justify-content:space-between;gap:10px}.cohort-card span,.cohort-card small,.snapshot-note{color:#61707b;font-size:12px}.cohort-card strong{font-size:13px;text-transform:uppercase;letter-spacing:.04em}.cohort-card.pressure{border-width:2px}.cohort-card.watch{border-style:dashed}.detail-grid.inception{margin-top:12px}.snapshot-note{display:block;margin-top:6px}

/* V4.23.25 — controlled future pricing-model governance; never changes live member pricing. */
.pricing-review-form{margin-top:7px;border-top:1px dashed #dbe4ea;padding-top:8px}.pricing-review-form summary{cursor:pointer;font-size:11px;font-weight:850;color:#0f766e}.pricing-review-form label{display:grid;gap:4px;margin-top:8px;font-size:10px;font-weight:800;color:#60757a}.pricing-review-form input,.pricing-review-form textarea,.pricing-review-row input{width:100%;box-sizing:border-box;border:1px solid #cfdadd;border-radius:8px;padding:8px;background:#fff}.pricing-review-form textarea{min-height:64px;resize:vertical}.pricing-review-form button,.pricing-review-row button{border:0;border-radius:8px;padding:8px 10px;background:#0f766e;color:#fff;font-weight:850;cursor:pointer}.pricing-review-open{display:grid!important;gap:3px!important;margin-top:7px;padding:8px;border-radius:8px;background:#fff8e8;border:1px solid #ead5a0}.pricing-review-list{margin-top:16px;border-top:1px solid #e3eaed;padding-top:14px}.pricing-review-list h3{margin:0 0 9px}.pricing-review-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.55fr);gap:12px;padding:11px 0;border-bottom:1px solid #edf1f2}.pricing-review-row>div{display:grid;gap:4px}.pricing-review-row small{font-size:11px;color:#61707b}.pricing-review-row>div:last-child{align-content:start}.pricing-review-row>div:last-child span{display:flex;gap:6px;margin-top:4px}.pricing-review-row button.secondary{background:#65767a}.pricing-review-row.approved strong{color:#0f766e}.pricing-review-row.rejected strong{color:#a04435}@media(max-width:700px){.pricing-review-row{grid-template-columns:1fr}}

/* V4.23.26 — settled-service closure integrity stays inside the consolidated Service workspace. */
.closure-panel{margin:12px 0 14px;border:1px solid #cfe3dd;border-radius:13px;padding:13px;background:#f4faf8}.closure-panel.exception{border-color:#e6c58d;background:#fff9ed}.closure-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.closure-head h3{margin:0 0 3px;font-size:14px}.closure-head p{margin:0;color:#667b80;font-size:12px}.closure-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:11px}.closure-checks span{font-size:11px;padding:7px 8px;border-radius:8px;background:#fff;border:1px solid #e0e7e9}.closure-checks .pass{color:#17633b}.closure-checks .fail{color:#a04435;font-weight:750}.closure-next{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:10px;padding:10px;border-radius:9px;background:#fff;border:1px solid #ead7ad}.closure-next small{color:#6f7f83;flex:1;min-width:220px}.closure-next button{border:0;border-radius:8px;padding:9px 11px;background:#102a2e;color:#fff;font-weight:850;cursor:pointer}.closure-exception-case{box-shadow:inset 4px 0 0 #d69a3a,0 4px 18px rgba(18,42,46,.04)}@media(max-width:760px){.closure-head{flex-direction:column}.closure-checks{grid-template-columns:1fr}}

.record-amend{margin-top:10px;border:1px solid #dce7e7;border-radius:10px;padding:10px}.record-amend summary{cursor:pointer;font-weight:750}.record-amend label{display:grid;gap:5px;margin-top:9px}.record-amend input,.record-amend select,.record-amend textarea{width:100%;box-sizing:border-box}.record-amend button{margin-top:9px}.record-amend small{display:block;margin-top:7px}
/* V4.23.30 — simple service attention view */
.ops-summary .summary-card{appearance:none;text-align:left;font:inherit;color:inherit;cursor:pointer}.ops-summary .summary-card.primary-summary{border-color:#9bcfc8;background:#f0faf8}.attention-banner{display:flex;gap:12px;align-items:flex-start;margin:12px 0;padding:11px 13px;border:1px solid #d9e4e6;border-radius:11px;background:#f8fbfb}.attention-banner>span{flex:0 0 auto;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;background:#e5eeee}.attention-banner div{display:grid;gap:3px}.attention-banner b{font-size:13px}.attention-banner small{color:#60757a}.attention-banner.level-1{border-color:#e5b6ae;background:#fff5f2}.attention-banner.level-1>span{background:#f3d2cc;color:#8b3528}.attention-banner.level-2{border-color:#e6d19e;background:#fffaf0}.attention-banner.level-2>span{background:#f2e2b9;color:#765a18}
.ops-summary .summary-card{cursor:default}
/* V4.23.31 — one obvious action per attention case. */
.attention-banner{align-items:center}.attention-banner>div{flex:1;min-width:0}.attention-action{flex:0 0 auto;border:0;border-radius:9px;padding:9px 12px;background:#153638;color:#fff!important;text-decoration:none;font:inherit;font-size:12px;font-weight:850;cursor:pointer;white-space:nowrap}.attention-context{display:flex;gap:8px 18px;flex-wrap:wrap;margin:-3px 0 12px;padding:8px 12px;border:1px solid #e1e9ea;border-radius:9px;background:#fbfdfd;color:#60757a;font-size:11px}.attention-context b{color:#29474a;margin-right:4px}.panel.attention-focus{outline:3px solid rgba(15,118,110,.25);box-shadow:0 0 0 5px rgba(15,118,110,.08);transition:outline-color .25s,box-shadow .25s}@media(max-width:680px){.attention-banner{align-items:flex-start;flex-wrap:wrap}.attention-action{width:100%;text-align:center}.attention-context{display:grid;gap:5px}}

/* V4.23.32 — simple unresolved-age cue inside Needs attention. */
.attention-age{flex:0 0 auto;border-radius:999px;padding:4px 8px;background:#edf3f3;color:#536b6e;font-size:10px;font-style:normal;font-weight:850;white-space:nowrap}.attention-age.age-3{background:#f6dfda;color:#87392d}@media(max-width:680px){.attention-age{margin-left:auto}}

/* V4.23.34 — live counts on the existing Service queue filters. */
.service-tabs button{display:inline-flex;align-items:center;gap:7px}.filter-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#edf2f4;color:#536b6e;font-size:10px;font-weight:900;line-height:1}.service-tabs button.active .filter-count{background:rgba(255,255,255,.18);color:#fff}

/* V4.23.35 — one-click oldest attention cue; no SLA or escalation workflow. */
.ops-summary{grid-template-columns:repeat(7,minmax(0,1fr))}.oldest-attention{font:inherit;color:inherit;text-align:left;cursor:pointer;border-color:#d9c99b;background:#fffaf0}.oldest-attention:hover:not(:disabled){border-color:#b99b4f;transform:translateY(-1px)}.oldest-attention:disabled{cursor:default;opacity:.7}.attention-focus-case{outline:3px solid rgba(15,118,110,.25);box-shadow:0 0 0 5px rgba(15,118,110,.08),0 4px 18px rgba(18,42,46,.04);transition:outline-color .25s,box-shadow .25s}@media(max-width:1100px){.ops-summary{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:700px){.ops-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V4.23.36 — simple manual refresh state */
.refresh-box{display:flex;align-items:flex-end;flex-direction:column;gap:6px}.refresh-box small{font-size:11px;color:#718287;min-height:14px}.hero #refresh:disabled{opacity:.65;cursor:wait}@media(max-width:560px){.refresh-box{align-items:flex-start}}

/* V4.23.39 — compact Needs attention cards with progressive disclosure. */
.attention-compact .case-details{margin-top:10px;border-top:1px solid #e3eaeb;padding-top:9px}.attention-compact .case-details>summary{display:inline-flex;align-items:center;gap:7px;cursor:pointer;border:1px solid #d6e1e3;border-radius:9px;padding:8px 11px;background:#fff;color:#29474a;font-size:12px;font-weight:850;list-style:none}.attention-compact .case-details>summary::-webkit-details-marker{display:none}.attention-compact .case-details>summary::after{content:'+';font-size:16px;line-height:1}.attention-compact .case-details[open]>summary::after{content:'–'}.attention-compact .case-details-body{padding-top:12px}.attention-compact .attention-context{margin-bottom:4px}

/* V4.23.40 — actionable empty Service states */
.service-empty b{display:block;font-size:16px;margin-bottom:6px}.service-empty p{margin:0 auto 14px;max-width:620px;color:#667b80}.service-empty button{border:1px solid #b9c9cd;background:#fff;color:#0f766e;border-radius:9px;padding:9px 12px;font-weight:800;cursor:pointer}.service-empty button:hover{border-color:#7fa9a3;background:#f7fbfa}

/* V4.23.42 — active Service view cue for restored queue/search context. */
.active-view{display:inline-flex;align-items:center;min-height:30px;padding:0 9px;border-radius:999px;background:#f1f6f6;color:#38585b;font-size:11px;font-weight:850;white-space:nowrap}.tools .result-count{margin-left:auto}@media(max-width:720px){.active-view{order:3}.tools .result-count{order:4;margin-left:0;width:100%}}

/* V4.23.44 — sequential navigation through the current Needs attention queue. */
.attention-next{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:11px 12px;border-top:1px solid #e1e9ea;background:#fbfdfd;border-radius:0 0 9px 9px}.attention-next .attention-position{display:inline-flex;align-items:center;border:1px solid #dce6e7;border-radius:999px;padding:5px 8px;background:#fff;color:#526b6e;font-size:11px;font-weight:800;white-space:nowrap}.attention-next button{border:0;border-radius:9px;padding:9px 12px;background:#153638;color:#fff;font:inherit;font-size:12px;font-weight:850;cursor:pointer}.attention-next.done b{font-size:12px;color:#536b6e}@media(max-width:680px){.attention-next{align-items:stretch;flex-direction:column}.attention-next button{width:100%}}

/* V4.23.46 — bidirectional sequential review inside the live Needs attention queue. */
.attention-sequence-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.attention-next button.secondary{background:#fff;color:#29474a;border:1px solid #cbd9dc}.attention-next button.secondary:hover{background:#f3f8f8}@media(max-width:680px){.attention-sequence-actions{width:100%;margin-left:0}.attention-sequence-actions button{flex:1}}

/* V4.23.48 — keep the live Service queue primary; supporting management stays available below it. */
.supporting-workspace{display:grid;gap:10px;margin:22px 0 8px}.secondary-workspace{border:1px solid #d9e4e6;border-radius:14px;background:#fff;overflow:hidden}.secondary-workspace>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer;padding:14px 16px;list-style:none}.secondary-workspace>summary::-webkit-details-marker{display:none}.secondary-workspace>summary span{display:grid;gap:3px}.secondary-workspace>summary b{font-size:14px}.secondary-workspace>summary small{font-size:11px;color:#667b80;font-weight:600}.secondary-workspace>summary strong{min-width:28px;text-align:center;border-radius:999px;padding:5px 8px;background:#eef4f5;color:#52676c;font-size:11px}.secondary-workspace[open]>summary{border-bottom:1px solid #e6ecee;background:#f8fbfb}.secondary-workspace .followups,.secondary-workspace .pricing-cohorts{margin:0;border:0;border-radius:0}.secondary-workspace .pricing-cohorts{padding:16px}.supporting-empty{margin:14px 16px}.supporting-note{padding:10px 16px 14px;margin:0}.followup-row .followup-action{grid-column:1/-1}@media(max-width:650px){.secondary-workspace>summary{align-items:flex-start}.secondary-workspace>summary strong{flex:0 0 auto}}

/* V4.23.49 — secondary Service panels fail locally; the operational queue stays usable. */
.supporting-error{display:grid;gap:4px;margin:14px 16px;padding:12px 14px;border:1px solid #e4d9c5;border-radius:10px;background:#fffaf1}.supporting-error b{font-size:12px}.supporting-error span{font-size:11px;color:#667b80;line-height:1.4}

/* V4.23.51 — refresh outcome clarity */
.refresh-box{display:grid;justify-items:end;gap:6px}.refresh-box small{display:inline-flex;align-items:center;min-height:24px;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;color:#667b80;background:#eef3f4}.refresh-box small[data-state=loading]{color:#52676c}.refresh-box small[data-state=ok]{color:#176b58;background:#edf9f5}.refresh-box small[data-state=partial]{color:#7a5a12;background:#fff6df}.refresh-box small[data-state=error]{color:#8b3d32;background:#fff0ed}@media(max-width:560px){.refresh-box{justify-items:start}}

/* V4.23.53 — visually de-emphasise queues with zero matches during an active Service search; queues remain accessible. */
.service-tabs button.search-zero:not(.active){opacity:.5;background:#f8fafa;border-style:dashed}.service-tabs button.search-zero:not(.active):hover,.service-tabs button.search-zero:not(.active):focus-visible{opacity:.85}.service-tabs button.search-zero:not(.active) .filter-count{background:#f1f4f5;color:#7b8b8f}

.service-empty .empty-actions{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}.service-empty .empty-actions button.secondary{color:#526b6e;background:#f8fafa}

.ops-summary .summary-card.summary-unavailable{background:#f8fafb;border-style:dashed}.ops-summary .summary-card.summary-unavailable b{color:#718287}.ops-summary .summary-card.summary-unavailable small{font-weight:600}

.permission-status{margin:12px 0;padding:11px 13px;border:1px dashed #b7791f;border-radius:10px;background:#fffaf0}.permission-status[hidden]{display:none}.permission-status b{display:block;margin-bottom:3px}

/* V4.23.65 — make the combined Payment / proof queue handoff explicit at case level. */
.payment-proof-handoff{display:flex;align-items:center;gap:12px;margin:12px 0 14px;padding:11px 13px;border:1px solid #d9e4e6;border-radius:11px;background:#f8fbfb}.payment-proof-handoff>span{flex:0 0 auto;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.payment-proof-handoff>div{display:grid;gap:3px;flex:1;min-width:0}.payment-proof-handoff b{font-size:13px}.payment-proof-handoff small{color:#60757a}.payment-proof-handoff button{flex:0 0 auto;border:0;border-radius:9px;padding:9px 12px;background:#153638;color:#fff;font:inherit;font-size:12px;font-weight:850;cursor:pointer;white-space:nowrap}.payment-proof-handoff.ready{border-color:#b9ddd4;background:#f0faf7}.payment-proof-handoff.ready>span{background:#d9f0e9;color:#176b58}.payment-proof-handoff.proof{border-color:#e6d19e;background:#fffaf0}.payment-proof-handoff.proof>span{background:#f2e2b9;color:#765a18}.payment-proof-handoff.overdue{border-color:#e5b6ae;background:#fff5f2}.payment-proof-handoff.overdue>span{background:#f3d2cc;color:#8b3528}@media(max-width:680px){.payment-proof-handoff{align-items:flex-start;flex-wrap:wrap}.payment-proof-handoff button{width:100%}}


/* V4.23.67 — show the selected upload and exact Service destination before submission. */
.upload-selection{grid-column:1/-1;padding:8px 10px;border:1px solid #cbdadd;border-radius:9px;background:#f7fbfb;color:#38585b;font-size:11px;font-weight:800;overflow-wrap:anywhere}.upload-selection[hidden]{display:none}

/* V4.23.68 — explicit document upload progress and outcome */
.upload-status{grid-column:1/-1;padding:8px 10px;border-radius:9px;font-size:11px;font-weight:800;overflow-wrap:anywhere}.upload-status[hidden]{display:none}.upload-status.uploading{background:#eef4f5;border:1px solid #cbdadd;color:#38585b}.upload-status.success{background:#edf9f5;border:1px solid #bde5d8;color:#176457}.upload-status.error{background:#fff1ed;border:1px solid #efc0b5;color:#8a3526}.upload button:disabled{opacity:.62;cursor:wait}

.action-status{margin:10px 0;padding:10px 12px;border-radius:10px;font-size:12px;font-weight:800;background:#edf9f5;border:1px solid #bde5d8;color:#176457;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.action-status[hidden]{display:none}.action-status[data-state=error]{background:#fff1ed;border-color:#efc0b5;color:#8a3526}.action-status-button{width:auto;margin:0;padding:7px 10px;font-size:12px;white-space:nowrap}

/* V4.23.70 — completed settlement evidence state */
.settlement-evidence-state{display:flex;align-items:center;gap:12px;margin:10px 0 12px;padding:10px 12px;border:1px solid #bde5d8;border-radius:10px;background:#edf9f5}.settlement-evidence-state>div{display:grid;gap:3px;flex:1}.settlement-evidence-state b{font-size:12px;color:#176457}.settlement-evidence-state small{color:#52706b}.settlement-evidence-state button{flex:0 0 auto}.settlement-evidence-state.additional-open{border-style:dashed}.settlement-evidence-state.additional-open small:after{content:' Additional proof selected below.';font-weight:800}@media(max-width:680px){.settlement-evidence-state{align-items:flex-start;flex-wrap:wrap}.settlement-evidence-state button{width:100%}}

/* V4.23.73 — deliberate additional settlement proof mode */
.settlement-evidence-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.settlement-evidence-actions button{white-space:nowrap}.settlement-evidence-state.additional-open{background:#f7fbfb}.settlement-evidence-state.additional-open .settlement-evidence-actions [data-action="additional-proof"]{cursor:default}.additional-proof-cancel[hidden]{display:none}@media(max-width:680px){.settlement-evidence-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.settlement-evidence-actions button{width:100%}}

/* V4.23.73: deliberate additional-proof mode keeps the upload destination explicit. */
.additional-proof-mode-cue{display:flex;align-items:flex-start;gap:10px;margin:0 0 10px;padding:9px 11px;border:1px solid #b8d8d3;border-radius:9px;background:#f3fbf9;font-size:12px}.additional-proof-mode-cue[hidden]{display:none}.additional-proof-mode-cue b{white-space:nowrap;color:#176457}.additional-proof-mode-cue span{color:#405e59}.upload select.additional-proof-locked{pointer-events:none;background:#f1f5f4;color:#314844;border-color:#b8cbc7;font-weight:700}@media(max-width:680px){.additional-proof-mode-cue{display:grid;gap:3px}}

/* V4.23.80 — compact read-only audit cue for the latest stored settlement proof. */
.settlement-proof-audit{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;align-items:baseline;margin-top:7px;padding-top:7px;border-top:1px solid rgba(23,100,87,.14)}.settlement-proof-audit span{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#52706b}.settlement-proof-audit b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#244c45}.settlement-proof-audit small{grid-column:2;color:#60756f;font-size:10px}@media(max-width:680px){.settlement-proof-audit{grid-template-columns:1fr}.settlement-proof-audit small{grid-column:1}}

/* V4.23.80 — direct protected access from the latest settlement-proof audit cue. */
.settlement-proof-audit-link{display:inline-flex;align-items:center;width:max-content;margin-top:5px;color:#117b5c;font-size:12px;font-weight:800;text-decoration:none}.settlement-proof-audit-link:hover,.settlement-proof-audit-link:focus{text-decoration:underline}
.settlement-proof-audit .settlement-proof-audit-link{grid-column:2}@media(max-width:680px){.settlement-proof-audit .settlement-proof-audit-link{grid-column:1}}

/* V4.23.80 — derived payment-proof evidence count for completed settlement audit visibility. */
.settlement-proof-count{grid-column:2;width:max-content;margin-top:3px;padding:2px 7px;border:1px solid rgba(23,100,87,.18);border-radius:999px;background:#f7fbfa;color:#52706b;font-size:10px;font-style:normal;font-weight:800}.settlement-proof-audit .settlement-proof-audit-link{margin-top:3px}@media(max-width:680px){.settlement-proof-count{grid-column:1}}

/* V4.23.81 — jump from the compact completed-settlement audit cue to the existing proof history. */
.settlement-proof-audit-actions{grid-column:2;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:3px}.settlement-proof-audit-actions .settlement-proof-audit-link{grid-column:auto;margin-top:0}.settlement-proof-history-link{width:auto;margin:0;padding:0;border:0;background:transparent;color:#52706b;font:inherit;font-size:12px;font-weight:800;text-decoration:none;cursor:pointer}.settlement-proof-history-link:hover,.settlement-proof-history-link:focus{text-decoration:underline}.asc-case-evidence.proof-history-focus{outline:3px solid rgba(17,123,92,.22);outline-offset:3px}.asc-case-evidence.proof-history-focus .asc-evidence-file[data-document-type="payment_proof"]{box-shadow:0 0 0 2px rgba(17,123,92,.28);transform:translateY(-1px)}@media(max-width:680px){.settlement-proof-audit-actions{grid-column:1}}

/* V4.23.84 — compact read-only close-out record completeness cue for settled service cases. */
.closeout-record-summary{margin-top:7px;padding-top:7px;border-top:1px solid rgba(23,100,87,.14);display:grid;gap:5px}.closeout-record-summary-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.closeout-record-summary-head span{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#52706b}.closeout-record-summary-head b{font-size:10px;color:#244c45}.closeout-record-checks{display:flex;gap:6px;flex-wrap:wrap}.closeout-record-checks span,.closeout-record-checks button,.closeout-record-checks a{padding:2px 7px;border-radius:999px;font-size:10px;font-weight:800}.closeout-record-checks a{text-decoration:none;line-height:1.35}.closeout-record-checks button{font:inherit;line-height:1.35;cursor:pointer}.closeout-record-checks .stored{border:1px solid rgba(23,100,87,.18);background:#f7fbfa;color:#176457}.closeout-record-checks a.stored:hover,.closeout-record-checks a.stored:focus-visible{border-color:rgba(23,100,87,.42);background:#eef8f5;outline:none}.closeout-record-checks a.stored:focus-visible{box-shadow:0 0 0 2px rgba(23,100,87,.14)}.closeout-record-checks .missing{border:1px solid rgba(133,91,33,.2);background:#fffaf2;color:#855b21}.closeout-record-checks button.missing:hover,.closeout-record-checks button.missing:focus-visible{border-color:rgba(133,91,33,.42);background:#fff6e8;outline:none}.closeout-record-checks button.missing:focus-visible{box-shadow:0 0 0 2px rgba(133,91,33,.14)}@media(max-width:680px){.closeout-record-checks{display:grid;grid-template-columns:1fr}.closeout-record-checks span,.closeout-record-checks button,.closeout-record-checks a{width:max-content}}

/* V4.23.86 — stored close-out records open their exact protected evidence directly from the completeness cue. */


/* V4.23.87 — latest stored filename and received date stay visible in the close-out summary. */
.closeout-record-checks a.stored{display:grid;gap:1px;max-width:260px}.closeout-record-checks a.stored b{font-size:10px}.closeout-record-checks a.stored small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#60756f;font-size:9px;font-weight:600}.closeout-record-checks a.stored:hover small,.closeout-record-checks a.stored:focus-visible small{color:#405e59}@media(max-width:680px){.closeout-record-checks a.stored{max-width:min(100%,320px)}}

/* V4.23.88 — derived stored-copy count in the compact close-out record summary. */
.closeout-record-checks a.stored small{font-variant-numeric:tabular-nums}


/* V4.23.89 — dedicated audit queue for completed services with missing close-out evidence files. */
.record-gap-banner{display:flex;align-items:flex-start;gap:10px;margin:10px 0 12px;padding:10px 12px;border:1px solid #e6d19e;border-radius:10px;background:#fffaf0}.record-gap-banner>span{flex:0 0 auto;padding:3px 7px;border-radius:999px;background:#f2e2b9;color:#765a18;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.record-gap-banner>div{display:grid;gap:2px}.record-gap-banner b{font-size:12px;color:#6f5417}.record-gap-banner small{color:#796b48}@media(max-width:680px){.record-gap-banner{display:grid}}

/* V4.23.90 — simple previous/next navigation through completed service record gaps. */
.record-gap-next{margin:-2px 0 12px;border:1px solid #eadbb8;border-top:1px solid #eadbb8;border-radius:9px;background:#fffdf7}
.record-gap-focus-case{outline:3px solid rgba(181,139,45,.24);box-shadow:0 0 0 5px rgba(181,139,45,.08),0 4px 18px rgba(18,42,46,.04);transition:outline-color .25s,box-shadow .25s}

/* V4.23.91 — record-gap queue priority is derived only from the number of missing close-out files. */
.record-gap-banner.gap-3{border-width:2px}.record-gap-banner.gap-3>span{font-weight:950}.record-gap-banner.gap-2>span{font-weight:900}.record-gap-banner.gap-1>span{background:#f6edda;color:#6f5b2d}
