/* Extracted from resources/views/auth/register.blade.php — cacheable. */
        :root {
            --ch-yellow: #FACC15;
            --ch-yellow-deep: #E6B800;
            --ch-yellow-ink: #2A1E04;
            --ch-yellow-tint: #FFFBEA;
            --ch-yellow-line: #F2D24A;
            --ink: #0B1220;
            --ink-2: #1F2937;
            --ink-3: #475569;
            --muted: #64748B;
            --muted-2: #94A3B8;
            --hairline: #ECE7DA;
            --hairline-strong: #DAD2BE;
            --surface: #FFFFFF;
            --surface-2: #FAF7EE;
            --canvas: #F4EFE2;
            --success: #16A34A; --success-soft: #DCFCE7; --success-ink: #065F46;
            --warning: #B45309; --warning-soft: #FEF3C7; --warning-ink: #78350F;
            --danger: #DC2626; --danger-soft: #FEE2E2; --danger-ink: #7F1D1D;
            --info: #2563EB; --info-soft: #DBEAFE; --info-ink: #1E3A8A;
            --r-sm: 10px; --r-md: 14px; --r-lg: 18px; --r-pill: 999px;
            --shadow-1: 0 1px 2px rgba(11,18,32,0.04);
            --shadow-2: 0 6px 18px rgba(11,18,32,0.06);
            --shadow-3: 0 18px 40px rgba(11,18,32,0.10);
            --font-display: "Poppins", sans-serif;
            --font-ui: "Inter", sans-serif;
        }

        *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

        body {
            font-family: var(--font-ui);
            background: var(--canvas);
            color: var(--ink);
            min-height: 100vh;
        }

        /* ── Two-panel shell ── */
        .login-shell {
            display: flex;
            min-height: 100vh;
        }

        /* ── Left brand panel (desktop only) ── */
        .brand-panel {
            display: none;
            flex-direction: column;
            justify-content: center;
            align-items: flex-start;
            width: 42%;
            flex-shrink: 0;
            padding: 56px 52px;
            background: var(--ink-2);
            position: relative;
            overflow: hidden;
        }

        .brand-panel::before {
            content: "";
            position: absolute;
            inset: 0;
            background:
                radial-gradient(ellipse 80% 60% at 10% 90%, rgba(250,204,21,0.18) 0%, transparent 70%),
                radial-gradient(ellipse 60% 50% at 90% 10%, rgba(250,204,21,0.10) 0%, transparent 70%);
            pointer-events: none;
        }

        .brand-panel::after {
            content: "";
            position: absolute;
            bottom: -80px;
            right: -80px;
            width: 320px;
            height: 320px;
            border-radius: 50%;
            border: 40px solid rgba(250,204,21,0.12);
            pointer-events: none;
        }

        .brand-panel-inner {
            position: relative;
            z-index: 1;
        }

        .brand-logo {
            display: block;
            width: min(220px, 80%);
            height: auto;
            margin-bottom: 40px;
        }

        .brand-pill {
            display: inline-flex;
            align-items: center;
            gap: 7px;
            background: rgba(250,204,21,0.15);
            border: 1px solid rgba(250,204,21,0.30);
            border-radius: var(--r-pill);
            padding: 5px 14px;
            font-size: 12px;
            font-weight: 600;
            color: var(--ch-yellow);
            letter-spacing: 0.04em;
            text-transform: uppercase;
            margin-bottom: 22px;
        }

        .brand-heading {
            font-family: var(--font-display);
            font-size: clamp(28px, 3vw, 38px);
            font-weight: 800;
            line-height: 1.18;
            color: #fff;
            margin-bottom: 16px;
        }

        .brand-heading span {
            color: var(--ch-yellow);
        }

        .brand-tagline {
            font-size: 15px;
            color: var(--muted-2);
            line-height: 1.6;
            max-width: 320px;
            margin-bottom: 44px;
        }

        .brand-features {
            list-style: none;
            display: flex;
            flex-direction: column;
            gap: 14px;
        }

        .brand-features li {
            display: flex;
            align-items: center;
            gap: 12px;
            font-size: 14px;
            color: #CBD5E1;
        }

        .brand-features li .feat-icon {
            width: 32px;
            height: 32px;
            border-radius: 50%;
            background: rgba(250,204,21,0.15);
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--ch-yellow);
            font-size: 13px;
            flex-shrink: 0;
        }

        /* ── Right form panel ── */
        .form-panel {
            flex: 1;
            display: flex;
            align-items: flex-start;
            justify-content: center;
            padding: 32px 20px 48px;
            background: var(--canvas);
        }

        .mobile-logo-wrap {
            display: flex;
            justify-content: center;
            margin-bottom: 28px;
        }

        .mobile-logo-wrap img {
            width: min(180px, 60%);
            height: auto;
        }

        .form-box {
            width: 100%;
            max-width: 460px;
        }

        /* ── Register card ── */
        .login-card {
            background: var(--surface);
            border: 1px solid var(--hairline);
            border-radius: var(--r-lg);
            padding: 36px 32px 32px;
            box-shadow: var(--shadow-3);
        }

        .login-card-header {
            margin-bottom: 28px;
        }

        .login-card-title {
            font-family: var(--font-display);
            font-size: 22px;
            font-weight: 700;
            color: var(--ink);
            margin-bottom: 6px;
        }

        .login-card-sub {
            font-size: 14px;
            color: var(--muted);
            line-height: 1.5;
        }

        /* ── Error alert ── */
        .error-alert {
            display: flex;
            align-items: flex-start;
            gap: 10px;
            background: var(--danger-soft);
            border: 1px solid rgba(220,38,38,0.22);
            border-radius: var(--r-md);
            padding: 12px 14px;
            color: var(--danger-ink);
            font-size: 13.5px;
            line-height: 1.5;
            margin-bottom: 20px;
        }

        .error-alert i { margin-top: 1px; flex-shrink: 0; }

        /* ── Section label ── */
        .section-label {
            font-size: 11px;
            font-weight: 700;
            letter-spacing: 0.06em;
            text-transform: uppercase;
            color: var(--muted-2);
            margin-bottom: 14px;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .section-label::after {
            content: "";
            flex: 1;
            height: 1px;
            background: var(--hairline);
        }

        /* ── Field group ── */
        .field-group {
            display: flex;
            flex-direction: column;
            gap: 16px;
            margin-bottom: 22px;
        }

        .field-row {
            display: flex;
            flex-direction: column;
            gap: 6px;
        }

        .field-row-2 {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 12px;
        }

        .field-label {
            font-size: 13px;
            font-weight: 600;
            color: var(--ink-3);
            letter-spacing: 0.01em;
        }

        .field-label .optional {
            font-weight: 400;
            color: var(--muted-2);
            margin-left: 4px;
        }

        .input-wrap {
            position: relative;
        }

        .input-wrap .input-icon {
            position: absolute;
            left: 14px;
            top: 50%;
            transform: translateY(-50%);
            color: var(--muted-2);
            font-size: 14px;
            pointer-events: none;
        }

        .input-wrap .input {
            padding-left: 40px;
        }

        .input {
            width: 100%;
            height: 44px;
            border: 1.5px solid var(--hairline-strong);
            border-radius: var(--r-md);
            background: var(--surface-2);
            color: var(--ink);
            font-family: var(--font-ui);
            font-size: 14px;
            padding: 0 14px;
            outline: none;
            transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
        }

        .input:focus {
            border-color: var(--ch-yellow-line);
            background: var(--surface);
            box-shadow: 0 0 0 3px rgba(250,204,21,0.18);
        }

        .input.is-invalid {
            border-color: var(--danger);
            background: var(--surface);
        }

        .input.is-invalid:focus {
            box-shadow: 0 0 0 3px rgba(220,38,38,0.12);
        }

        .field-error {
            font-size: 12.5px;
            color: var(--danger);
            display: flex;
            align-items: center;
            gap: 5px;
        }

        /* Password toggle */
        .input-wrap .pw-toggle {
            position: absolute;
            right: 14px;
            top: 50%;
            transform: translateY(-50%);
            color: var(--muted-2);
            font-size: 14px;
            background: none;
            border: none;
            cursor: pointer;
            padding: 0;
            line-height: 1;
            width: auto;
            height: auto;
            margin: 0;
            transition: color 0.15s;
        }

        .input-wrap .pw-toggle:hover { color: var(--ink-3); }

        .input-wrap .input.has-toggle { padding-right: 40px; }

        /* ── Role selector ── */
        .role-selector {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 10px;
        }

        .role-option {
            position: relative;
            display: flex;
            flex-direction: column;
        }

        .role-option input[type="radio"] {
            position: absolute;
            opacity: 0;
            width: 0;
            height: 0;
        }

        .role-card {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 8px;
            padding: 16px 12px;
            border: 1.5px solid var(--hairline-strong);
            border-radius: var(--r-md);
            background: var(--surface-2);
            cursor: pointer;
            transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
            user-select: none;
            flex: 1;
        }

        .role-card:hover {
            border-color: var(--ch-yellow-line);
            background: var(--ch-yellow-tint);
        }

        .role-option input[type="radio"]:checked + .role-card {
            border-color: var(--ch-yellow);
            background: var(--ch-yellow-tint);
            box-shadow: 0 0 0 3px rgba(250,204,21,0.18);
        }

        .role-icon {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background: var(--hairline);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 17px;
            color: var(--muted);
            transition: background 0.15s, color 0.15s;
        }

        .role-option input[type="radio"]:checked + .role-card .role-icon {
            background: rgba(250,204,21,0.25);
            color: var(--ch-yellow-ink);
        }

        .role-name {
            font-size: 13.5px;
            font-weight: 600;
            color: var(--ink-3);
            transition: color 0.15s;
        }

        .role-option input[type="radio"]:checked + .role-card .role-name {
            color: var(--ink);
        }

        .role-desc {
            font-size: 11.5px;
            color: var(--muted-2);
            text-align: center;
            line-height: 1.4;
        }

        /* ── File upload ── */
        .file-upload-wrap {
            position: relative;
        }

        .file-upload-label {
            display: flex;
            align-items: center;
            gap: 10px;
            width: 100%;
            min-height: 44px;
            border: 1.5px dashed var(--hairline-strong);
            border-radius: var(--r-md);
            background: var(--surface-2);
            padding: 10px 14px;
            cursor: pointer;
            transition: border-color 0.15s, background 0.15s;
            font-size: 14px;
            color: var(--muted);
        }

        .file-upload-label:hover {
            border-color: var(--ch-yellow-line);
            background: var(--ch-yellow-tint);
        }

        .file-upload-label.has-file {
            border-style: solid;
            border-color: var(--ch-yellow-line);
            background: var(--ch-yellow-tint);
            color: var(--ink-3);
        }

        .file-upload-label.is-invalid {
            border-color: var(--danger);
            border-style: solid;
        }

        .file-upload-icon {
            width: 32px;
            height: 32px;
            border-radius: var(--r-sm);
            background: var(--hairline);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 13px;
            color: var(--muted);
            flex-shrink: 0;
            transition: background 0.15s, color 0.15s;
        }

        .file-upload-label.has-file .file-upload-icon {
            background: rgba(250,204,21,0.25);
            color: var(--ch-yellow-ink);
        }

        .file-upload-label input[type="file"] {
            position: absolute;
            inset: 0;
            opacity: 0;
            width: 100%;
            height: 100%;
            cursor: pointer;
        }

        /* ── Vehicle section (shown only for driver) ── */
        .vehicle-section {
            display: none;
            flex-direction: column;
            gap: 0;
        }

        .vehicle-section.visible {
            display: flex;
        }

        /* ── Primary button ── */
        .btn-primary-login {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            width: 100%;
            height: 48px;
            border: none;
            border-radius: var(--r-md);
            background: var(--ch-yellow);
            color: var(--ch-yellow-ink);
            font-family: var(--font-ui);
            font-size: 15px;
            font-weight: 700;
            cursor: pointer;
            letter-spacing: 0.01em;
            transition: background 0.15s, box-shadow 0.15s, transform 0.1s;
            box-shadow: 0 2px 0 var(--ch-yellow-deep), var(--shadow-1);
        }

        .btn-primary-login:hover {
            background: var(--ch-yellow-deep);
            box-shadow: 0 2px 0 #C9A200, var(--shadow-2);
        }

        .btn-primary-login:active {
            transform: translateY(1px);
            box-shadow: 0 1px 0 var(--ch-yellow-deep);
        }

        /* ── Login link ── */
        .register-prompt {
            margin-top: 24px;
            text-align: center;
            font-size: 13.5px;
            color: var(--muted);
        }

        .register-prompt a {
            color: var(--ink-2);
            font-weight: 600;
            text-decoration: none;
            border-bottom: 1.5px solid var(--ch-yellow-line);
            transition: color 0.15s, border-color 0.15s;
        }

        .register-prompt a:hover {
            color: var(--ink);
            border-color: var(--ch-yellow-deep);
        }

        /* ── Divider ── */
        .card-divider {
            height: 1px;
            background: var(--hairline);
            margin: 24px 0;
        }

        /* ── Terms note ── */
        .terms-note {
            font-size: 12px;
            color: var(--muted-2);
            text-align: center;
            line-height: 1.6;
            margin-top: 14px;
        }

        /* ── Responsive ── */
        @media (min-width: 900px) {
            .brand-panel { display: flex; }
            .mobile-logo-wrap { display: none; }
            .form-panel { padding: 48px 40px; align-items: center; }
        }

        @media (max-width: 480px) {
            .login-card {
                padding: 28px 20px 24px;
                border-radius: var(--r-lg);
            }
            .field-row-2 {
                grid-template-columns: 1fr;
            }
        }
