:root{--bg:#f5f4ef;--panel:#fff;--ink:#17191c;--muted:#5d656b;--line:#dedfdc;--orange:#ff6a2b;--orangeDark:#a83708;--green:#136743;--amber:#805500;--red:#ad2836;--shadow:0 8px 28px rgba(23,25,28,.07);--display:Impact,'Arial Narrow','Roboto Condensed',sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font:16px/1.5 Inter,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,select,textarea{font:inherit}button{touch-action:manipulation}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid var(--orangeDark);outline-offset:3px}.shell{max-width:1480px;margin:auto;padding:0 28px}.top{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 0;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;color:inherit;text-decoration:none;border-radius:8px}.brand:hover .brand b span{color:var(--orange)}.logo{width:44px;height:44px;border-radius:8px;display:grid;place-items:center;background:var(--orange);font-size:24px;font-weight:1000;transform:skew(-8deg)}.brand b{font-size:26px;font-weight:1000;letter-spacing:-1px;font-style:italic}.brand b span{color:var(--orangeDark)}.brand small{display:block;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;margin-top:3px}.topActions,.actions,.chips{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.pill,.status{display:inline-flex;align-items:center;max-width:100%;overflow-wrap:anywhere;border-radius:6px;padding:6px 9px;font-size:12px;font-weight:800;border:1px solid #bedbc9;background:#eaf6ee;color:#145b3a}.pill.warn,.status.warn{border-color:#ecd49f;background:#fff6df;color:#754b00}.status.bad{border-color:#e4b5bc;background:#fff1f2;color:#9b2331}.status.info{border-color:#bfd8e9;background:#eef6fc;color:#245a7c}.hero{position:relative;isolation:isolate;overflow:hidden;min-height:420px;margin:24px 0;padding:54px 48px;border-radius:16px;background:#17191c url('assets/torxxshift-technician-hero.webp') center/cover no-repeat;color:#fff;box-shadow:var(--shadow)}.hero:before,.overviewBanner:before{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#17191cf5 0%,#17191cd1 44%,#17191c20 100%)}.hero:after,.overviewBanner:after{content:'';position:absolute;bottom:0;left:42px;width:88px;height:7px;background:var(--orange);transform:skew(-25deg)}.kicker{color:var(--orange);font-size:12px;font-weight:900;letter-spacing:.18em}.hero h1{font-family:var(--display);font-size:clamp(40px,5vw,66px);font-weight:900;line-height:1.02;letter-spacing:.01em;margin:12px 0}.hero p{max-width:570px;margin:0;color:#e7e8e8;font-size:17px}.heroScope{margin-top:21px;color:#d6dade;font-size:11px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.muted{color:var(--muted)}.layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:24px;margin-top:24px}.side{position:sticky;top:20px;min-height:680px;background:#17191c;color:#fff;border-radius:12px;padding:13px 10px}.sideHead{padding:12px 12px 23px;margin-bottom:16px;border-bottom:1px solid #383d40}.sideHead small{display:block;color:#bdc2c5;margin-top:4px}.navbtn{width:100%;min-height:48px;border:0;border-left:3px solid transparent;border-radius:6px;background:transparent;color:#cbd0d3;text-align:left;padding:12px;font-size:14px;font-weight:700;cursor:pointer;margin:2px 0}.navbtn:hover{background:#292d31;color:#fff}.navbtn.active{border-left-color:var(--orange);background:#2a2d30;color:#fff}.sideFoot{margin:28px 12px 0;padding-top:20px;border-top:1px solid #383d40;color:#bac0c4;font-size:11px;font-weight:800;letter-spacing:.15em;line-height:1.8;text-transform:uppercase}.sideFoot strong{display:block;color:var(--orange);margin-bottom:7px}.mobileNav{display:none}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}.card{grid-column:span 4;min-width:0;padding:23px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:var(--shadow);overflow-wrap:anywhere}.card.half{grid-column:span 6}.card.wide{grid-column:span 8}.card.full{grid-column:1/-1}.card h2,.card h3{margin:0 0 11px;line-height:1.25}.card h2{font-size:29px;letter-spacing:-.035em}.card h3{font-size:19px;letter-spacing:-.025em}.pageHeading{border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;padding:5px 0 22px}.overviewBanner{position:relative;isolation:isolate;overflow:hidden;min-height:225px;border:0;background:#17191c radial-gradient(circle at 88% 32%, rgba(255,106,43,.75) 0 4%, transparent 4.5%), radial-gradient(circle at 76% 64%, rgba(255,138,69,.35) 0 10%, transparent 10.5%), linear-gradient(118deg, #17191c 0%, #17191c 54%, #343238 100%) center/cover no-repeat;color:#fff;padding:30px}.overviewBanner h2{font-family:var(--display);font-size:clamp(32px,3.3vw,48px);font-weight:900;line-height:1.05;letter-spacing:.01em;max-width:600px}.overviewBanner .muted{color:#e2e4e5;max-width:560px}.overviewBanner .pill{background:#17191c9c;color:#fff;border-color:#747a7e}.statCard{border-top:3px solid #e3ded6}.statLabel{font-size:14px;font-weight:700}.metric{font-size:clamp(29px,3vw,41px);font-weight:900;letter-spacing:-.04em;line-height:1.18;margin:8px 0}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 16px;border:1px solid #c5cace;border-radius:7px;background:#fff;color:var(--ink);font-size:14px;font-weight:800;cursor:pointer}.btn:hover{background:#f0f1ee;border-color:#929aa0}.btn.primary{background:var(--orange);border-color:var(--orange);color:#17191c}.btn.primary:hover{background:#ff824d;border-color:#ff824d}.btn.danger{background:#fff1f2;border-color:#dca0a8;color:#952431}.btn.small{min-height:42px;padding:8px 12px;font-size:13px}.btn:disabled{opacity:.55;cursor:not-allowed}.notice{margin-top:14px;padding:14px 16px;border:1px solid #c3d3de;border-left:4px solid #557e9f;border-radius:7px;background:#f0f6fa;color:#22506c;line-height:1.6;font-size:14px;white-space:pre-wrap}.notice.ok{border-color:#b9dac7;border-left-color:#237a50;background:#eef8f2;color:#175a38}.notice.warn{border-color:#ebd69f;border-left-color:#ad7300;background:#fff8e7;color:#704900}.notice.bad{border-color:#e5b7bd;border-left-color:#ad2836;background:#fff1f2;color:#902232}.form label{display:block;margin:16px 0 7px;color:#384047;font-size:14px;font-weight:700}.form input,.form select,.form textarea{width:100%;min-height:46px;padding:11px 12px;border:1px solid #bcc4c8;border-radius:7px;background:#fff;color:var(--ink);font-size:16px}.form textarea{min-height:96px;resize:vertical}.form input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--orangeDark);vertical-align:middle}.row2,.row3,.row4{display:grid;gap:15px}.row2{grid-template-columns:repeat(2,minmax(0,1fr))}.row3{grid-template-columns:repeat(3,minmax(0,1fr))}.row4{grid-template-columns:repeat(4,minmax(0,1fr))}.item{padding:19px 0;border-top:1px solid var(--line)}.item:first-child{border-top:0}.item:last-child{padding-bottom:0}.itemHead,.split{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.itemHead>div,.split>div{min-width:0}.itemHead b{font-size:16px}.chips{margin-top:11px;gap:7px}.chip{padding:6px 9px;border:1px solid #e0e2de;border-radius:5px;background:#f2f3f0;color:#41494f;font-size:13px;font-weight:650}.chip.green{background:#fff0e7;border-color:#f0d1bd;color:#93350f}.divider{height:1px;background:var(--line);margin:17px 0}.skillgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.form label.skill{display:flex;align-items:center;gap:8px;min-height:48px;margin:0;padding:11px;border:1px solid var(--line);border-radius:7px;background:#fafbf9;font-size:14px}.skill:has(input:checked){background:#fff0e7;border-color:#d86b39}.steps{display:grid;gap:10px}.step{display:flex;gap:13px;align-items:flex-start;padding:15px 0;border-bottom:1px solid var(--line)}.step:last-child{border-bottom:0}.stepNum{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:6px;background:#fff0e7;color:var(--orangeDark);font-size:14px;font-weight:900}.step.done .stepNum{background:#e2f4e9;color:#14613e}.legal{max-height:300px;overflow:auto;padding:17px;border:1px solid var(--line);border-radius:7px;background:#f8f9f6;color:#424a51;white-space:pre-wrap;font-size:14px;line-height:1.7}.qr{padding:15px;border:1px dashed #969ea3;border-radius:7px;background:#f6f7f4;font:14px/1.6 ui-monospace,monospace;word-break:break-all}.empty{padding:31px 20px;border:1px dashed #bdc4c6;border-radius:8px;background:#fafbf8;color:var(--muted);text-align:center}.hidden{display:none!important}.toast{position:fixed;z-index:50;right:20px;bottom:20px;max-width:390px;padding:16px 20px;border-left:4px solid var(--orange);border-radius:7px;background:#17191c;color:#fff;box-shadow:0 8px 30px #0003}.authScreen .card.wide{grid-column:span 7}.authScreen .authAside{grid-column:span 5;background:#edece6;border-color:#d9d9d2;box-shadow:none;padding:31px}.authAside h3{font-family:var(--display);font-size:31px;line-height:1.08;letter-spacing:.01em}.authAside .step{border-color:#d3d4cd}.authEyebrow{margin-bottom:9px;color:var(--orangeDark);font-size:12px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.skipLink{position:absolute;z-index:100;top:-80px;left:20px;padding:12px 16px;background:var(--orange);color:var(--ink);font-weight:800}.skipLink:focus{top:10px}footer{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-top:40px;padding:24px 0 32px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}footer b{color:var(--ink)}.releaseMark{font:11px ui-monospace,monospace;color:#646b70;text-align:right}@media(max-width:1020px){.layout{grid-template-columns:205px minmax(0,1fr);gap:18px}.shell{padding:0 20px}.row4{grid-template-columns:repeat(2,minmax(0,1fr))}.skillgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.layout{grid-template-columns:1fr;margin-top:16px}.side{display:none}.mobileNav{display:flex;gap:6px;overflow-x:auto;margin-top:17px;padding:9px;background:#17191c;border-radius:8px}.mobileNav .navbtn{width:auto;flex:0 0 auto;white-space:nowrap;border-left:0;border-bottom:3px solid transparent;margin:0;padding:10px 13px}.mobileNav .navbtn.active{border-bottom-color:var(--orange)}.hero{min-height:270px;padding:31px}.authScreen .card.wide{grid-column:span 7}.authScreen .authAside{grid-column:span 5;padding:23px}}@media(max-width:640px){.shell{padding:0 14px}.top{padding:16px 0;flex-wrap:wrap}.logo{width:38px;height:38px;font-size:21px}.brand b{font-size:23px}.topActions .pill{display:none}.topActions .btn.small{padding:9px 11px}.hero{min-height:262px;margin:17px 0;padding:26px 22px;background-position:65% center}.hero:before{background:linear-gradient(90deg,#17191cf2,#17191cc2 67%,#17191c6b)}.hero h1{font-size:43px}.hero p{max-width:320px;font-size:15px}.hero:after,.overviewBanner:after{left:22px}.grid{gap:14px}.card,.card.half,.card.wide,.authScreen .card.wide,.authScreen .authAside{grid-column:1/-1;padding:20px}.statCard{grid-column:span 6}.statCard .metric{font-size:29px}.row2,.row3,.row4{grid-template-columns:1fr}.row2:has(#first){grid-template-columns:1fr 1fr}.skillgrid{grid-template-columns:1fr}.itemHead,.split{flex-wrap:wrap}.overviewBanner{min-height:230px;padding:24px}.overviewBanner:before{background:linear-gradient(90deg,#17191cf3,#17191ccd 70%,#17191c7b)}.overviewBanner h2{font-size:36px;max-width:310px}.overviewBanner .split>.pill{display:none}.overviewBanner .muted{max-width:310px;font-size:14px}.actions .btn{flex:1 1 auto}.mobileNav .navbtn{font-size:13px}.toast{left:14px;right:14px;bottom:14px;max-width:none}footer{flex-direction:column;margin-top:28px}.releaseMark{text-align:left}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.checkoutPrompt{margin-top:17px;padding:16px;border:1px solid #f0d2a8;border-left:5px solid #b1461c;border-radius:8px;background:#fff8ee}.checkoutPrompt.checkoutReview,.shiftNeedsReview{border-color:#e3abb1;border-left-color:#ad2836;background:#fff4f4}.checkoutPrompt p{margin:6px 0 12px;color:#5d656b}.checkoutPrompt details{margin-top:10px}.checkoutPrompt summary{cursor:pointer;color:#902232;font-weight:750}.checkoutPrompt .form{margin-top:12px}.shiftNeedsReview{padding:14px;border-top:0;border-bottom:0;border-right:0;border-radius:7px}.shiftViews{margin-bottom:14px}
.checkoutPrompt.checkoutSubmitted{border-color:#a8d8bb;border-left-color:#17804b;background:#f1fbf4}

.assignmentGroupTitle{font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#526068;margin:18px 0 10px;padding-bottom:7px;border-bottom:1px solid #dedfdc}.assignmentGroup:first-child .assignmentGroupTitle{margin-top:3px}.pastAssignments{margin-top:24px}.checkoutFollowup{margin-top:10px}.checkoutFollowup summary{cursor:pointer;font-weight:700;color:#324d59}.checkoutFollowup details[open]{padding:12px 14px;border:1px solid #dedfdc;border-radius:8px;background:#fafaf8}.checkoutFollowup .form{margin-top:12px}.checkoutFollowup .muted{margin:8px 0}

.shiftFolders>h3{margin-bottom:14px}.shiftFolder{margin-top:12px;border:1px solid var(--line);border-radius:9px;background:#fafbf9;overflow:hidden}.shiftFolder summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;cursor:pointer;font-weight:850;color:#2d3439;list-style-position:inside}.shiftFolder summary:hover{background:#f1f2ef}.shiftFolderCount{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 9px;border-radius:999px;background:#17191c;color:#fff;font-size:12px}.shiftFolder[open] summary{border-bottom:1px solid var(--line);background:#f4f5f2}.shiftFolderBody{padding:0 18px 18px}.shiftFolderBody>.empty{margin-top:18px}@media(max-width:640px){.shiftFolder summary{padding:14px}.shiftFolderBody{padding:0 14px 14px}}

/* HOMEPAGE-POLISH-01: public image card only; application workspaces unchanged. */
.authScreen .authVisual{grid-column:span 5;position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:540px;padding:32px;overflow:hidden;border:0;background:#17191c url('assets/torxxshift-service-bays.webp') center/cover no-repeat;color:#fff;box-shadow:var(--shadow)}.authScreen .authVisual:before{content:'';position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(23,25,28,.88) 100%)}.authVisualCopy{max-width:420px}.authVisualCopy .authEyebrow{color:#ff925f}.authVisualCopy h3{margin:6px 0 8px;font-family:var(--display);font-size:34px;line-height:1.05}.authVisualCopy p{margin:0;color:#eef0f1}.hero h1,.hero p,.hero .kicker,.heroScope{position:relative;z-index:1}@media(max-width:900px){.authScreen .authVisual{grid-column:span 5;min-height:500px}}@media(max-width:640px){.authScreen .authVisual{grid-column:1/-1;min-height:360px;padding:24px}.hero{min-height:390px;padding:34px 24px;background-position:62% center}.hero h1{max-width:290px}}

/* UX-POLISH-01 */
.appLoading{position:fixed;z-index:999;inset:0;display:grid;place-items:center;padding:24px;background:#17191c;color:#fff}.loadingCard{display:flex;align-items:center;gap:15px;padding:22px 25px;border:1px solid #3a3e42;border-radius:14px;background:#23272a;box-shadow:0 24px 70px #0008}.loadingCard b{display:block;font-size:24px;font-style:italic}.loadingCard b span{color:var(--orange)}.loadingCard small{display:block;margin-top:3px;color:#c8cdd0}.loadingSpinner{width:25px;height:25px;margin-left:14px;border:3px solid #5d6266;border-top-color:var(--orange);border-radius:50%;animation:txsSpin .8s linear infinite}@keyframes txsSpin{to{transform:rotate(360deg)}}.modal{position:fixed;z-index:500;inset:0;display:grid;place-items:center;padding:20px;background:rgba(12,14,16,.72);backdrop-filter:blur(4px)}.modalCard{width:min(520px,100%);padding:28px;border-radius:14px;background:#fff;color:var(--ink);box-shadow:0 26px 80px #0007}.modalCard h2{margin:0 0 10px;font-size:27px}.modalCard p{margin:0 0 22px;color:#4e575d;white-space:pre-line;line-height:1.65}.modalCard .actions{justify-content:flex-end}.empty{position:relative;min-height:112px;display:grid;place-items:center;padding:34px 24px!important;background:linear-gradient(135deg,#fafbf8,#f3f3ef)!important;color:#596269!important;font-weight:650}.empty:before{content:'—';display:block;margin-bottom:-24px;color:var(--orange);font-size:26px;font-weight:900}#main,.layout,.card{min-width:0}@media(max-width:640px){.topActions{width:100%}.topActions .btn{flex:1}.modal{padding:14px}.modalCard{padding:23px}.modalCard .actions{display:grid;grid-template-columns:1fr}.modalCard .btn{width:100%}.loadingCard{width:min(100%,390px)}.card{overflow-x:auto}.form .actions{display:grid;grid-template-columns:1fr}.form .actions .btn{width:100%}.itemHead>.status{flex:none}.releaseMark{text-align:left}}
/* BADGE-NOWRAP-01: keep roles, urgency, status, and skill labels readable everywhere. */
.pill,.status,.chip{max-width:none;white-space:nowrap;overflow-wrap:normal;word-break:normal;flex:0 0 auto}.itemHead,.split{min-width:0}.itemHead>div,.split>div{min-width:0}@media(max-width:640px){.pageHeading .split{align-items:center}.pageHeading .pill{margin-left:auto}.itemHead>.status{max-width:100%;font-size:11px}}

/* AUTH-FLOW-07: pair the login card with the truck-bay visual. */
@media(min-width:641px){
  .authScreen .card.wide{grid-column:span 7;order:1;min-height:540px;display:flex;flex-direction:column}
  .authScreen .authVisual{grid-column:span 5;order:1;min-height:540px}
}
