.app{width:100%;min-height:100vh;display:flex;flex-direction:column}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);padding:1.5rem 1rem;color:#fff;box-shadow:0 2px 10px #0000001a}.header-content{max-width:1000px;margin:0 auto;display:flex;align-items:center;gap:1.5rem}.logo-container{flex-shrink:0}.logo-link{display:inline-block;transition:transform .3s ease}.logo-link:hover{transform:scale(1.1)}.header-logo{width:64px;height:64px;filter:brightness(0) invert(1);display:block}.header-text{flex:1}.app-header h1{font-size:2.5rem;margin-bottom:.5rem;font-weight:600}.app-header p{font-size:1.2rem;opacity:.9}.app-main{flex:1;padding:2rem 1rem 1rem;display:flex;justify-content:center;align-items:flex-start}.container{width:100%;max-width:1000px;display:flex;flex-direction:column;gap:1rem}.route-section{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 4px 20px #0000001a}.route-selector{display:flex;flex-direction:row;align-items:center;gap:1rem;flex-wrap:wrap}.route-input-group{flex:1;min-width:0;display:flex;flex-direction:column;width:100%}.route-input-group label{font-weight:600;color:#333;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px;text-align:left;width:100%}.route-select{padding:.875rem 1rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;background:#fff;color:#333;cursor:pointer;transition:border-color .2s,box-shadow .2s;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none}.route-select:hover{border-color:#667eea}.route-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.swap-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.75rem;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s;width:48px;height:48px;flex-shrink:0;align-self:center}.swap-button:hover{transform:rotate(180deg);box-shadow:0 4px 12px #667eea66}.swap-button:active{transform:rotate(180deg) scale(.95)}.swap-button svg{width:20px;height:20px}.schedule-section{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 4px 20px #0000001a}.bus-schedule{width:100%}.route-card{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid #f0f0f0}.route-card:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.route-info{margin-bottom:1rem}.route-header{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:.75rem}.route-header h3{color:#333;font-size:1.5rem;margin:0}.route-name{color:#666;font-size:.9rem;font-weight:500;font-style:italic}.route-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.85rem;font-weight:600}.route-via{margin-bottom:1rem;padding:.75rem;background:#f8f9ff;border-radius:8px;font-size:.9rem}.via-label{font-weight:600;color:#333;margin-right:.5rem}.via-text{color:#666;line-height:1.5}.route-details{display:flex;gap:2rem;flex-wrap:wrap}.detail-item{display:flex;gap:.5rem;align-items:center}.detail-label{color:#666;font-weight:500}.detail-value{color:#333;font-weight:600}.fare-value{color:#667eea;font-size:1.1rem;font-weight:700}.upcoming-buses{margin-bottom:2rem}.upcoming-buses h4{color:#333;margin-bottom:1rem;font-size:1.2rem}.bus-timings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.75rem}.bus-time-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem;border-radius:8px;text-align:center;font-weight:600;font-size:1.1rem;box-shadow:0 2px 8px #667eea4d;transition:transform .2s}.bus-time-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.bus-time{display:block}.all-timings h4{color:#333;margin-bottom:1rem;font-size:1.2rem}.timings-list{display:flex;flex-wrap:wrap;gap:.5rem;word-break:break-word;overflow-wrap:break-word}.timing-item{background:#f5f5f5;color:#333;padding:.5rem .75rem;border-radius:6px;font-size:.9rem;font-weight:500;transition:background-color .2s}.timing-item:hover{background:#e8e8e8}.bus-route-label{display:block;font-size:.7rem;opacity:.8;margin-top:.25rem}.combined-upcoming{margin-top:2rem;padding-top:2rem;border-top:2px solid #f0f0f0}.no-timings{color:#999;font-style:italic;padding:1rem 0}.fare-details{margin-top:2rem;padding-top:1.5rem;border-top:2px solid #f0f0f0}.fare-details h4{color:#333;margin-bottom:1rem;font-size:1.2rem}.stops-fare-table{background:#f8f9ff;border-radius:8px;overflow:hidden;border:1px solid #e0e0e0}.fare-table-header{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:.75rem 1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;font-size:.95rem}.fare-table-row{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid #e0e0e0;transition:background-color .2s}.fare-table-row:last-child{border-bottom:none}.fare-table-row:hover{background-color:#f0f4ff}.stop-name{color:#333;font-size:.95rem}.stop-fare{color:#667eea;font-weight:600;font-size:.95rem}.no-route-message{text-align:center;padding:3rem 2rem;color:#666;font-size:1.1rem}.no-route-section,.welcome-section{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 4px 20px #0000001a}.welcome-screen{width:100%}.welcome-content{display:flex;flex-direction:column;gap:1.5rem}.welcome-icon{text-align:center;color:#667eea;margin-bottom:1rem}.welcome-content h2{text-align:center;color:#333;font-size:2rem;margin:0;font-weight:600}.welcome-description{text-align:center;color:#666;font-size:1.1rem;line-height:1.6;max-width:700px;margin:0 auto}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-top:1rem}.feature-card{background:linear-gradient(135deg,#f8f9ff,#f0f4ff);border-radius:12px;padding:1.5rem;text-align:center;transition:transform .2s,box-shadow .2s}.feature-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #667eea33}.feature-icon{font-size:2.5rem;margin-bottom:.75rem}.feature-card h3{color:#333;font-size:1.2rem;margin:0 0 .5rem;font-weight:600}.feature-card p{color:#666;font-size:.95rem;margin:0;line-height:1.5}.popular-routes{background:#f8f9ff;border-radius:12px;padding:1.25rem}.popular-routes h3{color:#333;font-size:1.5rem;margin:0 0 .5rem;text-align:center}.popular-routes-subtitle{text-align:center;color:#666;margin-bottom:1.5rem;font-size:.95rem}.route-buttons{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.route-button{background:#fff;border:2px solid #e0e0e0;border-radius:8px;padding:.75rem 1.25rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .2s;font-size:.95rem;color:#333}.route-button:hover{border-color:#667eea;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.route-button-icon{font-size:1.1rem}.route-button-text{font-weight:500}.info-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-top:1rem}.info-box{background:#f8f9ff;border-radius:12px;padding:1.25rem;border-left:4px solid #667eea;overflow-wrap:break-word;word-wrap:break-word}.info-box h4{color:#333;font-size:1.2rem;margin:0 0 1rem;font-weight:600}.info-box ol,.info-box ul{margin:0;padding-left:1.25rem;color:#666;line-height:1.8}.info-box li{margin-bottom:.5rem}.info-box li:last-child{margin-bottom:0}.no-upcoming{text-align:center;padding:2rem;color:#999;font-style:italic}@media (prefers-color-scheme: dark){.route-section,.schedule-section{background:#1a1a1a}.route-input-group label{color:#fff}.route-select{background:#2a2a2a;color:#fff;border-color:#444}.route-select:hover{border-color:#667eea}.route-header h3{color:#fff}.detail-label{color:#ccc}.detail-value{color:#fff}.route-info{border-bottom-color:#333}.upcoming-buses h4,.all-timings h4{color:#fff}.timing-item{background:#2a2a2a;color:#fff}.timing-item:hover{background:#333}.no-route-message,.no-upcoming{color:#ccc}.welcome-section,.no-route-section{background:#1a1a1a}.welcome-content h2{color:#fff}.welcome-description{color:#ccc}.feature-card{background:linear-gradient(135deg,#2a2a2a,#1f1f2e)}.feature-card h3{color:#fff}.feature-card p{color:#ccc}.popular-routes{background:#2a2a2a}.popular-routes h3{color:#fff}.popular-routes-subtitle{color:#ccc}.route-button{background:#2a2a2a;border-color:#444;color:#fff}.route-button:hover{border-color:#667eea}.info-box{background:#2a2a2a;border-left-color:#667eea}.info-box h4{color:#fff}.info-box ol,.info-box ul{color:#ccc}.fare-value{color:#8da4ff}.fare-details h4{color:#fff}.stops-fare-table{background:#2a2a2a;border-color:#444}.fare-table-row{border-bottom-color:#444}.fare-table-row:hover{background-color:#333}.stop-name{color:#fff}.stop-fare{color:#8da4ff}}@media (max-width: 768px){*{max-width:100%}body{overflow-x:hidden}.container{max-width:100%}.app-header{padding:1rem .75rem}.header-content{gap:1rem}.header-logo{width:48px;height:48px}.app-header h1{font-size:1.75rem;line-height:1.2;margin-bottom:.5rem}.app-header p{font-size:.9rem;line-height:1.4}.app-main{padding:1rem .75rem .75rem}.container{gap:.75rem}.route-section,.schedule-section,.welcome-section,.no-route-section{padding:1rem;border-radius:8px}.route-selector{gap:.5rem}.swap-button svg{width:18px;height:18px}.route-select{font-size:16px}.bus-timings-grid{grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:.5rem}.bus-time-card{padding:.75rem .5rem;font-size:1rem}.route-header{flex-direction:column;align-items:flex-start;gap:.5rem}.route-header h3{font-size:1.25rem}.route-details{flex-direction:column;gap:.75rem}.welcome-content h2{font-size:1.5rem;line-height:1.3}.welcome-description{font-size:.95rem;line-height:1.5;padding:0 .5rem}.welcome-icon svg{width:48px;height:48px}.features-grid{grid-template-columns:1fr;gap:1rem}.feature-card{padding:1rem}.feature-icon{font-size:2rem}.feature-card h3{font-size:1.1rem}.feature-card p{font-size:.9rem}.popular-routes{padding:1rem}.popular-routes h3{font-size:1.25rem}.popular-routes-subtitle{font-size:.9rem}.route-buttons{flex-direction:column;gap:.5rem}.route-button{width:100%;justify-content:center;padding:.875rem 1rem;font-size:.9rem}.info-section{grid-template-columns:1fr;gap:1rem}.info-box{padding:1rem}.info-box h4{font-size:1.1rem;margin-bottom:.75rem}.info-box ol,.info-box ul{font-size:.9rem;line-height:1.6;padding-left:1rem}.timing-item{font-size:.85rem;padding:.4rem .6rem}.all-timings h4,.upcoming-buses h4{font-size:1.1rem}.no-route-message{padding:2rem 1rem;font-size:1rem}.fare-table-header,.fare-table-row{padding:.625rem .75rem;font-size:.85rem}.stops-fare-table{font-size:.85rem}}@media (max-width: 480px){.header-content{flex-direction:column;text-align:center;gap:.75rem}.header-logo{width:40px;height:40px}.app-header h1{font-size:1.5rem}.app-header p{font-size:.85rem}.app-main{padding:.75rem .5rem .5rem}.route-section,.schedule-section,.welcome-section,.no-route-section{padding:.875rem}.welcome-content h2{font-size:1.25rem}.route-header h3{font-size:1.1rem}.bus-timings-grid{grid-template-columns:repeat(auto-fill,minmax(60px,1fr))}.bus-time-card{padding:.625rem .375rem;font-size:.9rem}}.app-footer{background:#f8f9ff;border-top:2px solid #e0e0e0;margin-top:3rem;padding:2rem 1rem}.footer-content{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem}.footer-section h3{color:#333;font-size:1.2rem;margin-bottom:1rem;font-weight:600}.footer-links{display:flex;flex-direction:column;gap:.5rem;flex-wrap:wrap}.footer-link{color:#667eea;text-decoration:none;font-size:.95rem;transition:color .2s}.footer-link:hover{color:#764ba2;text-decoration:underline}.footer-text{color:#666;font-size:.9rem;line-height:1.6;margin-bottom:.5rem}.footer-external-link{color:#667eea;text-decoration:none}.footer-external-link:hover{text-decoration:underline}.footer-bottom{max-width:1000px;margin:2rem auto 0;padding-top:1.5rem;border-top:1px solid #e0e0e0;text-align:center;color:#666;font-size:.85rem}.footer-brand{display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap}.footer-logo{width:32px;height:32px;opacity:.7;transition:opacity .3s ease}.footer-logo:hover{opacity:1}@media (prefers-color-scheme: dark){.app-footer{background:#1a1a1a;border-top-color:#333}.footer-section h3{color:#fff}.footer-link{color:#8da4ff}.footer-link:hover{color:#a5b7ff}.footer-text{color:#ccc}.footer-external-link{color:#8da4ff}.footer-bottom{border-top-color:#333;color:#ccc}.footer-logo{filter:brightness(0) invert(1);opacity:.6}.footer-logo:hover{opacity:.9}}@media (max-width: 768px){.app-footer{padding:1.5rem 1rem;margin-top:2rem}.footer-content{grid-template-columns:1fr;gap:1.5rem}.footer-section h3{font-size:1.1rem}.footer-links{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;width:100%;overflow-x:hidden}#root{width:100%;margin:0 auto;text-align:center;min-height:100vh}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}}
