:root{color:#212529;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f0f4f8;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}body{min-height:100vh;margin:0}h1,h2,h3{line-height:1.25}a{color:#1a3a5c}.card{background:#fff;border:1px solid #dee2e6;border-radius:10px;margin-bottom:1rem;padding:1.25rem;box-shadow:0 1px 3px #0000000f}.narrow{max-width:480px}.text-muted{color:#6c757d;font-size:.9rem}.source-tag{text-transform:uppercase;letter-spacing:.04em;border-radius:4px;margin-bottom:.35rem;margin-right:.35rem;padding:.15rem .45rem;font-size:.7rem;display:inline-block}.source-official{color:#fff;background:#1a3a5c}.source-passenger{color:#0d3b66;background:#e7f1ff}.report-list{margin:0;padding:0;list-style:none}.report-list li{border-bottom:1px solid #eee;padding:.65rem 0}.btn{cursor:pointer;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:.5rem 1rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{color:#fff;background:#1a3a5c;border-color:#1a3a5c}.btn-primary:hover{background:#15304d}.btn-ghost{color:#1a3a5c;background:0 0;border-color:#ced4da}.btn-ghost:hover{background:#f8f9fa}.site-header .btn-ghost{color:#fff;border-color:#ffffff59}.site-header .btn-primary{color:#212529;background:#ffc107;border-color:#ffc107}.btn-whatsapp{color:#fff;background:#25d366;margin-top:.5rem}.field{flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:600;display:flex}.field input,.field select,.field textarea{font:inherit;border:1px solid #ced4da;border-radius:6px;padding:.5rem .65rem;font-weight:400}.stack-form{flex-direction:column;gap:1rem;display:flex}.form-error{color:#dc3545;margin:0;font-size:.9rem}.form-success{color:#155724;margin:0;font-size:.9rem}.loading-msg{text-align:center;padding:2rem}.conductor-list{margin:0;padding:0;list-style:none}.conductor-row{border-bottom:1px solid #eee;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 0;display:flex}.conductor-actions{gap:.5rem;display:flex}.audit-list{margin:0;padding:0;list-style:none}.audit-list li{border-bottom:1px solid #eee;padding:.5rem 0;font-size:.9rem}.demo-banner{color:#fff;text-align:center;background:#856404;border-bottom:3px solid #ffc107;padding:.65rem 1rem;font-size:.9rem}.demo-banner strong{letter-spacing:.02em;margin-bottom:.35rem;font-size:.95rem;display:block}.demo-banner p{opacity:.95;max-width:52rem;margin:0 auto;font-size:.8rem}.admin-nav-muted{color:#ffffff73;cursor:not-allowed;border-bottom:2px solid #0000;padding:.25rem 0;font-size:.85rem}.official-disclaimer{color:#664d03;background:#fff8e6;border:1px solid #ffc107;border-radius:6px;margin:.75rem 0 0;padding:.65rem .85rem;font-size:.85rem}.official-disclaimer--preview{color:#495057;background:#f8f9fa;border-color:#adb5bd}.app-shell{flex-direction:column;min-height:100vh;display:flex}.site-header{color:#fff;background:#1a3a5c;padding:.75rem 1rem;box-shadow:0 2px 8px #0000001f}.header-inner{flex-wrap:wrap;align-items:center;gap:1rem;max-width:1100px;margin:0 auto;display:flex}.brand{color:inherit;flex-direction:column;text-decoration:none;display:flex}.brand-title{letter-spacing:.02em;font-size:1.25rem;font-weight:700}.brand-sub{opacity:.85;font-size:.75rem}.main-nav{flex-wrap:wrap;flex:1;gap:.5rem 1rem;display:flex}.main-nav a{color:#cfe2f8;border-bottom:2px solid #0000;padding:.25rem 0;font-size:.9rem;text-decoration:none}.main-nav a:hover,.main-nav a.active{color:#fff;border-bottom-color:#ffc107}.header-auth{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.user-greeting{opacity:.9;font-size:.85rem}.config-warn{background:#856404;border-radius:4px;padding:.2rem .5rem;font-size:.75rem}.config-warn--error{color:#fff;background:#721c24}.site-main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:1.25rem 1rem 2rem}.site-footer{text-align:center;color:#6c757d;background:#f8f9fa;border-top:1px solid #dee2e6;padding:1rem;font-size:.8rem}@media (width<=640px){.header-inner{flex-direction:column;align-items:flex-start}.main-nav{width:100%}}.status-badge{border-radius:6px;padding:.35rem .85rem;font-size:.9rem;font-weight:600;display:inline-block}.status-badge--large{padding:.6rem 1.25rem;font-size:1.35rem}.status-running{color:#155724;background:#d4edda;border:1px solid #28a745}.status-cancelled{color:#721c24;background:#f8d7da;border:1px solid #dc3545}.status-delayed{color:#856404;background:#fff3cd;border:1px solid #fd7e14}.status-not-confirmed{color:#495057;background:#e9ecef;border:1px solid #6c757d}.date-input-wrap{flex-direction:column;gap:.35rem;display:flex;position:relative}.date-input-hint{margin:0;font-size:.85rem}.date-input-row{align-items:stretch;gap:.35rem;display:flex}.date-input-row--error .date-input-text{border-color:#dc3545}.date-input-text{font:inherit;font-variant-numeric:tabular-nums;border:1px solid #ced4da;border-radius:6px;flex:1;min-width:0;padding:.5rem .65rem}.date-input-cal-btn{flex-shrink:0;padding:.5rem .65rem}.date-input-error{margin:0}.date-input-cal{z-index:20;background:#fff;border:1px solid #dee2e6;border-radius:8px;min-width:260px;margin-top:.35rem;padding:.75rem;position:absolute;top:100%;left:0;box-shadow:0 4px 16px #0000001f}.date-input-cal-toolbar{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.date-input-cal-title{font-size:.9rem;font-weight:600}.date-input-cal-nav{min-width:2rem;padding:.25rem .5rem}.date-input-cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.date-input-cal-weekday{text-align:center;color:#6c757d;padding:.2rem;font-size:.65rem;font-weight:600}.date-input-cal-day{cursor:pointer;background:#f8f9fa;border:none;border-radius:4px;padding:.35rem;font-size:.85rem}.date-input-cal-day:hover{background:#e9ecef}.date-input-cal-day--selected{color:#fff;background:#1a3a5c}.date-input-cal-day--empty{cursor:default;background:0 0}.hero h1{color:#1a3a5c;margin:0 0 .5rem}.route{margin:.25rem 0;font-size:1.15rem}.departure,.today-date{margin:.35rem 0}.today-status h2,.search-status h2,.announcement h2,.passenger-reports h2{margin-top:0;font-size:1.1rem}.status-reason{margin:.75rem 0}.last-updated{margin:.75rem 0 1rem}.report-remarks{margin:.35rem 0 0;font-size:.9rem}.search-display{font-weight:600}.calendar-toolbar{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.calendar-title{margin:0;font-size:1.15rem}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-weekday{text-align:center;color:#6c757d;padding:.25rem;font-size:.75rem;font-weight:600}.calendar-cell{cursor:pointer;background:#fff;border:1px solid #dee2e6;border-radius:6px;justify-content:center;align-items:center;min-height:2.75rem;padding:.25rem;display:flex}.calendar-cell--empty{cursor:default;background:0 0;border:none}.calendar-cell--running{background:#d4edda;border-color:#28a745}.calendar-cell--cancelled{background:#f8d7da;border-color:#dc3545}.calendar-cell--delayed{background:#fff3cd;border-color:#fd7e14}.calendar-cell--not-confirmed{background:#e9ecef;border-color:#adb5bd}.calendar-cell--selected{outline-offset:1px;outline:2px solid #1a3a5c}.calendar-day-num{font-size:.9rem;font-weight:600}.calendar-legend{flex-wrap:wrap;gap:.75rem;margin-top:1rem;font-size:.8rem;display:flex}.legend-item:before{content:"";vertical-align:middle;border-radius:3px;width:12px;height:12px;margin-right:.35rem;display:inline-block}.legend-running:before{background:#28a745}.legend-cancelled:before{background:#dc3545}.legend-delayed:before{background:#fd7e14}.legend-not-confirmed:before{background:#6c757d}.date-detail{margin-top:1rem}.detail-reason{margin-top:.75rem}
