#fares-view { display:block; min-width:0; min-height:0; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
#fares-view[hidden] { display:none; }
.fare-intro,.fare-help { color:#64748b; line-height:1.55; max-width:760px; }
.fare-intro { font-size:14px; }
.fare-toolbar { display:flex; gap:10px; margin:20px 0 8px; }
.fare-toolbar label { flex:1; min-width:0; }
.fare-toolbar > button { flex:0 0 auto; width:auto; padding-inline:14px; }
.fare-toolbar input { width:100%; box-sizing:border-box; min-height:46px; border:1px solid #dce2ed; border-radius:12px; padding:10px 14px; font:inherit; font-size:16px; background:#f8f9fc; }
.fare-status { color:#64748b; min-height:1.4em; font-size:13px; }
.fare-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; align-content:start; grid-auto-rows:max-content; gap:14px; padding-bottom:16px; }
.fare-card { min-width:0; padding:18px; background:#fff; border:1px solid #dce2ed; border-radius:16px; }
.fare-card-heading { display:flex; align-items:flex-start; gap:10px; justify-content:space-between; }
.fare-card h3 { color:#172b4d; font-size:16px; font-weight:600; margin:0; overflow-wrap:anywhere; }
.fare-card-coverage { margin:12px 0 0; color:#64748b; font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
.fare-dialog .fare-coverage-preview { margin:12px 0; padding:12px; background:#f0f3fa; border-radius:10px; color:#31466d; }
.fare-postcode-details { border:1px solid #dce2ed; border-radius:12px; padding:12px; margin:16px 0; }
.fare-postcode-details summary { cursor:pointer; min-height:24px; font-size:14px; font-weight:600; }
.fare-postcode-details[open] summary { margin-bottom:10px; }
.fare-badge { flex-shrink:0; background:#edf0f5; color:#536078; border-radius:7px; padding:3px 7px; font-size:11px; }
.fare-badge.is-active { background:#e4f4ea; color:#276044; }
.fare-card-prices { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:16px 0; margin:0; }
.fare-card-prices dt { color:#64748b; font-size:12px; }
.fare-card-prices dd { margin:5px 0 0; color:#243f83; font-size:20px; font-weight:600; }
.fare-card .small-button { width:100%; min-height:42px; }
.fare-dialog { width:min(600px,calc(100vw - 24px)); max-width:none; max-height:calc(100dvh - 40px); box-sizing:border-box; padding:24px; border:1px solid #dde3ec; border-radius:22px; overflow:auto; color:#172b4d; }
.fare-dialog::backdrop { background:#172b4d80; backdrop-filter:blur(3px); }
.fare-dialog header { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.fare-dialog header > button { flex:0 0 auto; width:auto; min-height:44px; padding:8px 12px; }
.fare-dialog h2 { flex:1; min-width:0; font-size:24px; margin:0; }
.fare-dialog p { color:#64748b; font-size:13px; line-height:1.5; }
.fare-dialog label { display:flex; flex-direction:column; gap:6px; margin:14px 0; font-size:13px; font-weight:500; min-width:0; }
.fare-dialog input:not([type=checkbox]) { width:100%; min-width:0; box-sizing:border-box; min-height:48px; padding:10px 12px; border:1px solid #ccd5e4; border-radius:10px; font:inherit; font-size:16px; background:#f9fafc; color:#172b4d; }
.fare-price-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.fare-currency { display:flex; align-items:center; gap:8px; font-size:18px; }
.fare-dialog .fare-active { flex-direction:row; align-items:center; gap:10px; padding:14px; border-radius:12px; background:#f0f3fa; }
.fare-active input { appearance:none; -webkit-appearance:none; position:relative; box-sizing:border-box; width:40px; min-width:40px; height:24px; min-height:24px; max-height:24px; padding:0; margin:0; border:1px solid #8492aa; border-radius:20px; background:#a3adc0; flex-shrink:0; cursor:pointer; }
.fare-active input::after { content:""; position:absolute; left:3px; top:3px; width:16px; height:16px; border-radius:50%; background:#fff; }
.fare-active input:checked { background:#243e8b; border-color:#243e8b; }
.fare-active input:checked::after { transform:translateX(16px); }
.fare-active input:focus-visible { outline:3px solid #779cf3; outline-offset:3px; }
.fare-active input:disabled { opacity:.6; cursor:wait; }
.fare-dialog .fare-error { color:#ad2424; background:#fff1f1; padding:12px; border-radius:10px; }
.fare-dialog footer { display:flex; padding-top:12px; }
.fare-dialog footer button { width:100%; min-height:48px; }
#price-suggestion { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 12px; align-items:center; padding:12px; border:1px solid #dce2ed; border-radius:12px; }
#price-suggestion[hidden] { display:none; }
#price-suggestion > span { display:block; grid-column:1 / -1; font-size:12px; color:#64748b; }
#price-suggestion > strong { min-width:0; overflow-wrap:anywhere; }
#price-suggestion > button { width:auto; }
#price-suggestion .managed-fare-note { grid-column:1 / -1; color:#64748b; line-height:1.45; }
#admin-view[data-active-screen="pricing"] .global-search,#admin-view[data-active-screen="pricing"] .new-booking-button { display:none; }
@media (max-width:1100px) { .fare-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) {
  .app-tabs { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .app-tabs .app-tab { padding-inline:3px; font-size:11px; }
  #admin-view[data-active-screen="pricing"] .admin-command-bar { height:0; min-height:0; padding:0; border:0; }
  .fare-list { grid-template-columns:minmax(0,1fr); }
  .fare-card { padding:16px; }
  .fare-dialog { padding:18px; }
  .fare-dialog h2 { font-size:21px; }
  .fare-price-fields { gap:10px; }
  .fares-screen .screen-heading { align-items:center; }
  .fares-screen .screen-heading h2 { font-size:24px; }
  .fares-screen .screen-heading > button { flex:0 0 auto; width:auto; min-height:44px; padding-inline:14px; }
}
