/* Scoped to My Route: proportions follow Walt's approved IMG_1309 reference. */
.todays-route{container-type:inline-size;max-width:900px;margin:0 auto;padding:20px 26px 28px;border:1px solid #d8dbea;border-left:12px solid #008127;border-radius:16px;background:linear-gradient(105deg,#fff,#fafbff);font-family:Arial,Helvetica,sans-serif;color:#080808;box-sizing:border-box}
.todays-route .heading{margin:0 0 16px;min-height:0;padding:0;align-items:flex-start}.todays-route .heading h1{font-family:inherit;font-size:clamp(20px,4.1cqw,36px);font-weight:800;line-height:1.1;letter-spacing:-.025em;margin:0}.todays-route .heading .eyebrow:empty,.todays-route .heading p:empty{display:none}.todays-route .heading>.driver-heading-actions:empty{display:none}.todays-route .heading>.driver-page-menu{margin-left:auto}
.today-route-choices{display:flex;gap:12px;flex-wrap:wrap}.todays-route .today-route-choice{font-family:inherit;font-size:clamp(13px,3cqw,23px);font-weight:750;line-height:1.2;padding:9px 18px;border:1px solid #d4d8e9;border-radius:10px;background:transparent;color:#080808;min-height:40px}.todays-route .today-route-choice.selected{background:#080808;color:white;border-color:#080808}.today-route-count{font-size:clamp(13px,3cqw,24px);font-weight:700;color:#797f9e;margin:10px 0 0}.today-route-identity{margin-top:38px;padding-bottom:22px;border-bottom:1px solid #d9ddec}.today-route-identity h2{font-family:inherit;font-size:clamp(30px,9.2cqw,78px);line-height:1.07;letter-spacing:-.035em;margin:0 0 14px;font-weight:900;overflow-wrap:break-word}.today-route-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;color:#797f9e;font-size:clamp(12px,2.9cqw,24px);font-weight:700}.today-route-meta .badge{font-size:inherit;border-radius:9px;padding:5px 12px;line-height:1.2}.today-route-meta .badge:not(.gray){background:#b6f4b9;color:#086915}.today-route-mileage{border-left:1px solid #797f9e;padding-left:18px}
.today-radio{margin-top:44px}.today-radio-talk{width:100%;display:block;box-sizing:border-box;background:linear-gradient(110deg,#007820,#008523 55%,#006d1a);border:0;border-radius:20px;padding:24px 28px 30px;color:#fff;text-align:left;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;font-family:inherit}.today-radio-talk:active{background:#005d19}.today-radio-talk:focus-visible,.today-route-section summary:focus-visible{outline:3px solid #171717;outline-offset:4px}.today-radio-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.today-radio-label{display:block;flex:0 0 46%;font-size:clamp(44px,15.7cqw,133px);font-weight:900;line-height:.96;letter-spacing:-.045em}.today-radio-top img{display:block;width:52%;max-width:none;height:auto;object-fit:contain;pointer-events:none}.today-radio-description{display:block;font-size:clamp(14px,3.75cqw,31px);font-weight:700;line-height:1.27;margin-top:12px;max-width:none;letter-spacing:-.015em}.today-radio-instruction{text-align:center;font-size:clamp(14px,4cqw,32px);font-weight:800;line-height:1.3;margin:22px 0 0;letter-spacing:-.025em}.today-radio-controls{margin-top:12px}.today-radio-controls>summary{cursor:pointer;font-size:12px;color:#727991}.today-radio-controls .sub{font-size:13px}
.today-route-sections{margin-top:94px;display:grid;gap:18px}.today-route-section{background:transparent;border:1.5px solid #878da7;border-radius:13px;overflow:hidden}.today-route-section>summary{display:flex;align-items:center;gap:18px;padding:18px 22px;cursor:pointer;font-size:clamp(16px,3.9cqw,31px);font-weight:800;line-height:1.15;list-style:none;letter-spacing:-.025em}.today-route-section>summary::-webkit-details-marker{display:none}.today-section-icon{width:clamp(24px,5.8cqw,46px);height:clamp(24px,5.8cqw,46px);flex:none}.today-section-chevron{width:22px;height:22px;margin-left:auto;flex:none;transition:transform .15s}.today-route-section[open]>summary .today-section-chevron{transform:rotate(180deg)}.today-route-section[open]>summary{border-bottom:1px solid #d9ddec}.today-section-content{padding:12px}.today-section-content>.card{margin:0 0 12px}.today-section-content>.card:last-child{margin-bottom:0}.today-stops-hint{font-size:clamp(12px,2.9cqw,23px);color:#797f9e;font-weight:700;line-height:1.4;margin:24px 4px 0}.today-route-history{margin-top:32px}.today-route-carryover{margin-top:20px}
@media(max-width:480px){.todays-route{padding:16px 12px 22px;border-left-width:7px;border-radius:12px}.today-route-identity{margin-top:26px;padding-bottom:18px}.todays-route .today-route-choice{padding:7px 12px;min-height:36px}.today-route-meta{gap:8px}.today-route-mileage{padding-left:9px}.today-radio{margin-top:28px}.today-radio-talk{padding:14px 14px 20px;border-radius:14px}.today-radio-instruction{margin-top:16px}.today-route-sections{margin-top:62px;gap:12px}.today-route-section>summary{padding:14px 12px;gap:12px}.today-section-chevron{width:18px;height:18px}.today-section-content{padding:6px}}

/* All route identity belongs to the single gray header, above Team Radio. */
.today-route-header{background:#f0f1f5;margin:-20px -26px 0;padding:20px 26px 24px;border-radius:4px 14px 0 0;border-bottom:1px solid #d9ddec}
.today-route-header .today-route-identity{background:transparent;border:0;border-radius:0;box-shadow:none;padding-bottom:0;margin-bottom:0}
.today-radio-talk{padding-top:8px;padding-bottom:10px}
@media(max-width:480px){.today-route-header{margin:-16px -12px 0;padding:16px 12px 18px;border-radius:4px 10px 0 0}.today-radio-talk{padding-top:4px;padding-bottom:6px}}

/* Match the pre-trip Menu / Back anchor without changing its protected styles. */
.today-route-header .heading{position:relative;display:block;min-height:140px;padding-right:82px}
.today-route-header .heading>.driver-page-menu{display:flex;position:absolute;top:0;right:0;width:54px!important;height:86px;min-width:54px;min-height:86px;padding:10px 5px;align-items:center;justify-content:center;background:#203d36!important;color:#fff;border:0;border-radius:11px;font-size:15px!important;line-height:1.1;box-shadow:0 2px 5px #0002}
.today-route-header .heading>.consistent-back,.today-route-header .today-route-back{position:absolute;right:0;bottom:0;display:inline-flex;align-items:center;min-height:44px;padding:8px 4px;border:0;border-radius:0;background:transparent;color:var(--ink);font-size:18px;font-weight:750;white-space:nowrap;text-decoration:none;margin:0;cursor:pointer}

/* Latest approved copy order: instruction, compact radio, explanation, controls. */
.today-radio-instruction{margin:0 0 16px}
.today-radio-description{color:#545b72;margin:18px 4px 0;font-size:clamp(15px,3cqw,24px);font-weight:600;line-height:1.4}
.today-radio-controls{margin-top:22px;border:1.5px solid #878da7;border-radius:12px;overflow:hidden}
.today-radio-controls>summary{display:list-item;list-style-position:inside;box-sizing:border-box;min-height:52px;padding:15px 18px;font-size:18px;font-weight:750;color:#171d21;cursor:pointer;background:#f8f9fc}
.today-radio-controls[open]>summary{border-bottom:1px solid #d9ddec}
.today-radio-controls>.sub,.today-radio-controls>.actions{margin:14px 18px}
.today-radio-controls>summary:focus-visible{outline:3px solid #203d36;outline-offset:-3px}

.today-route-meta .badge.today-status-assigned{background:#fff0ad;color:#735400}
/* Keep the route selector directly beneath Today's Route; overlay page controls. */
.today-route-header .heading{min-height:0;padding-right:86px;margin-bottom:16px}
.today-route-header .heading>.consistent-back,.today-route-header .today-route-back{top:90px;bottom:auto}
@media(max-width:480px){.today-route-header .heading{min-height:0;margin-bottom:14px}}
/* Walt requested the left accent stripe removed from My Route. */
.todays-route{border-left:1px solid #d8dbea}
@media(max-width:480px){.todays-route{border-left-width:1px}}

/* My Route keeps its title and route selector together while Back follows the
   bottom edge of the complete gray header, even when the details wrap. */
.today-route-header{position:relative;padding-bottom:72px}
.today-route-header .heading{position:static}
.today-route-header .heading>.driver-page-menu{top:20px;right:26px}
.today-route-header .heading>.consistent-back,.today-route-header .today-route-back{top:auto;right:26px;bottom:14px}
@media(max-width:480px){
 .today-route-header{padding-bottom:66px}
 .today-route-header .heading>.driver-page-menu{top:16px;right:12px}
 .today-route-header .heading>.consistent-back,.today-route-header .today-route-back{right:12px;bottom:10px}
}

/* The desktop shell's extra top bar has no purpose on this page; Menu stays
   in the route header. Keep the rest of the app shell unchanged. */
@media(min-width:701px){
 body:has(#liveApp .todays-route) .topbar{display:none}
 body:has(#liveApp .todays-route) .content{padding-top:20px}
}

/* Let every radio action fit inside the expanded panel on narrow screens. */
.today-radio-controls>.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.today-radio-controls>.actions>.btn{min-width:0;width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center}
@media(max-width:350px){.today-radio-controls>.actions{grid-template-columns:minmax(0,1fr)}}

/* Desktop My Route keeps its established Back placement. Only the phone layout
   anchors Back to the lower right of the complete route header. */
@media(min-width:701px){
 .today-route-header{padding-bottom:24px}
 .today-route-header .heading{position:relative}
 .today-route-header .heading>.consistent-back,.today-route-header .today-route-back{top:90px;right:0;bottom:auto}
}

/* Stop actions share the same two-column button rhythm for pickup and delivery. */
.today-route-sections .stopactions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}
.today-route-sections .stopactions>.delivery-evidence-grid{display:contents}
.today-route-sections .stopactions>.stop-evidence-field,.today-route-sections .stopactions>.delivery-evidence-grid>.stop-evidence-field{display:block;width:100%;min-width:0;margin:0}
.today-route-sections .stopactions .btn,.today-route-sections .u14-stop-actions .btn{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-width:0;min-height:58px;height:auto;padding:8px;text-align:center;white-space:normal;overflow-wrap:anywhere;line-height:1.25}
.today-route-sections .stopactions .route-upload{height:58px;font-size:inherit}
.today-route-sections .u14-stop-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media(max-width:350px){.today-route-sections .stopactions,.today-route-sections .u14-stop-actions{grid-template-columns:minmax(0,1fr)}}
.today-advice-link{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-height:52px;margin:0 0 10px;white-space:normal;text-align:center}
.today-route-section .today-section-content>.card{min-width:0}

/* November 15 restoration: original tall radio, explanation inside, instruction below.
   The component also appears outside .todays-route in history and previous routes. */
.today-radio{container-type:inline-size;width:100%;max-width:900px;margin-left:auto;margin-right:auto;font-family:Arial,Helvetica,sans-serif}
.today-radio-talk{padding:24px 28px 30px}
.today-radio-talk .today-radio-description{color:#fff;font-size:clamp(14px,3.75cqw,31px);font-weight:700;line-height:1.27;margin:12px 0 0;letter-spacing:-.015em}
.today-radio>.today-radio-instruction{color:#080808;margin:22px 0 0;font-size:clamp(14px,4cqw,32px);font-weight:800;line-height:1.3;text-align:center}
@media(max-width:480px){.today-radio-talk{padding:14px 14px 20px}.today-radio>.today-radio-instruction{margin-top:16px}}
