:root {
  --primary:        #0f766e;
  --primary-dark:   #0f2942;
  --primary-mid:    #0d9488;
  --primary-light:  #ccfbf1;
  --primary-xlight: #f0fdfa;
  --accent:         #06b6d4;
  --accent-bright:  #14b8a6;

  --ok:             #16a34a;
  --ok-l:           #dcfce7;
  --err:            #dc2626;
  --err-l:          #fee2e2;
  --warn:           #d97706;
  --warn-l:         #fef3c7;

  --ink:            #0f172a;
  --ink2:           #334155;
  --muted:          #64748b;
  --faint:          #94a3b8;
  --white:          #ffffff;

  --bg:             #f0fdfb;
  --surface:        #ffffff;
  --subtle:         #f8fafc;
  --bdr:            #99f6e4;
  --bdr-l:          #ccfbf1;

  --sh-sm:  0 1px 3px rgba(15,118,110,0.08);
  --sh-md:  0 4px 16px rgba(15,118,110,0.14);
  --sh-lg:  0 8px 32px rgba(15,118,110,0.20);
  --sh-xl:  0 20px 60px rgba(15,41,66,0.18);
  --sh-sel: 0 0 0 2px #0f766e, 0 8px 32px rgba(15,118,110,0.22);

  --r1:   8px;
  --r2:   14px;
  --r3:   20px;
  --r4:   24px;
  --pill: 999px;

  --font: system-ui, -apple-system, "Segoe UI",
          Roboto, Arial, sans-serif;
  --mono: ui-monospace, SFMono-Regular,
          Menlo, Consolas, monospace;

  --tr:      0.2s ease;
  --tr-fast: 0.12s ease;
  --tr-slow: 0.5s cubic-bezier(0.4,0,0.2,1);

  --nav-h:  68px;
  --bar-h:  68px;
}

/* CampusFlow compatibility aliases.
   Canonical values live in the first :root block above. */
:root {
  --success:       var(--ok);
  --success-light: var(--ok-l);
  --danger:        var(--err);
  --danger-light:  var(--err-l);
  --warning:       var(--warn);
  --warning-light: var(--warn-l);

  --text-main:       var(--ink);
  --text-muted:      var(--muted);
  --text-light:      var(--faint);
  --text-on-primary: var(--white);

  --bg-body:   var(--bg);
  --bg-card:   var(--white);
  --bg-subtle: var(--subtle);

  --border:       var(--bdr);
  --border-light: var(--bdr-l);

  --shadow-sm: var(--sh-sm);
  --shadow-md: var(--sh-md);
  --shadow-lg: var(--sh-lg);

  --radius-sm: var(--r1);
  --radius:    var(--r2);
  --radius-lg: var(--r3);

  --font-main: var(--font);
}

html,body{overflow-x:hidden;max-width:100%}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{font-family:var(--font);background:var(--bg-body);color:var(--text-main);line-height:1.5;padding-bottom:80px}a{color:var(--primary)}.container{max-width:600px;margin:0 auto;padding:16px}.header{background:var(--primary);color:var(--text-on-primary);padding:14px 16px;position:sticky;top:0;z-index:50;box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;align-items:center}.header-brand{display:flex;align-items:center;gap:10px}.header-logo{width:40px;height:40px;background:rgba(255,255,255,0.18);border-radius:12px;display:flex;align-items:center;justify-content:center}.header-logo svg{color:var(--text-on-primary)}.header h1{font-size:1.2rem;font-weight:800;color:var(--text-on-primary);letter-spacing:-0.03em}.header-actions{display:flex;align-items:center;gap:8px}.header-right{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,0.18);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-on-primary);text-decoration:none;transition:background .15s}.header-right:hover{background:rgba(255,255,255,0.28)}.header-login-btn{background:var(--text-on-primary);color:var(--primary);padding:8px 14px;border-radius:var(--radius-sm);font-weight:700;font-size:0.85rem;text-decoration:none;transition:background .15s}.header-login-btn:hover{background:var(--primary-xlight)}.user-chip-wrap{position:relative}.user-chip{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,0.18);color:var(--text-on-primary);border:none;padding:8px 12px;border-radius:var(--radius-sm);font-weight:700;font-size:0.85rem;cursor:pointer;transition:background .15s}.user-chip:hover{background:rgba(255,255,255,0.28)}.user-menu{display:none;position:absolute;top:calc(100% + 8px);right:0;min-width:180px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:hidden;z-index:80}.user-menu.open{display:block}.user-menu a{display:block;padding:12px 16px;color:var(--text-main);text-decoration:none;font-size:0.9rem;font-weight:600}.user-menu a:hover{background:var(--primary-xlight);color:var(--primary)}.header-solid{background:var(--primary);color:var(--text-on-primary);padding:18px 16px;position:sticky;top:0;z-index:50;box-shadow:var(--shadow-md)}.header-solid h1{font-size:1.2rem;font-weight:700;color:var(--text-on-primary)}.page-hero{padding:20px 16px 4px;max-width:600px;margin:0 auto}.page-hero h2{font-size:1.75rem;font-weight:800;color:var(--text-main);letter-spacing:-0.04em;line-height:1.2}.page-hero p{font-size:0.9rem;color:var(--text-muted);margin-top:4px}.auth-bg{background:var(--primary-dark);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;padding-bottom:20px}.auth-card{width:100%;max-width:420px;padding:32px;background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-light)}.auth-brand{text-align:center;margin-bottom:22px}.auth-logo{width:56px;height:56px;border-radius:16px;background:var(--primary);display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px}.auth-brand h1{font-size:1.3rem;font-weight:800;color:var(--text-main);letter-spacing:-0.02em}.auth-brand p{margin-top:4px;font-size:0.88rem;color:var(--text-muted)}.auth-check{display:flex;align-items:center;gap:8px;margin:8px 0 18px;font-size:0.88rem;color:var(--text-main);font-weight:500;cursor:pointer}.auth-check input{width:16px;height:16px;padding:0}.auth-foot{margin-top:18px;text-align:center;font-size:0.88rem;color:var(--text-muted)}.auth-foot a{color:var(--primary);font-weight:700;text-decoration:none;margin-left:4px}.auth-foot a:hover{text-decoration:underline}.auth-back{font-weight:600}.auth-optional{color:var(--text-light);font-weight:500;font-size:0.82rem}.card{background:var(--bg-card);border-radius:var(--radius);padding:20px;margin-bottom:16px;box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}.card-title{font-size:1.05rem;font-weight:700;margin-bottom:12px;color:var(--primary-dark)}.bus-item{background:var(--bg-card);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow-sm);border:2px solid transparent;transition:transform .2s,box-shadow .2s,border-color .2s;cursor:pointer;position:relative;overflow:hidden}.bus-item:active{transform:scale(0.98)}.bus-item.selected{border-color:var(--primary);background:var(--primary-xlight);box-shadow:0 0 0 4px rgba(15,118,110,0.12)}.bus-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.bus-time{font-size:1.5rem;font-weight:800;color:var(--primary)}.bus-label{background:var(--primary-light);color:var(--primary-dark);padding:4px 10px;border-radius:99px;font-size:0.75rem;font-weight:700;text-transform:uppercase}.bus-route{font-size:0.9rem;color:var(--text-muted);margin-bottom:12px;display:flex;align-items:center}.bus-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border-light);padding-top:12px;margin-top:8px}.seats-badge{font-size:.85rem;font-weight:600}.seats-badge.low{color:var(--danger)}.seats-badge.ok{color:var(--success)}.seat-progress-section{margin:12px 0;padding:12px 0;border-top:1px solid var(--border-light);border-bottom:1px solid var(--border-light)}.seat-progress-bar{font-size:1.4rem;letter-spacing:2px;margin-bottom:8px;color:var(--primary);font-weight:600;text-align:left;word-break:break-all}.seat-progress-info{display:flex;justify-content:space-between;align-items:center;font-size:.85rem}.seat-count{color:var(--text-main);font-weight:600}.seat-status{font-weight:700;padding:4px 10px;border-radius:99px;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.seat-status.full{background:var(--danger-light);color:var(--danger)}.seat-status.available{background:var(--success-light);color:var(--success)}.seat-status.almost{background:var(--warning-light);color:var(--warning);padding:3px 8px;border-radius:99px;font-weight:700;font-size:.72rem}.price-tag{font-weight:700;color:var(--text-main)}.form-group{margin-bottom:16px}label{display:block;margin-bottom:6px;font-size:.9rem;font-weight:500;color:var(--text-muted)}input[type="text"],input[type="tel"],input[type="number"],input[type="password"],input[type="email"],select,textarea,input[type="time"]{width:100%;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:1rem;transition:all .2s;background:var(--bg-card);color:var(--text-main);font-family:var(--font)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);background:var(--bg-card);box-shadow:0 0 0 3px rgba(15,118,110,0.15)}input[readonly]{background:var(--bg-subtle);color:var(--text-muted)}.btn{display:inline-flex;justify-content:center;align-items:center;width:100%;padding:12px 24px;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;text-decoration:none;gap:8px;font-family:var(--font)}.btn-primary{background:var(--primary);color:var(--text-on-primary);border:none;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{background:var(--text-light);cursor:not-allowed;box-shadow:none}.btn-secondary{background:transparent;border:1px solid var(--border);color:var(--primary);padding:12px 24px;border-radius:var(--radius-sm)}.btn-secondary:hover{background:var(--primary-xlight)}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--primary)}.btn-outline:hover{background:var(--primary-xlight)}.btn-x{background:var(--text-main);color:var(--text-on-primary);margin-top:12px}.btn-whatsapp{background:var(--success);color:#fff;margin-top:10px}.btn-whatsapp:hover{background:var(--success)}.bottom-nav{position:fixed;bottom:0;left:0;width:100%;background:var(--bg-card);border-top:1px solid var(--border);display:flex;justify-content:space-around;padding:8px 0 max(8px,env(safe-area-inset-bottom));z-index:100}.nav-item{text-decoration:none;color:var(--text-muted);font-size:.72rem;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;transition:color .2s}.nav-item.active{color:var(--primary)}.nav-icon-wrap{width:46px;height:32px;border-radius:99px;display:flex;align-items:center;justify-content:center;transition:background .2s}.nav-item.active .nav-icon-wrap{background:var(--primary-light)}.attendant-header{background:var(--primary);color:var(--text-on-primary)}.passenger-row{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--border-light)}img[src="logo.png"]{width:48px;height:48px;padding:8px;background:rgba(255,255,255,0.15);border-radius:50%}.check-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;background:transparent;cursor:pointer;font-size:1.2rem;color:var(--text-light);transition:all .2s}.check-btn.checked{background:var(--success);border-color:var(--success);color:var(--text-on-primary)}.lookup-tabs{display:flex;gap:0;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border);margin-bottom:16px}.lookup-tab{flex:1;padding:10px;background:transparent;border:none;font-size:.875rem;font-weight:600;cursor:pointer;color:var(--text-muted);transition:all .2s}.lookup-tab.active{background:var(--primary);color:var(--text-on-primary)}.my-booking-card{border-left:4px solid var(--primary)}.my-booking-head{display:flex;justify-content:space-between;align-items:flex-start}.my-booking-code{font-family:monospace;font-weight:800;font-size:1.05rem;color:var(--primary)}.my-booking-meta{font-size:.85rem;color:var(--text-muted);margin-top:4px}.my-booking-row{display:flex;justify-content:space-between;gap:12px}.badge{display:inline-block;font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:99px;text-transform:uppercase;letter-spacing:.04em}.badge-success{background:var(--success-light);color:var(--success)}.badge-danger{background:var(--danger-light);color:var(--danger)}.badge-info{background:var(--primary-light);color:var(--primary-dark)}.badge-warning{background:var(--warning-light);color:var(--warning)}.text-center{text-align:center}.mt-4{margin-top:16px}.mb-2{margin-bottom:8px}.hidden{display:none}.pwa-install{background:var(--bg-card);padding:16px;border-radius:var(--radius);box-shadow:var(--shadow-md);margin-bottom:20px;display:none;text-align:center;border:1px solid var(--border-light)}.alert{padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:.9rem}.alert-error{background:var(--danger-light);color:var(--danger)}.alert-success{background:var(--success-light);color:var(--success)}.alert-info{background:var(--primary-light);color:var(--primary-dark)}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-out forwards}.share-btns{display:flex;flex-direction:column;gap:10px}.staff-drawer{background:var(--bg-card);border-bottom:1px solid var(--border-light);overflow:hidden;max-height:0;transition:max-height .25s ease,box-shadow .25s}.staff-drawer.open{max-height:220px;box-shadow:var(--shadow-sm)}.staff-drawer-inner{padding:12px 16px 14px;max-width:600px;margin:0 auto}.staff-drawer-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:10px}.staff-drawer-links{display:flex;gap:8px;flex-wrap:wrap}.staff-link{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--primary-light);color:var(--primary-dark);border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;text-decoration:none;transition:background .15s}.staff-link:hover{background:var(--primary-light)}.route-tabs{display:flex;gap:8px;margin-bottom:14px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.route-tabs::-webkit-scrollbar{display:none}.route-tab{white-space:nowrap;padding:7px 14px;border-radius:99px;border:1px solid var(--border);background:var(--bg-card);font-size:.82rem;font-weight:600;color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s}.route-tab.active{background:var(--primary);color:var(--text-on-primary);border-color:var(--primary)}.route-tab-count{background:rgba(255,255,255,.25);border-radius:99px;padding:0 6px;font-size:.72rem}.route-tab:not(.active) .route-tab-count{background:var(--primary-light);color:var(--primary)}.bus-route-inline{display:flex;align-items:center;font-size:.82rem;color:var(--text-muted);margin-top:2px;font-weight:500}.cap-bar-wrap{margin:12px 0}.cap-bar{height:6px;background:var(--bg-subtle);border-radius:99px;overflow:hidden;margin-bottom:6px}.cap-bar-fill{height:100%;background:var(--primary);border-radius:99px;transition:width .3s}.cap-bar-fill.warn{background:var(--warning)}.cap-bar-fill.danger{background:var(--danger)}.cap-bar-info{display:flex;justify-content:space-between;font-size:.78rem;color:var(--text-muted)}.book-cta{font-size:.8rem;color:var(--primary);font-weight:600}.selected-bus-banner{background:var(--primary-light);color:var(--primary-dark);font-size:.82rem;font-weight:600;padding:8px 12px;border-radius:var(--radius-sm);margin-bottom:14px;display:flex;align-items:center;gap:6px}.selected-bus-banner:empty{display:none}.pay-notice{display:flex;align-items:flex-start;gap:8px;background:var(--success-light);color:var(--success);border-radius:var(--radius-sm);padding:12px;font-size:.85rem;font-weight:500;margin-bottom:14px;line-height:1.4}.pay-notice svg{flex-shrink:0;margin-top:1px}.status-pill{padding:3px 10px;border-radius:99px;font-size:.72rem;font-weight:700;text-transform:uppercase;white-space:nowrap}.status-open{background:var(--success-light);color:var(--success)}.status-departed{background:var(--warning-light);color:var(--warning)}.status-closed{background:var(--danger-light);color:var(--danger)}.status-cancelled{background:var(--bg-subtle);color:var(--text-muted)}.booking-identity-card{background:var(--primary-xlight);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:16px}.identity-row{display:flex;align-items:center;gap:12px}.identity-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary);color:var(--text-on-primary);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.1rem;flex-shrink:0;text-transform:uppercase}.identity-info{flex:1;display:flex;flex-direction:column;gap:2px}.identity-name{font-weight:700;font-size:.95rem;color:var(--text-main)}.identity-matric{font-size:.8rem;color:var(--text-muted)}.identity-logout{font-size:.78rem;color:var(--text-muted);text-decoration:none;white-space:nowrap}.identity-logout:hover{color:var(--danger)}.login-nudge{text-align:center;font-size:.85rem;color:var(--text-muted);padding:10px;margin-bottom:12px}.login-nudge a{color:var(--primary);font-weight:600;text-decoration:none}.booking-live-hero{background:linear-gradient(135deg,var(--primary-dark),var(--primary));color:var(--text-on-primary);padding:30px 16px 34px}.booking-live-hero-inner{width:100%;max-width:600px;margin:0 auto}.booking-live-kicker{display:block;margin-bottom:6px;color:var(--primary-light);font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.booking-live-hero h2{color:var(--text-on-primary);font-size:2rem;line-height:1.12;letter-spacing:-.04em;margin-bottom:18px}.next-bus-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 18px;align-items:center;background:var(--bg-card);color:var(--text-main);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-lg)}.next-bus-card>div:first-child{display:flex;flex-direction:column;min-width:0}.next-bus-route{color:var(--primary);font-size:.78rem;font-weight:800;text-transform:uppercase}.next-bus-card strong{color:var(--text-main);font-size:1.8rem;line-height:1.15}.next-bus-card>div:first-child>span:last-child,.next-bus-details{color:var(--text-muted);font-size:.86rem}.next-bus-details{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-weight:700}.next-bus-action{grid-column:1 / -1;display:inline-flex;justify-content:center;align-items:center;min-height:44px;background:var(--primary);color:var(--text-on-primary);border-radius:var(--radius-sm);font-weight:800;text-decoration:none}.next-bus-action:hover{background:var(--primary-dark)}.booking-live-empty{max-width:420px;color:var(--primary-light);font-size:1rem}.schedule-list-anchor{position:relative}.scroll-anchor{position:absolute;top:-84px}.bus-card-badges{display:flex;flex-direction:column;align-items:flex-end;gap:7px}.availability-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 9px;font-size:.7rem;font-weight:800;line-height:1;text-transform:uppercase;white-space:nowrap}.availability-badge.available,.seat-status.available{background:var(--success-light);color:var(--success)}.availability-badge.filling-up,.seat-status.filling-up{background:var(--warning-light);color:var(--warning)}.availability-badge.almost-full,.seat-status.almost-full{background:var(--danger-light);color:var(--danger)}.availability-badge.sold-out,.seat-status.sold-out{background:var(--bg-subtle);color:var(--text-muted)}.bus-item.sold-out{cursor:default;opacity:.78}.bus-item.sold-out:active{transform:none}.bus-select-btn{width:auto;min-width:86px;padding:8px 14px;border:0;border-radius:var(--radius-sm);background:var(--primary);color:var(--text-on-primary);font:inherit;font-size:.82rem;font-weight:800;cursor:pointer}.bus-select-btn:hover:not(:disabled){background:var(--primary-dark)}.bus-select-btn:disabled{background:var(--bg-subtle);color:var(--text-muted);cursor:not-allowed}.privacy-page{min-height:100vh;background:var(--bg-body)}.privacy-shell{width:min(760px,calc(100% - 32px));margin:32px auto}.privacy-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-md)}.privacy-card h1{color:var(--primary-dark);margin-bottom:8px}.privacy-intro{color:var(--text-muted);margin-bottom:24px}.privacy-section + .privacy-section{margin-top:24px}.privacy-section h2{color:var(--text-main);font-size:1.08rem;margin-bottom:6px}.privacy-section p{color:var(--text-muted)}.privacy-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.privacy-actions .btn{width:auto}.privacy-agreement{display:flex;align-items:flex-start;gap:9px;color:var(--text-muted);font-size:.88rem;line-height:1.45;margin:8px 0 18px}.privacy-agreement input{flex:0 0 auto;width:17px;height:17px;margin-top:2px}.privacy-agreement a{font-weight:700}@media (max-width:420px){.booking-live-hero{padding:24px 14px 28px}.booking-live-hero h2{font-size:1.7rem}.next-bus-card{grid-template-columns:1fr;padding:16px}.next-bus-details{align-items:flex-start}.next-bus-action{grid-column:1}.bus-card-badges{gap:5px}.availability-badge{font-size:.64rem}.privacy-card{padding:22px 18px}}body.landing-page{background:var(--bg-card);color:var(--text-main);padding-bottom:0}.landing-page *{box-sizing:border-box}.landing-page img,.landing-page svg{display:block}.landing-wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 20px}.site-nav{background:var(--primary);color:var(--text-on-primary);position:sticky;top:0;z-index:50;box-shadow:var(--shadow-sm)}.nav-row{display:flex;align-items:center;justify-content:space-between;max-width:1180px;margin:0 auto;padding:14px 20px;gap:16px}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--text-on-primary);text-decoration:none;font-weight:800;font-size:1.15rem}.brand-icon{width:36px;height:36px;background:var(--primary-dark);border-radius:10px;display:inline-flex;align-items:center;justify-content:center}.nav-links{display:flex;align-items:center;gap:26px;list-style:none}.nav-links a{color:var(--text-on-primary);text-decoration:none;font-weight:600;font-size:.92rem}.nav-cta{background:var(--bg-card);color:var(--primary) !important;padding:9px 16px;border-radius:var(--radius-sm);font-weight:700}.nav-cta:hover{background:var(--primary-light)}.nav-toggle{display:none;width:40px;height:40px;background:var(--primary-dark);border:0;color:var(--text-on-primary);border-radius:var(--radius-sm);cursor:pointer;align-items:center;justify-content:center}.landing-hero{background:linear-gradient(135deg,var(--primary-dark),var(--primary));color:var(--text-on-primary);padding:80px 0 96px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}.landing-hero h1{font-size:3rem;font-weight:900;line-height:1.1;letter-spacing:-.03em;margin-bottom:18px}.landing-hero p{font-size:1.15rem;color:var(--primary-light);max-width:520px;margin-bottom:32px}.hero-buttons{display:flex;gap:14px;flex-wrap:wrap}.landing-button{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:var(--radius-sm);text-decoration:none;font-weight:700;font-size:1rem;border:0}.landing-button-primary{background:var(--bg-card);color:var(--primary);box-shadow:var(--shadow-md)}.landing-button-primary:hover{background:var(--primary-light)}.landing-button-ghost{background:transparent;color:var(--text-on-primary);border:1px solid var(--primary-light)}.hero-art{width:100%;max-width:460px;margin-left:auto}.landing-section{padding:80px 0}.landing-section-light{background:var(--bg-card)}.landing-section-tint{background:var(--bg-body)}.section-title{text-align:center;font-size:2rem;font-weight:800;letter-spacing:-.02em;margin-bottom:14px}.section-sub{text-align:center;color:var(--text-muted);max-width:560px;margin:0 auto 48px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.step{text-align:center;padding:24px 18px}.step-num{width:56px;height:56px;border-radius:50%;background:var(--primary);color:var(--text-on-primary);display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:1.4rem;margin-bottom:18px;box-shadow:var(--shadow-md)}.step-icon{color:var(--primary);display:flex;justify-content:center;margin-bottom:12px}.step h3,.benefit h3{color:var(--text-main);margin-bottom:8px}.step p,.benefit p{color:var(--text-muted);font-size:.93rem}.live-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.live-stat{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius);padding:28px 20px;text-align:center;box-shadow:var(--shadow-sm)}.live-stat strong{display:block;color:var(--primary);font-size:2.15rem;line-height:1;margin-bottom:10px}.live-stat span{color:var(--text-muted);font-weight:650}.benefits{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.benefit{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);padding:26px 24px;display:flex;gap:16px;align-items:flex-start}.benefit-icon{flex-shrink:0;width:48px;height:48px;border-radius:var(--radius-sm);background:var(--primary-light);color:var(--primary-dark);display:inline-flex;align-items:center;justify-content:center}.contact{background:var(--primary-dark);color:var(--text-on-primary);padding:72px 0 56px}.contact-cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}.contact-col h3{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--primary-light);margin-bottom:18px}.contact-col p,.contact-col li{color:var(--primary-light);font-size:.93rem;line-height:1.6}.contact-col ul{list-style:none}.contact-col li{margin-bottom:10px}.contact-col a{color:var(--text-on-primary);text-decoration:none;font-weight:600}.contact-fact{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px}.contact-fact svg{flex-shrink:0;margin-top:2px;color:var(--primary-light)}.landing-footer{background:var(--primary-dark);color:var(--primary-light);padding:22px 20px;text-align:center;font-size:.85rem;border-top:1px solid var(--primary)}.landing-footer a{color:var(--text-on-primary);font-weight:700}@media (max-width:820px){.nav-toggle{display:inline-flex}.nav-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--primary-dark);padding:8px 16px 18px;max-height:0;overflow:hidden;transition:max-height .25s ease}.nav-links.open{max-height:360px}.nav-links a{display:block;padding:14px 4px;border-bottom:1px solid var(--primary)}.hero-grid,.steps,.live-stats,.benefits,.contact-cols{grid-template-columns:1fr}.landing-hero{padding:56px 0 70px}.landing-hero h1{font-size:2.1rem}.landing-hero p{font-size:1rem}.hero-art{max-width:320px;margin:0 auto}.landing-section{padding:56px 0}.section-title{font-size:1.65rem}.contact{padding:56px 0 40px}}:root{--surface:var(--bg-card);--surface-raised:var(--bg-card);--surface-muted:var(--bg-subtle);--surface-glass:rgba(255,255,255,.12);--surface-glass-strong:rgba(255,255,255,.18);--border-glass:rgba(255,255,255,.2);--header-border:rgba(255,255,255,.1);--overlay-dark:rgba(15,23,42,.2);--shadow-card:0 1px 2px rgba(0,0,0,.04),0 4px 16px rgba(15,118,110,.08);--shadow-card-hover:0 1px 2px rgba(0,0,0,.05),0 8px 32px rgba(15,118,110,.16);--shadow-selected:0 0 0 2px var(--primary),0 8px 32px rgba(15,118,110,.2);--shadow-auth:0 24px 64px rgba(0,0,0,.2);--focus-ring:0 0 0 4px rgba(15,118,110,.14);--radius-xl:24px;--radius-pill:999px;--header-height:68px;--nav-height:72px;--content-wide:1180px;--content-form:620px;--transition-fast:.15s ease;--transition:.2s ease;--transition-slow:.6s cubic-bezier(.4,0,.2,1);--skeleton-base:#f0f0f0;--skeleton-highlight:#e0e0e0}html{scroll-behavior:smooth;background:var(--bg-body)}body{min-height:100vh;line-height:1.65;letter-spacing:-.005em;padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom))}h1,h2,h3,h4{line-height:1.12;letter-spacing:-.04em;text-wrap:balance}p{text-wrap:pretty}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}img,svg{max-width:100%}.container{width:min(100%,var(--content-form));padding:20px 16px 36px}.card,.panel,.metric-card,.summary,.live-stat,.benefit,.step,.pay-card,.agreement-card,.privacy-card{background:var(--surface-raised);border:1px solid var(--border-light);box-shadow:var(--shadow-card)}.card,.panel,.metric-card,.summary,.live-stat,.benefit,.step,.pay-card,.agreement-card,.privacy-card,.bus-item{transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition)}.card{border-radius:var(--radius-lg);padding:20px}.card-title{letter-spacing:-.025em}.header,.site-nav,.staff-topbar,.admin-head,.stats-header{background:rgba(15,41,66,.98);color:var(--text-on-primary);border-bottom:1px solid var(--header-border)}.header,.site-nav{min-height:var(--header-height);position:sticky;top:0;z-index:100;transition:background var(--transition),box-shadow var(--transition),backdrop-filter var(--transition)}.header.scrolled,.site-nav.scrolled{background:rgba(15,41,66,.92);box-shadow:0 10px 32px rgba(15,23,42,.18);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.header{padding:12px max(16px,calc((100vw - var(--content-wide)) / 2));box-shadow:none}.header-brand,.brand{min-width:0;color:var(--text-on-primary);text-decoration:none}.header-logo,.brand-icon{width:42px;height:42px;padding:8px;border:1px solid var(--border-glass);border-radius:13px;background:var(--surface-glass);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}.header-logo img,.brand-icon img{width:100%;height:100%;object-fit:contain;filter:grayscale(1) brightness(0) invert(1)}.header h1,.brand{font-weight:900;letter-spacing:-.04em}.header-login-btn,.user-chip,.header-right,.nav-cta{border:1px solid var(--border-glass);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.header-login-btn{background:var(--surface);color:var(--primary-dark);border-radius:var(--radius-pill);padding:9px 16px}.user-chip,.header-right{background:var(--surface-glass);border-radius:var(--radius-pill)}.user-menu{border-radius:16px;box-shadow:var(--shadow-card-hover)}.btn,.bus-select-btn,.landing-button,.cf-btn,.route-edit-icon,.nav-toggle,.lookup-tab,.route-tab{transition:transform var(--transition),box-shadow var(--transition),background var(--transition),border-color var(--transition),color var(--transition),opacity var(--transition)}.btn,.bus-select-btn,.landing-button{min-height:48px;border-radius:12px;font-weight:800;letter-spacing:-.01em}.btn-primary,.booking-submit{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--primary-mid),var(--primary-dark));color:var(--text-on-primary);box-shadow:0 8px 22px rgba(15,118,110,.2)}.booking-submit{min-height:56px;width:100%;font-size:1.05rem}.booking-submit::after{content:"";position:absolute;inset:-60% auto -60% -40%;width:34%;transform:skewX(-22deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);animation:cta-shine 1.1s ease .25s 1 forwards}.btn-secondary,.btn-outline{background:var(--surface);border:1px solid var(--border);color:var(--primary-dark)}.btn-danger,.danger{background:var(--danger);color:var(--text-on-primary);border-color:var(--danger)}.btn-x{background:var(--text-main);color:var(--text-on-primary)}.btn-whatsapp{background:var(--success);color:var(--text-on-primary)}.btn:disabled,.bus-select-btn:disabled{transform:none;box-shadow:none;cursor:not-allowed;opacity:.58}input[type="text"],input[type="tel"],input[type="number"],input[type="password"],input[type="email"],input[type="time"],select,textarea{min-height:48px;border-radius:12px;border:1px solid var(--border);background:var(--surface);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:var(--focus-ring)}label{font-weight:700;color:var(--text-main)}.booking-live-hero{position:relative;overflow:hidden;padding:44px 16px 48px;background:linear-gradient(135deg,var(--primary-dark),var(--primary))}.booking-live-hero::before,.booking-live-hero::after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:rgba(255,255,255,.07);filter:blur(2px)}.booking-live-hero::before{top:-160px;right:-70px}.booking-live-hero::after{bottom:-210px;left:-100px}.booking-live-hero-inner{position:relative;z-index:1}.booking-live-kicker{color:rgba(255,255,255,.72)}.booking-live-hero h2{font-size:clamp(2rem,8vw,3.1rem);max-width:560px}.next-bus-card{margin-top:22px;color:var(--text-on-primary);background:var(--surface-glass);border:1px solid var(--border-glass);border-radius:20px;box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 18px 48px rgba(15,23,42,.2);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.next-bus-route,.next-bus-card strong,.next-bus-card>div:first-child>span:last-child,.next-bus-details{color:var(--text-on-primary)}.next-bus-card strong{font-size:clamp(2rem,10vw,3rem);letter-spacing:-.05em}.next-bus-route{opacity:.76}.next-bus-details{opacity:.92}.next-bus-action{min-height:50px;border:1px solid var(--border-glass);background:var(--surface);color:var(--primary-dark);border-radius:12px}.booking-live-empty{color:rgba(255,255,255,.84)}.bus-list{display:grid;gap:18px}.bus-item{--status-color:var(--success);position:relative;display:block;padding:0;overflow:hidden;border:1px solid var(--border-light);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-card);cursor:pointer}.bus-item::before{content:"";position:absolute;z-index:3;left:0;top:18px;bottom:18px;width:4px;border-radius:0 4px 4px 0;background:var(--status-color);transform:translateX(-5px);transition:transform var(--transition)}.bus-item.status-filling-up{--status-color:var(--warning)}.bus-item.status-almost-full{--status-color:var(--danger)}.bus-item.status-sold-out{--status-color:var(--text-light)}.bus-item.selected{border-color:transparent;background:var(--surface);box-shadow:var(--shadow-selected)}.bus-item.selected::before{transform:translateX(0)}.bus-item.sold-out{filter:grayscale(.4);opacity:.7}.bus-card-top{position:relative;min-height:144px;padding:20px;color:var(--text-on-primary);background:linear-gradient(135deg,var(--primary-mid),var(--primary-dark))}.bus-card-topline{display:flex;justify-content:space-between;align-items:center;gap:12px}.bus-date-label{font-size:.74rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;opacity:.78}.bus-label{background:var(--surface-glass-strong);border:1px solid var(--border-glass);color:var(--text-on-primary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bus-time{display:block;margin-top:15px;color:var(--text-on-primary);font-size:clamp(2rem,10vw,3rem);line-height:1;letter-spacing:-.055em}.bus-route-name{display:block;margin-top:7px;font-size:.92rem;font-weight:700;opacity:.84}.bus-card-status{position:absolute;top:68px;right:18px}.bus-card-body{padding:19px 20px 20px}.bus-journey-fare{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center}.bus-journey{display:grid;grid-template-columns:auto minmax(30px,1fr) auto;gap:8px;align-items:center;min-width:0}.bus-stop{min-width:0;font-size:.86rem;font-weight:800;color:var(--text-main);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bus-route-dots{height:1px;border-top:2px dotted var(--border);position:relative}.bus-route-dots::before,.bus-route-dots::after{content:"";position:absolute;top:50%;width:7px;height:7px;border-radius:50%;background:var(--primary);transform:translateY(-50%)}.bus-route-dots::before{left:-1px}.bus-route-dots::after{right:-1px}.bus-fare{text-align:right}.bus-fare small{display:block;color:var(--text-muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.price-tag{display:block;font-size:1.45rem;line-height:1;font-weight:900;color:var(--text-main);letter-spacing:-.04em}.cap-bar-wrap{margin:18px 0 15px}.cap-bar{height:8px;background:var(--primary-xlight)}.cap-bar-fill{width:var(--capacity-pct,0%);background:var(--status-color);animation:capacity-fill var(--transition-slow) both;transition:width var(--transition-slow)}.cap-bar-info{align-items:center}.seats-remaining{font-weight:800;color:var(--status-color)}.availability-badge,.status-pill,.status,.tag,.badge,.paid-badge{border-radius:var(--radius-pill);border:1px solid transparent;font-weight:850;letter-spacing:.035em}.availability-badge.available{border-color:rgba(22,163,74,.18)}.availability-badge.filling-up{border-color:rgba(217,119,6,.2)}.availability-badge.almost-full{border-color:rgba(220,38,38,.2);animation:pulse-red 1.5s ease infinite}.availability-badge.sold-out{border-color:var(--border-light)}.bus-footer{padding-top:0;margin-top:0;border:0}.bus-select-btn{width:100%;min-height:48px;background:var(--primary-xlight);color:var(--primary-dark);border:1px solid var(--border)}.bus-select-btn::after{content:" →"}.bus-select-btn:disabled::after{content:""}.schedule-radio{position:absolute;opacity:0;pointer-events:none}.passenger-details{display:none;margin-top:20px;scroll-margin-top:90px}.passenger-details.is-visible{display:block}.payment-methods{display:grid;grid-template-columns:1fr 1fr;gap:10px}.payment-option{display:flex;align-items:center;gap:9px;min-height:52px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer}.payment-option:has(input:checked){border-color:var(--primary);background:var(--primary-xlight);box-shadow:var(--focus-ring)}.payment-option input{accent-color:var(--primary)}.selected-bus-banner{border:1px solid var(--border);box-shadow:inset 0 1px 0 var(--surface)}.bottom-nav{height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding:8px 0 max(8px,env(safe-area-inset-bottom));background:rgba(255,255,255,.9);border-top:1px solid var(--border-light);box-shadow:0 -8px 28px rgba(15,23,42,.06);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.nav-item{position:relative;min-height:50px;justify-content:center}.nav-item::before{content:"";position:absolute;top:-8px;width:24px;height:2px;border-radius:var(--radius-pill);background:var(--primary);transform:scaleX(0);transition:transform var(--transition)}.nav-item.active::before{transform:scaleX(1)}.nav-icon-wrap{background:transparent}.nav-item.active .nav-icon-wrap{background:var(--primary-light)}.bottom-nav-spacer{height:110px}.auth-bg{position:relative;min-height:100svh;padding:32px 16px;background:radial-gradient(ellipse at top right,rgba(20,184,166,.4) 0%,transparent 60%),var(--primary-dark)}.auth-bg::before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.02),transparent 40%)}.auth-card{position:relative;width:calc(100% - 0px);max-width:420px;padding:40px;border:0;border-radius:24px;box-shadow:var(--shadow-auth)}.auth-logo{background:linear-gradient(135deg,var(--primary-mid),var(--primary-dark));box-shadow:0 12px 28px rgba(15,118,110,.22)}.auth-brand h1{font-size:1.55rem}.auth-brand p{line-height:1.55}.honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.ticket-page{padding-bottom:calc(var(--nav-height) + 40px)}.ticket-shell{width:min(100% - 32px,520px);margin:28px auto 20px}.ticket-card{position:relative;overflow:hidden;border-radius:24px;background:var(--surface);box-shadow:0 20px 60px rgba(15,23,42,.16)}.ticket-top{padding:24px;color:var(--text-on-primary);background:linear-gradient(135deg,var(--primary-mid),var(--primary-dark))}.ticket-topline{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.ticket-eyebrow{font-size:.72rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase;opacity:.72}.ticket-route{margin-top:8px;font-size:1.2rem;font-weight:850;letter-spacing:-.03em}.ticket-time{display:block;margin-top:20px;font-size:2.6rem;line-height:1;font-weight:950;letter-spacing:-.055em}.ticket-bus-pill{padding:6px 11px;border-radius:var(--radius-pill);background:var(--surface-glass-strong);border:1px solid var(--border-glass);font-weight:800}.ticket-divider{position:relative;height:42px;background:var(--surface);display:flex;align-items:center;justify-content:center}.ticket-divider::before{content:"";position:absolute;left:24px;right:24px;border-top:2px dashed var(--border)}.ticket-notch{position:absolute;top:50%;width:34px;height:34px;border-radius:50%;background:var(--bg-body);transform:translateY(-50%)}.ticket-notch-left{left:-17px}.ticket-notch-right{right:-17px}.ticket-divider-icon{position:relative;z-index:1;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--surface);color:var(--primary);border:1px solid var(--border-light)}.ticket-bottom{padding:4px 24px 26px;text-align:center}.ticket-person{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;text-align:left}.ticket-person-item{min-width:0}.ticket-person-item span{display:block;color:var(--text-muted);font-size:.7rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.ticket-person-item strong{display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booking-code-label{color:var(--text-muted);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.booking-code-boxes{display:flex;justify-content:center;flex-wrap:wrap;gap:4px;margin:10px 0 16px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.booking-code-boxes>span{min-width:25px;height:32px;display:inline-grid;place-items:center;border:1px solid var(--border);border-radius:7px;background:var(--bg-subtle);font-weight:900;color:var(--primary-dark)}.ticket-qr{display:block;width:min(230px,72vw);margin:2px auto 10px;color:var(--text-main)}.ticket-qr-bg{fill:var(--surface)}.ticket-qr-modules{fill:currentColor}.ticket-hint{color:var(--text-muted);font-size:.82rem}.ticket-status-row{display:flex;justify-content:center;margin-top:12px}.ticket-actions{width:min(100% - 32px,520px);margin:0 auto;display:grid;gap:10px}.ticket-warning{width:min(100% - 32px,520px);margin:14px auto 0}.ticket-mini{border-left:4px solid var(--primary)}.ticket-mini-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.ticket-mini-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:900;color:var(--primary)}.ticket-detail-list{margin-top:16px}.ticket-detail-row{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--border-light)}.ticket-detail-row:last-child{border-bottom:0}.ticket-detail-label{color:var(--text-muted)}.ticket-detail-value{font-weight:800;text-align:right}.agreement-card{border-radius:24px}.agreement-icon{box-shadow:inset 0 0 0 1px var(--border)}.booking-summary{background:var(--primary-xlight);border:1px solid var(--border-light)}.pay-card{border-radius:24px}.amount-display{background:linear-gradient(135deg,var(--primary-mid),var(--primary-dark));box-shadow:0 18px 36px rgba(15,118,110,.18)}.amount-display .amount{font-size:clamp(2.4rem,12vw,3.4rem);letter-spacing:-.055em}.pay-steps li::before{background:linear-gradient(135deg,var(--primary-mid),var(--primary-dark))}.status-pulse{border:1px solid var(--border-light)}.agreement-card{padding:32px 24px;text-align:center;border:1px solid var(--border-light)}.agreement-icon{width:64px;height:64px;display:grid;place-items:center;margin:0 auto 20px;border-radius:50%;background:var(--primary-light);font-size:1.8rem}.agreement-text{margin:20px 0;padding:16px 20px;border-left:4px solid var(--primary);border-radius:10px;background:var(--primary-xlight);color:var(--text-main);font-size:1rem;line-height:1.7;text-align:left}.booking-summary{margin-bottom:24px;padding:16px;border-radius:14px;text-align:left}.summary-row{display:flex;justify-content:space-between;gap:18px;padding:8px 0;border-bottom:1px solid var(--border-light);font-size:.9rem}.summary-row:last-child{border-bottom:0}.summary-row span:first-child{color:var(--text-muted)}.summary-row span:last-child{font-weight:800;text-align:right}.agreement-privacy{margin:-8px 0 20px;color:var(--text-muted);font-size:.84rem;line-height:1.55}.agreement-privacy a{font-weight:800}.timer-ring{display:block;width:56px;height:56px;margin:0 auto 8px}.timer-ring circle{fill:none;stroke-width:4;stroke-linecap:round;transform:rotate(-90deg);transform-origin:center}.timer-ring .bg{stroke:var(--border-light)}.timer-ring .fill{stroke:var(--primary);transition:stroke-dashoffset .9s linear}#timerNum{display:block;margin-top:-4px;color:var(--primary);font-size:1.2rem;font-weight:900}.pay-card{padding:28px 20px;border:1px solid var(--border-light);background:var(--surface)}.amount-display{margin-bottom:24px;padding:20px;border-radius:var(--radius);color:var(--text-on-primary);text-align:center}.amount-display .label{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;opacity:.82}.amount-display .ref{display:inline-block;margin-top:5px;padding:4px 10px;border-radius:7px;background:var(--surface-glass);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;opacity:.82}.pay-steps{counter-reset:step;list-style:none;margin:0 0 24px;padding:0}.pay-steps li{counter-increment:step;display:flex;align-items:flex-start;gap:12px;padding:11px 0;border-bottom:1px solid var(--border-light);font-size:.9rem}.pay-steps li:last-child{border-bottom:0}.pay-steps li::before{content:counter(step);display:grid;place-items:center;flex:0 0 25px;width:25px;height:25px;border-radius:50%;color:var(--text-on-primary);font-size:.75rem;font-weight:850}.countdown-bar{height:7px;margin-top:8px;overflow:hidden;border-radius:var(--radius-pill);background:var(--bg-subtle)}.countdown-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--primary));transition:width 1s linear}.status-pulse{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:16px;padding:14px;border-radius:12px;background:var(--bg-subtle);color:var(--text-muted);font-size:.875rem}.dot-pulse{width:9px;height:9px;flex:0 0 9px;border-radius:50%;background:var(--accent);animation:payment-pulse 1.2s ease-in-out infinite}.paid-banner{display:none;margin-top:16px;padding:24px;border:1px solid var(--success);border-radius:16px;background:var(--success-light);text-align:center}.payment-skeleton{display:grid;gap:9px;margin-top:16px;padding:16px;border:1px solid var(--border-light);border-radius:14px;background:var(--surface)}.payment-skeleton-line{height:11px;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--bg-subtle) 25%,var(--border-light) 50%,var(--bg-subtle) 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}.payment-skeleton-line:nth-child(2){width:76%}.payment-skeleton-line:nth-child(3){width:52%}@keyframes payment-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.78)}}body.landing-page{padding-bottom:0}.landing-wrap{max-width:var(--content-wide)}.site-nav{box-shadow:none}.nav-row{min-height:var(--header-height)}.brand-icon{width:42px;height:42px}.nav-links a{font-weight:750}.nav-cta{background:var(--surface);color:var(--primary-dark) !important;border-radius:var(--radius-pill)}.landing-hero{min-height:calc(100svh - var(--header-height));display:grid;align-items:center;padding:56px 0 72px;background:linear-gradient(135deg,var(--primary-dark),var(--primary))}.hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);align-items:center}.landing-hero h1{max-width:680px;font-size:clamp(2.7rem,6vw,5rem);line-height:.98;letter-spacing:-.055em}.landing-hero p{line-height:1.65}.landing-button{min-height:52px;border-radius:13px}.landing-button-primary{color:var(--primary-dark)}.landing-button-ghost{border-color:var(--border-glass);background:var(--surface-glass)}.hero-art{position:relative;width:min(100%,420px);height:280px;display:grid;place-items:center}#bus-lottie{width:420px;height:280px;max-width:100%}.hero-bus-static{display:none;width:100%;height:auto}.hero-art.is-floating{animation:lottie-float 3s ease-in-out infinite}.hero-art.lottie-fallback #bus-lottie{display:none}.hero-art.lottie-fallback .hero-bus-static{display:block}.hero-bus-shadow{fill:rgba(15,23,42,.18)}.hero-bus-body{fill:var(--surface);stroke:var(--primary-dark)}.hero-bus-stripe,.hero-bus-sign{fill:var(--primary)}.hero-bus-glass{fill:var(--primary-light);stroke:var(--primary-dark)}.hero-bus-door{fill:var(--primary-dark)}.hero-bus-wheel{fill:var(--text-main)}.hero-bus-hub{fill:var(--text-light)}.hero-bus-sign-text{fill:var(--text-on-primary)}.hero-road{fill:rgba(15,23,42,.22)}.hero-road-line{stroke:rgba(255,255,255,.72)}.landing-section{padding:88px 0}.section-title{font-size:clamp(2rem,4vw,3rem);letter-spacing:-.045em}.section-sub{line-height:1.7}.step,.benefit,.live-stat{border-radius:20px}.step{position:relative;text-align:left;padding:28px}.step-num{width:44px;height:44px;font-size:1rem}.step-icon{justify-content:flex-start;font-size:1.8rem}.live-stat strong{font-size:clamp(2.2rem,6vw,3.2rem);letter-spacing:-.05em}.benefit{padding:28px}.contact{padding-top:78px}.admin-shell,.review-wrap,.staff-shell,.stats-shell,.wrap{width:min(100%,var(--content-wide));margin:0 auto;padding:24px 16px 64px}.admin-head,.staff-topbar,.stats-header{margin:-24px -16px 24px;padding:20px max(16px,calc((100vw - var(--content-wide)) / 2));box-shadow:0 12px 34px rgba(15,23,42,.14)}.admin-head h1,.staff-topbar h1,.stats-header h1{color:var(--text-on-primary)}.admin-head .muted,.stats-header .muted,.staff-topbar p{color:rgba(255,255,255,.72)}.admin-links,.review-nav,.staff-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-links .btn,.review-nav .btn,.staff-actions .btn{width:auto;min-height:40px;padding:8px 12px}.panel,.metric-card{border-radius:18px}.grid,.stats-grid,.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.metric{font-size:2rem;font-weight:950;letter-spacing:-.05em}.metric-value{font-size:2rem;font-weight:950;letter-spacing:-.05em}.metric-label{color:var(--text-muted);text-transform:uppercase;font-size:.72rem;font-weight:850;letter-spacing:.07em}.attention{border-left:5px solid var(--danger)}.healthy{border-left:5px solid var(--success)}.muted{color:var(--text-muted)}.small{font-size:.8rem}.good{color:var(--success);font-weight:800}.bad{color:var(--danger);font-weight:800}.table-wrap,.table-scroll{overflow:auto;border:1px solid var(--border-light);border-radius:14px}table{width:100%;border-collapse:separate;border-spacing:0;min-width:760px}th,td{padding:12px 14px;border-bottom:1px solid var(--border-light);text-align:left;vertical-align:middle}th{background:var(--bg-subtle);color:var(--text-muted);font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em;position:sticky;top:0;z-index:1}tbody tr:nth-child(even){background:var(--bg-subtle)}tbody tr:last-child td{border-bottom:0}td.numeric,th.numeric{text-align:right;font-variant-numeric:tabular-nums}.status.open,.status.scheduled{background:var(--success-light);color:var(--success)}.status.boarding{background:var(--warning-light);color:var(--warning)}.status.departed,.status.completed{background:var(--bg-subtle);color:var(--text-muted)}.status.cancelled{background:var(--danger-light);color:var(--danger)}.row-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;align-items:end}.template-edit{display:grid;grid-template-columns:1.2fr .8fr .8fr .7fr 1.5fr auto;gap:8px;align-items:center}.days{display:flex;flex-wrap:wrap;gap:6px}.days label{display:inline-flex;align-items:center;gap:4px;padding:6px 8px;background:var(--bg-subtle);border-radius:8px;font-size:.77rem}.route-name-editor{display:flex;align-items:center;gap:7px;min-width:190px}.route-name-display{font-weight:900}.route-edit-icon{width:34px;height:34px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--primary);cursor:pointer}.route-name-input{min-width:150px}.route-name-input[hidden],.route-name-display[hidden]{display:none}.notice-list{margin:0;padding-left:20px}.notice-list li{margin:7px 0}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.template-list{margin-top:16px}.template-edit{padding:12px 0;border-top:1px solid var(--border-light)}.template-meta{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}.inline-form{display:inline-flex;margin:0}.btn-compact{width:auto;min-height:34px;padding:5px 9px;font-size:.78rem}.wrap{max-width:1050px}.top{display:flex;justify-content:space-between;align-items:center;gap:12px}.tabs{display:flex;gap:8px;overflow:auto;padding:12px 0;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs a{white-space:nowrap;padding:10px 14px;border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border-light);text-decoration:none;font-weight:750}.tabs a.active{background:var(--primary);color:var(--text-on-primary);border-color:var(--primary)}.driver{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}.passenger{display:grid;grid-template-columns:minmax(180px,1.5fr) .8fr .8fr auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--border-light)}.cash-actions{display:flex;gap:6px}.cash-actions button{width:auto;min-height:38px;padding:7px 10px}.review-wrap{max-width:var(--content-wide)}.review-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}.summary{padding:16px;border-radius:14px}.summary strong{display:block;margin-top:4px;font-size:1.9rem;letter-spacing:-.04em}.actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.actions form{display:flex;gap:6px;align-items:center;margin:0}.actions input{min-width:150px}.empty{text-align:center;color:var(--text-muted);padding:30px}.chart-container{height:280px}#cf-install-banner{display:none;position:fixed;z-index:9999;bottom:calc(var(--nav-height) + 16px);left:16px;right:16px;max-width:500px;margin:0 auto;padding:18px 20px;color:var(--text-on-primary);background:linear-gradient(135deg,var(--primary-dark),var(--primary));border:1px solid var(--border-glass);border-radius:18px;box-shadow:0 18px 52px rgba(15,118,110,.38);animation:cf-slide-up .4s ease}#cf-install-banner.cf-show{display:block}.cf-banner-row{display:flex;align-items:center;gap:14px}.cf-banner-icon{font-size:2.2rem;flex-shrink:0}.cf-banner-text h4{margin:0 0 3px;font-size:1rem}.cf-banner-text p{margin:0;font-size:.82rem;opacity:.88}.cf-banner-actions{display:flex;gap:10px;margin-top:14px}.cf-btn{flex:1;min-height:42px;border-radius:10px;border:0;font-weight:800;cursor:pointer}.cf-btn-primary{background:var(--surface);color:var(--primary-dark)}.cf-btn-secondary{background:var(--surface-glass-strong);color:var(--text-on-primary)}.cf-banner-close{position:absolute;top:8px;right:10px;border:0;background:transparent;color:rgba(255,255,255,.68);font-size:1.35rem;cursor:pointer}.cf-ios-hint{margin-top:10px;text-align:center;font-size:.8rem;opacity:.85}.skeleton{overflow:hidden;color:transparent !important;border-color:transparent !important;background:linear-gradient(90deg,var(--skeleton-base) 25%,var(--skeleton-highlight) 50%,var(--skeleton-base) 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}.skeleton-line{height:13px;border-radius:var(--radius-pill)}.skeleton-card{min-height:180px;border-radius:20px}.u-hidden{display:none !important}.u-block{display:block}.u-inline{display:inline}.u-inline-flex{display:inline-flex}.u-flex{display:flex}.u-flex-between{display:flex;justify-content:space-between}.u-flex-center{display:flex;align-items:center;justify-content:center}.u-grow{flex:1}.u-wrap{flex-wrap:wrap}.u-gap-6{gap:6px}.u-gap-8{gap:8px}.u-gap-10{gap:10px}.u-gap-12{gap:12px}.u-items-center{align-items:center}.u-items-start{align-items:flex-start}.u-text-right{text-align:right}.u-text-left{text-align:left}.u-text-muted{color:var(--text-muted)}.u-text-light{color:var(--text-light)}.u-text-primary{color:var(--primary)}.u-text-success{color:var(--success)}.u-text-danger{color:var(--danger)}.u-text-white{color:var(--text-on-primary)}.u-font-600{font-weight:600}.u-font-700{font-weight:700}.u-font-800{font-weight:800}.u-m-0{margin:0}.u-mt-4{margin-top:4px}.u-mt-8{margin-top:8px}.u-mt-10{margin-top:10px}.u-mt-12{margin-top:12px}.u-mt-14{margin-top:14px}.u-mt-16{margin-top:16px}.u-mt-18{margin-top:18px}.u-mt-20{margin-top:20px}.u-mt-24{margin-top:24px}.u-mb-4{margin-bottom:4px}.u-mb-6{margin-bottom:6px}.u-mb-8{margin-bottom:8px}.u-mb-12{margin-bottom:12px}.u-mb-14{margin-bottom:14px}.u-mb-16{margin-bottom:16px}.u-mb-18{margin-bottom:18px}.u-mb-20{margin-bottom:20px}.u-mb-24{margin-bottom:24px}.u-py-10{padding-top:10px;padding-bottom:10px}.u-p-compact{padding:5px 8px}.u-icon-xl{font-size:3rem}.u-icon-empty{font-size:3rem;margin-bottom:12px}.u-content-wide{max-width:var(--content-wide);padding-left:0;padding-right:0}.u-content-narrow{max-width:480px}.u-no-decoration{text-decoration:none;color:inherit}.u-uppercase{text-transform:uppercase}.u-divider{border-top:2px dashed var(--border);margin:20px 0}.u-border-none{border:0 !important}.u-disabled{opacity:.4;cursor:not-allowed}.u-spacer-sm{height:24px}@keyframes capacity-fill{from{width:0}to{width:var(--capacity-pct,0%)}}@keyframes pulse-red{0%,100%{opacity:1}50%{opacity:.6}}@keyframes cta-shine{from{left:-40%}to{left:120%}}@keyframes shimmer{from{background-position:-200% 0}to{background-position:200% 0}}@keyframes lottie-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes cf-slide-up{from{transform:translateY(120px);opacity:0}to{transform:translateY(0);opacity:1}}@media (hover:hover){.btn:hover:not(:disabled),.bus-select-btn:hover:not(:disabled),.landing-button:hover,.cf-btn:hover,.route-edit-icon:hover{transform:translateY(-1px)}.btn-primary:hover,.booking-submit:hover{background:linear-gradient(135deg,var(--primary),var(--primary-dark));box-shadow:0 12px 30px rgba(15,118,110,.3)}.btn-secondary:hover,.btn-outline:hover{border-color:var(--primary);background:var(--primary-xlight)}.bus-item:hover:not(.sold-out){transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.bus-item:hover::before{transform:translateX(0)}.card:hover,.benefit:hover,.live-stat:hover{box-shadow:var(--shadow-card-hover)}}.btn:active:not(:disabled),.bus-select-btn:active:not(:disabled),.landing-button:active,.cf-btn:active{transform:translateY(0) scale(.98)}@media (min-width:760px){.bus-list{grid-template-columns:repeat(2,minmax(0,1fr))}.ticket-actions{grid-template-columns:1fr 1fr}}@media (max-width:820px){.landing-hero{min-height:auto;padding:36px 0 64px}.hero-grid{display:flex;flex-direction:column;gap:30px}.hero-art{order:-1;width:300px;height:200px}#bus-lottie{width:300px;height:200px}.landing-hero h1{font-size:clamp(2.6rem,14vw,4rem)}.nav-links{background:rgba(15,41,66,.97);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.steps,.live-stats,.benefits,.contact-cols{grid-template-columns:1fr}.landing-section{padding:64px 0}.admin-head,.top,.stats-header{align-items:flex-start;flex-direction:column}.template-edit{grid-template-columns:1fr 1fr}.passenger{grid-template-columns:1fr}}@media (max-width:520px){.auth-card{padding:30px 22px}.header{padding-inline:14px}.header h1{font-size:1.08rem}.booking-live-hero{padding-inline:14px}.next-bus-card{grid-template-columns:1fr}.next-bus-details{align-items:flex-start}.payment-methods{grid-template-columns:1fr}.bus-card-top{min-height:136px}.bus-journey-fare{grid-template-columns:1fr auto}.ticket-person{grid-template-columns:1fr}.booking-code-boxes>span{min-width:22px;height:30px}.admin-shell,.review-wrap,.stats-shell,.wrap{padding-inline:12px}.admin-head,.staff-topbar,.stats-header{margin-inline:-12px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}.hero-art{transform:none !important}#bus-lottie{display:none}.hero-bus-static{display:block}}.hero-copy{position:relative;z-index:2}.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;color:rgba(255,255,255,.76);font-size:.75rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.hero-eyebrow::before{content:"";width:28px;height:2px;border-radius:99px;background:var(--accent)}.landing-hero h1 .hero-accent{color:#99f6e4}.hero-live-pill{display:inline-flex;align-items:center;gap:8px;margin-top:28px;padding:8px 12px;border:1px solid var(--border-glass);border-radius:var(--radius-pill);background:var(--surface-glass);color:rgba(255,255,255,.9);font-size:.76rem;font-weight:800;letter-spacing:.03em;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.hero-live-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:#34d399;box-shadow:0 0 0 5px rgba(52,211,153,.14)}.hero-visual{position:relative;min-height:560px;display:flex;align-items:center;justify-content:flex-end;overflow:hidden}.hero-visual::before{content:"";position:absolute;width:520px;height:520px;right:-40px;top:20px;border-radius:50%;background:radial-gradient(circle,rgba(20,184,166,.24),rgba(20,184,166,0) 68%);pointer-events:none}.hero-visual .hero-art{position:absolute;z-index:1;left:-62px;bottom:40px;width:420px;height:280px}.hero-next-card{position:relative;z-index:2;width:min(100%,318px);min-height:500px;padding:26px 22px;border-radius:28px;background:rgba(255,255,255,.97);color:var(--text-main);border:1px solid rgba(255,255,255,.6);box-shadow:0 28px 70px rgba(3,19,31,.28)}.hero-next-label{color:var(--text-muted);font-size:.68rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}.hero-next-time{display:block;margin-top:10px;font-size:2.35rem;line-height:1;font-weight:950;letter-spacing:-.055em}.hero-next-route{display:block;margin-top:9px;color:var(--text-muted);font-size:.92rem;font-weight:700}.hero-next-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:22px}.hero-seat-pill{display:inline-flex;align-items:center;padding:6px 10px;border-radius:var(--radius-pill);background:var(--success-light);color:var(--success);font-size:.72rem;font-weight:850}.hero-next-fare{font-size:1.45rem;font-weight:950;letter-spacing:-.04em}.hero-next-cta{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;margin-top:24px;border-radius:12px;background:var(--primary);color:var(--text-on-primary);font-size:.88rem;font-weight:850;text-decoration:none;box-shadow:0 10px 24px rgba(15,118,110,.2)}.hero-next-cta:hover{background:var(--primary-dark)}.hero-after{margin-top:32px;padding-top:24px;border-top:1px solid var(--border-light)}.hero-after .hero-next-time{margin-top:8px;font-size:1.55rem}.hero-after .hero-next-route{font-size:.84rem}.hero-empty-copy{margin-top:12px;color:var(--text-muted);font-size:.9rem;line-height:1.55}.bus-route-name{max-width:calc(100% - 118px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bus-journey-fare{grid-template-columns:minmax(0,1fr) 82px}.bus-fare{min-width:82px}.bus-item.selected{box-shadow:0 0 0 2px var(--primary),0 12px 34px rgba(15,118,110,.18)}@media (max-width:820px){.hero-grid{gap:12px}.hero-copy{text-align:left}.hero-visual{min-height:470px;width:100%;justify-content:center}.hero-visual::before{width:430px;height:430px;right:50%;transform:translateX(50%)}.hero-next-card{width:min(100%,342px);min-height:390px;margin-top:74px}.hero-visual .hero-art{left:50%;bottom:300px;transform:translateX(-50%);width:300px;height:200px}.hero-visual .hero-art.is-floating{animation:lottie-float-mobile 3s ease-in-out infinite}.hero-after{margin-top:22px;padding-top:18px}}@media (max-width:520px){.landing-hero h1{font-size:clamp(2.45rem,13vw,3.6rem)}.hero-buttons{display:grid;grid-template-columns:1fr}.landing-button{justify-content:center;width:100%}.hero-visual{min-height:455px}.hero-next-card{margin-top:68px;min-height:380px;padding:22px 20px}.bus-card-status{top:70px}.bus-route-name{max-width:calc(100% - 112px)}.bus-journey-fare{grid-template-columns:minmax(0,1fr) 78px;gap:14px}.bus-fare{min-width:78px}}@keyframes lottie-float-mobile{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,-8px)}}.cap-pct-0{--capacity-pct:0%}.cap-pct-1{--capacity-pct:1%}.cap-pct-2{--capacity-pct:2%}.cap-pct-3{--capacity-pct:3%}.cap-pct-4{--capacity-pct:4%}.cap-pct-5{--capacity-pct:5%}.cap-pct-6{--capacity-pct:6%}.cap-pct-7{--capacity-pct:7%}.cap-pct-8{--capacity-pct:8%}.cap-pct-9{--capacity-pct:9%}.cap-pct-10{--capacity-pct:10%}.cap-pct-11{--capacity-pct:11%}.cap-pct-12{--capacity-pct:12%}.cap-pct-13{--capacity-pct:13%}.cap-pct-14{--capacity-pct:14%}.cap-pct-15{--capacity-pct:15%}.cap-pct-16{--capacity-pct:16%}.cap-pct-17{--capacity-pct:17%}.cap-pct-18{--capacity-pct:18%}.cap-pct-19{--capacity-pct:19%}.cap-pct-20{--capacity-pct:20%}.cap-pct-21{--capacity-pct:21%}.cap-pct-22{--capacity-pct:22%}.cap-pct-23{--capacity-pct:23%}.cap-pct-24{--capacity-pct:24%}.cap-pct-25{--capacity-pct:25%}.cap-pct-26{--capacity-pct:26%}.cap-pct-27{--capacity-pct:27%}.cap-pct-28{--capacity-pct:28%}.cap-pct-29{--capacity-pct:29%}.cap-pct-30{--capacity-pct:30%}.cap-pct-31{--capacity-pct:31%}.cap-pct-32{--capacity-pct:32%}.cap-pct-33{--capacity-pct:33%}.cap-pct-34{--capacity-pct:34%}.cap-pct-35{--capacity-pct:35%}.cap-pct-36{--capacity-pct:36%}.cap-pct-37{--capacity-pct:37%}.cap-pct-38{--capacity-pct:38%}.cap-pct-39{--capacity-pct:39%}.cap-pct-40{--capacity-pct:40%}.cap-pct-41{--capacity-pct:41%}.cap-pct-42{--capacity-pct:42%}.cap-pct-43{--capacity-pct:43%}.cap-pct-44{--capacity-pct:44%}.cap-pct-45{--capacity-pct:45%}.cap-pct-46{--capacity-pct:46%}.cap-pct-47{--capacity-pct:47%}.cap-pct-48{--capacity-pct:48%}.cap-pct-49{--capacity-pct:49%}.cap-pct-50{--capacity-pct:50%}.cap-pct-51{--capacity-pct:51%}.cap-pct-52{--capacity-pct:52%}.cap-pct-53{--capacity-pct:53%}.cap-pct-54{--capacity-pct:54%}.cap-pct-55{--capacity-pct:55%}.cap-pct-56{--capacity-pct:56%}.cap-pct-57{--capacity-pct:57%}.cap-pct-58{--capacity-pct:58%}.cap-pct-59{--capacity-pct:59%}.cap-pct-60{--capacity-pct:60%}.cap-pct-61{--capacity-pct:61%}.cap-pct-62{--capacity-pct:62%}.cap-pct-63{--capacity-pct:63%}.cap-pct-64{--capacity-pct:64%}.cap-pct-65{--capacity-pct:65%}.cap-pct-66{--capacity-pct:66%}.cap-pct-67{--capacity-pct:67%}.cap-pct-68{--capacity-pct:68%}.cap-pct-69{--capacity-pct:69%}.cap-pct-70{--capacity-pct:70%}.cap-pct-71{--capacity-pct:71%}.cap-pct-72{--capacity-pct:72%}.cap-pct-73{--capacity-pct:73%}.cap-pct-74{--capacity-pct:74%}.cap-pct-75{--capacity-pct:75%}.cap-pct-76{--capacity-pct:76%}.cap-pct-77{--capacity-pct:77%}.cap-pct-78{--capacity-pct:78%}.cap-pct-79{--capacity-pct:79%}.cap-pct-80{--capacity-pct:80%}.cap-pct-81{--capacity-pct:81%}.cap-pct-82{--capacity-pct:82%}.cap-pct-83{--capacity-pct:83%}.cap-pct-84{--capacity-pct:84%}.cap-pct-85{--capacity-pct:85%}.cap-pct-86{--capacity-pct:86%}.cap-pct-87{--capacity-pct:87%}.cap-pct-88{--capacity-pct:88%}.cap-pct-89{--capacity-pct:89%}.cap-pct-90{--capacity-pct:90%}.cap-pct-91{--capacity-pct:91%}.cap-pct-92{--capacity-pct:92%}.cap-pct-93{--capacity-pct:93%}.cap-pct-94{--capacity-pct:94%}.cap-pct-95{--capacity-pct:95%}.cap-pct-96{--capacity-pct:96%}.cap-pct-97{--capacity-pct:97%}.cap-pct-98{--capacity-pct:98%}.cap-pct-99{--capacity-pct:99%}.cap-pct-100{--capacity-pct:100%}.auth-logo{color:var(--text-on-primary)}.empty-state{padding:46px 24px}.empty-state h3{color:var(--text-main);font-weight:850}.summary-fare{color:var(--primary);font-size:1.08rem;font-weight:900}.timer-caption{margin-top:2px;color:var(--text-light);font-size:.78rem}.btn-danger-outline{background:transparent;border:1px solid var(--danger);color:var(--danger)}.btn-danger-outline:hover{background:var(--danger-light)}.button-icon{flex:0 0 auto;margin-right:6px}.status-link{color:var(--primary);font-weight:800}.payment-success-icon{margin-bottom:8px;font-size:2.5rem}.payment-success-title{color:var(--success);font-size:1.1rem}.countdown-fill{width:100%}.paid-banner.is-visible{display:block}body.staff-page{padding-bottom:0;background:var(--bg-body)}.review-head.staff-topbar{margin-bottom:22px}.review-head.staff-topbar .small{color:rgba(255,255,255,.72)}.u-mt-0{margin-top:0}.traffic-chart{height:280px;display:grid;grid-template-columns:repeat(24,minmax(12px,1fr));gap:4px;align-items:end;margin-top:24px;padding:18px 10px 4px;border-left:1px solid var(--border-light);border-bottom:1px solid var(--border-light);overflow-x:auto}.traffic-column{height:238px;min-width:18px;display:grid;grid-template-rows:18px 1fr 20px;align-items:end;text-align:center}.traffic-value{align-self:start;color:var(--text-muted);font-size:.64rem;font-weight:800}.traffic-bar{width:min(18px,80%);height:max(4px,var(--chart-pct,0%));justify-self:center;align-self:end;border-radius:7px 7px 2px 2px;background:linear-gradient(180deg,var(--primary-mid),var(--primary-dark));transform-origin:bottom;animation:chart-rise var(--transition-slow) both}.traffic-label{color:var(--text-light);font-size:.61rem}@keyframes chart-rise{from{transform:scaleY(0)}to{transform:scaleY(1)}}@media (max-width:640px){.traffic-chart{grid-template-columns:repeat(24,20px)}.traffic-column{min-width:20px}}.chart-pct-0{--chart-pct:0%}.chart-pct-1{--chart-pct:1%}.chart-pct-2{--chart-pct:2%}.chart-pct-3{--chart-pct:3%}.chart-pct-4{--chart-pct:4%}.chart-pct-5{--chart-pct:5%}.chart-pct-6{--chart-pct:6%}.chart-pct-7{--chart-pct:7%}.chart-pct-8{--chart-pct:8%}.chart-pct-9{--chart-pct:9%}.chart-pct-10{--chart-pct:10%}.chart-pct-11{--chart-pct:11%}.chart-pct-12{--chart-pct:12%}.chart-pct-13{--chart-pct:13%}.chart-pct-14{--chart-pct:14%}.chart-pct-15{--chart-pct:15%}.chart-pct-16{--chart-pct:16%}.chart-pct-17{--chart-pct:17%}.chart-pct-18{--chart-pct:18%}.chart-pct-19{--chart-pct:19%}.chart-pct-20{--chart-pct:20%}.chart-pct-21{--chart-pct:21%}.chart-pct-22{--chart-pct:22%}.chart-pct-23{--chart-pct:23%}.chart-pct-24{--chart-pct:24%}.chart-pct-25{--chart-pct:25%}.chart-pct-26{--chart-pct:26%}.chart-pct-27{--chart-pct:27%}.chart-pct-28{--chart-pct:28%}.chart-pct-29{--chart-pct:29%}.chart-pct-30{--chart-pct:30%}.chart-pct-31{--chart-pct:31%}.chart-pct-32{--chart-pct:32%}.chart-pct-33{--chart-pct:33%}.chart-pct-34{--chart-pct:34%}.chart-pct-35{--chart-pct:35%}.chart-pct-36{--chart-pct:36%}.chart-pct-37{--chart-pct:37%}.chart-pct-38{--chart-pct:38%}.chart-pct-39{--chart-pct:39%}.chart-pct-40{--chart-pct:40%}.chart-pct-41{--chart-pct:41%}.chart-pct-42{--chart-pct:42%}.chart-pct-43{--chart-pct:43%}.chart-pct-44{--chart-pct:44%}.chart-pct-45{--chart-pct:45%}.chart-pct-46{--chart-pct:46%}.chart-pct-47{--chart-pct:47%}.chart-pct-48{--chart-pct:48%}.chart-pct-49{--chart-pct:49%}.chart-pct-50{--chart-pct:50%}.chart-pct-51{--chart-pct:51%}.chart-pct-52{--chart-pct:52%}.chart-pct-53{--chart-pct:53%}.chart-pct-54{--chart-pct:54%}.chart-pct-55{--chart-pct:55%}.chart-pct-56{--chart-pct:56%}.chart-pct-57{--chart-pct:57%}.chart-pct-58{--chart-pct:58%}.chart-pct-59{--chart-pct:59%}.chart-pct-60{--chart-pct:60%}.chart-pct-61{--chart-pct:61%}.chart-pct-62{--chart-pct:62%}.chart-pct-63{--chart-pct:63%}.chart-pct-64{--chart-pct:64%}.chart-pct-65{--chart-pct:65%}.chart-pct-66{--chart-pct:66%}.chart-pct-67{--chart-pct:67%}.chart-pct-68{--chart-pct:68%}.chart-pct-69{--chart-pct:69%}.chart-pct-70{--chart-pct:70%}.chart-pct-71{--chart-pct:71%}.chart-pct-72{--chart-pct:72%}.chart-pct-73{--chart-pct:73%}.chart-pct-74{--chart-pct:74%}.chart-pct-75{--chart-pct:75%}.chart-pct-76{--chart-pct:76%}.chart-pct-77{--chart-pct:77%}.chart-pct-78{--chart-pct:78%}.chart-pct-79{--chart-pct:79%}.chart-pct-80{--chart-pct:80%}.chart-pct-81{--chart-pct:81%}.chart-pct-82{--chart-pct:82%}.chart-pct-83{--chart-pct:83%}.chart-pct-84{--chart-pct:84%}.chart-pct-85{--chart-pct:85%}.chart-pct-86{--chart-pct:86%}.chart-pct-87{--chart-pct:87%}.chart-pct-88{--chart-pct:88%}.chart-pct-89{--chart-pct:89%}.chart-pct-90{--chart-pct:90%}.chart-pct-91{--chart-pct:91%}.chart-pct-92{--chart-pct:92%}.chart-pct-93{--chart-pct:93%}.chart-pct-94{--chart-pct:94%}.chart-pct-95{--chart-pct:95%}.chart-pct-96{--chart-pct:96%}.chart-pct-97{--chart-pct:97%}.chart-pct-98{--chart-pct:98%}.chart-pct-99{--chart-pct:99%}.chart-pct-100{--chart-pct:100%}

/* Admin Control Room v2 — layout/responsiveness only */
body.admin-page{padding-bottom:0;background:#f4f8f8}.admin-dashboard{--admin-line:#dceceb;--admin-soft:#f5fbfa;--admin-ink:#0f172a;max-width:1280px;padding:0 22px 72px}.admin-dashboard-head{display:flex;align-items:center;justify-content:space-between;gap:28px;margin:0 -22px 0;padding:24px max(22px,calc((100vw - 1280px)/2 + 22px));background:linear-gradient(135deg,#0f2942 0%,#123a4a 100%);box-shadow:0 12px 30px rgba(15,41,66,.16)}.admin-title-block{min-width:0}.admin-eyebrow,.admin-kicker{display:inline-block;color:#0d9488;font-size:.7rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.admin-title-block .admin-eyebrow{color:#8de3da}.admin-dashboard-head h1{margin:3px 0 2px;font-size:clamp(1.45rem,3vw,2rem);letter-spacing:-.045em}.admin-dashboard-head p{margin:0;color:rgba(255,255,255,.72);font-size:.86rem}.admin-quick-actions{justify-content:flex-end}.admin-quick-actions .btn{gap:7px;background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.16);color:#fff;box-shadow:none}.admin-quick-actions .btn:hover{background:rgba(255,255,255,.17)}.admin-section-nav{position:sticky;top:0;z-index:40;display:flex;gap:8px;overflow-x:auto;margin:0 -22px 24px;padding:12px max(22px,calc((100vw - 1280px)/2 + 22px));background:rgba(244,248,248,.94);border-bottom:1px solid var(--admin-line);backdrop-filter:blur(14px);scrollbar-width:none}.admin-section-nav::-webkit-scrollbar{display:none}.admin-section-nav a{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;padding:9px 13px;border:1px solid transparent;border-radius:999px;color:#475569;font-size:.82rem;font-weight:850;text-decoration:none;white-space:nowrap}.admin-section-nav a span{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#e9f4f2;color:#0f766e;font-size:.68rem}.admin-section-nav a.active{background:#0f2942;color:#fff}.admin-section-nav a.active span{background:rgba(255,255,255,.15);color:#fff}.admin-flash{margin:0 0 18px}.admin-overview{scroll-margin-top:74px}.admin-overview-heading,.workspace-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 14px}.admin-overview-heading h2,.workspace-head h2{margin:3px 0 0;font-size:1.45rem;letter-spacing:-.035em}.admin-date{color:#64748b;font-size:.82rem;font-weight:800}.admin-health-card{display:flex;align-items:flex-start;gap:14px;margin-bottom:14px;padding:18px 20px;border:1px solid var(--admin-line);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(15,41,66,.05)}.admin-health-card.healthy{border-left:4px solid #16a34a}.admin-health-card.attention{border-left:4px solid #dc2626}.admin-health-icon{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:11px;background:#dcfce7;color:#15803d;font-weight:950}.admin-health-card.attention .admin-health-icon{background:#fee2e2;color:#dc2626}.admin-health-copy h3{margin:0 0 2px;font-size:1rem}.admin-health-copy p{margin:0;color:#64748b;font-size:.84rem}.admin-health-copy .notice-list{margin-top:8px}.admin-metrics{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-bottom:22px}.admin-metric-card{min-width:0;padding:15px 16px;border:1px solid var(--admin-line);border-radius:16px;background:#fff;box-shadow:0 7px 20px rgba(15,41,66,.04)}.admin-metric-top{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#64748b;font-size:.7rem;font-weight:800}.admin-metric-top span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-metric-top b{display:grid;place-items:center;flex:0 0 27px;width:27px;height:27px;border-radius:9px;background:#e8f7f5;color:#0f766e;font-size:.62rem;letter-spacing:.02em}.admin-metric-card>strong{display:block;margin-top:11px;color:#0f172a;font-size:1.65rem;line-height:1;font-weight:950;letter-spacing:-.05em}.admin-workspace{scroll-margin-top:74px;margin:12px 0;border:1px solid var(--admin-line);border-radius:19px;background:#fff;box-shadow:0 8px 24px rgba(15,41,66,.045);overflow:hidden}.admin-workspace>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:80px;padding:16px 20px;cursor:pointer;list-style:none;user-select:none}.admin-workspace>summary::-webkit-details-marker{display:none}.admin-workspace>summary::after{content:"+";display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:10px;background:#f0f7f6;color:#0f766e;font-size:1.2rem;font-weight:700}.admin-workspace[open]>summary::after{content:"−"}.admin-workspace[open]>summary{border-bottom:1px solid var(--admin-line);background:#fbfdfd}.workspace-summary-main{display:flex;align-items:center;gap:12px;min-width:0;margin-right:auto}.workspace-summary-main strong{display:block;color:#0f172a;font-size:.98rem}.workspace-summary-main small{display:block;margin-top:2px;color:#64748b;font-size:.76rem;font-weight:600}.workspace-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:#e8f7f5;color:#0f766e;font-size:1rem;font-weight:900}.workspace-count{padding:6px 9px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:.7rem;font-weight:850;white-space:nowrap}.workspace-body{padding:22px}.workspace-head{align-items:center;margin-bottom:18px}.workspace-head p{max-width:640px;margin:3px 0 0;color:#64748b;font-size:.83rem}.workspace-head-actions>form{flex:0 0 auto}.admin-create-form{display:grid;gap:12px;margin-bottom:20px;padding:16px;border:1px solid #dceceb;border-radius:16px;background:#f8fcfb}.route-add-form{grid-template-columns:1.3fr 1fr 1fr .7fr auto}.timetable-add-form{grid-template-columns:1.2fr .75fr .75fr .65fr 1.55fr auto}.admin-field{min-width:0}.admin-field>label{display:block;margin:0 0 6px;color:#475569;font-size:.7rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.admin-field input,.admin-field select{width:100%;min-width:0;background:#fff}.admin-days{gap:5px}.admin-days label{position:relative;padding:0;background:transparent}.admin-days label input{position:absolute;opacity:0;pointer-events:none}.admin-days label span{display:grid;place-items:center;min-width:38px;height:40px;padding:0 9px;border:1px solid #dceceb;border-radius:10px;background:#fff;color:#64748b;font-size:.72rem;font-weight:850;cursor:pointer}.admin-days label input:checked+span{border-color:#0d9488;background:#e6f7f5;color:#0f766e;box-shadow:inset 0 0 0 1px rgba(13,148,136,.08)}.admin-days.compact label span{min-width:32px;height:38px;padding:0 7px}.admin-table-card{border:1px solid var(--admin-line);border-radius:16px;overflow:hidden}.admin-responsive-table{border:0;border-radius:0}.admin-responsive-table table{min-width:820px}.admin-responsive-table th{background:#f4f9f8;color:#64748b}.admin-responsive-table tbody tr:nth-child(even){background:#fbfdfd}.admin-responsive-table td{padding-top:13px;padding-bottom:13px}.admin-journey{display:inline-flex;align-items:center;gap:8px;color:#475569;white-space:nowrap}.route-name-editor{min-width:0}.route-name-input{min-width:0;width:100%;max-width:240px}.admin-switch{display:inline-flex;align-items:center;gap:7px;cursor:pointer}.admin-switch input{position:absolute;opacity:0;pointer-events:none}.admin-switch span{position:relative;width:38px;height:22px;border-radius:999px;background:#cbd5e1;transition:.18s}.admin-switch span::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.2);transition:.18s}.admin-switch input:checked+span{background:#0d9488}.admin-switch input:checked+span::after{transform:translateX(16px)}.admin-switch em{color:#64748b;font-size:.72rem;font-style:normal;font-weight:800}.admin-save-btn{width:auto;min-height:40px;padding:8px 13px;white-space:nowrap}.admin-template-list{display:grid;gap:12px;margin-top:0}.template-card{border:1px solid var(--admin-line);border-radius:16px;background:#fff;overflow:hidden}.admin-template-edit{grid-template-columns:1.25fr .75fr .75fr .62fr 1.55fr auto;gap:10px;padding:15px;border:0}.admin-template-meta{margin:0;padding:10px 15px;border-top:1px solid var(--admin-line);background:#fafdfc}.admin-template-meta>span:first-child{color:#64748b;font-size:.76rem}.admin-row-actions{display:flex;align-items:center;gap:6px}.admin-empty-state{display:flex;flex-direction:column;align-items:center;gap:4px;padding:34px 18px;border:1px dashed #cbd5e1;border-radius:14px;color:#64748b;text-align:center}.admin-empty-state strong{color:#334155}.admin-driver-state{display:inline-grid;place-items:center;width:23px;height:23px;margin-right:6px;border-radius:8px;font-size:.7rem;font-weight:900}.admin-driver-state.confirmed{background:#dcfce7;color:#15803d}.admin-driver-state.unconfirmed{background:#fef3c7;color:#b45309}.admin-money-line{display:block;white-space:nowrap}.admin-money-line+ .admin-money-line{margin-top:3px}.admin-money-line strong{color:#0f172a}.admin-empty-row td{padding:32px!important;color:#64748b;text-align:center!important}.admin-workspace input[type="checkbox"]{accent-color:#0f766e}
@media (max-width:1080px){.admin-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.route-add-form{grid-template-columns:repeat(2,minmax(0,1fr))}.route-add-form .btn{grid-column:span 2}.timetable-add-form{grid-template-columns:repeat(4,minmax(0,1fr))}.timetable-add-form .admin-days-field{grid-column:span 3}.admin-template-edit{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-template-edit .admin-days-field{grid-column:span 3}.admin-template-edit .admin-save-btn{align-self:end}}
@media (max-width:760px){body.admin-page{background:#f7faf9}.admin-dashboard{padding:0 12px 48px}.admin-dashboard-head{align-items:flex-start;flex-direction:column;gap:15px;margin:0 -12px;padding:18px 14px 16px}.admin-dashboard-head h1{font-size:1.42rem}.admin-dashboard-head p{font-size:.76rem;line-height:1.4}.admin-quick-actions{display:grid;grid-template-columns:repeat(4,1fr);width:100%;gap:7px}.admin-quick-actions .btn{display:grid;place-items:center;gap:2px;min-width:0;min-height:50px;padding:7px 4px;border-radius:11px;font-size:.64rem;text-align:center}.admin-quick-actions .btn span:first-child{font-size:.95rem}.admin-section-nav{margin:0 -12px 18px;padding:10px 12px}.admin-section-nav a{padding:8px 11px;font-size:.75rem}.admin-overview-heading{align-items:center;margin-bottom:10px}.admin-overview-heading h2{font-size:1.2rem}.admin-kicker{font-size:.62rem}.admin-date{font-size:.72rem}.admin-health-card{gap:10px;padding:14px;border-radius:15px}.admin-health-icon{flex-basis:32px;width:32px;height:32px}.admin-health-copy h3{font-size:.92rem}.admin-health-copy p,.admin-health-copy .notice-list{font-size:.76rem}.admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}.admin-metric-card{padding:12px;border-radius:14px}.admin-metric-top{font-size:.64rem}.admin-metric-top b{width:24px;height:24px;flex-basis:24px}.admin-metric-card>strong{margin-top:9px;font-size:1.4rem}.admin-workspace{margin:9px 0;border-radius:16px;scroll-margin-top:66px}.admin-workspace>summary{min-height:68px;padding:12px 13px;gap:8px}.workspace-icon{width:34px;height:34px;flex-basis:34px}.workspace-summary-main{gap:9px}.workspace-summary-main strong{font-size:.9rem}.workspace-summary-main small{max-width:210px;font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workspace-count{font-size:.64rem}.admin-workspace>summary::after{width:28px;height:28px;flex-basis:28px}.workspace-body{padding:13px}.workspace-head,.workspace-head-actions{align-items:flex-start;flex-direction:column;gap:10px}.workspace-head h2{font-size:1.18rem}.workspace-head p{font-size:.75rem}.workspace-head-actions>form,.workspace-head-actions .btn{width:100%}.admin-create-form{grid-template-columns:1fr!important;gap:10px;padding:12px;margin-bottom:14px}.admin-create-form .admin-days-field,.admin-create-form .btn{grid-column:auto!important}.admin-create-form .btn{width:100%}.admin-field>label{font-size:.66rem}.admin-days{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.admin-days label span,.admin-days.compact label span{width:100%;min-width:0;height:38px}.admin-table-card{border:0;overflow:visible}.admin-responsive-table{overflow:visible}.admin-responsive-table table,.admin-responsive-table tbody,.admin-responsive-table tr,.admin-responsive-table td{display:block;width:100%;min-width:0}.admin-responsive-table thead{display:none}.admin-responsive-table tbody{display:grid;gap:10px}.admin-responsive-table tr{padding:12px;border:1px solid var(--admin-line);border-radius:14px;background:#fff!important;box-shadow:0 5px 16px rgba(15,41,66,.035)}.admin-responsive-table td{display:grid;grid-template-columns:86px minmax(0,1fr);align-items:center;gap:10px;padding:8px 0!important;border:0!important;text-align:right}.admin-responsive-table td::before{content:attr(data-label);color:#94a3b8;font-size:.64rem;font-weight:900;letter-spacing:.05em;text-align:left;text-transform:uppercase}.admin-responsive-table td>*,.admin-responsive-table td form{justify-self:end;max-width:100%}.admin-responsive-table td input[type="number"]{width:112px}.route-name-editor{justify-content:flex-end}.route-name-display{text-align:right}.route-name-input{width:min(190px,100%)}.admin-journey{justify-content:flex-end;white-space:normal;text-align:right}.admin-switch{justify-content:flex-end}.admin-save-btn{width:auto}.admin-template-list{gap:10px}.admin-template-edit{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:12px}.admin-template-edit .admin-days-field{grid-column:1/-1}.admin-template-edit .admin-save-btn{grid-column:1/-1;width:100%;margin-top:1px}.admin-template-meta{align-items:flex-start;flex-direction:column;gap:9px;padding:10px 12px}.admin-template-meta>span:first-child{line-height:1.45}.admin-row-actions{width:100%}.admin-row-actions form{flex:1}.admin-row-actions .btn{width:100%}.schedule-table td{grid-template-columns:78px minmax(0,1fr)}.schedule-table td[data-label="Route"],.schedule-table td[data-label="Driver"],.schedule-table td[data-label="Money"]{align-items:start}.admin-money-line{text-align:right}.admin-empty-row{padding:0!important}.admin-empty-row td{display:block!important;padding:24px 10px!important;text-align:center!important}.admin-empty-row td::before{display:none}}
@media (max-width:390px){.admin-quick-actions .btn{font-size:.6rem}.admin-section-nav a{font-size:.7rem}.workspace-count{display:none}.admin-template-edit{grid-template-columns:1fr}.admin-template-edit .admin-days-field,.admin-template-edit .admin-save-btn{grid-column:auto}.admin-responsive-table td{grid-template-columns:74px minmax(0,1fr)}.admin-metric-card>strong{font-size:1.28rem}}

/* === CampusFlow staff UI final pass: admin sidebar, responsive analytics, attendant portal === */
body.admin-sidebar-page{padding:0;background:#f4f8f8;overflow-x:hidden}.admin-app-shell{min-height:100vh}.admin-sidebar{position:fixed;inset:0 auto 0 0;z-index:160;width:258px;padding:24px 16px 18px;background:linear-gradient(180deg,#0f2942 0%,#103748 100%);color:#fff;display:flex;flex-direction:column;box-shadow:12px 0 34px rgba(15,41,66,.12)}.admin-sidebar-brand{padding:4px 10px 24px;border-bottom:1px solid rgba(255,255,255,.1)}.admin-sidebar-eyebrow{display:block;margin-bottom:4px;color:#7ddbd2;font-size:.68rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.admin-sidebar-brand strong{display:block;font-size:1.35rem;letter-spacing:-.04em}.admin-sidebar-brand small{display:block;margin-top:1px;color:rgba(255,255,255,.62);font-size:.78rem;font-weight:650}.admin-side-nav{display:grid;gap:6px;padding:20px 0}.admin-side-nav a,.admin-sidebar-tools a,.admin-sidebar-logout{display:flex;align-items:center;gap:11px;min-height:46px;padding:10px 12px;border-radius:12px;color:rgba(255,255,255,.78);text-decoration:none;font-size:.84rem;font-weight:780;transition:.18s ease}.admin-side-nav a:hover,.admin-sidebar-tools a:hover,.admin-sidebar-logout:hover{background:rgba(255,255,255,.08);color:#fff}.admin-side-nav a.active{background:#fff;color:#0f2942;box-shadow:0 9px 24px rgba(0,0,0,.13)}.admin-side-icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:9px;background:rgba(255,255,255,.08);font-size:.85rem}.admin-side-nav a.active .admin-side-icon{background:#e8f7f5;color:#0f766e}.admin-side-nav a b{margin-left:auto;display:grid;place-items:center;min-width:25px;height:25px;padding:0 7px;border-radius:999px;background:rgba(255,255,255,.1);color:#fff;font-size:.68rem}.admin-side-nav a.active b{background:#dff6f3;color:#0f766e}.admin-sidebar-tools{display:grid;gap:4px;margin-top:8px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.admin-sidebar-label{padding:0 12px 7px;color:rgba(255,255,255,.42);font-size:.62rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.admin-sidebar-tools a span:first-child,.admin-sidebar-logout span:first-child{display:grid;place-items:center;width:28px;color:#7ddbd2}.admin-sidebar-logout{margin-top:auto;border:1px solid rgba(255,255,255,.09)}.admin-sidebar-backdrop{display:none}.admin-main-column{min-height:100vh;margin-left:258px}.admin-mainbar{position:sticky;top:0;z-index:110;display:flex;align-items:center;gap:14px;min-height:72px;padding:12px 26px;background:rgba(248,251,251,.94);border-bottom:1px solid #dcebea;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.admin-menu-button{display:none;width:42px;height:42px;padding:10px;border:1px solid #d7e9e7;border-radius:12px;background:#fff}.admin-menu-button span{display:block;height:2px;margin:4px 0;border-radius:2px;background:#0f2942}.admin-mainbar-copy{min-width:0}.admin-mainbar-kicker{display:block;color:#0f766e;font-size:.64rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}.admin-mainbar-copy strong{display:block;color:#0f172a;font-size:1.02rem;letter-spacing:-.02em}.admin-mainbar-meta{margin-left:auto;display:flex;align-items:center;gap:12px;color:#64748b;font-size:.78rem;font-weight:750}.admin-mainbar-meta a{display:grid;place-items:center;width:38px;height:38px;border:1px solid #dcebea;border-radius:11px;background:#fff;color:#0f766e;text-decoration:none;font-weight:900}.admin-panel-stage.admin-dashboard{max-width:1440px;margin:0 auto;padding:28px 28px 72px}.admin-panel-stage .admin-overview{margin:0}.admin-panel-stage .admin-overview[hidden],.admin-panel-stage .admin-workspace[hidden]{display:none!important}.admin-panel-stage .admin-workspace{margin:0;border:0;border-radius:20px;box-shadow:0 10px 30px rgba(15,41,66,.055);overflow:hidden}.admin-panel-stage .admin-workspace>summary{display:none!important}.admin-panel-stage .workspace-body{padding:24px}.admin-panel-stage .admin-flash{margin:0 0 18px}.admin-overview-heading{margin-top:0}.admin-overview-heading .admin-date{display:none}

body.stats-page{padding:0;background:#f5f8f8}.stats-app-header{background:linear-gradient(135deg,#0f2942,#123c4b);color:#fff}.stats-app-header-inner{width:min(1180px,calc(100% - 40px));min-height:154px;margin:0 auto;padding:28px 0;display:flex;align-items:center;justify-content:space-between;gap:24px}.stats-eyebrow,.stats-section-kicker{display:block;color:#0d9488;font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.stats-app-header .stats-eyebrow{color:#80ddd4}.stats-app-header h1{margin:3px 0 1px;color:#fff;font-size:2rem;letter-spacing:-.045em}.stats-app-header p{margin:0;color:rgba(255,255,255,.66);font-size:.84rem}.stats-header-actions{display:flex;gap:9px}.stats-header-actions .btn{width:auto;min-height:42px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);color:#fff}.stats-dashboard{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:28px 0 70px}.stats-health{display:flex;gap:14px;align-items:flex-start;padding:18px 20px;border:1px solid #dcebea;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(15,41,66,.04)}.stats-health.healthy{border-left:5px solid #16a34a}.stats-health.attention{border-left:5px solid #dc2626}.stats-health-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:#e8f7f5;color:#0f766e;font-size:1.05rem;font-weight:950}.stats-health.attention .stats-health-icon{background:#fee2e2;color:#dc2626}.stats-health h2{margin:2px 0 3px;font-size:1.05rem;letter-spacing:-.02em}.stats-health p{margin:0;color:#64748b;font-size:.82rem;line-height:1.55}.stats-section{margin-top:26px}.stats-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:13px}.stats-section-head h2{margin:2px 0 0;font-size:1.32rem;letter-spacing:-.035em}.stats-section-head p{margin:2px 0 0;color:#64748b;font-size:.78rem}.stats-count-pill{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border-radius:999px;background:#e8f7f5;color:#0f766e;font-size:.7rem;font-weight:850}.stats-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stats-metric-card{min-width:0;padding:16px;border:1px solid #dcebea;border-radius:17px;background:#fff;box-shadow:0 6px 20px rgba(15,41,66,.035)}.stats-metric-label{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#64748b;font-size:.7rem;font-weight:800}.stats-metric-label b{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:9px;background:#e8f7f5;color:#0f766e;font-size:.62rem}.stats-metric-card>strong{display:block;margin-top:11px;color:#0f172a;font-size:1.55rem;letter-spacing:-.045em}.stats-audience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.stats-audience-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 14px;padding:15px 17px;border:1px solid #dcebea;border-radius:16px;background:#eef8f6}.stats-audience-card span{color:#475569;font-size:.72rem;font-weight:800}.stats-audience-card strong{grid-row:1/3;grid-column:2;color:#0f766e;font-size:1.45rem}.stats-audience-card small{color:#94a3b8;font-size:.68rem}.stats-bus-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.stats-bus-card{padding:17px;border:1px solid #dcebea;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(15,41,66,.04)}.stats-bus-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.stats-bus-top>div{display:flex;align-items:baseline;gap:9px}.stats-bus-time{color:#0f172a;font-size:1.35rem;font-weight:950;letter-spacing:-.05em}.stats-bus-top strong{color:#64748b;font-size:.78rem}.stats-bus-card h3{margin:7px 0 13px;font-size:.94rem}.stats-fill-row{display:flex;justify-content:space-between;color:#64748b;font-size:.7rem;font-weight:750}.stats-fill-row strong{color:#0f766e}.stats-fill-track{height:7px;margin:6px 0 15px;border-radius:999px;background:#e8f0ef;overflow:hidden}.stats-fill-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0f766e,#14b8a6)}.stats-bus-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stats-bus-facts>div{padding:10px;border-radius:12px;background:#f7fbfa}.stats-bus-facts span,.stats-bus-facts small{display:block;color:#94a3b8;font-size:.62rem}.stats-bus-facts strong{display:block;margin:2px 0;color:#334155;font-size:.78rem}.stats-bus-warning{margin-top:10px;padding:8px 10px;border-radius:10px;background:#fff7ed;color:#c2410c;font-size:.7rem;font-weight:800}.stats-empty{grid-column:1/-1;padding:32px;border:1px dashed #cbd5e1;border-radius:16px;color:#64748b;text-align:center}.stats-traffic-scroll{overflow-x:auto;border:1px solid #dcebea;border-radius:18px;background:#fff}.stats-traffic-chart.traffic-chart{min-width:900px;height:300px;margin:0;padding:24px 18px 10px;border:0}

body.attendant-page{padding:0;background:#f5f8f8}.attendant-header{background:linear-gradient(135deg,#0f2942,#123c4b);color:#fff}.attendant-header-inner{width:min(1120px,calc(100% - 40px));min-height:164px;margin:0 auto;padding:28px 0;display:flex;align-items:center;justify-content:space-between;gap:24px}.attendant-eyebrow,.attendant-section-kicker{display:block;color:#0d9488;font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.attendant-header .attendant-eyebrow{color:#80ddd4}.attendant-header h1{margin:3px 0 2px;color:#fff;font-size:2rem;letter-spacing:-.045em}.attendant-header p{margin:0;max-width:600px;color:rgba(255,255,255,.68);font-size:.84rem}.attendant-header-actions{display:flex;gap:9px}.attendant-header-actions .btn{width:auto;min-height:42px;background:#fff;border-color:#fff;color:#0f2942}.attendant-shell{width:min(1120px,calc(100% - 40px));margin:0 auto;padding:24px 0 70px}.attendant-notice{margin-bottom:14px}.attendant-bus-tabs{display:flex;gap:9px;overflow-x:auto;padding:2px 1px 14px;scrollbar-width:none}.attendant-bus-tabs::-webkit-scrollbar{display:none}.attendant-bus-tabs a{display:flex;align-items:center;gap:8px;flex:0 0 auto;min-height:44px;padding:9px 13px;border:1px solid #dcebea;border-radius:999px;background:#fff;color:#0f766e;text-decoration:none;font-size:.72rem}.attendant-bus-tabs a span{font-weight:700}.attendant-bus-tabs a strong{font-size:.74rem}.attendant-bus-tabs a.active{border-color:#0f766e;background:#0f766e;color:#fff;box-shadow:0 7px 18px rgba(15,118,110,.18)}.attendant-bus-hero,.attendant-panel,.attendant-depart-zone,.attendant-empty{border:1px solid #dcebea;border-radius:20px;background:#fff;box-shadow:0 9px 28px rgba(15,41,66,.045)}.attendant-bus-hero{padding:22px}.attendant-bus-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.attendant-bus-label{display:block;color:#0f766e;font-size:.68rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.attendant-bus-title-row h2{margin:3px 0 0;font-size:1.45rem;letter-spacing:-.045em}.attendant-bus-copy>p{margin:5px 0 0;color:#64748b;font-size:.82rem}.attendant-bus-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:18px}.attendant-bus-metrics>div{padding:12px;border-radius:13px;background:#f5faf9}.attendant-bus-metrics span{display:block;color:#94a3b8;font-size:.63rem;font-weight:800;text-transform:uppercase}.attendant-bus-metrics strong{display:block;margin-top:3px;color:#0f172a;font-size:1rem}.attendant-panel{margin-top:14px;padding:20px}.attendant-panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px}.attendant-panel-head h2{margin:2px 0 0;font-size:1.08rem;letter-spacing:-.025em}.attendant-ready-pill,.attendant-count-pill{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border-radius:999px;background:#e8f7f5;color:#0f766e;font-size:.68rem;font-weight:850}.attendant-driver-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:end}.attendant-field label{display:block;margin-bottom:5px;color:#64748b;font-size:.64rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.attendant-field input{width:100%;min-width:0}.attendant-unknown-driver{grid-column:1/3;display:flex;align-items:center;gap:8px;min-height:42px;color:#475569;font-size:.76rem;font-weight:750}.attendant-unknown-driver input{width:18px;height:18px;accent-color:#0f766e}.attendant-confirm-button{grid-column:4;grid-row:1/3;align-self:stretch;width:190px}.attendant-driver-confirmed{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.attendant-driver-confirmed>div{padding:12px;border-radius:13px;background:#f7fbfa}.attendant-driver-confirmed span{display:block;color:#94a3b8;font-size:.64rem;font-weight:800;text-transform:uppercase}.attendant-driver-confirmed strong{display:block;margin-top:3px;color:#334155;font-size:.82rem}.attendant-closed-note{padding:13px;border-radius:12px;background:#f8fafc;color:#64748b;font-size:.78rem}.attendant-passenger-list{display:grid;gap:9px}.attendant-passenger-card{display:grid;grid-template-columns:minmax(230px,1.5fr) .8fr .65fr minmax(150px,auto);gap:12px;align-items:center;padding:12px;border:1px solid #e2eeee;border-radius:15px;background:#fbfdfd}.attendant-passenger-person{display:flex;align-items:center;gap:10px;min-width:0}.attendant-avatar{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:11px;background:#e8f7f5;color:#0f766e;font-size:.8rem;font-weight:900}.attendant-passenger-person strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.attendant-passenger-person small{display:block;margin-top:2px;color:#94a3b8;font-size:.66rem}.attendant-passenger-fact span{display:block;color:#94a3b8;font-size:.61rem;font-weight:850;text-transform:uppercase}.attendant-passenger-fact strong{display:block;margin-top:2px;color:#475569;font-size:.72rem;text-transform:capitalize}.attendant-passenger-action{justify-self:end}.attendant-passenger-action .btn{width:auto;min-height:38px;padding:7px 11px;font-size:.7rem}.attendant-cash-actions{display:flex;gap:6px}.attendant-action-state{color:#64748b;font-size:.72rem;font-weight:800}.attendant-action-state.paid{color:#15803d}.attendant-action-state.unpaid{color:#dc2626}.attendant-manifest-empty{display:flex;flex-direction:column;align-items:center;gap:3px;padding:28px 16px;border:1px dashed #cbd5e1;border-radius:14px;color:#475569;text-align:center}.attendant-manifest-empty small{color:#94a3b8}.attendant-depart-zone{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:14px;padding:17px 20px;border-color:#fecaca;background:#fffafa}.attendant-depart-zone strong{display:block;color:#991b1b;font-size:.84rem}.attendant-depart-zone span{display:block;margin-top:2px;color:#7f1d1d;font-size:.7rem}.attendant-depart-zone .btn{width:auto}.attendant-empty{padding:52px 20px;text-align:center}.attendant-empty>span{font-size:2.2rem}.attendant-empty h2{margin-top:8px}.attendant-empty p{color:#64748b;font-size:.82rem}

@media (max-width:900px){.admin-sidebar{width:min(78vw,250px);transform:translateX(-105%);transition:transform .22s ease}.admin-main-column{margin-left:0}.admin-menu-button{display:block}.admin-sidebar-backdrop{display:block;position:fixed;inset:0;z-index:150;border:0;background:rgba(15,23,42,.48);opacity:0;visibility:hidden;transition:.2s}.admin-drawer-open .admin-sidebar{transform:translateX(0)}.admin-drawer-open .admin-sidebar-backdrop{opacity:1;visibility:visible}.admin-mainbar{min-height:68px;padding:10px 16px}.admin-mainbar-meta>span{display:none}.admin-panel-stage.admin-dashboard{padding:20px 16px 60px}.admin-panel-stage .workspace-body{padding:18px}.stats-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-bus-grid{grid-template-columns:1fr}.attendant-driver-form{grid-template-columns:repeat(2,minmax(0,1fr))}.attendant-confirm-button{grid-column:1/-1;grid-row:auto;width:100%;min-height:48px}.attendant-unknown-driver{grid-column:1/-1}.attendant-passenger-card{grid-template-columns:minmax(220px,1.4fr) .8fr .7fr}.attendant-passenger-action{grid-column:1/-1;justify-self:stretch}.attendant-passenger-action form,.attendant-passenger-action .btn{width:100%}.attendant-cash-actions{width:100%}.attendant-cash-actions form{flex:1}}

@media (max-width:640px){.admin-panel-stage.admin-dashboard{padding:16px 12px 48px}.admin-mainbar-copy strong{font-size:.92rem}.admin-mainbar-meta a{width:36px;height:36px}.admin-panel-stage .workspace-body{padding:13px}.admin-panel-stage .admin-workspace{border-radius:16px}.stats-app-header-inner,.attendant-header-inner{width:calc(100% - 28px);min-height:auto;padding:20px 0;align-items:flex-start;flex-direction:column}.stats-app-header h1,.attendant-header h1{font-size:1.55rem}.stats-header-actions,.attendant-header-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.stats-header-actions .btn,.attendant-header-actions .btn{justify-content:center;width:100%;min-height:44px}.stats-dashboard,.attendant-shell{width:calc(100% - 28px);padding-top:18px}.stats-health{padding:14px}.stats-health h2{font-size:.96rem}.stats-health p{font-size:.75rem}.stats-section{margin-top:21px}.stats-section-head h2{font-size:1.14rem}.stats-metric-grid{gap:8px}.stats-metric-card{padding:13px;border-radius:14px}.stats-metric-card>strong{font-size:1.3rem}.stats-audience-grid{gap:8px}.stats-audience-card{padding:12px}.stats-audience-card strong{font-size:1.2rem}.stats-bus-card{padding:14px}.stats-bus-facts{grid-template-columns:1fr 1fr}.stats-traffic-chart.traffic-chart{min-width:720px;height:270px;padding-left:12px;padding-right:12px}.attendant-bus-tabs{margin-right:-14px;padding-right:14px}.attendant-bus-hero{padding:16px}.attendant-bus-title-row h2{font-size:1.22rem}.attendant-bus-metrics{gap:7px}.attendant-bus-metrics>div{padding:10px}.attendant-panel{padding:14px;border-radius:17px}.attendant-driver-form{grid-template-columns:1fr}.attendant-unknown-driver,.attendant-confirm-button{grid-column:auto}.attendant-driver-confirmed{grid-template-columns:1fr}.attendant-passenger-card{grid-template-columns:1fr;gap:9px;padding:12px}.attendant-passenger-fact{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:8px;border-top:1px solid #edf3f2}.attendant-passenger-fact strong{margin:0;text-align:right}.attendant-passenger-action{grid-column:auto}.attendant-cash-actions{display:grid;grid-template-columns:1fr 1fr}.attendant-depart-zone{align-items:flex-start;flex-direction:column}.attendant-depart-zone form,.attendant-depart-zone .btn{width:100%}}

@media (max-width:390px){.stats-app-header-inner,.attendant-header-inner,.stats-dashboard,.attendant-shell{width:calc(100% - 22px)}.stats-metric-card>strong{font-size:1.18rem}.stats-metric-label{font-size:.64rem}.stats-bus-facts{grid-template-columns:1fr}.attendant-bus-metrics{grid-template-columns:1fr 1fr}.attendant-bus-metrics>div:first-child{grid-column:1/-1}.attendant-cash-actions{grid-template-columns:1fr}}

/* CampusFlow Admin Operations Dashboard — Phase 1 */
.admin-overview-sub{margin:5px 0 0;color:#64748b;font-size:.82rem}
.admin-core-metrics{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:18px}
.admin-ops-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.8fr);gap:14px;margin:0 0 24px}
.admin-ops-side{display:grid;align-content:start;gap:14px}
.admin-dashboard-card{min-width:0;padding:18px;border:1px solid var(--admin-line);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(15,41,66,.045)}
.admin-dashboard-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.admin-dashboard-card-head h2{margin:3px 0 0;color:#0f172a;font-size:1.08rem;letter-spacing:-.03em}
.admin-count-pill{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border-radius:999px;background:#e8f7f5;color:#0f766e;font-size:.66rem;font-weight:850;white-space:nowrap}
.admin-card-link{color:#0f766e;font-size:.7rem;font-weight:850;text-decoration:none;white-space:nowrap}
.admin-live-list{display:grid;gap:10px}
.admin-live-bus{padding:14px;border:1px solid #e1eeee;border-radius:15px;background:#fbfdfd}
.admin-live-bus-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.admin-live-bus-top>div{min-width:0}
.admin-live-time{display:block;color:#0f766e;font-size:1.45rem;line-height:1;font-weight:950;letter-spacing:-.05em}
.admin-live-bus-top strong{display:block;margin-top:5px;color:#0f172a;font-size:.85rem}
.admin-live-bus-top small{display:block;margin-top:2px;color:#64748b;font-size:.7rem}
.admin-live-capacity{margin-top:12px}
.admin-live-capacity>div{height:7px;overflow:hidden;border-radius:999px;background:#e7f0ef}
.admin-live-capacity>div>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0f766e,#14b8a6)}
.admin-live-capacity small{display:block;margin-top:5px;color:#64748b;font-size:.67rem}
.admin-live-capacity small strong{color:#334155}
.admin-live-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:11px}
.admin-live-facts>div{padding:8px 9px;border-radius:10px;background:#f2f8f7}
.admin-live-facts span{display:block;color:#94a3b8;font-size:.57rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.admin-live-facts strong{display:block;margin-top:2px;color:#334155;font-size:.69rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-live-money{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid #e8f0ef;color:#64748b;font-size:.67rem}
.admin-live-money strong{color:#0f172a}
.admin-next-list{display:grid}
.admin-next-row{display:grid;grid-template-columns:62px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid #edf3f2}
.admin-next-row:last-child{border-bottom:0}
.admin-next-time{color:#0f172a;font-size:.92rem;font-weight:950;letter-spacing:-.03em}
.admin-next-copy{min-width:0}
.admin-next-copy strong,.admin-next-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-next-copy strong{color:#334155;font-size:.7rem}
.admin-next-copy small{margin-top:1px;color:#94a3b8;font-size:.62rem}
.admin-next-seats{padding:4px 7px;border-radius:999px;background:#eef8f6;color:#0f766e;font-size:.62rem;font-weight:850;white-space:nowrap}
.admin-payment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.admin-payment-grid>div{padding:10px;border-radius:12px;background:#f6faf9}
.admin-payment-grid span{display:block;color:#94a3b8;font-size:.59rem;font-weight:850;text-transform:uppercase;letter-spacing:.035em}
.admin-payment-grid strong{display:block;margin-top:3px;color:#0f172a;font-size:.86rem;letter-spacing:-.02em}
.admin-dashboard-empty{display:flex;flex-direction:column;gap:3px;padding:25px 14px;border:1px dashed #cbd5e1;border-radius:13px;color:#64748b;text-align:center}
.admin-dashboard-empty strong{color:#334155;font-size:.8rem}
.admin-dashboard-empty span{font-size:.68rem}
.admin-dashboard-empty.compact{padding:18px 12px}
.admin-recent-head{margin-top:0}
@media (max-width:1080px){.admin-ops-grid{grid-template-columns:1fr}.admin-ops-side{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.admin-overview-sub{font-size:.73rem}.admin-core-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-ops-side{grid-template-columns:1fr}.admin-dashboard-card{padding:14px;border-radius:15px}.admin-dashboard-card-head h2{font-size:1rem}.admin-live-bus{padding:12px}.admin-live-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-live-money{align-items:flex-start;flex-direction:column;gap:3px}}
@media (max-width:390px){.admin-live-facts{grid-template-columns:1fr 1fr}.admin-live-facts>div:last-child{grid-column:1/-1}.admin-next-row{grid-template-columns:56px minmax(0,1fr)}.admin-next-seats{grid-column:2;justify-self:start}}

/* CampusFlow Admin Phase 2 — Bookings + Students */
.admin-tool-page{background:#f4f8f8}.admin-tool-wrap{width:min(1440px,calc(100% - 36px));margin:auto;padding:28px 0 72px}.admin-tool-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px;padding:22px 24px;border-radius:20px;background:linear-gradient(135deg,#0f2942,#123a4a);color:#fff}.admin-tool-header h1{margin:4px 0}.admin-tool-header p{margin:0;color:rgba(255,255,255,.72);font-size:.84rem}.admin-tool-nav{display:flex;flex-wrap:wrap;gap:7px}.admin-tool-nav a{padding:8px 11px;border-radius:999px;color:rgba(255,255,255,.8);font-size:.72rem;font-weight:850;text-decoration:none}.admin-tool-nav a.active,.admin-tool-nav a:hover{background:rgba(255,255,255,.13);color:#fff}
.admin-tool-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.admin-tool-metrics>div,.admin-tool-card{border:1px solid var(--admin-line,#dceceb);background:#fff}.admin-tool-metrics>div{padding:15px 16px;border-radius:16px}.admin-tool-metrics span{display:block;color:#64748b;font-size:.68rem;font-weight:850;text-transform:uppercase}.admin-tool-metrics strong{display:block;margin-top:8px;font-size:1.55rem}.admin-tool-card{margin-bottom:14px;padding:18px;border-radius:18px}.admin-tool-card-head{display:flex;justify-content:space-between;gap:16px;margin-bottom:14px}.admin-tool-card-head h2{margin:3px 0 0}.admin-search-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;align-items:end}.admin-search-grid .wide{grid-column:span 2}.admin-search-grid label>span{display:block;margin-bottom:5px;color:#64748b;font-size:.65rem;font-weight:850;text-transform:uppercase}.admin-search-grid input,.admin-search-grid select,.admin-user-search input{width:100%}.admin-search-actions{display:flex;gap:7px}.admin-user-search{display:grid;grid-template-columns:1fr auto auto;gap:8px}
.admin-inspector-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.admin-truth-card{padding:15px;border:1px solid #e1eeee;border-radius:15px;background:#fbfdfd}.admin-truth-card>span{display:block;color:#94a3b8;font-size:.6rem;font-weight:850;text-transform:uppercase}.admin-truth-card>strong{display:block;margin-top:5px}.admin-truth-card p{margin:4px 0 0;color:#64748b;font-size:.7rem}.admin-inspector-columns{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.admin-payment-attempts{display:grid;gap:9px}.admin-payment-attempts article{padding:12px;border:1px solid #e4eeee;border-radius:13px;background:#fbfdfd}.admin-payment-attempts article>div:first-child{display:flex;justify-content:space-between}.admin-payment-attempts dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.admin-payment-attempts dt{color:#94a3b8;font-size:.57rem;font-weight:850}.admin-payment-attempts dd{overflow:hidden;margin:2px 0 0;font-size:.67rem;text-overflow:ellipsis;white-space:nowrap}.admin-timeline-row{display:grid;grid-template-columns:18px 1fr;gap:8px;padding-bottom:15px}.admin-timeline-row>span{width:10px;height:10px;margin-top:4px;border:2px solid #0d9488;border-radius:50%}.admin-timeline-row strong{display:block;font-size:.74rem}.admin-timeline-row small{display:block;color:#94a3b8;font-size:.64rem}.admin-open-link{color:#0f766e;font-size:.69rem;font-weight:850;text-decoration:none}.admin-account-state{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:.62rem;font-weight:850}.admin-account-state.good{background:#dcfce7;color:#15803d}.admin-account-state.warning{background:#fef3c7;color:#b45309}.admin-account-state.muted{background:#e2e8f0;color:#475569}
@media(max-width:1100px){.admin-search-grid{grid-template-columns:repeat(3,1fr)}.admin-search-grid .wide{grid-column:span 3}.admin-inspector-grid{grid-template-columns:repeat(2,1fr)}.admin-inspector-columns{grid-template-columns:1fr}.admin-core-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.admin-tool-wrap{width:calc(100% - 22px);padding-top:14px}.admin-tool-header{align-items:flex-start;flex-direction:column;padding:18px}.admin-tool-metrics{grid-template-columns:repeat(2,1fr)}.admin-search-grid{grid-template-columns:1fr 1fr}.admin-search-grid .wide{grid-column:1/-1}.admin-search-actions{grid-column:1/-1}.admin-inspector-grid{grid-template-columns:1fr 1fr}.admin-user-search{grid-template-columns:1fr}.admin-payment-attempts dl{grid-template-columns:1fr}}@media(max-width:420px){.admin-inspector-grid{grid-template-columns:1fr}}

/* CampusFlow Admin Phase 3 — Reports */
.admin-report-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;gap:10px;align-items:end}
.admin-report-filter-grid label>span{display:block;margin-bottom:5px;color:#64748b;font-size:.65rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.admin-report-filter-grid input,.admin-report-filter-grid select{width:100%;background:#fff}
.admin-report-filter-actions{display:flex;gap:7px;flex-wrap:wrap}
.admin-report-presets{display:flex;gap:7px;margin-top:10px}
.admin-report-presets a{padding:6px 9px;border-radius:999px;background:#edf8f6;color:#0f766e;font-size:.65rem;font-weight:850;text-decoration:none}
.admin-report-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}
.admin-report-money-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.admin-report-money-grid h2{margin:3px 0 13px;font-size:1.05rem}
.admin-report-list{display:grid;margin:0}
.admin-report-list>div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #edf3f2}
.admin-report-list dt{color:#64748b;font-size:.72rem}.admin-report-list dd{margin:0;color:#0f172a;font-size:.84rem;font-weight:900}
.admin-report-list .total{margin-top:4px;border-top:2px solid #dceceb;border-bottom:0}.admin-report-list .total dt,.admin-report-list .total dd{color:#0f766e;font-weight:900}
.admin-report-days{display:grid;gap:4px}
.admin-report-day{display:grid;grid-template-columns:70px minmax(140px,1fr) minmax(260px,1.4fr);align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid #edf3f2}
.admin-report-day>div:first-child strong,.admin-report-day>div:first-child span{display:block}.admin-report-day>div:first-child span{color:#94a3b8;font-size:.62rem}
.admin-report-bar{height:8px;overflow:hidden;border-radius:999px;background:#e7f0ef}.admin-report-bar>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0f766e,#14b8a6)}
.admin-report-day-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;color:#64748b;font-size:.66rem}
.admin-report-departures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.admin-report-departures article{padding:13px;border:1px solid #e1eeee;border-radius:14px;background:#fbfdfd}
.admin-report-departure-top{display:flex;justify-content:space-between;gap:10px}.admin-report-departure-top strong{display:block;color:#0f172a;font-size:.78rem}.admin-report-departure-top span{display:block;margin-top:2px;color:#94a3b8;font-size:.62rem}.admin-report-departure-top>b{color:#0f766e;font-size:.72rem}
.admin-report-departure-meta{display:flex;justify-content:space-between;gap:8px;margin-top:8px;color:#64748b;font-size:.61rem}
@media(max-width:1180px){.admin-report-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-report-filter-actions{grid-column:1/-1}.admin-report-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-report-departures{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.admin-report-filter-grid{grid-template-columns:1fr 1fr}.admin-report-filter-grid label:nth-child(3){grid-column:1/-1}.admin-report-money-grid{grid-template-columns:1fr}.admin-report-day{grid-template-columns:58px minmax(0,1fr)}.admin-report-day-meta{grid-column:1/-1;padding-left:70px}.admin-report-departures{grid-template-columns:1fr}}
@media(max-width:460px){.admin-report-filter-grid{grid-template-columns:1fr}.admin-report-filter-grid label:nth-child(3),.admin-report-filter-actions{grid-column:auto}.admin-report-filter-actions{display:grid;grid-template-columns:1fr 1fr}.admin-report-filter-actions .btn:first-child{grid-column:1/-1}.admin-report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-report-day-meta{grid-template-columns:1fr;padding-left:0}}
@media print{.admin-tool-nav,.admin-report-filters,.btn{display:none!important}.admin-tool-page{background:#fff}.admin-tool-wrap{width:100%;padding:0}.admin-tool-header,.admin-tool-card,.admin-tool-metrics>div{box-shadow:none}.admin-tool-card,.admin-report-departures article{break-inside:avoid}}

/* CampusFlow Admin Phase 4 — Audit & Staff */
.admin-audit-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}
.admin-audit-metrics>div:last-child strong{font-size:1.08rem;letter-spacing:.02em}
.admin-audit-health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.admin-audit-health{padding:15px 16px;border:1px solid #dceceb;border-radius:16px;background:#fff;box-shadow:0 7px 20px rgba(15,41,66,.04)}
.admin-audit-health>span{display:block;color:#64748b;font-size:.64rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.admin-audit-health>strong{display:block;margin-top:7px;color:#0f172a;font-size:1rem}
.admin-audit-health>p{margin:5px 0 0;color:#64748b;font-size:.68rem;line-height:1.45}
.admin-audit-health.healthy{border-left:4px solid #16a34a}
.admin-audit-health.attention{border-left:4px solid #dc2626}
.admin-audit-health.neutral{border-left:4px solid #94a3b8}
.admin-audit-access-note{margin-bottom:13px;padding:13px 14px;border:1px solid #dceceb;border-radius:14px;background:#f8fcfb}
.admin-audit-access-note strong{display:block;color:#0f2942;font-size:.82rem}
.admin-audit-access-note p{margin:4px 0;color:#64748b;font-size:.72rem;line-height:1.55}
.admin-audit-access-note small{color:#0f766e;font-size:.65rem;font-weight:800}
.admin-audit-foot{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.admin-audit-foot h2{margin:3px 0 0;font-size:1.05rem}
.admin-audit-freshness{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:10px;min-width:min(700px,70%)}
.admin-audit-freshness>div{padding:10px 12px;border-radius:12px;background:#f8fcfb}
.admin-audit-freshness span{display:block;color:#94a3b8;font-size:.58rem;font-weight:850;text-transform:uppercase}
.admin-audit-freshness strong{display:block;margin-top:4px;color:#334155;font-size:.7rem}
@media(max-width:1180px){.admin-audit-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-audit-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.admin-audit-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-audit-health-grid{grid-template-columns:1fr}.admin-audit-foot{flex-direction:column}.admin-audit-freshness{grid-template-columns:1fr;width:100%;min-width:0}}


/* CampusFlow exact-header-logo system */
.admin-tool-heading,
.attendant-heading,
.review-heading {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}

.admin-header-logo,
.attendant-header-logo,
.review-header-logo,
.admin-mainbar-logo {
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 48px;
  height: 48px;
  text-decoration: none;
}

.admin-header-logo img,
.attendant-header-logo img,
.review-header-logo img,
.admin-mainbar-logo img,
.auth-brand-logo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: none !important;
  -webkit-filter: none !important;
}

.admin-mainbar-logo {
  width: 42px;
  height: 42px;
}

.auth-brand-logo {
  width: 76px;
  height: 76px;
  margin: 0 auto 12px;
}

@media (max-width: 720px) {
  .admin-tool-heading,
  .attendant-heading,
  .review-heading {
    gap: 10px;
  }

  .admin-header-logo,
  .attendant-header-logo,
  .review-header-logo {
    width: 42px;
    height: 42px;
  }

  .admin-mainbar-logo {
    width: 38px;
    height: 38px;
  }
}

/* CampusFlow exact auth logo */
.auth-logo {
  width: 72px;
  height: 72px;
  padding: 0;
  border-radius: 0;
  background: transparent !important;
}

.auth-logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: none !important;
  -webkit-filter: none !important;
}
/* CampusFlow exact master-logo enforcement */
.landing-brand-mark,
.header-logo,
.auth-logo,
.brand-icon {
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.landing-brand-mark img,
.header-logo img,
.auth-logo img,
.brand-icon img,
.admin-mainbar-logo img,
.admin-header-logo img,
.attendant-header-logo img,
.review-header-logo img,
.auth-brand-logo,
.admin-sidebar-logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: none !important;
  -webkit-filter: none !important;
}

.admin-sidebar-brand {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  grid-template-rows: auto auto auto;
  column-gap: 12px;
  align-items: center;
}

.admin-sidebar-logo {
  grid-column: 1;
  grid-row: 1 / 4;
  display: block;
  width: 46px;
  height: 46px;
}

.admin-sidebar-eyebrow,
.admin-sidebar-brand > strong,
.admin-sidebar-brand > small {
  grid-column: 2;
}

/* CampusFlow contextual logo sizing v1
   Keep the approved master artwork unchanged.
   Only its display box changes by context. */

.header-logo {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.header-logo img {
  width: 100% !important;
  height: 100% !important;
  max-width: 36px;
  max-height: 36px;
  object-fit: contain;
  display: block;
  filter: none !important;
  -webkit-filter: none !important;
}

.auth-logo {
  width: 62px !important;
  height: 62px !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.auth-logo img {
  width: 100% !important;
  height: 100% !important;
  max-width: 62px;
  max-height: 62px;
  object-fit: contain;
  display: block;
}

.auth-brand-logo {
  width: 60px !important;
  height: 60px !important;
  max-width: 60px;
  max-height: 60px;
  object-fit: contain;
  display: block;
  margin: 0 auto 10px !important;
}

.admin-sidebar-logo {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px;
}
.admin-sidebar-logo img {
  width: 100% !important;
  height: 100% !important;
  max-width: 34px;
  max-height: 34px;
  object-fit: contain;
  display: block;
}

.admin-mainbar-logo {
  width: 30px !important;
  height: 30px !important;
  min-width: 30px;
}
.admin-mainbar-logo img {
  width: 100% !important;
  height: 100% !important;
  max-width: 30px;
  max-height: 30px;
  object-fit: contain;
  display: block;
}

.admin-header-logo,
.review-header-logo {
  width: 38px !important;
  height: 38px !important;
  min-width: 38px;
}
.admin-header-logo img,
.review-header-logo img {
  width: 100% !important;
  height: 100% !important;
  max-width: 38px;
  max-height: 38px;
  object-fit: contain;
  display: block;
}

.attendant-header-logo {
  width: 40px !important;
  height: 40px !important;
  min-width: 40px;
}
.attendant-header-logo img {
  width: 100% !important;
  height: 100% !important;
  max-width: 40px;
  max-height: 40px;
  object-fit: contain;
  display: block;
}

@media (max-width: 640px) {
  .header-logo {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px;
  }
  .header-logo img {
    max-width: 32px;
    max-height: 32px;
  }

  .auth-logo {
    width: 56px !important;
    height: 56px !important;
  }
  .auth-logo img {
    max-width: 56px;
    max-height: 56px;
  }

  .auth-brand-logo {
    width: 54px !important;
    height: 54px !important;
    max-width: 54px;
    max-height: 54px;
  }

  .admin-header-logo,
  .review-header-logo,
  .attendant-header-logo {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px;
  }
  .admin-header-logo img,
  .review-header-logo img,
  .attendant-header-logo img {
    max-width: 34px;
    max-height: 34px;
  }

  .admin-mainbar-logo {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px;
  }
  .admin-mainbar-logo img {
    max-width: 28px;
    max-height: 28px;
  }
}

/* CampusFlow app/web booking match v1 — presentation only. */
.booking-app-hero{background:linear-gradient(135deg,var(--primary-mid),var(--primary-dark));color:var(--white);overflow:hidden}.booking-app-hero-inner{min-height:238px;max-width:720px;margin:0 auto;padding:42px 20px 46px;display:flex;flex-direction:column;align-items:center;justify-content:center}.booking-app-live{align-self:flex-start;display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:6px 10px;border:1px solid rgba(204,251,241,.22);border-radius:999px;background:rgba(15,41,66,.34);color:var(--primary-light);font-size:11px;font-weight:900;letter-spacing:.11em}.booking-app-live>span{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(20,184,166,.13)}.booking-app-wordmark{margin:26px 0 2px;color:var(--white);font-size:clamp(42px,10vw,54px);line-height:.98;font-weight:900;letter-spacing:-.055em;text-align:center}.booking-app-subtitle{margin:8px 0 0;color:var(--primary-light);font-size:17px;font-weight:700}
.web-trip-planner{margin:18px 0 22px;padding:16px;border:1px solid var(--primary-light);border-radius:20px;background:var(--white);box-shadow:0 8px 28px rgba(15,118,110,.12)}.web-route-field{min-height:68px;display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--primary-light);border-radius:14px;background:var(--subtle)}.web-route-field label{flex:1;min-width:0}.web-route-field label>span{display:block;margin-bottom:3px;color:var(--text-muted);font-size:10px;font-weight:900;letter-spacing:.1em}.web-route-field select{width:100%;min-height:34px;padding:0 28px 0 0;border:0;outline:0;background:transparent;color:var(--text-main);font:inherit;font-size:15px;font-weight:800}.web-route-field select:disabled{color:var(--text-light);opacity:.72}.web-route-icon{position:relative;flex:0 0 auto;width:17px;height:17px;border:2px solid var(--primary);border-radius:50%}.web-route-destination{border-radius:50% 50% 50% 0;transform:rotate(-45deg)}.web-route-destination:after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--primary)}.web-route-connector{height:14px;margin-left:20px;display:flex}.web-route-connector>span{border-left:2px dotted var(--primary-light)}
.web-intent-toggle{margin-top:14px;padding:4px;display:grid;grid-template-columns:1fr 1fr;gap:4px;border-radius:14px;background:var(--primary-dark)}.web-intent-option{min-height:46px;border:0;border-radius:11px;background:transparent;color:rgba(204,251,241,.68);font:inherit;font-size:13px;font-weight:800;cursor:pointer}.web-intent-option.active{background:var(--primary-light);color:var(--primary-dark)}.web-date-row{margin-top:12px;display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.web-date-row::-webkit-scrollbar{display:none}.web-date-chip{flex:0 0 auto;min-height:42px;padding:0 14px;border:1px solid var(--primary-light);border-radius:999px;background:var(--white);color:var(--text-muted);font:inherit;font-size:12px;font-weight:800}.web-date-chip.active{border-color:var(--primary);background:var(--primary);color:var(--white)}.web-date-none{padding:9px 2px;color:var(--text-muted);font-size:12px;font-weight:700}.web-show-buses{width:100%;min-height:52px;margin-top:14px;border:0;border-radius:13px;background:linear-gradient(135deg,var(--primary),var(--primary-mid));color:var(--white);font:inherit;font-size:14px;font-weight:900;box-shadow:0 6px 18px rgba(15,118,110,.16)}.web-show-buses:disabled{opacity:.48;box-shadow:none}.web-trip-hint{margin:9px 2px 0;color:var(--text-muted);font-size:11px;line-height:1.45;text-align:center}.web-filter-empty{margin:18px 0;padding:28px 18px;border:1px dashed var(--primary-light);border-radius:18px;background:var(--primary-xlight);text-align:center}.web-filter-empty>div{margin-bottom:8px;font-size:28px;opacity:.72}.web-filter-empty strong,.web-filter-empty span{display:block}.web-filter-empty strong{color:var(--text-main);font-size:15px}.web-filter-empty span{margin-top:4px;color:var(--text-muted);font-size:12px}.payment-option{min-height:52px}.bus-select-btn,.booking-submit{min-height:48px}@media(max-width:420px){.booking-app-hero-inner{min-height:218px;padding:30px 16px 38px}.booking-app-wordmark{font-size:42px}.web-trip-planner{margin-top:14px;padding:14px;border-radius:18px}.web-route-field{min-height:64px}}

/* CampusFlow booking hero v2 — compact live next-departure panel. Overrides v1 wordmark hero. */
.booking-app-hero-inner{min-height:0;padding:12px 16px 14px;display:block;align-items:stretch;justify-content:flex-start}
.bhero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.bhero-top-left{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;flex:1}
.bhero-greeting{font-size:1.05rem;font-weight:700;color:var(--white);margin:0;line-height:1.25;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.bhero-date{font-size:.78rem;font-weight:600;color:rgba(255,255,255,.82);white-space:nowrap;padding-top:4px;flex:0 0 auto}
.bhero-next{display:block;text-decoration:none;color:var(--white);background:rgba(255,255,255,0.11);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(204,251,241,0.22);border-radius:16px;padding:12px 14px 10px;box-shadow:0 6px 20px rgba(15,41,66,.22)}
.bhero-next-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.bhero-next-route{font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:rgba(255,255,255,.88);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.bhero-seats{font-size:.7rem;font-weight:800;padding:4px 9px;border-radius:999px;letter-spacing:.02em;white-space:nowrap;flex:0 0 auto}
.bhero-seats-green{background:rgba(22,163,74,.35);color:#dcfce7}
.bhero-seats-orange{background:rgba(217,119,6,.45);color:#fef3c7}
.bhero-seats-red{background:rgba(220,38,38,.48);color:#fee2e2}
.bhero-time{display:block;font-size:clamp(30px,9vw,40px);font-weight:900;letter-spacing:-.02em;line-height:1.05;margin:2px 0 4px;color:var(--white)}
.bhero-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.82rem;color:rgba(255,255,255,.9)}
.bhero-journey{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.bhero-fare{font-weight:800;color:var(--white);flex:0 0 auto}
.bhero-cta{display:flex;justify-content:center;align-items:center;height:46px;margin-top:10px;background:var(--white);color:var(--primary-dark);border-radius:12px;font-weight:800;font-size:.95rem;letter-spacing:.01em}
.bhero-fallback{margin:0;font-size:.92rem;font-weight:600;color:rgba(255,255,255,.92);background:rgba(255,255,255,0.09);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(204,251,241,0.20);border-radius:14px;padding:14px 16px}
.web-reset-link{display:inline-flex;justify-content:center;align-items:center;width:100%;margin-top:12px;padding:10px 14px;background:transparent;border:1px solid var(--primary-light);border-radius:12px;color:var(--primary);font-weight:700;font-size:.9rem;cursor:pointer}
.web-reset-link:hover{background:var(--primary-xlight)}

/* iPhone-safe touch targets. Kept last so it wins on small screens. */
@media (max-width:420px){
  .container{padding-left:14px;padding-right:14px}
  .bus-select-btn,
  .booking-submit,
  .web-intent-option,
  .web-date-chip,
  .route-tab,
  .web-reset-link{min-height:48px}
  .payment-option{min-height:48px;display:flex;align-items:center;gap:10px}
  .web-route-field select{min-height:48px}
  .booking-app-hero-inner{padding:12px 14px 14px}
/* CampusFlow responsive polish v2 */
/* CampusFlow responsive polish v2
   Presentation-only rules. No booking/payment/backend behavior changed. */

html, body {
  overflow-x: hidden;
}

img, svg, video, canvas {
  max-width: 100%;
}

.container, .page-hero, .booking-live-hero-inner,
.booking-app-hero-inner, .staff-drawer-inner {
  width: min(100%, 600px);
}

.web-trip-planner, .bus-list, .passenger-details,
.card, .pay-card, .agreement-card, .privacy-card {
  min-width: 0;
}

.web-route-field, .web-route-field label, .bus-item,
.bus-card-body, .bus-card-top, .bus-journey, .bus-footer,
.booking-summary, .summary-row, .payment-option,
.identity-row, .ticket-topline, .ticket-person, .ticket-actions {
  min-width: 0;
}

.web-route-field select {
  min-width: 0;
  text-overflow: ellipsis;
}

.bus-card-top, .bus-card-topline, .bus-footer, .bus-journey,
.summary-row {
  gap: 10px;
}

.bus-card-top > *, .bus-card-topline > *, .bus-footer > *,
.bus-journey > *, .summary-row > * {
  min-width: 0;
  max-width: 100%;
}

.bus-route-name, .bus-stop, .next-bus-route,
.next-bus-card strong, .ticket-route, .ticket-person-item strong {
  overflow-wrap: anywhere;
}

.payment-methods {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ticket-shell, .ticket-warning, .ticket-actions {
  width: min(100% - 32px, 520px);
}

@media (max-width: 640px) {
  body {
    padding-bottom: calc(82px + env(safe-area-inset-bottom));
  }

  .header {
    padding-left: 12px;
    padding-right: 12px;
    min-height: 56px;
  }

  .header-brand {
    gap: 7px;
    min-width: 0;
  }

  .header h1 {
    font-size: 1rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .header-actions {
    flex: 0 0 auto;
  }

  .header-login-btn, .user-chip {
    padding: 7px 10px;
    font-size: .78rem;
  }

  .container {
    padding-left: 12px;
    padding-right: 12px;
  }

  .page-hero {
    padding: 18px 12px 4px;
  }

  .page-hero h2 {
    font-size: 1.45rem;
  }

  .booking-app-hero-inner {
    min-height: 205px;
    padding: 26px 14px 32px;
  }

  .booking-app-wordmark {
    width: 100%;
    font-size: clamp(38px, 13vw, 48px);
    overflow-wrap: anywhere;
  }

  .booking-app-subtitle {
    font-size: 15px;
  }

  .web-trip-planner {
    margin: 12px 0 18px;
    padding: 12px;
    border-radius: 16px;
  }

  .web-route-field {
    min-height: 60px;
    padding: 8px 10px;
    gap: 9px;
  }

  .web-route-field select {
    font-size: 14px;
  }

  .web-intent-option {
    min-height: 44px;
    font-size: 12px;
  }

  .web-date-row {
    margin-left: -2px;
    margin-right: -2px;
  }

  .web-date-chip {
    min-height: 40px;
    padding: 0 12px;
  }

  .web-show-buses {
    min-height: 48px;
  }

  .bus-item {
    padding: 13px;
    margin-bottom: 10px;
    border-radius: 16px;
  }

  .bus-time {
    font-size: 1.25rem;
  }

  .bus-label, .availability-badge {
    max-width: 46%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .bus-footer {
    align-items: flex-start;
  }

  .payment-methods {
    grid-template-columns: 1fr;
  }

  .payment-option {
    min-height: 50px;
  }

  .booking-summary {
    padding: 13px;
  }

  .summary-row {
    display: grid;
    grid-template-columns: minmax(72px, .7fr) minmax(0, 1.3fr);
    align-items: start;
  }

  .summary-row > :last-child {
    text-align: right;
    overflow-wrap: anywhere;
  }

  .pay-card, .agreement-card, .privacy-card {
    padding: 20px 14px;
    border-radius: 18px;
  }

  .pay-steps {
    padding-left: 1.25rem;
  }

  .ticket-shell, .ticket-warning, .ticket-actions {
    width: min(100% - 20px, 520px);
  }

  .ticket-top {
    padding: 19px 16px;
  }

  .ticket-topline {
    gap: 8px;
  }

  .ticket-route {
    font-size: 1.05rem;
    line-height: 1.2;
  }

  .ticket-bus-pill {
    max-width: 42%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .ticket-time {
    margin-top: 16px;
    font-size: 2.15rem;
  }

  .ticket-bottom {
    padding: 4px 16px 22px;
  }

  .ticket-person {
    grid-template-columns: 1fr;
    gap: 10px;
    margin-bottom: 16px;
  }

  .ticket-person-item strong {
    white-space: normal;
  }

  .booking-code-boxes {
    gap: 3px;
  }

  .booking-code-boxes > span {
    min-width: 23px;
    height: 30px;
  }

  .ticket-qr {
    width: min(210px, 64vw);
  }

  .auth-bg {
    padding: 20px 12px;
  }

  .auth-card {
    padding: 26px 18px;
    border-radius: 20px;
  }

  .auth-brand {
    margin-bottom: 18px;
  }
}

@media (max-width: 390px) {
  .header-login-btn, .user-chip {
    padding-left: 8px;
    padding-right: 8px;
  }

  .booking-app-wordmark {
    font-size: 38px;
  }

  .web-route-field {
    min-height: 58px;
  }

  .bus-label, .availability-badge {
    max-width: 40%;
  }

  .ticket-route {
    font-size: 1rem;
  }

  .ticket-time {
    font-size: 2rem;
  }
}
