:root{--ink:#121722;--navy:#121822;--blue:#175cff;--lime:#bffe3d;--paper:#f4f5f2;--line:#e4e6e2;--muted:#7b838e}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px}button,input,select{font:inherit}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:var(--navy);color:white;padding:28px 18px;display:flex;flex-direction:column}.logo{font-size:19px;font-weight:850;letter-spacing:-.03em}.logo i{font-style:normal;color:var(--lime)}.logo small{font-size:7px;color:#737d8c;vertical-align:top;letter-spacing:.12em}.sidebar nav{display:grid;gap:7px;margin-top:45px}.sidebar nav a{color:#9099a7;text-decoration:none;padding:12px;border-radius:8px;font-size:12px;font-weight:700;display:flex;gap:12px;align-items:center}.sidebar nav a span{color:var(--lime);font-size:17px}.sidebar nav a.active,.sidebar nav a:hover{background:#252d39;color:white}.user{margin-top:auto;border-top:1px solid #2a323e;padding-top:18px;display:flex;align-items:center;gap:9px}.user>b{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e5ebff;color:#2751b4;font-size:10px}.user>span{display:grid;gap:2px}.user strong{font-size:10px}.user small{font-size:8px;color:#77808d}.user form{margin-left:auto}.user button{border:0;background:none;color:#8e97a4;font-size:9px;cursor:pointer}.main{margin-left:230px;min-height:100vh}.main>header{height:86px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:15px 30px;position:sticky;top:0;z-index:10}.main header small,.panel-head small{font-size:8px;color:#8a929d;letter-spacing:.1em;font-weight:800}.main h1{font-size:24px;margin:3px 0;letter-spacing:-.04em}.header-actions{display:flex;gap:8px}.primary,.secondary{border:1px solid transparent;border-radius:7px;padding:10px 14px;text-decoration:none;font-size:10px;font-weight:800;cursor:pointer;text-align:center}.primary{background:var(--blue);color:white}.secondary{background:white;color:var(--ink);border-color:#d9dcda}.full{display:block;width:100%}.content{padding:22px 28px 40px;max-width:1500px;margin:auto}.alert{padding:11px 13px;border-radius:8px;margin-bottom:13px;font-size:10px;font-weight:700}.alert.success{background:#e3f7e9;color:#237a40}.alert.error{background:#ffe7e5;color:#b63e36}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:15px}.summary article{background:white;border:1px solid var(--line);border-radius:11px;padding:16px;display:flex;gap:13px;align-items:center}.summary article>span{font-size:24px;font-weight:850;width:47px;height:47px;border-radius:11px;background:#e9efff;color:#2d5fcc;display:grid;place-items:center}.summary article div{display:grid;gap:3px}.summary small{font-size:8px;color:#8c949e;letter-spacing:.07em}.summary strong{font-size:11px}.layout{display:grid;grid-template-columns:minmax(0,1.7fr) 370px;gap:15px}.panel{background:white;border:1px solid var(--line);border-radius:12px;box-shadow:0 3px 14px #1117220a;overflow:hidden}.panel-head{padding:16px 17px 12px;display:flex;align-items:flex-start;justify-content:space-between}.panel-head h2{font-size:15px;margin:3px 0}.panel-head>a{font-size:21px;text-decoration:none;color:#8b929a}.search{width:240px;height:34px;border:1px solid var(--line);background:#f7f8f5;border-radius:7px;display:flex;align-items:center;gap:6px;padding:0 9px}.search input{border:0;outline:0;background:transparent;width:100%;font-size:9px}.key-table{border-top:1px solid #eee}.key-row{display:grid;grid-template-columns:.75fr 1.5fr 1fr .8fr 14px;gap:10px;align-items:center;padding:11px 15px;border-bottom:1px solid #eee;color:inherit;text-decoration:none}.key-row:not(.key-head):hover{background:#f8f9fb}.key-row>span{display:grid;gap:3px}.key-row strong{font-size:9px}.key-row small{font-size:8px;color:#8d949d}.key-head{font-size:7px;font-weight:850;color:#8c939d;background:#f7f7f4;letter-spacing:.07em}.key-code{font-family:ui-monospace,SFMono-Regular,monospace;background:#edf1fb;color:#294fae;padding:6px 7px;border-radius:5px;font-size:9px;width:max-content}.muted{color:#8d949d}.state{font-style:normal;border-radius:12px;padding:5px 7px;font-size:7px;font-weight:800;width:max-content}.state.ready{background:#e4f7e9;color:#258445}.state.pending{background:#f0f1ef;color:#777e87}.side-panel{height:max-content;position:sticky;top:101px}.key-form{padding:0 17px 18px}.key-form label{display:grid;gap:6px;font-size:8px;font-weight:750;color:#606873;margin:11px 0}.key-form input,.key-form select{width:100%;border:1px solid #dfe1de;background:#fafbf9;border-radius:7px;padding:10px;outline:0;font-size:10px}.key-form input:focus,.key-form select:focus{border-color:#3569da;box-shadow:0 0 0 3px #175cff12}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.key-form>.primary{width:100%;margin:6px 0 8px}.empty-side{padding:60px 28px;text-align:center}.empty-side>span{font-size:30px;color:#3767d4}.empty-side h2{font-size:15px}.empty-side p{font-size:9px;color:#7c848e;line-height:1.6}.history{margin-top:15px}.history-row{display:grid;grid-template-columns:100px 1fr 1fr;gap:15px;padding:12px 17px;border-top:1px solid #eee}.history-row>b{font-family:ui-monospace,monospace;color:#315fc8;font-size:9px}.history-row>span{display:grid;gap:3px}.history-row strong{font-size:9px}.history-row small{font-size:8px;color:#8a929b}.empty-line{padding:0 17px 17px;color:#858d97;font-size:9px}.auth-page{min-height:100vh;background:radial-gradient(circle at 70% 15%,#263246,#111722 60%);display:grid;place-items:center;padding:20px}.auth-card{width:min(410px,94vw);background:white;border-radius:15px;padding:32px;box-shadow:0 25px 70px #0005}.auth-card .kicker{display:block;color:#3767d4;font-size:8px;font-weight:850;letter-spacing:.13em;margin-top:32px}.auth-card h1{font-size:27px;letter-spacing:-.04em;margin:7px 0}.auth-card>p{font-size:10px;color:#77808b;line-height:1.6}.auth-card form label{display:grid;gap:6px;font-size:9px;font-weight:750;margin:13px 0}.auth-card form input{border:1px solid #dfe1de;border-radius:7px;padding:11px;background:#fafbf9}.auth-card form .primary{width:100%;margin-top:8px}.labels-page{background:white}.print-toolbar{position:sticky;top:0;background:#111722;padding:12px;display:flex;justify-content:center;gap:8px}.labels{display:grid;grid-template-columns:repeat(3,82mm);gap:8mm;padding:12mm;justify-content:center}.label{width:82mm;height:32mm;border:1px dashed #999;border-radius:3mm;padding:6mm;display:grid;grid-template-columns:1fr auto;align-items:center}.label-brand{font-weight:850;font-size:12pt}.label-brand i{font-style:normal;color:#315fc8}.label>small{font-size:6pt;color:#777;text-align:right}.label>strong{font-family:ui-monospace,monospace;font-size:22pt;letter-spacing:.05em}.label>span{font-size:10pt;font-weight:800;text-align:right}.label>p{grid-column:1/3;margin:0;font-size:7pt;color:#666}@media(max-width:1050px){.layout{grid-template-columns:1fr}.side-panel{position:static}.summary{grid-template-columns:1fr 1fr 1fr}}@media(max-width:700px){.sidebar{position:static;width:auto;height:auto;padding:16px}.sidebar nav{display:none}.user{display:none}.main{margin:0}.main>header{padding:12px 14px;height:75px}.header-actions .secondary{display:none}.content{padding:13px}.summary{grid-template-columns:1fr 1fr}.summary article:last-child{grid-column:1/3}.summary article{padding:11px}.keys-panel{overflow:auto}.key-table{min-width:680px}.search{width:170px}.form-grid{grid-template-columns:1fr}.history{overflow:auto}.history-row{min-width:560px}}@media print{.print-toolbar{display:none}.labels{padding:0;gap:5mm}.label{break-inside:avoid}}

/* Extended vehicle profile */
.side-panel{max-height:calc(100vh - 116px);overflow:auto}
.form-divider{border-top:1px solid #e7e9e6;margin:17px 0 2px;padding-top:10px}
.form-divider span{font-size:7px;color:#8a929d;letter-spacing:.11em;font-weight:850}
.alert.info{background:#e9f1ff;color:#2856a8}
.key-form fieldset{border:0;padding:0;margin:0;min-width:0}
.key-form fieldset>.primary{width:100%;margin:6px 0 8px}
.key-form fieldset:disabled input,.key-form fieldset:disabled select{color:#515964;opacity:1;background:#f1f2ef}
@media(max-width:1050px){.side-panel{max-height:none}}

/* More visible fleet list */
.key-row{grid-template-columns:.65fr 1.45fr 1.35fr 14px;gap:12px;padding:13px 15px}
.key-row>span{gap:4px}
.key-row strong{font-size:11px;line-height:1.3}
.key-row small{font-size:9px;line-height:1.35;color:#77808b}
.key-head{font-size:8px}
.key-code{padding:7px 8px;font-size:11px}

/* One-hand mobile fleet view */
@media(max-width:700px){
  .content{padding:9px 8px 28px}
  .summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-bottom:8px}
  .summary article,.summary article:last-child{grid-column:auto;padding:7px 3px;display:grid;justify-items:center;text-align:center;gap:3px}
  .summary article>span{width:34px;height:30px;font-size:18px;border-radius:7px}
  .summary article div{gap:0}
  .summary article strong{display:none}
  .summary small{font-size:6.5px;line-height:1.2}
  .layout{gap:8px}
  .keys-panel{overflow:hidden}
  .keys-panel .panel-head{padding:12px 11px 10px;align-items:center}
  .keys-panel .panel-head h2{font-size:16px}
  .search{width:155px;height:38px}
  .search input{font-size:11px}
  .key-table{min-width:0}
  .key-head{display:none}
  .key-row{grid-template-columns:58px minmax(0,1fr) 12px;grid-template-areas:"code moto arrow" "code person arrow";gap:7px 9px;padding:13px 10px;min-height:94px}
  .key-row>span:nth-child(1){grid-area:code;align-self:start;padding-top:2px}
  .key-row>span:nth-child(2){grid-area:moto;min-width:0}
  .key-row>span:nth-child(3){grid-area:person;min-width:0;background:#f0f4ff;border-left:3px solid #3767d4;border-radius:5px;padding:7px 9px}
  .key-row>span:nth-child(4){grid-area:arrow;align-self:center;color:#79818c;font-size:20px}
  .key-row strong{font-size:13px;line-height:1.25;overflow-wrap:anywhere}
  .key-row small{font-size:10.5px;line-height:1.3;overflow-wrap:anywhere}
  .key-row>span:nth-child(3) small{font-size:9.5px;color:#49669f;font-weight:750}
  .key-code{padding:8px 7px;font-size:12px}
}

/* CodeIgniter dashboard refinements */
.key-row[hidden]{display:none!important}
.key-row.selected-row:not(.key-head){background:#f0f4ff}
.sidebar nav a:focus-visible,.key-row:focus-visible,.primary:focus-visible,.secondary:focus-visible{outline:3px solid #7ba4ff;outline-offset:2px}
.key-form .secondary.full{margin-top:8px}
@media(max-width:700px){.sidebar{display:flex;align-items:center;justify-content:space-between}.sidebar .logo{font-size:17px}.main>header{position:static}.side-panel{max-height:none}.history-row{grid-template-columns:65px 1fr;min-width:0}.history-row>span:last-child{grid-column:2}.header-actions{align-items:center}.header-actions .secondary{display:inline-flex;font-size:9px;padding:8px}}
@media(max-width:700px){.sidebar{display:block}.sidebar nav{display:flex;gap:4px;overflow-x:auto;margin-top:12px}.sidebar nav a{white-space:nowrap;padding:8px 9px;font-size:10px}.sidebar nav a span{font-size:12px}.sidebar .user{display:flex;margin-top:10px;padding-top:10px}.sidebar .user strong{font-size:10px}.sidebar .user small{font-size:9px}.sidebar .user button{font-size:11px}}

/* Dashboard */
.dashboard-intro{margin:4px 0 22px}.dashboard-intro p{color:#3767d4;font-weight:800;margin:0 0 6px}.dashboard-intro h2{font-size:clamp(24px,3vw,34px);margin:0 0 7px;letter-spacing:-.04em}.dashboard-intro span{color:#697482}
.dashboard-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:20px}
.dashboard-action{min-height:180px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:19px;background:#fff;border:1px solid var(--line);border-radius:13px;color:var(--ink);text-decoration:none;box-shadow:0 3px 14px #1117220a}
.dashboard-action:hover,.dashboard-action:focus-visible{border-color:#8da9eb;box-shadow:0 7px 22px #1747a51c;outline:none}
.dashboard-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:#e9efff;color:#295bcc;font-size:24px;font-weight:800}
.dashboard-action strong{font-size:17px}.dashboard-action small{font-size:12px;color:#697482;line-height:1.45}.dashboard-action b{font-size:11px;color:#2456c7;margin-top:auto}
.dashboard-summary{margin-bottom:18px}.dashboard-recent .panel-head{align-items:center}.dashboard-all{font-size:12px!important;color:#2456c7!important;font-weight:800}
.dashboard-moto{display:flex;align-items:center;gap:15px;padding:14px 18px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}.dashboard-moto:hover{background:#f7f9ff}.dashboard-moto span{display:grid;gap:4px;min-width:0;flex:1}.dashboard-moto strong{font-size:13px}.dashboard-moto small{font-size:11px;color:#77808b}.dashboard-moto em{font-style:normal;font-size:11px;color:#2856a8;background:#edf1fb;border-radius:6px;padding:6px 8px}.dashboard-moto>b{font-size:20px;color:#77808b}
@media(max-width:900px){.dashboard-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.dashboard-actions{grid-template-columns:1fr;gap:9px}.dashboard-action{min-height:0;padding:15px}.dashboard-moto{padding:13px 11px}.dashboard-moto em{display:none}}


/* Navigation */
.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sidebar .logo{display:inline-block;color:#fff;text-decoration:none}
.sidebar .logo:focus-visible,.menu-toggle:focus-visible,.scan-brand:focus-visible,.auth-card .logo:focus-visible{outline:3px solid #7ba4ff;outline-offset:3px}
.auth-card .logo{color:var(--ink);text-decoration:none}
.menu-toggle{display:none}
@media(max-width:700px){
  .sidebar{padding:14px 16px}
  .menu-toggle{display:inline-flex;align-items:center;gap:7px;border:1px solid #596273;border-radius:8px;background:#252d39;color:#fff;padding:9px 11px;font-size:13px;font-weight:700;cursor:pointer;min-height:40px}
  .sidebar nav,.sidebar .user{display:none}
  .sidebar.menu-open nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;overflow:visible;margin-top:14px}
  .sidebar.menu-open nav a{white-space:normal;min-height:44px;padding:10px;font-size:11px}
  .sidebar.menu-open .user{display:flex}
}

.print-selection{text-align:center;color:#647080;margin:15px 12px 0}.labels{grid-template-columns:repeat(2,82mm)}@media(max-width:720px){.labels{grid-template-columns:82mm;padding:8mm}}@media print{.print-selection{display:none}.labels{grid-template-columns:repeat(2,82mm);justify-content:start;padding:0;gap:5mm}}

/* Shared navigation and event entry */
.sidebar nav .nav-create{background:#263b26;color:#fff;border:1px solid #52743a}
.sidebar nav .nav-create span{color:var(--lime)}
.sidebar nav .nav-create:hover,.sidebar nav .nav-create.active{background:#37543a;border-color:#a8d16a}
.dashboard-action.event-action{border-color:#b7d99b;background:linear-gradient(145deg,#fff,#f4fbe9)}
.dashboard-action.event-action .dashboard-icon{background:#e7f5d5;color:#4a7530}
.dashboard-events{margin-bottom:18px}
@media(max-width:700px){.main>header{gap:8px}.main>header h1{font-size:20px}.header-actions .primary{font-size:10px;padding:9px 10px;white-space:nowrap}}

/* Session controls and role-aware dashboard */
.sidebar{overflow-y:auto}
.sidebar nav{margin-top:28px}
.nav-group-label{display:block;padding:15px 12px 3px;color:#aeb7c3;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.nav-group-admin{margin-top:12px;border-top:1px solid #2a323e;padding-top:21px}
.main>.app-header{min-height:86px;height:auto;gap:20px}
.header-title{min-width:0}
.header-identity{display:flex;align-items:center;justify-content:flex-end;gap:16px;min-width:0}
.header-user{display:grid;gap:3px;min-width:0;text-align:right}
.header-user strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}
.main .header-user small{font-size:11px;color:#647080;letter-spacing:0;text-transform:none}
.header-identity form{margin:0;flex:none}
.logout-button{min-height:40px;padding:9px 13px;border:1px solid #ccd3dc;border-radius:8px;background:#fff;color:#263345;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap}
.logout-button:hover{background:#f0f4ff;border-color:#91a6ce}
.logout-button:focus-visible,.sidebar nav a:focus-visible,.dashboard-action:focus-visible,.dashboard-admin-actions a:focus-visible{outline:3px solid #7ba4ff;outline-offset:2px}
.dashboard-action-primary{background:#f1f6ff;border-color:#a9c2fa}
.dashboard-action-primary .dashboard-icon{background:#2456c7;color:#fff}
.dashboard-actions{grid-template-columns:repeat(4,minmax(0,1fr))}
.dashboard-feed{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.dashboard-feed .dashboard-events{margin-bottom:0}
.dashboard-admin{margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.dashboard-admin-head small{font-size:10px;color:#697482;font-weight:800;letter-spacing:.1em}
.dashboard-admin-head h2{font-size:18px;margin:5px 0 14px}
.dashboard-admin-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.dashboard-admin-actions a{display:grid;gap:7px;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--ink)}
.dashboard-admin-actions a:hover{border-color:#8da9eb;background:#f8faff}
.dashboard-admin-actions strong{font-size:13px}
.dashboard-admin-actions span{font-size:11px;color:#4d65a1}
@media(max-width:1180px){.dashboard-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.dashboard-feed{grid-template-columns:1fr}}
@media(max-width:700px){
  .sidebar{overflow:visible}
  .sidebar nav{margin-top:12px}
  .sidebar.menu-open nav .nav-group-label{grid-column:1/-1}
  .main>.app-header{position:sticky;top:0;z-index:20;min-height:72px;padding:10px 14px}
  .header-title small{font-size:8px}
  .main>.app-header h1{font-size:18px}
  .header-identity{gap:8px}
  .header-user strong{max-width:110px;font-size:11px}
  .main .header-user small{font-size:9px}
  .logout-button{min-height:40px;padding:8px 10px;font-size:11px}
}
@media(max-width:600px){.dashboard-actions{grid-template-columns:1fr}.dashboard-admin-actions{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.main>.app-header{flex-wrap:wrap;gap:5px}.header-title small{display:none}.main>.app-header h1{font-size:16px}.header-identity{width:100%;justify-content:space-between}.header-user{text-align:left}.header-user strong{max-width:190px}.dashboard-admin-actions{grid-template-columns:1fr}}
