/* =========================================================
   Base
   ========================================================= */

   :root{
    --bg: #f6f7fb;
    --card: #ffffff;
    --text: #0b1220;
    --muted: #6b7280;
    --border: rgba(15,23,42,.10);
  
    --shop-accent: #005516;
    --shop-black: #000000;
    --shop-white: #ffffff;
  
    --bottom-nav-h: 86px;
  }
  
  *{
    box-sizing:border-box;
  }
  
  html,
  body{
    height:100%;
    width:100%;
  }
  
  body{
    margin:0;
    font-family:
      ui-sans-serif,
      system-ui,
      -apple-system,
      "Segoe UI",
      Roboto,
      "Helvetica Neue",
      Arial,
      "Noto Sans JP";
  
    background:#141414;
    color:#fff;
  
    overflow-x:hidden;
  }

  body.is-shop-layout{
    --shop-theme-bg: #ffffff;
    --shop-theme-surface: #ffffff;
    --shop-theme-surface-muted: #e9e9e9;
    --shop-theme-text: #000000;
    --shop-theme-muted: #404040;
    --shop-theme-accent-text: #ffffff;
    --shop-page-gutter: 28px;
    --shop-page-bottom-space: 40px;

    background:var(--shop-theme-bg);
    color:var(--shop-theme-text);
  }
  
  /* =========================================================
     Shell
     ========================================================= */
  
  .mobile-shell{
    width:100%;
    min-height:100dvh;
  }
  
  .mobile-shell--shop{
    width:100%;
    max-width:430px;
    margin:0 auto;
    background:var(--shop-theme-bg, #fff);
    color:var(--shop-theme-text, #000);
  }
  
  .mobile-shell--admin{
    width:100%;
    max-width:100%;
    margin:0 auto;
    background:#f6f7fb;
  }
  
  .app{
    width:100%;
    max-width:430px;
    margin:0 auto;
  }
  
  .app__container{
    width:100%;
    max-width:100%;
    padding-left:16px;
    padding-right:16px;
  }

  .mobile-shell--shop .app__container{
    padding-left:var(--shop-page-gutter, 28px);
    padding-right:var(--shop-page-gutter, 28px);
  }
  
  /* =========================================================
     Header
     ========================================================= */
  
  .app-header{
    position:sticky;
    top:0;
    z-index:100;
    padding:12px 14px;
  }
  
  .app-header--shop{
    padding-left:var(--shop-page-gutter, 28px);
    padding-right:var(--shop-page-gutter, 28px);
    background:var(--shop-theme-bg, #fff);
    border-bottom:1px solid rgba(17,17,17,.12);
    color:var(--shop-theme-text, #000);
  }
  
  .app-header--admin{
    background:#ffffff;
    border-bottom:1px solid rgba(15,23,42,.08);
  }
  
  .app-header__inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
  }
  
  .app-header__brand{
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
    text-decoration:none;
  }
  
  .app-header--shop .app-header__brand{
    color:var(--shop-theme-text, #000);
  }
  
  .app-header--admin .app-header__brand{
    color:#0b1220;
  }
  
  .app-header__logo{
    width:24px;
    height:24px;
    object-fit:contain;
  }
  
  .app-header__title{
    font-size:clamp(15px, 4vw, 16px);
    font-weight:700;
    line-height:1.1;
    letter-spacing:.02em;
    white-space:nowrap;
    color:inherit;
  }
  
  .app-header__logout{
    background:var(--shop-accent);
    color:var(--shop-theme-accent-text, #fff);
    border:none;
    border-radius:999px;
    padding:8px 14px;
    font-weight:800;
    font-size:12px;
    line-height:1.15;
    cursor:pointer;
    white-space:nowrap;
  }

  .app-header--shop .app-header__logout,
  .app-header__logout--shop{
    color:var(--shop-theme-accent-text, #fff);
  }

  .flash-popups{
    position:fixed;
    top:calc(env(safe-area-inset-top, 0px) + 12px);
    left:50%;
    z-index:1000;
    display:flex;
    width:min(100% - 28px, 402px);
    transform:translateX(-50%);
    flex-direction:column;
    gap:8px;
    pointer-events:none;
  }

  .flash-popup{
    width:100%;
    padding:12px 14px;
    border:1px solid rgba(255,255,255,.14);
    border-radius:10px;
    background:rgba(24,24,24,.86);
    color:#fff;
    font-size:14px;
    font-weight:700;
    line-height:1.45;
    box-shadow:0 12px 34px rgba(0,0,0,.32);
    backdrop-filter:blur(10px);
    transition:opacity .28s ease, transform .28s ease, visibility .28s ease;
  }

  .flash-popup--notice,
  .flash-popup--success{
    border-color:rgba(127,255,0,.28);
  }

  .flash-popup--alert,
  .flash-popup--error{
    border-color:rgba(248,113,113,.34);
  }

  .flash-popup.is-hiding{
    visibility:hidden;
    opacity:0;
    transform:translateY(-8px);
  }
  
  /* =========================================================
     Generic UI
     ========================================================= */
  
  .card{
    width:100%;
  }
  
  .mobile-shell--shop .card{
    background:var(--shop-theme-bg, #fff);
    color:var(--shop-theme-text, #000);
  }
  
  .mobile-shell--admin .card{
    background:#fff;
    color:#0b1220;
  }
  
  body.is-shop-layout:has(.vehicle-detail-shop-section) .card{
    padding-left:var(--shop-page-gutter, 28px);
    padding-right:var(--shop-page-gutter, 28px);
  }

  body.is-shop-layout:has(.vehicle-detail-shop-section) .card{
    background:var(--shop-theme-bg, #fff);
    color:var(--shop-theme-text, #000);
  }
  
  .form-card{
    width:100%;
    max-width:430px;
    margin:0 auto;
    padding-left:16px;
    padding-right:16px;
  }

  .mobile-shell--shop .form-card{
    padding-left:var(--shop-page-gutter, 28px);
    padding-right:var(--shop-page-gutter, 28px);
  }
  
  .form-section{
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  
  .h1{
    margin:0;
    font-size:30px;
    line-height:1.15;
    font-weight:900;
  }
  
  .mobile-shell--shop .h1{
    color:var(--shop-theme-text, #000);
    font-size:24px;
    line-height:1.25;
    font-weight:800;
    overflow-wrap:normal;
    word-break:keep-all;
  }
  
  .mobile-shell--admin .h1{
    color:#0b1220;
  }
  
  .sub{
    font-size:13px;
    line-height:1.5;
  }
  
  .mobile-shell--shop .sub{
    color:var(--shop-theme-muted, #404040);
  }
  
  .mobile-shell--admin .sub{
    color:#6b7280;
  }
  
  .page-title{
    margin:0 0 8px;
    font-size:30px;
    line-height:1.15;
    font-weight:900;
  }
  
  .mobile-shell--shop .page-title{
    color:var(--shop-theme-text, #000);
    font-size:24px;
    line-height:1.25;
    font-weight:800;
    overflow-wrap:normal;
    word-break:keep-all;
  }
  
  .mobile-shell--admin .page-title{
    color:#0b1220;
  }
  
  .subtext{
    font-size:13px;
    line-height:1.5;
  }
  
  .mobile-shell--shop .subtext{
    color:var(--shop-theme-muted, #404040);
  }
  
  .mobile-shell--admin .subtext{
    color:#6b7280;
  }
  
  .help{
    font-size:12px;
    line-height:1.45;
  }
  
  .mobile-shell--shop .help{
    color:var(--shop-theme-muted, #404040);
  }
  
  .mobile-shell--admin .help{
    color:#6b7280;
  }
  
  .section-title{
    margin:0 0 12px;
    font-size:18px;
    line-height:1.25;
    font-weight:900;
  }
  
  .mobile-shell--shop .section-title{
    color:var(--shop-theme-text, #000);
  }
  
  .mobile-shell--admin .section-title{
    color:#0b1220;
  }
  
  .link{
    text-decoration:none;
  }
  
  .mobile-shell--shop .link{
    color:var(--shop-theme-text, #000);
  }

  .mobile-shell--shop .link:visited,
  .mobile-shell--shop .link:hover,
  .mobile-shell--shop .link:active{
    color:var(--shop-theme-text, #000);
  }

  .mobile-shell--shop .btn{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    color:var(--shop-theme-accent-text, #fff);
    font-size:15px;
    font-weight:600;
    line-height:1.15;
  }

  .mobile-shell--shop .btn:visited,
  .mobile-shell--shop .btn:hover,
  .mobile-shell--shop .btn:active{
    color:var(--shop-theme-accent-text, #fff);
  }

  .mobile-shell--shop .btn-secondary,
  .mobile-shell--shop .btn--secondary{
    background:var(--shop-theme-surface, #fff);
    color:var(--shop-theme-text, #000);
    border:1px solid rgba(17,17,17,.16);
  }

  .mobile-shell--shop .btn-secondary:visited,
  .mobile-shell--shop .btn-secondary:hover,
  .mobile-shell--shop .btn-secondary:active,
  .mobile-shell--shop .btn--secondary:visited,
  .mobile-shell--shop .btn--secondary:hover,
  .mobile-shell--shop .btn--secondary:active{
    color:var(--shop-theme-text, #000);
  }
  
  .mobile-shell--admin .link{
    color:#0b1220;
  }
  
  .link:hover{
    text-decoration:underline;
  }
  
  .toprow{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
  }
  
  .toprow__right{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:8px;
  }
  
  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    background:var(--shop-accent);
    color:#fff;
    font-weight:900;
    border:none;
    padding:10px 14px;
    border-radius:4px;
    text-decoration:none;
    line-height:1.2;
    white-space:nowrap;
  }
  
  .btn-secondary,
  .btn--secondary{
    background:#141414;
    color:#fff;
    border:1px solid rgba(255,255,255,.12);
  }
  
  .mobile-shell--admin .btn-secondary,
  .mobile-shell--admin .btn--secondary{
    background:#fff;
    color:#0b1220;
    border:1px solid rgba(15,23,42,.12);
  }
  
  .btn--full{
    width:100%;
  }
  
  .section{
    margin-top:20px;
  }
  
  .field{
    display:flex;
    flex-direction:column;
    gap:6px;
  }
  
  .label{
    font-size:13px;
    font-weight:800;
  }
  
  .mobile-shell--shop .label{
    color:var(--shop-theme-text, #000);
  }
  
  .mobile-shell--admin .label{
    color:#0b1220;
  }
  
  .input{
    width:100%;
    height:42px;
    padding:0 14px;
    border-radius:12px;
    font-size:14px;
    font-weight:700;
    outline:none;
  }
  
  .mobile-shell--shop .input{
    border:1px solid rgba(17,17,17,.18);
    background:var(--shop-theme-surface, #fff);
    color:var(--shop-theme-text, #000);
  }
  
  .mobile-shell--admin .input{
    border:1px solid rgba(15,23,42,.14);
    background:#fff;
    color:#0b1220;
  }
  
  .input--select{
    appearance:auto;
  }
  
  .input--textarea{
    height:auto;
    min-height:120px;
    padding:12px 14px;
    line-height:1.6;
    resize:vertical;
  }
  
  .file-input-wrapper{
    display:flex;
    flex-direction:column;
    gap:6px;
    margin-bottom:10px;
  }
  
  .file-input-label{
    font-size:13px;
    line-height:1.5;
  }
  
  .mobile-shell--shop .file-input-label{
    color:var(--shop-theme-muted, #404040);
  }
  
  .mobile-shell--admin .file-input-label{
    color:#6b7280;
  }
  
  .js-file-input{
    width:100%;
    font-size:13px;
  }
  
  .mobile-shell--shop .js-file-input{
    color:var(--shop-theme-text, #000);
  }
  
  .mobile-shell--admin .js-file-input{
    color:#0b1220;
  }
  
  .js-file-input::file-selector-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--shop-accent);
    color:#fff;
    font-weight:900;
    border:none;
    padding:10px 14px;
    border-radius:4px;
    margin-right:10px;
    cursor:pointer;
    line-height:1.2;
  }

  .mobile-shell--shop .js-file-input::file-selector-button{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    color:var(--shop-theme-accent-text, #fff);
    font-size:15px;
    font-weight:600;
    line-height:1.15;
  }
  
  .js-file-input::-webkit-file-upload-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--shop-accent);
    color:#fff;
    font-weight:900;
    border:none;
    padding:10px 14px;
    border-radius:4px;
    margin-right:10px;
    cursor:pointer;
    line-height:1.2;
  }

  .mobile-shell--shop .js-file-input::-webkit-file-upload-button{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    color:var(--shop-theme-accent-text, #fff);
    font-size:15px;
    font-weight:600;
    line-height:1.15;
  }
  
  .file-input-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:auto;
    align-self:flex-start;
    background:var(--shop-accent);
    color:#fff;
    font-weight:900;
    border:none;
    padding:10px 14px;
    border-radius:4px;
    text-decoration:none;
    line-height:1.2;
    white-space:nowrap;
    cursor:pointer;
    position:relative;
    overflow:hidden;
  }

  .mobile-shell--shop .file-input-button{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    color:var(--shop-theme-accent-text, #fff);
    font-size:15px;
    font-weight:600;
    line-height:1.15;
  }

  .mobile-shell--shop .file-input-button:visited,
  .mobile-shell--shop .file-input-button:hover,
  .mobile-shell--shop .file-input-button:active{
    color:var(--shop-theme-accent-text, #fff);
  }

  .mobile-shell--shop .form-title{
    color:var(--shop-theme-text, #000);
    font-size:24px;
    line-height:1.25;
    font-weight:800;
    overflow-wrap:normal;
    word-break:keep-all;
  }
  
  .file-input-button__native{
    position:absolute;
    inset:0;
    opacity:0;
    cursor:pointer;
    width:100%;
    height:100%;
  }
  
  .actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
  }

  /* =========================================================
     Shop Login
     ========================================================= */

  .shop-login{
    width:min(100%, 430px);
    margin:0 auto;
    padding:28px var(--shop-page-gutter, 28px) 32px;
    background:var(--shop-theme-surface, #fff);
    color:var(--shop-theme-text, #000);
  }

  .shop-login .form-title{
    margin:0 0 24px;
    color:var(--shop-theme-text, #000);
  }

  .shop-login__form{
    display:flex;
    flex-direction:column;
    gap:18px;
  }

  .shop-login__field{
    gap:8px;
  }

  .shop-login__submit-row{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:16px;
    margin-top:2px;
  }

  .shop-login__remember-field{
    min-width:0;
  }

  .shop-login__remember{
    display:inline-flex;
    align-items:center;
    min-height:44px;
    gap:10px;
    color:var(--shop-theme-text, #000);
    font-size:13px;
    font-weight:800;
    line-height:1.3;
    cursor:pointer;
    user-select:none;
  }

  .shop-login__checkbox{
    width:24px;
    height:24px;
    flex:0 0 24px;
    margin:0;
    accent-color:var(--shop-accent);
    cursor:pointer;
  }

  .shop-login__actions{
    flex:0 0 auto;
    justify-content:flex-end;
  }

  .shop-login__button{
    min-width:104px;
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    line-height:1.15;
    cursor:pointer;
    color:var(--shop-theme-accent-text, #fff);
  }

  .shop-login__links{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:14px;
    margin-top:28px;
    font-size:13px;
    line-height:1.5;
  }

  .shop-login__forgot-link{
    color:var(--shop-theme-muted, #404040);
    text-decoration:underline;
    text-underline-offset:3px;
  }

  .shop-login__policy-links{
    color:var(--shop-theme-text, #000);
  }

  .shop-login__policy-links .link{
    color:var(--shop-theme-text, #000);
  }

  .shop-login__policy-links .link:visited,
  .shop-login__policy-links .link:hover,
  .shop-login__policy-links .link:active,
  .shop-login__forgot-link:visited,
  .shop-login__forgot-link:hover,
  .shop-login__forgot-link:active{
    color:var(--shop-theme-text, #000);
  }

  /* =========================================================
     Shop Application
     ========================================================= */

  .shop-application{
    width:min(100%, 430px);
    margin:0 auto;
    padding:28px var(--shop-page-gutter, 28px) var(--shop-page-bottom-space, 40px);
    background:var(--shop-theme-surface, #fff);
    color:var(--shop-theme-text, #000);
  }

  .shop-application .form-title{
    margin:0 0 12px;
    color:var(--shop-theme-text, #000);
    font-size:24px;
    line-height:1.25;
    font-weight:800;
  }

  .shop-application__description{
    margin:0 0 24px;
    color:var(--shop-theme-muted, #404040);
    font-size:13px;
    line-height:1.55;
  }

  .shop-application__form{
    display:flex;
    flex-direction:column;
    gap:18px;
  }

  .shop-application__form > .field{
    gap:8px;
  }

  .shop-application .help,
  .shop-application .file-selected{
    margin:0;
    color:var(--shop-theme-muted, #404040);
    font-size:12px;
    line-height:1.5;
  }

  .shop-application .file-input-wrapper{
    margin-bottom:0;
    gap:8px;
  }

  .shop-application .file-input-label{
    color:var(--shop-theme-muted, #404040);
    font-size:13px;
    line-height:1.5;
  }

  .shop-application .js-file-input{
    color:var(--shop-theme-text, #000);
  }

  .shop-application .js-file-input{
    font-size:13px;
  }

  .shop-application .js-file-input::file-selector-button{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    line-height:1.15;
  }

  .shop-application .js-file-input::-webkit-file-upload-button{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    line-height:1.15;
  }

  .shop-application__agreement{
    display:flex;
    align-items:flex-start;
    min-height:44px;
    gap:10px;
    line-height:1.6;
    cursor:pointer;
    color:var(--shop-theme-text, #000);
  }

  .shop-application__agreement .link{
    color:var(--shop-theme-text, #000);
    text-decoration:underline;
    text-underline-offset:3px;
  }

  .shop-application__agreement .link:visited,
  .shop-application__agreement .link:hover,
  .shop-application__agreement .link:active{
    color:var(--shop-theme-text, #000);
  }

  .shop-application__checkbox{
    width:24px;
    height:24px;
    flex:0 0 24px;
    margin:1px 0 0;
    accent-color:var(--shop-accent);
    cursor:pointer;
  }

  .shop-application__checkbox:disabled{
    cursor:not-allowed;
    opacity:.55;
  }

  .shop-application__actions{
    justify-content:flex-end;
    padding-top:4px;
  }

  .shop-application__button{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    line-height:1.15;
    cursor:pointer;
    color:var(--shop-theme-accent-text, #fff);
  }

  .shop-application__button:disabled{
    cursor:not-allowed;
    opacity:.58;
  }

  /* =========================================================
     Vehicle Form
     ========================================================= */

  .vehicle-form-card{
    padding-top:28px;
    padding-bottom:40px;
    background:var(--shop-theme-surface, #fff);
    color:var(--shop-theme-text, #000);
  }

  .vehicle-form-title{
    margin:0;
    color:var(--shop-theme-text, #000);
    font-size:24px;
    line-height:1.25;
    font-weight:800;
  }

  .vehicle-form{
    display:flex;
    flex-direction:column;
    gap:18px;
  }

  .vehicle-form .form-section{
    gap:18px;
  }

  .vehicle-form .field{
    gap:8px;
  }

  .vehicle-form .help{
    margin:0;
    color:var(--shop-theme-muted, #404040);
    font-size:12px;
    line-height:1.5;
  }

  .vehicle-form .file-input-wrapper{
    margin-bottom:0;
    gap:8px;
  }

  .vehicle-form .file-input-label{
    color:var(--shop-theme-muted, #404040);
    font-size:13px;
    line-height:1.5;
  }

  .vehicle-form .js-file-input{
    color:var(--shop-theme-text, #000);
    font-size:13px;
  }

  .vehicle-form .js-file-input::file-selector-button{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    line-height:1.15;
  }

  .vehicle-form .js-file-input::-webkit-file-upload-button{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    line-height:1.15;
  }

  .vehicle-form-actions{
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    padding-top:4px;
    flex-wrap:wrap;
  }

  .vehicle-form-button{
    min-width:92px;
    min-height:44px;
    width:auto;
    padding:10px 19px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    line-height:1.15;
    cursor:pointer;
    color:var(--shop-theme-accent-text, #fff);
  }

  .vehicle-form .error-box{
    padding:10px 12px;
    border:1px solid rgba(127,29,29,.28);
    border-radius:12px;
    background:#fff7f7;
    color:#7f1d1d;
  }

  .vehicle-form .error-box h2{
    margin:0 0 8px;
    color:#7f1d1d;
    font-size:13px;
    line-height:1.45;
    font-weight:800;
    white-space:normal;
  }

  .vehicle-form .error-box ul{
    margin:0;
    padding-left:18px;
  }

  .vehicle-form .error-box li,
  .vehicle-form .field-error{
    color:#7f1d1d;
    font-size:12px;
    line-height:1.5;
  }

  .vehicle-form .field-error{
    margin:0;
    font-weight:700;
  }

  .vehicle-form .input-error,
  .vehicle-form .field_with_errors .input{
    border-color:rgba(127,29,29,.54);
    box-shadow:0 0 0 1px rgba(127,29,29,.12);
  }

  .vehicle-form .field_with_errors{
    display:contents;
  }

  .vehicle-form .preview-card{
    background:var(--shop-theme-surface, #fff);
    border:1px solid rgba(17,17,17,.14);
    color:var(--shop-theme-text, #000);
  }

  .vehicle-form .preview-card .help{
    color:var(--shop-theme-muted, #404040);
  }

  .form-card .preview-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(140px, 1fr));
    gap:10px;
  }

  .form-card .preview-card{
    overflow:hidden;
    padding:0;
  }

  .form-card .preview-img{
    display:block;
    width:100%;
    aspect-ratio:11/7;
    object-fit:cover;
  }

  .form-card .preview-empty{
    display:flex;
    width:100%;
    aspect-ratio:11/7;
    align-items:center;
    justify-content:center;
    background:var(--shop-theme-surface-muted, #e9e9e9);
    color:var(--shop-theme-text, #000);
    font-size:12px;
    font-weight:900;
  }

  .form-card .preview-empty--fallback{
    display:none;
  }

  .vehicle-selected-preview{
    margin-top:10px;
  }

  .vehicle-selected-preview__label{
    margin:8px 0 10px;
  }

  /* =========================================================
     Inquiry Form
     ========================================================= */

  .inquiry-form-card{
    width:min(100%, 430px);
    margin:0 auto;
    padding:28px var(--shop-page-gutter, 28px) var(--shop-page-bottom-space, 40px);
    background:var(--shop-theme-bg, #fff);
    color:var(--shop-theme-text, #000);
  }

  .inquiry-form-card__header{
    align-items:center;
    gap:14px;
    margin-bottom:22px;
  }

  .inquiry-form-card__title{
    margin:0;
    color:var(--shop-theme-text, #000);
    font-size:24px;
    line-height:1.25;
    font-weight:800;
  }

  .inquiry-form-card__header-actions{
    align-items:flex-end;
  }

  .inquiry-form-card__history-button{
    min-height:40px;
    padding:9px 15px;
    border-radius:999px;
    font-size:13px;
    font-weight:600;
    line-height:1.15;
    white-space:nowrap;
    color:var(--shop-theme-accent-text, #fff);
  }

  .inquiry-form-card__history-button:visited,
  .inquiry-form-card__history-button:hover,
  .inquiry-form-card__history-button:active,
  .inquiry-form__button:visited,
  .inquiry-form__button:hover,
  .inquiry-form__button:active{
    color:var(--shop-theme-accent-text, #fff);
  }

  .inquiry-form{
    display:flex;
    flex-direction:column;
    gap:18px;
  }

  .inquiry-form .form-section{
    gap:18px;
  }

  .inquiry-form .field{
    gap:8px;
  }

  .inquiry-form .help{
    margin:0;
    color:var(--shop-theme-muted, #404040);
    font-size:12px;
    line-height:1.5;
  }

  .inquiry-form .file-input-wrapper{
    margin-bottom:0;
    gap:8px;
  }

  .inquiry-form .file-input-label{
    color:var(--shop-theme-muted, #404040);
    font-size:13px;
    line-height:1.5;
  }

  .inquiry-form .js-file-input{
    color:var(--shop-theme-text, #000);
    font-size:13px;
  }

  .inquiry-form .js-file-input::file-selector-button{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    line-height:1.15;
  }

  .inquiry-form .js-file-input::-webkit-file-upload-button{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    line-height:1.15;
  }

  .inquiry-form__actions{
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    padding-top:4px;
    flex-wrap:nowrap;
  }

  .inquiry-form__button{
    min-width:0;
    min-height:44px;
    width:auto;
    flex:1 1 0;
    padding:10px 14px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    line-height:1.15;
    cursor:pointer;
    white-space:nowrap;
    color:var(--shop-theme-accent-text, #fff);
  }

  .inquiry-form__policy{
    padding-top:2px;
  }

  .inquiry-form-card__error{
    margin-bottom:18px;
    padding:10px 12px;
    border:1px solid rgba(127,29,29,.28);
    border-radius:12px;
    background:#fff7f7;
    color:#7f1d1d;
  }

  .inquiry-form-card__error-title{
    margin-bottom:8px;
    color:#7f1d1d;
    font-size:13px;
    line-height:1.45;
    font-weight:800;
  }

  .inquiry-form-card__error li{
    color:#7f1d1d;
    font-size:12px;
    line-height:1.5;
  }

  .inquiry-form .field-error,
  .inquiry-detail-reply__form .field-error{
    margin:0;
    color:#7f1d1d;
    font-size:12px;
    font-weight:700;
    line-height:1.5;
  }

  .inquiry-form .input-error,
  .inquiry-form .field_with_errors .input,
  .inquiry-detail-reply__form .input-error,
  .inquiry-detail-reply__form .field_with_errors .input{
    border-color:rgba(127,29,29,.54);
    box-shadow:0 0 0 1px rgba(127,29,29,.12);
  }

  .inquiry-form .field_with_errors,
  .inquiry-detail-reply__form .field_with_errors{
    display:contents;
  }

  /* =========================================================
     Inquiry List
     ========================================================= */

  .inquiry-list{
    width:min(100%, 430px);
    margin:0 auto;
    padding:28px var(--shop-page-gutter, 28px) var(--shop-page-bottom-space, 40px);
    background:var(--shop-theme-bg, #fff);
    color:var(--shop-theme-text, #000);
  }

  .inquiry-list__header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:22px;
  }

  .inquiry-list__title{
    margin:0;
    color:var(--shop-theme-text, #000);
    font-size:24px;
    line-height:1.25;
    font-weight:800;
  }

  .inquiry-list__header-actions{
    flex:0 0 auto;
    margin-top:0;
  }

  .inquiry-list__new-button{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    line-height:1.15;
    white-space:nowrap;
    color:var(--shop-theme-accent-text, #fff);
  }

  .inquiry-list__new-button:visited,
  .inquiry-list__new-button:hover,
  .inquiry-list__new-button:active{
    color:var(--shop-theme-accent-text, #fff);
  }

  .inquiry-list__items{
    display:flex;
    flex-direction:column;
    gap:12px;
  }

  .inquiry-list-card{
    display:block;
    padding:16px 15px;
    border:1px solid rgba(17,17,17,.14);
    border-radius:12px;
    background:var(--shop-theme-surface, #fff);
    color:var(--shop-theme-text, #000);
    text-decoration:none;
  }

  .inquiry-list-card:visited,
  .inquiry-list-card:hover,
  .inquiry-list-card:active{
    color:var(--shop-theme-text, #000);
  }

  .inquiry-list-card__top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
  }

  .inquiry-list-card__main{
    min-width:0;
  }

  .inquiry-list-card__title{
    margin-bottom:6px;
    color:var(--shop-theme-text, #000);
    font-size:15px;
    font-weight:800;
    line-height:1.35;
    overflow-wrap:anywhere;
  }

  .inquiry-list-card__updated-at{
    margin:0;
  }

  .inquiry-list-card__status{
    flex:0 0 auto;
  }

  .inquiry-list-card__bottom{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:12px;
  }

  .inquiry-list-card__meta{
    margin:0;
  }

  .inquiry-list-card__arrow{
    flex:0 0 auto;
    color:var(--shop-theme-muted, #404040);
    font-size:18px;
    font-weight:700;
    line-height:1;
    user-select:none;
  }

  /* =========================================================
     Inquiry Detail
     ========================================================= */

  .inquiry-detail{
    width:min(100%, 430px);
    margin:0 auto;
    padding:28px var(--shop-page-gutter, 28px) var(--shop-page-bottom-space, 40px);
    background:var(--shop-theme-bg, #fff);
    color:var(--shop-theme-text, #000);
  }

  .inquiry-detail__header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:22px;
  }

  .inquiry-detail__header > div:first-child{
    min-width:0;
  }

  .inquiry-detail__title{
    margin:0 0 8px;
    color:var(--shop-theme-text, #000);
    font-size:24px;
    line-height:1.25;
    font-weight:800;
  }

  .inquiry-detail__subject{
    margin:0;
    color:var(--shop-theme-text, #000);
    font-size:18px;
    line-height:1.4;
    font-weight:700;
    overflow-wrap:anywhere;
  }

  .inquiry-detail__header-actions{
    flex:0 0 auto;
    margin-top:0;
  }

  .inquiry-detail__back-button{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    line-height:1.15;
    white-space:nowrap;
    color:var(--shop-theme-text, #000);
  }

  .inquiry-detail__back-button:visited,
  .inquiry-detail__back-button:hover,
  .inquiry-detail__back-button:active{
    color:var(--shop-theme-text, #000);
  }

  .inquiry-detail-panel,
  .inquiry-detail-chat,
  .inquiry-detail-reply{
    border:1px solid rgba(17,17,17,.14);
    border-radius:12px;
    background:var(--shop-theme-surface, #fff);
    color:var(--shop-theme-text, #000);
  }

  .inquiry-detail-panel{
    padding:16px 15px;
    margin-bottom:16px;
  }

  .inquiry-detail-panel__top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
  }

  .inquiry-detail-panel__label{
    margin-bottom:5px;
    font-size:12px;
    font-weight:700;
    color:var(--shop-theme-muted, #404040);
  }

  .inquiry-detail-panel__value{
    color:var(--shop-theme-text, #000);
    font-size:13px;
    line-height:1.5;
    font-weight:600;
  }

  .inquiry-detail-panel__sender{
    margin-top:14px;
  }

  .inquiry-detail-panel__sender-list{
    display:flex;
    flex-direction:column;
    gap:4px;
    color:var(--shop-theme-text, #000);
    font-size:13px;
    line-height:1.55;
    font-weight:500;
  }

  .inquiry-detail-panel__sender-list span{
    color:var(--shop-theme-muted, #404040);
    font-weight:700;
  }

  .inquiry-detail-chat{
    padding:16px 15px;
    margin-bottom:20px;
    background:var(--shop-theme-surface, #fff);
  }

  .inquiry-detail__section-title{
    margin:0 0 12px;
    color:var(--shop-theme-text, #000);
    font-size:17px;
    line-height:1.35;
    font-weight:800;
  }

  .inquiry-detail-chat__messages{
    display:flex;
    flex-direction:column;
    gap:10px;
  }

  .inquiry-detail-message{
    display:flex;
  }

  .inquiry-detail-message--shop{
    justify-content:flex-end;
  }

  .inquiry-detail-message--admin{
    justify-content:flex-start;
  }

  .inquiry-detail-message__inner{
    display:inline-flex;
    flex-direction:column;
    max-width:78%;
  }

  .inquiry-detail-message--shop .inquiry-detail-message__inner{
    align-items:flex-end;
  }

  .inquiry-detail-message--admin .inquiry-detail-message__inner{
    align-items:flex-start;
  }

  .inquiry-detail-message__bubble{
    display:inline-block;
    width:fit-content;
    max-width:100%;
    padding:9px 12px;
    border-radius:18px;
    color:var(--shop-theme-text, #000);
    box-sizing:border-box;
    text-align:left;
    margin:0;
    box-shadow:none;
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
  }

  .inquiry-detail-message--shop .inquiry-detail-message__bubble{
    align-self:flex-end;
    background:var(--shop-accent);
    color:var(--shop-theme-accent-text, #fff);
  }

  .inquiry-detail-message--admin .inquiry-detail-message__bubble{
    align-self:flex-start;
    background:#fff;
    color:var(--shop-theme-text, #000);
  }

  .inquiry-detail-message__body{
    margin:0;
    padding:0;
    white-space:pre-wrap;
    word-break:break-word;
    text-align:left;
    font-size:14px;
    line-height:1.45;
    font-weight:500;
  }

  .inquiry-detail-message__images{
    display:flex;
    gap:8px;
    margin-top:7px;
    overflow-x:auto;
  }

  .inquiry-detail-message__image{
    width:110px;
    height:110px;
    object-fit:cover;
    border:1px solid rgba(17,17,17,.14);
    border-radius:10px;
  }

  .inquiry-detail-message__time{
    margin:4px 2px 0;
    color:var(--shop-theme-muted, #404040);
    font-size:11px;
    line-height:1.1;
    font-weight:500;
  }

  .inquiry-detail-reply{
    padding:16px 15px;
    margin-bottom:16px;
  }

  .inquiry-detail-reply__form{
    display:flex;
    flex-direction:column;
    gap:18px;
  }

  .inquiry-detail-reply__form .field{
    gap:8px;
  }

  .inquiry-detail-reply__form .help{
    margin:0;
    color:var(--shop-theme-muted, #404040);
    font-size:12px;
    line-height:1.5;
  }

  .inquiry-detail-reply__form .file-input-wrapper{
    margin-bottom:0;
    gap:8px;
  }

  .inquiry-detail-reply__form .file-input-label{
    color:var(--shop-theme-muted, #404040);
    font-size:13px;
    line-height:1.5;
  }

  .inquiry-detail-reply__form .js-file-input{
    color:var(--shop-theme-text, #000);
    font-size:13px;
  }

  .inquiry-detail-reply__form .js-file-input::file-selector-button{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    line-height:1.15;
  }

  .inquiry-detail-reply__form .js-file-input::-webkit-file-upload-button{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    line-height:1.15;
  }

  .inquiry-detail-reply__actions{
    justify-content:flex-end;
    padding-top:4px;
  }

  .inquiry-detail-reply__button{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    line-height:1.15;
    cursor:pointer;
    color:var(--shop-theme-accent-text, #fff);
  }

  .inquiry-detail-reply__button:visited,
  .inquiry-detail-reply__button:hover,
  .inquiry-detail-reply__button:active{
    color:var(--shop-theme-accent-text, #fff);
  }

  /* =========================================================
     Shop Application Complete
     ========================================================= */

  .shop-application-complete{
    width:min(100%, 430px);
    margin:0 auto;
    padding:34px var(--shop-page-gutter, 28px) 44px;
    background:var(--shop-theme-surface, #fff);
    color:var(--shop-theme-text, #000);
  }

  .shop-application-complete__inner{
    display:flex;
    flex-direction:column;
    gap:24px;
  }

  .shop-application-complete__eyebrow{
    margin:0;
    color:var(--shop-accent);
    font-size:12px;
    font-weight:900;
    line-height:1.3;
  }

  .shop-application-complete__title{
    margin:0;
    color:var(--shop-theme-text, #000);
    font-size:24px;
    line-height:1.25;
    font-weight:800;
    overflow-wrap:normal;
    word-break:keep-all;
  }

  .shop-application-complete__body{
    display:flex;
    flex-direction:column;
    gap:10px;
    color:var(--shop-theme-text, #000);
    font-size:15px;
    font-weight:600;
    line-height:1.8;
  }

  .shop-application-complete__body p{
    margin:0;
  }

  .shop-application-complete__downloads{
    display:flex;
    flex-direction:column;
    gap:14px;
    padding-top:4px;
  }

  .shop-application-complete__subtitle{
    margin:0;
    color:var(--shop-theme-text, #000);
    font-size:17px;
    font-weight:900;
    line-height:1.45;
  }

  .shop-application-complete__links{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }

  .shop-application-complete__link{
    min-height:46px;
    border-radius:999px;
    font-size:15px;
    color:var(--shop-theme-accent-text, #fff);
  }

  .shop-application-complete__link:visited,
  .shop-application-complete__link:hover,
  .shop-application-complete__link:active{
    color:var(--shop-theme-accent-text, #fff);
  }

  /* =========================================================
     Shop Password Reset
     ========================================================= */

  .shop-password-reset{
    width:min(100%, 430px);
    margin:0 auto;
    padding:28px var(--shop-page-gutter, 28px) 32px;
    background:var(--shop-theme-surface, #fff);
    color:var(--shop-theme-text, #000);
  }

  .shop-password-reset .form-title{
    margin:0 0 14px;
    color:var(--shop-theme-text, #000);
    font-size:24px;
    line-height:1.25;
    font-weight:800;
  }

  .shop-password-reset__description{
    display:flex;
    flex-direction:column;
    gap:2px;
    margin:0 0 24px;
    color:var(--shop-theme-muted, #404040);
    font-size:13px;
    line-height:1.55;
  }

  .shop-password-reset__form{
    display:flex;
    flex-direction:column;
    gap:18px;
  }

  .shop-password-reset__field{
    gap:8px;
  }

  .shop-password-reset__actions{
    justify-content:flex-end;
  }

  .shop-password-reset__button{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    line-height:1.15;
    cursor:pointer;
    color:var(--shop-theme-accent-text, #fff);
  }

  .shop-password-reset__links{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:14px;
    margin-top:28px;
    font-size:13px;
    line-height:1.5;
  }

  .shop-password-reset__login-link{
    color:var(--shop-theme-muted, #404040);
    text-decoration:underline;
    text-underline-offset:3px;
  }

  .shop-password-reset__login-link:visited,
  .shop-password-reset__login-link:hover,
  .shop-password-reset__login-link:active,
  .shop-password-reset__links .link:visited,
  .shop-password-reset__links .link:hover,
  .shop-password-reset__links .link:active{
    color:var(--shop-theme-text, #000);
  }

  .card--flat{
    border-radius:12px;
  }
  
  .error-box{
    padding:10px 12px;
    border-radius:12px;
    border:1px solid rgba(220,38,38,.18);
    background:#fff7f7;
    color:#7f1d1d;
  }

  .error-box h2{
    margin:0 0 6px;
    font-size:17px;
    line-height:1.25;
    font-weight:900;
    white-space:nowrap;
  }

  .error-box ul{
    margin:0;
    padding-left:18px;
  }

  .error-box li{
    margin:0;
    line-height:1.35;
  }

  .mobile-shell--shop .shop-login .error-box,
  .mobile-shell--shop .shop-application .error-box,
  .mobile-shell--shop .shop-password-reset .error-box{
    border-color:rgba(127,29,29,.28);
    background:#fff7f7;
    color:#7f1d1d;
  }

  .mobile-shell--shop .shop-login .field-error,
  .mobile-shell--shop .shop-application .field-error,
  .mobile-shell--shop .shop-password-reset .field-error{
    margin:0;
    color:#7f1d1d;
    font-size:12px;
    font-weight:700;
    line-height:1.5;
  }

  .mobile-shell--shop .shop-login .input-error,
  .mobile-shell--shop .shop-application .input-error,
  .mobile-shell--shop .shop-password-reset .input-error,
  .mobile-shell--shop .shop-login .field_with_errors .input,
  .mobile-shell--shop .shop-application .field_with_errors .input,
  .mobile-shell--shop .shop-password-reset .field_with_errors .input{
    border-color:rgba(127,29,29,.54);
    box-shadow:0 0 0 1px rgba(127,29,29,.12);
  }

  .mobile-shell--shop .shop-login .field_with_errors,
  .mobile-shell--shop .shop-application .field_with_errors,
  .mobile-shell--shop .shop-password-reset .field_with_errors{
    display:contents;
  }

  .mobile-shell--shop .card:has(.privacy-policy){
    background:var(--shop-theme-surface, #fff);
    color:var(--shop-theme-text, #000);
    padding:28px var(--shop-page-gutter, 28px);
  }

  .privacy-policy{
    display:flex;
    flex-direction:column;
    gap:18px;
    padding-bottom:24px;
    color:var(--shop-theme-text, #000);
  }

  .privacy-policy__lead,
  .privacy-policy__body{
    margin:0;
    color:var(--shop-theme-text, #000);
    font-size:14px;
    line-height:1.8;
  }

  .privacy-policy__section{
    display:flex;
    flex-direction:column;
    gap:8px;
  }

  .privacy-policy__section-title{
    margin:0;
    color:var(--shop-theme-text, #000);
    font-size:17px;
    line-height:1.35;
    font-weight:900;
  }

  .privacy-policy__list{
    margin:0;
    padding-left:1.2em;
    color:var(--shop-theme-text, #000);
    font-size:14px;
    line-height:1.8;
  }

  .inquiry-policy-link{
    position:fixed;
    left:50%;
    bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom) + 8px);
    width:100%;
    max-width:430px;
    padding:0 var(--shop-page-gutter, 28px);
    text-align:center;
    transform:translateX(-50%);
    z-index:90;
    font-size:12px;
    line-height:1.4;
  }
  
  /* =========================================================
     Tables / Common
     ========================================================= */
  
  .mobile-shell--admin .table-wrap{
    width:100%;
    overflow-x:auto;
    border:1px solid rgba(15,23,42,.08);
    border-radius:12px;
    background:#fff;
  }
  
  .mobile-shell--admin table{
    width:100%;
    border-collapse:collapse;
    background:#fff;
    color:#0b1220;
  }
  
  .mobile-shell--admin th,
  .mobile-shell--admin td{
    padding:12px 14px;
    text-align:left;
    vertical-align:top;
    border-bottom:1px solid rgba(15,23,42,.08);
    font-size:14px;
  }
  
  .mobile-shell--admin th{
    background:#f8fafc;
    color:#374151;
    font-weight:800;
    white-space:nowrap;
  }
  
  .mobile-shell--admin tr:last-child td{
    border-bottom:none;
  }
  
  .mobile-shell--shop .table-wrap{
    width:100%;
    overflow:hidden;
    border:1px solid rgba(17,17,17,.14);
    border-radius:12px;
    background:var(--shop-theme-surface, #fff);
  }
  
  .mobile-shell--shop table{
    width:100%;
    border-collapse:collapse;
    background:var(--shop-theme-surface, #fff);
    color:var(--shop-theme-text, #000);
  }
  
  .mobile-shell--shop th,
  .mobile-shell--shop td{
    padding:12px 14px;
    text-align:left;
    vertical-align:top;
    border-bottom:1px solid rgba(17,17,17,.12);
    font-size:14px;
    color:var(--shop-theme-text, #000);
  }
  
  .mobile-shell--shop th{
    background:var(--shop-theme-surface, #fff);
    color:var(--shop-theme-text, #000);
    font-weight:800;
    white-space:nowrap;
  }
  
  .mobile-shell--shop tr:last-child td{
    border-bottom:none;
  }

  .vehicle-serial-copy{
    display:flex;
    align-items:center;
    gap:8px;
  }

  .vehicle-serial-copy__value{
    min-width:0;
    overflow-wrap:anywhere;
  }

  .vehicle-serial-copy__button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    flex:0 0 34px;
    padding:0;
    border:1px solid rgba(17,17,17,.18);
    border-radius:4px;
    background:var(--shop-accent);
    color:var(--shop-theme-accent-text, #fff);
    cursor:pointer;
    touch-action:manipulation;
  }

  .vehicle-serial-copy__button.is-copied{
    border-color:rgba(17,17,17,.24);
    background:var(--shop-theme-surface-muted, #e9e9e9);
    color:var(--shop-theme-text, #000);
  }

  .vehicle-serial-copy__icon{
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
  }

  .vehicle-serial-copy__status{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0, 0, 0, 0);
    white-space:nowrap;
    border:0;
  }
  
  .td-actions{
    white-space:nowrap;
  }
  
  /* =========================================================
     Badges
     ========================================================= */
  
  .badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:24px;
    padding:0 10px;
    border-radius:999px;
    font-size:11px;
    line-height:1;
    font-weight:800;
    white-space:nowrap;
  }
  
  .mobile-shell--shop .badge{
    background:var(--shop-theme-surface, #1f2937);
    color:var(--shop-theme-text, #000);
  }
  
  .mobile-shell--admin .badge{
    background:#e5e7eb;
    color:#0b1220;
  }
  
  .badge--listed{
    background:var(--shop-accent) !important;
    color:#fff !important;
  }
  
  .badge--sold{
    background:#dc2626 !important;
    color:#fff !important;
  }
  
  .badge--withdrawn{
    background:#6b7280 !important;
    color:#fff !important;
  }
  
  .badge.approved{
    background:#dcfce7 !important;
    color:#0b1220 !important;
  }
  
  .badge.pending{
    background:#fef3c7 !important;
    color:#0b1220 !important;
  }
  
  .badge.rejected{
    background:#fee2e2 !important;
    color:#0b1220 !important;
  }
  
  .badge.suspended{
    background:#e5e7eb !important;
    color:#0b1220 !important;
  }
  
  /* =========================================================
     Vehicle List Common
     ========================================================= */
  
  .vlist{
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  
  .vcard{
    display:block;
    width:100%;
    background:#141414;
    border:1px solid rgba(255,255,255,.08);
    text-decoration:none;
    color:#fff;
    padding:14px;
  }
  
  .vcard__head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    margin-bottom:12px;
  }
  
  .vcard__title{
    min-width:0;
    color:#fff;
    font-size:18px;
    line-height:1.25;
    font-weight:900;
    word-break:break-word;
  }
  
  .vcard__grid{
    display:grid;
    grid-template-columns:140px minmax(0, 1fr);
    gap:12px;
    align-items:start;
  }
  
  .vcard__media{
    width:100%;
    aspect-ratio:4/3;
    background:#6d6a6d;
    overflow:hidden;
  }
  
  .vcard__img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  
  .vcard__empty{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#6d6a6d;
    color:#fff;
    font-size:12px;
    font-weight:900;
    text-align:center;
  }
  
  .vcard__body{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  
  .vcard__meta{
    color:#fff;
    font-size:13px;
    line-height:1.5;
    word-break:break-word;
  }
  
  .vcard__notes{
    word-break:break-word;
  }

  /* =========================================================
     Favorite Vehicles
     ========================================================= */

  .favorite-vehicles-card{
    width:min(100%, 430px);
    margin:0 auto;
    padding:28px var(--shop-page-gutter, 28px) var(--shop-page-bottom-space, 40px);
    background:var(--shop-theme-bg, #fff);
    color:var(--shop-theme-text, #000);
  }

  .favorite-vehicles-card__header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:18px;
  }

  .favorite-vehicles-card__header > div:first-child{
    min-width:0;
    flex:1 1 auto;
  }

  .favorite-vehicles-card__title{
    margin:0;
    color:var(--shop-theme-text, #000);
    font-size:24px;
    line-height:1.25;
    font-weight:800;
    white-space:nowrap;
  }

  .favorite-vehicles-card__description{
    margin:7px 0 0;
    color:var(--shop-theme-muted, #404040);
    font-size:13px;
    line-height:1.55;
  }

  .favorite-vehicles-card__actions{
    display:flex;
    align-items:flex-end;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:8px;
    flex:0 0 auto;
  }

  .favorite-vehicles-card__button{
    min-height:40px;
    padding:9px 15px;
    border-radius:999px;
    font-size:13px;
    font-weight:600;
    line-height:1.15;
    white-space:nowrap;
    color:var(--shop-theme-accent-text, #fff);
  }

  .favorite-vehicles-card__button--secondary{
    background:var(--shop-theme-surface, #fff);
    color:var(--shop-theme-text, #000);
    border:1px solid rgba(17,17,17,.16);
  }

  .favorite-vehicles-card__button:visited,
  .favorite-vehicles-card__button:hover,
  .favorite-vehicles-card__button:active{
    color:var(--shop-theme-accent-text, #fff);
  }

  .favorite-vehicles-card__button--secondary:visited,
  .favorite-vehicles-card__button--secondary:hover,
  .favorite-vehicles-card__button--secondary:active{
    color:var(--shop-theme-text, #000);
  }

  .favorite-vehicles-card__count,
  .favorite-vehicles-card__empty{
    margin:0;
    color:var(--shop-theme-muted, #404040);
    font-size:13px;
    line-height:1.55;
  }

  .favorite-vehicles-card__count{
    margin-bottom:12px;
  }

  .favorite-vehicles-card__empty{
    margin-top:4px;
  }

  .favorite-vehicles-card__list{
    gap:12px;
  }

  .favorite-vehicles-card__vehicle{
    background:var(--shop-theme-surface, #fff);
    border:1px solid rgba(17,17,17,.14);
    color:var(--shop-theme-text, #000);
    padding:12px;
  }

  .favorite-vehicles-card__vehicle:visited,
  .favorite-vehicles-card__vehicle:hover,
  .favorite-vehicles-card__vehicle:active{
    color:var(--shop-theme-text, #000);
  }

  .favorite-vehicles-card__vehicle .vcard__head{
    align-items:center;
    gap:8px;
    margin-bottom:10px;
  }

  .favorite-vehicles-card__vehicle .vcard__title{
    color:var(--shop-theme-text, #000);
    font-size:16px;
    line-height:1.25;
    font-weight:700;
  }

  .favorite-vehicles-card__vehicle .badge{
    min-height:22px;
    padding:0 9px;
    font-size:10px;
    font-weight:700;
  }

  .favorite-vehicles-card__vehicle .vcard__grid{
    grid-template-columns:128px minmax(0, 1fr);
    align-items:center;
    gap:10px;
  }

  .favorite-vehicles-card__vehicle-body{
    gap:4px;
    justify-content:center;
  }

  .favorite-vehicles-card__vehicle .vcard__meta{
    color:var(--shop-theme-muted, #404040);
    font-size:11.5px;
    line-height:1.35;
    font-weight:400;
  }

  .favorite-vehicles-card__vehicle .vcard__meta b{
    color:var(--shop-theme-text, #000);
    font-weight:600;
  }

  .favorite-vehicles-card__vehicle .vcard__media,
  .favorite-vehicles-card__vehicle .vcard__empty{
    background:var(--shop-theme-surface-muted, #e9e9e9);
  }

  .favorite-vehicles-card__vehicle .vcard__empty{
    color:var(--shop-theme-text, #000);
  }

  .favorite-vehicles-card__vehicle .vcard__notes{
    display:-webkit-box;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }

  .favorite-vehicles-card__shop{
    margin-top:2px;
  }

  .favorite-vehicles-card__empty-actions{
    margin-top:16px;
  }

  .favorite-vehicles-card__empty-button{
    min-height:44px;
    padding:10px 19px;
    border-radius:999px;
    font-size:15px;
    font-weight:600;
    line-height:1.15;
  }

  /* =========================================================
     Dashboard
     ========================================================= */
  
  .shop-dashboard{
    min-height:100dvh;
    background:var(--shop-theme-bg, #fff);
    color:var(--shop-theme-text, #000);
  }
  
  .shop-dashboard__panel{
    padding-bottom:24px;
  }
  
  .shop-dashboard__title{
    font-size:30px;
    font-weight:900;
    margin:0;
    color:var(--shop-theme-text, #000);
  }
  
  .shop-dashboard__hero-address-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-top:6px;
  }
  
  .shop-dashboard__address-head{
    font-size:14px;
    margin:0;
    color:var(--shop-theme-muted, #404040);
  }
  
  .shop-dashboard__map-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    background:var(--shop-accent);
    color:var(--shop-theme-accent-text, #fff);
    font-size:13px;
    font-weight:600;
    line-height:1.15;
    padding:8px 16px;
    border-radius:999px;
    text-decoration:none;
    white-space:nowrap;
  }
  
  .shop-dashboard__hero-image{
    margin-top:12px;
    overflow:hidden;
    border:1px solid var(--shop-theme-border, #d6ead8);
    border-radius:8px;
    background:var(--shop-theme-surface, #fff);
  }
  
  .shop-dashboard__hero-img{
    display:block;
    width:100%;
    aspect-ratio:16/9;
    object-fit:cover;
  }
  
  .shop-dashboard__hero-empty{
    width:100%;
    aspect-ratio:16/9;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--shop-theme-surface-muted, #e9e9e9);
    font-weight:900;
    color:var(--shop-theme-text, #000);
  }

  .shop-dashboard__hero-empty--fallback{
    display:none;
  }
  
  .shop-dashboard__info-row{
    margin-top:16px;
  }

  .shop-dashboard__info-main{
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  
  .shop-dashboard__info-grid{
    display:grid;
    grid-template-columns:80px 1fr;
    row-gap:8px;
  }
  
  .shop-dashboard__info-label{
    font-size:12px;
    color:var(--shop-theme-muted, #404040);
  }
  
  .shop-dashboard__info-value{
    font-size:12px;
    font-weight:700;
    color:var(--shop-theme-text, #000);
  }
  
  .shop-dashboard__info-value--singleline{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  
  .shop-dashboard__info-link{
    color:var(--shop-theme-text, #000);
    text-decoration:none;
  }
  
  .shop-dashboard__info-link:visited{
    color:var(--shop-theme-text, #000);
  }
  
  .shop-dashboard__info-link:hover{
    color:var(--shop-theme-text, #000);
  }
  
  .shop-dashboard__info-link:active{
    color:var(--shop-theme-text, #000);
  }
  
  .shop-dashboard__info-link--singleline{
    display:block;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    color:var(--shop-theme-text, #000);
  }
  
  .shop-dashboard__info-link--singleline:visited{
    color:var(--shop-theme-text, #000);
  }
  
  .shop-dashboard__info-link--singleline:hover{
    color:var(--shop-theme-text, #000);
  }
  
  .shop-dashboard__info-link--singleline:active{
    color:var(--shop-theme-text, #000);
  }
  
  .shop-dashboard__info-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-top:0;
  }
  
  .shop-dashboard__schedule-grid{
    display:grid;
    grid-template-columns:80px auto;
    row-gap:8px;
  }
  
  .shop-dashboard__info-value--nowrap{
    white-space:nowrap;
  }
  
  .shop-dashboard__info-edit{
    margin-left:12px;
  }
  
  .shop-dashboard__action-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    text-align:center;
    background:var(--shop-accent);
    color:var(--shop-theme-accent-text, #fff);
    font-size:15px;
    font-weight:600;
    border:none;
    padding:10px 19px;
    border-radius:999px;
    text-decoration:none;
    line-height:1.15;
    white-space:nowrap;
  }

  .shop-dashboard__action-btn:visited,
  .shop-dashboard__action-btn:hover,
  .shop-dashboard__action-btn:active{
    color:var(--shop-theme-accent-text, #fff);
  }
  
  .shop-dashboard__action-btn--small{
    min-height:38px;
    font-size:13px;
    padding:8px 16px;
  }
  
  /* =========================================================
     CTA
     ========================================================= */
  
  .shop-dashboard__cta-group{
    margin-top:18px;
  }
  
  .shop-dashboard__cta-row{
    display:flex;
    gap:10px;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
  }
  
  .shop-dashboard__cta-row + .shop-dashboard__cta-row{
    margin-top:14px;
  }
  
  .shop-dashboard__cta-row--center{
    justify-content:center;
  }
  
  .shop-dashboard__action-btn--wide{
    min-width:180px;
  }
  
  .shop-dashboard__cta-row > .shop-dashboard__action-btn{
    flex:0 0 auto;
  }
  
  .shop-dashboard__cta-row--center > .shop-dashboard__action-btn{
    margin:0 auto;
  }
  
  /* =========================================================
     Section
     ========================================================= */
  
  .shop-dashboard__section{
    margin-top:26px;
  }
  
  .shop-dashboard__section-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:14px;
  }
  
  .shop-dashboard__section-title{
    font-size:14px;
    font-weight:700;
    margin:0;
    color:var(--shop-theme-text, #000);
  }
  
  .shop-dashboard__section-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:38px;
    padding:8px 14px;
    border-radius:999px;
    background:var(--shop-accent);
    text-decoration:none;
    color:var(--shop-theme-accent-text, #fff);
    font-size:13px;
    font-weight:600;
    line-height:1.15;
    white-space:nowrap;
  }

  .shop-dashboard__section-link:visited,
  .shop-dashboard__section-link:hover,
  .shop-dashboard__section-link:active{
    color:var(--shop-theme-accent-text, #fff);
  }
  
  /* =========================================================
     Slider
     ========================================================= */
  
  .shop-dashboard__slider{
    display:flex;
    gap:12px;
    overflow-x:auto;
    padding-bottom:6px;
  }
  
  .shop-dashboard__vehicle-card{
    min-width:142px;
    text-decoration:none;
  }
  
  .mobile-shell--shop .shop-dashboard__vehicle-card{
    background:var(--shop-theme-surface, #fff) !important;
    color:var(--shop-theme-text, #000) !important;
  }
  
  .mobile-shell--admin .shop-dashboard__vehicle-card{
    background:#fff !important;
    color:#000 !important;
  }
  
  .mobile-shell--shop .shop-dashboard__vehicle-body{
    background:var(--shop-theme-surface, #fff) !important;
    color:var(--shop-theme-text, #000) !important;
  }
  
  .mobile-shell--admin .shop-dashboard__vehicle-body{
    background:#fff !important;
    color:#000 !important;
  }
  
  .mobile-shell--shop .shop-dashboard__vehicle-maker{
    color:var(--shop-theme-muted, #404040) !important;
  }
  
  .mobile-shell--admin .shop-dashboard__vehicle-maker{
    color:#000 !important;
  }
  
  .mobile-shell--shop .shop-dashboard__vehicle-name{
    color:var(--shop-theme-text, #000) !important;
  }
  
  .mobile-shell--admin .shop-dashboard__vehicle-name{
    color:#000 !important;
  }
  
  .shop-dashboard__vehicle-thumb{
    width:100%;
    aspect-ratio:4/3;
    background:var(--shop-theme-surface-muted, #e9e9e9);
  }

  .shop-dashboard__vehicle-empty{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--shop-theme-text, #000);
    font-size:12px;
    font-weight:900;
  }
  
  .shop-dashboard__vehicle-img{
    width:100%;
    height:100%;
    object-fit:cover;
  }
  
  .shop-dashboard__vehicle-body{
    padding:6px 8px;
  }
  
  .shop-dashboard__vehicle-maker{
    font-size:11px;
  }
  
  .shop-dashboard__vehicle-name{
    font-size:18px;
    font-weight:900;
  }
  
  /* =========================================================
     Profile
     ========================================================= */
  
  .shop-dashboard__profile-stats{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:10px;
    margin-top:14px;
  }
  
  .shop-dashboard__profile-stat{
    display:flex;
    flex-direction:column;
    align-items:center;
    min-width:0;
    text-align:center;
    color:inherit;
    text-decoration:none;
  }
  
  .shop-dashboard__profile-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:28px;
    padding:0 4px;
    border-radius:999px;
    background:var(--shop-accent);
    color:var(--shop-theme-accent-text, #fff);
    font-size:12px;
    font-weight:600;
    line-height:1.15;
    white-space:nowrap;
  }
  
  .shop-dashboard__profile-value{
    margin-top:8px;
    color:var(--shop-theme-text, #000);
    max-width:100%;
    font-size:clamp(24px, 8vw, 34px);
    line-height:1.05;
    font-weight:800;
    font-variant-numeric:tabular-nums;
    overflow-wrap:anywhere;
  }
  
  /* =========================================================
     Vehicle Search
     ========================================================= */
  
  .vehicle-search-page{
    background:var(--shop-theme-bg, #fff);
    color:var(--shop-theme-text, #000);
    min-height:100dvh;
    padding-top:0;
    padding-bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom) + 18px);
  }

  .vehicle-search-page__container{
    width:min(100%, 430px);
    margin:0 auto;
    padding:28px var(--shop-page-gutter, 28px) var(--shop-page-bottom-space, 40px);
  }
  
  .vehicle-search-section{
    width:100%;
  }
  
  .vehicle-search-section__title-wrap{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:18px;
  }

  .vehicle-search-section__title-wrap--models{
    align-items:flex-start;
    gap:11px;
  }
  
  .vehicle-search-section__bar{
    width:6px;
    height:30px;
    border-radius:999px;
    background:var(--shop-accent);
    flex:0 0 auto;
  }

  .vehicle-search-section__brand{
    display:flex;
    align-items:center;
    min-width:0;
    gap:12px;
  }

  .vehicle-search-section__brand-logo{
    width:64px;
    min-width:64px;
    flex:0 0 64px;
  }
  
  .vehicle-search-section__title{
    margin:0;
    color:var(--shop-theme-text, #000);
    font-size:24px;
    line-height:1.25;
    font-weight:800;
    word-break:break-word;
  }
  
  .manufacturer-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:15px 12px;
    width:100%;
  }

  .manufacturer-section{
    margin-top:24px;
  }

  .manufacturer-section:first-of-type{
    margin-top:0;
  }

  .manufacturer-section__title{
    margin:0 0 12px;
    color:var(--shop-theme-text, #000);
    font-size:14px;
    line-height:1.4;
    font-weight:700;
    letter-spacing:0;
  }
  
  .manufacturer-card{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    text-decoration:none;
    color:var(--shop-theme-text, #000);
    min-width:0;
    -webkit-tap-highlight-color:transparent;
  }

  .manufacturer-card:visited,
  .manufacturer-card:hover,
  .manufacturer-card:active{
    color:var(--shop-theme-text, #000);
  }
  
  .manufacturer-card__logo-box{
    width:100%;
    aspect-ratio:1/1;
    background:var(--shop-theme-surface, #fff);
    border:1px solid rgba(17,17,17,.14);
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    position:relative;
  }
  
  .manufacturer-card__logo{
    width:90%;
    height:90%;
    max-width:92%;
    max-height:88%;
    object-fit:contain;
    display:block;
  }
  
  .manufacturer-card__fallback{
    display:none;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    color:var(--shop-theme-text, #000);
    font-size:16px;
    font-weight:700;
    letter-spacing:0;
  }

  .manufacturer-card__fallback:only-child{
    display:flex;
  }
  
  .manufacturer-card__name{
    width:100%;
    margin-top:8px;
    color:var(--shop-theme-text, #000);
    font-size:12.5px;
    line-height:1.3;
    font-weight:600;
    text-align:left;
    word-break:break-word;
  }
  
  .manufacturer-card__meta{
    width:100%;
    margin-top:4px;
    color:var(--shop-theme-muted, #404040);
    font-size:11px;
    line-height:1.3;
    font-weight:500;
    text-align:left;
  }
  
  .vehicle-search-empty-card{
    width:100%;
    padding:16px;
    border:1px solid rgba(17,17,17,.14);
    background:var(--shop-theme-surface, #fff);
  }
  
  .vehicle-search-empty-text{
    margin:0;
    color:var(--shop-theme-muted, #404040);
    font-size:13px;
    line-height:1.55;
  }

  .vehicle-search-empty-card__button{
    min-height:40px;
    margin-top:14px;
    padding:9px 15px;
    border-radius:999px;
    font-size:13px;
    font-weight:600;
    line-height:1.15;
    color:var(--shop-theme-accent-text, #fff);
  }

  .vehicle-search-empty-card__button:visited,
  .vehicle-search-empty-card__button:hover,
  .vehicle-search-empty-card__button:active{
    color:var(--shop-theme-accent-text, #fff);
  }
  
  /* =========================================================
     Vehicle Search Models
     ========================================================= */
  
  .vehicle-model-list{
    display:flex;
    flex-direction:column;
    gap:9px;
  }
  
  .vehicle-model-list__item{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:52px;
    gap:12px;
    padding:13px 14px;
    background:var(--shop-theme-surface, #fff);
    border:1px solid rgba(17,17,17,.14);
    text-decoration:none;
    color:var(--shop-theme-text, #000);
    -webkit-tap-highlight-color:transparent;
  }

  .vehicle-model-list__item:visited,
  .vehicle-model-list__item:hover,
  .vehicle-model-list__item:active{
    color:var(--shop-theme-text, #000);
  }
  
  .vehicle-model-list__item--all{
    background:var(--shop-theme-surface, #fff);
  }
  
  .vehicle-model-list__main{
    min-width:0;
    flex:1 1 auto;
  }
  
  .vehicle-model-list__title{
    color:var(--shop-theme-text, #000);
    font-size:14px;
    line-height:1.35;
    font-weight:700;
    word-break:break-word;
  }
  
  .vehicle-model-list__sub{
    margin-top:4px;
    color:var(--shop-theme-muted, #404040);
    font-size:12px;
    line-height:1.35;
    font-weight:500;
  }
  
  .vehicle-model-list__right{
    display:flex;
    align-items:center;
    gap:10px;
    flex:0 0 auto;
  }
  
  .vehicle-model-list__count{
    color:var(--shop-theme-muted, #404040);
    font-size:12px;
    line-height:1;
    font-weight:600;
    white-space:nowrap;
  }
  
  .vehicle-model-list__arrow{
    color:var(--shop-accent);
    font-size:22px;
    line-height:1;
    font-weight:700;
    transform:translateY(-1px);
  }

  /* =========================================================
     Vehicle Index
     ========================================================= */
  
  .vehicle-index-page{
    background:var(--shop-theme-bg, #fff);
    min-height:100dvh;
    padding-top:8px;
    padding-bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom) + 18px);
  }
  
  .vehicle-index-card{
    width:100%;
    padding:28px var(--shop-page-gutter, 28px) var(--shop-page-bottom-space, 40px);
    background:var(--shop-theme-bg, #fff);
    color:var(--shop-theme-text, #000);
  }

  .mobile-shell--shop .vehicle-index-card .vcard{
    background:var(--shop-theme-surface, #fff);
    border:1px solid rgba(17,17,17,.14);
    color:var(--shop-theme-text, #000);
  }

  .mobile-shell--shop .vehicle-index-card .vcard:visited,
  .mobile-shell--shop .vehicle-index-card .vcard:hover,
  .mobile-shell--shop .vehicle-index-card .vcard:active{
    color:var(--shop-theme-text, #000);
  }

  .mobile-shell--shop .vehicle-index-card .vcard__title{
    color:var(--shop-theme-text, #000);
  }

  .mobile-shell--shop .vehicle-index-card .vcard__media,
  .mobile-shell--shop .vehicle-index-card .vcard__empty{
    background:var(--shop-theme-surface-muted, #e9e9e9);
  }

  .mobile-shell--shop .vehicle-index-card .vcard__empty{
    color:var(--shop-theme-text, #000);
  }

  .mobile-shell--shop .vehicle-index-card .vcard__meta{
    color:var(--shop-theme-muted, #404040);
  }

  .mobile-shell--shop .vehicle-index-card .vcard__meta b{
    color:var(--shop-theme-text, #000);
  }
  
  .vehicle-index-sort{
    margin-bottom:12px;
  }
  
  .vehicle-index-sort .field{
    width:50%;
    max-width:180px;
  }
  
  .vehicle-index-sort .input--select{
    width:100%;
  }
  
  .vehicle-index-pagination{
    margin-top:16px;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
  }
  
  .vehicle-index-pagination__status{
    display:inline-flex;
    align-items:center;
    padding:0 10px;
    color:var(--shop-theme-text, #000);
    font-weight:800;
    font-size:13px;
    line-height:1;
  }
  
  .input-row{
    display:grid;
    grid-template-columns:1fr 100px;
    gap:10px;
  }
  
  /* =========================================================
     Vehicle Detail Favorite FAB
     ========================================================= */
  
  .vehicle-favorite-fab-wrap{
    position:fixed;
    right:max(2px, calc((100vw - 430px) / 2 + 2px));
    bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom) + 1px);
    z-index:140;
  }
  
  .vehicle-favorite-fab-form{
    margin:0;
  }
  
  .vehicle-favorite-fab{
    width:44px;
    height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:none;
    border-radius:999px;
    background:var(--shop-accent);
    color:var(--shop-theme-accent-text, #fff);
    cursor:pointer;
    box-shadow:0 6px 16px rgba(0,0,0,.24);
    transition:opacity .2s ease, transform .2s ease;
    padding:0;
  }
  
  .vehicle-favorite-fab:active{
    transform:scale(.96);
  }
  
  .vehicle-favorite-fab--active{
    opacity:1;
  }
  
  .vehicle-favorite-fab--inactive{
    opacity:.28;
  }
  
  .vehicle-favorite-fab__icon{
    display:block;
    color:var(--shop-theme-accent-text, #fff);
    font-size:20px;
    line-height:1;
    font-weight:700;
    font-family:
      "Arial Rounded MT Bold",
      "Hiragino Maru Gothic ProN",
      "Yu Gothic",
      sans-serif;
    transform:translateY(-1px);
  }
  
  /* =========================================================
     Vehicle Detail Shop Card
     ========================================================= */
  
  .vehicle-detail-shop-section{
    margin-top:18px;
  }
  
  .vehicle-detail-shop-card{
    display:block;
    width:100%;
    margin:0;
    padding:14px 14px 12px;
    border:2px solid var(--shop-accent);
    border-radius:8px;
    background:var(--shop-theme-surface, #fff);
    color:var(--shop-theme-text, #000);
    text-decoration:none;
  }
  
  .vehicle-detail-shop-card:visited,
  .vehicle-detail-shop-card:hover,
  .vehicle-detail-shop-card:active{
    color:var(--shop-theme-text, #000);
  }

  .vehicle-detail-shop-card__title-row{
    margin-bottom:10px;
  }
  
  .vehicle-detail-shop-card__title{
    color:var(--shop-theme-text, #000);
    font-size:16px;
    line-height:1.2;
    font-weight:900;
    word-break:break-word;
  }
  
  .vehicle-detail-shop-card__body{
    display:grid;
    grid-template-columns:96px minmax(0, 1fr);
    gap:12px;
    align-items:start;
  }
  
  .vehicle-detail-shop-card__thumb{
    width:100%;
    aspect-ratio:4/3;
    overflow:hidden;
    background:var(--shop-theme-surface-muted, #e9e9e9);
  }
  
  .vehicle-detail-shop-card__thumb-img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  
  .vehicle-detail-shop-card__thumb-empty{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--shop-theme-surface-muted, #e9e9e9);
    color:var(--shop-theme-text, #000);
    font-size:12px;
    font-weight:900;
    text-align:center;
  }

  .vehicle-detail-shop-card__thumb-empty--fallback{
    display:none;
  }
  
  .vehicle-detail-shop-card__info{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:3px;
  }
  
  .vehicle-detail-shop-card__row{
    display:grid;
    grid-template-columns:56px minmax(0, 1fr);
    gap:8px;
    align-items:start;
  }
  
  .vehicle-detail-shop-card__label{
    color:var(--shop-theme-muted, #404040);
    font-size:10px;
    line-height:1.35;
    font-weight:400;
    white-space:nowrap;
  }
  
  .vehicle-detail-shop-card__value{
    color:var(--shop-theme-text, #000);
    font-size:10px;
    line-height:1.35;
    font-weight:700;
    word-break:break-word;
  }
  
  .vehicle-detail-shop-card__cta-wrap{
    margin-top:10px;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:6px;
  }
  
  .vehicle-detail-shop-card__cta-text{
    color:var(--shop-theme-text, #000);
    font-size:12px;
    line-height:1.2;
    font-weight:900;
    white-space:nowrap;
  }
  
  .vehicle-detail-shop-card__cta-icon{
    position:relative;
    width:18px;
    height:18px;
    border-radius:999px;
    background:var(--shop-accent);
    flex:0 0 auto;
  }
  
  .vehicle-detail-shop-card__cta-icon::after{
    content:"";
    position:absolute;
    top:50%;
    left:50%;
    width:6px;
    height:6px;
    border-top:2px solid var(--shop-theme-accent-text, #fff);
    border-right:2px solid var(--shop-theme-accent-text, #fff);
    transform:translate(-60%, -50%) rotate(45deg);
  }
  
  /* =========================================================
     Map
     ========================================================= */
  
  .shop-dashboard__map-card{
    margin-top:10px;
  }
  
  .shop-dashboard__map-card iframe{
    width:100%;
    height:260px;
    border:0;
  }
  
  /* =========================================================
     Bottom nav
     ========================================================= */
  
  .app-tabbar{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
  
    background:#141414;
    border-top:none;
  }

  .is-shop-layout .app-tabbar--shop{
    background:var(--shop-theme-bg, #fff);
    border-top:1px solid rgba(17,17,17,.12);
    color:var(--shop-theme-text, #000);
  }
  
  .app-tabbar__inner{
    display:grid;
    grid-template-columns:repeat(4,1fr);
  }
  
  .app-tabbar__item{
    text-decoration:none;
    color:#fff;
    display:flex;
    flex-direction:column;
    align-items:center;
    padding:
      10px
      0
      calc(10px + env(safe-area-inset-bottom));
  }

  .is-shop-layout .app-tabbar--shop .app-tabbar__item{
    color:var(--shop-theme-text, #000);
  }

  .is-shop-layout .app-tabbar--shop .app-tabbar__item:visited,
  .is-shop-layout .app-tabbar--shop .app-tabbar__item:hover,
  .is-shop-layout .app-tabbar--shop .app-tabbar__item:active{
    color:var(--shop-theme-text, #000);
  }
  
  .app-tabbar__item.is-active{
    color:#fff;
    background:var(--shop-accent);
  }

  .is-shop-layout .app-tabbar--shop .app-tabbar__item.is-active,
  .is-shop-layout .app-tabbar--shop .app-tabbar__item.is-active:visited,
  .is-shop-layout .app-tabbar--shop .app-tabbar__item.is-active:hover,
  .is-shop-layout .app-tabbar--shop .app-tabbar__item.is-active:active{
    color:var(--shop-theme-accent-text, #fff);
  }
  
  .app-tabbar__icon svg{
    width:24px;
    height:24px;
  }
  
  .app-tabbar__label{
    font-size:11px;
    font-weight:800;
  }
  
  /* =========================================================
     Safe area
     ========================================================= */
  
  .with-shop-bottom-nav{
    padding-bottom:
      calc(
        var(--bottom-nav-h)
        + env(safe-area-inset-bottom)
        + 10px
      );
  }

  @media (min-width: 431px){
    body.is-shop-layout{
      --shop-page-gutter: 32px;
    }
  }
  
  /* =========================================================
     Responsive
     ========================================================= */
  
  @media (max-width: 420px){
    body.is-shop-layout{
      --shop-page-gutter: 24px;
    }

    .manufacturer-grid{
      grid-template-columns:repeat(4, minmax(0, 1fr));
      gap:12px 10px;
    }
  
    .manufacturer-card__name{
      font-size:12px;
    }
  
    .manufacturer-card__meta{
      font-size:10.5px;
    }
  
    .vehicle-model-list__item{
      padding:13px 12px;
      gap:10px;
    }
  
    .vehicle-model-list__title{
      font-size:14px;
    }
  
    .vehicle-model-list__sub{
      font-size:11px;
    }
  
    .vehicle-model-list__count{
      font-size:12px;
    }
  
    .vcard__grid{
      grid-template-columns:120px minmax(0, 1fr);
    }
  
    .vcard{
      padding:12px;
    }
  
    .vcard__title{
      font-size:16px;
    }
  
    .vcard__meta{
      font-size:12px;
    }

    .favorite-vehicles-card__header{
      gap:12px;
    }

    .favorite-vehicles-card__actions{
      gap:7px;
    }

    .favorite-vehicles-card__button{
      min-height:38px;
      padding:8px 13px;
      font-size:12px;
    }

    .favorite-vehicles-card__vehicle .vcard__grid{
      grid-template-columns:116px minmax(0, 1fr);
      gap:9px;
    }

    .favorite-vehicles-card__vehicle .vcard__meta{
      font-size:11px;
      line-height:1.32;
    }
  
    .vehicle-favorite-fab-wrap{
      right:2px;
      bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom) + 1px);
    }
  
    .vehicle-favorite-fab{
      width:42px;
      height:42px;
    }
  
    .vehicle-favorite-fab__icon{
      font-size:19px;
    }
  
    .vehicle-detail-shop-card{
      width:100%;
      padding:12px 12px 10px;
    }
  
    .vehicle-detail-shop-card__body{
      grid-template-columns:88px minmax(0, 1fr);
      gap:10px;
    }
  
    .vehicle-detail-shop-card__row{
      grid-template-columns:52px minmax(0, 1fr);
      gap:8px;
    }
  
    .vehicle-detail-shop-card__title{
      font-size:15px;
    }
  
    .vehicle-detail-shop-card__cta-text{
      font-size:11px;
    }

    .error-box{
      padding:9px 11px;
    }

    .error-box h2{
      font-size:15px;
    }
  }
  
  @media (max-width: 375px){
    body.is-shop-layout{
      --shop-page-gutter: 20px;
    }
  
    .vehicle-search-section__title{
      font-size:22px;
    }
  
    .manufacturer-grid{
      grid-template-columns:repeat(4, minmax(0, 1fr));
      gap:10px 8px;
    }
  
    .manufacturer-card__name{
      font-size:11px;
    }
  
    .manufacturer-card__meta{
      font-size:10px;
    }
  
    .vehicle-model-list__item{
      padding:12px 10px;
      gap:10px;
    }
  
    .vehicle-model-list__title{
      font-size:13px;
    }
  
    .vehicle-model-list__sub{
      font-size:10px;
    }
  
    .vehicle-model-list__count{
      font-size:11px;
    }
  
    .vehicle-model-list__arrow{
      font-size:20px;
    }
  
    .toprow{
      flex-direction:column;
      align-items:stretch;
    }
  
    .toprow__right{
      align-items:stretch;
    }
  
    .toprow__right .btn,
    .toprow__right .btn-secondary,
    .toprow__right .btn--secondary{
      width:100%;
    }

    .inquiry-form-card__header{
      flex-direction:row;
      align-items:center;
    }

    .inquiry-form-card__header-actions{
      align-items:flex-end;
    }

    .inquiry-form-card__header-actions .inquiry-form-card__history-button{
      width:auto;
    }
  
    .vcard__grid{
      grid-template-columns:1fr;
    }
  
    .vcard__media{
      aspect-ratio:4/3;
    }

    .favorite-vehicles-card__header{
      flex-direction:column;
      gap:14px;
    }

    .favorite-vehicles-card__actions{
      width:100%;
      align-items:stretch;
    }

    .favorite-vehicles-card__button{
      flex:1 1 0;
      min-width:0;
    }

    .favorite-vehicles-card__vehicle .vcard__grid{
      grid-template-columns:108px minmax(0, 1fr);
      align-items:center;
    }

    .favorite-vehicles-card__vehicle .vcard__media{
      aspect-ratio:4/3;
    }
  
    .h1{
      font-size:28px;
    }
  
    .vehicle-favorite-fab-wrap{
      right:2px;
      bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom) + 1px);
    }
  
    .vehicle-favorite-fab{
      width:40px;
      height:40px;
    }
  
    .vehicle-favorite-fab__icon{
      font-size:18px;
    }
  
    .vehicle-detail-shop-card{
      width:100%;
      padding:10px;
    }
  
    .vehicle-detail-shop-card__body{
      grid-template-columns:84px minmax(0, 1fr);
      gap:10px;
    }
  
    .vehicle-detail-shop-card__thumb{
      max-width:none;
    }
  
    .vehicle-detail-shop-card__row{
      grid-template-columns:48px minmax(0, 1fr);
      gap:8px;
    }
  
    .vehicle-detail-shop-card__label{
      font-size:9px;
    }
  
    .vehicle-detail-shop-card__value{
      font-size:9px;
    }
  
    .vehicle-detail-shop-card__cta-wrap{
      margin-top:8px;
    }

    .error-box{
      padding:8px 10px;
    }

    .error-box h2{
      font-size:14px;
      white-space:normal;
    }

    .error-box ul{
      padding-left:16px;
    }
  }
