/* Shared visual language with PC and the native mini program; no flow changes. */
:root {
  --brand:#0052d9;--brand-bg:#edf3ff;--brand-deep:#102c50;
  --page:#f2f5fa;--mute:#f0f4f9;--line:#e0e7f0;
  --t1:#203047;--t2:#4d5e75;--t3:#617189;
  --shadow:0 2px 8px rgba(16,44,80,.035),0 10px 28px -20px rgba(16,44,80,.16);
}
html,body {overflow-x:clip}
body {-webkit-font-smoothing:antialiased}
h1,h2,h3 {min-width:0;overflow-wrap:anywhere}
input::placeholder,textarea::placeholder {color:var(--t3);opacity:1}
.m-header {background:#fff;box-shadow:0 2px 12px rgba(16,44,80,.025)}
.m-brand img {object-fit:contain;border:0;border-radius:0;background:#fff}
.m-brand b {letter-spacing:.1px}
.m-brand small {color:var(--t3)}
.page-head h1 {font-size:24px;letter-spacing:0}
.section-title {margin-top:26px;font-size:18px;line-height:1.5}
.section-title a {min-height:44px;display:inline-flex;align-items:center}
.mobile-carousel {border-radius:20px;box-shadow:var(--shadow)}
.carousel-slide>div {padding-bottom:22px}
.carousel-controls {border-top:1px solid var(--line);color:var(--t2);gap:6px}
.carousel-controls button {color:var(--t2)}
.mobile-shortcuts {gap:10px}
.mobile-shortcuts button {min-height:96px;padding:14px 5px;box-shadow:none;gap:10px}
.mobile-shortcuts .mobile-icon {border-radius:12px;background:var(--brand-bg);width:40px;height:40px}
.mobile-shortcuts span {line-height:1.5}
.list-stack {gap:14px}
.card-top .route-link,.list-card .route {font-size:18px;line-height:1.5}
.card-sub {margin-top:6px}
.card-kv {background:var(--mute);gap:14px 12px;margin-block:16px}
.card-kv small {color:var(--t3)}
.card-kv b {font-size:14px;line-height:1.65;margin-top:4px}
.card-kv b,.stat b,.provider-metrics b,.plan-price,.mp-stats b,.price {font-variant-numeric:tabular-nums}
.tag {background:var(--mute)}
.btn {transition:background-color .15s,border-color .15s,box-shadow .15s}
.btn-primary {box-shadow:0 3px 8px rgba(0,82,217,.13)}
.btn-cta {background:#b9580d}
.btn-outline {border-color:#c8d4e4}
.field label,.mp-field-label {color:var(--t2);font-weight:600}
.v10-modes label,.v10-note {border-radius:10px}
.v10-steps li {border-radius:3px 3px 0 0}
.v10-steps li.active {background:var(--brand-bg)}
.stat {min-height:112px;padding:18px}
.stat b {font-size:30px;margin-top:8px}
.mp-identity,.mp-guest {background:#edf3ff;border-color:#dae5f5}
.mp-group,.mp-stats,.mp-details {box-shadow:var(--shadow)}
.mp-row {min-height:62px}
.mp-row .mp-row-main {min-width:0}
.bottom-nav {padding-inline:max(8px,env(safe-area-inset-right));box-shadow:0 -4px 20px rgba(16,44,80,.045)}
.nav-item.active {background:var(--brand-bg)}
.bottom-sheet {box-shadow:0 -12px 48px rgba(16,44,80,.16)}
.sheet-head {border-bottom:1px solid var(--line)}
.sheet-body {line-height:1.75}
.sheet-head h2 {padding-right:4px}
.empty {border-style:solid;background:#fff}
.quick-item:active,.mobile-shortcuts button:active,.nav-item:active,.mp-row:active {background-color:#edf3ff}
@media(min-width:768px) {
  .mobile-shortcuts {grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:400px) {
  .m-header .icon-btn {min-width:44px;width:44px;min-height:44px}
  .m-brand b {font-size:14px}
}
@media(max-width:360px) {
  .card-top .route-link,.list-card .route {font-size:17px}
  .section-title {font-size:17px}
  .mobile-shortcuts button {min-height:92px}
  .m-brand small {max-width:115px}
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
