:root{--purple:#5b2a86;--green:#14532d;--bg:#f4f2f7;--card:#fff;--text:#1c1b1f;--muted:#6b6770;--line:#ece9f0;--bar:#efe9f6;--bar-text:#4a2a6e;--accent-new:#b45309;--bad:#b91c1c}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Noto Sans Arabic,Segoe UI,Tahoma,sans-serif;line-height:1.45}#app{max-width:640px;margin:0 auto;padding:12px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ltr{direction:ltr;unicode-bidi:isolate}.strong{font-weight:700}.muted{color:var(--muted)}.route{background:var(--card);border-radius:18px;margin-bottom:16px;overflow:hidden;box-shadow:0 1px 4px #0000001f}.route-header{color:#fff;background:var(--purple);padding:14px 16px}.route-RUH-CAI .route-header{background:var(--green)}.route-RUH-CAI{--bar:#e7f2ea;--bar-text:var(--green)}.route-header h2{margin:0;font-size:1.25rem;display:inline}.route-code{opacity:.85;margin:0 8px;font-size:.85rem}.updated{opacity:.85;margin:4px 0 0;font-size:.8rem}.card-section{padding:12px 16px 4px}.card-section+.card-section{border-top:1px solid var(--line)}.fare-cards{flex-wrap:wrap;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.fare-card{border:1px solid var(--line);background:var(--bg);border-radius:12px;flex-direction:column;flex:8.5rem;gap:2px;min-width:0;padding:8px 10px;display:flex}.fare-card .price{color:var(--green);font-size:1.1rem;font-weight:700}.fare-card .checked{font-size:.78rem}h3{margin:0 0 8px;font-size:1.05rem}h3 .sub{color:var(--muted);margin-inline-start:8px;font-size:.85rem;font-weight:400}h4{margin:12px 0 6px;font-size:.9rem}table{border-collapse:collapse;width:100%}th,td{text-align:start;border-bottom:1px solid var(--line);vertical-align:middle;padding:8px 6px}thead th{color:var(--muted);font-size:.75rem;font-weight:600}.schedule-table th.flight{font-weight:400}.flight-number{font-weight:700}.airline{color:var(--muted);font-size:.8rem;display:block}.badge{white-space:nowrap;color:var(--accent-new);background:#fef3c7;border-radius:999px;margin-top:2px;padding:0 6px;font-size:.7rem;display:inline-block}.streak strong{font-size:.95rem;display:block}.streak .since{color:var(--muted);font-size:.75rem;display:block}.subtitle{color:var(--muted);margin:-4px 0 0;font-size:.8rem}.range{margin:2px 0 8px;font-size:.8rem;font-weight:600}.table-scroll{margin:0 -16px;padding:0 16px;overflow-x:auto}.table-scroll:focus-visible{outline:2px solid var(--purple)}.history-table{min-width:max-content;font-size:.85rem}.history-table th,.history-table td{white-space:nowrap;text-align:center;padding:6px 7px}.history-table th.day{text-align:start;background:var(--card);position:sticky;inset-inline-start:0}.history-table .weekday{font-size:.75rem;font-weight:600;display:block}.history-table .date{color:var(--muted);font-size:.7rem;font-weight:400;display:block}.week-bar th{background:var(--bar);color:var(--bar-text);text-align:start;border-radius:8px;padding:5px 10px;font-size:.8rem;font-weight:700;position:sticky;inset-inline-start:0}.cell .symbol{color:var(--muted)}.status-cancelled .symbol{color:var(--bad);font-weight:700}.status-arrived-no-takeoff-time .symbol{color:var(--green)}.cell .mark{color:var(--bad);margin-inline-start:1px;font-weight:700}.status-arrival-pending .strong{color:var(--muted)}.legend ul{flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;font-size:.78rem;list-style:none;display:flex}.legend .symbol{min-width:1.4em;color:var(--muted);font-weight:700;display:inline-block}.footnotes{margin:10px 0 0;padding:0;font-size:.78rem;list-style:none}.note{color:var(--muted);margin:8px 0 12px;font-size:.75rem}footer{text-align:center;color:#666;padding:8px 0 16px;font-size:.8rem}.toolbar{justify-content:flex-end;padding:8px 12px 0;display:flex}.lang-toggle{font:inherit;color:#5b2a86;cursor:pointer;background:#fff;border:1px solid #5b2a86;border-radius:999px;min-height:32px;padding:4px 14px;font-size:.85rem}
