:root {
  --red:#ed1c24;
  --red-dark:#c91219;
  --charcoal:#2f3033;
  --charcoal-2:#202226;
  --grey:#d9d9d9;
  --light:#f5f6f8;
  --white:#ffffff;
  --green:#16a34a;
  --amber:#f59e0b;
  --text:#202226;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;background:var(--light);color:var(--text)}
.app-shell{min-height:100vh;display:flex;flex-direction:column}
.brand-bar{background:var(--white);border-bottom:5px solid var(--red);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 22px}
.brand-bar img{width:min(340px,52vw);height:auto;display:block}
.red-block{width:190px;height:72px;background:var(--red);clip-path:polygon(18% 0,100% 0,100% 100%,0 100%)}
.content{width:min(1180px,94vw);margin:28px auto 40px}
.card{background:var(--white);border:1px solid #dfe3e8;border-radius:18px;box-shadow:0 10px 28px rgba(0,0,0,.08);overflow:hidden}
.card-head{background:var(--charcoal);color:var(--white);padding:14px 18px;font-weight:800;letter-spacing:.02em}
.kiosk-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);gap:22px}
.panel{padding:24px}
h1,h2,h3{margin:0}.muted{color:#67717f}.eyebrow{font-size:.82rem;letter-spacing:.12em;font-weight:800;color:var(--red)}
.clock{font-size:clamp(2rem,5vw,4.5rem);font-weight:900;line-height:1}.date-line{font-size:1rem;color:#5d6672;margin-top:6px}
label{display:block;font-weight:800;margin:16px 0 7px}.field{width:100%;min-height:54px;border:1px solid #cfd5dc;border-radius:12px;background:#fff;padding:0 14px;font-size:17px;outline:none}.field:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(237,28,36,.12)}
.pin-row{display:grid;grid-template-columns:1fr;gap:10px}.action-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.btn{border:0;border-radius:12px;min-height:58px;font-size:18px;font-weight:900;cursor:pointer;padding:0 18px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-in{background:var(--red);color:#fff}.btn-in:hover{background:var(--red-dark)}.btn-out{background:var(--charcoal);color:#fff}.btn-secondary{background:#eef1f4;color:var(--charcoal);border:1px solid #d6dbe1}.btn-small{min-height:44px;font-size:15px}
.camera-card{background:var(--charcoal-2);border-radius:16px;overflow:hidden;position:relative;min-height:390px;display:flex;align-items:center;justify-content:center}.camera-card video{width:100%;height:100%;min-height:390px;object-fit:cover}.camera-card .camera-placeholder{color:white;text-align:center;padding:30px}.camera-badge{position:absolute;left:14px;bottom:14px;background:rgba(0,0,0,.72);color:#fff;padding:9px 12px;border-radius:10px;font-weight:700}.camera-frame{position:absolute;inset:13%;border:4px solid var(--red);border-radius:22px;pointer-events:none}
.status{margin-top:16px;padding:12px 14px;border-radius:12px;background:#f0f2f5;font-weight:700}.status.ok{background:#eaf8ef;color:#116b31}.status.err{background:#fdebed;color:#a10d13}.status.warn{background:#fff5df;color:#7a4c00}
.success{padding:36px;text-align:center}.success .tick{width:84px;height:84px;border-radius:50%;background:var(--green);color:#fff;margin:0 auto 18px;display:grid;place-items:center;font-size:48px;font-weight:900}.success h2{color:var(--green);font-size:2rem}.success .person{font-size:1.4rem;font-weight:900;margin:14px 0 5px}
.top-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.login-wrap{max-width:520px;margin:0 auto}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.metric{background:#fff;border:1px solid #dde2e7;border-radius:14px;padding:16px}.metric .n{font-size:2rem;font-weight:900;color:var(--red)}
.driver-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.full{grid-column:1/-1}.trip-list{margin-top:20px}.trip{display:grid;grid-template-columns:100px 1fr 1fr 130px;gap:10px;padding:12px 0;border-top:1px solid #e3e6ea;align-items:center}.nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.pill{padding:9px 12px;border-radius:999px;background:#fff;border:1px solid #d8dde3;font-weight:800;text-decoration:none;color:var(--charcoal)}.pill.active{background:var(--red);border-color:var(--red);color:#fff}
.hidden{display:none!important}
@media(max-width:780px){.red-block{width:95px;height:58px}.kiosk-grid{grid-template-columns:1fr}.content{width:min(96vw,720px);margin-top:14px}.panel{padding:18px}.action-row{grid-template-columns:1fr}.driver-form{grid-template-columns:1fr}.full{grid-column:auto}.dashboard-grid{grid-template-columns:1fr}.trip{grid-template-columns:1fr 1fr}.brand-bar{padding:10px 12px}.camera-card,.camera-card video{min-height:300px}}

/* ---- Administration module v0.2 ---- */
.admin-content{width:min(1500px,97vw)}
.wide-btn{width:100%;margin-top:20px}
.admin-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px;align-items:start}
.admin-sidebar{position:sticky;top:12px}
.admin-nav{display:grid;padding:12px;gap:7px}
.admin-nav-btn{min-height:46px;border:0;border-radius:10px;background:#f0f2f5;color:var(--charcoal);font-weight:850;text-align:left;padding:0 14px;cursor:pointer}
.admin-nav-btn.active{background:var(--red);color:white}
.admin-side-links{display:flex;flex-direction:column;gap:8px;padding:0 12px 14px}
.danger-pill{cursor:pointer;color:#9b1118;text-align:left}
.admin-main{min-width:0}
.admin-topline{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 2px 14px}
.user-chip{display:flex;flex-direction:column;align-items:flex-end;background:#fff;border:1px solid #dce1e6;border-radius:12px;padding:9px 13px}
.user-chip span{font-size:.78rem;color:#707987;font-weight:800}
.admin-section{display:grid;gap:16px}
.toolbar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.compact-panel{padding:14px 16px}
.compact-panel label{margin-top:0}
.compact-field{min-width:170px;min-height:44px}
.metrics-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:12px}
.metric-card{background:#fff;border:1px solid #dde2e7;border-radius:14px;padding:15px}
.metric-card .metric-number{font-size:2rem;font-weight:950;line-height:1}
.metric-card .metric-label{font-size:.82rem;color:#68717e;font-weight:800;margin-top:7px}
.metric-card.positive .metric-number{color:var(--green)}
.metric-card.alert .metric-number{color:var(--red)}
.metric-card.neutral .metric-number{color:var(--charcoal)}
.admin-table-card{overflow:hidden}
.table-scroll{overflow-x:auto;width:100%}
.data-table{width:100%;border-collapse:collapse;min-width:800px;font-size:.92rem}
.data-table th{background:#f2f4f6;color:#3c434c;text-align:left;padding:11px 12px;font-size:.78rem;text-transform:uppercase;letter-spacing:.025em;white-space:nowrap}
.data-table td{padding:11px 12px;border-top:1px solid #e4e7eb;vertical-align:middle}
.data-table tr:hover td{background:#fafbfc}
.status-badge{display:inline-block;border-radius:999px;padding:5px 9px;font-size:.74rem;font-weight:900;white-space:nowrap;background:#edf0f3;color:#3d4650}
.status-badge.good{background:#e6f7ec;color:#0c7232}
.status-badge.bad{background:#fde9eb;color:#a20b13}
.status-badge.warn{background:#fff2d9;color:#845000}
.status-badge.info{background:#eaf2ff;color:#154d96}
.table-btn{border:1px solid #d6dce2;background:#fff;border-radius:8px;min-height:34px;padding:0 9px;font-weight:800;cursor:pointer;margin:2px}
.table-btn.primary{background:var(--red);border-color:var(--red);color:#fff}
.table-btn:disabled{opacity:.45;cursor:not-allowed}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
.form-grid .full{grid-column:1/-1}
.form-grid label{margin-top:12px}
.form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.check-stack{display:flex;align-items:flex-end;gap:18px;padding-bottom:7px;flex-wrap:wrap}
.check-line{display:flex;gap:8px;align-items:center;margin:0!important;font-weight:800}
.check-line input{width:20px;height:20px}
.header-actions{display:flex;align-items:center;justify-content:space-between;gap:14px}
.mini-search{min-height:34px;border:1px solid #69727d;border-radius:8px;background:#fff;padding:0 10px;min-width:220px}
.file-field{padding:10px 12px;height:auto}
.labour-form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.history-toolbar{display:flex;gap:10px;align-items:flex-end}.history-toolbar .field{max-width:420px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.75);display:grid;place-items:center;padding:20px;z-index:2000}
.modal-card{position:relative;max-width:min(720px,95vw);max-height:90vh;background:white;padding:10px;border-radius:16px}
.modal-card img{display:block;max-width:100%;max-height:82vh;border-radius:10px}
.modal-close{position:absolute;right:16px;top:16px;width:42px;height:42px;border:0;border-radius:50%;background:rgba(0,0,0,.72);color:#fff;font-size:27px;cursor:pointer}
@media(max-width:1050px){.admin-layout{grid-template-columns:1fr}.admin-sidebar{position:static}.admin-nav{grid-template-columns:repeat(5,1fr)}.admin-nav-btn{text-align:center;padding:0 7px}.admin-side-links{flex-direction:row;flex-wrap:wrap}.metrics-grid{grid-template-columns:repeat(3,1fr)}.labour-form-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.admin-nav{grid-template-columns:1fr 1fr}.admin-topline{align-items:flex-start}.user-chip{align-items:flex-start}.form-grid,.labour-form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.metrics-grid{grid-template-columns:1fr 1fr}.toolbar{align-items:stretch}.compact-field{width:100%}.toolbar>div{width:100%}.header-actions{align-items:flex-start;flex-direction:column}.mini-search{width:100%}.history-toolbar{flex-direction:column;align-items:stretch}.history-toolbar .field{max-width:none}}

/* ---- Driver workflow + credential visibility v0.3 ---- */
.password-wrap{position:relative;display:flex;align-items:center}.password-wrap .field{padding-right:84px}.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);min-width:64px;height:38px;border:1px solid #cfd5dc;border-radius:9px;background:#f2f4f6;color:var(--charcoal);font-weight:850;cursor:pointer}.password-toggle:hover{background:#e7eaee}.driver-header-line{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px}.small-copy{font-size:.9rem}.driver-day-summary,.current-trip-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.driver-day-summary>div,.current-trip-grid>div{border:1px solid #e0e4e8;border-radius:12px;padding:14px;background:#fafbfc}.summary-label{display:block;color:#6a7380;font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;font-weight:850;margin-bottom:5px}.active-trip-head{background:var(--red)}.end-trip-box{margin-top:18px;padding-top:18px;border-top:1px solid #e0e4e8;display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.end-trip-box label{margin-top:0}.end-trip-btn{min-width:180px}.trip-history{display:grid;gap:0}.trip-history-row{display:grid;grid-template-columns:44px minmax(220px,1fr) 120px 150px;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #e5e8ec}.trip-history-row:last-child{border-bottom:0}.trip-index{width:34px;height:34px;border-radius:50%;background:#eef1f4;display:grid;place-items:center;font-weight:900}.finish-day-line{display:flex;justify-content:space-between;align-items:center;gap:20px}.finish-controls{display:flex;gap:10px;align-items:center}.pin-modal-card{width:min(520px,95vw);padding:26px}.pin-modal-card h2{padding-right:52px}
@media(max-width:820px){.driver-header-line{align-items:flex-start}.driver-day-summary,.current-trip-grid{grid-template-columns:1fr 1fr}.end-trip-box{grid-template-columns:1fr}.end-trip-btn{width:100%}.trip-history-row{grid-template-columns:36px 1fr}.trip-history-row>div:nth-child(3),.trip-history-row>div:nth-child(4){grid-column:2}.finish-day-line{flex-direction:column;align-items:stretch}.finish-controls{flex-direction:column;align-items:stretch}.finish-controls .compact-field{max-width:none}.password-toggle{min-width:58px}}

/* v0.4 driver functional tabs */
.driver-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}
.driver-tabs .pill{appearance:none;border:1px solid #d5d9df;background:#fff;color:#202327;cursor:pointer;font:inherit;font-weight:800;padding:12px 18px;border-radius:999px;min-height:46px}
.driver-tabs .pill.active{background:#ed1c24;color:#fff;border-color:#ed1c24}
.driver-tab-panel.hidden{display:none!important}
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
.check-row{display:flex;align-items:center;gap:10px;border:1px solid #e0e3e7;border-radius:12px;padding:12px 14px;background:#fafafa;font-weight:700}
.check-row input{width:22px;height:22px}
.report-filter-row{display:flex;align-items:end;gap:14px;flex-wrap:wrap}
.report-filter-row>div{min-width:220px;flex:1}
.report-summary{margin-top:18px}
.trip-history-row.compact{grid-template-columns:minmax(0,2fr) minmax(100px,.7fr) minmax(0,1.4fr)}
@media (max-width:700px){.check-grid{grid-template-columns:1fr}.driver-tabs .pill{flex:1 1 45%;text-align:center}.trip-history-row.compact{grid-template-columns:1fr}.report-filter-row{align-items:stretch}}
\n\n/* v0.5 Vehicle Management */\n.vehicle-metrics{grid-template-columns:repeat(4,minmax(150px,1fr))}.vehicle-history-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.vehicle-history-grid.history-tables{padding:18px}.vehicle-history-grid h3{margin:0 0 10px}.vehicle-table{min-width:1250px}.vehicle-history-grid .data-table{min-width:560px}\n@media(max-width:1000px){.vehicle-metrics{grid-template-columns:repeat(2,1fr)}.vehicle-history-grid{grid-template-columns:1fr}}\n@media(max-width:600px){.vehicle-metrics{grid-template-columns:1fr}}\n
/* v0.6 clickable vehicle metric shortcuts */
.metric-shortcut{appearance:none;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;position:relative;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;background:var(--surface,#fff)}
.metric-shortcut:hover{transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,.08)}
.metric-shortcut:focus-visible{outline:3px solid rgba(244,31,37,.28);outline-offset:2px}
.metric-shortcut.selected{border-color:#f41f25;box-shadow:0 0 0 2px rgba(244,31,37,.12)}
.metric-hint{margin-top:8px;font-size:.76rem;font-weight:800;color:#6b7280;text-transform:uppercase;letter-spacing:.04em}
.metric-shortcut.selected .metric-hint{color:#f41f25}


/* ---- v0.8 reception tablet kiosk + installable PWA ---- */
.kiosk-body{min-width:0;overflow-x:hidden;-webkit-text-size-adjust:100%;touch-action:manipulation}
.kiosk-content{width:min(1320px,calc(100vw - 24px));margin:16px auto 28px}
.kiosk-brand-bar{padding:8px 16px;min-height:82px}
.kiosk-brand-bar>img{width:min(300px,42vw);max-height:94px;object-fit:contain;object-position:left center}
.kiosk-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-width:0}
.install-app-btn{min-height:46px;padding:0 16px;border:0;border-radius:10px;background:var(--charcoal);color:#fff;font-weight:900;letter-spacing:.02em;cursor:pointer}
.install-app-btn:active{transform:translateY(1px)}
.kiosk-body .kiosk-grid{gap:14px;grid-template-columns:minmax(0,1fr) minmax(0,.92fr)}
.kiosk-body .card{border-radius:14px}
.kiosk-body .card-head{padding:11px 16px;font-size:.95rem}
.kiosk-body .panel{padding:18px}
.kiosk-body .muted{line-height:1.25}
.kiosk-body .clock{margin-top:12px;font-size:clamp(3rem,7vw,5.2rem)}
.kiosk-body .date-line{font-size:1rem;margin-bottom:8px}
.kiosk-body .field{min-height:58px;font-size:18px}
.kiosk-body .password-toggle{height:42px;min-width:68px}
.kiosk-body .action-row{gap:12px;margin-top:18px}
.kiosk-body .action-row .btn{min-height:64px;font-size:1.15rem}
.kiosk-body .status{margin-top:14px}
.kiosk-body .camera-card{min-height:430px;height:100%;max-height:560px}
.kiosk-body .camera-card video{min-height:430px;height:100%;object-fit:cover}
.kiosk-body .camera-frame{inset:13% 13% 11%;border-width:4px}
.kiosk-body .success{padding:32px 22px}
.kiosk-body .success .tick{font-size:4rem}

/* Common 10–11 inch Android tablet landscape. */
@media (min-width:720px) and (max-width:1366px) and (orientation:landscape){
  .kiosk-content{width:calc(100vw - 20px);margin:10px auto 18px}
  .kiosk-brand-bar{min-height:70px;padding:6px 12px}
  .kiosk-brand-bar>img{width:min(250px,31vw);max-height:76px}
  .kiosk-brand-bar .red-block{width:128px;height:52px}
  .kiosk-body .kiosk-grid{grid-template-columns:minmax(360px,1.02fr) minmax(330px,.98fr);gap:10px}
  .kiosk-body .panel{padding:14px 16px}
  .kiosk-body .card-head{padding:10px 14px}
  .kiosk-body h1{line-height:1.05}
  .kiosk-body .clock{font-size:clamp(3.2rem,6.5vw,5rem);margin-top:8px}
  .kiosk-body label{margin:11px 0 6px}
  .kiosk-body .field{min-height:54px}
  .kiosk-body .action-row .btn{min-height:58px}
  .kiosk-body .camera-card,.kiosk-body .camera-card video{min-height:400px;max-height:500px}
}

/* Tablet portrait and narrow windows stack naturally. */
@media (max-width:900px) and (orientation:portrait){
  .kiosk-content{width:calc(100vw - 18px);margin:9px auto 20px}
  .kiosk-brand-bar{min-height:64px;padding:6px 10px}
  .kiosk-brand-bar>img{width:min(240px,58vw);max-height:68px}
  .kiosk-header-actions{gap:7px}
  .kiosk-brand-bar .red-block{width:82px;height:42px}
  .install-app-btn{min-height:42px;padding:0 10px;font-size:.78rem}
  .kiosk-body .kiosk-grid{grid-template-columns:1fr;gap:12px}
  .kiosk-body .panel{padding:16px}
  .kiosk-body .camera-card,.kiosk-body .camera-card video{min-height:340px;max-height:440px}
  .kiosk-body .action-row{grid-template-columns:1fr 1fr}
}

@media (max-width:600px){
  .kiosk-brand-bar .red-block{display:none}
  .kiosk-brand-bar>img{width:min(230px,70vw)}
  .kiosk-content{width:calc(100vw - 12px)}
  .kiosk-body .action-row{grid-template-columns:1fr}
  .kiosk-body .camera-card,.kiosk-body .camera-card video{min-height:300px}
}

/* Standalone installed app gets a slightly tighter top edge. */
@media (display-mode:standalone){
  .kiosk-brand-bar{padding-top:max(6px,env(safe-area-inset-top))}
  .install-app-btn{display:none!important}
}

/* ---- v0.9 exact-fit Android tablet kiosk ---- */
:root{--kiosk-vh:100dvh;--kiosk-vw:100vw}
.kiosk-body,.kiosk-body .app-shell{max-width:100%;overflow-x:hidden}
.kiosk-body img,.kiosk-body video,.kiosk-body canvas{max-width:100%}

/* Force a true two-column kiosk in tablet landscape, even on older tablets
   that report a smaller CSS viewport than their physical pixel resolution. */
@media (orientation:landscape) and (min-width:560px){
  .kiosk-body{height:var(--kiosk-vh);min-height:0;overflow:hidden}
  .kiosk-body .app-shell{height:var(--kiosk-vh);min-height:0;overflow:hidden}
  .kiosk-brand-bar{flex:0 0 auto;min-height:0;height:clamp(50px,10.5vh,68px);padding:4px 10px}
  .kiosk-brand-bar>img{width:min(220px,27vw);max-height:calc(clamp(50px,10.5vh,68px) - 8px)}
  .kiosk-brand-bar .red-block{width:clamp(70px,11vw,120px);height:clamp(34px,7vh,48px)}
  .kiosk-content{flex:1 1 auto;min-height:0;width:calc(100vw - 12px);max-width:none;margin:6px auto 8px;overflow:hidden}
  .kiosk-body .kiosk-grid{width:100%;height:100%;min-height:0;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr)!important;gap:8px;align-items:stretch}
  .kiosk-body .kiosk-grid>.card{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}
  .kiosk-body .card-head{padding:7px 11px;font-size:clamp(.72rem,1.5vw,.9rem);line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .kiosk-body .kiosk-grid .panel{min-height:0;padding:9px 12px;overflow:hidden}
  .kiosk-body .eyebrow{font-size:clamp(.58rem,1.1vw,.72rem);line-height:1;margin-bottom:2px}
  .kiosk-body #clockView h1{font-size:clamp(1.25rem,2.6vw,1.9rem)!important;line-height:1!important;margin:2px 0 4px!important}
  .kiosk-body #clockView p.muted{font-size:clamp(.68rem,1.25vw,.84rem);line-height:1.15;margin:0 0 4px}
  .kiosk-body .clock{font-size:clamp(2.35rem,6.5vh,3.8rem);line-height:.92;margin-top:4px}
  .kiosk-body .date-line{font-size:clamp(.68rem,1.25vw,.88rem);line-height:1;margin:3px 0 5px}
  .kiosk-body label{font-size:clamp(.72rem,1.25vw,.88rem);line-height:1;margin:6px 0 4px}
  .kiosk-body .field{min-height:clamp(40px,7.4vh,50px);height:clamp(40px,7.4vh,50px);padding:0 10px;border-radius:9px;font-size:clamp(.78rem,1.45vw,1rem)}
  .kiosk-body .password-toggle{right:5px;height:clamp(31px,5.5vh,38px);min-width:52px;font-size:.78rem}
  .kiosk-body .action-row{margin-top:8px;gap:8px;grid-template-columns:1fr 1fr!important}
  .kiosk-body .action-row .btn{min-height:clamp(42px,7.5vh,52px);height:clamp(42px,7.5vh,52px);border-radius:9px;font-size:clamp(.8rem,1.5vw,1rem);padding:0 8px}
  .kiosk-body .status{margin-top:7px;padding:6px 9px;border-radius:8px;font-size:clamp(.62rem,1.1vw,.78rem);line-height:1.12;white-space:normal}
  .kiosk-body .kiosk-grid>.card:nth-child(2) .panel{display:flex;min-height:0}
  .kiosk-body .camera-card{flex:1;min-width:0;min-height:0!important;height:100%!important;max-height:none!important;border-radius:10px}
  .kiosk-body .camera-card video{width:100%;height:100%!important;min-height:0!important;max-height:none!important;object-fit:cover}
  .kiosk-body .camera-frame{inset:9% 12% 8%;border-width:3px;border-radius:16px}
  .kiosk-body .camera-badge{left:8px;bottom:8px;padding:5px 8px;border-radius:7px;font-size:clamp(.62rem,1.1vw,.76rem)}
}

/* Extra compact mode for 600–720px-high landscape tablet viewports. */
@media (orientation:landscape) and (min-width:560px) and (max-height:720px){
  .kiosk-brand-bar{height:48px;padding:3px 8px}
  .kiosk-brand-bar>img{width:min(185px,25vw);max-height:42px}
  .kiosk-brand-bar .red-block{width:72px;height:32px}
  .kiosk-content{margin:4px auto 5px;width:calc(100vw - 8px)}
  .kiosk-body .kiosk-grid{gap:6px}
  .kiosk-body .card-head{padding:5px 9px;font-size:.68rem}
  .kiosk-body .kiosk-grid .panel{padding:6px 9px}
  .kiosk-body .eyebrow{display:none}
  .kiosk-body #clockView h1{font-size:1.2rem!important;margin:0 0 2px!important}
  .kiosk-body #clockView p.muted{font-size:.64rem;margin-bottom:2px}
  .kiosk-body .clock{font-size:2.15rem;margin-top:2px}
  .kiosk-body .date-line{font-size:.64rem;margin:2px 0 3px}
  .kiosk-body label{font-size:.68rem;margin:4px 0 2px}
  .kiosk-body .field{min-height:36px;height:36px;font-size:.78rem}
  .kiosk-body .password-toggle{height:28px;min-width:48px;font-size:.68rem}
  .kiosk-body .action-row{margin-top:5px;gap:6px}
  .kiosk-body .action-row .btn{min-height:36px;height:36px;font-size:.76rem}
  .kiosk-body .status{margin-top:4px;padding:4px 7px;font-size:.59rem}
  .kiosk-body .camera-frame{inset:7% 10% 7%;border-width:2px}
}

/* Portrait always uses one column and is allowed to scroll vertically. */
@media (orientation:portrait){
  .kiosk-body{height:auto;min-height:100dvh;overflow-y:auto}
  .kiosk-body .app-shell{height:auto;min-height:100dvh;overflow:visible}
  .kiosk-content{overflow:visible}
}

/* ---- v1.0 Android tablet HEIGHT fit ----
   Uses the actual app viewport height supplied by kiosk.js instead of relying
   only on vh/dvh, and aggressively compacts short landscape tablet screens. */
:root{--kiosk-height:100dvh}
@media (orientation:landscape) and (min-width:560px){
  .kiosk-body{height:var(--kiosk-height)!important;max-height:var(--kiosk-height)!important;overflow:hidden!important}
  .kiosk-body .app-shell{height:var(--kiosk-height)!important;max-height:var(--kiosk-height)!important;min-height:0!important;overflow:hidden!important}
  .kiosk-body .kiosk-content{height:auto;max-height:none;overflow:hidden}
  .kiosk-body #clockView{min-height:0}
  .kiosk-body #successView{max-height:100%;overflow:hidden}
}

/* Typical Android PWA tablet landscape with a short usable viewport. */
@media (orientation:landscape) and (min-width:560px) and (max-height:650px){
  .kiosk-brand-bar{height:40px!important;min-height:40px!important;padding:2px 8px!important;border-bottom-width:3px}
  .kiosk-brand-bar>img{width:min(160px,22vw)!important;max-height:35px!important}
  .kiosk-brand-bar .red-block{width:58px!important;height:27px!important}
  .kiosk-content{margin:3px auto 4px!important;width:calc(100vw - 6px)!important}
  .kiosk-body .kiosk-grid{gap:5px!important}
  .kiosk-body .card{border-radius:9px!important;box-shadow:0 3px 10px rgba(0,0,0,.06)!important}
  .kiosk-body .card-head{padding:4px 8px!important;font-size:.62rem!important;line-height:1!important;min-height:22px}
  .kiosk-body .kiosk-grid .panel{padding:5px 8px!important}
  .kiosk-body .eyebrow{display:none!important}
  .kiosk-body #clockView h1{font-size:1.05rem!important;line-height:1!important;margin:0 0 1px!important}
  .kiosk-body #clockView p.muted{display:none!important}
  .kiosk-body .clock{font-size:1.85rem!important;line-height:.9!important;margin:1px 0 0!important}
  .kiosk-body .date-line{font-size:.58rem!important;line-height:1!important;margin:1px 0 2px!important}
  .kiosk-body label{font-size:.62rem!important;line-height:1!important;margin:3px 0 2px!important}
  .kiosk-body .field{min-height:31px!important;height:31px!important;border-radius:7px!important;padding:0 8px!important;font-size:.72rem!important}
  .kiosk-body .password-wrap .field{padding-right:51px!important}
  .kiosk-body .password-toggle{height:24px!important;min-width:43px!important;right:4px!important;border-radius:6px!important;font-size:.59rem!important;padding:0 4px!important}
  .kiosk-body .action-row{margin-top:4px!important;gap:5px!important}
  .kiosk-body .action-row .btn{min-height:31px!important;height:31px!important;border-radius:7px!important;font-size:.68rem!important;padding:0 5px!important}
  .kiosk-body .status{margin-top:3px!important;padding:3px 6px!important;border-radius:6px!important;font-size:.54rem!important;line-height:1.05!important;min-height:21px}
  .kiosk-body .camera-card{height:100%!important;min-height:0!important;max-height:none!important;border-radius:8px!important}
  .kiosk-body .camera-frame{inset:6% 9% 6%!important;border-width:2px!important;border-radius:12px!important}
  .kiosk-body .camera-badge{left:5px!important;bottom:5px!important;padding:3px 6px!important;font-size:.56rem!important;border-radius:5px!important}
  .kiosk-body .success{padding:12px!important}
  .kiosk-body .success .tick{width:48px!important;height:48px!important;font-size:29px!important;margin-bottom:7px!important}
  .kiosk-body .success h2{font-size:1.1rem!important}
  .kiosk-body .success .person{font-size:.95rem!important;margin:6px 0 2px!important}
  .kiosk-body #successTime{font-size:1.1rem!important;margin-top:7px!important}
  .kiosk-body #done{margin-top:10px!important;min-height:34px!important}
}

/* Very short landscape viewports (some 10-inch Android tablets report ~480–560 CSS px). */
@media (orientation:landscape) and (min-width:560px) and (max-height:560px){
  .kiosk-brand-bar{height:34px!important;min-height:34px!important;padding:1px 6px!important}
  .kiosk-brand-bar>img{width:min(138px,20vw)!important;max-height:30px!important}
  .kiosk-brand-bar .red-block{display:none!important}
  .kiosk-content{margin:2px auto 3px!important}
  .kiosk-body .card-head{padding:3px 7px!important;min-height:19px;font-size:.56rem!important}
  .kiosk-body .kiosk-grid .panel{padding:4px 7px!important}
  .kiosk-body #clockView h1{font-size:.92rem!important}
  .kiosk-body .clock{font-size:1.55rem!important}
  .kiosk-body .date-line{font-size:.52rem!important}
  .kiosk-body label{font-size:.56rem!important;margin:2px 0 1px!important}
  .kiosk-body .field{min-height:27px!important;height:27px!important;font-size:.66rem!important}
  .kiosk-body .password-toggle{height:21px!important;min-width:39px!important;font-size:.52rem!important}
  .kiosk-body .action-row{margin-top:3px!important}
  .kiosk-body .action-row .btn{min-height:27px!important;height:27px!important;font-size:.61rem!important}
  .kiosk-body .status{font-size:.49rem!important;min-height:18px!important;padding:2px 5px!important}
}


/* ---- v1.1 tablet left-panel full-height fill ----
   The previous version fit the screen but left unused white space under the
   form. The clocking side now intentionally fills the same vertical space as
   the camera and distributes the form groups over the full card height. */
@media (orientation:landscape) and (min-width:560px){
  .kiosk-body .clock-form-panel{
    height:100%;
    min-height:0;
    display:flex!important;
    flex-direction:column;
    justify-content:space-between;
    gap:0!important;
  }
  .kiosk-body .kiosk-intro,
  .kiosk-body .kiosk-time-block,
  .kiosk-body .kiosk-field-group,
  .kiosk-body .clock-form-panel>.action-row,
  .kiosk-body .clock-form-panel>.status{flex:0 0 auto}
  .kiosk-body .kiosk-field-group label{margin-top:0!important}
  .kiosk-body .clock-form-panel>.action-row{margin-top:0!important}
  .kiosk-body .clock-form-panel>.status{margin-top:0!important}
}

/* On the short Honor Pad landscape viewport, use the newly available vertical
   spacing to make the controls easier to touch instead of leaving a blank half. */
@media (orientation:landscape) and (min-width:560px) and (max-height:650px){
  .kiosk-body .clock-form-panel{padding:6px 9px!important}
  .kiosk-body .kiosk-intro h1{font-size:1.18rem!important}
  .kiosk-body .kiosk-time-block{text-align:left}
  .kiosk-body .clock{font-size:2.25rem!important}
  .kiosk-body .date-line{font-size:.66rem!important}
  .kiosk-body .kiosk-field-group label{font-size:.68rem!important;margin:0 0 3px!important}
  .kiosk-body .kiosk-field-group .field{height:36px!important;min-height:36px!important;font-size:.78rem!important}
  .kiosk-body .password-toggle{height:28px!important;min-width:46px!important;font-size:.62rem!important}
  .kiosk-body .clock-form-panel>.action-row .btn{height:40px!important;min-height:40px!important;font-size:.78rem!important}
  .kiosk-body .clock-form-panel>.status{min-height:24px!important;padding:5px 7px!important;font-size:.58rem!important;display:flex;align-items:center}
}

@media (orientation:landscape) and (min-width:560px) and (max-height:560px){
  .kiosk-body .clock-form-panel{padding:5px 8px!important}
  .kiosk-body .kiosk-intro h1{font-size:1rem!important}
  .kiosk-body .clock{font-size:1.9rem!important}
  .kiosk-body .date-line{font-size:.58rem!important}
  .kiosk-body .kiosk-field-group label{font-size:.6rem!important;margin:0 0 2px!important}
  .kiosk-body .kiosk-field-group .field{height:31px!important;min-height:31px!important;font-size:.7rem!important}
  .kiosk-body .password-toggle{height:24px!important;min-width:42px!important;font-size:.55rem!important}
  .kiosk-body .clock-form-panel>.action-row .btn{height:34px!important;min-height:34px!important;font-size:.68rem!important}
  .kiosk-body .clock-form-panel>.status{min-height:20px!important;padding:3px 6px!important;font-size:.51rem!important}
}

/* =====================================================================
   v1.2 — Driver phone portrait optimisation
   Dedicated Android/iPhone portrait layout. Desktop/tablet styles remain
   unchanged. The tab bar becomes a thumb-friendly bottom navigation bar.
   ===================================================================== */
@media (max-width: 600px) and (orientation: portrait) {
  html, body.driver-page { max-width:100%; overflow-x:hidden; }
  body.driver-page { min-height:var(--driver-vh,100dvh); background:#f5f6f8; }
  body.driver-page .app-shell { min-height:var(--driver-vh,100dvh); }

  /* Compact brand area so the actual work controls dominate the phone. */
  body.driver-page .brand-bar {
    min-height:52px;
    padding:6px 10px;
    border-bottom-width:4px;
    gap:8px;
  }
  body.driver-page .brand-bar img { width:min(190px,58vw); max-height:48px; object-fit:contain; object-position:left center; }
  body.driver-page .brand-bar .red-block { width:58px; height:34px; }
  body.driver-page .content {
    width:calc(100vw - 16px);
    max-width:none;
    margin:8px auto 0;
    padding-bottom:calc(82px + env(safe-area-inset-bottom));
  }

  /* Login is a real phone card, with no desktop-sized whitespace. */
  body.driver-page .login-wrap { width:100%; max-width:none; border-radius:14px; }
  body.driver-page .login-wrap .card-head { padding:11px 14px; font-size:.9rem; }
  body.driver-page .login-wrap .panel { padding:16px 14px; }
  body.driver-page .login-wrap h1 { font-size:1.7rem; line-height:1.05; }
  body.driver-page .login-wrap .muted { font-size:.9rem; line-height:1.3; margin:.45rem 0 .65rem; }

  /* Main header. */
  body.driver-page .driver-header-line {
    margin:0 2px 8px;
    align-items:center;
    gap:8px;
  }
  body.driver-page .driver-header-line h1 { font-size:1.65rem; line-height:1.05; }
  body.driver-page .driver-header-line .eyebrow { font-size:.68rem; }
  body.driver-page .user-chip { padding:6px 9px; border-radius:10px; max-width:112px; }
  body.driver-page .user-chip strong { max-width:94px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.86rem; }
  body.driver-page .user-chip span { font-size:.65rem; }

  /* Fixed, thumb-friendly bottom navigation. */
  body.driver-page .driver-tabs {
    position:fixed;
    z-index:1200;
    left:0;
    right:0;
    bottom:0;
    width:100%;
    margin:0;
    padding:7px 6px calc(7px + env(safe-area-inset-bottom));
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:5px;
    background:rgba(255,255,255,.98);
    border-top:1px solid #d9dde2;
    box-shadow:0 -8px 24px rgba(0,0,0,.12);
  }
  body.driver-page .driver-tabs .pill {
    min-width:0;
    min-height:50px;
    padding:5px 3px;
    border-radius:11px;
    border-color:transparent;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    line-height:1.05;
    font-size:.73rem;
    white-space:normal;
    word-break:normal;
  }
  body.driver-page .driver-tabs .pill.active { box-shadow:0 3px 10px rgba(237,28,36,.24); }

  /* Cards and controls sized for a phone. */
  body.driver-page .card { border-radius:13px; box-shadow:0 5px 16px rgba(0,0,0,.07); }
  body.driver-page .driver-tab-panel > .card,
  body.driver-page .driver-tab-panel > .card[style] { margin-top:10px !important; }
  body.driver-page .card-head { padding:10px 13px; font-size:.88rem; letter-spacing:.015em; }
  body.driver-page .panel { padding:13px; }
  body.driver-page label { margin:10px 0 5px; font-size:.9rem; }
  body.driver-page .field {
    min-height:48px;
    height:48px;
    border-radius:10px;
    padding:0 11px;
    font-size:16px; /* prevents Android/iOS focus zoom */
  }
  body.driver-page .btn {
    min-height:52px;
    border-radius:11px;
    font-size:1rem;
    width:100%;
  }
  body.driver-page .btn-small { min-height:48px; }
  body.driver-page .status { margin:10px 0 0; padding:10px 12px; font-size:.86rem; }

  /* Every operational form becomes a single-column thumb flow. */
  body.driver-page .driver-form { grid-template-columns:1fr; gap:3px; }
  body.driver-page .driver-form .full { grid-column:auto; }
  body.driver-page .driver-form .full .btn { margin-top:7px; }

  /* Today vehicle / report metrics stay useful without horizontal scroll. */
  body.driver-page .driver-day-summary,
  body.driver-page .current-trip-grid {
    grid-template-columns:1fr 1fr;
    gap:7px;
  }
  body.driver-page .driver-day-summary > div,
  body.driver-page .current-trip-grid > div {
    padding:9px 10px;
    border-radius:10px;
    min-width:0;
  }
  body.driver-page .summary-label { font-size:.64rem; margin-bottom:3px; }
  body.driver-page .driver-day-summary strong,
  body.driver-page .current-trip-grid strong {
    display:block;
    min-width:0;
    overflow-wrap:anywhere;
    font-size:.88rem;
    line-height:1.15;
  }

  /* Active journey: End Trip stays the obvious primary action. */
  body.driver-page .end-trip-box {
    margin-top:11px;
    padding-top:10px;
    grid-template-columns:1fr;
    gap:2px;
  }
  body.driver-page .end-trip-btn { width:100%; min-width:0; margin-top:8px; min-height:58px; font-size:1.08rem; }
  body.driver-page .active-trip-head { position:sticky; top:0; z-index:4; }

  /* Completed trips render as compact phone cards. */
  body.driver-page .trip-history { gap:8px; }
  body.driver-page .trip-history-row,
  body.driver-page .trip-history-row.compact {
    grid-template-columns:34px minmax(0,1fr);
    gap:5px 9px;
    padding:10px;
    border:1px solid #e1e5e9;
    border-radius:11px;
    background:#fff;
  }
  body.driver-page .trip-history-row > div:nth-child(3),
  body.driver-page .trip-history-row > div:nth-child(4),
  body.driver-page .trip-history-row.compact > div:nth-child(2),
  body.driver-page .trip-history-row.compact > div:nth-child(3) {
    grid-column:2;
  }
  body.driver-page .trip-index { width:30px; height:30px; font-size:.83rem; }
  body.driver-page .trip-history-row strong { overflow-wrap:anywhere; }
  body.driver-page .trip-history-row .muted { font-size:.8rem; }

  /* Close-day becomes a vertical full-width action. */
  body.driver-page .finish-day-line { gap:10px; }
  body.driver-page .finish-controls { width:100%; gap:8px; }
  body.driver-page .finish-controls .compact-field { width:100%; max-width:none; }
  body.driver-page .finish-controls .btn { width:100%; }

  /* Vehicle check is a phone checklist. */
  body.driver-page .check-grid { grid-template-columns:1fr; gap:8px; margin-top:7px; }
  body.driver-page .check-row { min-height:48px; padding:10px 12px; border-radius:10px; font-size:.9rem; }
  body.driver-page .check-row input { width:22px; height:22px; flex:0 0 auto; }

  /* Fuel and report controls never run side-by-side on a narrow phone. */
  body.driver-page .report-filter-row { flex-direction:column; align-items:stretch; gap:8px; }
  body.driver-page .report-filter-row > div { width:100%; }
  body.driver-page .report-filter-row .btn { width:100%; }
  body.driver-page .report-summary { margin-top:12px; }

  /* Password visibility button remains easy to hit on a phone. */
  body.driver-page .password-toggle { min-width:58px; height:38px; right:6px; }
  body.driver-page .password-wrap .field { padding-right:72px; }
}

/* Extra-tight phones (older Androids and compact handsets). */
@media (max-width: 390px) and (orientation: portrait) {
  body.driver-page .content { width:calc(100vw - 12px); }
  body.driver-page .panel { padding:11px; }
  body.driver-page .driver-tabs .pill { font-size:.68rem; }
  body.driver-page .driver-day-summary,
  body.driver-page .current-trip-grid { grid-template-columns:1fr 1fr; gap:5px; }
  body.driver-page .driver-day-summary > div,
  body.driver-page .current-trip-grid > div { padding:8px; }
}

/* -------------------------------------------------------------------------
   v1.3 — Admin navigation consistency + Users & Access
   ------------------------------------------------------------------------- */
.admin-nav-btn,
.admin-side-links .admin-side-btn {
  box-sizing:border-box;
  width:100%;
  min-height:46px;
  border:0;
  border-radius:10px;
  background:#f0f2f5;
  color:var(--charcoal);
  font-family:inherit;
  font-size:.92rem;
  font-weight:850;
  line-height:1.15;
  text-align:left;
  padding:0 14px;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  text-decoration:none;
  cursor:pointer;
}
.admin-nav-btn.active { background:var(--red); color:#fff; }
.admin-side-links { border-top:1px solid #e2e5e9; padding-top:10px; }
.admin-side-links .admin-side-btn:hover,
.admin-nav-btn:hover { filter:brightness(.975); }
.admin-side-links .danger-side-btn { background:#fff0f1; color:#a11218; }
.admin-side-links .danger-side-btn:hover { background:#ffe3e5; }
.owner-admin-note,.role-guide { background:#f7f8fa; border:1px solid #e0e4e8; border-radius:10px; padding:12px 14px; color:#3e444b; }
.user-actions { display:flex; gap:6px; flex-wrap:wrap; min-width:235px; }
.user-actions .table-btn { white-space:nowrap; }
#section-users .password-wrap .field { padding-right:72px; }

@media(max-width:1050px){
  .admin-nav{grid-template-columns:repeat(4,minmax(0,1fr))}
  .admin-nav-btn,.admin-side-links .admin-side-btn{justify-content:center;text-align:center;padding:0 8px;font-size:.9rem}
}
@media(max-width:680px){
  .admin-nav{grid-template-columns:1fr 1fr}
  .admin-side-links{display:grid;grid-template-columns:1fr 1fr}
  .admin-nav-btn,.admin-side-links .admin-side-btn{min-height:48px;font-size:.9rem}
}


/* =====================================================================
   v1.4 — Floating reception PIN keypad
   Suppresses the Android soft keyboard and provides a compact in-app keypad
   positioned in the unused space beside the clock on the reception tablet.
   ===================================================================== */
.kiosk-body .custom-pin-input{cursor:pointer;caret-color:transparent;user-select:none;-webkit-user-select:none}
.kiosk-body .clock-form-panel{position:relative}
.kiosk-body .pin-keypad{
  position:absolute;
  z-index:30;
  right:12px;
  top:clamp(64px,16vh,108px);
  width:clamp(150px,19vw,188px);
  padding:7px;
  border:1px solid #d5d9de;
  border-radius:11px;
  background:rgba(255,255,255,.98);
  box-shadow:0 12px 30px rgba(0,0,0,.2);
}
.kiosk-body .pin-keypad-title{font-size:.61rem;font-weight:900;letter-spacing:.07em;color:#5d6670;margin:0 2px 4px}
.kiosk-body .pin-keypad-display{
  height:27px;display:flex;align-items:center;justify-content:center;
  border:1px solid #d7dce2;border-radius:7px;background:#f7f8fa;
  font-size:.9rem;font-weight:900;letter-spacing:.16em;margin-bottom:5px;color:#222;
}
.kiosk-body .pin-keypad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.kiosk-body .pin-key{
  min-width:0;height:34px;border:1px solid #d8dde3;border-radius:7px;background:#fff;
  color:#202225;font-size:.82rem;font-weight:900;line-height:1;touch-action:manipulation;
  box-shadow:0 1px 2px rgba(0,0,0,.04)
}
.kiosk-body .pin-key:active{transform:translateY(1px);background:#edf0f3}
.kiosk-body .pin-key-back{background:#eef1f4}
.kiosk-body .pin-key-submit{background:var(--red);color:#fff;border-color:var(--red);font-size:.55rem;letter-spacing:.01em}

@media (orientation:landscape) and (min-width:560px) and (max-height:650px){
  .kiosk-body .pin-keypad{right:9px;top:52px;width:154px;padding:5px;border-radius:9px}
  .kiosk-body .pin-keypad-title{font-size:.52rem;margin-bottom:3px}
  .kiosk-body .pin-keypad-display{height:22px;font-size:.75rem;margin-bottom:4px}
  .kiosk-body .pin-keypad-grid{gap:3px}
  .kiosk-body .pin-key{height:29px;border-radius:6px;font-size:.72rem}
  .kiosk-body .pin-key-submit{font-size:.48rem}
}
@media (orientation:landscape) and (min-width:560px) and (max-height:560px){
  .kiosk-body .pin-keypad{top:42px;right:7px;width:142px;padding:4px}
  .kiosk-body .pin-keypad-display{height:20px;font-size:.68rem}
  .kiosk-body .pin-key{height:25px;font-size:.65rem}
  .kiosk-body .pin-key-submit{font-size:.44rem}
}
@media (orientation:portrait), (max-width:559px){
  .kiosk-body .pin-keypad{
    position:fixed;left:50%;right:auto;top:auto;bottom:max(14px,env(safe-area-inset-bottom));
    transform:translateX(-50%);width:min(300px,calc(100vw - 24px));padding:10px;
  }
  .kiosk-body .pin-key{height:48px;font-size:1rem}
  .kiosk-body .pin-key-submit{font-size:.7rem}
  .kiosk-body .pin-keypad-display{height:38px;font-size:1rem}
}


/* v1.5 — simplified Users & Access */
.simple-user-form .user-quick-help{background:#f4f6f8;border:1px solid #e0e5ea;border-radius:12px;padding:12px 14px;color:#4b5563;font-size:.95rem}
.user-advanced-options{border:1px solid #e1e5ea;border-radius:12px;padding:0;background:#fafbfc}
.user-advanced-options summary{cursor:pointer;font-weight:800;padding:13px 15px;user-select:none}
.user-options-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 15px 15px}
@media(max-width:720px){.user-options-grid{grid-template-columns:1fr}}

/* v1.7 — account menu and password recovery */
.text-action-btn{display:block;margin:10px auto 0;border:0;background:transparent;color:var(--red);font:inherit;font-weight:850;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:8px 12px}
.text-action-btn:hover{color:#b40f17}
.driver-account-wrap{position:relative;display:inline-flex;align-items:flex-start}
.user-chip-button{font:inherit;color:inherit;cursor:pointer;text-align:right}
.user-chip-button:hover{background:#f6f7f8}
.account-popover{position:absolute;right:0;top:calc(100% + 8px);z-index:1200;min-width:190px;background:#fff;border:1px solid #dce1e6;border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.16);padding:7px}
.account-popover button{display:block;width:100%;border:0;background:transparent;border-radius:8px;padding:12px 13px;text-align:left;font:inherit;font-weight:850;cursor:pointer;color:var(--charcoal)}
.account-popover button:hover{background:#f1f3f5}
.account-popover .danger-text{color:#b20e16}
#passwordResetRequestsCard{margin-bottom:18px}
@media(max-width:680px){.account-popover{position:fixed;right:14px;top:88px;min-width:205px}.text-action-btn{min-height:44px}}

/* =====================================================================
   v1.9 — Recent Vehicle Checks: proper mobile cards
   Replaces the compressed desktop/grid presentation on driver phones.
   ===================================================================== */
#recentChecks{
  display:grid;
  gap:10px;
}
.vehicle-check-history-card{
  border:1px solid #e0e4e8;
  border-radius:13px;
  background:#fff;
  padding:14px;
  min-width:0;
  box-shadow:0 3px 10px rgba(0,0,0,.04);
}
.vehicle-check-history-card.damage{border-left:5px solid var(--red)}
.vehicle-check-history-card.attention{border-left:5px solid #d79000}
.vehicle-check-history-card.ok{border-left:5px solid #169b52}
.vehicle-check-history-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.vehicle-check-identity{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.vehicle-check-identity strong{
  font-size:1rem;
  line-height:1.15;
  overflow-wrap:normal;
  word-break:normal;
}
.vehicle-check-identity span{
  color:#5f6874;
  font-size:.9rem;
  line-height:1.2;
  overflow-wrap:break-word;
}
.vehicle-check-status{
  flex:0 0 auto;
  border-radius:999px;
  padding:6px 9px;
  font-size:.73rem;
  line-height:1;
  font-weight:900;
  white-space:nowrap;
}
.vehicle-check-status.ok{background:#e8f7ef;color:#08783a}
.vehicle-check-status.damage{background:#fde9ea;color:#b10f16}
.vehicle-check-status.attention{background:#fff2d6;color:#8b5a00}
.vehicle-check-meta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid #edf0f2;
  color:#606975;
  font-size:.84rem;
}
.vehicle-check-meta strong{color:var(--charcoal);font-size:.94rem}
.vehicle-check-flags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:10px;
}
.check-mini{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 8px;
  border-radius:8px;
  font-size:.74rem;
  font-weight:800;
  line-height:1;
}
.check-mini.ok{background:#edf8f2;color:#0d7540}
.check-mini.bad{background:#fff0f0;color:#ad161d}
.vehicle-check-notes{
  margin-top:10px;
  padding:9px 10px;
  background:#fff5f5;
  border-radius:9px;
  color:#8f171c;
  font-size:.82rem;
  line-height:1.3;
  overflow-wrap:break-word;
}
@media (max-width:600px) and (orientation:portrait){
  body.driver-page #recentChecks{gap:9px}
  body.driver-page .vehicle-check-history-card{padding:12px;border-radius:12px}
  body.driver-page .vehicle-check-history-head{gap:8px}
  body.driver-page .vehicle-check-identity strong{font-size:1.02rem}
  body.driver-page .vehicle-check-identity span{font-size:.86rem}
  body.driver-page .vehicle-check-status{font-size:.68rem;padding:6px 8px}
  body.driver-page .vehicle-check-meta{font-size:.78rem;align-items:flex-end}
  body.driver-page .vehicle-check-flags{gap:5px}
  body.driver-page .check-mini{font-size:.7rem;padding:5px 7px}
}
@media (max-width:370px) and (orientation:portrait){
  body.driver-page .vehicle-check-history-head{flex-direction:column}
  body.driver-page .vehicle-check-status{align-self:flex-start}
  body.driver-page .vehicle-check-meta{flex-direction:column;align-items:flex-start;gap:3px}
}


/* v1.12 Vehicle damage / accident incidents */
.incident-head{background:#8f1117}.incident-textarea{resize:vertical;min-height:110px}.inline-field-action{display:flex;gap:10px;align-items:stretch}.inline-field-action .field{flex:1}.incident-subhead{font-weight:900;font-size:18px;margin:8px 0 14px;color:#ed1c24}.accident-fields{border:1px solid #e3e5e8;border-radius:16px;padding:16px;background:#fafafa}.incident-photo-box{border:2px dashed #d5d9df;border-radius:16px;padding:16px}.photo-count{font-weight:800;margin-top:8px}.incident-submit{width:100%;min-height:58px}.incident-mobile-card,.incident-admin-card{border:1px solid #dce1e7;border-radius:16px;padding:16px;margin-bottom:12px;background:#fff}.incident-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.incident-type-badge{display:inline-flex;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:900;letter-spacing:.03em}.incident-type-badge.damage{background:#fff0c7;color:#704b00}.incident-type-badge.accident{background:#fde0e1;color:#a00009}.incident-description-preview{margin:10px 0;white-space:pre-wrap}.incident-admin-grid,.incident-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0}.incident-admin-grid>div,.incident-detail-grid>div{background:#f4f5f7;border-radius:10px;padding:10px}.incident-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.incident-filter-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.incident-detail-modal{max-width:1000px;width:min(96vw,1000px);max-height:92vh;overflow:auto}.incident-admin-edit{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.incident-admin-edit textarea{grid-column:1/-1}.incident-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.incident-photo{margin:0;border:1px solid #ddd;border-radius:12px;overflow:hidden;background:#f5f5f5}.incident-photo img{display:block;width:100%;max-height:420px;object-fit:contain;background:#111}.incident-photo figcaption{padding:8px 10px;font-size:13px}.file-field{padding:12px}
@media(max-width:700px){.driver-tabs{grid-template-columns:repeat(5,minmax(0,1fr))!important}.driver-tabs .driver-tab{font-size:11px!important;padding-left:4px!important;padding-right:4px!important}.inline-field-action{flex-direction:column}.incident-admin-grid,.incident-detail-grid,.incident-admin-edit,.incident-photo-grid{grid-template-columns:1fr}.incident-filter-grid{grid-template-columns:1fr}.incident-photo img{max-height:320px}}


/* v1.13 Incident photo source chooser */
.incident-photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:10px 0 12px}.incident-photo-action{min-height:54px}.incident-photo-names{margin-top:10px;display:grid;gap:6px}.incident-photo-name{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f4f5f7;border-radius:10px;padding:8px 10px;font-size:13px}.incident-photo-name span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.incident-photo-remove{border:0;background:#2d2f31;color:white;width:30px;height:30px;border-radius:50%;font-size:20px;line-height:1;cursor:pointer;flex:0 0 auto}@media(max-width:480px){.incident-photo-actions{grid-template-columns:1fr}.incident-photo-action{width:100%}}


/* v1.14 — automatic trip tracking */
.auto-track-box{border:1px solid #d9dde3;border-radius:12px;padding:12px;background:#f8f9fb}
.auto-track-toggle{font-size:15px;align-items:flex-start}
.gps-tracking-panel{border:1px solid #b8d9c4;background:#f3fbf6;border-radius:12px;padding:12px;margin:0 0 14px}
.gps-track-row{display:flex;align-items:center;gap:9px;color:#166534}
.gps-pulse{width:11px;height:11px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 5px rgba(22,163,74,.12)}
.gps-track-stats{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:13px;color:#334155}
.gps-track-stats span{background:white;border:1px solid #dfe7e2;border-radius:9px;padding:7px 9px}
@media(max-width:600px){.gps-track-stats{display:grid;grid-template-columns:1fr 1fr;gap:7px}.gps-track-stats span:last-child{grid-column:1/-1}.auto-track-box{padding:10px}}


/* v1.15 Trip Protection -------------------------------------------------- */
.driver-version-line{display:flex;align-items:center;gap:7px;margin-top:4px;font-size:11px;font-weight:850;color:#6b7280}
.connectivity-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:950;letter-spacing:.04em;background:#e9f7ee;color:#166534;border:1px solid #cce8d5}
.connectivity-chip.offline{background:#fdecec;color:#a20f16;border-color:#f3c9cc}.connectivity-chip.warn{background:#fff3d6;color:#835300;border-color:#efd69b}
.gps-sync-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px;font-size:12px;color:#4b5563}
.gps-sync-row>span{background:#fff;border:1px solid #dfe7e2;border-radius:9px;padding:6px 8px}
.gps-sync-value{font-weight:950}.gps-sync-value.ok{color:#166534}.gps-sync-value.pending{color:#1d4ed8}.gps-sync-value.warn{color:#8a5500}.gps-sync-value.offline{color:#a20f16}
.gps-recovery-notice{margin-top:9px;padding:9px 10px;border-radius:9px;background:#fff4d6;border:1px solid #efd79e;color:#6f4b00;font-size:12px;line-height:1.35;font-weight:750}
@media(max-width:600px){.gps-sync-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}.gps-sync-row>span:last-child{grid-column:1/-1}.driver-version-line{font-size:10px}.connectivity-chip{font-size:9px}}


/* v1.16 Cartrack vehicle sync -------------------------------------------- */
.cartrack-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 8px}
.cartrack-link-controls{display:flex;gap:6px;align-items:center;flex-wrap:wrap;min-width:360px}
.cartrack-link-controls .mini-select{min-width:190px;max-width:260px;padding:7px 9px}
.cartrack-table td{vertical-align:middle}
.cartrack-last-sync{font-size:clamp(.8rem,1.2vw,1.05rem)!important;line-height:1.2;word-break:break-word}
@media (max-width:900px){.cartrack-link-controls{min-width:260px}.cartrack-link-controls .mini-select{min-width:160px}}


/* =====================================================================
   v1.17 — Reception Kiosk Pro
   Live who's-in panel, one-action clocking, staff tiles, connection status,
   roll call, wake-lock friendly layout and safer retry UX.
   ===================================================================== */
.kiosk17-body{background:#eef1f4}
.kiosk17-brand{gap:10px}
.kiosk17-header-right{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
.kiosk17-version{font-size:.75rem;font-weight:900;color:#6d7580;border:1px solid #dce1e6;border-radius:999px;padding:6px 9px;background:#fff}
.kiosk17-connection{font-size:.72rem;font-weight:950;letter-spacing:.03em;border-radius:999px;padding:7px 10px;white-space:nowrap}
.kiosk17-connection.checking{background:#eef1f4;color:#555}
.kiosk17-connection.online{background:#e4f7eb;color:#087235}
.kiosk17-connection.offline{background:#fde7e9;color:#a30c14}
.kiosk17-header-btn,.kiosk17-retry{border:1px solid #d6dce2;background:#fff;color:var(--charcoal);border-radius:9px;min-height:38px;padding:0 12px;font-weight:900;cursor:pointer}
.kiosk17-header-btn:hover,.kiosk17-retry:hover{border-color:var(--red);color:var(--red)}
.kiosk17-content{width:min(1440px,98vw);margin:10px auto 12px!important}
.kiosk17-grid{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(330px,.78fr);gap:10px;min-height:0}
.kiosk17-right-column{display:grid;grid-template-rows:minmax(0,1.1fr) minmax(170px,.9fr);gap:10px;min-height:0}
.kiosk17-clock-card,.kiosk17-camera-card-wrap,.kiosk17-whos-in-card{min-height:0}
.kiosk17-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.kiosk17-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 9px;font-size:.68rem;font-weight:950;letter-spacing:.03em;white-space:nowrap}
.kiosk17-chip.good{background:#e4f7eb;color:#087235}
.kiosk17-chip.bad{background:#fde7e9;color:#a30c14}
.kiosk17-chip.neutral{background:#eef1f4;color:#4d5660}
.kiosk17-clock-panel{position:relative;display:flex!important;flex-direction:column;gap:10px!important;justify-content:flex-start!important;height:100%;min-height:0}
.kiosk17-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.kiosk17-topline h1{font-size:1.55rem;margin-top:2px}
.kiosk17-time-block{text-align:right;min-width:180px}
.kiosk17-time-block .clock{font-size:2.6rem}
.kiosk17-time-block .date-line{font-size:.72rem}
.kiosk17-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.kiosk17-metrics>div{border:1px solid #e0e4e8;border-radius:10px;background:#fafbfc;padding:8px 9px;display:flex;flex-direction:column;min-width:0}
.kiosk17-metrics strong{font-size:1.25rem;line-height:1;color:var(--charcoal)}
.kiosk17-metrics span{margin-top:4px;font-size:.62rem;font-weight:850;color:#67717d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kiosk17-section-title{font-size:.64rem;font-weight:950;letter-spacing:.07em;color:#5a626d}
.kiosk17-staff-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-height:0;max-height:185px;overflow-y:auto;padding-right:2px}
.kiosk17-staff-tile{appearance:none;border:1px solid #dfe3e8;background:#fff;border-radius:10px;padding:7px 8px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:7px;align-items:center;text-align:left;cursor:pointer;min-height:48px}
.kiosk17-staff-tile:hover{border-color:#b9c0c8}
.kiosk17-staff-tile.selected{border-color:var(--red);box-shadow:0 0 0 2px rgba(237,28,36,.10);background:#fff7f7}
.kiosk17-tile-avatar,.kiosk17-avatar,.kiosk17-who-avatar{border-radius:50%;display:grid;place-items:center;background:var(--charcoal);color:#fff;font-weight:950}
.kiosk17-tile-avatar{width:34px;height:34px;font-size:.68rem}
.kiosk17-tile-copy{display:flex;flex-direction:column;min-width:0}
.kiosk17-tile-copy strong{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kiosk17-tile-copy small{font-size:.56rem;color:#747d88;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.kiosk17-tile-status{font-size:.55rem;font-weight:950;border-radius:999px;padding:4px 6px}
.kiosk17-tile-status.good{background:#e5f8ec;color:#0b7336}
.kiosk17-tile-status.neutral{background:#edf0f3;color:#5b6470}
.kiosk17-selected{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:9px;align-items:center;border:1px solid #dce1e6;border-radius:11px;background:#f7f8fa;padding:7px 9px}
.kiosk17-avatar{width:42px;height:42px;font-size:.78rem}
.kiosk17-selected-copy{display:flex;flex-direction:column;min-width:0}
.kiosk17-selected-copy strong{font-size:.8rem}
.kiosk17-selected-copy span{font-size:.61rem;color:#6d7580;margin-top:2px}
.kiosk17-clear-btn{border:1px solid #d5dbe1;background:#fff;border-radius:8px;height:32px;font-size:.58rem;font-weight:900;cursor:pointer;padding:0 9px}
.kiosk17-pin-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.42fr);gap:9px;align-items:end}
.kiosk17-pin-field label{margin:0 0 4px!important}
.kiosk17-main-action{width:100%;min-height:42px!important;height:42px!important}
.kiosk17-status-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.kiosk17-status-row .status{margin:0!important}
.kiosk17-retry{height:36px;white-space:nowrap;background:#fff5df;color:#7a4c00;border-color:#e3c98b}
.kiosk17-camera-panel{height:100%;min-height:0;padding:8px!important}
.kiosk17-camera-card{height:100%;min-height:0!important;max-height:none!important}
.kiosk17-camera-card video{height:100%;min-height:0!important}
.kiosk17-who-panel{height:100%;min-height:0;padding:8px 10px!important}
.kiosk17-who-list{display:grid;gap:5px;max-height:100%;overflow-y:auto}
.kiosk17-who-row{display:grid;grid-template-columns:32px minmax(0,1fr) 10px;gap:7px;align-items:center;border-bottom:1px solid #edf0f2;padding:4px 2px 6px}
.kiosk17-who-row:last-child{border-bottom:0}
.kiosk17-who-avatar{width:32px;height:32px;font-size:.62rem}
.kiosk17-who-copy{display:flex;flex-direction:column;min-width:0}
.kiosk17-who-copy strong{font-size:.69rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kiosk17-who-copy small{font-size:.55rem;color:#727b86;margin-top:2px}
.kiosk17-dot{width:8px;height:8px;border-radius:50%;background:var(--green)}
.kiosk17-loading,.kiosk17-empty{font-size:.7rem;color:#737c87;padding:8px}
.kiosk17-success-view{max-width:720px;margin:0 auto}
.kiosk17-success{padding:24px!important}
.kiosk17-success-time{font-size:2rem;font-weight:950;margin-top:12px}
.kiosk17-auto-return{margin:10px 0;color:#6c7580;font-size:.8rem;font-weight:800}
.kiosk17-success #done{margin-top:8px;min-width:200px}
.kiosk17-modal{position:fixed;inset:0;background:rgba(20,22,25,.72);z-index:3000;display:grid;place-items:center;padding:18px}
.kiosk17-modal-card{width:min(760px,95vw);max-height:88vh;overflow:auto;background:#fff;border-radius:18px;padding:20px;box-shadow:0 22px 70px rgba(0,0,0,.35)}
.kiosk17-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.kiosk17-modal-head h2{margin-top:4px}
.kiosk17-modal-close{width:42px;height:42px;border:0;border-radius:50%;background:var(--charcoal);color:#fff;font-size:24px;cursor:pointer}
.kiosk17-roll-list{display:grid;gap:5px;margin-top:14px}
.kiosk17-roll-row{display:grid;grid-template-columns:34px minmax(0,1fr) 90px;gap:9px;align-items:center;border:1px solid #e0e4e8;border-radius:10px;padding:9px 10px}
.kiosk17-roll-number{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eef1f4;font-weight:950}
.kiosk17-roll-row>span:nth-child(2){display:flex;flex-direction:column}
.kiosk17-roll-row small{color:#6e7782;margin-top:2px}
.kiosk17-roll-row>span:last-child{text-align:right;font-weight:900}
.kiosk17-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}

/* Keep the keypad close to the PIN field on the wider v1.17 left panel. */
.kiosk17-body .kiosk17-pin-keypad{right:10px;top:auto;bottom:60px;width:170px;z-index:20}

/* Reception tablet landscape: use the whole PWA viewport without page scroll. */
@media (orientation:landscape) and (min-width:560px){
  .kiosk17-body .kiosk17-content{height:calc(var(--kiosk-height) - 62px)!important;max-height:calc(var(--kiosk-height) - 62px)!important;overflow:hidden!important}
  .kiosk17-body .kiosk17-grid{height:100%!important}
  .kiosk17-body .kiosk17-clock-card,
  .kiosk17-body .kiosk17-right-column,
  .kiosk17-body .kiosk17-camera-card-wrap,
  .kiosk17-body .kiosk17-whos-in-card{height:100%;min-height:0}
}

/* Honor Pad / short Android landscape */
@media (orientation:landscape) and (min-width:560px) and (max-height:650px){
  .kiosk17-body .kiosk17-content{height:calc(var(--kiosk-height) - 44px)!important;max-height:calc(var(--kiosk-height) - 44px)!important;margin:3px auto!important}
  .kiosk17-body .kiosk17-grid{gap:6px!important;grid-template-columns:minmax(0,1.48fr) minmax(300px,.72fr)}
  .kiosk17-body .kiosk17-right-column{gap:6px!important;grid-template-rows:minmax(0,1.06fr) minmax(145px,.94fr)}
  .kiosk17-body .kiosk17-clock-panel{padding:6px 8px!important;gap:5px!important;justify-content:flex-start!important}
  .kiosk17-body .kiosk17-card-head{padding:4px 8px!important;min-height:24px!important;font-size:.62rem!important}
  .kiosk17-body .kiosk17-topline h1{font-size:1.05rem!important}
  .kiosk17-body .kiosk17-time-block .clock{font-size:1.8rem!important}
  .kiosk17-body .kiosk17-time-block .date-line{font-size:.53rem!important}
  .kiosk17-body .kiosk17-metrics{gap:4px}
  .kiosk17-body .kiosk17-metrics>div{padding:5px 6px;border-radius:7px}
  .kiosk17-body .kiosk17-metrics strong{font-size:.9rem}
  .kiosk17-body .kiosk17-metrics span{font-size:.48rem;margin-top:2px}
  .kiosk17-body .kiosk17-section-title{font-size:.52rem}
  .kiosk17-body .kiosk17-staff-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;max-height:128px}
  .kiosk17-body .kiosk17-staff-tile{grid-template-columns:27px minmax(0,1fr) auto;min-height:37px;padding:4px 5px;border-radius:7px;gap:5px}
  .kiosk17-body .kiosk17-tile-avatar{width:27px;height:27px;font-size:.55rem}
  .kiosk17-body .kiosk17-tile-copy strong{font-size:.59rem}
  .kiosk17-body .kiosk17-tile-copy small{font-size:.45rem}
  .kiosk17-body .kiosk17-tile-status{font-size:.44rem;padding:3px 5px}
  .kiosk17-body .kiosk17-selected{grid-template-columns:32px minmax(0,1fr) auto;padding:4px 6px;border-radius:7px}
  .kiosk17-body .kiosk17-avatar{width:32px;height:32px;font-size:.6rem}
  .kiosk17-body .kiosk17-selected-copy strong{font-size:.63rem}
  .kiosk17-body .kiosk17-selected-copy span{font-size:.48rem;margin-top:1px}
  .kiosk17-body .kiosk17-clear-btn{height:26px;font-size:.48rem}
  .kiosk17-body .kiosk17-pin-row{gap:5px}
  .kiosk17-body .kiosk17-pin-row .field{height:34px!important;min-height:34px!important}
  .kiosk17-body .kiosk17-main-action{height:34px!important;min-height:34px!important;font-size:.65rem!important}
  .kiosk17-body .kiosk17-status-row{gap:5px}
  .kiosk17-body .kiosk17-status-row .status{min-height:24px!important;font-size:.53rem!important;padding:4px 6px!important}
  .kiosk17-body .kiosk17-retry{height:28px;font-size:.5rem;padding:0 7px}
  .kiosk17-body .kiosk17-camera-panel,.kiosk17-body .kiosk17-who-panel{padding:5px!important}
  .kiosk17-body .kiosk17-who-row{grid-template-columns:26px minmax(0,1fr) 8px;gap:5px;padding:3px 1px 4px}
  .kiosk17-body .kiosk17-who-avatar{width:26px;height:26px;font-size:.5rem}
  .kiosk17-body .kiosk17-who-copy strong{font-size:.57rem}
  .kiosk17-body .kiosk17-who-copy small{font-size:.45rem}
  .kiosk17-body .kiosk17-header-right{gap:4px}
  .kiosk17-body .kiosk17-version{display:none}
  .kiosk17-body .kiosk17-connection{font-size:.52rem;padding:5px 7px}
  .kiosk17-body .kiosk17-header-btn{min-height:28px;height:28px;font-size:.52rem;padding:0 7px}
  .kiosk17-body .install-app-btn{min-height:28px!important;height:28px!important;font-size:.5rem!important;padding:0 7px!important}
  .kiosk17-body .kiosk17-pin-keypad{bottom:42px;width:150px;padding:5px!important}
}

/* Very short landscape viewports */
@media (orientation:landscape) and (min-width:560px) and (max-height:560px){
  .kiosk17-body .kiosk17-content{height:calc(var(--kiosk-height) - 38px)!important;max-height:calc(var(--kiosk-height) - 38px)!important}
  .kiosk17-body .kiosk17-staff-tiles{max-height:100px}
  .kiosk17-body .kiosk17-right-column{grid-template-rows:minmax(0,1fr) minmax(120px,.8fr)}
  .kiosk17-body .kiosk17-metrics span{display:none}
  .kiosk17-body .kiosk17-metrics>div{align-items:center}
  .kiosk17-body .kiosk17-selected-copy #selectedLast{display:none}
}

/* Portrait fallback */
@media (orientation:portrait), (max-width:720px){
  .kiosk17-body{overflow-y:auto!important;height:auto!important;max-height:none!important}
  .kiosk17-body .app-shell{height:auto!important;max-height:none!important;overflow:visible!important}
  .kiosk17-header-right .red-block{display:none}
  .kiosk17-header-right{flex-wrap:wrap}
  .kiosk17-content{height:auto!important;max-height:none!important;overflow:visible!important}
  .kiosk17-grid{grid-template-columns:1fr}
  .kiosk17-right-column{grid-template-rows:auto auto}
  .kiosk17-staff-tiles{grid-template-columns:repeat(2,minmax(0,1fr));max-height:340px}
  .kiosk17-pin-row{grid-template-columns:1fr}
  .kiosk17-status-row{grid-template-columns:1fr}
  .kiosk17-time-block{text-align:left}
  .kiosk17-body .kiosk17-pin-keypad{position:fixed!important;left:50%!important;right:auto!important;bottom:16px!important;top:auto!important;transform:translateX(-50%);width:min(320px,92vw)!important}
}

/* -------------------------------------------------------------------------
   v1.17.4 — Linked Vehicles Only + Custom Names
   Large touch controls, per-trip vehicle choice and automatic day switching.
   ------------------------------------------------------------------------- */
.travel17-summary-card{background:#f0f3f7;border:1px solid #dfe4ea;border-radius:16px;padding:14px 16px;margin-bottom:14px;box-shadow:0 4px 12px rgba(20,31,44,.05)}
.travel17-summary-title{display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:950;color:#172238;margin-bottom:10px}.travel17-track-badge{font-size:.68rem;letter-spacing:.04em;background:#e9f8ef;color:#08783c;border:1px solid #bce8cb;border-radius:999px;padding:6px 9px;white-space:nowrap}
.travel17-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.travel17-summary-grid>div{text-align:center;background:#fff;border:1px solid #e2e7ed;border-radius:12px;padding:10px 5px}.travel17-summary-grid strong{display:block;font-size:1.55rem;line-height:1;color:#172238}.travel17-summary-grid span{display:block;margin-top:5px;font-size:.72rem;color:#66717f;font-weight:800;text-transform:uppercase}
.travel17-card{overflow:hidden}.travel17-start-panel{display:grid;gap:13px}.travel17-step{background:#f8fafc;border:1px solid #dfe5ec;border-radius:15px;padding:13px}.travel17-step-title{display:flex;align-items:center;gap:9px;font-size:1.06rem;font-weight:950;color:#172238;margin-bottom:9px}.travel17-step-no{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#172238;color:#fff;font-size:.82rem;flex:0 0 auto}.travel17-select{font-size:1.02rem!important;font-weight:800!important;min-height:58px!important;background:#fff}.travel17-hint{font-size:.76rem;color:#637080;margin-top:7px;line-height:1.3}
.travel17-reason-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.travel17-reason-btn{appearance:none;border:2px solid #dde3ea;background:#fff;border-radius:14px;min-height:92px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#172238;font:inherit;font-weight:900;cursor:pointer;line-height:1.13}.travel17-reason-btn.active{border-color:#ed1c24;background:#fff4f4;box-shadow:0 0 0 2px rgba(237,28,36,.08)}.travel17-reason-icon{font-size:1.25rem;color:#172238;letter-spacing:-.08em}
.travel17-primary-start,.travel17-primary-end{appearance:none;border:0;border-radius:16px;min-height:78px;width:100%;padding:12px 16px;color:#fff;display:flex;align-items:center;justify-content:center;gap:13px;font:inherit;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.13)}.travel17-primary-start{background:#159947}.travel17-primary-start:active{background:#0e7d39}.travel17-primary-end{background:#ed1c24;margin-top:14px}.travel17-primary-end:active{background:#c9151c}.travel17-primary-start strong,.travel17-primary-end strong{display:block;font-size:1.35rem;line-height:1.1}.travel17-primary-start small,.travel17-primary-end small{display:block;font-size:.75rem;font-weight:700;margin-top:3px;opacity:.9}.travel17-play{font-size:1.55rem}.travel17-help{text-align:center;color:#6b7582;font-size:.74rem;line-height:1.35}
.travel17-active-card{overflow:hidden}.travel17-active-banner{background:#159947;color:#fff;padding:14px 16px;display:flex;align-items:center;gap:12px}.travel17-active-banner .gps-pulse{background:#fff;box-shadow:0 0 0 6px rgba(255,255,255,.18)}.travel17-active-banner strong{display:block;font-size:1.05rem}.travel17-active-banner small{display:block;margin-top:2px;opacity:.9}.travel17-active-panel{display:grid;gap:13px}
.travel17-distance-ring{width:190px;height:190px;margin:2px auto 0;border-radius:50%;background:conic-gradient(#159947 0 72%,#e6ebf0 72% 100%);display:grid;place-items:center;position:relative}.travel17-distance-ring:after{content:"";position:absolute;inset:17px;border-radius:50%;background:#fff}.travel17-distance-ring>div{z-index:1;text-align:center}.travel17-distance-ring strong{font-size:2.65rem;line-height:1;color:#172238}.travel17-distance-ring span{font-size:1.2rem;font-weight:900;color:#172238;margin-left:3px}.travel17-distance-ring small{display:block;color:#687482;font-weight:700;margin-top:4px}
.travel17-live-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px}.travel17-live-stats>div,.travel17-trip-details>div{background:#f5f7fa;border:1px solid #e2e6eb;border-radius:12px;padding:11px}.travel17-live-stats span,.travel17-trip-details span{display:block;font-size:.7rem;text-transform:uppercase;color:#697583;font-weight:850;margin-bottom:4px}.travel17-live-stats strong{font-size:1.05rem;color:#172238}.travel17-trip-details{display:grid;grid-template-columns:1fr 1fr;gap:9px}.travel17-trip-details strong{font-size:.88rem;line-height:1.25;color:#172238;overflow-wrap:anywhere}.travel17-gps-panel{margin:0!important}.travel17-note-label{margin-top:0!important}
.travel17-history-card{margin-top:14px!important}.travel17-complete-modal{max-width:430px;text-align:center;padding:24px}.travel17-complete-check{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:#159947;color:#fff;font-size:2.7rem;font-weight:950}.travel17-complete-modal h2{font-size:1.7rem;margin:0 0 4px}.travel17-complete-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.travel17-complete-summary>div{background:#f5f7fa;border:1px solid #e1e6ec;border-radius:12px;padding:10px;text-align:left}.travel17-complete-summary span{display:block;font-size:.68rem;color:#6a7582;text-transform:uppercase;font-weight:850}.travel17-complete-summary strong{display:block;margin-top:4px;color:#172238;overflow-wrap:anywhere}.travel17-complete-modal .btn-secondary{margin-top:9px;min-height:54px}
@media(max-width:520px){.travel17-summary-card{padding:11px}.travel17-summary-grid strong{font-size:1.35rem}.travel17-step{padding:11px}.travel17-reason-btn{min-height:84px}.travel17-primary-start,.travel17-primary-end{min-height:72px}.travel17-primary-start strong,.travel17-primary-end strong{font-size:1.2rem}.travel17-distance-ring{width:168px;height:168px}.travel17-distance-ring strong{font-size:2.3rem}.travel17-trip-details{grid-template-columns:1fr}.travel17-complete-summary{grid-template-columns:1fr 1fr}}
.field-help{font-size:.82rem;color:#6b7280;margin-top:5px;line-height:1.25}


/* v1.17.5 — driver end-day controls */
.travel17-endday-card{margin-top:14px!important;overflow:hidden}.travel17-endday-hint{background:#f5f7fa;border:1px solid #e2e6eb;border-radius:12px;padding:11px 12px;color:#5f6b78;font-size:.82rem;font-weight:750;line-height:1.35;margin-bottom:12px}.travel17-endday-btn{width:100%;min-height:60px;background:#2d3035!important;color:#fff!important;font-size:1.08rem!important;font-weight:950!important;border-radius:14px!important}.travel17-endday-btn:disabled{opacity:.55;cursor:not-allowed}.travel17-day-ended{margin-top:14px!important;border:2px solid #bce8cb!important;background:#effaf3!important}.travel17-day-ended .panel{display:flex;align-items:center;gap:12px}.travel17-day-ended-icon{width:46px;height:46px;border-radius:50%;background:#159947;color:#fff;display:grid;place-items:center;font-size:1.6rem;font-weight:950;flex:0 0 auto}.travel17-day-ended strong{display:block;color:#0b6f37;font-size:1.03rem}.travel17-day-ended span{display:block;margin-top:3px;color:#53635b;font-size:.82rem;line-height:1.35}

/* =====================================================================
   v1.18 — Unified Modern UI
   Shared visual language across Admin, Reception Tablet and Driver PWA.
   Presentation-only: no workflow or database behaviour changes.
   ===================================================================== */
:root{
  --ui18-navy:#14213d;
  --ui18-ink:#172238;
  --ui18-blue:#1677ff;
  --ui18-green:#18a957;
  --ui18-red:#ed1c24;
  --ui18-bg:#f2f5f8;
  --ui18-soft:#f7f9fb;
  --ui18-line:#e0e6ed;
  --ui18-shadow:0 5px 18px rgba(20,33,61,.07);
}
body.ui18{background:var(--ui18-bg);color:var(--ui18-ink)}
body.ui18 .brand-bar{background:#fff;border-bottom:3px solid var(--ui18-red);box-shadow:0 2px 10px rgba(20,33,61,.05)}
body.ui18 .brand-bar img{filter:none}
body.ui18 .red-block{height:52px;border-radius:0 0 0 12px;clip-path:none;width:110px}
body.ui18 .card{border:1px solid var(--ui18-line);border-radius:15px;box-shadow:var(--ui18-shadow);background:#fff}
body.ui18 .card-head{background:#2b2f34;color:#fff;min-height:52px;display:flex;align-items:center;gap:10px;padding:13px 17px;font-size:.95rem;letter-spacing:.01em}
body.ui18 .card-head>.ui-icon-wrap{color:#fff}
body.ui18 .panel{background:#fff}
body.ui18 .field{border:1px solid #d7dee7;background:#fff;border-radius:12px;box-shadow:inset 0 1px 0 rgba(20,33,61,.02)}
body.ui18 .field:focus{border-color:var(--ui18-blue);box-shadow:0 0 0 3px rgba(22,119,255,.11)}
body.ui18 .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-radius:12px;box-shadow:none}
body.ui18 .btn-in{background:var(--ui18-red)}
body.ui18 .btn-secondary{background:#f4f7fa;border-color:#dbe2ea;color:var(--ui18-ink)}
body.ui18 .status{border:1px solid #e0e6ed;background:#f6f8fa}
body.ui18 .status.ok{border-color:#ccebd8;background:#eefaf2;color:#0b7138}
body.ui18 .status.err{border-color:#f3c8cc;background:#fff0f1;color:#a20c14}
body.ui18 .status.warn{border-color:#f0dfae;background:#fff9e8;color:#7b5600}

/* Shared line icons */
.ui-icon-wrap{width:22px;height:22px;display:inline-grid;place-items:center;flex:0 0 auto;color:currentColor}
.ui-icon{width:20px;height:20px;display:block}
button .ui-icon-wrap,.table-btn .ui-icon-wrap{width:18px;height:18px}.table-btn .ui-icon{width:16px;height:16px}
.ui18 .admin-nav-btn{display:flex;align-items:center;gap:11px}
.ui18 .driver-tab{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:4px!important}
.ui18 .driver-tab .ui-icon-wrap{width:21px;height:21px}.ui18 .driver-tab .ui-icon{width:20px;height:20px}
.ui18 .travel17-step-title .ui-icon-wrap{display:none}

/* Admin — cleaner icon-led left rail and cards */
body.ui18 .admin-content{width:min(1560px,98vw);margin-top:18px}
body.ui18 .admin-layout{grid-template-columns:280px minmax(0,1fr);gap:20px}
body.ui18 .admin-sidebar{border-radius:16px;overflow:hidden;box-shadow:var(--ui18-shadow)}
body.ui18 .admin-sidebar .card-head{background:#25292e;font-size:1rem}
body.ui18 .admin-nav{padding:11px;gap:6px;background:#fff}
body.ui18 .admin-nav-btn{min-height:48px;border:1px solid transparent;border-radius:11px;background:#f7f9fb;color:#2f3743;font-weight:850;padding:0 13px;text-decoration:none}
body.ui18 .admin-nav-btn:hover{background:#eef3f8;border-color:#e0e6ed}
body.ui18 .admin-nav-btn.active{background:var(--ui18-red);color:#fff;border-color:var(--ui18-red);box-shadow:0 4px 11px rgba(237,28,36,.18)}
body.ui18 .admin-side-links{background:#fff;border-top:1px solid var(--ui18-line);padding-top:11px}
body.ui18 .admin-topline h1{font-size:2rem;letter-spacing:-.02em}
body.ui18 .user-chip{box-shadow:0 3px 12px rgba(20,33,61,.05);border-radius:13px}
body.ui18 .metric-card{position:relative;min-height:108px;padding:16px 16px 14px;border:1px solid var(--ui18-line);box-shadow:0 3px 12px rgba(20,33,61,.04);overflow:hidden}
body.ui18 .metric-card>.ui-icon-wrap{position:absolute;right:13px;top:13px;width:34px;height:34px;border-radius:10px;background:#eef3f8;color:#607087}
body.ui18 .metric-card>.ui-icon-wrap .ui-icon{width:18px;height:18px}
body.ui18 .metric-card.positive>.ui-icon-wrap{background:#eaf8ef;color:#0d843f}
body.ui18 .metric-card.alert>.ui-icon-wrap{background:#fff0f1;color:#c11c25}
body.ui18 .data-table th{background:#f4f7fa;color:#5b6675;border-bottom:1px solid var(--ui18-line)}
body.ui18 .data-table td{border-top:1px solid #e8edf2}
body.ui18 .data-table tr:hover td{background:#f8fafc}
body.ui18 .table-btn{display:inline-flex;align-items:center;gap:6px;border-radius:9px;background:#fff}
body.ui18 .table-btn.primary{background:var(--ui18-red)}

/* Driver — visual language from the supplied reference */
body.ui18.driver-page{background:#f2f5f8}
body.ui18.driver-page .brand-bar{min-height:48px;padding:5px 10px}
body.ui18.driver-page .brand-bar img{max-height:42px;width:min(176px,55vw)}
body.ui18.driver-page .brand-bar .red-block{height:30px;width:52px;border-radius:0 0 0 9px}
body.ui18.driver-page .driver-header-line{background:transparent;margin-bottom:10px}
body.ui18.driver-page .driver-header-line h1{font-size:1.75rem;letter-spacing:-.025em}
body.ui18.driver-page .travel17-summary-card{background:#eef3f8;border:1px solid #dfe6ee;box-shadow:none}
body.ui18.driver-page .travel17-summary-title:before{content:"";width:22px;height:22px;display:inline-block;vertical-align:middle;margin-right:7px;background:var(--ui18-ink);mask:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"%3E%3Cpath d="M4 19V9M10 19V5M16 19v-7M22 19H2"/%3E%3C/svg%3E') center/contain no-repeat;-webkit-mask:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"%3E%3Cpath d="M4 19V9M10 19V5M16 19v-7M22 19H2"/%3E%3C/svg%3E') center/contain no-repeat}
body.ui18.driver-page .travel17-summary-title{justify-content:flex-start}
body.ui18.driver-page .travel17-summary-title .travel17-track-badge{margin-left:auto}
body.ui18.driver-page .travel17-step{background:#fff;border:1px solid #dfe6ee;box-shadow:0 2px 8px rgba(20,33,61,.035)}
body.ui18.driver-page .travel17-step-no{background:#eef3f8;color:var(--ui18-ink);border:1px solid #dfe6ee;font-size:.76rem}
body.ui18.driver-page .travel17-reason-btn{border:1px solid #dfe6ee;background:#f8fafc;box-shadow:none}
body.ui18.driver-page .travel17-reason-btn.active{border:2px solid var(--ui18-blue);background:#f0f6ff;box-shadow:0 0 0 2px rgba(22,119,255,.08)}
body.ui18.driver-page .travel17-reason-icon{font-size:1rem;letter-spacing:0;color:#21324a}
body.ui18.driver-page .travel17-primary-start{background:var(--ui18-green);border-radius:12px;min-height:68px;box-shadow:0 5px 13px rgba(24,169,87,.18)}
body.ui18.driver-page .travel17-primary-end{background:var(--ui18-red);border-radius:12px;min-height:68px;box-shadow:0 5px 13px rgba(237,28,36,.16)}
body.ui18.driver-page .travel17-active-banner{background:var(--ui18-green)}
body.ui18.driver-page .travel17-live-stats>div,body.ui18.driver-page .travel17-trip-details>div{background:#f5f8fb;border-color:#dfe6ee}
body.ui18.driver-page .travel17-distance-ring{background:conic-gradient(var(--ui18-green) 0 72%,#e5ebf1 72% 100%)}
body.ui18.driver-page .travel17-endday-btn{background:#334155!important}
body.ui18.driver-page .driver-tabs{padding:6px 5px calc(6px + env(safe-area-inset-bottom));gap:3px;box-shadow:0 -6px 20px rgba(20,33,61,.10);border-top:1px solid #dfe6ee}
body.ui18.driver-page .driver-tabs .pill{min-height:56px;border-radius:10px;background:#fff;color:#263447;font-size:.68rem;font-weight:850;padding:4px 2px}
body.ui18.driver-page .driver-tabs .pill.active{background:#eef5ff;color:#0b67d1;border:1px solid #cfe1fb;box-shadow:none}
body.ui18.driver-page .driver-tabs .pill.active .ui-icon-wrap{color:#0b67d1}
body.ui18.driver-page .driver-tabs .pill:not(.active) .ui-icon-wrap{color:#4c5b6e}
body.ui18.driver-page .card-head{background:#2b2f34}
body.ui18.driver-page .incident-head{background:#8d171c}

/* Reception tablet — same icon/card system, optimized for kiosk clarity */
body.ui18.kiosk17-body{background:#eef2f6}
body.ui18 .kiosk17-card-head{background:#2b2f34}
body.ui18 .kiosk17-metrics>div{position:relative;background:#f7f9fb;border-color:#e0e6ed;border-radius:12px}
body.ui18 .kiosk17-staff-tile{border-radius:12px;border-color:#dde4eb;background:#fff;box-shadow:0 2px 8px rgba(20,33,61,.035)}
body.ui18 .kiosk17-staff-tile.selected{border-color:var(--ui18-blue);box-shadow:0 0 0 2px rgba(22,119,255,.09);background:#f4f8ff}
body.ui18 .kiosk17-main-action{border-radius:12px}
body.ui18 .kiosk17-header-btn{display:inline-flex;align-items:center;gap:7px;background:#fff;border-color:#dbe2ea}
body.ui18 .kiosk17-whos-in-card .card-head .ui-icon-wrap{color:#fff}
body.ui18 .kiosk17-who-row{border-radius:10px}
body.ui18 .kiosk17-who-row:hover{background:#f7f9fb}

/* Consistent compact responsive treatment */
@media(max-width:1050px){body.ui18 .admin-layout{grid-template-columns:1fr}body.ui18 .admin-nav{grid-template-columns:repeat(3,1fr)}body.ui18 .admin-nav-btn{justify-content:center}}
@media(max-width:680px){body.ui18 .admin-nav{grid-template-columns:1fr 1fr}body.ui18 .admin-nav-btn{justify-content:flex-start}}
.ui-version-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 9px;border:1px solid #dce3ea;border-radius:999px;background:#fff;color:#657284;font-size:.72rem;font-weight:900;white-space:nowrap}

/* =====================================================================
   v1.18.1 — Responsive Unified UI refinement
   Closely follows the approved Dynamic Projects multi-device reference.
   Reception remains fully responsive in BOTH portrait and landscape.
   ===================================================================== */
:root{
  --dp-navy:#11213d;
  --dp-navy-2:#172b4a;
  --dp-red:#ef1b23;
  --dp-green:#16a34a;
  --dp-blue:#1677ff;
  --dp-canvas:#f4f7fa;
  --dp-card:#ffffff;
  --dp-soft:#f4f7fb;
  --dp-line:#dbe3ec;
  --dp-muted:#69778a;
  --dp-radius:16px;
}
body.ui18{background:var(--dp-canvas);color:var(--dp-navy)}
body.ui18 .brand-bar{background:#fff;border-bottom:2px solid #eef1f4;box-shadow:0 2px 10px rgba(17,33,61,.04)}
body.ui18 .brand-bar img{max-height:48px;object-fit:contain}
body.ui18 .card{border:1px solid var(--dp-line);border-radius:var(--dp-radius);box-shadow:0 4px 16px rgba(17,33,61,.055)}
body.ui18 .card-head{background:var(--dp-navy);font-weight:900;letter-spacing:.015em}
body.ui18 .field,body.ui18 select.field{border:1px solid #d6e0ea;background:#fff;border-radius:12px;min-height:48px}
body.ui18 .field:focus{border-color:var(--dp-blue);box-shadow:0 0 0 3px rgba(22,119,255,.10)}
body.ui18 .btn{font-weight:900;letter-spacing:.01em}
body.ui18 .btn-in{background:var(--dp-red)}
body.ui18 .eyebrow{color:var(--dp-red);letter-spacing:.12em;font-weight:950}

/* Driver: explicit SVG icon treatment and reference-style controls */
body.ui18.driver-page .driver-nav-svg,
body.ui18.driver-page .travel17-reason-svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
body.ui18.driver-page .travel17-reason-svg{width:30px;height:30px;color:var(--dp-navy)}
body.ui18.driver-page .driver-tabs .pill{color:#48576b}
body.ui18.driver-page .driver-tabs .pill.active{color:#0874ff;background:#eef6ff;border-color:#d5e6ff}
body.ui18.driver-page .driver-tabs .pill.active .driver-nav-svg{color:#0874ff}
body.ui18.driver-page .travel17-reason-btn{background:#fff;border:1px solid #d7e0e9;min-height:104px}
body.ui18.driver-page .travel17-reason-btn.active{border:2px solid var(--dp-red);background:#fff6f6;box-shadow:0 0 0 3px rgba(239,27,35,.07)}
body.ui18.driver-page .travel17-primary-start{background:linear-gradient(135deg,#13a64a,#18bd5b);box-shadow:0 7px 18px rgba(22,163,74,.19)}
body.ui18.driver-page .travel17-primary-end{background:linear-gradient(135deg,#ef1b23,#ff2f35);box-shadow:0 7px 18px rgba(239,27,35,.18)}
body.ui18.driver-page .travel17-step-title{color:var(--dp-navy)}
body.ui18.driver-page .travel17-step-no{background:var(--dp-navy);color:#fff}
body.ui18.driver-page .travel17-summary-card{border-radius:14px;background:#eef3f8}

/* Reception shared design */
body.ui18.kiosk17-body .kiosk17-brand{min-height:64px;padding:8px 18px}
body.ui18.kiosk17-body .kiosk17-content{width:min(1500px,97vw)}
body.ui18.kiosk17-body .kiosk17-card-head{background:var(--dp-navy);min-height:48px;padding:10px 14px;font-size:.86rem}
body.ui18.kiosk17-body .kiosk17-clock-panel{background:#fff}
body.ui18.kiosk17-body .kiosk17-topline h1{font-size:clamp(1.45rem,2.1vw,2.15rem);letter-spacing:-.03em;color:var(--dp-navy)}
body.ui18.kiosk17-body .kiosk17-time-block .clock{color:var(--dp-navy);font-weight:950;letter-spacing:-.04em}
body.ui18.kiosk17-body .kiosk17-metrics>div{background:#f4f7fb;border:1px solid #e0e7ef}
body.ui18.kiosk17-body .kiosk17-staff-tile{border:1px solid #dde5ed;min-height:56px}
body.ui18.kiosk17-body .kiosk17-staff-tile.selected{border:2px solid var(--dp-blue);background:#f5f9ff}
body.ui18.kiosk17-body .kiosk17-main-action{background:linear-gradient(135deg,#13a64a,#18bd5b);color:#fff;min-height:52px!important;height:auto!important}
body.ui18.kiosk17-body .kiosk17-main-action[data-action="OUT"]{background:linear-gradient(135deg,#ef1b23,#ff3038)}
body.ui18.kiosk17-body .kiosk17-camera-card{border-radius:13px;overflow:hidden;background:#edf2f7}
body.ui18.kiosk17-body .kiosk17-who-panel{background:#fff}
body.ui18.kiosk17-body .kiosk17-header-btn{border-radius:10px;color:var(--dp-navy)}
body.ui18.kiosk17-body .kiosk17-connection.online{background:#e9f8ef;color:#08783c;border:1px solid #ccebd8}

/* LANDSCAPE tablet: two-column control + camera/Who's-In layout */
@media (orientation:landscape) and (min-width:700px){
  body.ui18.kiosk17-body{overflow:hidden!important}
  body.ui18.kiosk17-body .kiosk17-content{height:calc(100dvh - 70px)!important;max-height:calc(100dvh - 70px)!important;margin:6px auto!important;overflow:hidden!important}
  body.ui18.kiosk17-body .kiosk17-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.82fr);gap:12px;height:100%}
  body.ui18.kiosk17-body .kiosk17-right-column{grid-template-rows:minmax(260px,1.08fr) minmax(180px,.92fr);gap:12px}
  body.ui18.kiosk17-body .kiosk17-clock-card,
  body.ui18.kiosk17-body .kiosk17-camera-card-wrap,
  body.ui18.kiosk17-body .kiosk17-whos-in-card{height:100%;min-height:0}
  body.ui18.kiosk17-body .kiosk17-clock-panel{padding:12px 14px!important;gap:9px!important}
  body.ui18.kiosk17-body .kiosk17-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
  body.ui18.kiosk17-body .kiosk17-staff-tiles{grid-template-columns:repeat(3,minmax(0,1fr));max-height:min(27vh,210px)}
  body.ui18.kiosk17-body .kiosk17-pin-row{grid-template-columns:minmax(0,1fr) minmax(180px,.42fr)}
  body.ui18.kiosk17-body .kiosk17-camera-panel{height:100%;padding:9px!important}
  body.ui18.kiosk17-body .kiosk17-camera-card video{width:100%;height:100%;object-fit:cover}
  body.ui18.kiosk17-body .kiosk17-who-list{max-height:100%}
}

/* PORTRAIT tablet: purpose-built stacked tablet layout, not a squeezed landscape view */
@media (orientation:portrait) and (min-width:600px){
  body.ui18.kiosk17-body{overflow-y:auto!important;height:auto!important;max-height:none!important}
  body.ui18.kiosk17-body .app-shell{height:auto!important;max-height:none!important;overflow:visible!important}
  body.ui18.kiosk17-body .kiosk17-brand{min-height:62px;padding:7px 12px;position:sticky;top:0;z-index:50}
  body.ui18.kiosk17-body .kiosk17-header-right{gap:6px;flex-wrap:nowrap}
  body.ui18.kiosk17-body .kiosk17-header-right .red-block{display:none}
  body.ui18.kiosk17-body .kiosk17-content{height:auto!important;max-height:none!important;overflow:visible!important;margin:10px auto 18px!important;width:min(760px,96vw)}
  body.ui18.kiosk17-body .kiosk17-grid{grid-template-columns:1fr;gap:12px;height:auto!important}
  body.ui18.kiosk17-body .kiosk17-clock-card{order:1;height:auto!important}
  body.ui18.kiosk17-body .kiosk17-right-column{order:2;display:grid;grid-template-columns:1fr;grid-template-rows:auto auto;gap:12px;height:auto!important}
  body.ui18.kiosk17-body .kiosk17-camera-card-wrap{order:1;height:auto!important}
  body.ui18.kiosk17-body .kiosk17-whos-in-card{order:2;height:auto!important}
  body.ui18.kiosk17-body .kiosk17-clock-panel{padding:14px!important;gap:12px!important}
  body.ui18.kiosk17-body .kiosk17-topline{align-items:center}
  body.ui18.kiosk17-body .kiosk17-time-block{text-align:right}
  body.ui18.kiosk17-body .kiosk17-time-block .clock{font-size:2.2rem}
  body.ui18.kiosk17-body .kiosk17-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
  body.ui18.kiosk17-body .kiosk17-staff-tiles{grid-template-columns:repeat(2,minmax(0,1fr));max-height:320px}
  body.ui18.kiosk17-body .kiosk17-pin-row{grid-template-columns:minmax(0,1fr) minmax(210px,.55fr);align-items:end}
  body.ui18.kiosk17-body .kiosk17-status-row{grid-template-columns:minmax(0,1fr) auto}
  body.ui18.kiosk17-body .kiosk17-camera-panel{height:auto;padding:10px!important}
  body.ui18.kiosk17-body .kiosk17-camera-card{height:min(45vh,420px)!important;min-height:300px!important}
  body.ui18.kiosk17-body .kiosk17-camera-card video{width:100%;height:100%;object-fit:cover}
  body.ui18.kiosk17-body .kiosk17-who-list{max-height:360px}
  body.ui18.kiosk17-body .kiosk17-pin-keypad{position:fixed!important;left:50%!important;right:auto!important;bottom:18px!important;top:auto!important;transform:translateX(-50%);width:min(360px,92vw)!important;z-index:4000!important}
}

/* Small portrait phones are not the target kiosk, but remain usable. */
@media (orientation:portrait) and (max-width:599px){
  body.ui18.kiosk17-body .kiosk17-header-right{gap:4px;flex-wrap:wrap}
  body.ui18.kiosk17-body .kiosk17-version{display:none}
  body.ui18.kiosk17-body .kiosk17-content{width:96vw}
  body.ui18.kiosk17-body .kiosk17-grid{grid-template-columns:1fr}
  body.ui18.kiosk17-body .kiosk17-staff-tiles{grid-template-columns:1fr 1fr}
  body.ui18.kiosk17-body .kiosk17-metrics{grid-template-columns:1fr 1fr}
  body.ui18.kiosk17-body .kiosk17-pin-row{grid-template-columns:1fr}
}

/* Admin: reference-style white workspace + navy rail, preserving existing controls */
body.ui18 .admin-sidebar{background:var(--dp-navy)}
body.ui18 .admin-sidebar .card-head{background:var(--dp-navy)}
body.ui18 .admin-nav{background:var(--dp-navy)}
body.ui18 .admin-nav-btn{background:transparent;color:#e9eef5;border-color:transparent}
body.ui18 .admin-nav-btn:hover{background:rgba(255,255,255,.08);color:#fff;border-color:transparent}
body.ui18 .admin-nav-btn.active{background:var(--dp-blue);color:#fff;border-color:var(--dp-blue);box-shadow:none}
body.ui18 .admin-side-links{background:var(--dp-navy);border-top:1px solid rgba(255,255,255,.12)}
body.ui18 .admin-topline h1{color:var(--dp-navy)}
body.ui18 .metric-card{background:#fff;border-radius:14px}
body.ui18 .data-table{background:#fff}
/* v1.18.1 kiosk action semantics: green Clock In, red Clock Out. */
body.ui18.kiosk17-body .kiosk17-main-action.btn-in{background:linear-gradient(135deg,#13a64a,#18bd5b)!important;color:#fff}
body.ui18.kiosk17-body .kiosk17-main-action.btn-out{background:linear-gradient(135deg,#ef1b23,#ff3038)!important;color:#fff}


/* ========================================================================== */
/* v1.19 — Driver UI Reference Match                                         */
/* ========================================================================== */
body.driver-v119{--v119-navy:#14213d;--v119-ink:#172238;--v119-blue:#087cff;--v119-red:#ed1c24;--v119-green:#18a957;--v119-soft:#f1f5f9;--v119-line:#dfe6ee;--v119-muted:#687482;background:#f4f6f9;color:var(--v119-ink);padding-bottom:92px}
body.driver-v119 .app-shell{max-width:470px;margin:0 auto;background:#fff;min-height:100vh;box-shadow:0 0 0 1px rgba(20,33,61,.04)}
body.driver-v119 .brand-bar{height:66px;min-height:66px;background:#fff!important;border-bottom:0!important;padding:9px 18px!important;box-shadow:none!important;display:flex;align-items:center}
body.driver-v119 .brand-bar img{max-height:48px!important;width:min(230px,67vw)!important;object-fit:contain;object-position:left center}
body.driver-v119 .brand-bar .red-block{display:none!important}
body.driver-v119 .content{padding:0 14px 112px!important;max-width:none}
body.driver-v119 #driverApp{padding-top:0}
body.driver-v119 .v119-icon{width:24px;height:24px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
body.driver-v119 .v119-header-line{display:flex;align-items:flex-start;justify-content:space-between;margin:0 0 12px;padding:6px 4px 0;background:transparent}
body.driver-v119 .v119-title-block h1{font-size:2rem;line-height:1.04;margin:0;color:var(--v119-navy);letter-spacing:-.035em;font-weight:950}
body.driver-v119 .driver-version-line{display:flex;align-items:center;gap:9px;margin-top:8px;color:#657183;font-weight:800;font-size:.85rem}
body.driver-v119 .connectivity-chip{display:inline-flex;align-items:center;gap:6px;border:0!important;background:transparent!important;padding:0!important;font-size:.83rem;font-weight:900}
body.driver-v119 .connectivity-chip:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.driver-v119 .connectivity-chip.online{color:#159947}.driver-v119 .connectivity-chip.offline{color:#c51e27}.driver-v119 .connectivity-chip.warn{color:#d98500}
body.driver-v119 .v119-menu-btn{width:46px;height:46px;border:0;background:#fff;color:var(--v119-navy);border-radius:12px;display:grid;place-items:center;cursor:pointer}.driver-v119 .v119-menu-btn .v119-icon{width:29px;height:29px;stroke-width:2.4}
body.driver-v119 .v119-account-wrap{position:relative}.driver-v119 .account-popover{right:0;top:51px;min-width:210px;border-radius:14px;border:1px solid var(--v119-line);box-shadow:0 12px 32px rgba(20,33,61,.16);overflow:hidden;background:#fff;z-index:40}.driver-v119 .v119-account-meta{padding:13px 15px;background:#f5f8fb;border-bottom:1px solid var(--v119-line)}.driver-v119 .v119-account-meta strong,.driver-v119 .v119-account-meta span{display:block}.driver-v119 .v119-account-meta span{font-size:.72rem;color:#6b7788;text-transform:uppercase;font-weight:850;margin-top:2px}

body.driver-v119 .v119-today-card{border:0!important;border-radius:14px!important;background:linear-gradient(135deg,#eff4f8,#f7f9fb)!important;padding:14px 16px!important;margin-bottom:14px!important;box-shadow:none!important}.driver-v119 .v119-summary-title{display:flex;align-items:center;gap:9px!important;font-size:1rem;font-weight:950;color:var(--v119-navy)}.driver-v119 .v119-summary-title:before{display:none!important}.driver-v119 .v119-summary-title .v119-icon{width:23px;height:23px}.driver-v119 .travel17-track-badge{margin-left:auto;background:#e8f7ee;color:#0c8240;border-radius:999px;padding:5px 8px;font-size:.58rem;letter-spacing:.02em}.driver-v119 .v119-summary-grid{grid-template-columns:repeat(3,1fr);margin-top:13px}.driver-v119 .v119-summary-grid>div{border-right:1px solid #dfe6ee;text-align:center}.driver-v119 .v119-summary-grid>div:last-child{border-right:0}.driver-v119 .v119-summary-grid strong{font-size:1.42rem;line-height:1;color:var(--v119-navy)}.driver-v119 .v119-summary-grid span{font-size:.72rem;color:#46566d;margin-top:5px}

body.driver-v119 .v119-start-card,body.driver-v119 .v119-active-card{border:0!important;box-shadow:none!important;background:transparent!important;margin:0!important}.driver-v119 .v119-start-panel,.driver-v119 .v119-active-panel{padding:0!important;display:grid;gap:12px}.driver-v119 .v119-step{padding:14px!important;border:1px solid #e2e8ef!important;background:#f8fafc!important;border-radius:15px!important;box-shadow:none!important}.driver-v119 .v119-step-title{display:flex;align-items:center;gap:10px;color:var(--v119-navy);font-size:1rem;font-weight:950;margin-bottom:11px}.driver-v119 .v119-step-title .v119-icon{width:25px;height:25px;stroke-width:2.2}.driver-v119 .travel17-step-no{display:none!important}
body.driver-v119 .v119-select-shell{position:relative;background:#fff;border:1px solid #d9e1ea;border-radius:12px;min-height:58px;display:flex;align-items:center}.driver-v119 .v119-select-shell .travel17-select{appearance:none;-webkit-appearance:none;border:0!important;background:transparent!important;box-shadow:none!important;min-height:58px;padding:8px 43px 8px 49px!important;margin:0!important;font-size:.98rem;font-weight:800;color:var(--v119-ink);width:100%}.driver-v119 .v119-select-leading{position:absolute;left:14px;width:25px;height:25px;color:var(--v119-navy);pointer-events:none}.driver-v119 .v119-select-chevron{position:absolute;right:14px;width:20px;height:20px;color:var(--v119-navy);pointer-events:none}.driver-v119 .v119-hint{font-size:.7rem;margin:7px 3px 0;color:#657184;font-weight:700;line-height:1.3}
body.driver-v119 .v119-reason-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.driver-v119 .v119-reason-btn{min-height:112px!important;border:1px solid #dce4ed!important;background:#fff!important;border-radius:13px!important;box-shadow:none!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:var(--v119-navy)!important;font-size:.93rem!important;font-weight:900!important}.driver-v119 .v119-reason-btn .v119-icon{width:34px;height:34px;stroke-width:2.2}.driver-v119 .v119-reason-btn.active{border:2px solid var(--v119-red)!important;background:#fff5f5!important;box-shadow:0 0 0 2px rgba(237,28,36,.06)!important}
body.driver-v119 .v119-primary-start,body.driver-v119 .v119-primary-end{border-radius:14px!important;min-height:84px!important;box-shadow:none!important;gap:16px!important}.driver-v119 .v119-primary-start{background:linear-gradient(135deg,#17a757,#159947)!important}.driver-v119 .v119-primary-end{background:linear-gradient(135deg,#f32424,#ed1c24)!important;margin-top:0!important}.driver-v119 .v119-primary-start .v119-icon,.driver-v119 .v119-primary-end .v119-icon{width:34px;height:34px;stroke-width:2.2}.driver-v119 .v119-primary-start strong,.driver-v119 .v119-primary-end strong{font-size:1.4rem!important;letter-spacing:.01em}.driver-v119 .v119-primary-start small,.driver-v119 .v119-primary-end small{font-size:.78rem!important}.driver-v119 .v119-start-help{font-size:.72rem;padding:0 9px;color:#6a7686}

body.driver-v119 .v119-active-title h2{font-size:2rem;margin:0 0 12px 4px;letter-spacing:-.035em;color:var(--v119-navy)}.driver-v119 .v119-tracking-banner{border-radius:13px!important;background:linear-gradient(135deg,#18a957,#20b65f)!important;padding:13px 16px!important;display:grid!important;grid-template-columns:auto 1fr auto;gap:12px!important;margin-bottom:15px}.driver-v119 .v119-tracking-banner>.v119-icon{width:30px;height:30px}.driver-v119 .v119-tracking-banner .v119-banner-car{width:38px;height:38px}.driver-v119 .v119-tracking-banner strong{font-size:1.08rem!important}.driver-v119 .v119-tracking-banner small{font-size:.75rem!important}
body.driver-v119 .v119-gauge-wrap{text-align:center;padding-top:2px}.driver-v119 .v119-distance-ring{width:188px!important;height:188px!important;margin:0 auto!important;background:conic-gradient(var(--v119-green) 0 66%,#e5ebf2 66% 100%)!important;position:relative}.driver-v119 .v119-distance-ring:after{inset:17px!important}.driver-v119 .v119-ring-car{position:absolute;z-index:2;inset:17px;display:grid;place-items:center;color:var(--v119-navy)}.driver-v119 .v119-ring-car .v119-icon{width:68px;height:68px;stroke-width:1.75}.driver-v119 .v119-distance-readout{margin-top:-3px}.driver-v119 .v119-distance-readout strong{font-size:2.9rem;letter-spacing:-.04em;color:var(--v119-navy)}.driver-v119 .v119-distance-readout>span{font-size:1.6rem;font-weight:950;color:var(--v119-navy);margin-left:4px}.driver-v119 .v119-distance-readout small{display:block;color:#566578;font-size:.9rem;margin-top:0}
body.driver-v119 .v119-live-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.driver-v119 .v119-live-stats>div{min-height:105px;background:#f3f6fa!important;border:0!important;border-radius:13px!important;display:grid;grid-template-columns:auto 1fr;align-content:center;column-gap:10px;text-align:center;padding:12px!important}.driver-v119 .v119-live-stats .v119-icon{grid-row:1/3;width:31px;height:31px;color:var(--v119-navy);align-self:center}.driver-v119 .v119-live-stats span{font-size:.72rem!important;text-transform:none!important;margin:0!important}.driver-v119 .v119-live-stats strong{font-size:1.15rem!important;margin-top:3px;color:var(--v119-navy)}
body.driver-v119 .v119-route-card{background:#f3f6fa;border-radius:14px;padding:16px 15px;position:relative}.driver-v119 .v119-route-line{display:grid;grid-template-columns:22px 1fr;gap:12px;position:relative;z-index:2}.driver-v119 .v119-route-line small{display:block;font-size:.72rem;color:#5f6e81;font-weight:800}.driver-v119 .v119-route-line strong{display:block;color:var(--v119-navy);font-size:.95rem;margin:2px 0}.driver-v119 .v119-route-line span:not(.v119-route-dot){display:block;color:#394a62;font-size:.79rem}.driver-v119 .v119-route-dot{width:14px;height:14px;border-radius:50%;border:3px solid var(--v119-navy);background:#fff;margin:3px 0 0 4px}.driver-v119 .v119-route-dot.start{background:var(--v119-navy)}.driver-v119 .v119-route-stem{height:36px;width:2px;background:var(--v119-navy);margin:-1px 0 -1px 10px}.driver-v119 .v119-trip-details{grid-template-columns:1fr!important;gap:9px!important}.driver-v119 .v119-trip-details>div{display:grid;grid-template-columns:32px 1fr;column-gap:10px;align-items:center;background:#f3f6fa!important;border:0!important;border-radius:13px!important;padding:13px!important}.driver-v119 .v119-trip-details .v119-icon{grid-row:1/3;width:25px;height:25px;color:#53637a}.driver-v119 .v119-trip-details span{font-size:.7rem!important;text-transform:none!important;margin:0!important}.driver-v119 .v119-trip-details strong{font-size:.94rem!important;margin-top:2px}.driver-v119 .v119-gps-panel{border-radius:12px;background:#f8fafc;border:1px dashed #cfd9e4;padding:10px 11px}.driver-v119 .v119-note-label{font-size:.8rem;font-weight:850;color:#445269}

body.driver-v119 .v119-history-card,body.driver-v119 .v119-endday-card{border:1px solid var(--v119-line)!important;border-radius:14px!important;box-shadow:none!important;margin-top:14px!important}.driver-v119 .v119-history-card .card-head,.driver-v119 .v119-endday-card .card-head{display:flex;gap:9px;align-items:center;background:#293039!important;border-radius:13px 13px 0 0}.driver-v119 .v119-history-card .card-head .v119-icon,.driver-v119 .v119-endday-card .card-head .v119-icon{width:21px;height:21px}.driver-v119 .travel17-endday-btn{min-height:58px!important;border-radius:12px!important}

body.driver-v119 .v119-complete-overlay{align-items:flex-start!important;overflow:auto;padding:0!important;background:#fff!important}.driver-v119 .v119-complete-modal{width:100%!important;max-width:470px!important;min-height:100vh;border-radius:0!important;box-shadow:none!important;padding:18px 14px 112px!important;text-align:left!important;background:#fff}.driver-v119 .v119-complete-success{background:linear-gradient(135deg,#e8faef,#f1fff5);border-radius:15px;padding:22px;text-align:center;color:var(--v119-navy)}.driver-v119 .v119-complete-success>.v119-icon{width:74px;height:74px;margin:0 auto 8px;color:var(--v119-green);stroke-width:2.5}.driver-v119 .v119-complete-success h2{margin:0;font-size:1.75rem;letter-spacing:-.03em}.driver-v119 .v119-complete-success p{margin:6px 0 0;color:#3d4d62}.driver-v119 .v119-complete-summary{display:grid!important;grid-template-columns:1fr!important;gap:0!important;background:#f3f6fa;border-radius:15px;padding:9px 15px;margin:16px 0!important}.driver-v119 .v119-complete-summary>div{display:grid!important;grid-template-columns:36px 1fr!important;column-gap:10px;background:transparent!important;border:0!important;border-bottom:1px solid #dfe6ee!important;border-radius:0!important;padding:11px 0!important;text-align:left!important}.driver-v119 .v119-complete-summary>div:last-child{border-bottom:0!important}.driver-v119 .v119-complete-summary .v119-icon{grid-row:1/3;width:25px;height:25px;color:#42546c;align-self:center}.driver-v119 .v119-complete-summary span{font-size:.7rem!important;text-transform:none!important;color:#687789!important}.driver-v119 .v119-complete-summary strong{font-size:.95rem!important;color:var(--v119-navy)!important;margin-top:2px!important}.driver-v119 .v119-next-btn{background:linear-gradient(135deg,#087cff,#056bdc)!important}.driver-v119 .v119-complete-action{width:100%;min-height:70px;margin-top:10px;border:0!important;border-radius:13px!important;background:#edf2f7!important;color:var(--v119-navy)!important;display:flex;align-items:center;gap:14px;justify-content:flex-start;padding:12px 16px!important}.driver-v119 .v119-complete-action .v119-icon{width:31px;height:31px}.driver-v119 .v119-complete-action span{text-align:left}.driver-v119 .v119-complete-action strong{display:block;font-size:1rem}.driver-v119 .v119-complete-action small{display:block;font-size:.72rem;color:#607087;margin-top:2px}

body.driver-v119 .v119-bottom-nav{position:fixed!important;left:50%;transform:translateX(-50%);bottom:0;z-index:80;width:min(470px,100%);height:82px;background:#fff;border-top:1px solid #dde5ee;box-shadow:0 -4px 16px rgba(20,33,61,.08);display:grid!important;grid-template-columns:repeat(5,1fr)!important;gap:0!important;padding:5px 5px max(5px,env(safe-area-inset-bottom))!important;margin:0!important;border-radius:0!important}.driver-v119 .v119-bottom-nav .driver-tab{border:0!important;background:transparent!important;border-radius:12px!important;padding:4px 2px!important;min-width:0!important;height:64px!important;color:#6e7988!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:3px!important;font-size:.65rem!important;font-weight:850!important;line-height:1.05}.driver-v119 .v119-bottom-nav .driver-tab .v119-icon{width:25px;height:25px}.driver-v119 .v119-bottom-nav .driver-tab.active{color:var(--v119-blue)!important;background:#eef6ff!important}.driver-v119 .v119-bottom-nav .driver-tab span{display:block;text-align:center}

body.driver-v119 #driverStatus{margin:12px 0 0;border-radius:12px;font-size:.82rem}
body.driver-v119 .driver-tab-panel:not(#tab-travel)>.card{border-radius:15px!important;border:1px solid var(--v119-line)!important;box-shadow:none!important}.driver-v119 .driver-tab-panel:not(#tab-travel) .card-head{background:#293039!important}.driver-v119 .driver-tab-panel:not(#tab-travel) .btn-in{background:var(--v119-green)!important}.driver-v119 .driver-tab-panel:not(#tab-travel) .field{border-radius:11px;border-color:#d8e0ea}

@media (max-width:380px){body.driver-v119 .content{padding-left:10px!important;padding-right:10px!important}.driver-v119 .v119-title-block h1{font-size:1.8rem}.driver-v119 .v119-reason-btn{min-height:103px!important;font-size:.86rem!important}.driver-v119 .v119-distance-ring{width:170px!important;height:170px!important}.driver-v119 .v119-ring-car .v119-icon{width:58px;height:58px}.driver-v119 .v119-distance-readout strong{font-size:2.5rem}.driver-v119 .v119-bottom-nav .driver-tab{font-size:.59rem!important}}
@media (min-width:700px){body.driver-v119 .app-shell{max-width:540px}.driver-v119 .v119-bottom-nav{width:min(540px,100%)}.driver-v119 .v119-reason-grid{grid-template-columns:repeat(4,1fr)}.driver-v119 .v119-reason-btn{min-height:105px!important}.driver-v119 .v119-complete-modal{max-width:540px!important}}

/* =====================================================================
   v1.20 — Premium Dark Unified UI
   Deep navy / electric blue / red / green visual system across Driver,
   Reception Kiosk and Admin. Presentation-only; existing workflows remain.
   ===================================================================== */
:root{
  --p20-bg:#061522;
  --p20-bg-2:#081c2d;
  --p20-panel:#0b2235;
  --p20-panel-2:#102b42;
  --p20-panel-3:#13354f;
  --p20-line:rgba(137,190,230,.18);
  --p20-line-strong:rgba(71,164,235,.36);
  --p20-text:#f4f8fb;
  --p20-muted:#9db3c5;
  --p20-blue:#168cff;
  --p20-cyan:#39b9ff;
  --p20-red:#f3212d;
  --p20-green:#16c66a;
  --p20-orange:#ff8a22;
  --p20-shadow:0 18px 55px rgba(0,0,0,.30);
  --p20-glow:0 0 0 1px rgba(55,169,255,.15),0 12px 34px rgba(0,73,135,.24);
}

body.premium-dark{
  background:
    radial-gradient(circle at 14% 12%,rgba(21,119,255,.16),transparent 31%),
    radial-gradient(circle at 86% 20%,rgba(243,33,45,.09),transparent 24%),
    radial-gradient(circle at 70% 88%,rgba(22,198,106,.06),transparent 26%),
    linear-gradient(150deg,#04111d 0%,#071827 42%,#092237 100%) fixed!important;
  color:var(--p20-text)!important;
}
body.premium-dark:before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.5;
  background:
    linear-gradient(118deg,transparent 0 52%,rgba(83,171,235,.035) 52.2% 52.5%,transparent 52.7%),
    linear-gradient(66deg,transparent 0 68%,rgba(83,171,235,.025) 68.2% 68.5%,transparent 68.7%),
    repeating-linear-gradient(90deg,transparent 0 119px,rgba(255,255,255,.012) 120px);
}
body.premium-dark .muted{color:var(--p20-muted)!important}
body.premium-dark .eyebrow{color:#63bcff!important;letter-spacing:.14em}
body.premium-dark h1,body.premium-dark h2,body.premium-dark h3{color:var(--p20-text)}

/* Shared dark glass chrome */
body.premium-dark .brand-bar{
  background:linear-gradient(180deg,#081b2c 0%,#061522 100%)!important;
  border-bottom:1px solid rgba(54,164,245,.25)!important;
  box-shadow:0 8px 28px rgba(0,0,0,.28)!important;
  position:relative;overflow:hidden;
}
body.premium-dark .brand-bar:after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:linear-gradient(90deg,var(--p20-red),rgba(243,33,45,.2) 26%,var(--p20-blue) 70%,transparent);
}
body.premium-dark .brand-bar img{
  background:#fff;border-radius:10px;padding:5px 8px;box-shadow:0 5px 18px rgba(0,0,0,.18);filter:none!important;
}
body.premium-dark .red-block{background:linear-gradient(135deg,var(--p20-red),#a60c18)!important;opacity:.95}
body.premium-dark .card{
  background:linear-gradient(180deg,rgba(15,43,65,.96),rgba(8,30,47,.98))!important;
  border:1px solid var(--p20-line)!important;border-radius:17px!important;box-shadow:var(--p20-glow)!important;color:var(--p20-text)!important;
}
body.premium-dark .card-head{
  background:linear-gradient(180deg,#112f48,#0a2236)!important;color:#f7fbff!important;
  border-bottom:1px solid var(--p20-line)!important;text-shadow:0 1px 0 #000;
}
body.premium-dark .panel{background:transparent!important;color:var(--p20-text)!important}
body.premium-dark label{color:#dceaf4}
body.premium-dark .field,body.premium-dark select.field,body.premium-dark textarea.field{
  background:#081b2b!important;color:#eef7fd!important;border:1px solid rgba(129,184,224,.26)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025)!important;
}
body.premium-dark .field::placeholder{color:#718fa5}
body.premium-dark .field:focus{border-color:var(--p20-blue)!important;box-shadow:0 0 0 3px rgba(22,140,255,.15)!important}
body.premium-dark select.field option{background:#0a2032;color:#eef7fd}
body.premium-dark .password-toggle{background:#15344b!important;color:#d9ecf8!important;border:1px solid rgba(106,176,225,.18)!important}
body.premium-dark .btn{border-radius:12px!important;transition:.15s ease;box-shadow:0 8px 18px rgba(0,0,0,.16)!important}
body.premium-dark .btn:hover{transform:translateY(-1px)}
body.premium-dark .btn-in{background:linear-gradient(135deg,var(--p20-red),#ca111e)!important;color:#fff!important}
body.premium-dark .btn-secondary{background:linear-gradient(180deg,#163a55,#102b42)!important;color:#eaf6fd!important;border:1px solid var(--p20-line-strong)!important}
body.premium-dark .status{background:#0a2032!important;color:#bed1df!important;border:1px solid var(--p20-line)!important}
body.premium-dark .status.ok{background:rgba(22,198,106,.11)!important;color:#65eca5!important;border-color:rgba(22,198,106,.35)!important}
body.premium-dark .status.err{background:rgba(243,33,45,.12)!important;color:#ff8a91!important;border-color:rgba(243,33,45,.35)!important}
body.premium-dark .status.warn{background:rgba(255,138,34,.11)!important;color:#ffc27b!important;border-color:rgba(255,138,34,.32)!important}
body.premium-dark .text-action-btn{color:#55b7ff!important}
body.premium-dark .modal{background:rgba(0,8,15,.78)!important;backdrop-filter:blur(8px)}
body.premium-dark .modal-card{background:linear-gradient(180deg,#102b42,#081b2b)!important;border:1px solid var(--p20-line-strong)!important;color:var(--p20-text)!important;box-shadow:var(--p20-shadow)!important}
body.premium-dark .modal-close{background:#15354d!important;border:1px solid var(--p20-line)!important}
body.premium-dark .ui-version-badge{background:#102c43!important;color:#74c5ff!important;border:1px solid rgba(64,174,255,.35)!important}

/* Premium login experiences — Driver and Admin */
body.premium-dark .login-wrap{
  max-width:540px!important;margin:clamp(26px,7vh,78px) auto!important;position:relative;overflow:hidden;
  border-color:rgba(61,169,245,.30)!important;box-shadow:0 30px 80px rgba(0,0,0,.36),0 0 55px rgba(20,128,208,.09)!important;
}
body.premium-dark .login-wrap:before{
  content:"";position:absolute;inset:0 0 auto;height:135px;pointer-events:none;
  background:radial-gradient(circle at 75% 0,rgba(33,148,238,.22),transparent 52%),linear-gradient(135deg,rgba(255,255,255,.025),transparent 60%);
}
body.premium-dark .login-wrap .card-head{
  min-height:58px;padding:16px 22px!important;background:linear-gradient(90deg,#0b2b46,#0c2236)!important;color:#fff!important;
}
body.premium-dark .login-wrap .panel{padding:30px 28px 28px!important;position:relative}
body.premium-dark .login-wrap h1{font-size:clamp(2rem,5vw,2.65rem);letter-spacing:-.045em;margin:5px 0 7px}
body.premium-dark .login-wrap .btn-in{min-height:58px;background:linear-gradient(135deg,var(--p20-red),#dd111f)!important;box-shadow:0 12px 28px rgba(243,33,45,.22)!important}
body.premium-dark .login-wrap .status{font-size:.82rem}

/* DRIVER — premium dark mobile app */
body.driver-v119.driver-v120{background:var(--p20-bg)!important;color:var(--p20-text)!important}
body.driver-v119.driver-v120 .app-shell{background:linear-gradient(180deg,#071827 0%,#061522 100%)!important;box-shadow:0 0 0 1px rgba(80,178,244,.12),0 0 55px rgba(0,0,0,.32)!important}
body.driver-v119.driver-v120 .brand-bar{height:70px!important;min-height:70px!important;padding:10px 16px!important}
body.driver-v119.driver-v120 .brand-bar img{max-height:50px!important;width:min(238px,68vw)!important}
body.driver-v119.driver-v120 .content{background:transparent!important}
body.driver-v119.driver-v120 .v119-title-block h1{color:#f6fbff!important;text-shadow:0 2px 18px rgba(23,140,255,.12)}
body.driver-v119.driver-v120 .driver-version-line{color:#8fb0c7!important}
body.driver-v119.driver-v120 .v119-menu-btn{background:#0d2940!important;color:#e6f5ff!important;border:1px solid var(--p20-line)!important;box-shadow:0 7px 18px rgba(0,0,0,.18)}
body.driver-v119.driver-v120 .account-popover{background:#0b2235!important;border-color:var(--p20-line)!important;color:#eaf6fd!important}
body.driver-v119.driver-v120 .account-popover button{color:#d9eaf5!important;border-color:var(--p20-line)!important;background:#0d2940!important}
body.driver-v119.driver-v120 .v119-today-card{
  background:linear-gradient(145deg,#102d45,#0a2134)!important;border:1px solid var(--p20-line)!important;box-shadow:0 10px 25px rgba(0,0,0,.22)!important;
}
body.driver-v119.driver-v120 .v119-summary-title{color:#eaf7ff!important}.driver-v120 .v119-summary-title>.v119-icon{color:#35a8ff!important}
body.driver-v119.driver-v120 .v119-summary-grid>div{border-color:rgba(125,187,229,.14)!important}
body.driver-v119.driver-v120 .v119-summary-grid strong{color:#fff!important}.driver-v120 .v119-summary-grid span{color:#91aabd!important}
body.driver-v119.driver-v120 .v119-start-card{background:transparent!important;border:0!important;box-shadow:none!important}
body.driver-v119.driver-v120 .v119-start-panel{padding:0!important}
body.driver-v119.driver-v120 .v119-step{background:linear-gradient(180deg,#0c263b,#091e30)!important;border:1px solid var(--p20-line)!important;box-shadow:0 9px 22px rgba(0,0,0,.17)!important}
body.driver-v119.driver-v120 .v119-step-title{color:#eef8ff!important}.driver-v120 .v119-step-title .v119-icon{color:#55b8ff!important}
body.driver-v119.driver-v120 .v119-select-shell{background:#071a2a!important;border-color:rgba(111,183,233,.24)!important}
body.driver-v119.driver-v120 .v119-select-shell select{color:#fff!important;background:transparent!important}
body.driver-v119.driver-v120 .v119-select-leading{color:#78c8ff!important}.driver-v120 .v119-select-chevron{color:#9cb8cc!important}
body.driver-v119.driver-v120 .v119-hint{color:#7fa0b7!important}
body.driver-v119.driver-v120 .v119-reason-btn{background:#0a2032!important;color:#e6f4fd!important;border:1px solid rgba(120,188,232,.18)!important;box-shadow:none!important}
body.driver-v119.driver-v120 .v119-reason-btn .v119-icon{color:#65bdff!important}
body.driver-v119.driver-v120 .v119-reason-btn.active{background:linear-gradient(145deg,#113c5c,#0d2f49)!important;border-color:#258dff!important;box-shadow:0 0 0 2px rgba(37,141,255,.12),0 0 22px rgba(37,141,255,.10)!important}
body.driver-v119.driver-v120 .v119-primary-start{background:linear-gradient(135deg,#16c66a,#0ca955)!important;box-shadow:0 12px 30px rgba(22,198,106,.23)!important}
body.driver-v119.driver-v120 .v119-start-help{color:#829fb4!important}
body.driver-v119.driver-v120 .v119-active-title h2{color:#f6fbff!important}
body.driver-v119.driver-v120 .v119-tracking-banner{background:linear-gradient(135deg,#14bf65,#0a9f51)!important;box-shadow:0 12px 26px rgba(22,198,106,.18)}
body.driver-v119.driver-v120 .v119-distance-ring{background:conic-gradient(var(--p20-green) 0 66%,#153147 66% 100%)!important;box-shadow:0 0 42px rgba(22,198,106,.08)}
body.driver-v119.driver-v120 .v119-distance-ring:after{background:#071b2b!important;border:1px solid rgba(72,177,238,.13)}
body.driver-v119.driver-v120 .v119-ring-car,body.driver-v119.driver-v120 .v119-distance-readout strong,body.driver-v119.driver-v120 .v119-distance-readout>span{color:#edf8ff!important}
body.driver-v119.driver-v120 .v119-distance-readout small{color:#8da8bc!important}
body.driver-v119.driver-v120 .v119-live-stats>div,body.driver-v119.driver-v120 .v119-route-card,body.driver-v119.driver-v120 .v119-trip-details>div{background:#0b2438!important;border:1px solid rgba(121,186,228,.13)!important;color:#eaf7ff!important}
body.driver-v119.driver-v120 .v119-live-stats .v119-icon,body.driver-v119.driver-v120 .v119-trip-details .v119-icon{color:#64bdff!important}
body.driver-v119.driver-v120 .v119-live-stats span,body.driver-v119.driver-v120 .v119-route-line small,body.driver-v119.driver-v120 .v119-trip-details span{color:#86a4b9!important}
body.driver-v119.driver-v120 .v119-live-stats strong,body.driver-v119.driver-v120 .v119-route-line strong,body.driver-v119.driver-v120 .v119-trip-details strong{color:#f0f9ff!important}
body.driver-v119.driver-v120 .v119-route-line span:not(.v119-route-dot){color:#a8c0d0!important}
body.driver-v119.driver-v120 .v119-route-dot{border-color:#58b6ff!important;background:#071827!important}.driver-v120 .v119-route-dot.start{background:#168cff!important}
body.driver-v119.driver-v120 .v119-route-stem{background:linear-gradient(#168cff,#6cc6ff)!important}
body.driver-v119.driver-v120 .v119-gps-panel{background:#081e30!important;border-color:rgba(73,166,230,.28)!important;color:#c8dce9!important}
body.driver-v119.driver-v120 .v119-history-card,body.driver-v119.driver-v120 .v119-endday-card{background:#0a2133!important;border-color:var(--p20-line)!important}
body.driver-v119.driver-v120 .v119-history-card .card-head,body.driver-v119.driver-v120 .v119-endday-card .card-head{background:#0d2a40!important}
body.driver-v119.driver-v120 .travel17-endday-hint{background:#0a2032!important;border-color:var(--p20-line)!important;color:#93adbf!important}
body.driver-v119.driver-v120 .travel17-endday-btn{background:linear-gradient(135deg,#17364e,#102a40)!important;border:1px solid var(--p20-line)!important}
body.driver-v119.driver-v120 .v119-complete-overlay{background:#061522!important}
body.driver-v119.driver-v120 .v119-complete-modal{background:linear-gradient(180deg,#071827,#061522)!important;color:#fff!important}
body.driver-v119.driver-v120 .v119-complete-success{background:linear-gradient(145deg,rgba(22,198,106,.18),rgba(22,198,106,.06))!important;border:1px solid rgba(22,198,106,.27);color:#fff!important}
body.driver-v119.driver-v120 .v119-complete-success h2{color:#f6fffa!important}.driver-v120 .v119-complete-success p{color:#9fc7b1!important}
body.driver-v119.driver-v120 .v119-complete-summary{background:#0a2235!important;border:1px solid var(--p20-line)}
body.driver-v119.driver-v120 .v119-complete-summary>div{border-color:rgba(120,184,226,.14)!important}.driver-v120 .v119-complete-summary span{color:#89a6ba!important}.driver-v120 .v119-complete-summary strong{color:#f2f9fd!important}.driver-v120 .v119-complete-summary .v119-icon{color:#61baff!important}
body.driver-v119.driver-v120 .v119-complete-action{background:#0d2940!important;color:#edf7fd!important;border:1px solid var(--p20-line)!important}.driver-v120 .v119-complete-action small{color:#85a5bb!important}
body.driver-v119.driver-v120 .v119-next-btn{background:linear-gradient(135deg,#168cff,#086fd0)!important;color:#fff!important}
body.driver-v119.driver-v120 .v119-bottom-nav{background:rgba(6,21,34,.97)!important;border-top:1px solid rgba(93,173,229,.23)!important;box-shadow:0 -10px 30px rgba(0,0,0,.26)!important;backdrop-filter:blur(12px)}
body.driver-v119.driver-v120 .v119-bottom-nav .driver-tab{color:#7591a6!important}.driver-v120 .v119-bottom-nav .driver-tab.active{color:#5dbbff!important;background:#0e2c44!important}
body.driver-v119.driver-v120 .driver-tab-panel:not(#tab-travel)>.card{background:linear-gradient(180deg,#0b2437,#081d2e)!important;border-color:var(--p20-line)!important}.driver-v120 .driver-tab-panel:not(#tab-travel) .card-head{background:#0d2940!important}.driver-v120 .driver-tab-panel:not(#tab-travel) .btn-in{background:linear-gradient(135deg,#16c66a,#0da753)!important}

/* ADMIN — premium operations console */
body.admin-v120 .admin-content{width:min(1650px,98vw)!important}
body.admin-v120 .admin-layout{grid-template-columns:270px minmax(0,1fr)!important;gap:18px!important}
body.admin-v120 .admin-sidebar{background:linear-gradient(180deg,#0a2337,#071a2a)!important;border-color:var(--p20-line)!important;box-shadow:var(--p20-shadow)!important}
body.admin-v120 .admin-sidebar .card-head{background:#0c2a41!important;color:#fff!important}
body.admin-v120 .admin-nav,body.admin-v120 .admin-side-links{background:transparent!important}
body.admin-v120 .admin-nav-btn{background:transparent!important;color:#abc2d2!important;border:1px solid transparent!important;border-radius:10px!important}
body.admin-v120 .admin-nav-btn:hover{background:#0d2c44!important;color:#f0f8fd!important;border-color:var(--p20-line)!important}
body.admin-v120 .admin-nav-btn.active{background:linear-gradient(90deg,#173f5f,#0f304a)!important;color:#fff!important;border-color:rgba(60,166,240,.38)!important;box-shadow:inset 3px 0 0 var(--p20-red),0 8px 18px rgba(0,0,0,.15)!important}
body.admin-v120 .danger-side-btn{color:#ff8b92!important}
body.admin-v120 .admin-topline{padding:3px 4px 2px}.admin-v120 .admin-topline h2{font-size:2rem;color:#f6fbff!important}
body.admin-v120 .user-chip{background:#0b263b!important;border-color:var(--p20-line)!important;color:#f3faff!important}.admin-v120 .user-chip span{color:#86a5ba!important}
body.admin-v120 .metric-card{background:linear-gradient(155deg,#0d2a40,#091f31)!important;border-color:var(--p20-line)!important;box-shadow:0 10px 24px rgba(0,0,0,.16)!important}
body.admin-v120 .metric-card .metric-number{color:#fff!important}.admin-v120 .metric-card .metric-label{color:#91aabd!important}
body.admin-v120 .metric-card>.ui-icon-wrap{background:#0c3555!important;color:#56b6ff!important}.admin-v120 .metric-card.positive>.ui-icon-wrap{background:rgba(22,198,106,.13)!important;color:#4be18d!important}.admin-v120 .metric-card.alert>.ui-icon-wrap{background:rgba(243,33,45,.13)!important;color:#ff7079!important}
body.admin-v120 .toolbar{background:linear-gradient(180deg,#0b2438,#081d2f)!important}
body.admin-v120 .data-table{color:#d9eaf5!important}
body.admin-v120 .data-table th{background:#0d2a40!important;color:#8fb0c7!important;border-bottom:1px solid var(--p20-line)!important}
body.admin-v120 .data-table td{border-top:1px solid rgba(114,180,223,.12)!important;background:rgba(7,28,44,.56)!important}
body.admin-v120 .data-table tr:hover td{background:#0e2b42!important}
body.admin-v120 .table-btn{background:#0d2a41!important;color:#dcebf5!important;border-color:var(--p20-line)!important}.admin-v120 .table-btn.primary{background:linear-gradient(135deg,var(--p20-red),#c8111d)!important;color:#fff!important}
body.admin-v120 .mini-search{background:#071b2b!important;color:#eaf7ff!important;border-color:var(--p20-line)!important}
body.admin-v120 .check-line{color:#cadde9!important}
body.admin-v120 .status-badge{background:#14334a!important;color:#a8c2d4!important}.admin-v120 .status-badge.good{background:rgba(22,198,106,.13)!important;color:#66eba6!important}.admin-v120 .status-badge.bad{background:rgba(243,33,45,.14)!important;color:#ff858c!important}.admin-v120 .status-badge.warn{background:rgba(255,138,34,.13)!important;color:#ffc17a!important}.admin-v120 .status-badge.info{background:rgba(22,140,255,.14)!important;color:#75c4ff!important}
body.admin-v120 .history-toolbar,body.admin-v120 .compact-panel{background:transparent!important}

/* RECEPTION KIOSK — premium dark, responsive portrait + landscape */
body.kiosk-v120 .kiosk17-brand{background:linear-gradient(180deg,#091c2c,#061522)!important}
body.kiosk-v120 .kiosk17-header-right{color:#ddecf6!important}
body.kiosk-v120 .kiosk17-version{background:#102d45!important;color:#74c7ff!important;border:1px solid rgba(66,173,246,.28)!important}
body.kiosk-v120 .kiosk17-connection{background:#0d293e!important;border-color:var(--p20-line)!important}.kiosk-v120 .kiosk17-connection.online,.kiosk-v120 .kiosk17-connection.good{color:#58e89b!important;background:rgba(22,198,106,.10)!important;border-color:rgba(22,198,106,.26)!important}
body.kiosk-v120 .kiosk17-header-btn{background:#0f3049!important;color:#e6f5fe!important;border:1px solid var(--p20-line)!important}
body.kiosk-v120 .kiosk17-clock-card,body.kiosk-v120 .kiosk17-camera-card-wrap,body.kiosk-v120 .kiosk17-whos-in-card{background:linear-gradient(180deg,#0c263b,#081d2e)!important}
body.kiosk-v120 .kiosk17-card-head{background:#0d2c44!important;color:#fff!important}
body.kiosk-v120 .kiosk17-topline h1{color:#f4faff!important}.kiosk-v120 .clock{color:#fff!important;text-shadow:0 0 28px rgba(39,151,235,.15)}.kiosk-v120 .date-line{color:#87a5b9!important}
body.kiosk-v120 .kiosk17-metrics>div{background:#0a2235!important;border:1px solid rgba(111,181,229,.14)!important}.kiosk-v120 .kiosk17-metrics strong{color:#fff!important}.kiosk-v120 .kiosk17-metrics span{color:#86a3b7!important}
body.kiosk-v120 .kiosk17-section-title{color:#61bcff!important}
body.kiosk-v120 .kiosk17-staff-tiles button,body.kiosk-v120 .kiosk17-staff-tile{background:#0a2133!important;border-color:rgba(117,184,229,.17)!important;color:#e6f3fb!important}
body.kiosk-v120 .kiosk17-staff-tiles button:hover,body.kiosk-v120 .kiosk17-staff-tile:hover{background:#0f2e46!important;border-color:#218cef!important}
body.kiosk-v120 .kiosk17-staff-tiles button.selected,body.kiosk-v120 .kiosk17-staff-tile.selected{background:linear-gradient(145deg,#123d5c,#0c2e47)!important;border-color:#2495f5!important;box-shadow:0 0 0 2px rgba(36,149,245,.12)!important}
body.kiosk-v120 .kiosk17-selected{background:#0b263a!important;border-color:var(--p20-line)!important}.kiosk-v120 .kiosk17-avatar{background:linear-gradient(135deg,#168cff,#0b6fcf)!important;color:#fff!important}.kiosk-v120 .kiosk17-selected-copy strong{color:#fff!important}.kiosk-v120 .kiosk17-selected-copy span{color:#8ca9bd!important}
body.kiosk-v120 .kiosk17-clear-btn{background:#102f47!important;color:#bfe2fa!important;border-color:var(--p20-line)!important}
body.kiosk-v120 .kiosk17-pin-keypad{background:#081e2f!important;border:1px solid var(--p20-line)!important;box-shadow:0 20px 50px rgba(0,0,0,.35)!important}.kiosk-v120 .pin-keypad-title{color:#85caff!important}.kiosk-v120 .pin-keypad-display{background:#061522!important;border-color:var(--p20-line)!important;color:#fff!important}.kiosk-v120 .pin-key{background:#0d2b42!important;color:#fff!important;border-color:rgba(111,181,229,.18)!important}.kiosk-v120 .pin-key:active{background:#17476a!important}.kiosk-v120 .pin-key-submit{background:linear-gradient(135deg,#16c66a,#0ba653)!important}.kiosk-v120 .pin-key-back{color:#ff8d94!important}
body.kiosk-v120 .kiosk17-camera-card{background:#04111c!important;border:1px solid rgba(82,181,246,.2)!important}.kiosk-v120 .camera-frame{border-color:#34b8ff!important;box-shadow:0 0 28px rgba(52,184,255,.12) inset}.kiosk-v120 .camera-badge{background:rgba(6,21,34,.86)!important;border:1px solid rgba(85,179,243,.22)!important}
body.kiosk-v120 .kiosk17-who-list>*{background:#0a2235!important;border-color:rgba(114,181,225,.14)!important;color:#e6f3fb!important}
body.kiosk-v120 .kiosk17-success-view{background:linear-gradient(145deg,#0d2b40,#071d2d)!important}.kiosk-v120 .kiosk17-success .tick{box-shadow:0 0 40px rgba(22,198,106,.18)}.kiosk-v120 .kiosk17-success h2{color:#63eca5!important}.kiosk-v120 .kiosk17-success-time{color:#fff!important}.kiosk-v120 .kiosk17-auto-return{color:#8ba9bd!important}
body.kiosk-v120 .kiosk17-modal-card{background:linear-gradient(180deg,#0d2a40,#071b2b)!important;border-color:var(--p20-line)!important}.kiosk-v120 .kiosk17-roll-list>*{border-color:rgba(116,181,224,.13)!important}

/* Tablet landscape gets the polished two-column command-centre view. */
@media (orientation:landscape) and (min-width:700px){
  body.kiosk-v120 .kiosk17-grid{gap:14px!important;grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr)!important}
  body.kiosk-v120 .kiosk17-right-column{gap:14px!important}
  body.kiosk-v120 .kiosk17-camera-card-wrap{min-height:0}
}
/* Portrait remains fully supported and readable. */
@media (orientation:portrait){
  body.kiosk-v120 .kiosk17-grid{grid-template-columns:1fr!important}
  body.kiosk-v120 .kiosk17-right-column{display:grid;grid-template-columns:1fr;gap:12px}
}

/* Small screen polish */
@media(max-width:680px){
  body.premium-dark .login-wrap{margin:18px auto!important;border-radius:15px!important}
  body.premium-dark .login-wrap .panel{padding:24px 18px!important}
  body.driver-v119.driver-v120 .brand-bar img{width:min(220px,66vw)!important}
}

/* =====================================================================
   v1.20.4 — Stability, table sorting and Driver light-field contrast
   ===================================================================== */
body.admin-v120 table.data-table thead th.sortable-th{
  cursor:pointer;user-select:none;position:relative;padding-right:28px!important;
  transition:background .15s ease,color .15s ease;
}
body.admin-v120 table.data-table thead th.sortable-th:hover,
body.admin-v120 table.data-table thead th.sortable-th:focus-visible{
  background:rgba(22,140,255,.12)!important;color:#dff3ff!important;outline:none;
}
body.admin-v120 table.data-table thead th.sortable-th::after{
  content:"↕";position:absolute;right:9px;top:50%;transform:translateY(-50%);
  color:#668aa4;font-size:.8rem;font-weight:900;
}
body.admin-v120 table.data-table thead th.sortable-th[aria-sort="ascending"]::after{content:"▲";color:#5dbbff}
body.admin-v120 table.data-table thead th.sortable-th[aria-sort="descending"]::after{content:"▼";color:#5dbbff}
body.admin-v120 table.data-table thead th.sort-active{color:#74c7ff!important}

/* Driver: every genuinely light/white form box uses dark readable text. */
body.driver-v119.driver-v120 .field,
body.driver-v119.driver-v120 select.field,
body.driver-v119.driver-v120 textarea.field{
  background:#ffffff!important;
  color:#0a1722!important;
  -webkit-text-fill-color:#0a1722!important;
  border-color:#cbd7e2!important;
  color-scheme:light;
}
body.driver-v119.driver-v120 .field::placeholder,
body.driver-v119.driver-v120 textarea.field::placeholder{
  color:#6c7782!important;-webkit-text-fill-color:#6c7782!important;
}
body.driver-v119.driver-v120 select.field option{background:#fff!important;color:#0a1722!important}
body.driver-v119.driver-v120 .v119-select-shell{
  background:#fff!important;border-color:#cbd7e2!important;
}
body.driver-v119.driver-v120 .v119-select-leading,
body.driver-v119.driver-v120 .v119-select-chevron{color:#163149!important}
body.driver-v119.driver-v120 .password-toggle{
  background:#e8eef3!important;color:#10283a!important;border-color:#c5d2dd!important;
}


/* =============================================================
   v1.20.4 — Admin form action spacing consistency
   Keep primary action buttons visually separated from the field above,
   matching the Staff editor SAVE STAFF spacing.
   ============================================================= */
body.admin-v120 .form-grid > .form-actions{margin-top:16px!important;}

/* =====================================================================
   v1.20.4 — Driver white/light block contrast
   Every light/white content block in the Driver PWA uses dark, bold text.
   ===================================================================== */
body.driver-v119.driver-v120 .field,
body.driver-v119.driver-v120 select.field,
body.driver-v119.driver-v120 textarea.field,
body.driver-v119.driver-v120 .v119-select-shell select{
  color:#07131d!important;
  -webkit-text-fill-color:#07131d!important;
  font-weight:800!important;
}
body.driver-v119.driver-v120 .field::placeholder,
body.driver-v119.driver-v120 textarea.field::placeholder{
  color:#4c5964!important;
  -webkit-text-fill-color:#4c5964!important;
  font-weight:750!important;
  opacity:1!important;
}
body.driver-v119.driver-v120 select.field option,
body.driver-v119.driver-v120 .v119-select-shell select option{
  background:#fff!important;
  color:#07131d!important;
  -webkit-text-fill-color:#07131d!important;
  font-weight:800!important;
}

/* Vehicle Check white checklist tiles. */
body.driver-v119.driver-v120 .check-row{
  background:#fff!important;
  color:#07131d!important;
  -webkit-text-fill-color:#07131d!important;
  font-weight:850!important;
  border-color:#cbd7e2!important;
}
body.driver-v119.driver-v120 .check-row *:not(input){
  color:#07131d!important;
  -webkit-text-fill-color:#07131d!important;
  font-weight:850!important;
}

/* Today's Trips, Daily Report trips and recent fuel rows. */
body.driver-v119.driver-v120 .trip-history-row,
body.driver-v119.driver-v120 .trip-history-row.compact{
  background:#fff!important;
  color:#07131d!important;
  border-color:#cbd7e2!important;
}
body.driver-v119.driver-v120 .trip-history-row *,
body.driver-v119.driver-v120 .trip-history-row.compact *{
  color:#07131d!important;
  -webkit-text-fill-color:#07131d!important;
  font-weight:800!important;
}
body.driver-v119.driver-v120 .trip-index{
  background:#edf2f6!important;
  color:#07131d!important;
  font-weight:900!important;
}

/* Daily Report white summary blocks. */
body.driver-v119.driver-v120 .driver-day-summary>div,
body.driver-v119.driver-v120 .report-summary>div,
body.driver-v119.driver-v120 .current-trip-grid>div{
  background:#fff!important;
  color:#07131d!important;
  border-color:#cbd7e2!important;
}
body.driver-v119.driver-v120 .driver-day-summary>div *,
body.driver-v119.driver-v120 .report-summary>div *,
body.driver-v119.driver-v120 .current-trip-grid>div *{
  color:#07131d!important;
  -webkit-text-fill-color:#07131d!important;
  font-weight:800!important;
}
body.driver-v119.driver-v120 .summary-label{
  color:#263541!important;
  -webkit-text-fill-color:#263541!important;
  font-weight:900!important;
}

/* Recent incident cards and any light accident-detail/check containers. */
body.driver-v119.driver-v120 .incident-mobile-card,
body.driver-v119.driver-v120 .accident-fields,
body.driver-v119.driver-v120 .incident-photo-name{
  background:#fff!important;
  color:#07131d!important;
  border-color:#cbd7e2!important;
}
body.driver-v119.driver-v120 .incident-mobile-card *,
body.driver-v119.driver-v120 .accident-fields *:not(input):not(select):not(textarea),
body.driver-v119.driver-v120 .incident-photo-name *{
  color:#07131d!important;
  -webkit-text-fill-color:#07131d!important;
  font-weight:800!important;
}

/* Light buttons, file controls and other explicitly white utility surfaces. */
body.driver-v119.driver-v120 .btn-light,
body.driver-v119.driver-v120 input[type="file"]{
  color:#07131d!important;
  -webkit-text-fill-color:#07131d!important;
  font-weight:800!important;
}

/* =====================================================================
   v1.20.6 — Premium dark sortable-header hover/focus contrast fix
   Keep clickable table headings inside the dark theme.  The previous
   translucent hover could reveal a pale table/background underneath.
   ===================================================================== */
body.admin-v120 table.data-table thead th.sortable-th:hover,
body.admin-v120 table.data-table thead th.sortable-th:focus-visible{
  background:#174766!important;
  color:#ffffff!important;
  border-bottom-color:#2b79a8!important;
  box-shadow:inset 0 0 0 1px rgba(93,187,255,.22)!important;
  outline:none!important;
}
body.admin-v120 table.data-table thead th.sortable-th:hover::after,
body.admin-v120 table.data-table thead th.sortable-th:focus-visible::after{
  color:#8fd3ff!important;
}
body.admin-v120 table.data-table thead th.sortable-th.sort-active{
  background:#123b58!important;
  color:#8fd3ff!important;
}
body.admin-v120 table.data-table thead th.sortable-th.sort-active:hover,
body.admin-v120 table.data-table thead th.sortable-th.sort-active:focus-visible{
  background:#1a5275!important;
  color:#ffffff!important;
}

/* Keep Admin table/action controls dark on hover as well. */
body.admin-v120 .table-btn:hover,
body.admin-v120 .btn-secondary:hover{
  background:#174766!important;
  color:#ffffff!important;
  border-color:#2b79a8!important;
}
body.admin-v120 .table-btn.primary:hover,
body.admin-v120 .btn-in:hover{
  filter:brightness(1.08)!important;
  color:#ffffff!important;
}


/* =====================================================================
   v1.20.6 — Admin action spacing consistency
   Standardise vertical breathing room between the final form/filter field
   and its action buttons throughout the Admin UI.
   ===================================================================== */
body.admin-v120 .form-grid > .form-actions,
body.admin-v120 .incident-filter-grid > .filter-action,
body.admin-v120 .admin-form-actions{
  margin-top:16px!important;
}

/* Incident filters are a proper responsive grid.  Keep the LOAD INCIDENTS
   action on its own row so it never sits directly against the Status field. */
body.admin-v120 .incident-filter-grid{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  column-gap:14px!important;
  row-gap:0!important;
  align-items:end!important;
}
body.admin-v120 .incident-filter-grid > .filter-action.full{
  grid-column:1/-1!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
}

@media(max-width:1050px){
  body.admin-v120 .incident-filter-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    row-gap:4px!important;
  }
}
@media(max-width:680px){
  body.admin-v120 .incident-filter-grid{
    grid-template-columns:1fr!important;
  }
}


/* ============================================================
   v1.22 — Simplified Operations UI
   Fewer choices on screen, advanced tools remain available.
   ============================================================ */

/* Admin: simplify primary navigation and make secondary tools quieter */
.simplified-admin-nav{gap:8px}
.simplified-admin-nav .admin-nav-btn{min-height:48px;font-size:16px}
.admin-more-tools{margin:14px 12px 0;border:1px solid rgba(99,179,237,.18);border-radius:14px;background:rgba(7,29,46,.55);overflow:hidden}
.admin-more-tools summary{cursor:pointer;padding:13px 14px;color:#9fb7ca;font-weight:800;list-style:none}
.admin-more-tools summary::-webkit-details-marker{display:none}
.admin-more-tools summary:after{content:'+';float:right;color:#5fb3ff;font-size:20px;line-height:16px}
.admin-more-tools[open] summary:after{content:'–'}
.admin-more-tools-list{display:grid;gap:7px;padding:0 8px 9px}
.admin-more-tools .secondary-nav-btn{min-height:40px;font-size:13px;background:rgba(13,49,75,.55);border-color:rgba(99,179,237,.12)}
.simplified-side-links{margin-top:auto}
.simplified-side-links .admin-side-btn{display:block;width:100%;padding:11px 14px;color:#9fb7ca;background:transparent;border:0;text-align:left;text-decoration:none;font-weight:700;cursor:pointer}
.simplified-side-links .admin-side-btn:hover{color:white;background:#123e60;border-radius:10px}

.action-centre-card{margin-bottom:18px}
.admin-action-centre{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px}
.action-centre-item{border:1px solid rgba(87,176,255,.22);border-radius:16px;background:linear-gradient(145deg,#0d304a,#0a2235);color:white;padding:17px;text-align:left;cursor:pointer;min-height:112px;transition:.18s ease}
.action-centre-item:hover{transform:translateY(-2px);border-color:#3a9fff;background:#123d5c}
.action-centre-item strong{display:block;font-size:28px;color:#5fb3ff;line-height:1;margin-bottom:9px}
.action-centre-item span{display:block;font-size:15px;font-weight:900;margin-bottom:5px}
.action-centre-item small{display:block;color:#8ea9bd;line-height:1.3}
.section-quick-actions{display:flex;gap:10px;margin:0 0 14px}
.quick-action-chip{border:1px solid #245c83;background:#0f3552;color:#dceaf5;border-radius:999px;padding:9px 15px;font-weight:800;cursor:pointer}
.quick-action-chip:hover{background:#174c70;color:white}

/* Driver: only three persistent destinations. Less-used tasks live under Quick Actions. */
.simplified-driver-nav{grid-template-columns:repeat(3,1fr)!important}
.simplified-driver-nav .driver-tab{min-width:0}
.simplified-actions-panel{padding-bottom:100px}
.simplified-action-grid{display:grid;grid-template-columns:1fr;gap:14px}
.driver-quick-action{display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto;column-gap:15px;align-items:center;width:100%;padding:18px;border:1px solid #245c83;border-radius:18px;background:linear-gradient(145deg,#103755,#0b263b);color:white;text-align:left;cursor:pointer}
.driver-quick-action .v119-icon{grid-row:1/3;width:38px;height:38px;color:#61b7ff}
.driver-quick-action strong{font-size:19px}
.driver-quick-action span{color:#9eb7ca;font-size:14px;margin-top:4px}
.driver-quick-action:active{transform:scale(.99)}
.driver-quick-action.danger .v119-icon{color:#ff5c64}
.driver-back-actions{margin:0 0 14px;border:1px solid #245c83;background:#0e3451;color:#cfe8fb;border-radius:12px;padding:10px 14px;font-weight:900;cursor:pointer}

/* Reception: emphasize the two actual actions */
.kiosk17-section-title{font-size:16px;letter-spacing:.04em}
.kiosk17-pin-field label{font-weight:900;color:#dceaf5}

@media (max-width:1100px){.admin-action-centre{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.admin-action-centre{grid-template-columns:1fr}.section-quick-actions{flex-wrap:wrap}}

/* ============================================================
   v1.22 — Stores & Equipment Control
   Premium dark theme shared with Reception, Driver and Admin.
   ============================================================ */
body.stores-v122{margin:0;background:radial-gradient(circle at 18% 8%,#0e3754 0,#071e30 30%,#04131f 72%,#020b12 100%);color:#eef8ff;min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
.stores-shell{min-height:100vh}.stores-header{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:14px 22px;background:rgba(3,16,27,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(90,183,245,.2);box-shadow:0 12px 32px rgba(0,0,0,.22)}
.stores-header img{width:220px;max-width:30vw;height:56px;object-fit:contain;object-position:left center;border-radius:8px}.stores-header-copy h1{margin:1px 0 4px;font-size:24px}.stores-meta{display:flex;gap:8px;align-items:center;color:#8ea9bd;font-weight:800;font-size:12px}.stores-header-link{color:#cfeaff;text-decoration:none;border:1px solid #245f89;background:#0c2d46;border-radius:12px;padding:10px 14px;font-weight:850}
.stores-main{max-width:1480px;margin:0 auto;padding:22px}.stores-view{animation:storesFade .18s ease}.stores-view.hidden{display:none!important}@keyframes storesFade{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}
.stores-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.stores-metric{min-height:102px;border:1px solid rgba(94,183,244,.16);border-radius:18px;background:linear-gradient(145deg,#0e3049,#091f31);padding:18px;box-shadow:0 14px 32px rgba(0,0,0,.2)}.stores-metric strong{display:block;font-size:34px;line-height:1;font-weight:950}.stores-metric span{display:block;margin-top:10px;color:#94b0c4;font-size:12px;font-weight:900;letter-spacing:.08em}.stores-metric.good strong{color:#47e798}.stores-metric.blue strong{color:#5dbbff}.stores-metric.warn strong{color:#ffbf5d}.stores-metric.red strong{color:#ff646d}
.stores-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.stores-action-card{min-height:190px;border:1px solid rgba(89,179,240,.18);border-radius:22px;padding:22px;background:linear-gradient(160deg,#0e344f,#091f31);color:#fff;text-align:left;cursor:pointer;box-shadow:0 18px 40px rgba(0,0,0,.22);transition:.18s ease}.stores-action-card:hover{transform:translateY(-3px);border-color:#3aa3ed;background:linear-gradient(160deg,#124362,#0b2940)}.stores-action-card strong{display:block;font-size:22px;margin-top:18px}.stores-action-card>span:last-child{display:block;color:#95b1c5;margin-top:5px}.stores-action-icon{display:grid;place-items:center;width:62px;height:62px;border-radius:18px;background:#0b2436;border:1px solid rgba(114,195,250,.16)}.stores-action-icon svg{width:36px;height:36px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.stores-action-card.out .stores-action-icon{color:#54bcff}.stores-action-card.in .stores-action-icon{color:#44e58f}.stores-action-card.transfer .stores-action-icon{color:#a58bff}.stores-action-card.outstanding .stores-action-icon{color:#ffb45b}
.stores-card{border:1px solid rgba(87,176,235,.18);border-radius:20px;background:linear-gradient(180deg,rgba(10,37,57,.94),rgba(6,25,40,.94));box-shadow:0 16px 36px rgba(0,0,0,.22);overflow:hidden}.stores-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;background:#0c2b43;border-bottom:1px solid rgba(91,178,237,.16);font-weight:950;letter-spacing:.05em}.stores-mini-btn,.stores-secondary-btn,.stores-primary-btn,.stores-back{border:1px solid #286790;border-radius:12px;background:#123d5c;color:#fff;font-weight:900;cursor:pointer}.stores-mini-btn{padding:7px 10px;font-size:11px}.stores-secondary-btn{padding:12px 16px;min-height:46px}.stores-primary-btn{width:100%;padding:15px 18px;min-height:52px;background:linear-gradient(135deg,#12bd63,#079749);border-color:#1bc66d;font-size:15px;letter-spacing:.03em}.stores-primary-btn:hover{filter:brightness(1.08)}.stores-secondary-btn:hover,.stores-mini-btn:hover,.stores-back:hover{background:#195474}.stores-back{width:48px;height:48px;font-size:24px}.stores-view-head{display:flex;align-items:center;gap:14px;margin:2px 0 18px}.stores-view-head h2{margin:1px 0 0;font-size:28px}
.stores-two-col{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);gap:18px}.stores-form-card,.stores-cart-card{padding:18px}.stores-form-card label,.stores-cart-card label,.stores-card label{display:block;color:#b9d3e5;font-weight:850;font-size:13px;margin:10px 0 6px}.stores-field,.stores-small-field{width:100%;box-sizing:border-box;border:1px solid #c9d5df;border-radius:12px;background:#fff;color:#07131d;-webkit-text-fill-color:#07131d;font-weight:800;padding:12px 13px;font-size:15px;outline:none}.stores-field:focus,.stores-small-field:focus{border-color:#54b8ff;box-shadow:0 0 0 3px rgba(84,184,255,.16)}.stores-field option,.stores-small-field option{color:#07131d;background:#fff;font-weight:800}
.stores-asset-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;max-height:52vh;overflow:auto;padding-right:4px}.stores-asset-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;border:1px solid rgba(100,180,233,.18);border-radius:15px;background:#0b273c;padding:14px}.stores-asset-card.selected{border-color:#32a8f4;background:#103956}.stores-asset-card strong,.stores-asset-card span,.stores-asset-card small{display:block}.stores-asset-card strong{font-size:15px}.stores-asset-card span{color:#7fc8fa;font-size:12px;font-weight:850;margin-top:3px}.stores-asset-card small{color:#8da9bd;margin-top:4px}.stores-qty{display:grid;grid-template-columns:36px 30px 36px;align-items:center;gap:4px}.stores-qty button{height:36px;border:1px solid #2a6d98;border-radius:9px;background:#123e5d;color:#fff;font-size:20px;font-weight:900;cursor:pointer}.stores-qty b{text-align:center;font-size:18px}.stores-cart{display:grid;gap:9px;margin:14px 0}.stores-cart-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(98,181,237,.16);border-radius:13px;background:#0a263a;padding:12px}.stores-cart-row strong,.stores-cart-row span{display:block}.stores-cart-row span{color:#8eabbe;font-size:12px;margin-top:3px}.stores-cart-row>b{color:#55bdff;font-size:18px}.stores-empty{padding:18px;border:1px dashed rgba(118,181,224,.22);border-radius:13px;color:#8ea9bd;text-align:center}
.stores-out-list{display:grid;gap:8px;padding:12px}.stores-out-list.large{padding:16px}.stores-out-row{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;border:1px solid rgba(99,181,237,.13);background:#092338;border-radius:14px;padding:12px 14px}.stores-out-main strong,.stores-out-main span,.stores-out-main small{display:block}.stores-out-main span{color:#dfeef8;font-weight:800;margin-top:2px}.stores-out-main small{color:#8ca9bd;margin-top:3px}.stores-out-qty{font-size:20px;color:#56bdff;font-weight:950}.stores-out-ref{color:#7f9fb5;font-size:12px;font-weight:800}.stores-filter-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end;padding:18px}.stores-filter-row.triple{grid-template-columns:1fr 1fr auto}.stores-return-list{display:grid;gap:10px;padding:0 18px 18px}.stores-return-row{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;border:1px solid rgba(98,181,237,.16);background:#0a263a;border-radius:15px;padding:14px}.stores-return-check{display:flex!important;align-items:center;gap:12px!important;margin:0!important}.stores-return-check input,.stores-transfer-row input{width:22px;height:22px;accent-color:#23a9f5}.stores-return-check strong,.stores-return-check small{display:block}.stores-return-check small{color:#91aebf;margin-top:3px}.stores-return-controls{display:flex;gap:8px}.stores-return-controls label{margin:0!important;min-width:110px}.stores-small-field{padding:9px 10px;margin-top:4px}.stores-transfer-grid{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:12px;align-items:end;padding:18px}.stores-help{margin:0 18px 16px;color:#8faabd}.stores-transfer-row{display:flex;align-items:center;gap:12px;border:1px solid rgba(98,181,237,.16);background:#0a263a;border-radius:14px;padding:14px;cursor:pointer}.stores-transfer-row strong,.stores-transfer-row small{display:block}.stores-transfer-row small{color:#91aebf;margin-top:3px}
.stores-pin-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:18px;background:rgba(0,8,14,.82);backdrop-filter:blur(8px)}.stores-pin-modal.hidden{display:none!important}.stores-pin-card{width:min(420px,94vw);border:1px solid #2c6e98;border-radius:22px;background:linear-gradient(180deg,#0d3049,#071d2e);padding:22px;box-shadow:0 24px 60px rgba(0,0,0,.45)}.stores-pin-card h2{margin:4px 0}.stores-pin-card p{color:#90acbf}.stores-pin-display{height:62px;display:grid;place-items:center;border:1px solid #2a658b;border-radius:14px;background:#061522;font-size:28px;letter-spacing:.22em;margin:15px 0}.stores-pin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.stores-pin-grid button{height:58px;border:1px solid #2b668c;border-radius:13px;background:#103752;color:#fff;font-size:20px;font-weight:900;cursor:pointer}.stores-pin-grid button:active{background:#1b567c}.stores-pin-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.stores-pin-actions .stores-primary-btn{min-height:46px;padding:10px}

/* Admin equipment area */
.equipment-admin-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.equipment-admin-metric{background:linear-gradient(145deg,#0e3049,#091f31);border:1px solid rgba(91,179,239,.16);border-radius:16px;padding:15px}.equipment-admin-metric strong{display:block;font-size:28px;color:#59bdff}.equipment-admin-metric span{display:block;color:#8ea9bd;font-weight:850;font-size:11px;margin-top:6px;letter-spacing:.05em}.equipment-status-good{color:#47e798;font-weight:900}.equipment-status-warn{color:#ffbd58;font-weight:900}.equipment-status-bad{color:#ff6770;font-weight:900}.equipment-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:12px;align-items:end}.equipment-admin-split{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.equipment-help{color:#8faabd;font-size:13px;line-height:1.45}

@media(max-width:1100px){.stores-action-grid{grid-template-columns:repeat(2,1fr)}.stores-metrics{grid-template-columns:repeat(2,1fr)}.stores-two-col{grid-template-columns:1fr}.stores-transfer-grid{grid-template-columns:1fr 1fr}.equipment-admin-metrics{grid-template-columns:repeat(3,1fr)}.equipment-admin-split{grid-template-columns:1fr}.equipment-filter-grid{grid-template-columns:repeat(2,1fr)}}
@media(orientation:portrait) and (max-width:900px){.stores-header{grid-template-columns:1fr auto}.stores-header img{grid-column:1/3;max-width:55vw;width:230px}.stores-action-grid{grid-template-columns:1fr 1fr}.stores-asset-picker{grid-template-columns:1fr}.stores-main{padding:14px}.stores-return-row{grid-template-columns:1fr}.stores-return-controls{display:grid;grid-template-columns:1fr 1fr}.stores-filter-row,.stores-filter-row.triple{grid-template-columns:1fr}.stores-transfer-grid{grid-template-columns:1fr}.stores-out-row{grid-template-columns:1fr auto}.stores-out-ref{grid-column:1/3}.equipment-admin-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.stores-header{padding:10px 12px;gap:10px}.stores-header img{height:45px}.stores-header-copy h1{font-size:19px}.stores-header-link{padding:8px 10px;font-size:12px}.stores-action-grid,.stores-metrics{grid-template-columns:1fr}.stores-action-card{min-height:150px}.stores-main{padding:10px}.stores-view-head h2{font-size:23px}.stores-pin-card{padding:17px}}

/* ========================================================================
   v1.24.2 — Consolidated Stores / Equipment Controls
   ======================================================================== */
.stores-required{display:inline-block;margin-left:7px;color:#ff8d92;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.stores-metric{appearance:none;color:inherit;text-align:left;cursor:pointer;transition:transform .16s ease,filter .16s ease,box-shadow .16s ease,border-color .16s ease}
.stores-metric:hover,.stores-metric:focus-visible{transform:translateY(-4px);filter:brightness(1.13);box-shadow:0 12px 28px rgba(0,0,0,.3),0 0 0 2px rgba(74,185,255,.25);outline:none}
.stores-header-link,.stores-action-card,.stores-primary-btn,.stores-secondary-btn,.stores-mini-btn,.stores-back,.stores-pin-grid button{transition:transform .15s ease,filter .15s ease,box-shadow .15s ease}
.stores-header-link:hover,.stores-action-card:hover,.stores-primary-btn:hover,.stores-secondary-btn:hover,.stores-mini-btn:hover,.stores-back:hover,.stores-pin-grid button:hover{transform:translateY(-2px);filter:brightness(1.14);box-shadow:0 8px 20px rgba(0,0,0,.24)}
.stores-repair-list{display:grid;gap:12px;padding-top:12px}
.stores-repair-card{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px;border:1px solid rgba(94,183,244,.16);border-radius:16px;background:#0a263b}
.stores-repair-main{min-width:0;display:grid;gap:4px}.stores-repair-main strong{font-size:18px}.stores-repair-main span{color:#72c9ff;font-weight:850}.stores-repair-main small{color:#95afc1}.stores-repair-main p{margin:4px 0 0;color:#aec3d2;line-height:1.4}
.stores-repair-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.stores-repaired-btn,.stores-beyond-btn{min-height:46px;border-radius:12px;padding:10px 16px;font-weight:950;letter-spacing:.03em;cursor:pointer;border:1px solid transparent}
.stores-repaired-btn{background:#10b965;color:#fff;border-color:#1dd178}.stores-beyond-btn{background:#3a1e2c;color:#ff8e96;border-color:#9a3047}
.stores-repaired-btn:hover,.stores-beyond-btn:hover{filter:brightness(1.14);transform:translateY(-2px)}
.stores-issue-badge{font-weight:950;color:#ffbf5d;background:rgba(255,191,93,.1);border:1px solid rgba(255,191,93,.25);border-radius:999px;padding:8px 12px;white-space:nowrap}
.stores-resolution-card{max-width:720px;width:min(720px,calc(100vw - 28px));max-height:90vh;overflow:auto}.stores-resolution-card label{display:block;margin:12px 0 6px;font-weight:850;color:#dcebf5}.stores-resolution-card .stores-pin-actions{margin-top:16px}.stores-check-line{display:flex!important;align-items:center;gap:10px}.stores-check-line input{width:20px;height:20px}
@media(max-width:760px){.stores-repair-card{align-items:flex-start;flex-direction:column}.stores-repair-actions{width:100%;justify-content:stretch}.stores-repaired-btn,.stores-beyond-btn{flex:1}.stores-return-controls{grid-template-columns:1fr!important}}


/* v1.24.2 — Bulk inventory import */
.inventory-import-card .equipment-help{margin-bottom:14px}.inventory-import-controls{display:grid;grid-template-columns:minmax(260px,1.6fr) minmax(220px,.9fr) minmax(330px,1fr);gap:14px;align-items:end}.inventory-import-actions{display:flex;gap:10px;flex-wrap:wrap}.inventory-import-summary{margin-top:16px}.inventory-import-card input[type=file].field{padding:10px}.inventory-import-card .status-badge{margin-right:6px}@media(max-width:980px){.inventory-import-controls{grid-template-columns:1fr}.inventory-import-actions .btn{flex:1 1 180px}}


/* v1.24.2 Job Register / editable Job Details & Financial Summary */
.job-manager-card{margin-bottom:18px}.job-toolbar{display:grid;grid-template-columns:minmax(190px,.55fr) minmax(280px,1fr) auto;gap:12px;align-items:end}.job-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}.job-summary-card{overflow:hidden}.job-detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.job-detail-list>div{border:1px solid #e0e4e8;border-radius:12px;background:#fafbfc;padding:13px;min-width:0}.job-detail-list strong{display:block;overflow-wrap:anywhere}.job-financial-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.job-fin-number{border:1px solid #dfe4e9;border-radius:12px;background:#fafbfc;padding:13px}.job-fin-number span{display:block;color:#6b7480;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;font-weight:850;margin-bottom:5px}.job-fin-number strong{font-size:1.08rem}.job-fin-number.primary{border-color:#c8d9e6;background:#f2f8fc}.job-fin-number.total{border-width:2px}.job-fin-number.profit strong{color:#12753a}.job-fin-number.loss strong{color:#b51e29}.job-history-card{margin-bottom:20px}.job-labour-divider{display:flex;align-items:center;gap:12px;margin:28px 0 16px;font-weight:950;letter-spacing:.08em;color:#555}.job-labour-divider:before,.job-labour-divider:after{content:"";height:1px;background:#d9dee4;flex:1}.job-manager-card .data-table tbody tr:hover{background:#f7f9fb}@media(max-width:980px){.job-toolbar{grid-template-columns:1fr}.job-detail-grid{grid-template-columns:1fr}.job-detail-list,.job-financial-grid{grid-template-columns:1fr}}


/* =====================================================================
   v1.25.0 — RESPONSIVE ADMIN TABLES / NO HORIZONTAL SCROLL
   All Admin data tables fit the available desktop width.  On compact
   screens rows become labelled cards instead of requiring sideways scroll.
   ===================================================================== */
body.admin-v120{
  max-width:100%;
  overflow-x:hidden!important;
}
body.admin-v120 .admin-content{
  width:min(1680px,calc(100vw - 24px))!important;
  max-width:100%!important;
}
body.admin-v120 .admin-layout,
body.admin-v120 .admin-main,
body.admin-v120 .admin-section,
body.admin-v120 .admin-table-card,
body.admin-v120 .table-scroll{
  min-width:0!important;
  max-width:100%!important;
}
body.admin-v120 .table-scroll{
  width:100%!important;
  overflow-x:hidden!important;
  overflow-y:visible!important;
}
body.admin-v120 table.data-table,
body.admin-v120 table.vehicle-table,
body.admin-v120 .vehicle-history-grid .data-table,
body.admin-v120 table.cartrack-table{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  table-layout:fixed!important;
}
body.admin-v120 table.data-table th,
body.admin-v120 table.data-table td{
  min-width:0!important;
  max-width:none!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  hyphens:auto;
  line-height:1.25;
}
body.admin-v120 table.data-table th{
  padding:9px 7px!important;
  font-size:.70rem!important;
  letter-spacing:.015em!important;
  vertical-align:bottom!important;
}
body.admin-v120 table.data-table td{
  padding:9px 7px!important;
  font-size:.84rem!important;
}
body.admin-v120 table.data-table .muted{
  font-size:.78rem!important;
  line-height:1.2!important;
}
body.admin-v120 table.data-table .status-badge{
  max-width:100%;
  white-space:normal!important;
  text-align:center;
  line-height:1.15;
  padding:5px 7px!important;
}
body.admin-v120 table.data-table .table-btn{
  max-width:100%;
  min-width:0!important;
  min-height:32px!important;
  height:auto!important;
  padding:6px 8px!important;
  margin:2px!important;
  white-space:normal!important;
  line-height:1.1!important;
  font-size:.77rem!important;
}

/* Vehicle table gets deliberate proportions so all ten columns remain visible. */
body.admin-v120 table.vehicle-table th:nth-child(1),
body.admin-v120 table.vehicle-table td:nth-child(1){width:9%}
body.admin-v120 table.vehicle-table th:nth-child(2),
body.admin-v120 table.vehicle-table td:nth-child(2){width:13%}
body.admin-v120 table.vehicle-table th:nth-child(3),
body.admin-v120 table.vehicle-table td:nth-child(3){width:9%}
body.admin-v120 table.vehicle-table th:nth-child(4),
body.admin-v120 table.vehicle-table td:nth-child(4){width:8%}
body.admin-v120 table.vehicle-table th:nth-child(5),
body.admin-v120 table.vehicle-table td:nth-child(5){width:9%}
body.admin-v120 table.vehicle-table th:nth-child(6),
body.admin-v120 table.vehicle-table td:nth-child(6){width:11%}
body.admin-v120 table.vehicle-table th:nth-child(7),
body.admin-v120 table.vehicle-table td:nth-child(7){width:10%}
body.admin-v120 table.vehicle-table th:nth-child(8),
body.admin-v120 table.vehicle-table td:nth-child(8){width:11%}
body.admin-v120 table.vehicle-table th:nth-child(9),
body.admin-v120 table.vehicle-table td:nth-child(9){width:10%}
body.admin-v120 table.vehicle-table th:nth-child(10),
body.admin-v120 table.vehicle-table td:nth-child(10){width:10%}
body.admin-v120 table.vehicle-table td:nth-child(10) .table-btn{
  display:block!important;
  width:100%!important;
  margin:3px 0!important;
}

/* Dense tables: preserve useful content but reduce wasted spacing on laptops. */
@media (max-width:1400px) and (min-width:901px){
  body.admin-v120 .admin-layout{grid-template-columns:220px minmax(0,1fr)!important;gap:12px!important}
  body.admin-v120 .admin-nav-btn{font-size:.88rem!important}
  body.admin-v120 table.data-table th{padding:8px 5px!important;font-size:.66rem!important}
  body.admin-v120 table.data-table td{padding:8px 5px!important;font-size:.79rem!important}
  body.admin-v120 table.data-table .table-btn{padding:5px 6px!important;font-size:.71rem!important}
}

/* Tablet / narrow browser: each row becomes a self-contained labelled card. */
@media (max-width:900px){
  body.admin-v120 .table-scroll{
    overflow:visible!important;
  }
  body.admin-v120 table.data-table,
  body.admin-v120 table.data-table tbody,
  body.admin-v120 table.data-table tr,
  body.admin-v120 table.data-table td{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
  }
  body.admin-v120 table.data-table{
    border-collapse:separate!important;
    border-spacing:0!important;
  }
  body.admin-v120 table.data-table thead{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    overflow:hidden!important;
    clip:rect(0 0 0 0)!important;
    white-space:nowrap!important;
  }
  body.admin-v120 table.data-table tbody tr{
    margin:0 0 12px!important;
    border:1px solid rgba(98,181,239,.20)!important;
    border-radius:14px!important;
    overflow:hidden!important;
    background:#0a2438!important;
    box-shadow:0 7px 20px rgba(0,0,0,.16)!important;
  }
  body.admin-v120 table.data-table tbody tr:hover td{
    background:transparent!important;
  }
  body.admin-v120 table.data-table tbody td{
    display:grid!important;
    grid-template-columns:minmax(112px,35%) minmax(0,1fr)!important;
    gap:12px!important;
    align-items:start!important;
    padding:10px 12px!important;
    border-top:1px solid rgba(98,181,239,.11)!important;
    background:transparent!important;
    text-align:left!important;
    font-size:.88rem!important;
  }
  body.admin-v120 table.data-table tbody td:first-child{
    border-top:0!important;
  }
  body.admin-v120 table.data-table tbody td::before{
    content:attr(data-label);
    color:#79bce7!important;
    font-size:.68rem!important;
    font-weight:900!important;
    letter-spacing:.035em!important;
    text-transform:uppercase!important;
    line-height:1.25!important;
  }
  body.admin-v120 table.data-table tbody td[colspan]{
    display:block!important;
    padding:14px!important;
  }
  body.admin-v120 table.data-table tbody td[colspan]::before{
    display:none!important;
  }
  body.admin-v120 table.data-table tbody td[data-label="Actions"],
  body.admin-v120 table.data-table tbody td[data-label="Action"]{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:7px!important;
    align-items:center!important;
  }
  body.admin-v120 table.data-table tbody td[data-label="Actions"]::before,
  body.admin-v120 table.data-table tbody td[data-label="Action"]::before{
    flex:0 0 112px!important;
  }
  body.admin-v120 table.data-table tbody td[data-label="Actions"] .table-btn,
  body.admin-v120 table.data-table tbody td[data-label="Action"] .table-btn{
    width:auto!important;
    min-width:82px!important;
    margin:0!important;
  }
  body.admin-v120 .vehicle-history-grid.history-tables{
    padding:12px!important;
  }
}

@media (max-width:520px){
  body.admin-v120 .admin-content{width:calc(100vw - 12px)!important}
  body.admin-v120 table.data-table tbody td{
    grid-template-columns:1fr!important;
    gap:4px!important;
  }
  body.admin-v120 table.data-table tbody td[data-label="Actions"],
  body.admin-v120 table.data-table tbody td[data-label="Action"]{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
  }
  body.admin-v120 table.data-table tbody td[data-label="Actions"]::before,
  body.admin-v120 table.data-table tbody td[data-label="Action"]::before{
    grid-column:1/-1!important;
  }
  body.admin-v120 table.data-table tbody td[data-label="Actions"] .table-btn,
  body.admin-v120 table.data-table tbody td[data-label="Action"] .table-btn{
    width:100%!important;
  }
}

/* v1.25.0 compact Admin shell: the premium desktop sidebar must not squeeze
   table cards into a narrow strip on tablets/phones. */
@media (max-width:900px){
  body.admin-v120 .admin-layout{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  body.admin-v120 .admin-sidebar{
    position:static!important;
    top:auto!important;
    width:100%!important;
    max-width:none!important;
  }
  body.admin-v120 .admin-main{
    width:100%!important;
    min-width:0!important;
  }
  body.admin-v120 .admin-nav{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body.admin-v120 .admin-nav-btn{
    width:100%!important;
    min-width:0!important;
    text-align:center!important;
  }
}
@media (max-width:520px){
  body.admin-v120 .admin-nav{
    grid-template-columns:1fr 1fr!important;
  }
}

/* ===== v1.25.0 JOB DOCUMENTS / SITE ACCESS ===== */
.job-documents-card{margin-top:18px}
.job-document-current{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.job-document-current-summary{margin-top:6px;line-height:1.5}
.job-document-current-summary strong{font-size:1.05rem}
.job-document-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.job-document-actions .table-btn{white-space:normal}
.job-document-mobile-current,.job-document-mobile-history{display:grid;gap:12px}
.job-document-mobile-history h3{margin:8px 0 0}
.job-document-mobile-card{display:grid;gap:8px;padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.035)}
.job-document-mobile-card.current{border-color:rgba(80,220,150,.38);background:rgba(80,220,150,.06)}
.job-document-mobile-card>span,.job-document-mobile-card>small{color:var(--muted,#9fb0bf)}
@media (max-width:900px){
  .job-document-current{align-items:stretch}
  .job-document-current .form-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .job-document-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .job-document-actions .table-btn{width:100%}
}


/* ========================================================================
   v1.25.1 — RECEPTION TABLET KIOSK / LANDSCAPE FIT
   - one-screen landscape kiosk
   - staff list is the only scrolling region
   - full, uncropped camera preview
   - larger PIN/touch controls
   - Who's Currently In panel removed from Reception (Roll Call remains)
   ======================================================================== */
.kiosk1251-body .kiosk17-clock-card,
.kiosk1251-body .kiosk17-camera-card-wrap{display:flex;flex-direction:column;min-height:0}
.kiosk1251-body .kiosk17-clock-panel,
.kiosk1251-body .kiosk17-camera-panel{flex:1 1 auto;min-height:0}
.kiosk1251-body .kiosk17-right-column.kiosk1251-camera-only{display:block;min-height:0}
.kiosk1251-body .kiosk17-camera-card-wrap{height:100%}
.kiosk1251-body .kiosk17-camera-card{height:100%!important;min-height:0!important;max-height:none!important;background:#05080c}
.kiosk1251-body .kiosk17-camera-card video{width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;object-fit:contain!important;object-position:center center!important;background:#05080c}
.kiosk1251-body .camera-frame{inset:5% 7%!important;border-width:3px!important}
.kiosk1251-body .kiosk17-staff-tiles{flex:1 1 auto;max-height:none!important;min-height:120px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.kiosk1251-body .kiosk17-pin-row{grid-template-columns:minmax(0,1fr) minmax(210px,.36fr);gap:12px;align-items:end}
.kiosk1251-body .kiosk17-pin-field label{font-size:.82rem!important;margin:0 0 6px!important}
.kiosk1251-body .kiosk17-pin-row .field{height:clamp(54px,8vh,68px)!important;min-height:54px!important;border-radius:12px!important;padding:0 82px 0 16px!important;font-size:clamp(1rem,1.65vw,1.25rem)!important;font-weight:850}
.kiosk1251-body .kiosk17-pin-row .password-toggle{height:clamp(42px,6.2vh,52px)!important;min-width:68px!important;right:6px!important;border-radius:10px!important;font-size:.82rem!important;padding:0 10px!important}
.kiosk1251-body .kiosk17-main-action{height:clamp(54px,8vh,68px)!important;min-height:54px!important;border-radius:12px!important;font-size:clamp(1rem,1.7vw,1.28rem)!important;padding:0 16px!important}
.kiosk1251-body .kiosk17-status-row .status{min-height:30px!important;padding:6px 10px!important;font-size:.68rem!important}
.kiosk1251-body .kiosk17-pin-keypad{right:10px!important;bottom:calc(clamp(54px,8vh,68px) + 52px)!important;top:auto!important;width:min(330px,42vw)!important;padding:10px!important;border-radius:14px!important}
.kiosk1251-body .kiosk17-pin-keypad .pin-keypad-title{font-size:.72rem!important;margin-bottom:6px!important}
.kiosk1251-body .kiosk17-pin-keypad .pin-keypad-display{height:42px!important;font-size:1.05rem!important;margin-bottom:7px!important}
.kiosk1251-body .kiosk17-pin-keypad .pin-keypad-grid{gap:7px!important}
.kiosk1251-body .kiosk17-pin-keypad .pin-key{height:54px!important;border-radius:10px!important;font-size:1.15rem!important}
.kiosk1251-body .kiosk17-pin-keypad .pin-key-submit{font-size:.76rem!important}

@media (orientation:landscape) and (min-width:560px){
  .kiosk1251-body{height:var(--kiosk-height)!important;max-height:var(--kiosk-height)!important;overflow:hidden!important}
  .kiosk1251-body .app-shell{height:var(--kiosk-height)!important;max-height:var(--kiosk-height)!important;min-height:0!important;overflow:hidden!important}
  .kiosk1251-body .kiosk17-content{flex:1 1 0!important;height:auto!important;max-height:none!important;min-height:0!important;margin:6px auto!important;overflow:hidden!important}
  .kiosk1251-body .kiosk17-grid{height:100%!important;grid-template-columns:minmax(0,1.6fr) minmax(320px,.78fr)!important;gap:10px!important}
  .kiosk1251-body .kiosk17-clock-card,
  .kiosk1251-body .kiosk17-right-column,
  .kiosk1251-body .kiosk17-camera-card-wrap{height:100%!important;min-height:0!important}
  .kiosk1251-body .kiosk17-clock-panel{overflow:hidden!important}
}

@media (orientation:landscape) and (min-width:560px) and (max-height:650px){
  .kiosk1251-body .kiosk17-content{flex:1 1 0!important;height:auto!important;max-height:none!important;min-height:0!important;margin:3px auto!important}
  .kiosk1251-body .kiosk17-grid{grid-template-columns:minmax(0,1.62fr) minmax(295px,.72fr)!important;gap:6px!important}
  .kiosk1251-body .kiosk17-clock-panel{gap:5px!important;padding:6px 8px!important}
  .kiosk1251-body .kiosk17-staff-tiles{min-height:82px!important;max-height:none!important}
  .kiosk1251-body .kiosk17-pin-row{gap:8px!important;grid-template-columns:minmax(0,1fr) minmax(190px,.34fr)!important}
  .kiosk1251-body .kiosk17-pin-row .field,
  .kiosk1251-body .kiosk17-main-action{height:52px!important;min-height:52px!important}
  .kiosk1251-body .kiosk17-pin-row .password-toggle{height:40px!important;min-width:64px!important}
  .kiosk1251-body .kiosk17-pin-keypad{width:min(300px,40vw)!important;bottom:92px!important}
  .kiosk1251-body .kiosk17-pin-keypad .pin-key{height:48px!important}
}

@media (orientation:landscape) and (min-width:560px) and (max-height:560px){
  .kiosk1251-body .kiosk17-content{flex:1 1 0!important;height:auto!important;max-height:none!important;min-height:0!important;margin:2px auto!important}
  .kiosk1251-body .kiosk17-staff-tiles{min-height:60px!important;max-height:none!important}
  .kiosk1251-body .kiosk17-pin-row .field,
  .kiosk1251-body .kiosk17-main-action{height:46px!important;min-height:46px!important}
  .kiosk1251-body .kiosk17-pin-row .password-toggle{height:35px!important}
  .kiosk1251-body .kiosk17-pin-keypad{width:270px!important;bottom:80px!important}
  .kiosk1251-body .kiosk17-pin-keypad .pin-key{height:42px!important}
}

@media (orientation:portrait), (max-width:720px){
  .kiosk1251-body .kiosk17-right-column.kiosk1251-camera-only{display:block}
  .kiosk1251-body .kiosk17-camera-card-wrap{min-height:360px}
  .kiosk1251-body .kiosk17-camera-card{min-height:300px!important}
  .kiosk1251-body .kiosk17-staff-tiles{max-height:360px!important}
  .kiosk1251-body .kiosk17-pin-row{grid-template-columns:1fr!important}
  .kiosk1251-body .kiosk17-pin-row .field,
  .kiosk1251-body .kiosk17-main-action{height:62px!important;min-height:62px!important}
  .kiosk1251-body .kiosk17-pin-keypad{position:fixed!important;left:50%!important;right:auto!important;bottom:16px!important;top:auto!important;transform:translateX(-50%)!important;width:min(360px,94vw)!important}
  .kiosk1251-body .kiosk17-pin-keypad .pin-key{height:58px!important}
}
