:root{--ink:#14213d;--muted:#68738a;--orange:#f36b32;--orange-dark:#d9531d;--cream:#fff8ef;--line:#e7e9ee;--green:#1d8f65;--shadow:0 18px 50px rgba(20,33,61,.12)}
.brand-logo{width:54px;height:54px;object-fit:contain;border-radius:50%;flex:0 0 auto}
.brand-logo{width:96px;height:54px;background:#fff;object-fit:contain;border-radius:12px}
.admin-heading{align-items:center;margin-bottom:18px}.admin-subtitle{margin:8px 0 0;color:var(--muted);font-size:14px}.admin-tabs{display:flex;gap:8px;margin-bottom:24px;padding:7px;background:#eef2f8;border:1px solid #dde3ed;border-radius:14px;overflow-x:auto}.admin-tab{border:0;background:transparent;color:var(--muted);padding:11px 18px;border-radius:9px;font-weight:800;white-space:nowrap}.admin-tab:hover{color:var(--ink);background:rgba(255,255,255,.65)}.admin-tab.active{color:#fff;background:var(--ink);box-shadow:0 5px 14px rgba(20,33,61,.18)}.admin-pane{display:grid;gap:22px}.admin-pane[hidden]{display:none!important}.availability-panel{margin:0}.availability-panel .origin-booking-controls{margin:18px 0 0}.dashboard-guide{margin:0}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.guide-grid>div{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#f5f7fb;border:1px solid #e6eaf1;border-radius:12px}.guide-grid b{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:50%;background:var(--ink);color:#fff}.guide-grid span{font-size:13px;line-height:1.5;color:var(--muted)}.admin-list-panel{min-height:220px}.admin-list-panel>.panel-title{padding-bottom:8px;border-bottom:1px solid var(--line)}.admin-list-panel .admin-row{padding:16px 0}.admin-pane .route-builder,.admin-pane .user-builder{margin:0}.header-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}@media(max-width:800px){.admin-heading{align-items:flex-start}.header-actions{justify-content:flex-start}.guide-grid{grid-template-columns:1fr}.admin-tabs{margin-left:-2px;margin-right:-2px}.admin-tab{padding:10px 14px}}@media(max-width:520px){.header-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.header-actions button{width:100%;padding:12px 10px}.header-actions #admin-logout{grid-column:1/-1}.admin-tabs{border-radius:10px}.panel{padding:18px}.admin-list-panel .admin-row{align-items:flex-start;flex-direction:column}.admin-list-panel .row-actions{justify-content:flex-start;width:100%}}
.fare-origin-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0 24px;padding:6px;background:#f1f4f8;border-radius:12px}.fare-origin-tab{display:flex;justify-content:center;align-items:center;gap:8px;border:0;background:transparent;color:var(--muted);padding:11px;border-radius:8px;font-weight:800}.fare-origin-tab span{display:grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:12px;background:#dfe5ee;color:#526078;font-size:11px}.fare-origin-tab.active{background:#fff;color:var(--ink);box-shadow:0 4px 12px rgba(20,33,61,.1)}.fare-origin-tab.active span{background:var(--orange);color:#fff}.fare-origin-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:2px solid var(--ink)}.fare-origin-heading h3{margin:0;font-size:23px}.fare-directory-list{max-height:620px;overflow:auto;padding-right:5px}.fare-directory-row .row-actions>strong{min-width:90px;text-align:right;color:var(--ink)}.fare-empty{padding:28px;text-align:center}@media(max-width:620px){.fare-origin-tabs{grid-template-columns:1fr}.fare-origin-tab{justify-content:space-between}.fare-origin-heading{align-items:flex-start;flex-direction:column}.fare-directory-list{max-height:none}.fare-directory-row .row-actions>strong{text-align:left}}
[hidden]{display:none!important}
.user-builder{margin-bottom:22px}.user-form{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end;margin-top:18px}.user-form label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.admin-user-list{margin-top:18px}.user-role{font-size:11px;padding:4px 8px;border-radius:12px;background:#e5f5ef;color:var(--green);font-weight:800}.report-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.report-stats>div{padding:18px;background:var(--cream);border-radius:12px}.report-stats span{display:block;color:var(--muted);font-size:12px}.report-stats strong{display:block;font-size:25px;margin-top:6px}.report-table-wrap{overflow:auto;max-height:360px}.report-table{width:100%;border-collapse:collapse;font-size:13px}.report-table th,.report-table td{padding:11px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.report-table td.report-names{white-space:normal;min-width:210px}.report-table th{position:sticky;top:0;background:#fff;color:var(--muted);font-size:11px;text-transform:uppercase}.ticket-total{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;margin:0 0 15px;border-radius:10px;background:var(--cream)}.ticket-total span{color:var(--muted);font-size:12px;text-transform:uppercase}.ticket-total strong{font-size:22px;color:var(--orange)}.ticket-lookup{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:end;margin-bottom:8px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:14px}.ticket-lookup label{display:grid;gap:6px}.ticket-lookup label span{font-size:12px;font-weight:700;color:var(--muted)}.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.details-grid>div,.details-names{padding:14px;background:var(--cream);border-radius:10px}.details-grid span,.details-names>span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;margin-bottom:5px}.details-names p{margin:5px 0}@media(max-width:700px){.user-form{grid-template-columns:1fr}.report-stats{grid-template-columns:1fr}.header-actions{flex-wrap:wrap}.ticket-lookup{grid-template-columns:1fr}.details-grid{grid-template-columns:1fr}}
.pink-bus{animation:pinkDrive 2.8s ease-in-out infinite}.white-red-bus{animation:whiteDrive 3.1s ease-in-out .25s infinite}.blue-bus{animation:blueDrive 2.6s ease-in-out .5s infinite}.bus.coach i{animation:wheelTurn .85s linear infinite}.bus.coach i:after{content:"";position:absolute;left:50%;top:2px;width:2px;height:19px;background:#9fb4c0;transform:translateX(-50%)}.road{background:repeating-linear-gradient(100deg,#566177 0 48px,#657086 48px 78px);background-size:180px 100%;animation:roadMove 1.2s linear infinite}@keyframes pinkDrive{0%,100%{transform:scale(.55) translate(0,0)}50%{transform:scale(.55) translate(8px,-3px)}}@keyframes whiteDrive{0%,100%{transform:scale(.55) translate(0,0)}50%{transform:scale(.55) translate(8px,-4px)}}@keyframes blueDrive{0%,100%{transform:scale(.72) translate(0,0)}50%{transform:scale(.72) translate(10px,-4px)}}@keyframes wheelTurn{to{transform:rotate(360deg)}}@keyframes roadMove{to{background-position:-180px 0}}@media(max-width:1100px){@keyframes pinkDrive{0%,100%{transform:scale(.42) translate(0,0)}50%{transform:scale(.42) translate(8px,-3px)}}@keyframes whiteDrive{0%,100%{transform:scale(.45) translate(0,0)}50%{transform:scale(.45) translate(8px,-3px)}}@keyframes blueDrive{0%,100%{transform:scale(.62) translate(0,0)}50%{transform:scale(.62) translate(9px,-4px)}}}@media(prefers-reduced-motion:reduce){.pink-bus,.white-red-bus,.blue-bus,.bus.coach i,.road{animation:none}}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:#fcfcfd}button,input,select{font:inherit}button{cursor:pointer}.topbar{height:72px;padding:0 max(5vw,24px);display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-size:21px;font-weight:800}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:var(--orange);color:#fff;transform:rotate(-5deg)}nav{display:flex;align-items:center;gap:4px}.nav-link{border:0;background:transparent;color:var(--muted);padding:10px 14px;border-radius:9px}.nav-link:hover,.nav-link.active{color:var(--ink);background:var(--cream)}.count{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:var(--orange);color:#fff;font-size:11px;margin-left:3px}.view{display:none}.view.active{display:block}.hero{min-height:420px;padding:70px max(7vw,30px) 125px;display:grid;grid-template-columns:1fr 1fr;align-items:center;background:linear-gradient(120deg,#fff8ef,#fff1df);overflow:hidden;position:relative}.hero-copy{position:relative;z-index:2}.eyebrow{margin:0 0 10px;text-transform:uppercase;letter-spacing:.17em;font-size:12px;font-weight:800;color:var(--orange)}h1,h2,p{margin-top:0}.hero h1{font-size:clamp(42px,6vw,76px);line-height:.98;letter-spacing:-.055em;margin-bottom:22px}.hero-copy>p:last-child{max-width:510px;color:var(--muted);font-size:18px;line-height:1.6}.hero-art{position:relative;height:300px}.sun{position:absolute;right:18%;top:5%;width:85px;height:85px;border-radius:50%;background:#ffc857}.cloud{position:absolute;width:90px;height:28px;border-radius:30px;background:#fff;box-shadow:25px -14px 0 4px #fff}.cloud.one{right:4%;top:8%}.cloud.two{left:8%;top:23%;transform:scale(.7)}.mountain{position:absolute;bottom:40px;border-left:170px solid transparent;border-right:170px solid transparent;border-bottom:200px solid #c8d6c0}.mountain.back{right:-70px;transform:scale(.8);border-bottom-color:#dce7d5}.mountain.front{left:40px}.road{position:absolute;left:-10%;right:-20%;bottom:0;height:55px;background:#566177;transform:skewX(-25deg)}.bus{position:absolute;z-index:2;left:12%;bottom:35px;width:300px;height:116px;border-radius:22px 22px 12px 12px;background:var(--orange);box-shadow:0 16px 25px rgba(20,33,61,.22);display:flex;gap:8px;padding:18px 18px}.bus-window{width:56px;height:44px;background:#d7edf2;border-radius:7px 7px 3px 3px;border:4px solid #fff}.bus-door{margin-left:auto;width:42px;height:79px;background:#d7edf2;border:4px solid #fff;border-radius:6px}.bus i{position:absolute;bottom:-13px;width:32px;height:32px;border-radius:50%;background:#273249;border:7px solid #fff}.bus i:first-of-type{left:43px}.bus i:last-of-type{right:43px}.search-card{width:min(1160px,90%);margin:-58px auto 0;background:#fff;position:relative;z-index:5;box-shadow:var(--shadow);border-radius:18px;padding:22px;display:grid;grid-template-columns:1.2fr 40px 1.2fr 1fr .75fr auto;gap:12px;align-items:end}.search-card label{display:grid;gap:7px}.search-card label span{font-size:12px;font-weight:700;color:var(--muted)}select,input{width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);padding:13px;border-radius:9px;outline:none}.search-card select:focus,.search-card input:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(243,107,50,.12)}.swap{width:36px;height:36px;margin-bottom:4px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--orange);font-size:20px}.primary,.secondary{border:0;border-radius:10px;padding:14px 20px;font-weight:800}.primary{background:var(--orange);color:#fff}.primary:hover{background:var(--orange-dark)}.secondary{background:#fff;border:1px solid var(--line);color:var(--ink)}.content-section{width:min(1160px,90%);margin:0 auto;padding:70px 0}.standalone{min-height:calc(100vh - 72px)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:25px}.section-heading h1,.section-heading h2{margin:0;font-size:34px;letter-spacing:-.03em}.section-heading>p{color:var(--muted)}.trip-list{display:grid;gap:14px}.trip-card{display:grid;grid-template-columns:1.1fr 1.4fr .8fr auto;gap:28px;align-items:center;padding:22px 24px;border:1px solid var(--line);background:#fff;border-radius:15px;transition:.2s}.trip-card:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(20,33,61,.08);border-color:#ffd1bc}.operator{display:flex;align-items:center;gap:12px}.operator-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:var(--cream);font-size:22px}.operator strong,.time strong{display:block}.small{font-size:12px;color:var(--muted);margin-top:4px}.route-time{display:flex;align-items:center;gap:16px}.time strong{font-size:21px}.route-line{flex:1;min-width:90px;height:2px;background:var(--line);position:relative}.route-line:before,.route-line:after{content:"";position:absolute;top:-4px;width:9px;height:9px;border-radius:50%;background:var(--orange)}.route-line:before{left:0}.route-line:after{right:0}.fare strong{display:block;font-size:23px}.availability{font-size:12px;color:var(--green);font-weight:700}.empty{padding:50px;text-align:center;border:1px dashed #ccd1dc;border-radius:16px;color:var(--muted)}dialog{width:min(820px,94vw);border:0;border-radius:20px;padding:0;box-shadow:0 30px 90px rgba(20,33,61,.3)}dialog::backdrop{background:rgba(20,33,61,.6);backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:16px;top:12px;border:0;background:transparent;font-size:28px;color:var(--muted);z-index:2}.dialog-content{padding:34px}.dialog-content h2{font-size:30px}.booking-summary{padding:16px;background:var(--cream);border-radius:12px;margin-bottom:22px}.seat-layout{background:#f5f6f8;border-radius:18px;padding:25px;max-width:420px;margin:20px auto}.driver{text-align:right;padding:0 20px 18px;color:var(--muted);font-size:13px}.seats{display:grid;grid-template-columns:repeat(2,1fr) 30px repeat(2,1fr);gap:10px}.seat{height:42px;border:1px solid #bcc3cf;background:#fff;border-radius:8px;color:var(--ink);font-weight:700}.seat:nth-child(4n+3){grid-column:4}.seat:nth-child(4n+4){grid-column:5}.seat.taken{background:#dfe2e7;color:#9ba2af;cursor:not-allowed}.seat.selected{background:var(--orange);border-color:var(--orange);color:#fff}.legend{display:flex;justify-content:center;gap:18px;font-size:12px;color:var(--muted);margin-top:18px}.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:5px;border:1px solid #bbb}.legend .sel{background:var(--orange);border-color:var(--orange)}.legend .occ{background:#dfe2e7}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.form-grid .full{grid-column:1/-1}.dialog-actions{display:flex;justify-content:space-between;align-items:center;margin-top:24px}.total strong{font-size:26px}.ticket-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:20px}.ticket{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 10px 25px rgba(20,33,61,.06)}.ticket-top{background:var(--ink);color:#fff;padding:24px}.ticket-top .eyebrow{color:#ffb38e}.ticket-route{display:flex;justify-content:space-between;align-items:center;font-size:24px;font-weight:800}.ticket-route span:nth-child(2){color:var(--orange)}.ticket-body{padding:22px}.ticket-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:20px}.ticket-meta span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase}.ticket-meta strong{display:block;margin-top:4px}.ticket-code{display:flex;justify-content:space-between;align-items:center;padding-top:18px;border-top:1px dashed #c7ccd5}.qr{font-family:monospace;letter-spacing:-3px;font-size:27px;line-height:.7;width:58px;overflow:hidden}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.stat{padding:22px;background:#fff;border:1px solid var(--line);border-radius:14px}.stat span{display:block;color:var(--muted);font-size:12px}.stat strong{display:block;font-size:30px;margin-top:7px}.admin-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:22px}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}.panel h2{font-size:19px}.admin-row{display:flex;justify-content:space-between;gap:15px;padding:14px 0;border-top:1px solid var(--line)}.admin-row:first-child{border-top:0}.admin-row p{margin:0}.badge{font-size:11px;padding:5px 8px;border-radius:12px;background:#e5f5ef;color:var(--green);font-weight:700;height:max-content}#toast{position:fixed;right:24px;bottom:24px;z-index:50;background:var(--ink);color:#fff;padding:13px 18px;border-radius:10px;transform:translateY(100px);opacity:0;transition:.25s}#toast.show{transform:none;opacity:1}
@media(max-width:900px){.hero{grid-template-columns:1fr;padding-top:50px}.hero-art{display:none}.search-card{grid-template-columns:1fr 1fr;margin-top:-75px}.swap{display:none}.trip-card{grid-template-columns:1fr 1.5fr auto}.fare{display:none}.stats{grid-template-columns:1fr 1fr}.admin-grid{grid-template-columns:1fr}}
@media(max-width:620px){.topbar{height:auto;align-items:flex-start;padding:14px 18px;gap:8px}.brand span:last-child{display:none}nav{overflow:auto}.nav-link{white-space:nowrap;padding:9px}.hero{min-height:350px;padding:45px 24px 110px}.hero h1{font-size:47px}.search-card{grid-template-columns:1fr;width:92%;padding:16px}.content-section{width:92%;padding:50px 0}.section-heading{align-items:flex-start;flex-direction:column}.trip-card{grid-template-columns:1fr;gap:15px}.route-time{order:-1}.trip-card .primary{width:100%}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.stats{grid-template-columns:1fr 1fr}.stat strong{font-size:23px}.ticket-list{grid-template-columns:1fr}.dialog-content{padding:28px 18px}.seat-layout{padding:18px 10px}.admin-grid{display:block}.panel{margin-bottom:18px}}
.route-builder{margin-bottom:22px}.panel-title{display:flex;justify-content:space-between;align-items:start}.panel-title h2{font-size:24px;margin:0}.route-form{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:end;margin-top:20px}.route-form label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.route-form .primary{height:46px}.route-form-actions,.row-actions{display:flex;gap:8px}.row-actions button{border:1px solid var(--line);background:#fff;padding:7px 10px;border-radius:8px;font-size:12px;font-weight:700}.row-actions button:hover{border-color:var(--orange);color:var(--orange)}.row-actions .danger:hover{border-color:#c93e3e;color:#c93e3e}
@media(max-width:900px){.route-form{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.route-form{grid-template-columns:1fr}.panel-title{display:block}}
.primary:disabled{background:#a7adb9;cursor:not-allowed}.availability{display:block}.trip-card:has(.primary:disabled){background:#f6f6f7;opacity:.82}.row-actions{align-items:center;flex-wrap:wrap;justify-content:flex-end}
.booking-closed{background:#c93e3e}.booking-closed:hover{background:#a82f2f}.driver{text-align:left}.seat.booked{background:#c93e3e;color:#fff;border-color:#c93e3e;cursor:not-allowed}.seat.manual{background:#f2a33a;color:#fff;border-color:#f2a33a}.admin-seat-note{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:16px;font-size:12px;color:var(--muted)}.admin-seat-date{display:grid;grid-template-columns:1fr 180px;gap:15px;align-items:end;margin:18px 0}.admin-seat-date label{display:grid;gap:6px;font-size:12px;font-weight:700;color:var(--muted)}
.bus{background:#79cbe8}.search-card{grid-template-columns:1.2fr 1.2fr 1fr .75fr auto}
@media(max-width:900px){.search-card{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.search-card{grid-template-columns:1fr}}
.passenger-names{padding:15px 0;margin-bottom:15px;border-top:1px solid var(--line)}.passenger-names>div{padding:3px 0}
.bus.coach{width:335px;height:122px;border-radius:34px 16px 12px 12px;background:linear-gradient(180deg,#bcecff 0 63%,#74c9e8 63%);padding:0;border:3px solid #fff;overflow:visible}.coach-windshield{position:absolute;left:15px;top:13px;width:63px;height:48px;background:linear-gradient(135deg,#e8fbff,#73a9bd);border:4px solid #fff;border-radius:22px 5px 5px 4px;transform:skewX(-8deg)}.coach-windows{position:absolute;left:86px;right:55px;top:13px;height:49px;display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.coach-windows span{background:linear-gradient(145deg,#e9fbff,#7caabd);border:3px solid #fff}.coach-windows span:first-child{border-radius:5px 0 0 5px}.coach-windows span:last-child{border-radius:0 5px 5px 0}.coach-door{position:absolute;right:13px;top:13px;width:35px;height:82px;background:linear-gradient(145deg,#e9fbff,#8db8c8);border:3px solid #fff;border-radius:5px 10px 4px 4px}.coach-stripe{position:absolute;left:13px;right:55px;top:72px;height:9px;background:#278eb9;border-radius:8px;transform:skewX(-15deg)}.coach-light{position:absolute;bottom:20px;width:13px;height:9px;border-radius:5px;background:#fff5a8;box-shadow:0 0 8px #fff5a8}.coach-light.front{left:5px}.coach-light.rear{right:5px;background:#ff826e;box-shadow:0 0 7px #ff826e}.bus.coach i{bottom:-15px;width:35px;height:35px;border:6px solid #edf9fd;background:#263850}.bus.coach i:first-of-type{left:52px}.bus.coach i:last-of-type{right:55px}
.login-card{width:min(430px,100%);margin:30px auto;padding:38px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);text-align:center}.login-icon{font-size:38px;margin-bottom:14px}.login-card>p{color:var(--muted)}.login-card form{display:grid;gap:14px;text-align:left;margin-top:25px}.login-card form label{display:grid;gap:7px;font-size:12px;font-weight:700;color:var(--muted)}.login-card form .primary{margin-top:5px}.login-error{color:#c93e3e!important;min-height:18px;margin:0;text-align:center;font-size:13px}.demo-credentials{margin:18px 0 0;font-size:12px}.header-actions{display:flex;gap:8px}
.hero-art:before{content:"";position:absolute;inset:-40px -80px -10px;background:linear-gradient(150deg,transparent 0 54%,rgba(0,56,168,.07) 54% 62%,rgba(206,17,38,.07) 62% 70%,transparent 70%);pointer-events:none}.ph-sun{box-shadow:0 0 0 12px rgba(255,200,87,.18),0 0 0 25px rgba(255,200,87,.08)}.ph-sun b{position:absolute;color:#fff;font-size:9px}.ph-sun b:nth-child(1){left:13px;top:38px}.ph-sun b:nth-child(2){right:14px;top:38px}.ph-sun b:nth-child(3){left:38px;top:11px}.palm{position:absolute;bottom:43px;width:7px;height:96px;background:#426d50;border-radius:5px;transform:rotate(7deg);z-index:1}.palm:before,.palm:after,.palm span:before,.palm span:after{content:"";position:absolute;bottom:77px;width:55px;height:15px;background:#4f8259;border-radius:100% 0 100% 0;transform-origin:left center}.palm:before{transform:rotate(-32deg)}.palm:after{transform:rotate(25deg)}.palm span:before{transform:rotate(76deg)}.palm span:after{transform:rotate(132deg)}.palm-one{right:5%;transform:rotate(7deg) scale(.85)}.palm-two{left:8%;transform:rotate(-5deg) scale(.65)}.bus.coach.pink-bus{left:0;bottom:31px;width:255px;height:96px;background:linear-gradient(180deg,#ffd5e7 0 63%,#f38bb7 63%);transform:scale(.55);transform-origin:left bottom;z-index:2}.pink-bus .coach-stripe{background:#d94c89}.pink-bus .coach-windshield{width:50px;height:38px}.pink-bus .coach-windows{left:72px;right:48px;height:39px}.pink-bus .coach-door{width:31px;height:65px}.pink-bus.bus i:first-of-type{left:40px}.pink-bus.bus i:last-of-type{right:45px}.bus.coach.white-red-bus{left:24%;bottom:38px;background:linear-gradient(180deg,#fff 0 63%,#f7f7f5 63%);z-index:3;transform:scale(.55);transform-origin:left bottom}.white-red-bus .coach-stripe{background:#ce1126;height:12px;top:68px}.white-red-bus .coach-light.front{background:#ffe56e}.white-red-bus .coach-light.rear{background:#ce1126}.bus.coach.blue-bus{left:56%;bottom:32px;background:linear-gradient(180deg,#bcecff 0 63%,#74c9e8 63%);z-index:5;transform:scale(.72);transform-origin:left bottom}.blue-bus .coach-stripe{background:#278eb9}@media(max-width:1100px){.bus.coach.pink-bus{left:0;transform:scale(.42)}.bus.coach.white-red-bus{left:22%;transform:scale(.45)}.bus.coach.blue-bus{left:52%;transform:scale(.62)}}
.eod-button{border:0;border-radius:10px;padding:14px 20px;font-weight:800;background:#9f2f35;color:#fff}.eod-button:hover{background:#7f2227}.history-title{margin-top:30px}.eod-history{border:1px solid var(--line);border-radius:12px;padding:0 16px;max-height:240px;overflow:auto}.closed-badge,.open-badge{display:inline-block;margin-left:7px;padding:3px 7px;border-radius:10px;font-size:9px;vertical-align:2px}.closed-badge{background:#eceef2;color:#687083}.open-badge{background:#e5f5ef;color:var(--green)}
.origin-booking-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}.origin-booking-controls>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff}.origin-booking-controls span{font-weight:800}.origin-booking-controls button{border:0;border-radius:9px;padding:10px 13px;background:var(--orange);color:#fff;font-weight:800}.origin-booking-controls button.booking-closed{background:#1d8f65}@media(max-width:700px){.origin-booking-controls{grid-template-columns:1fr}}
.gcash-payment{grid-column:1/-1;margin-top:8px;padding:20px;border:1px solid #b8d8cf;border-radius:14px;background:#f1fbf7}.gcash-payment label{display:grid;gap:7px}.gcash-number{display:flex;justify-content:space-between;align-items:center;padding:14px;margin:12px 0;background:#fff;border-radius:10px}.gcash-number span{font-size:12px;color:var(--muted)}.gcash-number strong{font-size:24px;color:#087a59}.payment-banner{padding:10px 16px;text-align:center;font-size:12px;font-weight:800}.payment-banner.pending,.payment-badge.pending{background:#fff1cc;color:#8a6200}.payment-banner.paid,.payment-badge.paid{background:#e5f5ef;color:var(--green)}.payment-banner.rejected,.payment-badge.rejected{background:#fde7e7;color:#a52e35}.payment-badge{display:inline-block;margin-left:7px;padding:3px 7px;border-radius:10px;font-size:9px;vertical-align:2px}.unconfirmed-ticket .ticket-top{background:#68738a}.danger-action{border:0;border-radius:10px;padding:14px 20px;font-weight:800;background:#a52e35;color:#fff}
.payment-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.payment-choice label{display:flex;align-items:flex-start;gap:10px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:10px;cursor:pointer}.payment-choice input{width:auto;margin-top:3px}.payment-choice strong,.payment-choice small{display:block}.payment-choice small{margin-top:4px;color:var(--muted)}.payment-due{padding:12px 14px;background:#dff5eb;border-radius:9px;margin-bottom:9px}.nonrefundable-note{color:#a52e35;font-size:12px;font-weight:800}.payment-banner.reserved,.payment-badge.reserved{background:#e8edff;color:#354f9d}.payment-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 15px}.payment-breakdown>div{padding:11px;background:var(--cream);border-radius:8px}.payment-breakdown span{display:block;font-size:10px;color:var(--muted);text-transform:uppercase}.payment-breakdown strong{display:block;margin-top:4px}@media(max-width:620px){.payment-choice,.payment-breakdown{grid-template-columns:1fr}}
.payment-choice label:first-child small:after{content:" Remaining balance should be paid before departure.";font-weight:700;color:#354f9d}.balance-due-note{padding:11px 13px;margin:0 0 10px;border-radius:8px;background:#e8edff;color:#354f9d;font-size:12px;font-weight:800}
.payment-choice label:nth-child(2) small:after{content:" Full payments are non-refundable. Rescheduling may be accommodated provided the Admin team is notified before the scheduled travel date.";display:block;margin-top:5px;font-weight:700;color:#a52e35}.full-payment-policy{padding:11px 13px;margin:0 0 10px;border-radius:8px;background:#fff1ed;color:#8e3c2e;font-size:12px;font-weight:800;line-height:1.5}
.fully-paid-button{border:0;border-radius:10px;padding:14px 20px;font-weight:800;background:#1d8f65;color:#fff}.fully-paid-button:hover{background:#147451}
.terminal-details{margin-top:13px;padding-top:12px;border-top:1px solid rgba(20,33,61,.12)}.terminal-details span,.ticket-terminal span{display:block;margin-bottom:4px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.terminal-details strong{font-size:13px;line-height:1.5}.ticket-terminal{padding:13px;margin:0 0 15px;border-radius:9px;background:#f3f7ff}.ticket-terminal strong{display:block;font-size:13px;line-height:1.5}.terminal-admin-detail{grid-column:1/-1}
.passenger-support-footer{padding:24px max(5vw,24px);background:var(--ink);color:#fff;text-align:center}.passenger-support-footer div{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}.passenger-support-footer span{color:#dce2ef}.passenger-support-footer a{color:#ffb38e;font-weight:800;text-decoration:none}.passenger-support-footer a:hover{text-decoration:underline}
.sound-toggle{border:1px solid #d9deea;border-radius:18px;padding:7px 11px;background:#f7f8fb;color:var(--muted);font-size:12px;font-weight:800;white-space:nowrap}.sound-toggle[aria-pressed="true"]{border-color:#f6a680;background:#fff3ed;color:var(--orange)}
.gcash-reference-section{display:block;padding-top:20px}.gcash-reference-section>div{min-width:0}.gcash-reference-section .small{display:block;margin-bottom:8px}.gcash-reference-section strong{display:block;max-width:100%;overflow-wrap:anywhere;word-break:break-word;line-height:1.45;margin-bottom:8px}
.gcash-account{text-align:right}.gcash-account small,.gcash-account b,.gcash-account strong{display:block}.gcash-account small{margin-bottom:3px;color:var(--muted);font-size:10px;text-transform:uppercase}.gcash-account b{margin-bottom:3px;color:#087a59;font-size:15px}.gcash-account strong{font-size:24px}
.hero-art .sun{animation:sunTravel 5s ease-in-out infinite}.hero-art .mountain.back{animation:mountainBackTravel 11s ease-in-out infinite}.hero-art .mountain.front{animation:mountainFrontTravel 8s ease-in-out infinite}.hero-art .palm-one{animation:palmOneSway 3.8s ease-in-out infinite;transform-origin:center bottom}.hero-art .palm-two{animation:palmTwoSway 4.4s ease-in-out .4s infinite;transform-origin:center bottom}.hero-art .cloud.one{animation:cloudTravelOne 13s ease-in-out infinite}.hero-art .cloud.two{animation:cloudTravelTwo 16s ease-in-out infinite}@keyframes sunTravel{0%,100%{transform:translate(0,0) rotate(0)}50%{transform:translate(-10px,-7px) rotate(5deg)}}@keyframes mountainBackTravel{0%,100%{transform:translateX(0) scale(.8)}50%{transform:translateX(-12px) scale(.8)}}@keyframes mountainFrontTravel{0%,100%{transform:translateX(0)}50%{transform:translateX(-18px)}}@keyframes palmOneSway{0%,100%{transform:rotate(7deg) scale(.85)}50%{transform:rotate(11deg) scale(.85)}}@keyframes palmTwoSway{0%,100%{transform:rotate(-5deg) scale(.65)}50%{transform:rotate(-10deg) scale(.65)}}@keyframes cloudTravelOne{0%,100%{transform:translateX(0)}50%{transform:translateX(-24px)}}@keyframes cloudTravelTwo{0%,100%{transform:translateX(0) scale(.7)}50%{transform:translateX(28px) scale(.7)}}@media(prefers-reduced-motion:reduce){.hero-art .sun,.hero-art .mountain,.hero-art .palm,.hero-art .cloud{animation:none}}
.hero-art .road{overflow:hidden;z-index:1}.hero-art .road:after{content:"";position:absolute;left:0;right:0;top:52%;height:5px;z-index:0;transform:translateY(-50%);background:repeating-linear-gradient(90deg,#fff7c7 0 42px,transparent 42px 76px);background-size:152px 100%;filter:drop-shadow(0 1px 0 rgba(0,0,0,.18));animation:roadLineMove .7s linear infinite}.hero-art .bus{z-index:2}@keyframes roadLineMove{to{background-position:-152px 0}}@media(prefers-reduced-motion:reduce){.hero-art .road:after{animation:none}}
.hero-art .pink-bus,.hero-art .white-red-bus,.hero-art .blue-bus,.hero-art .bus.coach i,.hero-art .road,.hero-art .sun,.hero-art .mountain,.hero-art .palm,.hero-art .cloud{animation-duration:.7s!important}
.hero-art .sun{animation-name:sunLoop!important;animation-timing-function:linear!important}.hero-art .mountain.back{animation-name:mountainBackLoop!important;animation-timing-function:linear!important}.hero-art .mountain.front{animation-name:mountainFrontLoop!important;animation-timing-function:linear!important}.hero-art .palm-one{animation-name:palmOneLoop!important;animation-timing-function:linear!important}.hero-art .palm-two{animation-name:palmTwoLoop!important;animation-timing-function:linear!important}@keyframes sunLoop{0%,100%{transform:translate(0,0) rotate(0)}25%{transform:translate(8px,-5px) rotate(2deg)}50%{transform:translate(0,-9px) rotate(4deg)}75%{transform:translate(-8px,-5px) rotate(2deg)}}@keyframes mountainBackLoop{0%,100%{transform:translate(0,0) scale(.8)}25%{transform:translate(-7px,-2px) scale(.8)}50%{transform:translate(-13px,0) scale(.8)}75%{transform:translate(-7px,2px) scale(.8)}}@keyframes mountainFrontLoop{0%,100%{transform:translate(0,0)}25%{transform:translate(-10px,-2px)}50%{transform:translate(-19px,0)}75%{transform:translate(-10px,2px)}}@keyframes palmOneLoop{0%,100%{transform:rotate(7deg) scale(.85)}25%{transform:rotate(10deg) scale(.85)}50%{transform:rotate(7deg) scale(.85)}75%{transform:rotate(4deg) scale(.85)}}@keyframes palmTwoLoop{0%,100%{transform:rotate(-5deg) scale(.65)}25%{transform:rotate(-9deg) scale(.65)}50%{transform:rotate(-5deg) scale(.65)}75%{transform:rotate(-1deg) scale(.65)}}
@keyframes sunLoop{from{transform:translateX(48vw) rotate(0)}to{transform:translateX(-48vw) rotate(8deg)}}@keyframes mountainBackLoop{from{transform:translateX(55vw) scale(.8)}to{transform:translateX(-55vw) scale(.8)}}@keyframes mountainFrontLoop{from{transform:translateX(50vw)}to{transform:translateX(-58vw)}}@keyframes palmOneLoop{from{transform:translateX(48vw) rotate(7deg) scale(.85)}to{transform:translateX(-55vw) rotate(7deg) scale(.85)}}@keyframes palmTwoLoop{from{transform:translateX(55vw) rotate(-5deg) scale(.65)}to{transform:translateX(-48vw) rotate(-5deg) scale(.65)}}
.hero-art{overflow:hidden}.hero-art .sun{animation-duration:18s!important;z-index:0}.hero-art .mountain.back{animation-duration:15s!important;z-index:0}.hero-art .mountain.front{animation-duration:13s!important;z-index:0}.hero-art .palm-one{animation-duration:12s!important;z-index:0}.hero-art .palm-two{animation-duration:13s!important;z-index:0}.hero-art .road{z-index:2}.hero-art .bus{z-index:3}
.hero-art .bus.coach.pink-bus{bottom:31px;z-index:4}.hero-art .bus.coach.white-red-bus{z-index:4}.hero-art .bus.coach.blue-bus{z-index:5}
.hero-art .bus.coach{translate:0 0}.hero-art .bus.coach.pink-bus{left:5%;width:335px;height:122px;scale:.87}.hero-art .bus.coach.white-red-bus{left:33%;scale:.87}.hero-art .bus.coach.blue-bus{left:60%}.hero-art .pink-bus .coach-windshield{width:63px;height:48px}.hero-art .pink-bus .coach-windows{left:86px;right:55px;height:49px}.hero-art .pink-bus .coach-door{width:35px;height:82px}.hero-art .pink-bus.bus i:first-of-type{left:52px}.hero-art .pink-bus.bus i:last-of-type{right:55px}
.hero-art .pink-bus,.hero-art .white-red-bus,.hero-art .blue-bus{animation-duration:1.4s!important}.hero-art .bus.coach i{animation-duration:1.1s!important}
.hero-art .cloud.one{animation-duration:14s!important}.hero-art .cloud.two{animation-duration:17s!important}.hero-art .road,.hero-art .road:after{animation-duration:1.1s!important}
#user-form{grid-template-columns:1.2fr 1fr 1fr auto}
@media(max-width:900px){#user-form{grid-template-columns:1fr 1fr}}
@media(max-width:620px){#user-form{grid-template-columns:1fr}}

/* 3D visual system */
:root{--depth-navy:#091a3b;--depth-blue:#123b78;--depth-sky:#dff4ff;--depth-highlight:rgba(255,255,255,.92);--depth-shadow:rgba(7,25,58,.2);--shadow-3d:0 22px 45px rgba(7,25,58,.16),0 6px 12px rgba(7,25,58,.1)}
html{background:#e8f1fa}body{min-height:100vh;background:radial-gradient(circle at 12% 5%,rgba(119,203,232,.28),transparent 29%),radial-gradient(circle at 92% 18%,rgba(255,200,87,.2),transparent 24%),linear-gradient(145deg,#f9fcff 0,#edf5fb 52%,#e8f0f8 100%);background-attachment:fixed}
.topbar{height:78px;background:linear-gradient(180deg,rgba(255,255,255,.97),rgba(240,247,253,.94));border-bottom:1px solid rgba(255,255,255,.95);box-shadow:0 10px 28px rgba(9,26,59,.13),inset 0 -1px 0 rgba(9,26,59,.08);backdrop-filter:blur(16px);transform-style:preserve-3d}
.brand-logo{border:3px solid rgba(255,255,255,.95);box-shadow:0 9px 17px rgba(7,25,58,.23),inset 0 1px 2px #fff;transform:translateZ(18px)}.brand span{color:#0b2857;text-shadow:0 1px 0 #fff}
.nav-link,.sound-toggle{border:1px solid rgba(255,255,255,.92);background:linear-gradient(180deg,#fff,#edf4fa);box-shadow:0 5px 10px rgba(9,26,59,.1),inset 0 1px 0 #fff;transition:transform .18s ease,box-shadow .18s ease}.nav-link:hover,.nav-link.active,.sound-toggle:hover{transform:translateY(-2px);box-shadow:0 9px 16px rgba(9,26,59,.15),inset 0 1px 0 #fff}.nav-link:active,.sound-toggle:active{transform:translateY(1px);box-shadow:0 2px 5px rgba(9,26,59,.13),inset 0 2px 4px rgba(9,26,59,.1)}
.hero{perspective:1100px;background:radial-gradient(circle at 78% 12%,rgba(255,255,255,.95),transparent 22%),linear-gradient(145deg,#eefaff 0,#d8effa 46%,#b8dcf0 100%);box-shadow:inset 0 -18px 35px rgba(9,26,59,.08)}.hero:after{content:"";position:absolute;inset:auto 0 0;height:52px;background:linear-gradient(180deg,transparent,rgba(9,26,59,.12));pointer-events:none}.hero-copy{transform:translateZ(55px);filter:drop-shadow(0 13px 18px rgba(9,26,59,.1))}.hero h1{color:#092653;text-shadow:0 2px 0 #fff,0 5px 0 rgba(23,78,137,.12),0 14px 24px rgba(7,25,58,.18)}.hero-art{perspective:900px;transform:rotateX(2deg);transform-style:preserve-3d;filter:drop-shadow(0 18px 18px rgba(7,25,58,.13))}.hero-art .bus.coach{filter:drop-shadow(0 16px 9px rgba(5,18,43,.3));transform-style:preserve-3d}.hero-art .bus.coach:after{content:"";position:absolute;left:7%;right:5%;bottom:-24px;height:15px;border-radius:50%;background:rgba(4,16,38,.3);filter:blur(7px);transform:translateZ(-20px)}.coach-windows,.coach-windshield{box-shadow:inset 7px 7px 12px rgba(255,255,255,.38),inset -8px -8px 12px rgba(8,49,82,.28),0 2px 0 rgba(255,255,255,.9)}.hero-art .road{box-shadow:inset 0 10px 14px rgba(255,255,255,.13),inset 0 -14px 20px rgba(8,19,40,.28),0 18px 25px rgba(7,25,58,.2)}
.search-card{border:1px solid rgba(255,255,255,.95);background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(235,244,251,.97));box-shadow:0 28px 55px rgba(7,25,58,.22),0 8px 0 rgba(20,66,112,.12),inset 0 2px 0 #fff;transform:translateY(-4px);transform-style:preserve-3d}
select,input{border:1px solid #c6d5e2;background:linear-gradient(180deg,#fff,#f1f6fa);box-shadow:inset 0 2px 3px rgba(9,26,59,.07),0 2px 0 #fff;transition:border-color .18s,box-shadow .18s,transform .18s}select:focus,input:focus{transform:translateY(-1px);border-color:#429bc5!important;box-shadow:0 0 0 4px rgba(66,155,197,.16),0 7px 12px rgba(9,26,59,.1)!important}
.primary,.fully-paid-button,.danger-action{border:1px solid rgba(255,255,255,.3);background:linear-gradient(180deg,#ff884f 0,#ed5e28 55%,#cf4618 100%);box-shadow:0 8px 0 #a93813,0 13px 20px rgba(160,56,19,.25),inset 0 2px 0 rgba(255,255,255,.5);text-shadow:0 1px 1px rgba(90,25,4,.35);transform:translateY(-3px);transition:transform .14s,box-shadow .14s,filter .14s}.primary:hover,.fully-paid-button:hover,.danger-action:hover{filter:brightness(1.06);transform:translateY(-5px);box-shadow:0 10px 0 #a93813,0 16px 24px rgba(160,56,19,.28),inset 0 2px 0 rgba(255,255,255,.55)}.primary:active,.fully-paid-button:active,.danger-action:active{transform:translateY(3px);box-shadow:0 2px 0 #a93813,0 5px 8px rgba(160,56,19,.2),inset 0 2px 5px rgba(90,25,4,.22)}.secondary,.row-actions button,.swap{background:linear-gradient(180deg,#fff,#eaf1f7);border-color:#cbd8e3;box-shadow:0 5px 0 #c4d0da,0 8px 13px rgba(9,26,59,.1),inset 0 2px 0 #fff;transition:transform .14s,box-shadow .14s}.secondary:hover,.row-actions button:hover,.swap:hover{transform:translateY(-2px);box-shadow:0 7px 0 #c4d0da,0 11px 16px rgba(9,26,59,.13),inset 0 2px 0 #fff}.secondary:active,.row-actions button:active,.swap:active{transform:translateY(3px);box-shadow:0 1px 0 #c4d0da,0 3px 6px rgba(9,26,59,.1)}
.trip-list,.ticket-list,.stats,.admin-pane,.admin-grid{perspective:1200px}.trip-card,.ticket,.panel,.stat,.ticket-lookup,.login-card{border:1px solid rgba(255,255,255,.95);background:linear-gradient(145deg,#fff 0,#f2f7fb 100%);box-shadow:var(--shadow-3d),0 5px 0 rgba(34,81,126,.09),inset 0 2px 0 #fff;transform-style:preserve-3d;transition:transform .22s ease,box-shadow .22s ease}.trip-card:hover,.ticket:hover,.stat:hover{transform:translateY(-7px) rotateX(1deg);box-shadow:0 30px 48px rgba(7,25,58,.2),0 8px 0 rgba(34,81,126,.1),inset 0 2px 0 #fff}.operator-icon{background:linear-gradient(145deg,#fff7eb,#ffe0c7);border:1px solid #fff;box-shadow:0 7px 12px rgba(128,61,20,.14),inset 0 2px 0 #fff;transform:translateZ(15px)}.route-line{height:4px;border-radius:5px;background:linear-gradient(180deg,#eef4f8,#bdcad5);box-shadow:inset 0 1px 2px rgba(9,26,59,.2),0 1px 0 #fff}.route-line:before,.route-line:after{box-shadow:0 3px 6px rgba(185,67,20,.3),inset 0 1px 0 rgba(255,255,255,.65)}
.ticket{overflow:visible}.ticket-top{border-radius:17px 17px 0 0;background:linear-gradient(145deg,#153b73,#071a3d);box-shadow:inset 0 2px 0 rgba(255,255,255,.15),0 7px 12px rgba(7,25,58,.18)}.payment-banner{border-radius:17px 17px 0 0;box-shadow:inset 0 2px 0 rgba(255,255,255,.6)}.ticket-body,.dialog-content{background:linear-gradient(145deg,#fff,#f2f7fb);border-radius:0 0 17px 17px}.payment-breakdown>div,.ticket-total,.booking-summary,.details-grid>div,.details-names,.guide-grid>div,.report-stats>div{border:1px solid rgba(255,255,255,.95);background:linear-gradient(145deg,#fff,#eaf2f8);box-shadow:0 7px 14px rgba(9,26,59,.09),inset 0 2px 0 #fff}
.admin-tabs,.fare-origin-tabs{background:linear-gradient(180deg,#d9e4ed,#eef4f8);border:1px solid #c5d2dd;box-shadow:inset 0 3px 7px rgba(9,26,59,.12),0 2px 0 #fff}.admin-tab.active,.fare-origin-tab.active{background:linear-gradient(180deg,#1c4c87,#0a234d);box-shadow:0 6px 0 #06162f,0 10px 17px rgba(7,25,58,.23),inset 0 2px 0 rgba(255,255,255,.22);transform:translateY(-2px)}.fare-origin-tab.active span{box-shadow:0 3px 6px rgba(128,46,12,.3)}
dialog{border:1px solid rgba(255,255,255,.75);background:#eef5fa;box-shadow:0 45px 95px rgba(3,14,34,.45),0 10px 0 rgba(7,25,58,.17),inset 0 2px 0 #fff;transform:perspective(1000px) rotateX(.6deg)}dialog::backdrop{background:rgba(3,14,34,.68);backdrop-filter:blur(8px) saturate(.8)}#toast{background:linear-gradient(145deg,#1b477f,#081d42);border:1px solid rgba(255,255,255,.2);box-shadow:0 13px 25px rgba(3,14,34,.32),inset 0 1px 0 rgba(255,255,255,.18)}
@media(max-width:900px){.hero-copy{transform:none}.search-card{transform:translateY(-2px)}.trip-card:hover,.ticket:hover,.stat:hover{transform:translateY(-4px)}}
@media(max-width:620px){.topbar{height:auto}.primary,.fully-paid-button,.danger-action{box-shadow:0 5px 0 #a93813,0 9px 14px rgba(160,56,19,.22),inset 0 2px 0 rgba(255,255,255,.5)}.search-card{box-shadow:0 20px 35px rgba(7,25,58,.2),0 5px 0 rgba(20,66,112,.1),inset 0 2px 0 #fff}.panel{box-shadow:0 14px 28px rgba(7,25,58,.14),0 4px 0 rgba(34,81,126,.08),inset 0 2px 0 #fff}dialog{transform:none}}
@media(prefers-reduced-motion:reduce){.nav-link,.sound-toggle,.trip-card,.ticket,.stat,.primary,.secondary,.row-actions button,.swap{transition:none!important}.trip-card:hover,.ticket:hover,.stat:hover{transform:none}}
.fully-paid-button{background:linear-gradient(180deg,#35b884,#1d8f65 58%,#126d4b);box-shadow:0 8px 0 #0e593d,0 13px 20px rgba(14,89,61,.25),inset 0 2px 0 rgba(255,255,255,.5)}.fully-paid-button:hover{box-shadow:0 10px 0 #0e593d,0 16px 24px rgba(14,89,61,.28),inset 0 2px 0 rgba(255,255,255,.55)}.fully-paid-button:active{box-shadow:0 2px 0 #0e593d,0 5px 8px rgba(14,89,61,.2),inset 0 2px 5px rgba(5,55,35,.22)}
.danger-action,.booking-closed{background:linear-gradient(180deg,#e75e65,#bc3038 58%,#8e2027);box-shadow:0 8px 0 #741920,0 13px 20px rgba(116,25,32,.25),inset 0 2px 0 rgba(255,255,255,.42)}.danger-action:hover,.booking-closed:hover{box-shadow:0 10px 0 #741920,0 16px 24px rgba(116,25,32,.28),inset 0 2px 0 rgba(255,255,255,.48)}.danger-action:active,.booking-closed:active{box-shadow:0 2px 0 #741920,0 5px 8px rgba(116,25,32,.2),inset 0 2px 5px rgba(75,12,18,.25)}
.primary:disabled,.fully-paid-button:disabled,.danger-action:disabled{background:linear-gradient(180deg,#c8d0d9,#929eaa);color:#eef2f5;box-shadow:0 4px 0 #707b86,0 7px 10px rgba(9,26,59,.12);transform:none;filter:none;cursor:not-allowed;text-shadow:none}

/* Immersive Philippine 3D environment, adapted from the portfolio interaction model */
#philippines3d{position:fixed;inset:0;width:100%;height:100%;z-index:-3;pointer-events:none;opacity:0;transition:opacity 1s ease}.philippines-3d-ready #philippines3d{opacity:1}html{background:#8bcce5}body{background:transparent;position:relative}.philippines-3d-fallback{background:linear-gradient(155deg,#a9e3f2,#4f9fc1 45%,#174e72)}body:before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(180deg,rgba(11,60,100,.02),rgba(4,30,61,.14) 52%,rgba(3,23,48,.42));}
.topbar{background:linear-gradient(145deg,rgba(245,252,255,.86),rgba(213,237,247,.72));border-color:rgba(255,255,255,.72);box-shadow:0 18px 45px rgba(3,30,57,.22),inset 0 1px 0 rgba(255,255,255,.88);backdrop-filter:blur(20px) saturate(1.2)}
.hero{background:linear-gradient(105deg,rgba(235,250,255,.82) 0,rgba(213,241,250,.62) 46%,rgba(122,193,219,.18) 100%);border-bottom:1px solid rgba(255,255,255,.5);backdrop-filter:blur(2px);box-shadow:inset 0 -35px 55px rgba(3,34,66,.13)}.hero-copy{padding:28px;border-radius:24px;background:linear-gradient(145deg,rgba(255,255,255,.35),rgba(210,239,249,.08));border:1px solid rgba(255,255,255,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.65),0 24px 60px rgba(4,38,70,.12);backdrop-filter:blur(5px)}.hero-art{opacity:.72;mix-blend-mode:multiply}
.content-section{position:relative}.content-section:before{content:"";position:absolute;inset:28px -3vw;border-radius:34px;background:linear-gradient(145deg,rgba(235,249,255,.72),rgba(186,224,239,.48));border:1px solid rgba(255,255,255,.58);box-shadow:0 35px 80px rgba(2,31,61,.2),inset 0 1px 0 rgba(255,255,255,.75);backdrop-filter:blur(17px) saturate(1.1);z-index:-1}.standalone:before{inset:22px -3vw}
.search-card,.trip-card,.ticket,.panel,.stat,.ticket-lookup,.login-card{background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(210,236,246,.7));border:1px solid rgba(255,255,255,.78);box-shadow:0 28px 60px rgba(2,31,61,.24),0 6px 0 rgba(5,58,94,.13),inset 0 1px 0 rgba(255,255,255,.92);backdrop-filter:blur(18px) saturate(1.15)}
.trip-card,.ticket,.stat,.panel{overflow:hidden;position:relative}.trip-card:before,.ticket:before,.stat:before,.panel:before{content:"";position:absolute;inset:-40% auto -40% -35%;width:22%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.48),transparent);transform:skewX(-18deg) translateX(-180%);animation:tropicalGlassSweep 8s ease-in-out infinite}.trip-card:nth-child(2n):before,.stat:nth-child(2n):before{animation-delay:2.2s}.panel:nth-child(2n):before{animation-delay:3.4s}@keyframes tropicalGlassSweep{0%,72%{translate:-180% 0}92%,100%{translate:760% 0}}
.search-card{background:linear-gradient(145deg,rgba(255,255,255,.93),rgba(210,238,248,.78));backdrop-filter:blur(24px) saturate(1.2)}.search-card:after{content:"PHILIPPINE ISLAND ROUTES";position:absolute;right:22px;top:10px;color:rgba(5,70,111,.38);font-size:9px;font-weight:900;letter-spacing:.2em}
.section-heading h1,.section-heading h2,.panel-title h2,.admin-heading h1{color:#082b55;text-shadow:0 1px 0 rgba(255,255,255,.9),0 8px 18px rgba(3,36,69,.13)}.eyebrow{color:#ce1735}.primary{background:linear-gradient(180deg,#ffdf58,#f5b91c 52%,#d58b08);color:#102c54;text-shadow:0 1px 0 rgba(255,255,255,.55);box-shadow:0 8px 0 #9f6200,0 14px 22px rgba(100,61,0,.25),inset 0 2px 0 rgba(255,255,255,.65)}.primary:hover{box-shadow:0 10px 0 #9f6200,0 18px 27px rgba(100,61,0,.28),inset 0 2px 0 rgba(255,255,255,.7)}.primary:active{box-shadow:0 2px 0 #9f6200,0 5px 9px rgba(100,61,0,.2)}
.admin-tab.active,.fare-origin-tab.active,.ticket-top{background:linear-gradient(145deg,#075aa6,#062d66 66%,#041f49)}.count,.fare-origin-tab.active span{background:#ce1735}.passenger-support-footer{background:linear-gradient(145deg,rgba(4,39,76,.95),rgba(3,24,54,.96));border-top:1px solid rgba(255,255,255,.15);box-shadow:0 -15px 35px rgba(3,24,54,.18)}
dialog{background:linear-gradient(145deg,rgba(241,251,255,.97),rgba(199,230,242,.96));border-color:rgba(255,255,255,.9)}dialog::backdrop{background:rgba(2,29,57,.68)}.dialog-content,.ticket-body{background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(225,242,249,.93))}
@media(max-width:900px){#philippines3d{opacity:.72}.hero{background:linear-gradient(145deg,rgba(234,249,254,.9),rgba(189,227,241,.72))}.hero-copy{padding:20px}.content-section:before{inset:20px -1vw}}
@media(max-width:620px){#philippines3d{opacity:.55}.hero-copy{padding:16px}.content-section:before{inset:14px -1vw;border-radius:22px}.search-card:after{display:none}.trip-card:before,.ticket:before,.stat:before,.panel:before{animation:none}}
@media(prefers-reduced-motion:reduce){#philippines3d{opacity:.55}.trip-card:before,.ticket:before,.stat:before,.panel:before{animation:none!important}}
.admin-interface{background:#f4f7fb}.admin-interface:before{display:none}.admin-interface .content-section:before{display:none}.admin-interface .topbar{background:#fff;backdrop-filter:none}.admin-interface .panel,.admin-interface .stat,.admin-interface .login-card,.admin-interface .ticket-lookup{background:#fff;backdrop-filter:none}.admin-interface .panel:before,.admin-interface .stat:before{display:none}
.location-management-grid{display:grid;grid-template-columns:.85fr 1.4fr;gap:18px;margin-top:20px}.location-form{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;padding:17px;border:1px solid var(--line);border-radius:14px;background:#f7f9fc}.location-form:nth-child(2){grid-template-columns:.8fr 1fr auto}.location-form label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:700}.location-directory-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px;align-items:start}.location-directory-item{padding:0;border:1px solid var(--line);border-radius:11px;background:#fff;overflow:hidden}.location-directory-item summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;cursor:pointer;list-style:none}.location-directory-item summary::-webkit-details-marker{display:none}.location-directory-item span{display:block}.location-directory-item button{border:1px solid var(--line);border-radius:8px;background:#fff;padding:7px 9px;font-size:11px;font-weight:800}.location-directory-item button:hover:not(:disabled){border-color:var(--orange);color:var(--orange)}.destination-order-list{max-height:330px;overflow:auto;border-top:1px solid var(--line);padding:7px}.destination-order-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 5px;border-bottom:1px solid #edf0f5;font-size:12px}.destination-order-row:last-child{border-bottom:0}.destination-order-row>span{display:flex;align-items:center;gap:7px;min-width:0}.destination-order-row>span b{display:grid;place-items:center;flex:0 0 22px;height:22px;border-radius:7px;background:#eef3fa;color:var(--muted);font-size:10px}.destination-order-row>div{display:flex;gap:4px}.destination-order-row button{padding:4px 8px;font-size:14px;line-height:1}.destination-order-row button:disabled{opacity:.35;cursor:not-allowed}@media(max-width:900px){.location-management-grid{grid-template-columns:1fr}.location-directory-summary{grid-template-columns:1fr 1fr}}@media(max-width:620px){.location-form,.location-form:nth-child(2){grid-template-columns:1fr}.location-directory-summary{grid-template-columns:1fr}}
