*{box-sizing:border-box;margin:0;padding:0}:root{--primary-blue:#2b6cb0;--dark-blue:#1a4b80;--header-blue:#1b3a5c;--accent-orange:#f08519;--light-blue-bg:#ebf4fa;--white:#fff;--text-dark:#333;--text-gray:#999;--text-light:#666;--available-green:#21a038;--waitlist-orange:#ff8c00;--sold-out-gray:#ccc;--price-red:#e4393c;--border:#e0e0e0;--border-light:#f0f0f0;--bg-gray:#f5f5f5;--font:"Microsoft YaHei", "PingFang SC", -apple-system, sans-serif}body{font-family:var(--font);color:var(--text-dark);background:var(--bg-gray);min-height:100vh;font-size:14px}#root{flex-direction:column;min-height:100vh;display:flex}a{color:var(--primary-blue);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:var(--font)}input,select,textarea{font-family:var(--font)}.container{max-width:1200px;margin:0 auto;padding:0 20px}.toast-container{z-index:9999;flex-direction:column;gap:8px;display:flex;position:fixed;top:90px;right:20px}.toast{color:#fff;cursor:pointer;border-radius:4px;min-width:200px;max-width:320px;padding:10px 16px;font-size:14px;animation:.3s slideIn;box-shadow:0 2px 8px #0003}.toast.success{background:var(--available-green)}.toast.warning{background:#ff8c00}.toast.error{background:#f5222d}.toast.info{background:var(--primary-blue)}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.train-badge{color:#fff;border-radius:3px;justify-content:center;align-items:center;min-width:20px;height:20px;margin-right:4px;padding:0 5px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.train-badge.G{background:#cf1322}.train-badge.D{background:#1890ff}.train-badge.C{background:#722ed1}.train-badge.K{background:#52c41a}.train-badge.T{background:#13c2c2}.train-badge.Z{background:#2f54eb}.avail-green{color:var(--available-green);font-weight:700}.avail-orange{color:var(--waitlist-orange);font-weight:700}.avail-gray{color:var(--sold-out-gray)}.avail-dash{color:#ccc}.status-badge{border-radius:3px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.status-paid{color:#52c41a;background:#f6ffed;border:1px solid #b7eb8f}.status-pending{color:#fa8c16;background:#fff7e6;border:1px solid #ffd591}.status-done{color:#8c8c8c;background:#f5f5f5;border:1px solid #d9d9d9}.status-refunded{color:#f5222d;background:#fff1f0;border:1px solid #ffa39e}.status-changed{color:#1890ff;background:#e6f7ff;border:1px solid #91d5ff}.status-cancelled{color:#8c8c8c;background:#f5f5f5;border:1px solid #d9d9d9}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.header{z-index:1000;position:sticky;top:0;box-shadow:0 2px 8px #0000001a}.header-topbar{background:#f5f5f5;border-bottom:1px solid #e0e0e0;align-items:center;height:32px;font-size:12px;display:flex}.header-topbar-inner{justify-content:space-between;align-items:center;width:100%;display:flex}.topbar-links{align-items:center;gap:4px;display:flex}.topbar-link{color:#666;cursor:pointer;transition:color .2s}.topbar-link:hover{color:var(--primary-blue)}.topbar-sep{color:#ccc;margin:0 4px}.topbar-right{align-items:center;gap:4px;display:flex}.topbar-user{color:var(--primary-blue);cursor:pointer;font-weight:500}.topbar-user:hover{text-decoration:underline}.topbar-notif-badge{color:#fff;cursor:pointer;background:#f5222d;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;margin-left:2px;padding:0 4px;font-size:10px;font-weight:700;display:inline-flex}.header-logo-bar{background:#fff;border-bottom:1px solid #e0e0e0;align-items:center;height:72px;display:flex}.header-logo-inner{justify-content:space-between;align-items:center;width:100%;display:flex}.header-logo{align-items:center;gap:12px;display:flex}.logo-icon{flex-shrink:0}.logo-text{flex-direction:column;gap:2px;display:flex}.logo-cn{color:#333;letter-spacing:1px;font-size:22px;font-weight:700}.logo-num{color:var(--primary-blue);margin-left:2px}.logo-en{color:#999;letter-spacing:1px;font-size:11px}.header-slogan{color:#999;letter-spacing:2px;font-size:14px}.header-nav{background:var(--primary-blue);height:42px}.header-nav-inner{justify-content:space-between;align-items:center;height:100%;display:flex}.nav-main{align-items:center;gap:0;height:100%;display:flex}.nav-item-wrap{align-items:center;height:100%;display:flex;position:relative}.nav-item{color:#fff;cursor:pointer;white-space:nowrap;border-bottom:2px solid #0000;align-items:center;gap:2px;height:42px;padding:0 18px;font-size:14px;line-height:42px;text-decoration:none;transition:background .2s;display:flex}.nav-item:hover{background:#ffffff1f;text-decoration:none}a.nav-item.active,.nav-item-wrap.active .nav-item{background:#ffffff2e;border-bottom:2px solid #fff;font-weight:700}.nav-arrow-icon{margin-left:3px;font-size:10px}.nav-dropdown{z-index:100;background:#fff;border:1px solid #e0e0e0;border-radius:0 0 4px 4px;min-width:100px;position:absolute;top:42px;left:0;box-shadow:0 4px 12px #00000026}.nav-dropdown-item{color:#333;cursor:pointer;white-space:nowrap;padding:10px 18px;font-size:14px;transition:background .15s}.nav-dropdown-item:hover{background:var(--light-blue-bg);color:var(--primary-blue)}.nav-right{align-items:center;gap:2px;display:flex}.nav-link-sm{color:#ffffffd9;cursor:pointer;border-radius:3px;padding:4px 12px;font-size:13px;transition:all .2s}.nav-link-sm:hover{color:#fff;background:#ffffff1f}.station-selector{z-index:500;background:#fff;border:1px solid #d0d0d0;border-radius:4px;width:420px;position:absolute;top:44px;left:0;box-shadow:0 6px 20px #00000026}.ss-header{border-bottom:1px solid var(--border);background:#fafafa;align-items:center;padding:10px 14px;display:flex}.ss-label{color:var(--text-gray);white-space:nowrap;margin-right:10px;font-size:13px}.ss-search-wrap{flex:1;position:relative}.ss-search-input{border:1px solid var(--border);border-radius:3px;outline:none;width:100%;height:32px;padding:0 28px 0 10px;font-size:13px;transition:border-color .2s}.ss-search-input:focus{border-color:var(--primary-blue)}.ss-clear{color:#999;cursor:pointer;background:0 0;border:none;font-size:16px;line-height:1;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.ss-results{max-height:280px;overflow-y:auto}.ss-no-result{text-align:center;color:var(--text-gray);padding:20px;font-size:13px}.ss-result-item{cursor:pointer;justify-content:space-between;align-items:center;padding:8px 14px;transition:background .15s;display:flex}.ss-result-item:hover{background:var(--light-blue-bg)}.ss-result-item.selected{background:var(--light-blue-bg);color:var(--primary-blue);font-weight:700}.ss-station-name{font-size:14px}.ss-station-city{color:var(--text-gray);font-size:12px}.ss-tabs{border-bottom:1px solid var(--border);display:flex}.ss-tab{color:var(--text-gray);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:8px;font-size:13px;transition:all .2s}.ss-tab.active{color:var(--primary-blue);border-bottom-color:var(--primary-blue);font-weight:700}.ss-tab:hover{color:var(--primary-blue)}.ss-hot-section{max-height:280px;padding:12px 14px;overflow-y:auto}.ss-hot-label{color:var(--text-gray);margin-bottom:8px;font-size:12px}.ss-hot-grid{flex-wrap:wrap;gap:6px;display:flex}.ss-hot-item{border:1px solid var(--border);cursor:pointer;color:var(--text-dark);border-radius:3px;padding:5px 12px;font-size:13px;transition:all .15s}.ss-hot-item:hover{border-color:var(--primary-blue);color:var(--primary-blue);background:var(--light-blue-bg)}.ss-hot-item.selected{border-color:var(--primary-blue);color:var(--primary-blue);background:var(--light-blue-bg);font-weight:700}.ss-az-section{flex-direction:column;max-height:320px;display:flex;overflow:hidden}.ss-az-nav{border-bottom:1px solid var(--border-light);background:#fafafa;flex-wrap:wrap;gap:2px;padding:8px 14px;display:flex}.ss-az-letter{width:22px;height:22px;color:var(--primary-blue);cursor:pointer;border-radius:2px;justify-content:center;align-items:center;font-size:11px;font-weight:700;text-decoration:none;display:flex}.ss-az-letter:hover{background:var(--light-blue-bg);text-decoration:none}.ss-az-list{flex:1;max-height:260px;padding:8px 14px;overflow-y:auto}.ss-az-group{margin-bottom:10px}.ss-az-group-label{color:var(--primary-blue);border-bottom:1px solid var(--border-light);margin-bottom:6px;padding:4px 0;font-size:13px;font-weight:700}.ss-az-group-items{flex-wrap:wrap;gap:5px;display:flex}.ss-az-item{border:1px solid var(--border);cursor:pointer;color:var(--text-dark);border-radius:3px;padding:4px 10px;font-size:12px;transition:all .15s}.ss-az-item:hover{border-color:var(--primary-blue);color:var(--primary-blue)}.ss-az-item.selected{border-color:var(--primary-blue);color:#fff;background:var(--primary-blue)}.homepage{background:var(--bg-gray);flex-direction:column;min-height:100vh;display:flex}.homepage-banner{flex:1;position:relative}.banner-bg{z-index:0;background:linear-gradient(135deg,#2b6cb0 0%,#1a4b80 60%,#143a66 100%);height:240px;position:absolute;top:0;left:0;right:0}.homepage-body{z-index:1;align-items:flex-start;gap:16px;padding-top:30px;padding-bottom:40px;display:flex;position:relative}.home-sidebar{background:#fffffff2;border-radius:4px;flex-shrink:0;width:160px;overflow:hidden;box-shadow:0 2px 8px #0000001a}.sidebar-title{background:var(--primary-blue);color:#fff;letter-spacing:1px;padding:12px 16px;font-size:14px;font-weight:700}.sidebar-link{cursor:pointer;color:var(--text-dark);border-bottom:1px solid var(--border-light);align-items:center;padding:11px 16px;font-size:13px;transition:all .2s;display:flex}.sidebar-link:last-child{border-bottom:none}.sidebar-link:hover{background:var(--light-blue-bg);color:var(--primary-blue)}.sidebar-link.active{background:var(--light-blue-bg);color:var(--primary-blue);border-left:3px solid var(--primary-blue);font-weight:700}.sidebar-label{font-size:13px}.home-center{flex:1;max-width:560px}.search-card{background:#fff;border-radius:4px;overflow:visible;box-shadow:0 4px 16px #00000026}.trip-tabs{border-bottom:2px solid var(--border);background:#fafafa;display:flex}.trip-tab{color:var(--text-gray);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:14px 28px;font-size:15px;font-weight:500;transition:all .2s}.trip-tab.active{color:var(--primary-blue);border-bottom-color:var(--primary-blue);background:#fff;font-weight:700}.trip-tab:hover:not(.active){color:var(--primary-blue)}.search-form{padding:24px}.station-row{align-items:flex-end;gap:12px;margin-bottom:16px;display:flex}.station-field{flex:1;position:relative}.field-label{color:var(--text-gray);margin-bottom:6px;font-size:12px;display:block}.station-display{border:1px solid var(--border);height:42px;color:var(--text-dark);cursor:pointer;background:#fff;border-radius:4px;align-items:center;padding:0 12px;font-size:16px;font-weight:700;transition:border-color .2s;display:flex}.station-display:hover{border-color:var(--primary-blue)}.station-display .placeholder{color:#ccc;font-size:14px;font-weight:400}.swap-btn{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:1px;transition:all .2s;display:flex}.swap-btn:hover{border-color:var(--primary-blue);background:var(--light-blue-bg);transform:rotate(180deg)}.date-row{gap:12px;margin-bottom:16px;display:flex}.date-field{flex:1}.date-input{border:1px solid var(--border);width:100%;height:42px;color:var(--text-dark);background:#fff;border-radius:4px;outline:none;padding:0 12px;font-size:14px;transition:border-color .2s}.date-input:focus{border-color:var(--primary-blue);box-shadow:0 0 0 2px #2b6cb01f}.options-row{gap:24px;margin-bottom:20px;display:flex}.option-label{color:var(--text-dark);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:14px;display:flex}.option-label input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary-blue)}.search-btn{background:var(--accent-orange);color:#fff;letter-spacing:6px;cursor:pointer;border:none;border-radius:4px;width:100%;height:46px;font-size:18px;font-weight:700;transition:background .2s,transform .1s}.search-btn:hover{background:#e07a10}.search-btn:active{transform:scale(.99)}.recent-section{background:#fff;border-radius:4px;margin-top:14px;padding:14px 18px;box-shadow:0 1px 4px #0000000f}.recent-title{color:var(--text-gray);margin-bottom:10px;font-size:13px}.recent-list{flex-wrap:wrap;gap:8px;display:flex}.recent-chip{background:var(--light-blue-bg);color:var(--primary-blue);cursor:pointer;border:1px solid #c3d9ee;border-radius:20px;padding:5px 14px;font-size:12px;transition:background .2s;display:inline-block}.recent-chip:hover{border-color:var(--primary-blue);background:#d0e8f8}.home-right{flex-direction:column;flex-shrink:0;gap:12px;width:220px;display:flex}.info-card{background:#fff;border-radius:4px;overflow:hidden;box-shadow:0 1px 4px #0000000f}.info-card-title{background:var(--light-blue-bg);color:var(--primary-blue);border-bottom:1px solid #d8e8f3;padding:10px 14px;font-size:13px;font-weight:700}.info-item-text{color:var(--text-light);border-bottom:1px solid var(--border-light);padding:8px 14px;font-size:12px;line-height:1.6}.info-item-text:last-child{border-bottom:none}.member-info-row{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;display:flex}.member-info-row:last-child{border-bottom:none}.member-points{color:var(--price-red);font-size:16px;font-weight:700}.member-level{color:var(--primary-blue);font-weight:700}.promo-card{background:linear-gradient(135deg,#2b6cb0,#1a4b80)}.promo-card .info-card-title{color:#fff;background:#ffffff1a;border-bottom-color:#ffffff26}.promo-card .info-item-text{color:#ffffffd9;border-bottom-color:#ffffff1a}.homepage-footer{border-top:1px solid var(--border);background:#fff;margin-top:auto;padding:20px 0}.footer-links{color:var(--text-gray);justify-content:center;gap:8px;margin-bottom:8px;font-size:12px;display:flex}.footer-links span{cursor:pointer}.footer-links span:hover:not(:nth-child(2n)){color:var(--primary-blue)}.footer-copyright{text-align:center;color:#bbb;font-size:11px}.search-page{background:var(--bg-gray);flex-direction:column;min-height:100vh;display:flex}.search-content{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:16px 20px}.search-header-bar{background:#fff;border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:10px;padding:14px 20px;display:flex;box-shadow:0 1px 4px #0000000f}.search-route-info{align-items:center;gap:16px;display:flex}.search-title{color:var(--text-dark);align-items:center;gap:8px;font-size:18px;font-weight:700;display:flex}.search-from,.search-to{color:var(--primary-blue)}.search-arrow{color:var(--text-gray);font-size:16px}.search-result-count{color:var(--text-gray);font-size:13px}.date-nav{align-items:center;gap:12px;display:flex}.date-nav-btn{border:1px solid var(--border);color:var(--primary-blue);cursor:pointer;background:#fff;border-radius:3px;padding:5px 12px;font-size:13px;transition:all .2s}.date-nav-btn:hover{background:var(--light-blue-bg);border-color:var(--primary-blue)}.date-nav-current{color:var(--text-dark);text-align:center;min-width:160px;font-size:15px;font-weight:700}.date-week{color:var(--text-gray);margin-left:4px;font-size:13px;font-weight:400}.filter-bar{background:#fff;border-radius:4px;flex-direction:column;gap:8px;margin-bottom:10px;padding:12px 20px;display:flex;box-shadow:0 1px 4px #0000000f}.filter-section{align-items:center;gap:8px;display:flex}.filter-label{color:var(--text-gray);white-space:nowrap;min-width:70px;font-size:13px}.filter-group{flex-wrap:wrap;gap:6px;display:flex}.filter-chip{border:1px solid var(--border);color:var(--text-dark);cursor:pointer;background:#fff;border-radius:3px;padding:4px 14px;font-size:12px;transition:all .2s}.filter-chip:hover{border-color:var(--primary-blue);color:var(--primary-blue)}.filter-chip.active{background:var(--primary-blue);border-color:var(--primary-blue);color:#fff}.results-table-wrap{background:#fff;border-radius:4px;overflow-x:auto;box-shadow:0 1px 4px #0000000f}.results-table{border-collapse:collapse;width:100%;min-width:1000px;font-size:13px}.results-table thead tr{background:#f0f5fa;border-bottom:2px solid #d8e4ee}.results-table th{text-align:center;color:var(--text-dark);white-space:nowrap;padding:10px 6px;font-size:12px;font-weight:600}.th-train{min-width:80px}.sort-th{cursor:pointer;-webkit-user-select:none;user-select:none}.sort-th:hover{color:var(--primary-blue)}.results-table tbody tr{border-bottom:1px solid #f0f0f0;transition:background .15s}.results-table tbody tr:hover{background:#f7fbff}.row-soldout{opacity:.55}.results-table td{text-align:center;vertical-align:middle;padding:10px 6px}.train-no-cell{white-space:nowrap;min-width:80px}.train-no-link{color:var(--primary-blue);font-size:14px;font-weight:700;text-decoration:none}.train-no-link:hover{text-decoration:underline}.station-names-cell{min-width:80px}.station-pair{flex-direction:column;gap:4px;font-size:12px;display:flex}.dep-station{color:var(--text-dark);font-weight:500}.arr-station{color:var(--text-gray)}.time-cell{min-width:60px}.time-big{color:var(--text-dark);font-size:18px;font-weight:700}.dep-time-cell .time-big{color:var(--available-green)}.arr-time-cell .time-big{color:var(--price-red)}.duration-cell{color:var(--text-gray);min-width:65px;font-size:12px}.avail-cell{text-align:center;min-width:52px}.avail-price{color:var(--accent-orange);margin-top:2px;font-size:11px}.book-btn{background:var(--primary-blue);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:3px;padding:5px 14px;font-size:13px;transition:background .2s}.book-btn:hover{background:var(--dark-blue)}.book-btn-soldout{cursor:not-allowed;background:#ccc}.book-btn-soldout:hover{background:#bbb}.book-btn-waitlist{background:var(--waitlist-orange)}.book-btn-waitlist:hover{background:#e07a00}.no-results{text-align:center;padding:60px 20px}.no-results-text{color:var(--text-dark);margin-bottom:8px;font-size:16px;font-weight:500}.no-results-hint{color:var(--text-gray);font-size:13px}.booking-page{background:#f5f5f5;min-height:100vh}.booking-content{max-width:860px;margin:0 auto;padding:20px}.train-header-card{color:#fff;background:linear-gradient(135deg,#2b6cb0 0%,#1a4b80 100%);border-radius:8px;margin-bottom:16px;padding:20px 28px}.train-header-date{color:#fffc;margin-bottom:12px;font-size:13px}.train-header-route{justify-content:space-between;align-items:center;display:flex}.route-station{text-align:center}.route-time{margin-bottom:6px;font-size:32px;font-weight:700;line-height:1}.route-name{color:#ffffffd9;font-size:14px}.route-center{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.route-train-no{font-size:22px;font-weight:700}.route-duration{color:#ffffffbf;font-size:13px}.booking-section{background:#fff;border-radius:6px;margin-bottom:12px;padding:20px 24px;box-shadow:0 1px 4px #00000014}.section-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.section-title{color:var(--text-dark);margin-bottom:14px;font-size:16px;font-weight:700}.section-hint{color:var(--text-gray);font-size:12px}.seat-class-list{flex-wrap:wrap;gap:12px;display:flex}.seat-class-card{border:2px solid var(--border);cursor:pointer;text-align:center;border-radius:6px;min-width:100px;padding:12px 18px;transition:all .2s}.seat-class-card:hover:not(.unavail),.seat-class-card.selected{border-color:var(--primary-blue);background:var(--light-blue-bg)}.seat-class-card.unavail{opacity:.5;cursor:not-allowed}.seat-class-name{color:var(--text-dark);margin-bottom:4px;font-size:14px;font-weight:500}.seat-class-avail{margin-bottom:4px;font-size:12px}.seat-class-price{color:var(--accent-orange);font-size:16px;font-weight:700}.passenger-list{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.passenger-row{border:1px solid var(--border);cursor:pointer;border-radius:6px;align-items:center;gap:12px;padding:12px 14px;transition:all .2s;display:flex}.passenger-row:hover,.passenger-row.selected{border-color:var(--primary-blue);background:var(--light-blue-bg)}.passenger-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary-blue);flex-shrink:0}.passenger-info{flex:1;align-items:center;gap:12px;display:flex}.passenger-name{min-width:60px;font-size:15px;font-weight:700}.passenger-id{color:var(--text-gray);font-size:13px}.passenger-type{color:#1890ff;background:#e6f7ff;border-radius:10px;padding:2px 6px;font-size:11px}.add-passenger-link{color:var(--primary-blue);cursor:pointer;padding:6px 0;font-size:14px}.add-passenger-link:hover{text-decoration:underline}.seat-pref-section{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.seat-pref-title{color:var(--text-dark);margin-bottom:10px;font-size:14px;font-weight:500}.seat-pref-row{align-items:center;gap:16px;margin-bottom:8px;display:flex}.seat-pref-name{width:60px;font-size:14px}.seat-pref-options{gap:16px;display:flex}.pref-radio{cursor:pointer;align-items:center;gap:4px;font-size:13px;display:flex}.pref-radio input{accent-color:var(--primary-blue)}.contact-row{align-items:center;gap:16px;display:flex}.contact-label{color:var(--text-dark);white-space:nowrap;font-size:14px}.contact-input{border:1px solid var(--border);border-radius:4px;outline:none;flex:1;max-width:200px;height:36px;padding:0 12px;font-size:14px}.contact-input:focus{border-color:var(--primary-blue)}.contact-hint{color:#999;white-space:nowrap;font-size:12px}.contact-check{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.contact-check input{accent-color:var(--primary-blue)}.price-summary{text-align:right;background:#fff;border-radius:6px;margin-bottom:12px;padding:16px 24px;box-shadow:0 1px 4px #00000014}.price-label{color:var(--text-dark);font-size:14px}.price-total{color:#f5222d;margin:0 8px;font-size:24px;font-weight:700}.price-hint{color:var(--text-gray);font-size:12px}.submit-order-btn{background:var(--primary-blue);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;height:48px;font-size:18px;font-weight:700;transition:background .2s}.submit-order-btn:hover{background:var(--dark-blue)}.order-list-page{background:#f5f5f5;min-height:100vh}.order-content{max-width:900px;margin:0 auto;padding:20px}.order-card-wrap{background:#fff;border-radius:6px;overflow:hidden;box-shadow:0 1px 4px #00000014}.order-tabs{border-bottom:1px solid var(--border);background:#fff;display:flex}.order-tab{color:var(--text-gray);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:16px 28px;font-size:15px;transition:all .2s;display:flex}.order-tab.active{color:var(--primary-blue);border-bottom-color:var(--primary-blue);font-weight:700}.tab-count{background:var(--primary-blue);color:#fff;border-radius:10px;padding:1px 6px;font-size:11px;font-weight:700}.order-list{flex-direction:column;gap:12px;padding:16px;display:flex}.order-empty{text-align:center;color:var(--text-gray);padding:60px 20px}.order-empty-icon{margin-bottom:16px;font-size:48px}.order-card{border:1px solid var(--border);border-radius:6px;transition:box-shadow .2s;overflow:hidden}.order-card:hover{box-shadow:0 2px 10px #0000001a}.order-card-header{background:var(--light-blue-bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.order-train-info{align-items:center;gap:10px;display:flex}.order-train-no{color:var(--primary-blue);font-size:16px;font-weight:700}.order-route{color:var(--text-dark);font-size:14px;font-weight:500}.order-card-body{grid-template-columns:1fr 1fr 1fr;gap:8px;padding:14px 16px;display:grid}.order-info-row{align-items:center;gap:4px;display:flex}.order-info-label{color:var(--text-gray);white-space:nowrap;font-size:13px}.order-info-value{color:var(--text-dark);font-size:13px}.order-price{color:#f5222d;font-size:16px;font-weight:700}.order-card-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:10px 16px;display:flex}.view-detail-btn{border:1px solid var(--primary-blue);color:var(--primary-blue);cursor:pointer;background:#fff;border-radius:4px;padding:6px 20px;font-size:13px;transition:all .2s}.view-detail-btn:hover{background:var(--light-blue-bg)}.pay-btn{background:var(--accent-orange);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:6px 20px;font-size:13px;transition:background .2s}.pay-btn:hover{background:#e07a10}.order-detail-page{background:#f5f5f5;min-height:100vh}.detail-content{max-width:900px;margin:0 auto;padding:20px}.status-banner{border:1px solid;border-radius:6px;align-items:center;gap:10px;margin-bottom:14px;padding:14px 20px;display:flex}.status-icon,.status-text{font-size:18px;font-weight:700}.status-sub{opacity:.8;margin-left:8px;font-size:13px}.detail-train-card{color:#fff;background:linear-gradient(135deg,#2b6cb0 0%,#1a4b80 100%);border-radius:8px;margin-bottom:14px;padding:20px 28px}.detail-date{color:#fffc;margin-bottom:12px;font-size:13px}.detail-route{justify-content:space-between;align-items:center;display:flex}.detail-station{text-align:center}.detail-time{margin-bottom:6px;font-size:32px;font-weight:700}.detail-station-name{color:#ffffffd9;font-size:14px}.detail-center{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.detail-train-no{font-size:22px;font-weight:700}.detail-section{background:#fff;border-radius:6px;margin-bottom:14px;padding:20px 24px;box-shadow:0 1px 4px #00000014}.detail-section-title{color:var(--text-dark);margin-bottom:14px;font-size:16px;font-weight:700}.passenger-table{border-collapse:collapse;width:100%;font-size:14px}.passenger-table th{background:var(--light-blue-bg);text-align:left;color:var(--text-dark);border-bottom:1px solid var(--border);padding:8px 12px;font-weight:600}.passenger-table td{border-bottom:1px solid var(--border);color:var(--text-dark);padding:10px 12px}.passenger-table tr:last-child td{border-bottom:none}.order-info-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.info-item{gap:8px;display:flex}.info-key{color:var(--text-gray);white-space:nowrap;font-size:13px}.info-val{color:var(--text-dark);font-size:13px}.price-red{color:#f5222d;font-weight:700;font-size:16px!important}.detail-actions{flex-wrap:wrap;align-items:center;gap:12px;padding:4px 0;display:flex}.action-back{border:1px solid var(--border);color:var(--text-gray);cursor:pointer;background:0 0;border-radius:4px;padding:8px 16px;font-size:14px;transition:all .2s}.action-back:hover{border-color:var(--primary-blue);color:var(--primary-blue)}.action-pay{background:var(--accent-orange);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:8px 24px;font-size:14px;font-weight:700;transition:background .2s}.action-pay:hover{background:#e07a10}.action-cancel{color:#f5222d;cursor:pointer;background:0 0;border:1px solid #f5222d;border-radius:4px;padding:8px 20px;font-size:14px;transition:all .2s}.action-cancel:hover{background:#fff1f0}.action-change{background:var(--primary-blue);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:8px 20px;font-size:14px;transition:background .2s}.action-change:hover{background:var(--dark-blue)}.action-refund{border:1px solid var(--primary-blue);color:var(--primary-blue);cursor:pointer;background:0 0;border-radius:4px;padding:8px 20px;font-size:14px;transition:all .2s}.action-refund:hover{background:var(--light-blue-bg)}.action-buy-again{background:var(--accent-orange);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:8px 24px;font-size:14px;font-weight:700}.action-buy-again:hover{background:#e07a10}.payment-content{max-width:500px;margin:0 auto;padding:40px 20px}.payment-card{background:#fff;border-radius:8px;padding:28px 32px;box-shadow:0 4px 16px #0000001a}.payment-title{color:var(--text-dark);text-align:center;margin-bottom:16px;font-size:22px;font-weight:700}.payment-timer{color:#fa8c16;background:#fff7e6;border:1px solid #ffd591;border-radius:4px;align-items:center;gap:8px;margin-bottom:20px;padding:10px 16px;font-size:14px;display:flex}.timer-value{margin-left:4px;font-size:20px;font-weight:700}.payment-summary{border:1px solid var(--border);border-radius:4px;margin-bottom:20px}.payment-row{border-bottom:1px solid var(--border);justify-content:space-between;padding:10px 16px;font-size:14px;display:flex}.payment-row:last-child{border-bottom:none}.total-row{background:#f9f9f9;font-weight:500}.payment-total{color:#f5222d;font-size:20px;font-weight:700}.payment-methods h4{color:var(--text-dark);margin-bottom:12px;font-size:15px;font-weight:500}.payment-method-list{gap:12px;margin-bottom:24px;display:flex}.payment-method-card{border:1px solid var(--border);cursor:pointer;border-radius:6px;flex-direction:column;flex:1;align-items:center;gap:6px;padding:12px;font-size:13px;transition:all .2s;display:flex}.payment-method-card:hover{border-color:var(--primary-blue);background:var(--light-blue-bg)}.payment-method-icon{font-size:24px}.confirm-payment-btn{background:var(--accent-orange);color:#fff;cursor:pointer;border:none;border-radius:4px;width:100%;height:46px;margin-bottom:12px;font-size:17px;font-weight:700;transition:background .2s}.confirm-payment-btn:hover{background:#e07a10}.cancel-order-link{text-align:center;color:var(--text-gray);cursor:pointer;font-size:13px;text-decoration:underline}.modal-box{background:#fff;border-radius:8px;min-width:320px;max-width:460px;padding:24px 28px}.refund-info{border:1px solid var(--border);color:var(--text-dark);background:#f9f9f9;border-radius:4px;margin-bottom:20px;padding:14px;font-size:14px;line-height:2}.refund-amount{color:#f5222d;margin-top:4px;font-size:16px}.modal-actions{justify-content:flex-end;gap:12px;display:flex}.modal-confirm{background:var(--primary-blue);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:8px 24px;font-size:14px;transition:background .2s}.modal-confirm:hover{background:var(--dark-blue)}.modal-cancel{border:1px solid var(--border);color:var(--text-gray);cursor:pointer;background:0 0;border-radius:4px;padding:8px 20px;font-size:14px;transition:all .2s}.back-btn{background:var(--primary-blue);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:8px 20px;font-size:14px}.passengers-page{background:#f5f5f5;min-height:100vh}.passengers-content{max-width:1000px;margin:0 auto;padding:20px}.passengers-card{background:#fff;border-radius:6px;overflow:hidden;box-shadow:0 1px 4px #00000014}.passengers-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.passengers-title{color:var(--text-dark);font-size:18px;font-weight:700}.add-btn{background:var(--primary-blue);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:8px 18px;font-size:14px;transition:background .2s}.add-btn:hover{background:var(--dark-blue)}.passengers-empty{text-align:center;color:var(--text-gray);padding:60px 20px}.add-btn-lg{background:var(--primary-blue);color:#fff;cursor:pointer;border:none;border-radius:4px;margin-top:16px;padding:10px 24px;font-size:15px}.passengers-table{border-collapse:collapse;width:100%;font-size:14px}.passengers-table th{background:var(--light-blue-bg);text-align:left;color:var(--text-dark);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px;font-weight:600}.passengers-table td{border-bottom:1px solid var(--border);color:var(--text-dark);vertical-align:middle;padding:12px 14px}.passengers-table tr:last-child td{border-bottom:none}.passengers-table tbody tr:hover{background:var(--light-blue-bg)}.psg-name{font-weight:500}.default-tag{color:#1890ff;background:#e6f7ff;border:1px solid #91d5ff;border-radius:2px;margin-left:6px;padding:1px 5px;font-size:11px}.type-tag{border-radius:10px;padding:2px 8px;font-size:12px}.type-成人{color:#1890ff;background:#e6f7ff}.type-学生{color:#fa8c16;background:#fff7e6}.type-儿童{color:#722ed1;background:#f9f0ff}.edit-btn{border:1px solid var(--primary-blue);color:var(--primary-blue);cursor:pointer;background:0 0;border-radius:3px;margin-right:6px;padding:4px 12px;font-size:13px;transition:all .2s}.edit-btn:hover{background:var(--light-blue-bg)}.delete-btn{color:#f5222d;cursor:pointer;background:0 0;border:1px solid #f5222d;border-radius:3px;padding:4px 12px;font-size:13px;transition:all .2s}.delete-btn:hover{background:#fff1f0}.passenger-modal{background:#fff;border-radius:8px;width:460px;max-width:95vw;max-height:90vh;padding:28px 32px;overflow-y:auto}.modal-title{color:var(--text-dark);margin-bottom:20px;font-size:18px;font-weight:700}.form-field{margin-bottom:16px}.form-field label{color:var(--text-dark);margin-bottom:6px;font-size:14px;display:block}.required{color:#f5222d}.field-input{border:1px solid var(--border);border-radius:4px;outline:none;width:100%;height:38px;padding:0 12px;font-size:14px;transition:border-color .2s}.field-input:focus{border-color:var(--primary-blue)}.field-input.error{border-color:#f5222d}.field-select{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:4px;outline:none;width:100%;height:38px;padding:0 8px;font-size:14px}.field-select:focus{border-color:var(--primary-blue)}.field-error{color:#f5222d;margin-top:4px;font-size:12px;display:block}.save-btn{background:var(--primary-blue);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:8px 28px;font-size:14px;transition:background .2s}.save-btn:hover{background:var(--dark-blue)}.cancel-btn{border:1px solid var(--border);color:var(--text-gray);cursor:pointer;background:0 0;border-radius:4px;padding:8px 20px;font-size:14px}.cancel-btn:hover{border-color:var(--text-gray);color:var(--text-dark)}.my-page{background:#f5f5f5;min-height:100vh}.my-content{max-width:800px;margin:0 auto;padding:20px}.user-card{color:#fff;background:linear-gradient(135deg,#2b6cb0 0%,#1a4b80 100%);border-radius:10px;align-items:center;gap:20px;margin-bottom:16px;padding:24px 28px;display:flex}.user-avatar{background:#fff3;border:2px solid #fff6;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:60px;height:60px;font-size:26px;font-weight:700;display:flex}.user-info{flex:1}.user-name{margin-bottom:8px;font-size:22px;font-weight:700}.user-meta{align-items:center;gap:12px;margin-bottom:6px;display:flex}.member-level{background:#fff3;border:1px solid #ffffff4d;border-radius:10px;padding:2px 10px;font-size:12px}.member-points{color:#ffffffe6;font-size:13px}.user-phone{color:#ffffffbf;font-size:13px}.user-notif{text-align:right}.notif-panel-trigger{cursor:pointer;background:#ffffff26;border:1px solid #ffffff40;border-radius:20px;padding:6px 14px;font-size:13px;transition:background .2s}.notif-panel-trigger:hover{background:#ffffff40}.quick-links-section,.notif-section,.menu-section{background:#fff;border-radius:6px;margin-bottom:12px;padding:20px 24px;box-shadow:0 1px 4px #00000014}.section-heading{color:var(--text-dark);margin-bottom:16px;font-size:16px;font-weight:700}.section-header-row{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-header-row .section-heading{margin-bottom:0}.mark-read-btn{color:var(--primary-blue);cursor:pointer;font-size:13px}.mark-read-btn:hover{text-decoration:underline}.quick-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.quick-card{border:1px solid var(--border);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;transition:all .2s;display:flex}.quick-card:hover{border-color:var(--primary-blue);background:var(--light-blue-bg);transform:translateY(-2px)}.quick-icon{font-size:28px}.quick-label{color:var(--text-dark);text-align:center;font-size:13px;font-weight:500}.notif-list{flex-direction:column;gap:0;display:flex}.notif-item{border-bottom:1px solid var(--border);cursor:pointer;align-items:flex-start;gap:10px;padding:12px 0;transition:background .15s;display:flex;position:relative}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:var(--light-blue-bg);border-radius:4px;margin:0 -8px;padding-left:8px;padding-right:8px}.notif-item.read{opacity:.7}.unread-dot{background:#f5222d;border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.notif-content{flex:1}.notif-title{color:var(--text-dark);margin-bottom:4px;font-size:14px;font-weight:500}.notif-text{color:var(--text-gray);margin-bottom:4px;font-size:13px;line-height:1.5}.notif-time{color:var(--text-gray);font-size:12px}.menu-section{padding:0}.menu-item{border-bottom:1px solid var(--border);cursor:pointer;justify-content:space-between;align-items:center;padding:16px 24px;transition:background .15s;display:flex}.menu-item:last-child{border-bottom:none}.menu-item:hover{background:var(--light-blue-bg)}.menu-label{color:var(--text-dark);font-size:15px}.menu-arrow{color:var(--text-gray);font-size:20px}.menu-panel-content{border-bottom:1px solid var(--border);background:#fafafa;padding:0 24px 12px}.menu-panel-item{cursor:pointer;background:#fff;border:1px solid #e8e8e8;border-radius:6px;margin-bottom:8px;padding:12px 16px;transition:border-color .2s}.menu-panel-item:hover{border-color:var(--primary-blue)}.menu-panel-item:first-child{margin-top:8px}.menu-panel-item-label{color:var(--text-dark);font-size:14px;font-weight:500}.menu-panel-item-desc{color:var(--text-gray);margin-top:2px;font-size:12px}.menu-panel-item-price{color:#f5222d;margin-top:4px;font-size:13px;font-weight:700}.modal-overlay{z-index:200;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:#fff;border-radius:8px;width:420px;max-height:80vh;padding:24px;overflow-y:auto}.modal-box.modal-wide{width:560px}.modal-title{color:var(--text-dark);margin:0 0 16px;font-size:18px}.modal-actions{justify-content:flex-end;gap:12px;margin-top:20px;display:flex}.modal-confirm{background:var(--primary-blue);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:8px 24px;font-size:14px}.modal-confirm:hover{opacity:.9}.modal-cancel{cursor:pointer;background:#fff;border:1px solid #d9d9d9;border-radius:4px;padding:8px 20px;font-size:14px}.modal-cancel:hover{border-color:var(--primary-blue);color:var(--primary-blue)}.profile-form{flex-direction:column;gap:12px;display:flex}.profile-field{flex-direction:column;gap:4px;display:flex}.profile-field label{color:var(--text-gray);font-size:13px;font-weight:500}.profile-field input{border:1px solid #d9d9d9;border-radius:4px;padding:8px 12px;font-size:14px}.profile-field input:focus{border-color:var(--primary-blue);outline:none;box-shadow:0 0 0 2px #1677ff1a}.profile-field input:disabled{color:#999;background:#f5f5f5}.guide-content{max-height:400px;overflow-y:auto}.guide-section{margin-bottom:16px}.guide-section h4{color:var(--primary-blue);margin:0 0 8px;font-size:15px}.guide-steps,.guide-list{color:#555;margin:0;padding-left:20px;font-size:14px;line-height:1.8}.membership-content{flex-direction:column;gap:16px;display:flex}.membership-card-display{color:#fff;text-align:center;background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:8px;padding:16px 20px}.membership-level{background:#ffffff26;border-radius:10px;margin-bottom:8px;padding:2px 12px;font-size:12px;display:inline-block}.membership-name{font-size:20px;font-weight:700}.membership-id{opacity:.7;margin-top:4px;font-size:12px}.membership-stats{gap:16px;display:flex}.membership-stat{text-align:center;background:#fafafa;border-radius:6px;flex:1;padding:12px}.stat-number{color:var(--primary-blue);font-size:22px;font-weight:700}.stat-label{color:var(--text-gray);margin-top:4px;font-size:12px}.membership-rules{font-size:14px}.membership-rules h4{margin:0 0 8px;font-size:15px}.membership-rules ul{color:#666;margin:0;padding-left:20px;line-height:1.8}.train-detail-page{background:var(--bg-gray);min-height:100vh}.train-detail-content{max-width:750px;margin:0 auto;padding:20px}.train-detail-header{background:#fff;border-radius:4px;align-items:center;gap:16px;margin-bottom:12px;padding:16px 24px;display:flex;box-shadow:0 1px 4px #0000000f}.back-btn{border:1px solid var(--border);color:var(--primary-blue);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;padding:6px 14px;font-size:13px;transition:all .2s}.back-btn:hover{background:var(--light-blue-bg);border-color:var(--primary-blue)}.train-detail-title{flex:1;align-items:center;gap:8px;display:flex}.detail-train-no{color:var(--primary-blue);font-size:20px;font-weight:700}.detail-route-text{color:var(--text-dark);font-size:16px}.train-detail-meta{text-align:right}.detail-duration{color:var(--text-gray);font-size:14px}.stops-card,.avail-card{background:#fff;border-radius:4px;margin-bottom:12px;padding:24px 28px;box-shadow:0 1px 4px #0000000f}.stops-title{color:var(--text-dark);border-bottom:1px solid var(--border-light);margin-bottom:20px;padding-bottom:10px;font-size:16px;font-weight:700}.stops-timeline{position:relative}.stop-item{align-items:stretch;min-height:60px;display:flex}.stop-timeline-col{flex-direction:column;flex-shrink:0;align-items:center;width:36px;display:flex}.stop-line-top,.stop-line-bottom{background:#d0d9e2;flex:1;width:2px}.stop-dot{z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:11px;font-weight:700;display:flex}.stop-dot-start{background:var(--available-green);color:#fff}.stop-dot-end{background:var(--price-red);color:#fff}.stop-dot-mid{background:var(--primary-blue);color:#fff}.stop-info{flex:1;padding:6px 0 14px 14px}.stop-first .stop-info{padding-top:0}.stop-last .stop-info{padding-bottom:4px}.stop-station-name{color:var(--text-dark);align-items:center;gap:8px;margin-bottom:4px;font-size:15px;display:flex}.stop-station-name.bold{font-size:16px;font-weight:700}.stop-tag{border-radius:10px;padding:1px 6px;font-size:11px;font-weight:400}.dep-tag{color:var(--available-green);background:#f6ffed;border:1px solid #b7eb8f}.arr-tag{color:var(--price-red);background:#fff1f0;border:1px solid #ffa39e}.stop-times{color:var(--text-dark);font-size:14px}.stop-time{font-size:14px;font-weight:500}.dep-time{color:var(--available-green)}.arr-time{color:var(--price-red)}.avail-table{border-collapse:collapse;width:100%}.avail-table th{text-align:left;border-bottom:1px solid var(--border);background:#f0f5fa;padding:8px 16px;font-size:13px;font-weight:600}.avail-table td{border-bottom:1px solid var(--border-light);padding:10px 16px;font-size:14px}.avail-table tr:last-child td{border-bottom:none}.price-cell{color:var(--accent-orange);font-weight:700}
