:root{--brand:#18193f;--accent:gold;--bg:#f9fafb}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f9fafb;background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}.page-content{animation:bgFloat 18s ease-in-out infinite alternate;background:radial-gradient(1200px 600px at 10% -10%,#18193f0f,#0000 60%),radial-gradient(1000px 500px at 110% 10%,#ffd70014,#0000 60%),#f9f9f9}@keyframes bgFloat{0%{background-position:0 0,0 0,0 0}to{background-position:12px 10px,-10px 6px,0 0}}@media (pointer:fine){body,html{cursor:auto}}.animated-cursor-dot,.animated-cursor-ring{left:0;pointer-events:none;position:fixed;top:0;transform:translate3d(-100px,-100px,0);z-index:9999}.animated-cursor-dot{background:#fff;border:2px solid #18193f;border:2px solid var(--brand);border-radius:50%;box-shadow:0 0 0 1px #0000000f;height:6px;mix-blend-mode:difference;width:6px}.animated-cursor-ring{border:2px solid gold;border:2px solid var(--accent);border-radius:50%;box-shadow:0 8px 24px #18193f1f;height:44px;opacity:.65;transition:transform .08s ease-out,width .25s ease,height .25s ease,opacity .25s ease,background .25s ease;width:44px}@media (prefers-reduced-motion:reduce){.page-content{animation:none}.animated-cursor-dot,.animated-cursor-ring{display:none}}.track-card{width:100%}.track-map{background:linear-gradient(180deg,#f9fafb,#f3f4f6);border:1px solid #eee;border-radius:12px;height:120px}.epass-card,.track-map{overflow:hidden;position:relative}.epass-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 8px 20px #0000001a}.epass-card:hover{box-shadow:0 10px 24px #0000001f}.epass-header{align-items:center;background:linear-gradient(90deg,#18193f,#23244a);color:#fff;display:grid;grid-template-columns:1fr auto;padding:10px 12px;position:relative}.epass-brand{align-items:center;display:flex;gap:10px}.epass-logo{background:#fff;border-radius:6px;height:24px;padding:2px;width:24px}.epass-brand-title{font-weight:800;letter-spacing:1px}.epass-brand-sub,.epass-title{font-size:11px;opacity:.9}.epass-title{font-weight:700;left:50%;letter-spacing:1.1px;text-shadow:0 1px 0 #00000026;transform:translateX(-50%);translate:0 -50%}.epass-chip,.epass-title{position:absolute;top:50%}.epass-chip{background:linear-gradient(135deg,#ffffff40,#ffd70059);border-radius:6px;box-shadow:inset 0 0 0 1px #fff6;height:18px;right:12px;transform:translateY(-50%);width:28px}.epass-body{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1.2fr .9fr;padding:12px 12px 10px}@media (max-width:520px){.epass-body{grid-template-columns:1fr}}.epass-left{grid-gap:10px;align-items:start;display:grid;gap:10px;grid-template-columns:64px 1fr}.epass-photo{align-items:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:8px;color:#6b7280;display:flex;font-size:12px;height:80px;justify-content:center;object-fit:cover;width:68px}.epass-fields{grid-gap:6px;display:grid;gap:6px}.epass-field,.epass-kv{grid-gap:6px;align-items:center;display:grid;font-size:12px;gap:6px;grid-template-columns:16px 72px 1fr}.epass-field .lab,.epass-kv .lab{color:#64748b}.epass-field .val,.epass-kv .val{color:#0f172a;font-weight:600}.epass-field .ico,.epass-kv .ico{align-items:center;color:#334155;display:inline-flex;height:18px;justify-content:center;width:18px}.epass-right{flex-direction:column;gap:12px;justify-content:flex-start;min-height:180px}.epass-qr,.epass-right{align-items:center;display:flex}.epass-qr{background:repeating-linear-gradient(0deg,#0f172a 0 6px,#0000 6px 12px),repeating-linear-gradient(90deg,#0f172a 0 6px,#0000 6px 12px);background-blend-mode:multiply;background-color:#fff;border-radius:6px;box-shadow:inset 0 0 0 1px #e5e7eb;height:110px;justify-content:center;width:110px}.epass-qr img{border-radius:4px!important}.epass-valid{color:#374151;font-size:12px;font-weight:600;text-align:center}.epass-qr-container{align-items:center;display:flex;flex-direction:column;gap:8px}.epass-validity-section{margin-top:12px}@media (max-width:520px){.epass-right{gap:10px;min-height:160px}.epass-qr{height:100px;width:100px}.epass-valid{font-size:11px}}.epass-sign{grid-gap:2px;display:grid;gap:2px;justify-items:center}.epass-sign img{height:22px}.epass-sign span{color:#6b7280;font-size:10px}.epass-status{border-radius:999px;box-shadow:0 8px 18px #0000001f;color:#fff;font-size:12px;font-weight:700;padding:4px 10px;position:absolute;right:12px;top:10px}.epass-status.approved{background:#22c55e}.epass-status.pending{background:#f59e0b}.epass-status.rejected{background:#ef4444}@media print{*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.page-content,body{animation:none!important;background:#fff!important}.auth-container,.features-grid,.hero-content,.hero-ctas,.hero-glow,.navbar,.route-demo,nav{display:none!important}.epass-card{border:1px solid #111827;box-shadow:none!important}}.track-road{background:linear-gradient(90deg,#d1d5db 25%,#e5e7eb 0,#e5e7eb 50%,#d1d5db 0,#d1d5db 75%,#e5e7eb 0,#e5e7eb);background-size:24px 6px;height:6px;left:10px;right:10px;top:50%;transform:translateY(-50%)}.track-road,.track-stop{border-radius:999px;position:absolute}.track-stop{background:#18193f;background:var(--brand);height:8px;opacity:.7;top:calc(50% - 4px);width:8px}.track-bus{animation:busMove 2.2s ease-in-out infinite alternate;background:gold;background:var(--accent);border:2px solid #111827;border-radius:999px;box-shadow:0 4px 10px #00000026;height:14px;left:12px;position:absolute;top:calc(50% - 7px);width:14px}@keyframes busMove{0%{left:12px}to{left:calc(100% - 26px)}}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}canvas,img,svg,video{height:auto;max-width:100%}.form-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:1fr}@media (min-width:760px){.form-grid{grid-template-columns:1fr 1fr}}.field input[type=file],.field select,.field textarea{width:100%}@media (max-width:768px){.form-grid{gap:12px}.field input[type=file],.field select,.field textarea{font-size:16px;padding:12px}.label-row{font-size:14px;margin-bottom:4px}.help-text{font-size:11px}}@media (max-width:480px){.form-grid{gap:10px}.field input[type=file],.field select,.field textarea{font-size:16px;padding:10px}}.label-row{align-items:center;display:flex;font-size:14px;font-weight:600;gap:8px;margin-bottom:6px}.icon-badge-sm{align-items:center;background:#0000000d;border-radius:8px;color:#111827;display:inline-flex;height:28px;justify-content:center;width:28px}.help-text{color:#6b7280;font-size:12px;margin-top:6px}.form-actions{margin-top:14px}.home-hero{padding:28px 16px 48px;position:relative}.hero-content{margin:24px auto 40px;max-width:980px;text-align:center}.hero-badge{background:#18193f14;border-radius:999px;color:#18193f;display:inline-block;font-size:12px;font-weight:600;padding:6px 12px}.hero-title{color:#0f172a;font-size:clamp(28px,4.5vw,44px);line-height:1.1;margin:12px 0 10px}.hero-subtitle{color:#374151;margin:0 auto 16px;max-width:720px}.hero-ctas{flex-wrap:wrap;gap:12px}.btn,.hero-ctas{display:inline-flex;justify-content:center}.btn{align-items:center;border:1px solid #0000;border-radius:10px;font-weight:600;padding:12px 16px;text-decoration:none;transition:transform .15s ease,background .2s ease,color .2s ease,border .2s ease}.btn-primary{background:#18193f;color:#fff}.btn-primary:hover{background:#23244a;transform:translateY(-2px)}.btn-secondary{background:gold;color:#18193f}.btn-secondary:hover{filter:brightness(.95);transform:translateY(-2px)}.btn-outline{background:#fff;border-color:#e5e7eb;color:#18193f}.btn-outline:hover{border-color:#cbd5e1;transform:translateY(-2px)}.hero-glow{filter:blur(60px);opacity:.4;pointer-events:none;position:absolute}.glow-a{animation:floatA 10s ease-in-out infinite;background:radial-gradient(circle,#ffd70059,#0000 60%);height:300px;left:-20px;top:-40px;width:300px}.glow-b{animation:floatB 12s ease-in-out infinite;background:radial-gradient(circle,#18193f59,#0000 60%);bottom:-60px;height:360px;right:-20px;width:360px}@keyframes floatA{0%{transform:translate(0)}50%{transform:translate(10px,12px)}to{transform:translate(0)}}@keyframes floatB{0%{transform:translate(0)}50%{transform:translate(-10px,8px)}to{transform:translate(0)}}.features-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:0 auto;max-width:1100px}.feature-card{background:#fff;border:1px solid #eee;border-radius:16px;box-shadow:0 10px 24px #00000014;padding:18px;text-align:left}.feature-card h3{margin:8px 0 6px}.feature-card p{color:#374151;margin:0}.feature-icon-badge{align-items:center;border-radius:12px;display:inline-flex;height:48px;justify-content:center;margin-bottom:6px;overflow:hidden;position:relative;width:48px}.feature-icon-badge:before{animation:spin 8s linear infinite;background:conic-gradient(from 0deg,#ffd70059,#18193f40,#0000 70%);border-radius:inherit;content:"";filter:blur(8px);inset:-2px;opacity:.6;position:absolute}.feature-icon-badge svg{position:relative;z-index:1}.icon-tracking{background:#3b82f61a;color:#2563eb}.icon-routes{background:#22c55e1f;color:#16a34a}.icon-epass{background:#eab30824;color:#ca8a04}.icon-alerts{background:#f43f5e1f;color:#e11d48}@keyframes spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.feature-icon-badge:before{animation:none}}.route-demo{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1.1fr .9fr;margin:26px auto 0;max-width:1100px;padding:0 8px}@media (max-width:900px){.route-demo{grid-template-columns:1fr}}.route-card{background:#fff;border:1px solid #eee;border-radius:16px;box-shadow:0 10px 24px #00000014;padding:18px}.route-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.route-map{background:linear-gradient(180deg,#f9fafb,#f3f4f6);border:1px solid #eee;border-radius:12px;height:140px;overflow:hidden;position:relative}.route-line{background:linear-gradient(90deg,#d1d5db 25%,#e5e7eb 0,#e5e7eb 50%,#d1d5db 0,#d1d5db 75%,#e5e7eb 0,#e5e7eb);background-size:24px 6px;height:6px;left:10px;right:10px;top:50%;transform:translateY(-50%)}.route-line,.route-stop{border-radius:999px;position:absolute}.route-stop{background:#18193f;background:var(--brand);height:8px;opacity:.7;top:calc(50% - 4px);width:8px}.route-bus{animation:busMove 2.2s ease-in-out infinite alternate;background:gold;background:var(--accent);border:2px solid #111827;border-radius:999px;box-shadow:0 4px 10px #00000026;height:14px;left:12px;position:absolute;top:calc(50% - 7px);width:14px}.route-copy{display:flex;flex-direction:column;justify-content:center}@media (prefers-reduced-motion:reduce){.hero-glow{display:none}}.epass-ticket{border-radius:8px;padding:0}.ticket-head{background:#fff;border-bottom:1px solid #e5e7eb;justify-content:center;padding:10px 12px}.ticket-brand,.ticket-head{align-items:center;display:flex}.ticket-brand{color:#0f172a;gap:10px}.ticket-brand-text .title{font-size:18px;font-weight:900;letter-spacing:1px;line-height:1}.ticket-brand-text .sub{color:#6b7280;font-size:11px;line-height:1.2}.ticket-logo{background:#fff;border-radius:6px;height:28px;width:28px}.ticket-right{align-items:flex-end;display:flex;flex-direction:column;gap:4px;max-width:65%}.ticket-name{color:#0f172a;font-size:16px;font-weight:800;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ticket-status{border-radius:999px;box-shadow:0 6px 16px #0000001f;color:#fff;font-size:12px;font-weight:800;padding:4px 10px}.ticket-status.approved{background:#22c55e}.ticket-status.pending{background:#f59e0b}.ticket-status.rejected{background:#ef4444}@media (max-width:360px){.ticket-name{font-size:14px}}.ticket-profile{gap:12px;padding:12px}.ticket-photo,.ticket-profile{align-items:center;display:flex}.ticket-photo{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:50%;color:#6b7280;height:56px;justify-content:center;object-fit:cover;width:56px}.ticket-profile-info .name{color:#0f172a;font-size:16px;font-weight:700}.ticket-profile-info .muted{color:#6b7280;font-size:12px}.ticket-divider{background:#e5e7eb;height:1px;margin:0 12px}.ticket-body{padding:12px}.ticket-section-title{font-size:15px;font-weight:700;margin-bottom:8px}.ticket-list{grid-gap:6px;display:grid;gap:6px;list-style:none;margin:0;padding:0}.ticket-list li{align-items:center;color:#111827;display:flex;font-size:14px;gap:8px}.ticket-time{color:#374151;font-size:12px;margin:10px 0}.ticket-qr-wrap{padding:8px 0 12px}.ticket-qr,.ticket-qr-wrap{display:flex;justify-content:center}.ticket-qr{align-items:center;background:repeating-linear-gradient(0deg,#0f172a 0 6px,#0000 6px 12px),repeating-linear-gradient(90deg,#0f172a 0 6px,#0000 6px 12px);background-blend-mode:multiply;background-color:#fff;border-radius:8px;box-shadow:inset 0 0 0 1px #e5e7eb;height:128px;width:128px}@media (max-width:420px){.ticket-qr{height:112px;width:112px}.ticket-profile{gap:10px;padding:10px}.ticket-body{padding:10px}.ticket-section-title{font-size:14px}}*{box-sizing:border-box;font-family:Poppins,sans-serif;margin:0;padding:0}.App{display:flex;flex-direction:column;min-height:100vh;width:100%}.navbar{align-items:center;background:#facc15;display:flex;justify-content:space-between;left:0;padding:12px 24px;position:fixed;right:0;top:0;z-index:1000}@media (max-width:768px){.navbar{flex-wrap:wrap;padding:8px 16px}.logo{font-size:1.1rem}.nav-links{background:#facc15;box-shadow:0 4px 12px #00000026;flex-direction:column;gap:12px;left:0;padding:16px;position:absolute;right:0;top:100%}.nav-links a{border-radius:6px;display:block;padding:8px 12px}}.logo{color:#000;font-size:1.3rem;font-weight:700}.nav-links{display:flex;gap:20px;list-style:none;margin:0}.nav-links li{display:inline}.nav-links a{color:#000;font-weight:500;text-decoration:none}.nav-links a:hover{text-decoration:underline}.logout-btn{background:#e74c3c;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:6px 12px}.logout-btn:hover{background:#c0392b}.page-content{background:#f9f9f9;margin-top:80px;min-height:calc(100vh - 80px);overflow-x:auto;padding:20px;width:100%}@media (max-width:768px){.page-content{margin-top:60px;min-height:calc(100vh - 60px);padding:16px 12px}}@media (max-width:480px){.page-content{padding:12px 8px}}.auth-container{align-items:flex-start;display:flex;flex-wrap:wrap;gap:40px;justify-content:center;margin:0 auto;max-width:1200px;padding-top:100px;width:100%}@media (max-width:968px){.auth-container{align-items:center;flex-direction:column;gap:24px;padding-left:16px;padding-right:16px;padding-top:40px}}@media (max-width:480px){.auth-container{gap:20px;padding-left:12px;padding-right:12px;padding-top:20px}}.auth-left{max-width:350px;text-align:center}.auth-left img{height:auto;max-width:260px}.auth-left h1{color:#222;font-size:1.7rem;margin-top:20px}.auth-left p{color:#444;margin-top:10px}.card{background:#fff;border-radius:16px;box-shadow:0 10px 24px #0000001f;margin:0 auto;max-width:480px;padding:40px 50px;transition:transform .2s ease;width:100%}@media (max-width:768px){.card{border-radius:12px;margin:0 12px;max-width:calc(100vw - 24px);padding:24px 20px}}@media (max-width:480px){.card{border-radius:8px;margin:0 8px;max-width:calc(100vw - 16px);padding:20px 16px}}.card:hover{transform:translateY(-4px)}.card input{border:1px solid #ccc;border-radius:8px;font-size:1rem;margin:12px 0;outline:none;padding:14px 16px;width:100%}.card input:focus{border-color:#4a90e2}@media (max-width:768px){.card input{font-size:16px;padding:12px 14px}}@media (max-width:480px){.card input{margin:8px 0;padding:10px 12px}}.card button{background:#4a90e2;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:16px;padding:14px;width:100%}.card button:hover{background:#357abd}.bus-pass-card{background:linear-gradient(180deg,#fff,#fbfdff);border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 10px 24px #0000001f;margin:20px auto;max-width:680px;overflow:hidden;padding:30px 40px;position:relative;text-align:left;width:100%}@media (max-width:768px){.bus-pass-card{border-radius:10px;margin:16px 12px;max-width:calc(100vw - 24px);padding:20px 24px}}@media (max-width:480px){.bus-pass-card{border-radius:8px;margin:12px 8px;max-width:calc(100vw - 16px);padding:16px 20px}.bus-pass-card h2{font-size:18px}}.table-wrapper{border:1px solid #e5e7eb;border-radius:8px;overflow-x:auto}@media (max-width:768px){.desktop-table{display:none}.mobile-cards{display:block}.btn-chip{font-size:14px;min-height:36px;padding:8px 12px}.modal-overlay{padding:16px}.modal{margin:0!important;max-height:calc(100vh - 32px);max-width:none!important;overflow-y:auto;width:calc(100vw - 32px)!important}}@media (max-width:480px){h1{font-size:20px}h2{font-size:18px}h3{font-size:16px}.btn-chip{font-size:13px;min-height:32px;padding:6px 10px}input,select,textarea{font-size:16px!important}}.mobile-cards{display:none}.desktop-table{display:block}.bus-pass-card:before{background:radial-gradient(600px 200px at -10% -10%,#18193f0d,#0000 60%),radial-gradient(600px 200px at 110% 10%,#ffd7000f,#0000 60%);content:"";inset:0;pointer-events:none;position:absolute}.bus-pass-card h2{font-size:22px;letter-spacing:.2px}.bus-pass-card input,.bus-pass-card select,.bus-pass-card textarea{background:#fff;border:1px solid #d1d5db;border-radius:10px;font-size:.95rem;margin:10px 0 16px;padding:12px 14px;width:100%}.bus-pass-card input:focus,.bus-pass-card select:focus,.bus-pass-card textarea:focus{border-color:#94a3b8;outline:3px solid #18193f1f}.bus-pass-card button{background:linear-gradient(90deg,#18193f,#3b82f6);background:linear-gradient(90deg,var(--brand,#18193f),#3b82f6);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;padding:12px;transition:filter .2s ease,transform .15s ease;width:100%}.bus-pass-card button:hover{filter:brightness(1.02);transform:translateY(-1px)}.contact-container{align-items:flex-start;gap:40px;margin-top:30px}.contact-form,.contact-info{background:#fff;border-radius:12px;box-shadow:0 6px 20px #0000001a;flex:1 1;max-width:500px;min-width:320px;padding:30px 35px}.contact-info{color:#333;font-size:1rem;line-height:1.8}.contact-form{display:flex;flex-direction:column;gap:15px}.contact-form input,.contact-form textarea{border:1px solid #ddd;border-radius:8px;font-size:.95rem;padding:12px 14px;width:100%}.contact-form textarea{resize:none}.contact-form button{background:#4a90e2;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:14px;transition:background .2s ease-in-out}.contact-form button:hover{background:#357abd}.contact-page{padding-bottom:40px;padding-top:30px}.contact-container{align-items:stretch;display:flex;flex-wrap:wrap;gap:28px;justify-content:center}.contact-form,.contact-info{background:linear-gradient(180deg,#ffffffd9,#ffffffb3);border:1px solid #0f172a0a;border-radius:14px;box-shadow:0 12px 30px #10182814;flex:1 1 360px;max-width:540px;padding:28px}.contact-info{background:linear-gradient(180deg,#fff,#fafafa);display:flex;flex-direction:column;gap:10px}.contact-info h2{color:#0b1220;font-size:22px;margin-bottom:6px}.contact-info p{color:#374151;line-height:1.6}.contact-info b{color:#111827}.contact-form{position:relative}.contact-form .form-control{border:1px solid #e6eef8;border-radius:10px;box-shadow:inset 0 1px 0 #fff9;padding:12px 14px;width:100%}.contact-form textarea.form-control{min-height:140px;resize:vertical}.contact-form .btn-primary{background:linear-gradient(90deg,#2563eb,#7c3aed);border:none;border-radius:10px;box-shadow:0 8px 20px #2563eb1f;font-weight:700;padding:12px 16px}.contact-form .btn-primary:hover{filter:brightness(.98);transform:translateY(-1px)}.contact-success{color:#065f46;margin-top:10px}.contact-error{color:#b91c1c;margin-top:10px}@media (max-width:880px){.contact-container{gap:16px}.contact-form,.contact-info{padding:18px}}@media (max-width:640px){.auth-container{gap:20px;padding-top:60px}.card{padding:24px}}.ui-table{--tbl-bg-start:#fff;--tbl-bg-end:#fbfbff;--tbl-header-start:#f8fafc;--tbl-header-end:#eef2ff;--tbl-border:#eef2f7;--tbl-row-odd:#fcfcff;--tbl-row-hover:#f1f5ff;--tbl-header-hover:#e9efff;background:linear-gradient(180deg,var(--tbl-bg-start),var(--tbl-bg-end));border-collapse:initial;border-radius:14px;border-spacing:0;box-shadow:0 10px 24px #11182714;overflow:hidden;table-layout:fixed;width:100%}.ui-table thead{background:linear-gradient(180deg,var(--tbl-header-start),var(--tbl-header-end));position:-webkit-sticky;position:sticky;top:0;z-index:1}.ui-table td,.ui-table th{border-bottom:1px solid var(--tbl-border);border-right:1px solid var(--tbl-border);padding:12px 14px;text-align:left;vertical-align:middle}.ui-table thead th{color:#1f2937;font-weight:700}.ui-table tbody tr{transition:background-color .18s ease,transform .06s ease,box-shadow .18s ease}.ui-table tbody tr:nth-child(odd){background:var(--tbl-row-odd)}.ui-table tbody tr:hover{background:var(--tbl-row-hover)}.ui-table tbody tr:active{transform:scale(.998)}.ui-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.ui-table th.sortable:hover{background:var(--tbl-header-hover)}.ui-table .badge{border-radius:9999px;display:inline-block;font-size:12px;font-weight:700;letter-spacing:.2px;padding:4px 10px}.ui-table .badge.approved{background:#e8fff2;box-shadow:inset 0 0 0 1px #bbf7d0;color:#047857}.ui-table .badge.pending{background:#fffbe6;box-shadow:inset 0 0 0 1px #fde68a;color:#92400e}.ui-table .badge.rejected{background:#fff1f2;box-shadow:inset 0 0 0 1px #fecaca;color:#b91c1c}.ui-table tr:first-child th:first-child{border-top-left-radius:14px}.ui-table tr:first-child th:last-child{border-top-right-radius:14px}.ui-table tr:last-child td:first-child{border-bottom-left-radius:14px}.ui-table tr:last-child td:last-child{border-bottom-right-radius:14px}.ui-table .col-name{width:220px}.ui-table .col-usn{width:120px}.ui-table .col-profile{width:140px}.ui-table .col-pickup{width:220px}.ui-table .col-status{width:140px}.ui-table .col-date{width:160px}.ui-table .col-email{width:300px}.ui-table .col-role{width:140px}.ui-table .col-created{width:200px}.ui-table .col-actions{width:180px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-table.compact td,.ui-table.compact th{padding:8px 10px}.ui-table.comfortable td,.ui-table.comfortable th{padding:14px 16px}.notif-dropdown{background:linear-gradient(180deg,#fff,#fbfbff);border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 16px 36px #18193f2e;max-height:420px;overflow:auto;padding:10px;position:absolute;right:0;top:44px;width:420px;z-index:1001}.notif-empty{color:#6b7280;padding:20px;text-align:center}.notif-item{align-items:flex-start;background:#fff;border:1px solid #eef2f7;border-radius:10px;display:flex;gap:10px;justify-content:space-between;margin-bottom:8px;padding:10px}.notif-item.accepted{background:#f8fff9;opacity:.8}.notif-item.read{background:#f9fafb;opacity:.7}.notif-item.new{background:#fffbeb;border-color:#f59e0b}.notif-text{min-width:0}.notif-title{color:#111827;font-size:14px;font-weight:700;margin-bottom:4px}.notif-message{color:#374151;font-size:13px;margin-bottom:4px}.notif-time{color:#6b7280;font-size:11px}.notif-actions{align-items:center;display:flex;flex-shrink:0;gap:8px}.admin-notif-card{background:linear-gradient(180deg,#fff,#fbfbff);border:1px solid #eef2f7;border-radius:14px;box-shadow:0 12px 28px #18193f1f;margin:0 auto;max-width:900px;padding:18px}.admin-notif-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr}.admin-notif-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.admin-notif-input{border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px}.admin-notif-label{color:#374151;font-weight:600}.admin-notif-status.success{color:#065f46}.admin-notif-status.error{color:#b91c1c}.ui-table.teal{--tbl-header-end:#e6fffb;--tbl-row-hover:#ecfeff;--tbl-header-hover:#d9fbff;--tbl-row-odd:#f8fffe}.ui-table.purple{--tbl-header-end:#f3e8ff;--tbl-row-hover:#f6f0ff;--tbl-header-hover:#ede4ff;--tbl-row-odd:#fbf8ff}.ui-table.sky{--tbl-header-end:#e0f2fe;--tbl-row-hover:#e9f6ff;--tbl-header-hover:#d8effd;--tbl-row-odd:#f7fbff}.ui-table.emerald{--tbl-header-end:#d1fae5;--tbl-row-hover:#e6fff4;--tbl-header-hover:#cbf6e0;--tbl-row-odd:#f4fffb}.ui-table.rose{--tbl-header-end:#ffe4e6;--tbl-row-hover:#fff1f2;--tbl-header-hover:#ffe9eb;--tbl-row-odd:#fff8f8}.ui-table.gray{--tbl-bg-start:#fff;--tbl-bg-end:#fff;--tbl-header-start:#f7f7f7;--tbl-header-end:#eee;--tbl-border:#e6e6e6;--tbl-row-odd:#fafafa;--tbl-row-hover:#f3f3f3;--tbl-header-hover:#e9e9e9}.btn-chip{align-items:center;background:#fff;border:1px solid #0000;border-radius:9999px;box-shadow:0 2px 8px #1118270f;color:#111827;cursor:pointer;display:inline-flex;gap:8px;padding:8px 12px;transition:transform .12s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}.btn-chip:hover{box-shadow:0 6px 16px #1118271a;transform:translateY(-1px)}.btn-chip:active{transform:translateY(0)}.btn-approve{background:#f0fff7;border-color:#bbf7d0;color:#065f46}.btn-approve:hover{background:#e8fff5}.btn-approve .dot{background:#10b981;border-radius:50%;height:8px;width:8px}.btn-reject{background:#fff7f7;border-color:#fecaca;color:#991b1b}.btn-reject:hover{background:#fff2f2}.btn-reject .dot{background:#ef4444;border-radius:50%;height:8px;width:8px}.btn-edit{background:#f5faff;border-color:#bfdbfe;color:#1d4ed8}.btn-edit:hover{background:#eef6ff}.btn-delete{background:#fff7f7;border-color:#fecaca;color:#b91c1c}.btn-delete:hover{background:#fff2f2}.btn-chip.goo{background:linear-gradient(90deg,#e0f2ff,#e9f8ff);border-color:#3b82f62e;color:#0b63d8;overflow:visible;position:relative}.btn-chip.goo:after{background:radial-gradient(circle at 10% 10%,#6366f10f,#0000 20%),radial-gradient(circle at 90% 90%,#38bdf80a,#0000 20%);border-radius:9999px;bottom:-10px;content:"";filter:blur(8px);left:-10px;position:absolute;right:-10px;top:-10px;z-index:-1}.btn-chip.goo:hover{box-shadow:0 8px 18px #0e27541f;transform:translateY(-2px) scale(1.02)}.modal-overlay{align-items:center;background:#0a0b0d73;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:2000}.modal{background:linear-gradient(180deg,#fff,#fbfdff);border:1px solid #e2e8f0cc;border-radius:14px;box-shadow:0 20px 40px #0b0f1e59;max-width:680px;padding:18px 20px;width:100%}.modal-header h3{margin:0 0 8px}.modal-body{grid-gap:10px;display:grid;gap:10px;padding:8px 0 14px}.modal-field{display:flex;flex-direction:column;gap:6px}.modal-field input,.modal-field textarea{border:1px solid #e6e9ef;border-radius:8px;font-size:.95rem;padding:10px 12px}.modal-field textarea{min-height:120px;resize:vertical}.modal-actions{display:flex;gap:10px;justify-content:flex-end}@media (max-width:768px){.page-content{margin-top:64px;min-height:calc(100vh - 64px);padding:12px}.card{border-radius:12px;max-width:100%;padding:18px}.auth-container{gap:18px;padding-top:60px}.bus-pass-card{box-shadow:0 6px 16px #00000014;margin:14px;padding:18px}.notif-dropdown{border-radius:10px;left:8px;max-width:none;right:8px;top:56px;width:auto}.btn-chip{gap:6px;padding:6px 10px}.ui-table{-webkit-overflow-scrolling:touch;display:block;overflow:auto}.ui-table tbody,.ui-table td,.ui-table th,.ui-table thead,.ui-table tr{display:table;table-layout:auto;width:100%}.ui-table thead{display:table-header-group}.notif-item{align-items:stretch;flex-direction:column}.notif-actions{justify-content:flex-end;margin-top:8px}}@media (max-width:420px){.nav-links a{font-size:14px;padding:0 8px}.bus-pass-card,.card{padding:14px}}.table-wrapper{-webkit-overflow-scrolling:touch;overflow:auto;padding-bottom:8px;width:100%}
/*# sourceMappingURL=main.2e8ab62b.css.map*/