.bus{--bus-primary:#1d4ed8;--bus-primary-dark:#1e40af;--bus-bg:#f5f7fb;--bus-text:#0f172a;--bus-muted:#64748b;--bus-border:#e2e8f0;background:var(--bus-bg);min-height:100vh;color:var(--bus-text)}.bus h1,.bus h2{color:var(--bus-text);letter-spacing:-.02em}.bus-muted{color:var(--bus-muted)}.bus-btn{border:1px solid var(--bus-primary);background:var(--bus-primary);color:#fff;font-family:var(--font);cursor:pointer;white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;padding:.65rem 1.2rem;font-size:.9rem;font-weight:600;transition:background .15s;display:inline-flex}.bus-btn:hover:not(:disabled){background:var(--bus-primary-dark)}.bus-btn:disabled{opacity:.5;cursor:not-allowed}.bus-btn--ghost{color:var(--bus-primary);border-color:var(--bus-border);background:#fff}.bus-btn--ghost:hover:not(:disabled){background:var(--bus-bg)}.bus-btn--block{width:100%}.bus-nav{border-bottom:1px solid var(--bus-border);background:#fff;padding:.9rem 0}.bus-nav__inner{justify-content:space-between;align-items:center;display:flex}.bus-brand{align-items:center;gap:.6rem;font-size:1.1rem;font-weight:700;display:flex}.bus-brand__mark{background:var(--bus-primary);color:#fff;border-radius:8px;place-items:center;width:32px;height:32px;font-size:.8rem;display:grid}.bus-nav__user{align-items:center;gap:.7rem;font-size:.92rem;display:flex}.bus-avatar{width:32px;height:32px;color:var(--bus-primary);background:#dbeafe;border-radius:50%;place-items:center;font-weight:700;display:grid}.bus-hero{background:linear-gradient(135deg,#1d4ed8,#0ea5e9);padding:4rem 0 4.5rem}.bus-hero h1{color:#fff;max-width:620px;margin-bottom:.7rem;font-size:clamp(2rem,4vw,2.8rem);line-height:1.15}.bus-hero p{color:#dbeafe;margin-bottom:2rem}.bus-search{background:#fff;border-radius:14px;grid-template-columns:repeat(3,1fr) auto;align-items:end;gap:.8rem;padding:1.2rem;display:grid;box-shadow:0 20px 40px -20px #0f172a66}.bus-search label{color:var(--bus-muted);flex-direction:column;gap:.3rem;font-size:.78rem;font-weight:600;display:flex}.bus-search input,.bus-input{border:1px solid var(--bus-border);font-family:var(--font);color:var(--bus-text);border-radius:10px;outline:none;padding:.65rem .8rem;font-size:.92rem}.bus-search input:focus,.bus-input:focus{border-color:var(--bus-primary)}.bus-section{padding:2.5rem 0 0}.bus-section:last-child{padding-bottom:4rem}.bus-section h2{margin-bottom:1rem;font-size:1.3rem}.bus-trips{flex-direction:column;gap:.7rem;list-style:none;display:flex}.bus-trip{border:1px solid var(--bus-border);background:#fff;border-radius:12px;grid-template-columns:1fr auto auto;align-items:center;gap:1.5rem;padding:1rem 1.2rem;display:grid}.bus-trip div{flex-direction:column;gap:.15rem;display:flex}.bus-trip div span{color:var(--bus-muted);font-size:.85rem}.bus-trip__price{font-size:1.2rem;font-weight:700}.bus-trip__done{color:var(--bus-text);font-size:.85rem;font-weight:600}.bus-received{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.7rem;margin-top:1rem;display:grid}.bus-received div{border:1px solid var(--bus-border);background:#fff;border-radius:12px;padding:.9rem 1rem}.bus-received dt{color:var(--bus-muted);font-size:.78rem}.bus-received dd{font-weight:600}.bus-received .bus-subject{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.85rem}.bus-modal{z-index:200;background:#0f172a73;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.bus-modal__card{text-align:center;background:#fff;border-radius:16px;flex-direction:column;gap:.8rem;width:min(400px,100%);padding:2rem;display:flex;position:relative}.bus-modal__card h2{font-size:1.35rem}.bus-modal__close{color:var(--bus-muted);cursor:pointer;background:0 0;border:none;font-size:1.5rem;position:absolute;top:.8rem;right:1rem}.bus-qr{background:#fff;width:220px;height:220px;margin:0 auto}.bus-divider{color:var(--bus-muted);align-items:center;gap:.8rem;font-size:.8rem;display:flex}.bus-divider:before,.bus-divider:after{content:"";background:var(--bus-border);flex:1;height:1px}.bus-spinner{border:3px solid #dbeafe;border-top-color:var(--bus-primary);border-radius:50%;width:36px;height:36px;margin:0 auto .4rem;animation:.8s linear infinite bus-spin}@keyframes bus-spin{to{transform:rotate(360deg)}}@media (max-width:760px){.bus-search{grid-template-columns:1fr}.bus-trip{grid-template-columns:1fr auto}.bus-trip .bus-btn,.bus-trip__done{grid-column:1/-1}}
