:root{--background:#f8f9fa;--foreground:#1a1a2e;--card-bg:#ffffff;--card-border:#e5e7eb;--primary:#2563eb;--primary-hover:#1d4ed8;--secondary:#64748b;--accent:#f59e0b;--danger:#ef4444;--success:#22c55e;--text-muted:#6b7280;--shadow:0 1px 3px rgba(0,0,0,0.1);--shadow-lg:0 4px 6px rgba(0,0,0,0.1)}@media (prefers-color-scheme:dark){:root{--background:#0f172a;--foreground:#f1f5f9;--card-bg:#1e293b;--card-border:#334155;--primary:#3b82f6;--primary-hover:#60a5fa;--secondary:#94a3b8;--accent:#fbbf24;--danger:#f87171;--success:#4ade80;--text-muted:#94a3b8;--shadow:0 1px 3px rgba(0,0,0,0.3);--shadow-lg:0 4px 6px rgba(0,0,0,0.3)}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--background);color:var(--foreground);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6}.container{max-width:800px;margin:0 auto;padding:1.5rem 1rem}.header{background:var(--card-bg);border-bottom:1px solid var(--card-border);padding:1.25rem 0;margin-bottom:1.5rem;position:sticky;top:0;z-index:100;backdrop-filter:blur(8px)}.header-content{display:flex;align-items:center;justify-content:space-between;max-width:800px;margin:0 auto;padding:0 1rem}.header h1{font-size:1.5rem;font-weight:700;color:var(--foreground);letter-spacing:-.02em}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:var(--shadow)}.card-title{font-size:1.125rem;font-weight:600;margin-bottom:1rem;color:var(--foreground)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:6px;border:none;cursor:pointer;transition:background-color .2s ease}.btn-primary{background:var(--primary);color:white}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--secondary);color:white}.input{width:100%;padding:.625rem .875rem;font-size:.875rem;border:1px solid var(--card-border);border-radius:6px;background:var(--background);color:var(--foreground);margin-bottom:.75rem}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px rgba(37,99,235,.2)}.form-group{margin-bottom:1rem}.form-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.375rem;color:var(--foreground)}.eta-list{list-style:none}.eta-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--card-border)}.eta-item:last-child{border-bottom:none}.eta-route{font-weight:600;font-size:1rem}.eta-destination{font-size:.875rem;color:var(--text-muted)}.eta-time{font-weight:600;color:var(--primary);font-size:1.125rem}.eta-time.arriving{color:var(--success)}.empty-state{text-align:center;padding:2rem;color:var(--text-muted)}.subscription-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:var(--background);border-radius:6px;margin-bottom:.5rem}.subscription-info{flex:1}.subscription-route{font-weight:600}.subscription-stop{font-size:.875rem;color:var(--text-muted)}.btn-remove{background:transparent;color:var(--danger);border:none;cursor:pointer;padding:.25rem .5rem;font-size:.875rem}.btn-remove:hover{text-decoration:underline}.error-message{background:#fef2f2;border:1px solid #fecaca;color:var(--danger);padding:.75rem;border-radius:6px;margin-bottom:1rem;font-size:.875rem}.loading{padding:2rem;color:var(--text-muted)}.loading,.loading-overlay{display:flex;justify-content:center;align-items:center}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.8);z-index:1000}@media (prefers-color-scheme:dark){.loading-overlay{background:rgba(15,23,42,.8)}}.loading-spinner{width:40px;height:40px;border:3px solid var(--card-border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.loading-dots{display:flex;gap:.25rem}.loading-dots span{width:8px;height:8px;background:var(--text-muted);border-radius:50%;animation:bounce 1.4s ease-in-out infinite}.loading-dots span:first-child{animation-delay:0s}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-8px)}}.refreshing-indicator{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-muted);padding:.5rem 0}.refreshing-indicator .spinner{width:14px;height:14px;border:2px solid var(--card-border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1rem}.page-loading .loading-spinner{width:48px;height:48px;border-width:4px}.page-loading-text{color:var(--text-muted);font-size:.9rem}@media (max-width:640px){.container{padding:1rem .75rem}.header{padding:1rem 0;margin-bottom:1rem}.header h1{font-size:1.25rem}.header-content{padding:0 .75rem}.card{padding:1rem;margin-bottom:1rem;border-radius:10px}.card-title{font-size:1rem}.card-title,.form-group{margin-bottom:.75rem}.input{padding:.625rem .75rem;font-size:1rem}.btn{padding:.625rem 1rem;font-size:.875rem;min-height:44px}.subscription-item{padding:.625rem;flex-wrap:wrap;gap:.5rem}.subscription-info{flex:1 1 70%}.subscription-route{font-size:.95rem}.btn-remove,.subscription-stop{font-size:.8rem}.btn-remove{padding:.5rem}.eta-item{flex-direction:column;align-items:flex-start;gap:.25rem;padding:.625rem 0}.eta-time{align-self:flex-end}.error-message{padding:.625rem;font-size:.8rem}}.eta-card{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:var(--card-bg);border:1px solid var(--card-border);border-radius:10px;transition:all .2s ease;position:relative}.eta-card:hover{border-color:var(--primary);box-shadow:var(--shadow)}.eta-card.arriving{border-left:3px solid var(--success);background:linear-gradient(90deg,rgba(34,197,94,.05) 0,var(--card-bg) 50%)}.eta-card.soon{border-left:3px solid var(--accent)}.eta-card-content{flex:1;min-width:0}.eta-card-route-container{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.eta-card-route{font-size:1.25rem;font-weight:700;color:var(--foreground);letter-spacing:-.02em}.eta-card-operator{font-size:.7rem;font-weight:500;color:var(--text-muted);background:var(--background);padding:.15rem .4rem;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}.eta-card-destination{font-size:.9rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.eta-card-platform{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.eta-card-time-container{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;margin-left:1rem}.eta-card-time{font-size:1.25rem;font-weight:600;color:var(--primary);white-space:nowrap}.eta-card-time.arriving{color:var(--success);font-weight:700}.eta-card-time.soon{color:var(--accent)}.eta-card-badge{font-size:.65rem;font-weight:600;color:white;background:var(--success);padding:.15rem .4rem;border-radius:4px;text-transform:uppercase;letter-spacing:.05em}.eta-card-remove{position:absolute;top:.5rem;right:.5rem;background:transparent;border:none;color:var(--text-muted);font-size:1.25rem;cursor:pointer;opacity:0;transition:opacity .2s ease,color .2s ease;line-height:1;padding:.25rem}.eta-card:hover .eta-card-remove{opacity:1}.eta-card-remove:hover{color:var(--danger)}.eta-card-skeleton{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:var(--card-bg);border:1px solid var(--card-border);border-radius:10px;margin-bottom:.75rem}.eta-card-skeleton-content{flex:1}.eta-card-skeleton-route{width:60px;height:24px;margin-bottom:.5rem}.eta-card-skeleton-destination,.eta-card-skeleton-route{background:linear-gradient(90deg,var(--card-border) 25%,var(--background) 50%,var(--card-border) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}.eta-card-skeleton-destination{width:180px;height:16px}.eta-card-skeleton-time{width:50px;height:24px;background:linear-gradient(90deg,var(--card-border) 25%,var(--background) 50%,var(--card-border) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px;margin-left:1rem}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.eta-card-error{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.2);border-radius:10px;color:var(--danger)}.eta-card-error-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--danger);color:white;border-radius:50%;font-weight:700;font-size:.875rem;flex-shrink:0}.eta-card-error-message{flex:1;font-size:.875rem}.eta-card-error-retry{padding:.375rem .75rem;background:transparent;border:1px solid var(--danger);color:var(--danger);border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s ease}.eta-card-error-retry:hover{background:var(--danger);color:white}.eta-card-empty{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem;text-align:center;color:var(--text-muted)}.eta-card-empty-icon{font-size:1.5rem;opacity:.5}.eta-card-empty-message{font-size:.875rem}@media (max-width:640px){.eta-card{padding:.875rem 1rem;flex-wrap:wrap;gap:.75rem}.eta-card-content{flex:1 1 60%}.eta-card-route{font-size:1.125rem}.eta-card-destination{max-width:140px;font-size:.8rem}.eta-card-time-container{flex-direction:row;align-items:center;gap:.5rem;margin-left:auto}.eta-card-time{font-size:1.125rem}.eta-card-remove{opacity:1;position:static;align-self:flex-start}.eta-card-skeleton{padding:.875rem 1rem;flex-wrap:wrap}.eta-card-skeleton-destination{width:120px}.eta-card-skeleton-time{margin-left:auto}}.high-contrast{--hc-background:#000000;--hc-foreground:#ffffff;--hc-card-bg:#1a1a1a;--hc-card-border:#ffffff;--hc-primary:#ffff00;--hc-primary-hover:#ffdd00;--hc-success:#00ff00;--hc-warning:#ffaa00;--hc-danger:#ff3333;--hc-text-muted:#ffffff}.high-contrast .card,.high-contrast .container,.high-contrast .eta-card,.high-contrast .eta-card-content,.high-contrast .eta-card-skeleton,.high-contrast .eta-card-time-container,.high-contrast .header,.high-contrast .subscription-item,.high-contrast body{background:var(--hc-background)!important;color:var(--hc-foreground)!important}.high-contrast .card-title,.high-contrast .eta-card-destination,.high-contrast .eta-card-platform,.high-contrast .eta-card-route,.high-contrast .eta-card-time,.high-contrast .eta-destination,.high-contrast .eta-item,.high-contrast .eta-route,.high-contrast .form-label,.high-contrast .header h1,.high-contrast .subscription-route,.high-contrast .subscription-stop{color:var(--hc-foreground)!important;font-size:1.5rem!important}.high-contrast .eta-card-time{font-size:2rem!important;font-weight:700!important}.high-contrast .eta-card-route{font-size:2rem!important;font-weight:800!important;letter-spacing:.05em!important}.high-contrast .eta-card-destination{font-size:1.5rem!important;max-width:none!important;text-overflow:clip!important;white-space:normal!important}.high-contrast .card,.high-contrast .eta-card,.high-contrast .eta-card-skeleton{border:3px solid var(--hc-card-border)!important;border-radius:12px!important;padding:1.5rem!important}.high-contrast .eta-card.arriving{border-color:var(--hc-success)!important;background:linear-gradient(90deg,rgba(0,255,0,.15) 0,var(--hc-card-bg) 50%)!important}.high-contrast .eta-card.soon{border-color:var(--hc-warning)!important}.high-contrast .eta-card-time.arriving{color:var(--hc-success)!important;text-shadow:0 0 10px var(--hc-success)!important}.high-contrast .eta-card-time.soon{color:var(--hc-warning)!important}.high-contrast .eta-card-badge,.high-contrast .eta-card-operator{background:var(--hc-primary)!important;color:#000000!important;font-size:1rem!important;font-weight:700!important;padding:.5rem .75rem!important;border-radius:6px!important}.high-contrast .eta-card-badge{background:var(--hc-success)!important;color:#000000!important}.high-contrast .btn,.high-contrast .btn-primary,.high-contrast .btn-secondary,.high-contrast button{background:var(--hc-primary)!important;color:#000000!important;font-size:1.25rem!important;font-weight:700!important;padding:1rem 2rem!important;border:3px solid #ffffff!important;border-radius:8px!important}.high-contrast .btn-primary:hover,.high-contrast .btn-secondary:hover,.high-contrast button:hover{background:var(--hc-primary-hover)!important;border-color:var(--hc-primary-hover)!important}.high-contrast .input,.high-contrast input,.high-contrast select{background:#1a1a1a!important;color:#ffffff!important;font-size:1.5rem!important;padding:1rem!important;border:3px solid #ffffff!important;border-radius:8px!important}.high-contrast .input:focus,.high-contrast input:focus{border-color:var(--hc-primary)!important;outline:none!important;box-shadow:0 0 0 4px var(--hc-primary)!important}.high-contrast .form-label{font-size:1.5rem!important;font-weight:700!important;margin-bottom:.75rem!important}.high-contrast .eta-card-remove{color:var(--hc-danger)!important;font-size:2rem!important;opacity:1!important;border:2px solid var(--hc-danger)!important;padding:.5rem 1rem!important;background:transparent!important}.high-contrast .eta-card-remove:hover{background:var(--hc-danger)!important;color:#ffffff!important}.high-contrast .eta-card-error{background:rgba(255,51,51,.2)!important;border:3px solid var(--hc-danger)!important;color:var(--hc-danger)!important}.high-contrast .eta-card-error-icon{background:var(--hc-danger)!important;color:#ffffff!important;font-size:1.25rem!important}.high-contrast .eta-card-empty-message,.high-contrast .eta-card-error-message{font-size:1.5rem!important}.high-contrast .eta-card-error-retry{background:var(--hc-danger)!important;color:#ffffff!important;font-size:1.25rem!important;font-weight:700!important;padding:.75rem 1.5rem!important;border:2px solid #ffffff!important}.high-contrast .error-message{background:rgba(255,51,51,.2)!important;border:3px solid var(--hc-danger)!important;color:var(--hc-danger)!important;font-size:1.25rem!important}.high-contrast .empty-state,.high-contrast .eta-card-empty,.high-contrast .loading{color:var(--hc-foreground)!important;font-size:1.5rem!important}.high-contrast .eta-list{gap:1rem}.high-contrast .eta-item{border-bottom:3px solid var(--hc-card-border)!important;padding:1rem 0!important}@media (max-width:640px){.high-contrast .eta-card-route,.high-contrast .eta-card-time{font-size:1.75rem!important}.high-contrast .eta-card-destination{font-size:1.25rem!important}.high-contrast .eta-card{padding:1.25rem!important}}