:root{--ink:#202522;--cream:#f4f0e6;--orange:#f06432;--steel:#66716c;--white:#fff;--line:#dad6cc;--green:#2f7455;--red:#a84a36}*{box-sizing:border-box}body{margin:0;background:#eeebe4;color:var(--ink);font-family:"IBM Plex Sans",sans-serif}button,input,select,textarea{font:inherit}.app-frame{min-height:100vh;display:grid;grid-template-columns:238px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--ink);color:white;padding:24px 16px;display:flex;flex-direction:column}.app-brand{display:flex;gap:11px;align-items:center;color:white;text-decoration:none;padding:0 8px 27px}.app-brand>i,.driver-top a>i{width:25px;height:25px;border:1px solid #66716c;position:relative}.app-brand>i:after,.driver-top a>i:after{content:"";position:absolute;width:8px;height:8px;left:8px;top:7px;background:var(--orange);border-radius:50% 50% 50% 0;transform:rotate(-45deg)}.app-brand span{display:grid;font-size:14px}.app-brand small{font:500 8px "IBM Plex Mono";color:#9ea6a1;margin-top:3px}.sidebar nav{display:grid;gap:5px}.sidebar nav a{color:#aeb5b1;text-decoration:none;padding:11px 12px;font-size:13px;display:flex;gap:11px;align-items:center;border-radius:3px}.sidebar nav a span{width:18px;text-align:center}.sidebar nav a:hover,.sidebar nav a.active{background:#303632;color:white}.sidebar nav a.active{box-shadow:inset 3px 0 var(--orange)}.sidebar-foot{margin-top:auto;padding:14px 8px;display:grid;gap:12px}.sidebar-foot a{color:#c2c8c4;font-size:11px}.sidebar-foot small{font:500 8px "IBM Plex Mono";color:#717b75}.workspace{min-width:0}.workspace-head{height:105px;background:white;border-bottom:1px solid var(--line);padding:0 34px;display:flex;align-items:center;justify-content:space-between}.workspace-head p{font:600 9px "IBM Plex Mono";letter-spacing:.12em;color:var(--orange);margin:0 0 5px}.workspace-head h1{margin:0;font-size:28px;letter-spacing:-.025em}.head-actions{display:flex;gap:12px;align-items:center}.operator{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:var(--ink);color:#fff;font:600 10px "IBM Plex Mono"}.button{display:inline-flex;align-items:center;gap:9px;border:0;background:var(--orange);color:white;text-decoration:none;padding:11px 15px;font-weight:700;font-size:12px;cursor:pointer}.button.secondary{background:white;color:var(--ink);border:1px solid #bdb9b0}.workspace-body{padding:30px 34px 70px}.flash,.error-summary{margin:18px 34px 0;padding:13px 15px;background:#dfede3;color:var(--green);font-size:13px}.error-summary{background:#f8e3dc;color:var(--red)}.error-summary ul{margin:7px 0 0}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:25px}.metric{background:white;border:1px solid var(--line);padding:18px}.metric small{font:600 8px "IBM Plex Mono";letter-spacing:.1em;color:var(--steel)}.metric b{display:block;font-size:31px;margin:8px 0 1px}.metric span{font-size:11px;color:var(--steel)}.section-card{background:white;border:1px solid var(--line);margin-bottom:20px}.section-title{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}.section-title h2{font-size:17px;margin:0}.section-title a{font-size:11px;color:var(--orange);font-weight:700}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;background:#f5f2ec;padding:10px 14px;font:600 8px "IBM Plex Mono";letter-spacing:.08em;color:var(--steel)}.data-table td{padding:13px 14px;border-top:1px solid #e8e4dc;font-size:12px;vertical-align:top}.data-table td b,.data-table td small{display:block}.data-table td small{color:var(--steel);margin-top:3px}.data-table a{color:var(--ink);text-decoration:none}.data-table a:hover{color:var(--orange)}.pill{display:inline-block;padding:5px 7px;background:#e6eee8;color:var(--green);font:600 8px "IBM Plex Mono";text-transform:uppercase}.pill.orange{background:#fff0e7;color:#b95830}.pill.gray{background:#ecebe7;color:var(--steel)}.run-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.run-card{background:white;border:1px solid var(--line)}.run-card>header{padding:16px 18px;background:var(--ink);color:white;display:flex;justify-content:space-between}.run-card header small,.stop-card small{font:500 8px "IBM Plex Mono";color:#aeb5b1}.run-card header h3{margin:4px 0 0}.run-card header span{text-align:right;font-size:11px}.stop-card{padding:15px 18px;border-top:1px solid var(--line);display:grid;grid-template-columns:30px 1fr auto;gap:10px;text-decoration:none;color:var(--ink)}.stop-card>i{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#ede9e1;font-style:normal;font-size:10px}.stop-card b,.stop-card span{display:block}.stop-card span{font-size:11px;color:var(--steel);margin-top:3px}.stop-card>em{font-style:normal;font:600 8px "IBM Plex Mono";color:var(--steel)}.stop-card.complete>i{background:#dceadf;color:var(--green)}.stop-card.review>i{background:#ffe8dc;color:var(--orange)}.empty{padding:45px;text-align:center;color:var(--steel)}.detail-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:20px}.detail-card{background:white;border:1px solid var(--line);padding:22px}.detail-card h2{font-size:20px;margin:0 0 4px}.detail-card>p{color:var(--steel);font-size:12px}.definition-list{margin:20px 0}.definition-list div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #e6e2da;font-size:12px}.definition-list dt{color:var(--steel)}.allocation{border:1px solid var(--line);margin-top:10px;padding:14px;display:grid;grid-template-columns:1fr repeat(3,80px);gap:10px}.allocation small,.allocation b{display:block}.allocation small{color:var(--steel);font-size:10px}.allocation>div:not(:first-child){text-align:right}.form-card{max-width:850px;background:white;border:1px solid var(--line);padding:25px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-field{display:grid;gap:6px;font-size:11px;font-weight:600}.form-field.full{grid-column:1/-1}.form-field input,.form-field select,.form-field textarea{border:1px solid #bbb7ae;padding:11px;background:white}.line-builder{grid-column:1/-1;border-top:1px solid var(--line);padding-top:20px}.line-entry{display:grid;grid-template-columns:1fr 130px 35px;gap:10px;margin-top:10px}.line-entry select,.line-entry input{border:1px solid #bbb7ae;padding:10px}.icon-button{border:1px solid #bbb7ae;background:white;cursor:pointer}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;margin-top:10px}.progress-line{height:5px;background:#ddd9d1;margin-top:10px}.progress-line i{display:block;height:100%;background:var(--orange)}
.driver-body{background:var(--cream)}.driver-top{height:65px;background:var(--ink);color:white;padding:0 max(16px,calc((100vw - 760px)/2));display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid var(--orange)}.driver-top a{display:flex;align-items:center;gap:9px;color:white;text-decoration:none;font-size:13px}.driver-top a>i{width:27px;height:27px}.sync-state{display:flex;align-items:center;gap:7px}.sync-state>i{width:7px;height:7px;background:#6fc58d;border-radius:50%}.sync-state span{display:grid;font:600 8px "IBM Plex Mono";letter-spacing:.06em}.sync-state small{color:#9ca5a0;margin-top:2px}.driver-main{width:min(760px,100%);margin:auto;padding:25px 16px 70px}.driver-flash,.driver-errors{width:min(728px,calc(100% - 32px));margin:14px auto 0;padding:12px;background:#dceadf;color:var(--green);font-size:12px}.driver-errors{background:#f7dfd7;color:var(--red)}.driver-errors p{margin:3px}.driver-kicker{font:600 9px "IBM Plex Mono";color:var(--orange);letter-spacing:.1em}.driver-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:20px}.driver-heading h1{font-size:27px;margin:5px 0}.driver-heading p{color:var(--steel);font-size:12px}.driver-heading>span{font:600 9px "IBM Plex Mono";background:white;padding:8px}.driver-stop-list{display:grid;gap:12px}.driver-stop{display:grid;grid-template-columns:42px 1fr 20px;gap:12px;background:white;border:1px solid var(--line);padding:16px;color:var(--ink);text-decoration:none}.driver-stop>i{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--ink);color:white;font-style:normal}.driver-stop.complete>i{background:var(--green)}.driver-stop.review>i{background:var(--orange)}.driver-stop h2{font-size:16px;margin:0 0 3px}.driver-stop p,.driver-stop small{display:block;margin:2px 0;color:var(--steel);font-size:11px}.driver-stop>span{align-self:center}.stop-instructions{padding:14px;background:#fff7e8;border-left:3px solid var(--orange);margin-bottom:15px;font-size:12px}.stop-instructions b{display:block;font:600 8px "IBM Plex Mono";margin-bottom:5px}.driver-line{background:white;border:1px solid var(--line);margin-bottom:12px}.driver-line>header{padding:15px;border-bottom:1px solid var(--line)}.driver-line header small{font:600 8px "IBM Plex Mono";color:var(--orange)}.driver-line h2{font-size:16px;margin:4px 0}.driver-line header p{font-size:11px;color:var(--steel);margin:0}.driver-fields{padding:15px}.quantity-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quantity-pair>div,.quantity-pair>label{background:#f3f0e9;padding:12px}.quantity-pair small,.driver-field{font-size:10px;font-weight:600}.quantity-pair b{display:block;font-size:22px;margin-top:4px}.quantity-pair input{width:100%;border:0;border-bottom:2px solid var(--orange);background:transparent;font-size:22px;font-weight:700;margin-top:3px}.exception-panel{display:none;margin-top:12px;padding:12px;background:#fff3ec}.driver-line.changed .exception-panel{display:grid;gap:10px}.driver-field{display:grid;gap:5px}.driver-field select,.driver-field input,.driver-field textarea{padding:10px;border:1px solid #bdb8ae;background:white}.return-field{display:flex;gap:9px;align-items:center;background:white;padding:10px;font-size:11px}.acceptance-card{background:white;border:1px solid var(--line);padding:18px;margin-top:22px}.acceptance-card h2{font-size:19px}.final-review{border-block:1px solid var(--line);margin:15px 0}.review-line{display:grid;grid-template-columns:1fr 60px 60px;padding:10px 0;border-top:1px solid #ebe7df;font-size:11px}.review-line:first-child{border:0}.review-line span:not(:first-child){text-align:right}.signature-pad{height:145px;border:1px solid #aaa;background:#fbfaf6;position:relative;margin-top:5px;touch-action:none}.signature-pad span{position:absolute;inset:0;display:grid;place-items:center;color:#aaa;font-weight:400;pointer-events:none}.signature-pad canvas{display:block;width:100%;height:100%;cursor:crosshair}.accept-box{display:flex;gap:8px;margin:14px 0;font-size:11px}.driver-submit{width:100%;border:0;background:var(--orange);color:white;padding:15px;font-weight:700}.locked{padding:16px;background:#dfece3;color:var(--green);margin-top:18px}.locked b,.locked span{display:block}.locked span{font-size:11px;margin-top:4px}
.signature-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:8px}.signature-actions small{color:var(--steel);font-size:9px}.signature-actions button{border:1px solid #aaa;background:white;color:var(--ink);padding:8px 10px;font-size:10px;font-weight:700;cursor:pointer}.signature-actions button:disabled{opacity:.4;cursor:not-allowed}
.completion-readiness{margin:12px 0 8px;padding:10px 12px;border-left:3px solid var(--orange);background:#fff3ec;color:var(--ink);font-size:11px;line-height:1.45}.completion-readiness.ready{border-color:var(--green);background:#dfece3;color:var(--green)}.driver-submit:disabled{background:#a9a9a4;color:#f3f0e9;cursor:not-allowed}
.user-row input{width:100%;padding:9px;border:1px solid #bbb7ae;background:#fff;font-size:11px}.user-identity{display:grid;gap:5px}
.notification-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px}.notification-list{display:grid}.notification-row{appearance:none;border:0;border-top:1px solid var(--line);background:white;padding:17px 20px;display:grid;grid-template-columns:8px 1fr auto;gap:14px;text-align:left;color:var(--ink)}.notification-row:first-child{border-top:0}.notification-row.unread{background:#fff9f5}.notification-mark{width:8px;height:8px;margin-top:5px;border-radius:50%;background:#c7c4bd}.notification-row.unread .notification-mark{background:var(--orange)}.notification-row small{font:600 8px "IBM Plex Mono";color:var(--steel);letter-spacing:.06em}.notification-row h3{font-size:15px;margin:4px 0}.notification-row p{font-size:12px;color:var(--steel);margin:0}.notification-row>button{align-self:center;border:0;background:transparent;color:var(--orange);font-size:11px;font-weight:700;cursor:pointer}.email-state{display:inline-block;margin-top:7px;color:var(--green);font-size:10px}.email-state.failed{color:var(--red)}.notification-preferences form{display:grid;gap:14px;margin-top:20px}.notification-preferences form>small{color:var(--steel);font-size:10px;line-height:1.5}.notification-preferences .button{justify-self:start}.notification-pages{padding:16px 20px;border-top:1px solid var(--line)}.nav-count{margin-left:auto;min-width:18px;height:18px;padding:0 4px;border-radius:9px;display:grid;place-items:center;background:var(--orange);color:white;font:600 8px "IBM Plex Mono"}@media(max-width:900px){.notification-layout{grid-template-columns:1fr}}@media(max-width:520px){.notification-row{grid-template-columns:8px 1fr}.notification-row>button{grid-column:2;justify-self:start;padding:0}}
@media(max-width:800px){.app-frame{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:12px}.app-brand{padding-bottom:12px}.sidebar nav{grid-template-columns:repeat(4,1fr)}.sidebar nav a{display:grid;text-align:center;gap:3px;font-size:9px}.sidebar nav a span{margin:auto}.sidebar-foot{display:none}.workspace-head{height:auto;padding:20px}.workspace-body{padding:18px}.metric-grid{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr}.flash,.error-summary{margin:12px 18px}.allocation{grid-template-columns:1fr repeat(3,55px)}}@media(max-width:520px){.workspace-head{align-items:start}.workspace-head h1{font-size:23px}.head-actions .secondary{display:none}.metric-grid{gap:8px}.metric{padding:13px}.data-table{display:block;overflow:auto}.form-grid{grid-template-columns:1fr}.form-field.full,.line-builder,.form-actions{grid-column:auto}.line-entry{grid-template-columns:1fr 90px 34px}.allocation{grid-template-columns:1fr 1fr 1fr}.allocation>div:first-child{grid-column:1/-1}.sidebar nav a{padding:8px 3px}.driver-heading h1{font-size:23px}}
.breadcrumbs{margin:0 0 7px}.breadcrumbs ol{display:flex;align-items:center;gap:7px;list-style:none;margin:0;padding:0}.breadcrumbs li{display:flex;align-items:center;min-width:0;font:600 8px "IBM Plex Mono";letter-spacing:.06em;color:var(--steel);text-transform:uppercase}.breadcrumbs li+li:before{content:"/";margin-right:7px;color:#b5b1a9}.breadcrumbs a{color:var(--steel);text-decoration:none}.breadcrumbs a:hover{color:var(--orange)}.breadcrumbs span{display:block;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:520px){.breadcrumbs ol{display:block}.breadcrumbs li{display:none}.breadcrumbs li:nth-last-child(2){display:block}.breadcrumbs li:nth-last-child(2):before{content:none}.breadcrumbs li:nth-last-child(2) a:before{content:"← ";color:var(--orange)}}
.user-row{grid-template-columns:minmax(160px,1.2fr) 120px 145px minmax(150px,1fr) 80px auto}
@media(max-width:900px){.user-row{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.user-row{grid-template-columns:1fr}}
.password-fallback{margin-top:22px;border-top:1px solid #d4d0c7;padding-top:16px}.password-fallback summary{cursor:pointer;color:#66716c;font-size:11px;font-weight:600}.password-fallback .auth-form{margin-top:16px}
