:root{--bg:#f7f8fa;--surface:#fff;--text:#1f2430;--muted:#6b7280;--border:#e5e7eb;--accent:#2563eb;--accent-bg:#eff6ff;--warn:#b45309;--warn-bg:#fef3c7;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Meiryo,sans-serif;font-size:16px;line-height:1.6}*{box-sizing:border-box}body{margin:0}a{color:var(--accent)}button,input,select{font-family:inherit;font-size:1rem}.app{max-width:1100px;margin:0 auto;padding:24px 16px 64px}.app-header{margin-bottom:24px}.app-header h1{letter-spacing:-.02em;margin:0 0 4px;font-size:1.8rem}.tagline{color:var(--muted);margin:0 0 12px}.notice{background:var(--warn-bg);color:var(--warn);border-radius:8px;margin:0;padding:8px 12px;font-size:.85rem}.controls{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.search{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex:280px;padding:10px 14px}.search:focus{outline:2px solid var(--accent);border-color:var(--accent)}.control-group{align-items:center;gap:8px;display:flex}.control-group label{color:var(--muted);align-items:center;gap:6px;font-size:.85rem;display:flex}.control-group select{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:8px 10px}.view-toggle{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.view-toggle button{background:var(--surface);cursor:pointer;color:var(--muted);border:none;padding:8px 16px}.view-toggle button.active{background:var(--accent);color:#fff}.filters{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.filter-row{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.filter-label{color:var(--muted);flex:none;font-size:.8rem}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text);border-radius:999px;padding:5px 12px;font-size:.82rem;transition:all .15s}.chip:hover{border-color:var(--accent)}.chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.filter-details summary{cursor:pointer;color:var(--muted);padding:4px 0;font-size:.85rem}.filter-details[open] summary{margin-bottom:8px}.result-bar{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.count{font-weight:600}.reset{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--muted);border-radius:8px;padding:6px 12px}.reset:hover{border-color:var(--accent);color:var(--accent)}.empty{text-align:center;color:var(--muted);padding:48px 0}.badge{white-space:nowrap;border-radius:6px;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-block}.badge[data-category=鉄道フリーパス]{color:#1d4ed8;background:#dbeafe}.badge[data-category=観光・周遊]{color:#047857;background:#d1fae5}.badge[data-category=回数券・割引券]{color:#c2410c;background:#fed7aa}.badge[data-category=特急・新幹線割引]{color:#6d28d9;background:#ede9fe}.table-wrap{border:1px solid var(--border);background:var(--surface);border-radius:10px;overflow-x:auto}.ticket-table{border-collapse:collapse;width:100%;font-size:.9rem}.ticket-table th,.ticket-table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:10px 12px}.ticket-table th{color:var(--muted);background:#f9fafb;font-size:.78rem;position:sticky;top:0}.ticket-table tr:last-child td{border-bottom:none}.ticket-table .num{text-align:right;white-space:nowrap}.ticket-table .name{min-width:160px;font-weight:600}.ticket-table .muted{color:var(--muted);font-size:.85rem}.price{font-variant-numeric:tabular-nums;font-weight:600}.warn-dot{color:var(--warn);background:var(--warn-bg);vertical-align:middle;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:.65rem;font-weight:600;display:inline-block}.official-link{white-space:nowrap;font-size:.85rem;font-weight:600;text-decoration:none}.official-link:hover{text-decoration:underline}.card-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.card{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.card-head{flex-direction:column;gap:6px;display:flex}.card-title{margin:0;font-size:1.05rem}.card-meta{flex-wrap:wrap;gap:8px;font-size:.8rem;display:flex}.card-meta .muted{color:var(--muted)}.card-figures{border-top:1px solid var(--border);border-bottom:1px solid var(--border);gap:16px;padding:10px 0;display:flex}.card-figures>div{flex-direction:column;display:flex}.fig-label{color:var(--muted);font-size:.7rem}.fig-value{font-size:1.05rem;font-weight:600}.card-detail{margin:0;font-size:.85rem}.card-detail dt{color:var(--muted);margin-top:8px;font-size:.72rem}.card-detail dd{margin:2px 0 0;line-height:1.5}.card-warn{background:var(--warn-bg);color:var(--warn);border-radius:8px;margin:0;padding:6px 10px;font-size:.78rem}.card-foot{justify-content:space-between;align-items:center;margin-top:auto;padding-top:4px;display:flex}.surveyed{color:var(--muted);font-size:.72rem}.app-footer{border-top:1px solid var(--border);color:var(--muted);margin-top:40px;padding-top:16px;font-size:.78rem}@media (width<=600px){.app-header h1{font-size:1.5rem}.card-grid{grid-template-columns:1fr}}
