@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap";:root{--bg-primary:#0a0e1a;--bg-secondary:#111827;--bg-card:#111827cc;--bg-input:#0f172a99;--bg-nav:#0a0e1aeb;--accent-primary:#f59e0b;--accent-primary-soft:#f59e0b26;--accent-secondary:#d97706;--btn-primary-text:#0a0e1a;--success:#10b981;--danger:#ef4444;--warning:#f59e0b;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--border-color:#94a3b81a;--border-color-hover:#94a3b840;--border-accent:#f59e0b4d;--glass-bg:#0f172a99;--glass-border:#94a3b814;--glass-blur:16px;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-card:0 4px 12px #0006;--shadow-glow:0 0 20px #f59e0b26;--font-heading:"Outfit", sans-serif;--font-body:"Inter", sans-serif;--error-color:var(--danger)}[data-theme=light]{--bg-primary:#f5f7fb;--bg-secondary:#fff;--bg-card:#ffffffb3;--bg-input:#0f172a0a;--bg-nav:#ffffffeb;--accent-primary:#d97706;--accent-primary-soft:#d977061f;--btn-primary-text:#fff;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--border-color:#0f172a14;--glass-bg:#ffffffa6;--glass-border:#0f172a0f;--shadow-card:0 4px 24px #0000000f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-body);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.5}h1,h2,h3{font-family:var(--font-heading);font-weight:700}.auth-screen{min-height:100dvh;padding:var(--space-xl);justify-content:center;align-items:center;display:flex;position:relative}.auth-screen:before{content:"";pointer-events:none;background-image:radial-gradient(circle at 30% 30%,#f59e0b0d 0%,#0000 50%),radial-gradient(circle at 70% 70%,#06b6d40d 0%,#0000 50%);position:absolute;inset:0}.auth-card{z-index:1;width:100%;max-width:380px}.auth-logo{font-family:var(--font-heading);color:var(--accent-primary);margin-bottom:var(--space-sm);text-align:center;font-size:2.1rem;font-weight:800}.auth-subtitle{text-align:center;color:var(--text-muted);margin-bottom:var(--space-xl);font-size:.9rem}.auth-input{border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;color:var(--text-primary);background:#ffffff0a;margin-block-start:.25rem;padding:.75rem 1rem;font-size:.9rem}.auth-input:focus{border-color:var(--accent-primary);box-shadow:var(--shadow-glow);outline:none}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-card)}.glass-card.recommended{border-color:var(--border-accent);box-shadow:var(--shadow-glow)}.btn{justify-content:center;align-items:center;gap:var(--space-sm);font-family:var(--font-body);border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;min-height:40px;padding:.5rem 1.25rem;font-size:.85rem;font-weight:600;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent-primary);color:var(--btn-primary-text)}.btn-secondary{color:var(--text-primary);border-color:var(--border-color);background:0 0}.btn-ghost{color:var(--text-secondary);background:0 0;border:none;padding:.375rem .75rem}.app-shell{min-height:100dvh;padding:1rem 1rem calc(72px + env(safe-area-inset-bottom,0px));flex-direction:column;max-width:720px;margin:0 auto;display:flex}.top-bar{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.top-bar h1{font-size:1.35rem}.train-banner{color:#fecaca;border-radius:var(--radius-md);background:#ef44441a;border:1px solid #ef444466;margin-bottom:1rem;padding:.7rem .9rem;font-size:.85rem}.trip-screens{scroll-snap-type:y mandatory;flex:1;overflow-y:auto}.trip-grid{scroll-snap-align:start;grid-template-rows:repeat(4,minmax(88px,1fr));grid-template-columns:1fr 1fr;gap:.75rem;min-height:calc(100dvh - 180px);display:grid}.trip-tile{text-align:left;cursor:pointer;min-height:88px;color:inherit;flex-direction:column;justify-content:space-between;text-decoration:none;display:flex}.trip-tile .name{font-family:var(--font-heading);font-size:1rem;font-weight:700}.trip-tile .meta{color:var(--text-muted);font-size:.75rem}.table-wrap{border-radius:var(--radius-md);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.82rem}thead th{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);text-align:left;border-bottom:1px solid var(--border-color);padding:.65rem .5rem;font-size:.68rem}tbody td{border-bottom:1px solid var(--border-color);vertical-align:middle;padding:.65rem .5rem}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:var(--accent-primary-soft)}.decision{font-family:var(--font-heading);margin:1rem 0;font-size:1.05rem;font-weight:700}.trip-header{gap:.35rem;margin-bottom:1rem;font-size:.95rem;display:grid}.trip-header span{min-width:7.5rem;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:600;display:inline-block}tbody tr.tracked{background:var(--accent-primary-soft)}.form-card{gap:.7rem;display:grid}.form-card h3{text-transform:capitalize;font-size:1rem}.advanced-toggle{align-items:center;gap:.5rem;display:flex}.advanced-toggle input{width:auto}.bottom-nav{min-height:64px;padding-bottom:env(safe-area-inset-bottom,0px);background:var(--bg-nav);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--glass-border);display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav a,.bottom-nav button{min-height:64px;color:var(--text-muted);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.65rem;font-weight:600;text-decoration:none;display:flex}.bottom-nav a.active,.bottom-nav button.active{color:var(--accent-primary)}.clock{font-family:var(--font-heading);font-variant-numeric:tabular-nums;text-align:center;margin:.5rem 0 1rem;font-size:2rem}.toolbar{flex-wrap:wrap;gap:.5rem;margin:.75rem 0;display:flex}.form-grid{gap:.85rem;display:grid}.form-grid label{color:var(--text-secondary);gap:.3rem;font-size:.8rem;display:grid}input,select,textarea{font-family:var(--font-body);color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:100%;padding:.5rem .75rem;font-size:16px}@media (width>=768px){.app-shell{padding-bottom:1.5rem}.bottom-nav{display:none}}
