*{box-sizing:border-box;margin:0;padding:0}html,body,#root{color:#0f172a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;width:100%;max-width:100%;min-height:100vh;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Plus Jakarta Sans,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;overflow-x:hidden}.ant-layout{background:#f8fafc;min-width:0;min-height:100vh}.ant-layout.ant-layout-has-sider{flex-direction:row!important;width:100%!important;min-width:0!important;max-width:100%!important;display:flex!important}.ant-layout.ant-layout-has-sider>.ant-layout-sider{flex:none!important;min-width:0!important}.ant-layout.ant-layout-has-sider>.ant-layout{flex-direction:column!important;flex:1!important;width:0!important;min-width:0!important;max-width:100%!important;display:flex!important}.ant-layout-header{overflow:hidden;box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:100%!important}.ant-layout-content{overflow-x:hidden;box-sizing:border-box!important;flex:auto!important;width:100%!important;min-width:0!important;max-width:100%!important;margin:0!important}.ant-card{border:1px solid #e2e8f0;min-width:0;max-width:100%;box-shadow:0 1px 3px #0f172a0a,0 1px 2px #0f172a05}.ant-card-body{box-sizing:border-box;min-width:0;max-width:100%}.ant-table-wrapper{-webkit-overflow-scrolling:touch;width:100%;min-width:0;max-width:100%;overflow-x:auto}.ant-table{max-width:100%}.admin-page-container{box-sizing:border-box;flex-direction:column;gap:20px;width:100%;min-width:0;max-width:100%;display:flex}.admin-page-header{box-sizing:border-box;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;width:100%;min-width:0;max-width:100%;display:flex}.admin-kpi-grid{box-sizing:border-box;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;width:100%;max-width:100%;display:grid}.admin-kpi-card{box-sizing:border-box;background:#fff;border:1px solid #e2e8f0;border-radius:12px;min-width:0;padding:16px 18px;box-shadow:0 1px 3px #0f172a08}@media (width<=1100px){.admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.admin-kpi-grid{grid-template-columns:1fr}}@media (width<=767px){.ant-layout-content{margin:12px 10px!important;padding:0!important}.ant-card-head{flex-wrap:wrap;gap:8px;padding:12px 16px}.ant-card-head-wrapper{flex-wrap:wrap;row-gap:8px}.ant-card-extra{width:100%;margin-left:0}.ant-card-body{padding:14px 12px!important}.portal-header-username{text-overflow:ellipsis;white-space:nowrap;max-width:90px;overflow:hidden}}@media (width<=991px){.ant-layout-content{margin:16px 14px!important}}@media print{.ant-layout-sider,.ant-layout-header,.no-print,.student-header,.student-bottom-dock,.ant-btn,.ant-select,.ant-picker{display:none!important}.ant-layout,.ant-layout-content,body{background:#fff!important;margin:0!important;padding:0!important}.print-only{display:block!important}.ant-card{box-shadow:none!important;border:none!important}}.print-only{display:none}.matrix-day-cell:hover{transform:translateY(-1px);border-color:#0284c7!important;box-shadow:0 2px 8px #0284c726!important}.ant-message{z-index:999999!important;top:24px!important}.ant-message-notice-content{color:#0f172a!important;background:#fff!important;border:1px solid #e2e8f0!important;border-radius:8px!important;align-items:center!important;padding:10px 18px!important;font-size:13.5px!important;font-weight:600!important;display:inline-flex!important;box-shadow:0 10px 25px -3px #0f172a14,0 4px 10px -2px #0f172a0a!important}.ant-notification{z-index:999999!important}.ant-notification-notice{background:#fff!important;border:1px solid #e2e8f0!important;border-radius:14px!important;padding:16px 20px!important;position:relative!important;overflow:hidden!important;box-shadow:0 20px 40px -6px #0f172a1a,0 8px 16px -4px #0f172a0a!important}.ant-notification-notice-success{border-left:4.5px solid #10b981!important}.ant-notification-notice-error{border-left:4.5px solid #ef4444!important}.ant-notification-notice-warning{border-left:4.5px solid #f59e0b!important}.ant-notification-notice-info{border-left:4.5px solid #0284c7!important}.ant-notification-notice-message{color:#0f172a!important;letter-spacing:-.01em!important;margin-bottom:4px!important;font-size:14.5px!important;font-weight:700!important}.ant-notification-notice-description{color:#475569!important;font-size:13px!important;line-height:1.5!important}.ant-notification-notice-close{color:#94a3b8!important;transition:color .2s!important;top:14px!important;right:14px!important}.ant-notification-notice-close:hover{color:#0f172a!important}.ant-notification-notice .anticon{font-size:20px!important}.uts-wa-widget-container{z-index:9999;font-family:var(--font-body,"Plus Jakarta Sans", sans-serif);position:fixed;bottom:24px;right:24px}.uts-wa-float-btn{cursor:pointer;background:linear-gradient(135deg,#25d366 0%,#128c7e 100%);border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;padding:0;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 8px 24px #25d36666,0 2px 8px #0000001f;color:#fff!important}.uts-wa-float-btn:hover{transform:translateY(-3px)scale(1.06);box-shadow:0 12px 30px #25d3668c,0 4px 12px #0000002e}.uts-wa-float-btn:active{transform:translateY(0)scale(.96)}.uts-wa-icon{color:#fff;font-size:26px;line-height:1}.uts-wa-popover{-webkit-backdrop-filter:blur(20px);background:#fffffff5;border:1.5px solid #fffffff2;border-radius:20px;flex-direction:column;width:320px;display:flex;position:absolute;bottom:64px;right:0;overflow:hidden;box-shadow:0 20px 48px -8px #0f172a38,0 6px 16px #25d3661f}.uts-wa-popover-head{color:#fff;background:linear-gradient(135deg,#075e54 0%,#128c7e 100%);justify-content:space-between;align-items:center;padding:16px;display:flex}.uts-wa-head-title{align-items:center;gap:6px;font-size:15px;font-weight:800;display:flex}.uts-wa-head-sub{opacity:.85;margin-top:2px;font-size:11px}.uts-wa-close-btn{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;transition:background .15s;display:flex}.uts-wa-close-btn:hover{background:#ffffff59}.uts-wa-popover-body{flex-direction:column;gap:10px;padding:16px;display:flex}.uts-wa-contact-card{color:#0f172a;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:center;padding:10px 12px;text-decoration:none;transition:all .2s;display:flex}.uts-wa-contact-card:hover{background:#fff;border-color:#25d366;transform:translate(2px);box-shadow:0 4px 12px #25d36626}.uts-wa-contact-info{flex-direction:column;display:flex}.uts-wa-contact-name{color:#0f172a;font-size:13.5px;font-weight:700}.uts-wa-contact-role{color:#0284c7;font-size:11.5px;font-weight:600}.uts-wa-action-badge{color:#fff;background:#25d366;border-radius:999px;align-items:center;gap:4px;padding:5px 10px;font-size:11.5px;font-weight:700;display:inline-flex}@media (width<=480px){.uts-wa-widget-container{bottom:18px;right:16px}.uts-wa-float-btn{width:48px;height:48px}.uts-wa-icon{font-size:24px}.uts-wa-popover{width:290px;bottom:58px}}.student-header-root{z-index:100;background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;height:68px;padding:0 24px;display:flex;position:sticky;top:0;box-shadow:0 2px 10px #0f172a0a}.student-brand-group{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;display:flex}.student-brand-icon{color:#fff;background:linear-gradient(135deg,#0284c7 0%,#034694 100%);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex;box-shadow:0 4px 12px #0284c740}.student-brand-title{color:#0f172a;letter-spacing:-.3px;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:16px;font-weight:800}.student-portal-tag{color:#0284c7;background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;padding:3px 8px;font-size:11px;font-weight:700}.student-top-nav{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:8px;padding:4px;display:flex}.student-nav-tab{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:13.5px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.student-nav-tab:hover{color:#0f172a;background:#fffc}.student-nav-tab.active{color:#0284c7;background:#fff;font-weight:700;box-shadow:0 2px 8px #0f172a14}.student-nav-tab.active .student-nav-icon{color:#0284c7}.student-nav-icon{font-size:15px}.student-header-right{align-items:center;gap:12px;display:flex}.student-user-button{cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;align-items:center;gap:8px;padding:4px 10px;transition:all .2s;display:inline-flex}.student-user-button:hover{background:#f1f5f9;border-color:#cbd5e1}.student-user-name{color:#0f172a;text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:13.5px;font-weight:700;overflow:hidden}.student-content-canvas{box-sizing:border-box;max-width:1080px;min-height:calc(100vh - 68px);margin:0 auto;padding:28px 24px}.student-bottom-dock{-webkit-backdrop-filter:blur(16px);z-index:1000;box-sizing:border-box;background:#fffffff2;border-top:1px solid #e2e8f0;height:64px;padding:0 12px;display:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #0f172a0f}.student-bottom-dock-inner{justify-content:space-around;align-items:center;max-width:500px;height:100%;margin:0 auto;display:flex}.student-dock-item{color:#64748b;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;height:100%;font-size:11px;font-weight:600;text-decoration:none;transition:all .2s;display:flex}.student-dock-icon{font-size:20px;transition:all .2s}.student-dock-item.active{color:#0284c7;font-weight:800}.student-dock-item.active .student-dock-icon{color:#0284c7;transform:translateY(-2px)}@media (width<=768px){.student-header-root{height:60px;padding:0 16px}.student-top-nav{display:none}.student-brand-title{font-size:14.5px}.student-portal-tag,.student-user-name{display:none}.student-content-canvas{padding:16px 14px 84px}.student-bottom-dock{display:block}}.ant-layout-sider-dark,.ant-layout-sider-dark .ant-menu.ant-menu-dark{background:#0b132b!important}.ant-menu-dark .ant-menu-item{color:#94a3b8!important;border-radius:8px!important;width:calc(100% - 16px)!important;margin:3px 8px!important;font-weight:600!important;transition:all .15s!important}.ant-menu-dark .ant-menu-item:hover{color:#fff!important;background:#ffffff0f!important}.ant-menu-dark .ant-menu-item-selected{color:#fff!important;background:#0284c7!important;font-weight:700!important;box-shadow:0 2px 10px #0284c747!important}.ant-menu-dark .ant-menu-submenu-title{color:#94a3b8!important;border-radius:8px!important;width:calc(100% - 16px)!important;margin:3px 8px!important;font-weight:600!important;transition:all .15s!important}.ant-menu-dark .ant-menu-submenu-title:hover{color:#fff!important;background:#ffffff0f!important}.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title{color:#38bdf8!important;font-weight:700!important}.ant-menu-dark .ant-menu-item-group-title{color:#475569!important;letter-spacing:.8px!important;text-transform:uppercase!important;padding:14px 16px 4px!important;font-size:10px!important;font-weight:800!important}.sider-collapse-trigger:hover{background:#ffffff0f;color:#fff!important}.sider-menu-scroll::-webkit-scrollbar{width:5px}.sider-menu-scroll::-webkit-scrollbar-track{background:0 0}.sider-menu-scroll::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.sider-menu-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.app-content-scroll::-webkit-scrollbar{width:6px;height:6px}.app-content-scroll::-webkit-scrollbar-track{background:#f1f5f9}.app-content-scroll::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.app-content-scroll::-webkit-scrollbar-thumb:hover{background:#94a3b8}.ant-tooltip.ant-menu-inline-collapsed-tooltip{pointer-events:none;z-index:1050!important;left:86px!important}.ant-tooltip.ant-menu-inline-collapsed-tooltip .ant-tooltip-inner{color:#fff!important;background:#0f172a!important;border:1px solid #ffffff1a!important;border-radius:6px!important;padding:5px 10px!important;font-size:12px!important;font-weight:600!important;box-shadow:0 4px 14px #00000038!important}.ant-tooltip.ant-menu-inline-collapsed-tooltip .ant-tooltip-arrow:before{background:#0f172a!important}:root{--font-display:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--blue-primary:#0284c7;--blue-dark:#034694;--blue-deep-navy:#061938;--blue-cyan:#38bdf8;--blue-ice:#e0f2fe;--blue-canvas:#f0f7ff;--slate-900:#0f172a;--slate-800:#1e293b;--slate-700:#334155;--slate-500:#64748b;--slate-400:#94a3b8;--glass-nav:#ffffffe0;--glass-card:#ffffffd9;--glass-card-hover:#fffffff5;--glass-border:#ffffffe6;--glass-border-blue:#0ea5e92e;--shadow-subtle:0 4px 20px -2px #0f172a0a;--shadow-glass:0 16px 36px -6px #0284c71f, 0 4px 12px -2px #0f172a0a;--shadow-glass-hover:0 24px 48px -6px #0284c72e, 0 8px 18px -2px #0f172a0f;--inner-highlight:inset 0 1px 1px 0 #fffffff2;--wa-green:#10b981;--wa-green-hover:#059669}.uts-landing-wrapper{width:100%;min-height:100vh;font-family:var(--font-body);color:var(--slate-800);background:radial-gradient(circle at 8% 12%,#bae6fdb3 0%,#0000 45%),radial-gradient(circle at 92% 60%,#e0f2febf 0%,#0000 50%),radial-gradient(circle at 50% 35%,#f0f9ffd9 0%,#0000 60%),linear-gradient(#f8fafc 0%,#f0f7ff 35%,#fff 100%);flex-direction:column;display:flex;position:relative;overflow-x:hidden}.uts-ambient-glow-1{filter:blur(80px);pointer-events:none;z-index:0;background:radial-gradient(circle,#38bdf84d 0%,#0284c70d 70%,#0000 100%);border-radius:50%;width:520px;height:520px;position:absolute;top:-140px;right:-60px}.uts-ambient-glow-2{filter:blur(90px);pointer-events:none;z-index:0;background:radial-gradient(circle,#0ea5e938 0%,#0346940d 70%,#0000 100%);border-radius:50%;width:460px;height:460px;position:absolute;top:45%;left:-140px}.uts-header{z-index:100;-webkit-backdrop-filter:blur(20px);background:var(--glass-nav);border-bottom:1px solid var(--glass-border-blue);width:100%;box-shadow:var(--shadow-subtle);position:sticky;top:0}.uts-header-container{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:16px 24px;display:flex}.uts-brand-link{color:var(--blue-deep-navy);cursor:pointer;align-items:center;gap:16px;text-decoration:none;display:flex}.uts-logo-frame{background:#fff;border:1.5px solid #fffffff2;border-radius:14px;justify-content:center;align-items:center;width:58px;height:58px;padding:4px;transition:transform .2s;display:flex;box-shadow:0 6px 18px #0284c738,inset 0 1px #fff}.uts-logo-frame:hover{transform:scale(1.04)}.uts-logo-img{object-fit:contain;width:100%;height:100%}.uts-brand-text-block{flex-direction:column;display:flex}.uts-brand-name{font-family:var(--font-display);letter-spacing:-.4px;color:var(--blue-deep-navy);font-size:20px;font-weight:800;line-height:1.15}.uts-brand-tagline{color:var(--blue-primary);letter-spacing:.5px;text-transform:uppercase;font-size:12px;font-weight:700}.uts-header-actions{align-items:center;gap:12px;display:flex}.uts-btn-primary{font-family:var(--font-body);cursor:pointer;background:linear-gradient(135deg,#0284c7 0%,#034694 100%);border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 22px;font-size:14.5px;font-weight:600;text-decoration:none;transition:all .22s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 4px 14px #0284c752,inset 0 1px #ffffff40;color:#fff!important}.uts-btn-primary:hover{background:linear-gradient(135deg,#0369a1 0%,#022e62 100%);transform:translateY(-1.5px);box-shadow:0 6px 20px #0284c76b}.uts-btn-secondary{font-family:var(--font-body);cursor:pointer;background:#ffffffe6;border:1.5px solid #0284c74d;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 20px;font-size:14.5px;font-weight:600;text-decoration:none;transition:all .22s;display:inline-flex;color:var(--blue-primary)!important}.uts-btn-secondary:hover{border-color:var(--blue-primary);background:#fff;transform:translateY(-1.5px);box-shadow:0 4px 14px #0284c726}.uts-btn-hero-primary{border-radius:12px;min-height:50px;padding:14px 28px;font-size:15.5px}.uts-btn-hero-secondary{border-radius:12px;min-height:50px;padding:14px 26px;font-size:15.5px}.uts-main{z-index:1;flex:1;width:100%;max-width:1200px;margin:0 auto;padding:40px 24px 56px}.uts-hero-grid{grid-template-columns:1fr;align-items:center;gap:36px;margin-bottom:44px;display:grid}.uts-hero-badge{color:var(--blue-primary);background:#0284c714;border:1px solid #0284c738;border-radius:999px;align-items:center;gap:8px;margin-bottom:18px;padding:6px 16px;font-size:13px;font-weight:600;display:inline-flex;box-shadow:0 2px 8px #0284c70f}.uts-badge-dot{background:var(--wa-green);border-radius:50%;width:7px;height:7px;animation:2s infinite uts-pulse;box-shadow:0 0 #10b981b3}@keyframes uts-pulse{0%{transform:scale(.95);box-shadow:0 0 #10b981b3}70%{transform:scale(1);box-shadow:0 0 0 6px #10b98100}to{transform:scale(.95);box-shadow:0 0 #10b98100}}.uts-hero-title{font-family:var(--font-display);letter-spacing:-.03em;color:var(--blue-deep-navy);margin:0 0 16px;font-size:clamp(2.1rem,5vw,3rem);font-weight:800;line-height:1.14}.uts-hero-title .gradient-text{background:linear-gradient(135deg,#0284c7 0%,#034694 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.uts-hero-description{color:var(--slate-700);max-width:520px;margin:0 0 28px;font-size:clamp(1rem,2vw,1.1rem);line-height:1.65}.uts-hero-ctas{flex-direction:column;gap:12px;display:flex}.uts-pass-frame{background:var(--glass-card);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);box-shadow:var(--shadow-glass), var(--inner-highlight);border-radius:24px;padding:26px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.uts-pass-frame:hover{box-shadow:var(--shadow-glass-hover), var(--inner-highlight);transform:translateY(-3px)}.uts-pass-topbar{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.uts-pass-badge-live{color:#059669;letter-spacing:.4px;text-transform:uppercase;background:#10b9811f;border:1px solid #10b98140;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:11.5px;font-weight:700;display:inline-flex}.uts-digital-pass{color:#fff;background:linear-gradient(135deg,#03366e 0%,#0284c7 100%);border:1px solid #ffffff2e;border-radius:16px;margin-bottom:18px;padding:22px;position:relative;overflow:hidden;box-shadow:0 12px 32px #03366e52}.uts-pass-card-head{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.uts-pass-name{font-family:var(--font-display);letter-spacing:-.2px;font-size:17px;font-weight:800}.uts-pass-sub{opacity:.85;font-size:11.5px}.uts-pass-chip{letter-spacing:.5px;background:#fff3;border:1px solid #ffffff59;border-radius:6px;padding:4px 10px;font-size:10.5px;font-weight:700}.uts-pass-grid{border-top:1px solid #fff3;grid-template-columns:1fr 1fr;gap:14px;padding-top:14px;display:grid}.uts-pass-lbl{opacity:.75;text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px;font-size:10.5px;font-weight:600}.uts-pass-val{font-size:13.5px;font-weight:700}.uts-pass-foot{color:var(--slate-500);justify-content:space-between;align-items:center;font-size:12.5px;display:flex}.uts-highlights-grid{grid-template-columns:1fr;gap:18px;margin-bottom:40px;display:grid}.uts-highlight-card{background:var(--glass-card);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);box-shadow:var(--shadow-glass), var(--inner-highlight);border-radius:18px;align-items:flex-start;gap:18px;padding:24px 22px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.uts-highlight-card:hover{background:var(--glass-card-hover);box-shadow:var(--shadow-glass-hover), var(--inner-highlight);border-color:#0284c759;transform:translateY(-3px)}.uts-highlight-icon{width:48px;height:48px;color:var(--blue-primary);background:linear-gradient(135deg,#0284c71f,#38bdf838);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;font-size:22px;display:flex}.uts-highlight-title{font-family:var(--font-display);color:var(--blue-deep-navy);margin:0 0 4px;font-size:17px;font-weight:700}.uts-highlight-desc{color:var(--slate-700);margin:0;font-size:14px;line-height:1.6}.uts-concierge-box{background:var(--glass-card);-webkit-backdrop-filter:blur(18px);border:1px solid var(--glass-border-blue);box-shadow:var(--shadow-glass), var(--inner-highlight);border-radius:22px;margin-bottom:20px;padding:26px 24px}.uts-concierge-head{align-items:center;gap:10px;margin-bottom:4px;display:flex}.uts-concierge-title{font-family:var(--font-display);color:var(--blue-deep-navy);margin:0;font-size:18px;font-weight:800}.uts-concierge-sub{color:var(--slate-500);margin-bottom:20px;font-size:13.5px}.uts-concierge-grid{grid-template-columns:1fr;gap:16px;display:grid}.uts-person-card{background:#fffffff0;border:1.5px solid #0284c729;border-radius:14px;flex-direction:column;gap:14px;padding:18px 20px;transition:all .2s;display:flex;box-shadow:0 2px 12px #0f172a08}.uts-person-card:hover{border-color:var(--blue-primary);transform:translateY(-2px);box-shadow:0 8px 20px #0284c71f}.uts-person-info{justify-content:space-between;align-items:center;display:flex}.uts-person-name{color:var(--blue-deep-navy);font-size:15.5px;font-weight:800}.uts-person-role{color:var(--blue-primary);margin-left:6px;font-size:12.5px;font-weight:700}.uts-person-phone{color:var(--slate-800);letter-spacing:.3px;font-size:14px;font-weight:700}.uts-person-buttons{gap:10px;display:flex}.uts-btn-wa{background:var(--wa-green);border-radius:9px;flex:1;justify-content:center;align-items:center;gap:7px;min-height:40px;padding:9px 16px;font-size:13.5px;font-weight:700;text-decoration:none;transition:all .2s;display:inline-flex;box-shadow:0 3px 10px #10b98140;color:#fff!important}.uts-btn-wa:hover{background:var(--wa-green-hover);transform:translateY(-1.5px);box-shadow:0 6px 16px #10b98159}.uts-btn-call{background:#f8fafc;border:1.5px solid #cbd5e1;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:7px;min-height:40px;padding:9px 16px;font-size:13.5px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex;color:var(--blue-deep-navy)!important}.uts-btn-call:hover{border-color:var(--blue-primary);background:#fff;transform:translateY(-1.5px);color:var(--blue-primary)!important}.uts-footer{border-top:1px solid var(--glass-border-blue);-webkit-backdrop-filter:blur(16px);color:var(--slate-700);background:#fffffff0;padding:36px 24px 28px;font-size:13.5px}.uts-footer-main{border-bottom:1px solid #0ea5e926;grid-template-columns:1fr;gap:24px;max-width:1200px;margin:0 auto;padding-bottom:24px;display:grid}.uts-footer-col-brand{flex-direction:column;gap:10px;display:flex}.uts-footer-brand-header{align-items:center;gap:12px;display:flex}.uts-footer-logo-img{object-fit:contain;width:38px;height:38px}.uts-footer-col-links{flex-direction:column;gap:8px;display:flex}.uts-footer-heading{font-family:var(--font-display);color:var(--blue-deep-navy);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:14px;font-weight:700}.uts-footer-bottom{text-align:center;flex-direction:column;align-items:center;gap:14px;max-width:1200px;margin:0 auto;padding-top:20px;display:flex}.uts-dev-credits-pill{background:#0284c70f;border:1px solid #0284c729;border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 18px;padding:10px 22px;font-size:13px;display:inline-flex;box-shadow:0 2px 8px #0284c70a}.uts-dev-link{color:var(--blue-primary);align-items:center;gap:5px;font-weight:700;text-decoration:none;transition:all .15s;display:inline-flex}.uts-dev-link:hover{color:var(--blue-dark);text-decoration:underline}@media (width>=640px){.uts-hero-ctas{flex-direction:row}.uts-highlights-grid{grid-template-columns:repeat(2,1fr)}.uts-highlight-card{flex-direction:column}.uts-concierge-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=768px){.uts-footer-main{grid-template-columns:2fr 1fr 1fr}.uts-footer-bottom{text-align:left;flex-direction:row;justify-content:space-between}}@media (width>=1024px){.uts-hero-grid{grid-template-columns:1.15fr .85fr;gap:54px}}.login-page-root{box-sizing:border-box;width:100%;min-height:100dvh;font-family:var(--font-body,"Plus Jakarta Sans", sans-serif);color:#0f172a;background:radial-gradient(circle at 10% 10%,#bae6fdb3 0%,#0000 45%),radial-gradient(circle at 90% 65%,#e0f2febf 0%,#0000 50%),radial-gradient(circle at 50% 35%,#f0f9ffd9 0%,#0000 60%),linear-gradient(#f8fafc 0%,#f0f7ff 35%,#fff 100%);flex-direction:column;justify-content:center;align-items:center;padding:68px 16px 88px;display:flex;position:relative;overflow-x:hidden}.login-ambient-1{filter:blur(80px);pointer-events:none;z-index:0;background:radial-gradient(circle,#38bdf847 0%,#0284c70d 70%,#0000 100%);border-radius:50%;width:min(480px,90vw);height:min(480px,90vw);position:absolute;top:-100px;right:-80px}.login-ambient-2{filter:blur(80px);pointer-events:none;z-index:0;background:radial-gradient(circle,#0ea5e933 0%,#0346940d 70%,#0000 100%);border-radius:50%;width:min(420px,85vw);height:min(420px,85vw);position:absolute;bottom:-100px;left:-80px}.login-top-nav{z-index:20;position:absolute;top:18px;left:20px}.login-back-link{-webkit-backdrop-filter:blur(10px);color:#0284c7;background:#ffffffe6;border:1px solid #0ea5e940;border-radius:10px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:700;text-decoration:none;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #0f172a0a}.login-back-link:hover{background:#fff;border-color:#0284c7;transform:translate(-2px)}.login-card-container{box-sizing:border-box;-webkit-backdrop-filter:blur(24px);z-index:10;background:#ffffffe6;border:1.5px solid #fffffff2;border-radius:22px;width:100%;max-width:440px;padding:32px 28px;position:relative;box-shadow:0 20px 48px -10px #0284c729,0 4px 14px -2px #0f172a0a,inset 0 1px 1px #fff}.login-card-header{text-align:center;flex-direction:column;align-items:center;margin-bottom:22px;display:flex}.login-logo-badge{background:#fff;border:1.5px solid #fffffff2;border-radius:14px;justify-content:center;align-items:center;width:54px;height:54px;margin-bottom:12px;padding:5px;display:flex;box-shadow:0 6px 18px #0284c733}.login-logo-img{object-fit:contain;width:100%;height:100%}.login-title{font-family:var(--font-display,"Outfit", sans-serif);color:#061938;letter-spacing:-.4px;margin:0 0 4px;font-size:clamp(20px,5vw,24px);font-weight:800;line-height:1.25}.login-subtitle{color:#64748b;margin:0;font-size:13px;font-weight:600;line-height:1.4}.login-input-field{color:#0f172a;box-sizing:border-box;background:#fffffff2;border:1.5px solid #cbd5e1;border-radius:10px;width:100%;height:46px;font-size:14px;transition:all .2s}.login-input-field:hover{border-color:#94a3b8}.login-input-field:focus,.login-input-field.ant-input-affix-wrapper-focused{background:#fff!important;border-color:#0284c7!important;box-shadow:0 0 0 3px #0284c729!important}.login-btn-primary{width:100%;height:46px;font-family:var(--font-body,"Plus Jakarta Sans", sans-serif);cursor:pointer;background:linear-gradient(135deg,#0284c7 0%,#034694 100%);border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-top:6px;font-size:14.5px;font-weight:700;transition:all .22s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 6px 18px #0284c759;color:#fff!important}.login-btn-primary:hover{background:linear-gradient(135deg,#0369a1 0%,#022e62 100%);transform:translateY(-1.5px);box-shadow:0 8px 24px #0284c773}.login-btn-primary:active{transform:translateY(0)}@media (width<=480px){.login-page-root{padding:60px 14px 80px}.login-card-container{border-radius:18px;padding:24px 18px}.login-top-nav{top:14px;left:14px}.login-input-field{font-size:16px!important}}@media (width<=360px){.login-card-container{padding:20px 14px}.login-title{font-size:19px}}.reg-page-root{box-sizing:border-box;width:100%;min-height:100dvh;font-family:var(--font-body,"Plus Jakarta Sans", sans-serif);color:#0f172a;background:radial-gradient(circle at 10% 10%,#bae6fdb3 0%,#0000 45%),radial-gradient(circle at 90% 65%,#e0f2febf 0%,#0000 50%),radial-gradient(circle at 50% 35%,#f0f9ffd9 0%,#0000 60%),linear-gradient(#f8fafc 0%,#f0f7ff 35%,#fff 100%);flex-direction:column;justify-content:center;align-items:center;padding:68px 16px 88px;display:flex;position:relative;overflow-x:hidden}.reg-ambient-sphere-1{filter:blur(80px);pointer-events:none;z-index:0;background:radial-gradient(circle,#38bdf847 0%,#0284c70d 70%,#0000 100%);border-radius:50%;width:min(480px,90vw);height:min(480px,90vw);position:absolute;top:-100px;right:-80px}.reg-ambient-sphere-2{filter:blur(80px);pointer-events:none;z-index:0;background:radial-gradient(circle,#0ea5e933 0%,#0346940d 70%,#0000 100%);border-radius:50%;width:min(420px,85vw);height:min(420px,85vw);position:absolute;bottom:-100px;left:-80px}.reg-top-nav{z-index:20;position:absolute;top:18px;left:20px}.reg-back-link{-webkit-backdrop-filter:blur(10px);color:#0284c7;background:#ffffffe6;border:1px solid #0ea5e940;border-radius:10px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:700;text-decoration:none;transition:all .2s;display:inline-flex;box-shadow:0 2px 8px #0f172a0a}.reg-back-link:hover{background:#fff;border-color:#0284c7;transform:translate(-2px)}.reg-card-container{box-sizing:border-box;-webkit-backdrop-filter:blur(24px);z-index:10;background:#ffffffe6;border:1.5px solid #fffffff2;border-radius:22px;width:100%;max-width:440px;padding:32px 28px;position:relative;box-shadow:0 20px 48px -10px #0284c729,0 4px 14px -2px #0f172a0a,inset 0 1px 1px #fff}.reg-card-header{text-align:center;flex-direction:column;align-items:center;margin-bottom:22px;display:flex}.reg-logo-badge{background:#fff;border:1.5px solid #fffffff2;border-radius:14px;justify-content:center;align-items:center;width:54px;height:54px;margin-bottom:12px;padding:5px;display:flex;box-shadow:0 6px 18px #0284c733}.reg-logo-img{object-fit:contain;width:100%;height:100%}.reg-title{font-family:var(--font-display,"Outfit", sans-serif);color:#061938;letter-spacing:-.4px;margin:0 0 4px;font-size:clamp(20px,5vw,24px);font-weight:800;line-height:1.25}.reg-subtitle{color:#64748b;margin:0;font-size:13px;font-weight:600;line-height:1.4}.reg-form-label{color:#1e293b;margin-bottom:4px;font-size:13px;font-weight:700;display:block}.reg-input-field{color:#0f172a;box-sizing:border-box;background:#fffffff2;border:1.5px solid #cbd5e1;border-radius:10px;width:100%;height:46px;font-size:14px;transition:all .2s}.reg-input-field:hover{border-color:#94a3b8}.reg-input-field:focus,.reg-input-field.ant-input-affix-wrapper-focused{background:#fff!important;border-color:#0284c7!important;box-shadow:0 0 0 3px #0284c729!important}.reg-btn-submit{width:100%;height:46px;font-family:var(--font-body,"Plus Jakarta Sans", sans-serif);cursor:pointer;background:linear-gradient(135deg,#0284c7 0%,#034694 100%);border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-top:6px;font-size:14.5px;font-weight:700;transition:all .22s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 6px 18px #0284c759;color:#fff!important}.reg-btn-submit:hover{background:linear-gradient(135deg,#0369a1 0%,#022e62 100%);transform:translateY(-1.5px);box-shadow:0 8px 24px #0284c773}.reg-btn-submit:active{transform:translateY(0)}.reg-footer-link{text-align:center;color:#64748b;margin-top:18px;font-size:13px}.reg-link-signin{color:#0284c7;margin-left:4px;font-weight:700;text-decoration:none}.reg-link-signin:hover{color:#034694;text-decoration:underline}.reg-bottom-note{text-align:center;color:#64748b;z-index:10;margin-top:18px;font-size:12px}@media (width<=480px){.reg-page-root{padding:60px 14px 80px}.reg-card-container{border-radius:18px;padding:24px 18px}.reg-top-nav{top:14px;left:14px}.reg-input-field{font-size:16px!important}}@media (width<=360px){.reg-card-container{padding:20px 14px}.reg-title{font-size:19px}}.sd-container{flex-direction:column;gap:20px;max-width:1040px;margin:0 auto;padding-bottom:36px;animation:.25s ease-out sdFadeIn;display:flex}@keyframes sdFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.sd-header{justify-content:space-between;align-items:center;gap:12px;padding-bottom:4px;display:flex}.sd-title{color:#0f172a;letter-spacing:-.5px;margin:0 0 2px;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:26px;font-weight:800;line-height:1.2}.sd-subtitle{color:#64748b;margin:0;font-size:14px;font-weight:500}.sd-banner-card{border-radius:14px;box-shadow:0 1px 3px #0f172a0a}.sd-banner-card.review{background:#fffbeb;border:1.5px solid #fed7aa}.sd-banner-card.rejected{background:#fef2f2;border:1.5px solid #fecaca}.sd-banner-card.pending{background:#f0f9ff;border:1.5px solid #bae6fd}.sd-banner-content{flex-direction:column;gap:8px;display:flex}.sd-badge{letter-spacing:.6px;text-transform:uppercase;border-radius:6px;align-self:flex-start;padding:3px 10px;font-size:11px;font-weight:800;display:inline-block}.sd-badge.review{color:#c2410c;background:#ffedd5;border:1px solid #fdba74}.sd-badge.rejected{color:#b91c1c;background:#fee2e2;border:1px solid #fca5a5}.sd-badge.pending{color:#0369a1;background:#e0f2fe;border:1px solid #7dd3fc}.sd-banner-title{margin:0;font-family:Plus Jakarta Sans,sans-serif;font-size:18px;font-weight:800;line-height:1.3}.sd-banner-card.review .sd-banner-title{color:#9a3412}.sd-banner-card.rejected .sd-banner-title{color:#991b1b}.sd-banner-card.pending .sd-banner-title{color:#0369a1}.sd-banner-desc{color:#475569;margin:0;font-size:14px;line-height:1.5}.sd-banner-hint{color:#64748b;margin:4px 0 0;font-size:13px;line-height:1.5}.sd-banner-note{background:#fff;border-radius:8px;margin-top:4px;padding:12px 16px}.sd-banner-note.review{border:1px solid #fed7aa}.sd-banner-note.rejected{border:1px solid #fecaca}.sd-banner-note-label{text-transform:uppercase;color:#ea580c;margin-bottom:2px;font-size:11px;font-weight:800}.sd-banner-note-text{color:#334155;font-size:13.5px;font-weight:600;line-height:1.4}.sd-banner-actions{margin-top:8px}.sd-btn-orange{background:#ea580c!important;border-color:#ea580c!important;border-radius:8px!important;height:40px!important;padding:0 18px!important;font-weight:700!important}.sd-btn-secondary{border-radius:8px!important;height:40px!important;padding:0 18px!important;font-weight:700!important}.sd-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;transition:all .2s;box-shadow:0 1px 3px #0f172a0a}.sd-card:hover{border-color:#cbd5e1;box-shadow:0 4px 14px #0f172a0d}.sd-card .ant-card-body{padding:24px}.sd-section-label{color:#64748b;text-transform:uppercase;letter-spacing:.6px;font-size:11.5px;font-weight:800;display:block}.sd-top-grid{grid-template-columns:1.15fr .85fr;gap:16px;display:grid}.sd-transport-card{border-top:4px solid #10b981}.sd-transport-card.expiring_soon{border-top-color:#f59e0b}.sd-transport-card.expired{border-top-color:#ef4444}.sd-transport-card.unpaid{border-top-color:#0284c7}.sd-transport-card .sd-card-body{flex-direction:column;justify-content:space-between;gap:18px;height:100%;display:flex}.sd-status-tag{letter-spacing:.4px;text-transform:uppercase;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:11.5px;font-weight:800;display:inline-flex}.sd-status-tag.active{color:#059669;background:#ecfdf5;border:1px solid #a7f3d0}.sd-status-tag.expiring_soon{color:#d97706;background:#fffbeb;border:1px solid #fde68a}.sd-status-tag.expired{color:#dc2626;background:#fef2f2;border:1px solid #fecaca}.sd-status-tag.unpaid{color:#0284c7;background:#f0f9ff;border:1px solid #bae6fd}.sd-status-headline{color:#0f172a;margin:8px 0 4px;font-family:Plus Jakarta Sans,sans-serif;font-size:20px;font-weight:800;line-height:1.3}.sd-status-subtext{color:#64748b;margin:0;font-size:14px;line-height:1.45}.sd-btn-primary{background:#0284c7!important;border-color:#0284c7!important;border-radius:10px!important;height:44px!important;font-size:14.5px!important;font-weight:700!important;box-shadow:0 2px 8px #0284c740!important}.sd-btn-primary:hover{background:#0369a1!important;border-color:#0369a1!important}.sd-payment-card .sd-card-body{flex-direction:column;justify-content:space-between;gap:16px;height:100%;display:flex}.sd-payment-metrics{flex-direction:column;gap:14px;display:flex}.sd-payment-metric-group{flex-direction:column;gap:2px;display:flex}.sd-metric-caption{color:#64748b;font-size:12px;font-weight:600}.sd-metric-val{color:#0f172a;font-family:Plus Jakarta Sans,sans-serif;font-size:17px;font-weight:800}.sd-metric-val.due{color:#d97706}.sd-metric-val.cleared{color:#059669}.sd-metric-sub{color:#64748b;font-size:12px;font-weight:500}.sd-btn-outline{color:#334155!important;border-color:#cbd5e1!important;border-radius:10px!important;height:42px!important;font-weight:700!important}.sd-btn-outline:hover{color:#0284c7!important;border-color:#0284c7!important}.sd-support-footer{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 22px;display:flex}.sd-support-text{color:#475569;font-size:13.5px;font-weight:600}.sd-support-btn{border-radius:8px!important;height:38px!important;font-weight:700!important}@media (width<=768px){.sd-top-grid{grid-template-columns:1fr;gap:14px}.sd-card .ant-card-body{padding:18px 16px}.sd-support-footer{flex-direction:column;align-items:flex-start;gap:10px}.sd-support-btn{justify-content:center;width:100%}}.admin-dashboard-header{box-sizing:border-box;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;width:100%;min-width:0;max-width:100%;display:flex}.admin-dashboard-container{box-sizing:border-box;flex-direction:column;gap:20px;width:100%;min-width:0;max-width:100%;display:flex}.admin-dashboard-header{box-sizing:border-box;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.admin-section-label{color:#64748b;letter-spacing:.5px;text-transform:uppercase;font-size:11.5px;font-weight:700}.admin-kpi-grid{box-sizing:border-box;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;width:100%;display:grid}.admin-kpi-card{cursor:pointer;box-sizing:border-box;background:#fff;border:1px solid #e2e8f0;border-radius:8px;min-width:0;padding:16px 18px;transition:border-color .15s,box-shadow .15s;box-shadow:0 1px 2px #0f172a0a}.admin-kpi-card:hover{border-color:#cbd5e1;box-shadow:0 4px 12px #0f172a0f}.admin-kpi-label{color:#475569;font-size:13px;font-weight:700}.admin-kpi-value{color:#0f172a;margin-top:6px;font-size:26px;font-weight:800;line-height:1.2}.admin-kpi-sub{color:#64748b;margin-top:4px;font-size:12px}.ops-attention-container{box-sizing:border-box;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:16px 20px;box-shadow:0 1px 3px #0f172a0a}.admin-attention-row{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:11px 0;transition:background .15s;display:flex}.admin-attention-row:last-child{border-bottom:none;padding-bottom:2px}.admin-attention-row:first-child{padding-top:4px}.admin-two-col-grid{box-sizing:border-box;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:16px;width:100%;display:grid}.ops-panel{box-sizing:border-box;background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;height:100%;padding:18px 20px;display:flex;box-shadow:0 1px 2px #0f172a08}.ops-data-row{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:8px 0;display:flex}.ops-data-label{color:#64748b;font-size:13px;font-weight:500}.ops-data-value{color:#0f172a;font-size:13.5px;font-weight:700}.admin-quick-actions-strip{box-sizing:border-box;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;width:100%;display:grid}.admin-quick-btn{color:#1e293b!important;background:#fff!important;border:1px solid #e2e8f0!important;border-radius:6px!important;justify-content:center!important;align-items:center!important;min-width:0!important;height:38px!important;padding:0 14px!important;font-size:13px!important;font-weight:600!important;transition:all .15s!important;display:flex!important;box-shadow:0 1px 2px #0f172a08!important}.admin-quick-btn:hover{color:#0284c7!important;background:#f8fafc!important;border-color:#0284c7!important}@media (width<=1100px){.admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.admin-two-col-grid{grid-template-columns:1fr}.admin-quick-actions-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.admin-kpi-grid,.admin-quick-actions-strip{grid-template-columns:1fr}}.schedule-page-container{background:#f8fafc;width:100%;max-width:1080px;min-height:100vh;margin:0 auto;padding:24px 16px 80px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.schedule-loading-container{flex-direction:column;justify-content:center;align-items:center;gap:16px;height:60vh;display:flex}.schedule-loading-text{color:#64748b;font-size:14px;font-weight:500}.schedule-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.schedule-kicker{letter-spacing:1px;color:#64748b;text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:700;display:block}.schedule-main-title{color:#0f172a;margin:0;font-size:24px;font-weight:800;line-height:1.2}.schedule-refresh-btn{color:#64748b;border-radius:8px}.schedule-refresh-btn:hover{color:#0f172a;background:#f1f5f9}.schedule-content-grid{grid-template-columns:1fr;gap:24px;display:grid}@media (width>=860px){.schedule-content-grid{grid-template-columns:1fr 1fr;align-items:flex-start}}.today-ride-card{background:#fff;border:1px solid #f1f5f9;border-radius:16px;flex-direction:column;gap:24px;padding:24px;display:flex;box-shadow:0 4px 20px #0000000a,0 1px 3px #00000005}.today-ride-top{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:16px;display:flex}.ride-card-label-group{flex-direction:column;gap:4px;display:flex}.ride-card-kicker{letter-spacing:.5px;color:#94a3b8;text-transform:uppercase;font-size:11px;font-weight:700}.ride-card-route-name{color:#0f172a;font-size:16px;font-weight:600}.ride-status-pill{white-space:nowrap;text-transform:uppercase;border-radius:99px;align-items:center;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.ride-status-pill.vote-needed{color:#b45309;background:#fffbeb;border:1px solid #fde68a}.ride-status-pill.pending{color:#0f766e;background:#f0fdfa;border:1px solid #ccfbf1}.ride-status-pill.confirmed{color:#15803d;background:#dcfce7;border:1px solid #bbf7d0}.ride-status-pill.leave{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0}.ride-shift-block{flex-direction:column;gap:16px;display:flex}.ride-shift-block.return-block{border-top:1px dashed #e2e8f0;padding-top:24px}.shift-block-header{align-items:center;gap:12px;display:flex}.shift-badge{letter-spacing:.5px;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:700}.shift-badge.pickup{color:#0369a1;background:#e0f2fe}.shift-badge.return{color:#b45309;background:#fef3c7}.shift-time-sub{color:#64748b;font-size:13px;font-weight:500}.shift-eta-display{flex-direction:column;display:flex}.shift-eta-time{color:#0f172a;letter-spacing:-.5px;font-size:32px;font-weight:800;line-height:1}.shift-eta-label{color:#64748b;margin-top:4px;font-size:13px}.shift-stop-row{color:#334155;background:#f8fafc;border:1px solid #f1f5f9;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-size:14px;font-weight:600;display:inline-flex}.your-stop-tag{color:#0284c7;background:#e0f2fe;border-radius:4px;margin-left:auto;padding:2px 6px;font-size:11px;font-weight:700}.vehicle-driver-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.vehicle-plate-row{color:#0f172a;align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.vehicle-type-tag{color:#475569;background:#e2e8f0;border-radius:99px;padding:2px 8px;font-size:11px}.driver-name-row{color:#64748b;font-size:14px}.driver-name-val{color:#334155;font-weight:600}.call-driver-btn{color:#fff;background:#0284c7;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.call-driver-btn:hover{color:#fff;background:#0369a1}.assignment-pending-text{color:#854d0e;background:#fefce8;border:1px solid #fef08a;border-radius:8px;align-items:flex-start;padding:12px 16px;font-size:14px;font-weight:500;display:flex}.view-stops-link-btn{color:#0284c7;cursor:pointer;align-self:flex-start;align-items:center;gap:4px;padding:8px 0;font-size:14px;font-weight:600;display:inline-flex}.view-stops-link-btn:hover{text-decoration:underline}.shift-selection-card{background:#fff;border:1px solid #f1f5f9;border-radius:16px;padding:24px;box-shadow:0 4px 20px #0000000a,0 1px 3px #00000005}.selection-card-header{border-bottom:1px solid #f1f5f9;flex-direction:column;gap:8px;margin-bottom:24px;padding-bottom:16px;display:flex}.selection-card-title{color:#0f172a;margin:0;font-size:18px;font-weight:800}.poll-deadline-badge{color:#059669;background:#ecfdf5;border-radius:8px;align-self:flex-start;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.poll-deadline-badge.closing-soon{color:#dc2626;background:#fef2f2}.shift-group-title{color:#334155;text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;font-size:14px;font-weight:700;display:block}.shift-options-grid{flex-direction:column;gap:12px;display:flex}.shift-option-card{cursor:pointer;-webkit-user-select:none;user-select:none;background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:center;padding:16px;transition:all .2s;display:flex}.shift-option-card:hover:not(.disabled){background:#f1f5f9;border-color:#cbd5e1}.shift-option-card.selected{background:#f0f9ff;border-color:#0284c7}.shift-option-card.disabled{opacity:.5;cursor:not-allowed;filter:grayscale()}.option-left{flex-direction:column;gap:4px;display:flex}.option-time{color:#0f172a;font-size:18px;font-weight:800}.option-label{color:#64748b;font-size:13px;font-weight:500}.option-radio-circle{background:#fff;border:2px solid #cbd5e1;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;transition:all .2s;display:flex}.shift-option-card.selected .option-radio-circle{background:#0284c7;border-color:#0284c7}.radio-check-icon{color:#fff;font-size:12px}.shift-leave-row{cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:space-between;align-items:center;margin-top:16px;padding:12px 16px;transition:all .2s;display:flex}.shift-leave-row:hover{background:#f8fafc}.shift-leave-row.active{background:#fef2f2;border-color:#fca5a5}.leave-row-text{color:#475569;font-size:14px;font-weight:500}.shift-leave-row.active .leave-row-text{color:#dc2626;font-weight:600}.leave-checkbox-box{border:2px solid #cbd5e1;border-radius:6px;justify-content:center;align-items:center;width:20px;height:20px;transition:all .2s;display:flex}.shift-leave-row.active .leave-checkbox-box{background:#ef4444;border-color:#ef4444}.shift-locked-card{background:#f1f5f9;border-radius:12px;align-items:center;gap:16px;padding:20px;display:flex}.locked-icon{color:#94a3b8;font-size:24px}.locked-title{color:#334155;margin-bottom:4px;font-size:15px;font-weight:700;display:block}.locked-desc{color:#64748b;margin:0;font-size:13px;line-height:1.4}.route-stops-drawer .ant-drawer-header{border-bottom:1px solid #f1f5f9;padding:20px 24px}.route-stops-drawer .ant-drawer-body{background:#f8fafc;padding:0}.stops-drawer-title-row{flex-direction:column;gap:4px;display:flex}.drawer-route-title{color:#0f172a;font-size:18px;font-weight:800}.drawer-route-sub{color:#64748b;font-size:13px;font-weight:500}.stops-list-container{flex-direction:column;gap:12px;padding:16px;display:flex}.stop-row-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:center;padding:16px;display:flex;box-shadow:0 1px 2px #00000005}.stop-row-card.my-stop{background:#f0f9ff;border:2px solid #0ea5e9}.stop-left{align-items:center;gap:12px;display:flex}.stop-order-num{color:#475569;background:#f1f5f9;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:flex}.stop-row-card.my-stop .stop-order-num{color:#0369a1;background:#bae6fd}.stop-name-text{color:#1e293b;align-items:center;font-size:14px;font-weight:600;display:flex}.stop-eta-badge{color:#0f172a;background:#f1f5f9;border-radius:6px;padding:4px 10px;font-size:14px;font-weight:700}.stop-row-card.my-stop .stop-eta-badge{color:#0369a1;background:#bae6fd}.sr-root{box-sizing:border-box;width:100%;min-height:100dvh;font-family:var(--font-body,"Plus Jakarta Sans", sans-serif);color:#0f172a;background:radial-gradient(circle at 10% 10%,#bae6fd99 0%,#0000 40%),radial-gradient(circle at 90% 80%,#e0f2fea6 0%,#0000 45%),linear-gradient(#f8fafc 0%,#f0f7ff 40%,#fff 100%);flex-direction:column;align-items:center;padding:24px 16px 64px;display:flex;position:relative}.sr-top-bar{justify-content:space-between;align-items:center;width:100%;max-width:760px;margin-bottom:28px;padding:0 4px;display:flex}.sr-brand-group{align-items:center;gap:12px;text-decoration:none;display:flex}.sr-brand-logo{background:#fff;border:1px solid #fffffff2;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;padding:4px;display:flex;box-shadow:0 4px 14px #0284c729}.sr-brand-logo img{object-fit:contain;width:100%;height:100%}.sr-brand-name{font-family:var(--font-display,"Outfit", sans-serif);color:#061938;letter-spacing:-.3px;font-size:17px;font-weight:800;display:block}.sr-brand-sub{color:#0284c7;font-size:12px;font-weight:600;display:block}.sr-btn-logout{color:#475569;cursor:pointer;background:#ffffffd9;border:1px solid #cbd5e1;border-radius:10px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex}.sr-btn-logout:hover{color:#ef4444;background:#fff;border-color:#ef4444}.sr-card{box-sizing:border-box;-webkit-backdrop-filter:blur(20px);background:#ffffffeb;border:1.5px solid #fffffff2;border-radius:24px;width:100%;max-width:760px;padding:36px 32px;position:relative;box-shadow:0 20px 48px -12px #0284c71f,0 4px 16px #0f172a0a}.sr-card-title-group{text-align:center;margin-bottom:26px}.sr-card-title{font-family:var(--font-display,"Outfit", sans-serif);color:#061938;letter-spacing:-.4px;margin:0 0 6px;font-size:clamp(22px,5vw,26px);font-weight:800}.sr-card-subtitle{color:#64748b;max-width:500px;margin:0 auto;font-size:14px;line-height:1.45}.sr-stepper-track{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;margin-bottom:32px;padding:0 8px 20px;display:flex;position:relative}.sr-step-node{z-index:2;cursor:default;flex-direction:column;align-items:center;gap:6px;display:flex;position:relative}.sr-step-circle{color:#64748b;background:#f1f5f9;border:2px solid #e2e8f0;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:800;transition:all .25s;display:flex}.sr-step-node.active .sr-step-circle{color:#fff;background:#0284c7;border-color:#0284c7;box-shadow:0 4px 12px #0284c759}.sr-step-node.completed .sr-step-circle{color:#fff;background:#10b981;border-color:#10b981}.sr-step-text{color:#64748b;white-space:nowrap;font-size:12px;font-weight:700;transition:color .2s}.sr-step-node.active .sr-step-text{color:#034694}.sr-step-node.completed .sr-step-text{color:#10b981}.sr-mobile-stepper{background:#f0f7ff;border:1px solid #bae6fd;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:24px;padding:10px 14px;display:none}.sr-mobile-stepper-title{color:#034694;font-size:13.5px;font-weight:800}.sr-mobile-stepper-badge{color:#0284c7;background:#fff;border:1px solid #bae6fd;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:700}.sr-step-intro{background:#f8fafc;border:1px solid #e2e8f0;border-left:4px solid #0284c7;border-radius:10px;margin-bottom:22px;padding:12px 16px}.sr-step-intro-title{color:#0f172a;margin-bottom:2px;font-size:14px;font-weight:800}.sr-step-intro-desc{color:#475569;margin:0;font-size:12.5px;line-height:1.45}.sr-error-banner{color:#991b1b;background:#fef2f2;border:1.5px solid #fecaca;border-radius:10px;align-items:center;gap:10px;margin-bottom:20px;padding:12px 16px;font-size:13.5px;font-weight:600;display:flex}.sr-field-label{color:#1e293b;margin-bottom:6px;font-size:13px;font-weight:700;display:block}.sr-form-input{color:#0f172a!important;box-sizing:border-box!important;background:#fff!important;border:1.5px solid #cbd5e1!important;border-radius:10px!important;width:100%!important;height:46px!important;font-size:14px!important;transition:all .2s!important}.sr-form-input:hover{border-color:#94a3b8!important}.sr-form-input:focus,.sr-form-input.ant-input-affix-wrapper-focused,.sr-form-input.ant-select-focused .ant-select-selector{border-color:#0284c7!important;box-shadow:0 0 0 3px #0284c729!important}.sr-campuses-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:8px;display:grid}.sr-campus-card{cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;flex-direction:column;justify-content:space-between;padding:12px 14px;transition:all .2s;display:flex}.sr-campus-card:hover{border-color:#38bdf8;transform:translateY(-1px);box-shadow:0 4px 12px #0284c714}.sr-campus-card.selected{background:#f0f9ff;border-color:#0284c7;box-shadow:0 0 0 1.5px #0284c7}.sr-campus-name{color:#0f172a;margin-bottom:4px;font-size:13.5px;font-weight:700}.sr-campus-code{color:#0284c7;font-size:11.5px;font-weight:700}.sr-photo-upload-container{margin-top:6px}.sr-photo-dropzone{text-align:center;cursor:pointer;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px 16px;transition:all .2s;display:flex}.sr-photo-dropzone:hover{background:#f0f9ff;border-color:#0284c7}.sr-photo-icon-wrap{color:#0284c7;background:#e0f2fe;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:22px;display:flex}.sr-photo-upload-text{color:#0f172a;margin:0;font-size:14px;font-weight:700}.sr-photo-upload-hint{color:#64748b;margin:0;font-size:12px}.sr-photo-preview-card{background:#f0fdf4;border:1.5px solid #bbf7d0;border-radius:16px;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.sr-photo-preview-left{align-items:center;gap:14px;display:flex}.sr-photo-thumbnail{object-fit:cover;border:2px solid #10b981;border-radius:12px;width:56px;height:56px;box-shadow:0 4px 10px #10b98133}.sr-photo-meta-title{color:#166534;align-items:center;gap:6px;font-size:13.5px;font-weight:700;display:flex}.sr-photo-meta-sub{color:#4ade80;font-size:12px;font-weight:600}.sr-btn-change-photo{color:#0284c7;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:6px 12px;font-size:12.5px;font-weight:700;transition:all .2s}.sr-btn-change-photo:hover{background:#f8fafc;border-color:#0284c7}.sr-pass-preview{color:#fff;background:linear-gradient(135deg,#034694 0%,#0284c7 100%);border-radius:16px;margin-bottom:24px;padding:24px;box-shadow:0 12px 28px #03469433}.sr-pass-header{border-bottom:1px solid #fff3;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.sr-pass-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.sr-pass-item{flex-direction:column;display:flex}.sr-pass-label{text-transform:uppercase;letter-spacing:.6px;color:#ffffffbf;margin-bottom:2px;font-size:11px;font-weight:600}.sr-pass-val{color:#fff;font-size:14px;font-weight:800}.sr-actions-bar{border-top:1px solid #e2e8f0;justify-content:space-between;align-items:center;margin-top:28px;padding-top:20px;display:flex}.sr-btn-back{color:#475569;background:#fff;border:1.5px solid #cbd5e1;border-radius:10px;height:44px;padding:0 20px;font-size:14px;font-weight:700}.sr-btn-back:hover{color:#0f172a;background:#f8fafc;border-color:#94a3b8}.sr-btn-next{background:linear-gradient(135deg,#0284c7 0%,#034694 100%);border:none;border-radius:10px;height:44px;padding:0 24px;font-size:14px;font-weight:700;transition:all .2s;box-shadow:0 4px 14px #0284c759;color:#fff!important}.sr-btn-next:hover{transform:translateY(-1px);box-shadow:0 6px 20px #0284c773}.sr-btn-submit{background:linear-gradient(135deg,#10b981 0%,#059669 100%);border:none;border-radius:10px;height:44px;padding:0 26px;font-size:14px;font-weight:800;box-shadow:0 6px 18px #10b98159;color:#fff!important}.sr-btn-submit:hover{transform:translateY(-1px);box-shadow:0 8px 22px #10b98173}.sr-avatar-section{border-bottom:1px solid #f1f5f9;flex-direction:column;justify-content:center;align-items:center;margin-bottom:22px;padding-bottom:18px;display:flex}.sr-avatar-uploader{cursor:pointer;background:linear-gradient(135deg,#e0f2fe 0%,#bae6fd 100%);border:3px solid #fff;border-radius:50%;outline:none;justify-content:center;align-items:center;width:104px;height:104px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;position:relative;box-shadow:0 6px 20px #0284c729}.sr-avatar-uploader:hover{border-color:#0284c7;transform:scale(1.04);box-shadow:0 10px 25px #0284c747}.sr-avatar-uploader.has-photo{border-color:#10b981;box-shadow:0 6px 20px #10b98138}.sr-avatar-uploader.uploading{opacity:.85;cursor:wait}.sr-avatar-img{object-fit:cover;border-radius:50%;width:100%;height:100%}.sr-avatar-placeholder{color:#0284c7;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.sr-avatar-icon{font-size:42px}.sr-avatar-badge{background:#0284c7;border:2.5px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;transition:all .2s;display:flex;position:absolute;bottom:0;right:0;box-shadow:0 2px 8px #00000026}.sr-avatar-uploader.has-photo .sr-avatar-badge{background:#10b981}.sr-avatar-caption{text-align:center;margin-top:12px}.sr-avatar-title{color:#0f172a;font-size:14px;font-weight:700;display:block}.sr-avatar-subtitle{color:#64748b;margin-top:2px;font-size:12px;display:block}.sr-status-box{text-align:center;padding:16px 8px}.sr-status-pill{text-transform:uppercase;border-radius:999px;align-items:center;gap:6px;margin-bottom:16px;padding:5px 16px;font-size:12px;font-weight:800;display:inline-flex}.sr-status-pill.pending{color:#b45309;background:#fef3c7;border:1px solid #fde68a}.sr-status-pill.approved{color:#047857;background:#d1fae5;border:1px solid #a7f3d0}@media (width<=640px){.sr-root{padding:16px 12px 64px}.sr-top-bar{margin-bottom:18px}.sr-card{border-radius:20px;padding:22px 16px}.sr-stepper-track{display:none}.sr-mobile-stepper{display:flex}.sr-campuses-grid{grid-template-columns:1fr}.sr-pass-grid{grid-template-columns:1fr 1fr}.sr-actions-bar{margin-top:20px;padding-top:16px}}.student-profile-container{max-width:960px;margin:0 auto;padding-bottom:40px;animation:.3s ease-out fadeInProfile}@keyframes fadeInProfile{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.profile-hero-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;padding:24px 28px;display:flex;box-shadow:0 4px 16px #0f172a0a}.profile-hero-left{align-items:center;gap:20px;display:flex}.profile-hero-avatar{object-fit:cover;border:3px solid #0284c7;border-radius:50%;flex-shrink:0;width:76px;height:76px;box-shadow:0 4px 12px #0284c733}.profile-hero-name{color:#0f172a;letter-spacing:-.4px;margin:0 0 6px;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:22px;font-weight:800}.profile-hero-sub{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.profile-code-chip{color:#0369a1;background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;padding:3px 8px;font-family:SF Mono,Monaco,monospace;font-size:13px;font-weight:800}.profile-grid-2col{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px;display:grid}.profile-section-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;box-shadow:0 2px 10px #0f172a08}.profile-section-header{background:#f8fafc;border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.profile-section-title{color:#0f172a;align-items:center;gap:8px;margin:0;font-size:14.5px;font-weight:800;display:flex}.profile-section-body{flex-direction:column;gap:16px;padding:20px;display:flex}.profile-field-row{border-bottom:1px dashed #f1f5f9;justify-content:space-between;align-items:center;padding-bottom:10px;display:flex}.profile-field-row:last-child{border-bottom:none;padding-bottom:0}.profile-field-label{color:#64748b;font-size:12.5px;font-weight:600}.profile-field-val{color:#0f172a;text-align:right;font-size:13.5px;font-weight:700}@media (width<=768px){.profile-grid-2col{grid-template-columns:1fr}.profile-hero-card{flex-direction:column;align-items:flex-start}}.sp-loading{color:#6b7280;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:60vh;font-size:15px;display:flex}.sp-page{flex-direction:column;gap:12px;max-width:600px;margin:0 auto;padding:16px 16px 80px;display:flex}.sp-hero-card{background:linear-gradient(135deg,#0ea5e9 0%,#0284c7 60%,#0369a1 100%);border-radius:16px;flex-direction:column;align-items:center;gap:12px;padding:24px 20px;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 24px #0284c740}.sp-hero-card:before{content:"";background:#ffffff14;border-radius:50%;width:140px;height:140px;position:absolute;top:-40px;right:-40px}.sp-avatar{background:#e0f2fe;border:3px solid #ffffffb3;box-shadow:0 2px 12px #00000026}.sp-hero-info{text-align:center;z-index:1}.sp-name{color:#fff;margin:0 0 4px;font-size:20px;font-weight:700;line-height:1.3}.sp-student-code{color:#ffffffb3;letter-spacing:.05em;margin-bottom:4px;font-size:12px;font-weight:600;display:block}.sp-institute{color:#ffffffd9;margin:0 0 8px;font-size:13px}.sp-status-tag{border-radius:20px;padding:2px 12px;font-size:12px;font-weight:600}.sp-edit-btn{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1;border-radius:20px;height:38px;font-size:14px;font-weight:600;transition:background .2s;color:#fff!important;background:#ffffff26!important;border:1.5px solid #ffffff80!important}.sp-edit-btn:hover{background:#ffffff40!important}.sp-section-card{background:#fff;border-radius:14px;padding:18px 16px;box-shadow:0 1px 6px #0000000f}.sp-section-title{text-transform:uppercase;letter-spacing:.06em;color:#0284c7;align-items:center;gap:8px;margin-bottom:14px;font-size:13px;font-weight:700;display:flex}.sp-section-icon{font-size:14px}.sp-detail-grid{flex-direction:column;gap:12px;display:flex}.sp-detail-row{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.sp-detail-label{color:#6b7280;flex-shrink:0;align-items:center;gap:6px;max-width:45%;font-size:13px;display:flex}.sp-detail-value{color:#111827;text-align:right;word-break:break-word;font-size:14px;font-weight:500}.sp-readonly-note{color:#9ca3af;margin:12px 0 0;font-size:12px;line-height:1.5}.sp-security-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.sp-security-sub{color:#6b7280;margin:4px 0 0;font-size:12px}.sp-responsive-drawer .ant-drawer-content-wrapper{max-width:100vw!important}.sp-responsive-drawer .ant-drawer-body{padding:16px!important}.sp-responsive-drawer .ant-drawer-title{color:#0f172a;font-size:18px;font-weight:700}.sp-form-content{padding-bottom:24px}.sp-field-label{color:#334155;font-size:13.5px;font-weight:600}.sp-drawer-footer{background:#fff;border-top:1px solid #f1f5f9;gap:12px;padding:16px;display:flex}.sp-drawer-footer .ant-btn{border-radius:12px;flex:1;font-weight:600}.sp-avatar-uploader{cursor:pointer;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:24px;justify-content:center;align-items:center;width:96px;height:96px;transition:all .2s;display:flex;position:relative;overflow:hidden}.sp-avatar-uploader:hover{background:#f0f9ff;border-color:#0284c7}.sp-avatar-uploader.has-photo{border-style:solid;border-color:#0000;box-shadow:0 4px 12px #00000014}.sp-avatar-img{object-fit:cover;width:100%;height:100%}.sp-avatar-placeholder{color:#94a3b8;flex-direction:column;align-items:center;gap:4px;display:flex}.sp-avatar-icon{font-size:28px}.sp-avatar-badge{background:#0284c7;border-radius:8px 0 0;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:absolute;bottom:0;right:0;box-shadow:-2px -2px 6px #0000001a}.sp-avatar-uploader.uploading .sp-avatar-badge{background:#f59e0b}@media (width<=480px){.sp-page{padding:12px 12px 80px}.sp-hero-card{padding:20px 16px}.sp-name{font-size:18px}.sp-security-row{flex-direction:column;align-items:flex-start}.sp-security-row .ant-btn{width:100%;margin-top:8px}}.pass-page-container{max-width:600px;margin:0 auto;padding-bottom:40px;animation:.3s ease-out fadeInPass}@keyframes fadeInPass{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.pass-security-bar{background:#fff;border:1px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:12px 18px;display:flex;box-shadow:0 2px 8px #0f172a0a}.pass-security-left{align-items:center;gap:10px;display:flex}.pass-pulse-dot{background:#10b981;border-radius:50%;width:10px;height:10px;animation:2s infinite pulseGreen;box-shadow:0 0 #10b981b3}@keyframes pulseGreen{0%{transform:scale(.95);box-shadow:0 0 #10b981b3}70%{transform:scale(1);box-shadow:0 0 0 8px #10b98100}to{transform:scale(.95);box-shadow:0 0 #10b98100}}.pass-security-status{color:#0f172a;font-size:13px;font-weight:700}.pass-security-clock{color:#0284c7;letter-spacing:.5px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;padding:4px 10px;font-family:SF Mono,Monaco,Courier New,monospace;font-size:14px;font-weight:800}.pass-card-root{background:#fff;border:1px solid #e2e8f0;border-radius:20px;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden;box-shadow:0 12px 32px -4px #0f172a14,0 4px 12px #0f172a0a}.pass-card-header{color:#fff;background:linear-gradient(135deg,#0284c7 0%,#034694 100%);border-bottom:2px solid #ffffff26;justify-content:space-between;align-items:center;padding:22px 24px;display:flex}.pass-brand-title{letter-spacing:-.3px;color:#fff;margin:0;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:17px;font-weight:800}.pass-brand-sub{color:#bae6fd;text-transform:uppercase;letter-spacing:.8px;font-size:11.5px;font-weight:700}.pass-tenure-tag{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff2e;border:1px solid #ffffff4d;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:700}.pass-card-body{padding:24px}.pass-identity-row{align-items:center;gap:20px;margin-bottom:24px;display:flex}.pass-avatar-wrapper{flex-shrink:0;position:relative}.pass-avatar-img{object-fit:cover;border:3px solid #0284c7;border-radius:16px;width:88px;height:88px;box-shadow:0 4px 12px #0284c733}.pass-verified-badge{color:#fff;background:#10b981;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:13px;display:flex;position:absolute;bottom:-4px;right:-4px;box-shadow:0 2px 6px #00000026}.pass-identity-info{flex:1;min-width:0}.pass-student-name{color:#0f172a;letter-spacing:-.3px;margin:0 0 6px;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:20px;font-weight:800}.pass-meta-pills{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pass-id-chip{color:#0369a1;background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px;padding:4px 10px;font-family:SF Mono,Monaco,monospace;font-size:12.5px;font-weight:800}.pass-campus-chip{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:700}.pass-route-strip{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;padding:16px;display:grid}.pass-route-item{flex-direction:column;gap:4px;display:flex}.pass-route-label{color:#64748b;text-transform:uppercase;letter-spacing:.6px;font-size:11px;font-weight:700}.pass-route-val{color:#0f172a;align-items:center;gap:6px;font-size:14px;font-weight:800;display:flex}.pass-qr-container{cursor:pointer;background:#fff;border:1px dashed #cbd5e1;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;margin-bottom:20px;padding:20px;transition:all .2s;display:flex}.pass-qr-container:hover{background:#f0f9ff;border-color:#0284c7}.pass-qr-box{background:#fff;border-radius:12px;padding:12px;box-shadow:0 4px 12px #0f172a0f}.pass-qr-hint{color:#64748b;align-items:center;gap:6px;margin-top:10px;font-size:12px;font-weight:600;display:flex}.pass-card-footer{color:#64748b;background:#f8fafc;border-top:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:14px 24px;font-size:12px;display:flex}.pass-auth-tag{color:#059669;align-items:center;gap:5px;font-weight:700;display:flex}.pass-actions-toolbar{grid-template-columns:1fr;gap:12px;margin-top:20px;display:grid}.pass-btn-primary{color:#fff;cursor:pointer;background:#0284c7;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;height:46px;font-size:14px;font-weight:700;transition:all .2s;display:inline-flex}.pass-btn-primary:hover{background:#0369a1}.pass-btn-whatsapp{color:#15803d;cursor:pointer;background:#fff;border:1.5px solid #86efac;border-radius:10px;justify-content:center;align-items:center;gap:8px;height:46px;font-size:14px;font-weight:700;transition:all .2s;display:inline-flex}.pass-btn-whatsapp:hover{background:#f0fdf4;border-color:#22c55e}@media print{body *{visibility:hidden}.pass-card-root,.pass-card-root *{visibility:visible}.pass-card-root{width:100%;box-shadow:none;border:1px solid #ccc;position:absolute;top:0;left:0}.pass-security-bar,.pass-actions-toolbar,.student-header-root,.student-bottom-dock{display:none!important}}@media (width<=640px){.pass-identity-row{text-align:center;flex-direction:column;gap:14px}.pass-meta-pills{justify-content:center}.pass-route-strip{grid-template-columns:1fr;gap:12px}.pass-actions-toolbar{grid-template-columns:1fr}}:root{--color-primary:#0ea5e9;--color-primary-dark:#0284c7;--color-danger:#ef4444;--color-danger-dark:#dc2626;--color-success:#10b981;--color-success-dark:#059669;--color-warning:#f59e0b;--color-warning-dark:#d97706;--text-main:#0f172a;--text-muted:#64748b;--bg-main:#f8fafc;--bg-card:#fff;--border-color:#e2e8f0}.payments-page-container{background-color:var(--bg-main);max-width:1080px;min-height:100%;margin:0 auto;padding:16px}.payments-loading-container{flex-direction:column;justify-content:center;align-items:center;padding:80px 20px;display:flex}.payments-loading-text{color:var(--text-muted);margin-top:16px;font-weight:500}.payments-pending-approval-card{text-align:center;max-width:600px;margin:40px auto}.payments-header{justify-content:space-between;align-items:flex-end;margin-bottom:24px;display:flex}.payments-kicker{letter-spacing:1px;color:var(--color-primary-dark);text-transform:uppercase;margin-bottom:4px;font-size:12px;font-weight:700;display:block}.payments-main-title{color:var(--text-main);margin:0;font-size:28px;font-weight:800;line-height:1.2}.payments-refresh-btn{color:var(--text-muted);font-weight:600}.payments-refresh-btn:hover{color:var(--text-main);background-color:#f1f5f9}.payments-content-grid{grid-template-columns:1fr;gap:24px;display:grid}@media (width>=860px){.payments-content-grid{grid-template-columns:1.5fr 1fr;align-items:start}}.next-action-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;margin-bottom:24px;padding:24px;position:relative;overflow:hidden;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -2px #0000000d}.next-action-card:before{content:"";width:100%;height:6px;position:absolute;top:0;left:0}.next-action-badge{letter-spacing:.5px;border-radius:6px;margin-bottom:12px;padding:4px 8px;font-size:11px;font-weight:700;display:inline-block}.next-action-title{color:var(--text-main);margin-top:0;margin-bottom:16px;font-size:20px;font-weight:700}.next-action-desc{color:var(--text-muted);margin-bottom:24px;font-size:14px;line-height:1.5}.next-action-amount-row{align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.hero-amount{color:var(--text-main);font-size:32px;font-weight:800;line-height:1}.hero-due-text{color:var(--text-muted);font-size:14px;font-weight:600}.hero-status-pill{color:#b45309;background-color:#fef3c7;border-radius:20px;padding:4px 10px;font-size:13px;font-weight:600}.next-action-cta{border-radius:12px;width:100%;height:48px;font-size:16px;font-weight:700}@media (width>=600px){.next-action-cta{width:auto;padding:0 32px}}.state-rejected:before{background-color:var(--color-danger)}.state-rejected .next-action-badge{color:var(--color-danger-dark);background-color:#fef2f2}.btn-rejected{background-color:var(--color-danger-dark);border:none}.btn-rejected:hover{background-color:#b91c1c}.state-overdue:before{background-color:var(--color-danger)}.state-overdue .next-action-badge{color:var(--color-danger-dark);background-color:#fef2f2}.btn-overdue{background-color:var(--color-danger-dark);border:none}.btn-overdue:hover{background-color:#b91c1c}.state-due:before{background-color:var(--color-primary)}.state-due .next-action-badge{color:var(--color-primary-dark);background-color:#e0f2fe}.btn-due{background-color:var(--color-primary-dark);border:none}.btn-due:hover{background-color:#0369a1}.state-under-review:before{background-color:var(--color-warning)}.state-under-review .next-action-badge{color:var(--color-warning-dark);background-color:#fef3c7}.state-paid-up:before{background-color:var(--color-success)}.state-paid-up .next-action-badge{color:var(--color-success-dark);background-color:#d1fae5}.state-no-plan:before{background-color:var(--text-muted)}.state-no-plan .next-action-badge{color:var(--text-muted);background-color:#f1f5f9}.rejection-reason-box{border-left:4px solid var(--color-danger);color:var(--color-danger-dark);background-color:#fef2f2;border-radius:0 8px 8px 0;margin-bottom:24px;padding:12px 16px;font-style:italic}.installments-section{margin-top:32px}.section-header-row{margin-bottom:16px}.section-title{color:var(--text-main);margin:0;font-size:18px;font-weight:700}.installments-cards-stack{flex-direction:column;gap:12px;display:flex}.installment-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;flex-direction:column;padding:16px;transition:all .2s;display:flex}.installment-card-content{justify-content:space-between;align-items:center;display:flex}.installment-card-left{flex-direction:column;gap:4px;display:flex}.installment-tag{color:var(--text-muted);text-transform:uppercase;font-size:12px;font-weight:600}.installment-card-amount{color:var(--text-main);font-size:18px;font-weight:700}.installment-card-date{color:var(--text-muted);font-size:13px}.installment-card-right{flex-direction:column;align-items:flex-end;display:flex}.cleared-text{color:var(--color-success-dark);align-items:center;font-weight:600;display:flex}.under-review-tag-text{color:var(--color-warning-dark);font-size:13px;font-weight:600}.rejected-tag-text{color:var(--color-danger-dark);font-size:13px;font-weight:600}.overdue-tag-text{color:var(--color-danger-dark);font-size:14px;font-weight:700}.due-tag-text{color:var(--text-main);font-size:14px;font-weight:700}.card-paid{opacity:.85;background-color:#f8fafc}.card-overdue{background-color:#fef2f2;border-color:#fca5a5}.card-due{background-color:#f0f9ff;border-color:#bae6fd}.how-to-pay-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;margin-bottom:24px;padding:24px;box-shadow:0 4px 6px -1px #0000000d}.how-to-pay-header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.how-to-pay-icon{color:var(--color-primary-dark);font-size:20px}.how-to-pay-title{color:var(--text-main);margin:0;font-size:18px;font-weight:700}.how-to-pay-sub{color:var(--text-muted);margin-bottom:20px;font-size:14px}.bank-account-box{background-color:#f1f5f9;border-radius:12px;padding:16px}.bank-row{flex-direction:column;margin-bottom:12px;display:flex}.bank-row.account-no-row{margin-bottom:16px}.bank-label{color:var(--text-muted);margin-bottom:4px;font-size:12px;font-weight:600}.bank-val{color:var(--text-main);font-size:14px;font-weight:700}.bank-val.mono-account{letter-spacing:1px;font-family:Courier New,Courier,monospace;font-size:18px}.copy-btn{border-radius:8px;height:40px;font-weight:600;transition:all .2s}.copy-btn.copied{color:var(--color-success-dark);border-color:var(--color-success-dark);background-color:#f0fdf4}.payment-history-section{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;overflow:hidden}.payment-history-header{cursor:pointer;background-color:var(--bg-card);justify-content:space-between;align-items:center;padding:16px 20px;transition:background-color .2s;display:flex}.payment-history-header:hover{background-color:#f8fafc}.history-title{color:var(--text-main);margin:0;font-size:16px;font-weight:700}.payment-history-body{border-top:1px solid var(--border-color);background-color:#f8fafc;padding:16px}.no-history-box{text-align:center;color:var(--text-muted);padding:20px 0;font-size:14px}.payment-records-list{flex-direction:column;gap:12px;display:flex}.payment-record-card{border:1px solid var(--border-color);background:#fff;border-radius:10px;padding:12px 16px;box-shadow:0 1px 2px #0000000d}.record-top{margin-bottom:4px}.record-date{color:var(--text-muted);font-size:12px;font-weight:600}.record-mid{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.record-amount{color:var(--text-main);font-size:16px;font-weight:700}.record-status-verified{color:var(--color-success-dark);font-size:12px;font-weight:600}.record-status-review{color:var(--color-warning-dark);font-size:12px;font-weight:600}.record-status-rejected{color:var(--color-danger-dark);font-size:12px;font-weight:600}.record-inst{color:var(--text-muted);margin-bottom:8px;font-size:12px}.record-actions{border-top:1px dashed var(--border-color);text-align:right;padding-top:8px}.payment-upload-bottom-sheet .ant-drawer-body{background-color:var(--bg-main);flex-direction:column;padding:0;display:flex}.payment-upload-bottom-sheet .ant-drawer-header{border-bottom:none;padding:16px 20px 0}.upload-sheet-title{color:var(--text-main);font-size:20px;font-weight:800}.upload-sheet-content{flex-direction:column;flex:1;display:flex}.upload-context-banner{background-color:#e0f2fe;border-bottom:1px solid #bae6fd;align-items:center;gap:8px;padding:16px 20px;display:flex}.context-inst-label{color:var(--color-primary-dark);font-size:15px;font-weight:600}.context-amount{color:var(--color-primary-dark);font-size:15px;font-weight:800}.upload-form{flex-direction:column;flex:1;padding:20px;display:flex}.form-label{color:var(--text-main);font-weight:600}.upload-dragger-area{border-color:var(--color-primary)!important;background:#fff!important}.upload-dragger-area:hover{border-color:var(--color-primary-dark)!important;background:#f0f9ff!important}.upload-clear-reminder{color:#92400e;background-color:#fef3c7;border-left:3px solid #f59e0b;border-radius:8px;margin-bottom:24px;padding:12px;font-size:13px;line-height:1.4}.upload-sheet-actions{gap:12px;margin-top:auto;padding-bottom:20px;display:flex}.btn-cancel{border-radius:12px;flex:1;font-weight:600}.btn-submit{background-color:var(--color-primary-dark);border-radius:12px;flex:2;font-weight:700}.receipt-voucher-container{padding:10px 0}.receipt-voucher-header{text-align:center}.voucher-company{color:var(--text-main);margin:0 0 4px;font-size:18px;font-weight:800}.voucher-type{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.voucher-details{flex-direction:column;gap:12px;display:flex}.voucher-row{justify-content:space-between;align-items:center;display:flex}.voucher-row .mono{letter-spacing:.5px;font-family:Courier New,Courier,monospace;font-weight:700}.total-amount-row{background-color:#f8fafc;border-radius:8px;padding:12px}.voucher-total-val{color:var(--color-success-dark);font-size:20px;font-weight:800}
