/* Login, registration and shared controls. Load before the authenticated workspace. */
:root {
      --bg: #f4f6f8;
      --surface: #fff;
      --line: #d8e0e8;
      --text: #1f2933;
      --muted: #667085;
      --blue: #08766c;
      --blue-soft: #e7f2f0;
      --green: #00a86b;
      --green-soft: #e6f6ee;
      --amber: #9a5a05;
      --amber-soft: #fff2d9;
      --red: #b42318;
      --red-soft: #fde8e5;
      --font-micro: 10px;
      --font-meta: 11px;
      --font-caption: 12px;
      --font-section: 13px;
      --font-body: 14px;
      --font-title: 16px;
      --font-page: 18px;
      --font-data: 19px;
      --weight-regular: 400;
      --weight-medium: 500;
      --weight-semibold: 600;
      --weight-strong: 700;
      font-family: "Microsoft YaHei", "PingFang SC", "Segoe UI", Arial, sans-serif;
    }
    * { box-sizing: border-box; }
    html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
    html, body { width: 100%; max-width: 100%; overflow-x: hidden; }
    body { margin: 0; background: var(--bg); color: var(--text); font-size:var(--font-body); font-weight:var(--weight-regular); line-height:1.5; }
    h1, h2, h3 { font-weight:var(--weight-strong); }
    strong, b { font-weight:var(--weight-semibold); }
    button, input, select, textarea { font: inherit; }
    button { border: 0; cursor: pointer; }
    .auth-screen { min-height: 100vh; display: grid; place-items: stretch center; padding: 0; background: #fff; }
    .auth-layout { width: 100%; min-height: 100vh; display: grid; grid-template-columns: minmax(0, 72fr) minmax(380px, 28fr); align-items: stretch; }
    .auth-screen.register-mode .auth-layout { grid-template-columns:minmax(360px,.72fr) minmax(620px,1.28fr); }
    .auth-screen.register-mode .auth-card { align-content:start; max-height:100vh; overflow-y:auto; padding:26px clamp(28px,4vw,52px) 34px; }
    .auth-hero, .auth-card { position: relative; min-width:0; background: #fff; }
    .auth-hero { min-height: 100vh; display: grid; align-content: space-between; gap: 0; padding: clamp(40px,5vw,88px); overflow:hidden; background:#143f46; color:#fff; box-shadow:inset 180px 120px 220px -210px rgba(44,194,175,.22); }
    .auth-corner { display:none; }
    .auth-kicker { width: fit-content; min-height: 28px; display: inline-flex; align-items: center; padding: 0 10px; border: 1px solid rgba(255,255,255,.28); border-radius: 6px; background: rgba(255,255,255,.08); color: #d8eeeb; font-size: 12px; font-weight:var(--weight-medium); }
    .auth-title { display: grid; gap: 0; max-width:none; }
    .auth-eyebrow { display:flex; align-items:center; gap:9px; margin-bottom:13px; color:#86d8cb; font-size:13px; font-weight:var(--weight-semibold); }
    .auth-eyebrow::before { content:""; width:24px; height:2px; background:#36b7a6; }
    .auth-title h2 { max-width:none; margin:0 0 15px; color:#fff; font-size:clamp(34px,2.7vw,48px); line-height:1.18; letter-spacing:0; white-space:nowrap; }
    .auth-title p { max-width:800px; margin:0; color:#d5e5e1; font-size:16px; line-height:1.8; font-weight:var(--weight-medium); }
    .auth-badges { display: flex; flex-wrap: wrap; gap: 8px; }
    .auth-badge { min-height: 30px; display: inline-flex; align-items: center; padding: 0 10px; border: 1px solid rgba(255,255,255,.22); border-radius: 6px; background: rgba(255,255,255,.07); color: #e7f2f1; font-size: 12px; font-weight:var(--weight-medium); }
    .auth-status-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid rgba(255,255,255,.18); border-bottom:1px solid rgba(255,255,255,.18); }
    .auth-status { min-height:72px; display:grid; align-content:center; gap:4px; padding:14px 12px; border-right:1px solid rgba(255,255,255,.18); }
    .auth-status:last-child { border-right:0; }
    .auth-status strong { color:#fff; font-size:15px; line-height:1.35; }
    .auth-status span { color:#b9d3ce; font-size:12px; font-weight:var(--weight-medium); }
    .auth-legal { margin:14px 0 0; color:#aac8c2; font-size:11px; }
    .auth-card { display: grid; align-content: center; gap: 18px; padding: clamp(28px,3vw,52px); border-left:1px solid #e4e9eb; }
    .auth-brand { display: flex; align-items: center; gap: 11px; min-width: 0; }
    .brand-mark { width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 8px; background: #08766c; color: #fff; font-size: 22px; font-weight:var(--weight-medium); line-height: 1; box-shadow: none; }
    .auth-hero .brand-mark { width:56px; height:56px; border:1px solid rgba(255,255,255,.42); border-radius:8px; background:rgba(255,255,255,.04); font-size:26px; font-weight:var(--weight-strong); }
    .auth-hero .auth-brand h1 { color:#fff; }
    .auth-hero .auth-brand strong { color:#cfe0e0; }
    .auth-hero .auth-brand { gap:15px; }
    .auth-hero .auth-brand h1 { font-size:25px; line-height:1.22; }
    .auth-hero .auth-brand strong { margin-top:3px; color:#c7ded9; font-size:12px; line-height:1.35; }
    .auth-brand h1 { margin: 0; font-size: 26px; line-height: 1.05; letter-spacing: 0; }
    .auth-brand strong { display: block; margin-top: 4px; color: #455468; font-size: 13px; font-weight:var(--weight-medium); }
    .auth-card .sub { font-size: 13px; line-height: 1.5; }
    .auth-form { display: grid; gap: 10px; }
    .auth-card .auth-form > label, .auth-card .password-reset-panel > label { color:#344054; font-size:12px; font-weight:var(--weight-semibold); }
    .auth-card .auth-form input, .auth-card .auth-form select, .auth-card .auth-form textarea, .auth-card .password-reset-panel input { min-height:44px; border-color:#cfd9df; background:#f9fbfc; }
    .auth-card .auth-form input:focus, .auth-card .auth-form select:focus, .auth-card .auth-form textarea:focus, .auth-card .password-reset-panel input:focus { border-color:#5ca49d; background:#fff; box-shadow:0 0 0 3px rgba(8,118,108,.1); outline:0; }
    .auth-card .btn.primary { border-color:#08766c; background:#08766c; }
    .auth-card .btn.primary:hover { border-color:#065e57; background:#065e57; }
    .auth-card .auth-link-btn { color:#08766c; }
    .password-field { position: relative; display: grid; gap: 5px; }
    .password-field > input { padding-right: 44px; }
    .password-toggle { position: absolute; right: 8px; bottom: 7px; width: 32px; height: 32px; display: grid; place-items: center; border: 0; border-radius: 7px; background: transparent; color: #667085; cursor: pointer; }
    .password-toggle:hover, .password-toggle:focus-visible { background: #eef4fb; color: #08766c; }
    .password-toggle svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
    .auth-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
    #loginForm .auth-form-actions { display:grid; grid-template-columns:1fr; gap:8px; }
    #loginForm .auth-form-actions .btn.primary { width:100%; min-height:44px; }
    #loginForm .auth-form-actions .auth-link-btn { justify-self:end; order:-1; }
    .auth-link-btn { padding: 4px 0; border: 0; background: transparent; color: #08766c; font-size: 12px; font-weight:var(--weight-semibold); cursor: pointer; }
    .auth-link-btn:hover, .auth-link-btn:focus-visible { text-decoration: underline; }
    .password-reset-panel { display: grid; gap: 10px; padding: 12px; border: 1px solid #dfe6ee; border-radius: 9px; background: #f8fafc; }
    .password-reset-panel h3 { margin: 0; font-size: 14px; }
    .password-reset-panel p { margin: 0; color: #667085; font-size: 12px; line-height: 1.5; }
    .password-reset-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
    .password-reset-status { min-height: 18px; color: #667085; font-size: 12px; line-height: 1.45; }
    .password-reset-status.success { color: #087443; }
    .password-reset-status.error { color: #b42318; }
    .auth-error { min-height: 20px; color: var(--red); font-size: 13px; font-weight:var(--weight-semibold); }
    .auth-footnote { color: #667085; font-size: 12px; line-height: 1.55; }
    .auth-mode-switch { display:grid; grid-template-columns:1fr 1fr; gap:4px; padding:4px; border:1px solid #dfe6ee; border-radius:9px; background:#f5f7fa; }
    .auth-mode-switch button { min-height:36px; border-radius:7px; background:transparent; color:#667085; font-size:13px; font-weight:var(--weight-medium); }
    .auth-mode-switch button.active { background:#fff; color:#08766c; box-shadow:0 2px 7px rgba(31,41,51,.1); }
    @media (max-width:980px) {
    .auth-screen { padding:16px; background:#f2f5f4; }
    .auth-layout, .auth-screen.register-mode .auth-layout { width:min(720px,100%); min-height:calc(100vh - 32px); grid-template-columns:1fr; }
    .auth-hero { display:none; }
    .auth-card, .auth-screen.register-mode .auth-card { min-height:calc(100vh - 32px); max-height:none; overflow:visible; align-content:center; padding:28px clamp(22px,6vw,48px); border:1px solid #e1e7ea; border-radius:10px; }
    .auth-screen.register-mode .auth-card { align-content:start; }
    }
    @media (max-width:1100px) and (min-width:981px) {
    .auth-title h2 { font-size:29px; }
    }
    .auth-screen.register-mode .auth-title h2 { white-space:normal; }
    .auth-register-note { padding:9px 10px; border:1px solid #d8eadf; border-radius:8px; background:#f0faf3; color:#176b48; font-size:12px; font-weight:var(--weight-semibold); line-height:1.55; }
    .register-journey { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; padding:2px 0 4px; }
    .register-journey::before { content:""; position:absolute; top:15px; left:16%; right:16%; height:1px; background:#dce4ec; }
    .register-journey span { position:relative; z-index:1; display:grid; justify-items:center; gap:4px; color:#98a2b3; font-size:9px; font-weight:var(--weight-semibold); text-align:center; }
    .register-journey b { width:28px; height:28px; display:grid; place-items:center; border:1px solid #dce4ec; border-radius:50%; background:#fff; color:#667085; font-size:11px; }
    .register-journey span:first-child b { border-color:#08766c; background:#08766c; color:#fff; }
    .register-section-head { display:flex; align-items:center; gap:9px; min-height:36px; padding-top:4px; border-top:1px solid #edf1f5; }
    .register-section-head b { width:26px; height:26px; flex:0 0 auto; display:grid; place-items:center; border-radius:7px; background:#edf4fb; color:#08766c; font-size:10px; }
    .register-section-head span { min-width:0; display:grid; gap:1px; color:#1f2937; font-size:13px; font-weight:var(--weight-medium); }
    .register-section-head small { color:#98a2b3; font-size:9px; font-weight:var(--weight-medium); }
    .register-basic-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .register-driver-fields { display:grid; gap:10px; padding:11px; border:1px solid #cfe5da; border-radius:8px; background:#f7fcf9; }
    .register-driver-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
    .register-driver-head > span { min-width:0; display:grid; gap:2px; }
    .register-driver-head strong { color:#176b48; font-size:13px; }
    .register-driver-head small { color:#6b7f73; font-size:9px; line-height:1.4; }
    .driver-upload-progress { flex:0 0 auto; display:grid; justify-items:end; gap:4px; color:#176b48; font-size:10px; font-weight:var(--weight-medium); }
    .driver-upload-progress i { width:64px; height:4px; overflow:hidden; border-radius:99px; background:#dcece3; }
    .driver-upload-progress i::after { content:""; display:block; width:var(--progress,0%); height:100%; border-radius:inherit; background:#149064; transition:width .2s ease; }
    .driver-document-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .driver-document-upload { position:relative; min-width:0; min-height:126px; display:grid; grid-template-rows:72px minmax(38px,auto); gap:7px; padding:8px; overflow:hidden; border:1px solid #d7e1ea; border-radius:8px; background:#fff; color:#344054; cursor:pointer; transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease; }
    .driver-document-upload:active { transform:scale(.985); }
    .driver-document-upload input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
    .driver-document-visual { position:relative; min-width:0; display:grid; place-items:center; overflow:hidden; border-radius:6px; background:#f3f6f9; }
    .driver-document-outline { position:relative; width:84px; height:52px; display:grid; grid-template-columns:24px minmax(0,1fr); align-items:center; gap:7px; padding:7px; border:1.5px solid #aebdcb; border-radius:6px; color:#7790a5; background:#fff; box-sizing:border-box; }
    .driver-document-outline::before { content:""; width:22px; height:26px; border-radius:50% 50% 42% 42%; background:linear-gradient(#dbe4eb 0 42%,transparent 43%),linear-gradient(135deg,#edf2f6 50%,#dbe4eb 51%); }
    .driver-document-outline::after { content:""; height:24px; background:repeating-linear-gradient(to bottom,#c6d2dc 0 2px,transparent 2px 7px); }
    .driver-document-upload[data-document-kind^="license"] .driver-document-outline { grid-template-columns:1fr; }
    .driver-document-upload[data-document-kind^="license"] .driver-document-outline::before { width:28px; height:12px; border-radius:2px; background:#dbe4eb; }
    .driver-document-upload[data-document-kind^="license"] .driver-document-outline::after { position:absolute; left:8px; right:8px; bottom:7px; height:15px; }
    .driver-document-upload[data-document-kind="selfie"] { grid-column:1 / -1; min-height:88px; grid-template-columns:82px minmax(0,1fr); grid-template-rows:1fr; align-items:center; }
    .driver-document-upload[data-document-kind="selfie"] .driver-document-visual { height:70px; border-radius:7px; }
    .driver-document-upload[data-document-kind="selfie"] .driver-document-outline { width:48px; height:48px; display:grid; grid-template-columns:1fr; padding:0; border-radius:50%; }
    .driver-document-upload[data-document-kind="selfie"] .driver-document-outline::before { width:100%; height:100%; border-radius:50%; background:radial-gradient(circle at 50% 35%,#d1dce5 0 18%,transparent 19%),radial-gradient(circle at 50% 90%,#d1dce5 0 38%,transparent 39%); }
    .driver-document-upload[data-document-kind="selfie"] .driver-document-outline::after { display:none; }
    .driver-document-upload[data-document-kind="selfie"] .driver-camera-badge { left:auto; right:4px; bottom:4px; margin-left:0; }
    .driver-document-corner { position:absolute; right:5px; bottom:4px; min-width:26px; padding:2px 4px; border-radius:4px; background:#e7eef4; color:#637b90; font-size:8px; font-weight:var(--weight-medium); text-align:center; }
    .driver-camera-badge { position:absolute; left:50%; bottom:5px; width:23px; height:23px; display:grid; place-items:center; margin-left:28px; border:2px solid #fff; border-radius:50%; background:#08766c; color:#fff; box-shadow:0 2px 5px rgba(8,118,108,.24); }
    .driver-camera-badge svg { width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
    .driver-document-copy { min-width:0; display:grid; align-content:center; justify-items:center; gap:2px; text-align:center; }
    .driver-document-copy b { max-width:100%; color:#344054; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .driver-document-copy small { max-width:100%; color:#8491a3; font-size:9px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .driver-document-upload[data-document-kind="selfie"] .driver-document-copy { justify-items:start; text-align:left; }
    .driver-document-upload[data-document-kind="selfie"] .driver-document-copy small { overflow:visible; text-overflow:clip; white-space:normal; line-height:1.35; }
    .driver-document-required { position:absolute; top:7px; left:7px; z-index:3; min-height:18px; display:inline-flex; align-items:center; padding:0 5px; border-radius:4px; background:rgba(255,255,255,.94); color:#667085; font-size:8px; font-weight:var(--weight-medium); }
    .driver-document-state { position:absolute; top:7px; right:7px; z-index:4; width:22px; height:22px; display:grid; place-items:center; border-radius:50%; background:#fff; color:#08766c; box-shadow:0 2px 6px rgba(31,41,51,.14); }
    .driver-document-state::before { content:"+"; font-size:18px; font-weight:500; line-height:1; }
    .driver-document-preview { position:absolute; inset:0; z-index:2; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .18s ease; }
    .driver-document-upload.ready { border-color:#4ca27d; box-shadow:0 0 0 2px rgba(20,144,100,.1); }
    .driver-document-upload.ready .driver-document-preview { opacity:1; }
    .driver-document-upload.ready .driver-document-state { background:#149064; color:#fff; }
    .driver-document-upload.ready .driver-document-state::before { content:"✓"; font-size:13px; font-weight:var(--weight-medium); }
    .driver-document-upload.ready .driver-document-copy small { color:#087443; font-weight:var(--weight-semibold); }
    .driver-verification-note { padding:8px 9px; border-radius:7px; background:#edf3f8; color:#475467; font-size:11px; line-height:1.5; }
    .driver-verification-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .driver-verification-review { display:grid; gap:8px; margin-top:8px; padding-top:9px; border-top:1px solid #d8eadf; }
    .driver-document-links { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; }
    .driver-document-link { min-width:0; min-height:36px; display:grid; place-items:center; padding:6px; border:1px solid #d7e1ea; border-radius:7px; background:#fff; color:#08766c; font-size:10px; font-weight:var(--weight-semibold); text-decoration:none; text-align:center; }
    .driver-document-link.missing { color:#98a2b3; pointer-events:none; }
    .auth-register-status { min-height:20px; color:#667085; font-size:12px; font-weight:var(--weight-semibold); line-height:1.45; }
    .auth-register-status.success { padding:9px 10px; border:1px solid #a8dbc3; border-radius:8px; background:#edf9f3; color:#087443; }
    .auth-register-status.error { color:#b42318; }
    .register-primary-method { display:grid; grid-template-columns:minmax(0,1fr) 180px; align-items:center; gap:12px; padding:12px; border:1px solid #badbd7; border-radius:8px; background:#f6faff; }
    .register-primary-method strong { display:block; color:#0a635b; font-size:15px; font-weight:var(--weight-medium); }
    .register-primary-method small { display:block; margin-top:3px; color:#667085; font-size:11px; line-height:1.45; }
    .social-register { display:grid; gap:9px; padding:11px; border:1px solid #dce4ec; border-radius:8px; background:#f8fafc; }
    .social-register-secondary { gap:0; padding:0; border-style:dashed; background:#fff; }
    .social-register-secondary summary { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:38px; padding:0 11px; cursor:pointer; color:#475467; font-size:12px; font-weight:var(--weight-medium); list-style:none; }
    .social-register-secondary summary::-webkit-details-marker { display:none; }
    .social-register-secondary summary small { color:#98a2b3; font-size:10px; font-weight:var(--weight-medium); }
    .social-register-secondary[open] summary { border-bottom:1px solid #edf1f5; }
    .social-register-secondary .social-register-actions { padding:10px; }
    .social-register-head { display:flex; align-items:flex-end; justify-content:space-between; gap:10px; }
    .social-register-head strong { color:#27364a; font-size:13px; }
    .social-register-head span { color:#8491a3; font-size:10px; }
    .social-register-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
    .social-register-btn { min-width:0; min-height:42px; display:flex; align-items:center; justify-content:center; gap:7px; padding:0 10px; border:1px solid #d7e1ea; border-radius:8px; background:#fff; color:#344054; font-size:12px; font-weight:var(--weight-medium); }
    .social-register-btn svg { width:20px; height:20px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
    .social-register-btn.phone { color:#0a635b; background:#f5f9ff; }
    .social-register-btn.wechat { border-color:#b8dfcb; color:#087443; background:#f4fbf7; }
    .social-register-btn.alipay { border-color:#c8dcf7; color:#1769e0; background:#f5f9ff; }
    .social-register-btn.available { box-shadow:0 0 0 2px rgba(20,144,100,.08); }
    .social-register-btn.active { border-color:#08766c; background:#edf6f4; color:#0a635b; box-shadow:0 0 0 2px rgba(8,118,108,.1); }
    .social-register-btn.wechat.active { border-color:#149064; background:#edf9f3; color:#087443; box-shadow:0 0 0 2px rgba(20,144,100,.1); }
    .social-register-btn.alipay.active { border-color:#1769e0; background:#edf5ff; color:#1769e0; }
    .method-short { display:none; }
    .social-register-status { min-height:16px; color:#667085; font-size:10px; line-height:1.45; }
    .register-sms-field { grid-column:1 / -1; }
    .register-sms-row { display:grid; grid-template-columns:minmax(0,1fr) 116px; gap:7px; }
    .register-sms-row input { min-width:0; }
    .register-sms-row button { min-width:0; white-space:nowrap; }
    .register-sms-hint { display:block; margin-top:5px; color:#667085; font-size:10px; line-height:1.45; }
    .register-sms-hint.success { color:#087443; }
    .register-sms-hint.error { color:#b42318; }
    .register-divider { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:8px; color:#98a2b3; font-size:10px; }
    .register-divider::before, .register-divider::after { content:""; height:1px; background:#e5eaf0; }
    .register-label-line { display:flex; align-items:center; gap:6px; }
    .register-account-field { grid-column:1 / -1; }
    .register-account-option { grid-column:1 / -1; align-items:flex-start; padding:8px 9px; border:1px solid #e3eaf2; border-radius:7px; background:#f8fafc; color:#475467; font-size:11px; font-weight:var(--weight-semibold); line-height:1.45; }
    .register-account-option input { margin-top:2px; }
    #registerUsername:disabled { background:#f8fafc; color:#667085; -webkit-text-fill-color:#667085; }
    @media (max-width: 560px) {
    .register-primary-method { grid-template-columns:1fr; }
    .register-primary-method .social-register-btn { width:100%; }
    .social-register-secondary summary { min-height:0; align-items:flex-start; flex-direction:column; gap:2px; padding:9px 11px; }
    }
    .field-help { width:19px; height:19px; display:grid; place-items:center; padding:0; border:1px solid #cfd8e3; border-radius:50%; background:#fff; color:#667085; font-size:11px; font-weight:var(--weight-medium); }
    .register-email-field { grid-column:1 / -1; }
    .email-quick-field { display:grid; grid-template-columns:minmax(0,1fr) 132px; gap:7px; }
    .email-quick-field select { min-width:0; }
    .register-email-help { display:block; margin-top:5px; padding:7px 8px; border-radius:6px; background:#f2f6fa; color:#667085; font-size:10px; line-height:1.5; }
    .oauth-profile-note { display:flex; align-items:center; gap:7px; min-height:32px; padding:7px 8px; border-radius:7px; background:#edf9f3; color:#087443; font-size:11px; font-weight:var(--weight-semibold); }
    .oauth-profile-note img { width:26px; height:26px; flex:0 0 auto; border-radius:50%; object-fit:cover; }
    .driver-real-name-field { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px; border:1px solid #d8e6df; border-radius:7px; background:#fff; }
    .driver-real-name-field span { display:grid; gap:2px; }
    .driver-real-name-field small { color:#667085; font-size:10px; line-height:1.45; }
    .driver-real-name-field > b { color:#087443; font-size:13px; white-space:nowrap; }
    .driver-ocr-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
    .driver-ocr-summary span { display:grid; gap:2px; min-width:0; padding:8px; border:1px solid #d8e6df; border-radius:7px; background:#fff; }
    .driver-ocr-summary small { color:#667085; font-size:10px; }
    .driver-ocr-summary b { color:#344054; font-size:12px; overflow-wrap:anywhere; }
    .partner-channel-section { display:grid; gap:8px; }
    .partner-channel-title { display:flex; align-items:flex-end; justify-content:space-between; gap:8px; color:#344054; font-size:12px; font-weight:var(--weight-medium); }
    .partner-channel-title span { color:#98a2b3; font-size:10px; font-weight:var(--weight-medium); }
    .partner-channel-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
    .partner-channel-option { min-width:0; min-height:54px; display:grid; align-content:center; gap:3px; padding:8px; border:1px solid #d7e1ea; border-radius:8px; background:#fff; color:#344054; text-align:left; cursor:pointer; }
    .partner-channel-option b { font-size:11px; }
    .partner-channel-option span { color:#667085; font-size:9px; line-height:1.35; }
    .partner-channel-option.active { border-color:#4b9b93; background:#eef7f5; color:#0a635b; box-shadow:0 0 0 2px rgba(8,118,108,.08); }
    .register-role-hint { display:flex; align-items:center; gap:6px; padding:8px 9px; border-radius:7px; background:#f2f6fa; color:#475467; font-size:11px; line-height:1.5; }
    .register-role-hint strong { flex:0 0 auto; color:#344054; }
    .register-role-hint span { min-width:0; overflow-wrap:anywhere; }
    .role-access-request { display:flex; align-items:flex-start; gap:8px; padding:9px 10px; border:1px solid #d8e3ef; border-radius:7px; background:#f7faff; color:#344054; cursor:pointer; }
    .role-access-request input { flex:0 0 18px; width:18px; height:18px; min-height:18px; margin:2px 0 0; padding:0; }
    .role-access-request span { min-width:0; display:grid; gap:2px; }
    .role-access-title { display:flex !important; align-items:center; gap:6px; }
    .role-access-request b { font-size:11px; }
    .role-access-request small { color:#667085; font-size:10px; font-weight:var(--weight-medium); line-height:1.45; }
    .prospect-access-help { margin-top:4px; padding:8px 9px; border:1px solid #dbe5ef; border-radius:7px; background:#fff; color:#475467 !important; font-weight:var(--weight-medium) !important; line-height:1.6 !important; }
    .prospect-access-help b { display:block; margin-bottom:2px; color:#0a635b; }
    .partner-application-fields { display:grid; gap:8px; padding:10px; border:1px solid #dce4ec; border-radius:8px; background:#f8fafc; }
    .partner-license-upload { min-height:68px; display:grid; grid-template-columns:36px minmax(0,1fr) auto; align-items:center; gap:9px; padding:9px; border:1px solid #d7e1ea; border-radius:8px; background:#fff; color:#344054; cursor:pointer; }
    .partner-license-symbol { width:34px; height:34px; display:grid; place-items:center; border-radius:8px; background:#edf4fb; color:#08766c; }
    .partner-license-symbol svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
    .partner-license-upload input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
    .partner-license-upload span { min-width:0; display:grid; gap:2px; }
    .partner-license-upload b { font-size:12px; }
    .partner-license-upload small { overflow:hidden; color:#667085; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
    .partner-license-upload em { color:#08766c; font-size:10px; font-style:normal; font-weight:var(--weight-medium); }
    .partner-license-upload.ready { border-color:#67b892; background:#eef9f3; }
    .partner-benefit-panel { display:grid; gap:7px; padding:9px; border:1px solid #d8eadf; border-radius:8px; background:#f1faf5; }
    .partner-benefit-panel strong { color:#176b48; font-size:12px; }
    .partner-benefit-list { display:grid; gap:5px; }
    .partner-benefit-list span { min-height:26px; display:flex; align-items:center; padding:5px 7px; border-radius:7px; background:#fff; color:#2f5d49; font-size:10px; font-weight:var(--weight-semibold); line-height:1.35; }
    .partner-agreement { padding:9px 10px; border:1px solid #dce4ec; border-radius:8px; background:#fff; }
    .partner-agreement summary { color:#344054; font-size:11px; font-weight:var(--weight-medium); cursor:pointer; }
    .partner-agreement-body { display:grid; gap:5px; padding-top:8px; color:#667085; font-size:10px; line-height:1.55; }
    .partner-agreement-check { display:flex; align-items:flex-start; gap:7px; color:#344054; font-size:11px; font-weight:var(--weight-semibold); line-height:1.5; }
    .partner-agreement-check input { flex:0 0 18px; width:18px; height:18px; min-height:18px; margin-top:2px; padding:0; }
    .legal-inline-link { display:inline; padding:0; border:0; background:transparent; color:#08766c; font:inherit; font-weight:var(--weight-medium); line-height:inherit; cursor:pointer; }
    .auth-legal-links { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:4px 10px; margin-top:10px; color:#667085; font-size:10px; line-height:1.5; text-align:center; }
    .register-submit { min-height:46px; display:flex; align-items:center; justify-content:center; gap:8px; font-size:14px; }
    .register-submit::after { content:"→"; font-size:18px; font-weight:500; }
    body.owner-mini-driver-registration { background:#f5f7f8; }
    body.owner-mini-driver-registration .auth-screen { place-items:start center; padding:18px 14px 32px; background:#f5f7f8; }
    body.owner-mini-driver-registration .auth-layout { width:min(680px,100%); grid-template-columns:1fr; }
    body.owner-mini-driver-registration .auth-hero { display:none; }
    body.owner-mini-driver-registration .auth-card { min-height:0; align-content:start; gap:16px; padding:22px 24px 26px; border-color:#e5eaec; border-radius:10px; box-shadow:0 2px 10px rgba(23,40,48,.045); }
    body.owner-mini-driver-registration .brand-mark { background:#143f46; box-shadow:none; }
    body.owner-mini-driver-registration .auth-brand h1 { color:#18242b; font-size:25px; }
    body.owner-mini-driver-registration .auth-brand strong, body.owner-mini-driver-registration .auth-card .sub { color:#73808a; }
    body.owner-mini-driver-registration .auth-mode-switch { border-color:#e0e6e8; background:#edf1f2; }
    body.owner-mini-driver-registration .auth-mode-switch button.active { color:#08766c; box-shadow:0 1px 5px rgba(23,33,43,.08); }
    body.owner-mini-driver-registration .register-primary-method { border-color:#b9ded9; background:#edf8f5; }
    body.owner-mini-driver-registration .register-primary-method strong, body.owner-mini-driver-registration .auth-link-btn, body.owner-mini-driver-registration .legal-inline-link { color:#08766c; }
    body.owner-mini-driver-registration .social-register-btn.phone.active { border-color:#08766c; background:#08766c; color:#fff; }
    body.owner-mini-driver-registration .auth-register-note { border-color:#c8e4df; background:#f0f8f6; color:#356a64; }
    body.owner-mini-driver-registration .register-section-head b { background:#e8f5f2; color:#08766c; }
    body.owner-mini-driver-registration .register-section-head span { color:#26343c; }
    body.owner-mini-driver-registration .register-driver-fields { border-color:#c8e4df; background:#f7fbfa; }
    body.owner-mini-driver-registration .register-driver-head strong, body.owner-mini-driver-registration .driver-upload-progress { color:#08766c; }
    body.owner-mini-driver-registration .driver-upload-progress i::after { background:#08766c; }
    body.owner-mini-driver-registration .driver-document-upload.ready { border-color:#7bc4bb; background:#eef8f6; }
    body.owner-mini-driver-registration .register-role-field, body.owner-mini-driver-registration .partner-channel-section, body.owner-mini-driver-registration .register-role-hint { display:none; }
    body.owner-mini-driver-registration input:focus, body.owner-mini-driver-registration select:focus, body.owner-mini-driver-registration textarea:focus { border-color:#58a99f; box-shadow:0 0 0 3px rgba(8,118,108,.1); outline:0; }
    body.owner-mini-driver-registration .btn.primary, body.owner-mini-driver-registration .register-submit { border-color:#08766c; background:#08766c; color:#fff; }
    body.owner-mini-driver-registration .btn.primary:hover, body.owner-mini-driver-registration .register-submit:hover { border-color:#076b62; background:#076b62; }
    body.owner-mini-driver-registration .auth-footnote { color:#73808a; text-align:center; }
    @media (max-width:760px) {
    body.owner-mini-driver-registration .auth-screen { padding:0; }
    body.owner-mini-driver-registration .auth-card { min-height:100vh; padding:20px 16px calc(28px + env(safe-area-inset-bottom)); border:0; border-radius:0; box-shadow:none; }
    body.owner-mini-driver-registration .auth-brand h1 { font-size:24px; }
    body.owner-mini-driver-registration .register-primary-method { grid-template-columns:minmax(0,1fr) 112px; padding:11px; }
    body.owner-mini-driver-registration .register-primary-method .social-register-btn { width:100%; }
    }
    @media (min-width:761px) {
    #registerDriverFields .driver-document-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
    #registerDriverFields .driver-document-upload[data-document-kind="selfie"] { grid-column:1 / -1; }
    }
    @media (max-width: 760px) {
    html, body { overflow-x:hidden; }
    .auth-screen { align-items: start; padding: 14px; }
    .auth-layout { grid-template-columns: 1fr; gap: 12px; }
    .auth-hero { min-height: 260px; padding: 18px; }
    .auth-title h2 { font-size: 26px; }
    .auth-title p { font-size: 13px; }
    .auth-status-grid { grid-template-columns: 1fr; }
    .auth-card { padding: 18px; }
    .driver-document-grid, .driver-verification-fields { grid-template-columns:1fr 1fr; }
    .driver-document-links { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .partner-channel-options { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .register-basic-grid { grid-template-columns:1fr; }
    .social-register-actions { gap:6px; }
    .social-register-btn { min-height:40px; gap:5px; padding:0 6px; font-size:11px; }
    .social-register-btn svg { width:18px; height:18px; }
    .method-long { display:none; }
    .method-short { display:inline; }
    .register-sms-row { grid-template-columns:minmax(0,1fr) 108px; }
    .partner-channel-option { min-height:62px; padding:7px; }
    .driver-document-upload { min-height:118px; }
    .driver-document-upload[data-document-kind="selfie"] { min-height:86px; }
    }
    h1 { margin: 0; font-size: 20px; }
    .sub { margin-top: 4px; color: var(--muted); font-size: 12px; }
    .btn { min-height: 40px; padding: 0 12px; border-radius: 8px; border: 1px solid var(--line); background: #eef2f6; color: var(--text); font-weight:var(--weight-semibold); display: inline-flex; align-items: center; justify-content: center; gap: 6px; white-space: nowrap; }
    .btn.primary { color: #fff; background: var(--blue); border-color: var(--blue); }
    .field-help-btn { min-width: 24px; min-height: 24px; width: 24px; padding: 0; border: 1px solid #d0d5dd; border-radius: 999px; background: #fff; color: #667085; font-size: 11px; font-weight:var(--weight-medium); line-height: 1; }
    .btn.small { min-height: 32px; padding: 0 9px; font-size: 12px; }
    .appointment-window-label .field-help { flex:0 0 19px; }
    label { display: grid; gap: 6px; color: #3d4a5c; font-size: 13px; font-weight:var(--weight-semibold); }
    input, select, textarea { width: 100%; min-width: 0; max-width: 100%; min-height: 40px; border: 1px solid var(--line); border-radius: 8px; padding: 9px 10px; color: var(--text); background: #fff; font-size: 16px; font-weight: 400; }
    textarea { min-height: 82px; resize: vertical; line-height: 1.5; }
    input:focus, select:focus, textarea:focus, button:focus { outline: 3px solid rgba(8,118,108,.22); outline-offset: 1px; }
    .driver-review-toggle b .field-help { flex:0 0 19px; }
    .driver-subsidy-preview { padding:9px 10px; border:1px dashed #b9cbe0; border-radius:7px; background:#f5f9ff; color:#344054; font-size:11px; line-height:1.5; }
    .renewal-identity-panel .driver-document-upload { min-height:126px; }
    details { border: 1px solid var(--line); border-radius: 8px; background: #fbfcfe; overflow: hidden; }
    summary { min-height: 42px; display: flex; align-items: center; justify-content: space-between; padding: 0 11px; color: #344054; font-size: 13px; font-weight:var(--weight-medium); cursor: pointer; list-style: none; }
    summary::-webkit-details-marker { display: none; }
    summary::after { content: "展开"; color: var(--blue); font-size: 12px; }
    details[open] summary { border-bottom: 1px solid var(--line); }
    details[open] summary::after { content: "收起"; }
    .hidden { display: none !important; }
    .toast { position: fixed; left: 50%; bottom: 18px; z-index: 40; width: min(420px, calc(100vw - 28px)); padding: 12px 13px; border-radius: 9px; background: #1f2933; color: #fff; box-shadow: 0 14px 32px rgba(31,41,51,.24); transform: translate(-50%, 18px); opacity: 0; pointer-events: none; transition: 180ms ease; font-size: 14px; }
    .toast.show { transform: translate(-50%, 0); opacity: 1; }
    .auth-screen:not(.hidden) ~ .mobile-bottom-nav { display:none; }
    @media (max-width: 760px) {
    body { padding-bottom: 68px; }
    .toast { bottom: 84px; }
    }
    .section-title-label .field-help { flex:0 0 auto; }
    .my-driver-apply .register-driver-head strong { color:#101828; }
    .my-driver-apply .driver-document-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .legal-doc-modal { position:fixed; inset:0; z-index:96; display:grid; place-items:center; padding:18px; background:rgba(16,24,40,.42); }
    .legal-doc-sheet { width:min(680px,100%); max-height:min(88vh,820px); display:grid; grid-template-rows:auto minmax(0,1fr); overflow:hidden; border:1px solid #dfe5ec; border-radius:8px; background:#fff; box-shadow:0 20px 52px rgba(16,24,40,.24); }
    .legal-doc-head { min-height:56px; display:grid; grid-template-columns:minmax(0,1fr) 36px; align-items:center; gap:10px; padding:10px 14px; border-bottom:1px solid #e4e9ef; }
    .legal-doc-head strong { color:#101828; font-size:16px; }
    .legal-doc-close { width:34px; height:34px; display:grid; place-items:center; padding:0; border:0; border-radius:7px; background:#f2f4f7; color:#475467; font-size:20px; cursor:pointer; }
    .legal-doc-body { overflow:auto; padding:16px; color:#475467; font-size:13px; line-height:1.75; }
    .legal-doc-version { margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid #edf1f5; color:#667085; font-size:11px; }
    .legal-doc-section { margin-bottom:16px; }
    .legal-doc-section:last-child { margin-bottom:0; }
    .legal-doc-section h4 { margin:0 0 6px; color:#1d2939; font-size:14px; }
    .legal-doc-section p { margin:5px 0; }
    @media(max-width:560px){
    .legal-doc-modal {place-items:end center;padding:10px 0 0}
    .legal-doc-sheet {max-height:92vh;border-bottom:0;border-radius:8px 8px 0 0}
    .legal-doc-body {padding:14px 16px max(20px,env(safe-area-inset-bottom))}
    }
    .inline-check { min-height: 38px; display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid #dbe6f2; border-radius: 9px; background: #f8fbff; color: #344054; font-size: 13px; font-weight:var(--weight-medium); }
    .inline-check input { width: 18px; min-height: 18px; padding: 0; accent-color: var(--blue); }
    @media (max-width: 340px) {
    .partner-channel-option { min-height:46px; justify-items:center; text-align:center; }
    .partner-channel-option span, .partner-channel-title span { display:none; }
    #registerDriverFields .driver-verification-fields { grid-template-columns:1fr; }
    .social-register-actions { grid-template-columns:1fr; }
    .email-quick-field { grid-template-columns:1fr; }
    }

    /* Mobile pass: keep the work surface visible and move account actions into 我的. */
    @media (max-width: 760px) {
    .auth-screen { padding:10px; }
    .auth-hero { display:none; }
    .auth-layout { display:block; }
    .auth-card { min-height:calc(100vh - 20px); display:grid; align-content:center; padding:22px 18px; border-radius:12px; }
    .auth-screen.register-mode .auth-card { padding:22px 18px; }
    .partner-license-upload small { overflow:visible; text-overflow:clip; white-space:normal; line-height:1.4; }
    .email-quick-field { grid-template-columns:minmax(0,1fr) 112px; }
    }
    @media (max-width:340px) {
    .social-register-actions, .email-quick-field { grid-template-columns:1fr; }
    }

    @media (max-width:760px) {
    body { background:#f2f5f4; }
    body { padding-bottom:66px; }
    }

    @media (max-width:760px) {
    body { --mobile-nav-height:62px; min-width:0; padding-bottom:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom)); background:#f5f6f8; }
    }
    :root {
      --bg:#f2f5f4;
      --surface:#fff;
      --surface-subtle:#f8fbfa;
      --line:#d3dddb;
      --line-soft:#e4ebe9;
      --text:#17212b;
      --text-strong:#101828;
      --muted:#526173;
      --blue:#08766c;
      --blue-soft:#edf6f4;
      --green:#087443;
      --green-soft:#edf8f2;
      --amber:#985807;
      --amber-soft:#fff5e5;
      --red:#b42318;
      --red-soft:#fff1f0;
      --radius:8px;
    }
    body { background:var(--bg); color:var(--text); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
    h1, h2, h3, strong, b { letter-spacing:0; }
    .sub { color:var(--muted); }
    .btn {
      border-radius:var(--radius);
      letter-spacing:0;
      box-shadow:none;
      transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .12s ease;
    }
    .btn { border-color:var(--line); background:#fff; color:#344054; }
    .btn:hover { border-color:#bdc8d4; background:var(--surface-subtle); }
    .btn:active { transform:translateY(1px); }
    .btn.primary { border-color:var(--blue); background:var(--blue); color:#fff; }
    .btn.primary:hover { border-color:#065e57; background:#065e57; }
    .btn:disabled { border-color:#e4e7ec; background:#f2f4f7; color:#98a2b3; opacity:1; cursor:not-allowed; transform:none; }
    input, select, textarea { border-color:var(--line); border-radius:var(--radius); box-shadow:none; }
    input:focus, select:focus, textarea:focus { border-color:#69aaa3; outline:0; box-shadow:0 0 0 3px rgba(8,118,108,.12); }
    button:focus-visible, summary:focus-visible { outline:2px solid rgba(8,118,108,.62); outline-offset:2px; }
    .register-section-head small, .register-driver-head small, .driver-document-copy small { font-size:11px; }
    .register-journey span, .driver-document-required, .driver-document-corner { font-size:10px; }

    @media (min-width:761px) {
    input, select, textarea { min-height:38px; font-size:14px; }
    }

    @media (max-width:760px) {
    body { background:#f2f5f4; }
    }
    .register-section-head span { font-weight:var(--weight-semibold); }
    .auth-status strong, .brand-mark { font-weight:var(--weight-strong); }

    /* Mobile clarity pass: operational information stays dark on a true white work surface. */
    @media (max-width:760px) {
    html, body { background:#fff; }
    body { color:#17212b; }
    .sub { color:#475467; }
    }
/* Workbench overlays stay inert until their full stylesheet is loaded. */
.pull-refresh-indicator, .action-notice, .photo-viewer { display:none; }
#loginError[data-tone="pending"] { color:var(--muted); }
#loginForm input[aria-invalid="true"] { border-color:var(--red); }
#loginSubmitBtn[aria-busy="true"] { border-color:var(--blue); background:var(--blue); color:#fff; cursor:wait; }
#loginSubmitBtn[aria-busy="true"]::before { content:""; display:inline-block; width:12px; height:12px; margin-right:8px; border:2px solid #ffffff70; border-top-color:#fff; border-radius:50%; vertical-align:-2px; animation:auth-spin .8s linear infinite; }
@keyframes auth-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { #loginSubmitBtn[aria-busy="true"]::before { animation:none; } }
