/* Driver component adapter: only layout and aliases to the canonical NeLeSo tokens. */
:root{
  --font-weight-regular:400;
  --font-weight-medium:500;
  --font-weight-semibold:600;
  --font-weight-bold:700;
  --text-xs:12px;
  --text-sm:14px;
  --text-md:16px;
  --text-lg:18px;
  --text-xl:20px;
  --display-xs:24px;
  --display-sm:30px;
  --display-md:36px;
  --display-lg:48px;
  --display-xl:60px;
  --display-2xl:72px;
  --leading-xs:18px;
  --leading-sm:20px;
  --leading-md:24px;
  --leading-lg:28px;
  --leading-xl:30px;
  --leading-display-xs:32px;
  --leading-display-sm:38px;
  --leading-display-md:44px;
  --leading-display-lg:60px;
  --leading-display-xl:72px;
  --leading-display-2xl:90px;
  --spacing-none:0px;
  --spacing-xxs:2px;
  --spacing-xs:4px;
  --spacing-sm:6px;
  --spacing-md:8px;
  --spacing-lg:12px;
  --spacing-xl:16px;
  --spacing-2xl:20px;
  --spacing-3xl:24px;
  --spacing-4xl:32px;
  --spacing-5xl:40px;
  --spacing-6xl:48px;
  --spacing-7xl:64px;
  --spacing-8xl:80px;
  --spacing-9xl:96px;
  --spacing-10xl:128px;
  --spacing-11xl:160px;
  --font-family:var(--font-sans);
  --font-family-serif:var(--font-sans);
  --font-family-mono:var(--font-mono);
  --radius-sm:calc(var(--radius) - 2px);
  --radius-md:var(--radius);
  --radius-lg:var(--radius);
  --radius-xl:var(--radius);
  --radius-full:9999px;
  --color-text-primary:hsl(var(--foreground));
  --color-text-secondary:hsl(var(--muted-foreground));
  --color-text-tertiary:hsl(var(--muted-foreground));
  --color-text-quaternary:hsl(var(--muted-foreground));
  --color-text-disabled:hsl(var(--muted-foreground));
  --color-text-white:hsl(var(--brand-foreground));
  --color-fg-quaternary:hsl(var(--muted-foreground));
  --color-bg-primary:hsl(var(--background));
  --color-bg-secondary:hsl(var(--muted));
  --color-bg-tertiary:hsl(var(--secondary));
  --color-bg-quaternary:hsl(var(--secondary));
  --color-bg-active:hsl(var(--accent));
  --color-bg-secondary-hover:hsl(var(--accent));
  --color-bg-glass:hsl(var(--background) / .96);
  --color-bg-gradient:hsl(var(--muted));
  --color-border:hsl(var(--border));
  --color-border-primary:hsl(var(--input));
  --color-border-secondary:hsl(var(--border));
  --color-border-tertiary:hsl(var(--border));
  --color-border-brand:hsl(var(--brand-border));
  --color-text-brand-primary:hsl(var(--brand));
  --color-accent-primary:hsl(var(--brand));
  --color-action:hsl(var(--brand));
  --color-bg-brand-primary:hsl(var(--brand));
  --color-bg-brand-secondary:hsl(var(--brand-muted));
  --color-bg-brand-primary-subtle:hsl(var(--brand-muted));
  --color-bg-brand-subtle:hsl(var(--brand-muted));
  --button-primary-bg:hsl(var(--brand));
  --button-primary-bg-hover:hsl(var(--brand-hover));
  --button-primary-border:hsl(var(--brand));
  --button-primary-fg:hsl(var(--brand-foreground));
  --button-secondary-bg:hsl(var(--background));
  --button-secondary-bg-hover:hsl(var(--accent));
  --button-secondary-border:hsl(var(--input));
  --button-secondary-fg:hsl(var(--foreground));
  --button-error-bg:hsl(var(--destructive));
  --button-error-bg-hover:hsl(var(--destructive) / .9);
  --input-bg:hsl(var(--background));
  --input-text:hsl(var(--foreground));
  --input-border:hsl(var(--input));
  --input-border-hover:hsl(var(--muted-foreground));
  --input-border-focus:hsl(var(--ring));
  --input-disabled-bg:hsl(var(--muted));
  --input-disabled-border:hsl(var(--border));
  --input-ring-focus:0 0 0 3px hsl(var(--ring) / .15);
  --ring-brand:0 0 0 3px hsl(var(--ring) / .15);
  --brand-50:hsl(var(--brand-muted));
  --brand-500:hsl(var(--brand));
  --brand-600:hsl(var(--brand-hover));
  --brand-700:hsl(var(--brand-hover));
  --gray-300:hsl(var(--input));
  --gray-900:hsl(var(--foreground));
  --gray-dark-200:hsl(var(--foreground));
  --gray-dark-950:hsl(var(--background));
  --color-success:hsl(var(--success));
  --color-text-success:hsl(var(--success));
  --color-text-error:hsl(var(--destructive));
  --color-bg-error-subtle:hsl(var(--destructive-muted));
  --error-50:hsl(var(--destructive-muted));
  --error-200:hsl(var(--destructive-muted));
  --error-400:hsl(var(--destructive));
  --error-500:hsl(var(--destructive));
  --error-600:hsl(var(--destructive));
  --error-700:hsl(var(--destructive));
  --success-50:hsl(var(--success-muted));
  --success-200:hsl(var(--success-muted));
  --success-400:hsl(var(--success));
  --success-500:hsl(var(--success));
  --success-600:hsl(var(--success));
  --success-700:hsl(var(--success));
  --warning-50:hsl(var(--warning-muted));
  --warning-200:hsl(var(--warning-muted));
  --warning-400:hsl(var(--warning));
  --warning-500:hsl(var(--warning));
  --warning-600:hsl(var(--warning));
  --warning-700:hsl(var(--warning));
  --badge-error-bg:hsl(var(--destructive-muted));
  --badge-error-fg:hsl(var(--destructive));
  --badge-error-border:hsl(var(--border));
  --badge-success-bg:hsl(var(--success-muted));
  --badge-success-fg:hsl(var(--success));
  --badge-success-border:hsl(var(--border));
  --badge-warning-bg:hsl(var(--warning-muted));
  --badge-warning-fg:hsl(var(--warning));
  --badge-warning-border:hsl(var(--border));
  --badge-brand-bg:hsl(var(--brand-muted));
  --badge-brand-fg:hsl(var(--brand));
  --badge-brand-border:hsl(var(--border));
  --badge-gray-bg:hsl(var(--secondary));
  --badge-gray-fg:hsl(var(--muted-foreground));
  --badge-gray-border:hsl(var(--border));
}
body{font-family:var(--font-sans);color:hsl(var(--foreground));background:hsl(var(--muted));font-size:.875rem;line-height:1.5}
body::before,#app-header::before{display:none}
#app-header{background:hsl(var(--background));border-bottom:1px solid hsl(var(--border));box-shadow:none;backdrop-filter:none;padding:0 1.5rem;min-height:3.5rem;height:auto}
#app-header .header-content{max-width:none;gap:1.5rem;min-height:3.5rem}
#app-header .header-left{min-width:0;gap:.75rem}
#app-header .header-right{gap:1rem}
#app-header .n-brand{display:flex;align-items:center;gap:.625rem;color:hsl(var(--foreground));font-weight:600;text-decoration:none}
.n-dcs-wordmark{display:inline-block;color:#1170cf;font-size:1.15rem;font-weight:800;letter-spacing:-.04em;line-height:1}
:root[data-theme="dark"] .n-dcs-wordmark,.dark .n-dcs-wordmark{color:#3b8fe8}
@supports ((background-clip:text) or (-webkit-background-clip:text)){
  .n-dcs-wordmark{background:linear-gradient(90deg,#1170cf 0%,#1d805f 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
  :root[data-theme="dark"] .n-dcs-wordmark,.dark .n-dcs-wordmark{background:linear-gradient(90deg,#3b8fe8 0%,#3aa77b 100%)}
}
#app-header h1{font-family:var(--font-sans);font-size:.875rem;font-weight:500}
#app-header .nav-link{font-size:.8125rem;font-weight:500;border-radius:calc(var(--radius) - 2px);color:hsl(var(--muted-foreground));padding:.5rem .75rem}
#app-header .nav-link.active{background:hsl(var(--brand-muted));color:hsl(var(--brand))}
#app-header .nav-link:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}
#app-content{width:min(100%,1200px);margin:0 auto;padding:2rem 1.5rem}
.dp-header h2,.driver-hero-card h1{font-family:var(--font-sans);font-size:1.5rem;font-weight:700;letter-spacing:-.025em}
.dp-subtitle{font-size:.875rem;color:hsl(var(--muted-foreground))}
.dp-card,.dp-stat,.driver-card,.driver-hero-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-xs)}
.dp-card-label,.dp-card-title{font-family:var(--font-sans);text-transform:none;letter-spacing:0;font-size:.875rem;font-weight:600}
.pd-btn,.wb-tab,.pd-tab,.prefs-toggle{font-family:var(--font-sans);border-radius:calc(var(--radius) - 2px);font-size:.875rem;font-weight:500;min-height:2.25rem}
.pd-btn-primary{background:hsl(var(--brand));border-color:hsl(var(--brand));color:hsl(var(--brand-foreground));box-shadow:var(--shadow-xs)}
.pd-btn-primary:hover{background:hsl(var(--brand-hover));border-color:hsl(var(--brand-hover))}
.pd-btn-ghost{background:hsl(var(--background));color:hsl(var(--foreground));border-color:hsl(var(--input))}
.pd-field input,.pd-field select,.pd-field textarea{font:inherit;background:hsl(var(--background));color:hsl(var(--foreground));border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);min-height:2.25rem}
.pd-field>span{font-size:.8125rem;font-weight:500}
.prefs-menu{position:absolute;top:calc(100% + .5rem);right:0;z-index:150;display:none;min-width:220px;padding:.375rem;border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--popover));box-shadow:var(--shadow-lg)}
.prefs-menu.open{display:block}.prefs-menu .prefs-item{color:hsl(var(--foreground));border-radius:calc(var(--radius) - 2px)}
.prefs-menu .prefs-item:hover{background:hsl(var(--accent))}
.pd-tab.active,.wb-tab-active{background:hsl(var(--brand-muted));color:hsl(var(--brand));border-color:hsl(var(--brand-border));box-shadow:none}
.pilot-tenant-badge{font-size:.75rem;color:hsl(var(--muted-foreground));padding:.25rem .5rem;border:1px solid hsl(var(--border));border-radius:var(--radius)}
/* Auth markup is shared with the other portals; legacy field names remain intact. */
.driver-auth .login-card{width:100%;max-width:none;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}
.driver-auth .login-form,.driver-auth .register-form{display:grid;gap:.625rem}
.driver-auth .login-title,.driver-auth .register-title,.driver-auth .confirm-title{font-family:var(--font-sans);font-size:1.5rem;font-weight:700;letter-spacing:-.025em;margin:0 0 .5rem}
.driver-auth .login-subtitle,.driver-auth .register-subtitle,.driver-auth .confirm-message{color:hsl(var(--muted-foreground));margin:0 0 1.5rem}
.driver-auth :is(input,select,textarea){width:100%;font:inherit;border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);padding:.625rem .75rem;background:hsl(var(--background));color:hsl(var(--foreground))}
.driver-auth :is(label,small){font-size:.8125rem}.driver-auth small{color:hsl(var(--muted-foreground))}
.driver-auth .login-form button,.driver-auth .register-form button,.driver-auth .confirm-btn{display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;padding:.625rem 1rem;border:0;border-radius:calc(var(--radius) - 2px);background:hsl(var(--brand));color:hsl(var(--brand-foreground));font:500 .875rem/1.5 var(--font-sans);cursor:pointer}
.driver-auth button:disabled{opacity:.5;cursor:not-allowed}
.login-status,.register-status{padding:.75rem 1rem;border:1px solid hsl(var(--border));border-radius:var(--radius);margin:1rem 0}
.login-status.success,.register-status.success{background:hsl(var(--success-muted));color:hsl(var(--success))}
.login-status.error,.register-status.error{background:hsl(var(--destructive-muted));color:hsl(var(--destructive))}
.login-hint,.login-legal,.register-legal,.confirm-legal{margin-top:1.25rem;color:hsl(var(--muted-foreground));font-size:.75rem;display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}
.login-divider{margin:1.5rem 0 1rem;text-align:center;color:hsl(var(--muted-foreground));font-size:.75rem}
.login-sso{display:flex;align-items:center;justify-content:center;gap:.625rem;min-height:2.5rem;border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);padding:.625rem 1rem;color:hsl(var(--foreground));font-weight:500}
.login-sso-logo{width:1.125rem;height:1.125rem}.login-logo,.register-logo,.confirm-logo{display:none}
.driver-invitation{display:grid;place-items:center;min-height:100vh;padding:1.5rem}
.driver-invitation .n-auth-card{width:min(100%,460px)}
.driver-invitation h1{margin:1.5rem 0 .75rem}.driver-invitation p{margin:.75rem 0;color:hsl(var(--muted-foreground))}.driver-invitation button{width:100%;margin-top:1rem}
.driver-invitation nav{display:flex;gap:1rem}.driver-invitation #message{overflow-wrap:anywhere}.driver-invitation #back{display:block;margin-top:1.25rem}
.driver-public{display:block;min-height:100vh;padding:2.5rem 1.5rem;background:hsl(var(--muted));font-family:var(--font-sans);color:hsl(var(--foreground))}
.driver-public .container,.driver-public .pilot-bye-card{max-width:800px;margin:0 auto;padding:2rem;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-xs)}
.driver-public h1{font-family:var(--font-sans);font-size:1.5rem;text-transform:none;margin:1.5rem 0 1rem;color:hsl(var(--foreground));letter-spacing:-.025em}
.driver-public h2{font-size:1rem;margin:1.5rem 0 .5rem}.driver-public p{margin:.75rem 0;color:hsl(var(--muted-foreground))}.driver-public .pilot-wordmark{display:flex;align-items:center;gap:.75rem;font-weight:600}.driver-public .pilot-wordmark img{height:1.25rem;width:auto}.driver-public .pilot-wordmark-copy small{display:block;font-size:.75rem;font-weight:400;color:hsl(var(--muted-foreground))}
.pilot-public-action{display:inline-flex;margin-top:1rem;padding:.625rem 1rem;border-radius:calc(var(--radius) - 2px);background:hsl(var(--brand));color:hsl(var(--brand-foreground))}
@media(max-width:900px){#app-header{padding:.75rem 1rem}#app-header .header-content{flex-wrap:wrap;gap:.75rem}#app-header .header-left{flex:1}#app-header .header-right{width:100%;justify-content:space-between}#app-header nav{flex-wrap:wrap;gap:.25rem}#app-header .nav-link{padding:.5rem}#app-content{padding:1.25rem 1rem}.pilot-tenant-badge{display:none}}
@media(max-width:540px){#app-header .n-product-name{display:inline}.dp-card{padding:1rem}.pd-btn{min-height:2.75rem}.driver-public{padding:1rem}.driver-public .container,.driver-public .pilot-bye-card{padding:1.25rem}.driver-auth .form-row{grid-template-columns:minmax(0,1fr)}}
.driver-invitation .n-brand{display:flex;align-items:center;gap:.75rem;color:hsl(var(--foreground));font-weight:600}.driver-invitation .n-brand img{width:98px;height:20px;object-fit:contain}.driver-invitation .n-auth-card{padding:2rem;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-xs)}
.driver-auth .form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.driver-auth .form-field{display:grid;gap:.375rem}.driver-auth .voucher-chip{font-family:var(--font-mono);font-size:.75rem;background:hsl(var(--muted));padding:.5rem .75rem;margin:1rem 0;border-radius:var(--radius)}
.driver-public .legal-card{max-width:800px;margin:0 auto;padding:2rem;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius)}.driver-public .legal-back{display:inline-block;margin-top:1.25rem;font-size:.8125rem}.driver-public address{font-style:normal;color:hsl(var(--muted-foreground));line-height:1.7}.driver-public .legal-footer{display:flex;gap:1rem;flex-wrap:wrap;border-top:1px solid hsl(var(--border));padding-top:1.5rem;margin-top:2rem;font-size:.75rem}
@media(max-width:540px){.dp-grid{grid-template-columns:minmax(0,1fr)!important}.driver-auth .form-row{grid-template-columns:minmax(0,1fr)}.driver-invitation .n-auth-card,.driver-public .legal-card{padding:1.25rem}.driver-auth .n-auth-form{margin-top:1.25rem}}

/* Joint NeLeSo / WALL-E driver sign-in presentation. */
.driver-auth .driver-partner-brands{gap:20px;flex-wrap:wrap}
.driver-partner-divider{height:28px;width:1px;background:hsl(var(--border))}
.driver-auth .driver-partner-brands .driver-partner-logo{width:110px;height:30px;filter:brightness(0)}
.driver-partner-link{display:inline-flex;align-items:center}
.driver-auth .driver-product-name{font-size:.875rem;font-weight:600;color:hsl(var(--muted-foreground));margin-bottom:-12px}
.driver-auth .n-auth-intro img.n-auth-artwork{mix-blend-mode:normal;max-height:380px}
.driver-demo-login{margin-top:24px;padding-top:20px;border-top:1px solid hsl(var(--border));text-align:center}
.driver-demo-button{min-height:40px;padding:8px 16px;border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);background:hsl(var(--background));color:hsl(var(--foreground));font:500 .8125rem/1.5 var(--font-sans);cursor:pointer}
.driver-demo-button:hover{background:hsl(var(--muted))}
.driver-demo-login>p{color:hsl(var(--muted-foreground));font-size:.75rem;line-height:1.5;margin:8px 0 0}
.driver-auth [hidden]{display:none!important}
:root[data-theme="dark"] .driver-partner-logo,.dark .driver-partner-logo{filter:none!important}

.driver-demo-banner{text-align:center;background:hsl(var(--muted));color:hsl(var(--muted-foreground));padding:8px 20px;border-bottom:1px solid hsl(var(--border));font-size:.8125rem}
