:root{--bg: #faf9f7;--surface: #fcfcfb;--ink: #0b0b0b;--ink-2: #52514e;--ink-muted: #898781;--hairline: rgba(11, 11, 11, .1);--grid-line: #e1e0d9;--accent: #2a78d6;--good: #006300;--seq-1: #cde2fb;--seq-2: #b7d3f6;--seq-3: #9ec5f4;--seq-4: #86b6ef;--seq-5: #6da7ec}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.7}.shell{max-width:920px;margin:0 auto;padding:40px 24px 64px}header.site h1{font-size:20px;font-weight:500;margin:0}header.site p{margin:4px 0 0;color:var(--ink-muted);font-size:13px}.report-list{margin:28px 0;display:flex;flex-direction:column;gap:8px}.report-item{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;padding:12px 16px;border:1px solid var(--hairline);border-radius:10px;background:var(--surface);cursor:pointer;text-align:left;font:inherit;color:inherit;width:100%}.report-item:hover{border-color:#0b0b0b33}.report-item.active{border-color:var(--accent)}.report-item .type-tag{font-size:12px;color:var(--ink-2);border:1px solid var(--hairline);border-radius:6px;padding:0 8px;white-space:nowrap}.report-item .title{font-weight:500}.report-item .meta{margin-left:auto;color:var(--ink-muted);font-size:12px}section.view{margin-top:8px}section.view h2{font-size:18px;font-weight:500;margin:24px 0 4px}.subtle{color:var(--ink-muted);font-size:13px}.route-plan{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px}.route-plan>span{padding:6px 10px;border:1px solid var(--hairline);border-radius:8px;background:var(--surface);color:var(--ink-2);font-size:13px}.route-plan small{margin-left:8px;color:var(--ink-muted);font-size:12px}.baseline{margin:16px 0 24px;padding:14px 18px;border:1px solid var(--hairline);border-radius:10px;background:var(--surface);display:flex;gap:16px;align-items:baseline;flex-wrap:wrap}.baseline .price{font-size:20px;font-weight:500}.option-card{border:1px solid var(--hairline);border-radius:10px;background:var(--surface);padding:14px 18px;margin-bottom:12px}.option-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.option-head .rank{color:var(--ink-muted)}.option-head .route-kind{padding:1px 7px;border-radius:6px;background:#2a78d614;color:#245f9f;font-size:12px}.option-head .total{font-size:17px;font-weight:500}.option-head .saving{color:var(--good);font-size:13px}.option-head .hub{margin-left:auto;color:var(--ink-2)}.legs{margin-top:8px;border-top:1px solid var(--grid-line);padding-top:8px;display:flex;flex-direction:column;gap:2px;font-variant-numeric:tabular-nums}.leg-row{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline}.leg-row .leg-label{color:var(--ink-muted);font-size:12px;width:32px}.leg-row .leg-price{font-weight:500}.connect-row{color:var(--ink-2);font-size:13px;padding-left:42px}.airline-line{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.airline-item{display:inline-flex;align-items:center;gap:5px}.airline-logo{width:16px;height:16px;border-radius:3px;flex-shrink:0}.bag-note{font-size:12px;color:var(--ink-muted);border:1px solid var(--hairline);border-radius:6px;padding:0 6px;white-space:nowrap}.chip{display:inline-block;font-size:12px;color:var(--ink-2);border:1px solid var(--hairline);border-radius:6px;padding:0 8px;margin-left:6px}.origin-toggle{display:inline-flex;border:1px solid var(--hairline);border-radius:8px;overflow:hidden;margin:16px 0}.origin-toggle button{font:inherit;font-size:13px;border:none;background:transparent;color:var(--ink-2);padding:5px 14px;cursor:pointer}.origin-toggle button+button{border-left:1px solid var(--hairline)}.origin-toggle button.active{background:var(--ink);color:#fff}.grid-scroll{overflow-x:auto;border:1px solid var(--hairline);border-radius:10px;background:var(--surface)}table.price-grid{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}table.price-grid th,table.price-grid td{padding:8px 10px;text-align:right;font-size:13px;font-weight:400;border-bottom:1px solid var(--grid-line);white-space:nowrap}table.price-grid tr:last-child td,table.price-grid tr:last-child th{border-bottom:none}table.price-grid th{color:var(--ink-muted)}table.price-grid th.airport,table.price-grid td.airport{text-align:left;position:sticky;left:0;background:var(--surface);color:var(--ink-2)}td.cell{cursor:pointer}td.cell.selected{outline:2px solid var(--accent);outline-offset:-2px}td.cell.cheapest{outline:2px solid var(--good);outline-offset:-2px}td.cell.empty{color:var(--ink-muted);cursor:default}.legend{display:flex;align-items:center;gap:6px;margin:10px 2px 0;color:var(--ink-muted);font-size:12px}.legend .swatch{width:22px;height:10px;border-radius:2px;border:1px solid var(--hairline)}.cell-detail{margin-top:14px;padding:12px 16px;border:1px solid var(--hairline);border-radius:10px;background:var(--surface);font-size:13px;color:var(--ink-2)}.notice{margin-top:16px;color:var(--ink-2);font-size:13px}.scan-progress{margin:14px 0 4px;padding:12px 16px;border:1px solid var(--hairline);border-radius:10px;background:var(--surface);font-size:13px;color:var(--ink-2)}.progress-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.progress-track{height:6px;border-radius:3px;background:var(--grid-line);overflow:hidden}.progress-fill{height:100%;border-radius:3px;background:var(--accent);transition:width .4s ease}footer.site{margin-top:48px;padding-top:16px;border-top:1px solid var(--grid-line);color:var(--ink-muted);font-size:12px}.loading{color:var(--ink-muted);padding:48px 0}
