*{box-sizing:border-box}body{font-family:system-ui,-apple-system,sans-serif;margin:0;color:#1a1a1a;background:#fafafa}button{font-family:inherit}header{display:flex;align-items:center;gap:1.5rem;padding:1rem 1.5rem;background:#fff;border-bottom:1px solid #e0e0e0}header a{color:#1a1a1a;text-decoration:none;font-weight:600}main{max-width:720px;margin:0 auto;padding:1.5rem}.login-prompt{max-width:480px;margin:3rem auto;padding:0 1rem;text-align:center}.login-form{display:flex;flex-direction:column;gap:.6rem;margin:1.25rem auto .75rem;max-width:320px}.login-form input{font:inherit;font-size:1rem;padding:.65rem .8rem;border:1px solid #c8c8c8;border-radius:8px;background:#fff}.login-form input.login-code-input{font-size:1.5rem;letter-spacing:.4em;text-align:center}.login-form button,.primary-link{display:inline-block;font:inherit;font-weight:600;padding:.65rem 1rem;border:none;border-radius:8px;background:#1a1a1a;color:#fff;text-decoration:none;cursor:pointer}.login-form button:disabled{opacity:.5;cursor:default}.login-secondary{display:flex;justify-content:center;gap:1.25rem;margin-top:.5rem}.login-notice{color:#2a7a2a}.link-button{font:inherit;font-size:.9rem;padding:0;border:none;background:none;color:#0a5cd8;cursor:pointer}.link-button:disabled{opacity:.5;cursor:default}.signout-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-top:2rem;padding-top:1rem;border-top:1px solid #e0e0e0;color:#666;font-size:.9rem}.signout-footer div{display:flex;gap:1rem}.trip-list{list-style:none;padding:0}.trip-list li{margin-bottom:.5rem}.trip-list a{display:block;padding:.9rem 1rem;background:#fff;border:1px solid #e0e0e0;border-radius:8px;color:inherit;font-weight:600;text-decoration:none}.itinerary-filters{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem}.filter-group{display:flex;flex-wrap:wrap;gap:.4rem}.filter-chip{border:1px solid #d0d0d0;background:#fff;border-radius:999px;padding:.3rem .8rem;font-size:.85rem;cursor:pointer;color:#444}.filter-chip.active{background:#1a1a1a;color:#fff;border-color:#1a1a1a}.itinerary-card{display:flex;gap:1rem;padding:1rem;margin-bottom:.75rem;background:#fff;border:1px solid #e0e0e0;border-radius:8px}.itinerary-card-linked{position:relative;cursor:pointer}.itinerary-card-linked:hover{border-color:#b8b8b8}.itinerary-title-link{display:block;color:inherit;text-decoration:none}.itinerary-title-link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.itinerary-title-link:focus-visible{outline:none}.itinerary-card-linked:has(.itinerary-title-link:focus-visible){outline:2px solid #0a5cd8;outline-offset:2px}.itinerary-card-linked .itinerary-address,.itinerary-card-linked .itinerary-qr-side{position:relative;z-index:1}.back-link{display:inline-block;margin-bottom:1rem;color:#0a5cd8;text-decoration:none}.back-link:hover{text-decoration:underline}.itinerary-icon{font-size:1.5rem;flex-shrink:0}.itinerary-body{flex:1;min-width:0}.itinerary-qr-side{flex-shrink:0;display:flex;flex-direction:column;gap:.3rem;align-self:flex-start}.itinerary-title{font-weight:700;margin-bottom:.15rem}.itinerary-time{font-weight:600}.itinerary-route{font-size:.95rem;color:#333}.itinerary-subtitle{color:#444}.itinerary-address{display:inline-block;color:#0a5cd8;text-decoration:none;font-size:.9rem}.itinerary-address:hover{text-decoration:underline}.itinerary-confirmation,.itinerary-notes{color:#666;font-size:.9rem}.itinerary-documents{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;margin-top:.5rem}.itinerary-document-link{display:inline-block;padding:.3rem .7rem;background:#fff;color:#0a5cd8;border:1px solid #d0d0d0;border-radius:6px;font-size:.85rem;cursor:pointer}.itinerary-document-link:disabled{opacity:.6;cursor:default}.itinerary-qr-thumb{display:block;padding:.4rem;background:#fff;border:1px solid #d0d0d0;border-radius:6px;cursor:pointer}.itinerary-qr-thumb:disabled{opacity:.6;cursor:default}.itinerary-qr-thumb img{display:block;width:76px;height:76px}.itinerary-qr-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;padding:2rem;cursor:pointer;z-index:1000}.itinerary-qr-full{max-width:min(90vw,480px);max-height:90vh;background:#fff;padding:1rem;border-radius:8px}.error-state{color:#b00020}.empty-state{color:#888}@media (max-width: 480px){main{padding:1rem .75rem}.itinerary-card{padding:.75rem;gap:.75rem}}
