:root{--ink: #14343b;--ink-soft: #3c565e;--ember: #e4572e;--ember-dark: #c74320;--paper: #f5f3ee;--card: #fffdf8;--lake: #2e6e65;--mist: #dad4c6;--mist-deep: #b9b1a0;--line: #e7e2d6;--radius: 6px;--shadow: 0 1px 2px rgba(20, 52, 59, .06), 0 6px 18px rgba(20, 52, 59, .08);--shadow-lift: 0 2px 4px rgba(20, 52, 59, .08), 0 14px 30px rgba(20, 52, 59, .14);--serif: "Noto Serif SC", "Songti SC", serif;--sans: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--num: "Barlow Condensed", "Arial Narrow", sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased;min-width:1180px}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--ember);outline-offset:2px;border-radius:2px}.main{max-width:1180px;margin:0 auto;padding:40px 24px 72px}.cal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#14343b8c;display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}.cal-mask.show{opacity:1;visibility:visible}.cal-panel{width:660px;max-width:94vw;max-height:92vh;overflow:auto;background:var(--card);border-radius:14px;box-shadow:0 30px 80px #14343b59;transform:translateY(16px);transition:transform .2s}.cal-mask.show .cal-panel{transform:translateY(0)}.cal-head{position:relative;padding:16px 56px 0 20px}.cal-title{font-family:var(--serif);font-weight:900;font-size:17px;letter-spacing:.5px;padding-right:8px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.cal-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;background:var(--paper);border:1px solid var(--mist);padding:0;display:flex;align-items:center;justify-content:center;color:var(--mist-deep);font-size:16px;line-height:1;transition:all .15s}.cal-close:hover{background:var(--ink);border-color:var(--ink);color:#fff}.dep-thead,.dep-tr{display:grid;grid-template-columns:1.45fr .7fr repeat(var(--pcols, 2),1fr) 1.15fr;gap:8px;align-items:center;text-align:center}.dep-thead{padding:12px 24px 9px;font-size:13px;color:var(--ink);font-weight:500;letter-spacing:1px;border-bottom:1.5px solid var(--line)}.dep-thead span:first-child{text-align:left;padding-left:6px}.dep-list{padding:2px 24px 16px;max-height:52vh;overflow:auto}.dep-tr{padding:10px 6px;border-bottom:1px solid var(--line);border-radius:8px;transition:background .12s}.dep-tr:hover{background:var(--paper)}.dep-tr:last-child{border-bottom:none}.dep-d{font-family:var(--num);font-size:18px;font-weight:600;color:var(--ink);text-align:left;padding-left:6px;letter-spacing:.5px}.dep-bus,.md-bus{display:inline-block;margin-left:6px;padding:1px 6px;border:1px solid var(--line);border-radius:4px;font-family:var(--num);font-size:11px;font-weight:500;color:var(--mist-deep);letter-spacing:0;vertical-align:middle}.dep-s{font-family:var(--num);font-size:16px;font-weight:600;color:var(--ink)}.dep-s.low{color:var(--ember)}.dep-s.out{color:var(--mist-deep)}.dep-a{font-family:var(--num);font-size:18px;font-weight:700;color:var(--ember)}.dep-c{font-family:var(--num);font-size:16px;color:var(--ink-soft)}.dep-btn{justify-self:center;width:86px;padding:8px 0;border:none;border-radius:8px;background:var(--ember);color:#fff;font-size:14px;font-weight:700;letter-spacing:1px;transition:background .15s,transform .1s}.dep-btn:hover{background:var(--ember-dark)}.dep-btn:active{transform:scale(.96)}.dep-btn.soldout{background:var(--mist-deep);cursor:not-allowed}.cal-confirm{flex-shrink:0;padding:11px 34px;border-radius:99px;border:none;background:var(--ember);color:#fff;font-size:15px;font-weight:700;letter-spacing:3px;transition:background .15s,transform .1s}.cal-confirm:hover{background:var(--ember-dark)}.cal-confirm:active{transform:scale(.97)}.reg-panel{width:840px}.reg-seat{padding:12px 20px 6px;border-bottom:1px solid var(--line);background:var(--paper, #f7f5f0)}.reg-head{position:relative;padding:16px 56px 12px 20px;border-bottom:1.5px solid var(--line)}.reg-head .cal-title{font-size:18px}.reg-band{display:flex;align-items:center;gap:8px;padding:14px 20px 9px;border-bottom:1px dashed var(--line);font-size:13px;font-weight:700;letter-spacing:2px;color:var(--ink)}.reg-band:before{content:"";flex-shrink:0;width:4px;height:14px;border-radius:2px;background:var(--ember)}.reg-band span{font-weight:400;color:var(--ink-soft);letter-spacing:0;font-size:12px}.reg-route{padding:12px 20px;font-size:13px;line-height:1.7;color:var(--ink);background:linear-gradient(160deg,#fdfbf4,#f4f0e4)}.reg-route b{color:var(--ember);font-family:var(--num);font-size:15px;letter-spacing:.5px}.reg-row{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--line);font-size:14px}.reg-row .kind{flex:1;min-width:0;color:var(--ink)}.reg-row .kind small{display:block;font-size:12px;color:var(--ink-soft);margin-top:2px}.reg-row .unit{flex-shrink:0;font-size:14px;color:var(--ink-soft)}.reg-row .unit b{font-family:var(--num);font-size:17px;color:var(--ember)}.reg-row .qty{flex-shrink:0;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft)}.reg-input{width:64px;height:34px;border:1.5px solid var(--line);border-radius:6px;text-align:center;font-family:var(--num);font-size:16px;color:var(--ink);outline:none;background:#fff;transition:border-color .15s}.reg-input:focus{border-color:var(--ink)}.reg-input.err{border-color:var(--ember);background:#fbe9e1}.reg-date{padding:12px 20px;font-family:var(--num);font-size:18px;font-weight:600;letter-spacing:1px;border-bottom:1px solid var(--line)}.reg-datetime{display:flex;align-items:center;gap:14px;padding:10px 20px;border-bottom:1px solid var(--line)}.reg-datetime .reg-date{flex-shrink:0;width:150px;padding:0;border-bottom:none;font-size:17px}.reg-datetime .reg-select{flex:1;min-width:0;height:38px;margin-top:0}.reg-row.full{display:block}.reg-select{width:100%;height:40px;margin-top:10px;border:1.5px solid var(--line);border-radius:var(--radius);background:#fff;font-family:inherit;font-size:14px;color:var(--ink);padding:0 12px;outline:none;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23B9B1A0' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}.reg-select:focus{border-color:var(--ink)}.reg-select.err{border-color:var(--ember);background:#fbe9e1}.reg-note{font-size:12px;color:var(--mist-deep);margin-left:8px}.reg-note.must{color:var(--ember)}.reg-line{display:flex;align-items:center;gap:10px;padding:10px 20px;font-size:14px;border-bottom:1px solid var(--line)}.reg-line .lb{flex-shrink:0;color:var(--ink);letter-spacing:1px}.reg-line .reg-input.wide{width:200px;text-align:left;padding:0 12px;font-family:var(--sans);font-size:14px}.reg-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:2px dashed var(--mist-deep);background:linear-gradient(160deg,#fdfbf4,#f4f0e4);padding:12px 20px;border-radius:0 0 14px 14px}.reg-total{font-size:13px;color:var(--ink-soft)}.reg-total .cal-price{font-size:24px}.cal-price{font-family:var(--num);font-weight:700;color:var(--ember);font-size:18px}.reg-msg{font-size:12px;color:var(--ember)}.reg-panel .reg-head{position:sticky;top:0;z-index:2;background:var(--card);border-radius:14px 14px 0 0}.reg-panel .reg-foot{position:sticky;bottom:0;z-index:2;box-shadow:0 -8px 16px #14343b14}.roster-panel{width:840px;display:flex;flex-direction:column;max-height:92vh;overflow:hidden}.roster-panel .reg-head{flex-shrink:0;z-index:2;background:var(--card);border-radius:14px 14px 0 0}.roster-body{flex:1;min-height:0;overflow:auto}.roster-panel .reg-foot{flex-shrink:0;z-index:2;border-radius:0 0 14px 14px;box-shadow:0 -8px 16px #14343b14}.roster-person{padding:10px 20px 12px;border-bottom:1px dashed var(--line)}.roster-person .p-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--ink-soft);margin-bottom:8px}.p-tag{flex-shrink:0;font-size:11px;font-weight:700;letter-spacing:1px;padding:2px 10px;border-radius:99px;background:var(--ink);color:#f2efe7}.p-tag.child{background:var(--lake)}.p-net{font-family:var(--num);color:var(--ember);font-weight:700}.roster-fields{display:grid;grid-template-columns:1fr 1.15fr 1.45fr 1.35fr;gap:8px}.roster-fields input{height:36px;min-width:0;border:1.5px solid var(--line);border-radius:6px;padding:0 10px;font-family:inherit;font-size:13px;color:var(--ink);outline:none;background:#fff;transition:border-color .15s}.roster-fields input:focus{border-color:var(--ink)}.roster-fields input.err{border-color:var(--ember);background:#fbe9e1}.bus-tabs{display:flex;gap:8px;align-items:center;margin:12px 20px 0}.bus-tab{border:1.5px solid var(--line);background:#fff;border-radius:99px;padding:5px 16px;font-size:13px;font-weight:600;color:var(--ink-soft);display:inline-flex;align-items:center;gap:6px;transition:background .12s,border-color .12s,color .12s}.bus-tab:hover{border-color:var(--mist-deep)}.bus-tab.active{background:var(--ink);border-color:var(--ink);color:#f2efe7}.bus-tab .rng{font-family:var(--num);font-size:11px;font-weight:500;letter-spacing:1px;opacity:.7}.bus-tab .new-tag{font-size:10px;font-weight:700;letter-spacing:1px;background:var(--ember);color:#fff;border-radius:99px;padding:1px 7px}.bus-tab.active .new-tag{background:var(--ember)}.bus-tab .full-tag{font-size:10px;font-weight:700;letter-spacing:1px;background:var(--mist-deep);color:#fff;border-radius:99px;padding:1px 7px}.bus-tab .free-tag{font-family:var(--num);font-size:10px;font-weight:700;letter-spacing:.5px;background:var(--mist);color:var(--ink-soft);border-radius:99px;padding:1px 7px}.bus{margin:12px 20px 6px;border:2px solid var(--ink);border-radius:28px 56px 56px 28px;background:linear-gradient(180deg,#fdfbf4,#f1ecde);display:flex;align-items:stretch;gap:12px;padding:14px 16px}.bus-cap{flex-shrink:0;align-self:center;writing-mode:vertical-rl;letter-spacing:6px;font-size:12px;font-weight:700;color:var(--ink-soft)}.bus-front{flex-shrink:0;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:0;padding-right:12px;border-right:1.5px dashed var(--mist-deep)}.bus-front .driver{width:48px;height:38px;border:1.5px dashed var(--mist-deep);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--mist-deep);letter-spacing:2px}.bus-rows{flex:1;min-width:0;display:grid;grid-template-columns:repeat(var(--cols, 10),minmax(0,1fr));grid-template-rows:1fr 1fr 26px 1fr 1fr;gap:5px}.seat{min-width:0;min-height:32px;height:100%;padding:0;border:1.5px solid var(--line);border-radius:8px;background:#fff;font-family:var(--num);font-size:13px;font-weight:600;color:var(--ink);display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s,transform .1s}.seat:not(.occupied):hover{border-color:var(--ink)}.seat.picked{background:var(--ink);border-color:var(--ink);color:#fff}.seat.picked:active{transform:scale(.94)}.seat.occupied{background:#e7e2d6;border-color:#e7e2d6;color:#b9b1a0;cursor:not-allowed}.seat.guide{background:#e7e2d6;border-color:#e7e2d6;color:#b9b1a0;cursor:not-allowed;font-family:var(--font, inherit);letter-spacing:1px}.seat.conflict{background:#fbe9e7;border-color:#d84a3a;color:#b3261e;animation:seat-conflict-blink .9s ease-in-out 4}@keyframes seat-conflict-blink{0%,to{box-shadow:0 0 #d84a3a00}50%{box-shadow:0 0 0 3px #d84a3a59}}.seat-legend{display:flex;gap:18px;align-items:center;padding:2px 20px 10px;font-size:12px;color:var(--mist-deep)}.seat-legend i{display:inline-block;width:14px;height:14px;border-radius:4px;border:1.5px solid var(--line);margin-right:5px;vertical-align:-2px}.seat-legend .l2 i{background:#e7e2d6;border-color:#e7e2d6}.seat-legend .l3 i{background:var(--ink);border-color:var(--ink)}.fee-lines{padding:2px 20px 12px}.fee-line{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:13px;color:var(--ink-soft)}.fee-line b{font-family:var(--num);font-size:14px;color:var(--ink)}.fee-line.total{border-bottom:none;padding-top:10px;font-size:14px;font-weight:700;color:var(--ink);letter-spacing:1px}.fee-line.total .cal-price{font-size:24px}.foot-btns{display:flex;gap:10px;flex-shrink:0}.btn-ghost{padding:10px 26px;border-radius:99px;border:1.5px solid var(--ink);background:transparent;font-family:inherit;font-size:14px;font-weight:700;letter-spacing:3px;color:var(--ink);transition:background .15s,color .15s}.btn-ghost:hover{background:var(--ink);color:#f2efe7}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-tabs{display:flex;gap:24px;border-bottom:1.5px solid var(--line);margin-bottom:2px}.auth-tab{position:relative;padding:0 2px 10px;border:none;background:transparent;font-family:inherit;font-size:15px;font-weight:700;letter-spacing:2px;color:var(--mist-deep);cursor:pointer;transition:color .15s}.auth-tab:hover{color:var(--ink-soft)}.auth-tab.on{color:var(--ink)}.auth-tab.on:after{content:"";position:absolute;left:0;right:0;bottom:-1.5px;height:2.5px;background:var(--ember);border-radius:2px}.pwdtip-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#12202480;display:flex;align-items:center;justify-content:center;padding:20px}.pwdtip-card{width:440px;max-width:94vw;background:#fdfbf6;border-radius:14px;padding:28px 28px 24px;box-shadow:0 18px 50px #12202447}.pwdtip-title{margin:0 0 8px;font-size:20px;font-weight:900;letter-spacing:3px;color:var(--ink)}.pwdtip-sub{margin:0 0 18px;font-size:13px;line-height:1.7;color:var(--mist-deep)}.pwdtip-btns{display:flex;gap:12px;margin-top:4px}.pwdtip-btn{flex:1;height:44px;border-radius:var(--radius);font-family:inherit;font-size:14px;font-weight:700;letter-spacing:2px;cursor:pointer;transition:background .15s,color .15s}.pwdtip-btn:disabled{opacity:.6;cursor:not-allowed}.pwdtip-btn.ghost{border:1.5px solid var(--line);background:transparent;color:var(--mist-deep)}.pwdtip-btn.ghost:hover:not(:disabled){border-color:var(--mist-deep);color:var(--ink-soft)}.pwdtip-btn.primary{border:none;background:var(--ember);color:#fff}.pwdtip-btn.primary:hover:not(:disabled){filter:brightness(1.06)}.auth-item{display:flex;flex-direction:column;gap:7px}.auth-label{font-size:13px;font-weight:700;letter-spacing:2px;color:var(--ink);display:flex;align-items:center;gap:6px}.auth-label em{font-style:normal;font-size:11px;font-weight:400;letter-spacing:0;color:var(--mist-deep)}.auth-input{width:100%;height:44px;padding:0 14px;border:1.5px solid var(--line);border-radius:var(--radius);background:#fff;font-family:inherit;font-size:15px;color:var(--ink);outline:none;transition:border-color .15s,background .15s}.auth-input::placeholder{color:var(--mist-deep);font-size:14px}.auth-input:focus{border-color:var(--ink)}.auth-input.err{border-color:var(--ember);background:#fbe9e1}.auth-item .err-tip{font-size:12px;color:var(--ember);min-height:0}.auth-inline{display:flex;gap:10px}.auth-inline .auth-input{flex:1;font-family:var(--num);letter-spacing:4px}.auth-code-btn{flex:0 0 128px;height:44px;border:1.5px solid var(--ink);border-radius:var(--radius);background:transparent;font-family:inherit;font-size:13px;font-weight:700;letter-spacing:1px;color:var(--ink);cursor:pointer;transition:background .15s,color .15s}.auth-code-btn:hover:not(:disabled){background:var(--ink);color:#f2efe7}.auth-code-btn:disabled{border-color:var(--line);color:var(--mist-deep);cursor:not-allowed}.auth-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--ink-soft)}.auth-check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.auth-check input{width:15px;height:15px;accent-color:var(--ink);cursor:pointer}.auth-row a{color:var(--ink-soft);border-bottom:1px solid var(--line)}.auth-row a:hover{color:var(--ember);border-bottom-color:var(--ember)}.auth-btn{height:46px;border:none;border-radius:var(--radius);background:var(--ember);color:#fff;font-family:inherit;font-size:16px;font-weight:700;letter-spacing:4px;cursor:pointer;transition:background .15s}.auth-btn:hover:not(:disabled){background:var(--ember-dark)}.auth-btn:disabled{background:var(--mist-deep);cursor:not-allowed}.auth-msg{min-height:18px;font-size:13px;color:var(--ember)}.auth-msg.ok{color:var(--lake)}.auth-tip{padding:9px 12px;border:1px dashed var(--mist);border-radius:var(--radius);background:#f5f3eeb3;font-size:12px;line-height:1.7;color:var(--ink-soft);letter-spacing:.5px}.auth-tip b{font-family:var(--num);letter-spacing:1px;color:var(--ember)}.auth-foot{margin-top:22px;padding-top:18px;border-top:1px dashed var(--line);display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-soft)}.auth-foot a{color:var(--ember);font-weight:700}.auth-foot a:hover{color:var(--ember-dark)}.auth-foot .split{flex:1}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}html{scroll-behavior:auto}}.doc-state{max-width:820px;margin:48px auto;padding:30px 24px;background:#fff;border:1px solid #dad4c6;border-radius:6px;text-align:center;font-size:14px;color:#3e5c63}.doc-state.err{color:#c74520;border-color:#e9c4b8;background:#fdf4f1}@media print{html,body{min-width:0!important;width:auto!important;background:#fff!important}.page-register,.page-confirm,.page-notice{overflow:visible!important}}
