html,body,#root{background:#0a0e0f;width:100%;max-width:100%;min-height:100vh;margin:0;padding:0;overflow-x:hidden}:root{--pride-teal:#17a2ab;--pride-teal-bright:#1fc8d4;--pride-teal-dark:#0f7178;--pride-black:#0a0e0f;--pride-surface:#12191b;--pride-surface-2:#1a2427;--pride-border:#1fc8d42e;--pride-text:#e8f4f5;--pride-muted:#7d9599;--pride-error:#ff6b6b}*{box-sizing:border-box}.login-page{background:radial-gradient(circle at 50% 0%, #17a2ab1f, transparent 60%), var(--pride-black);flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100vh;margin:0;padding:20px;font-family:system-ui,-apple-system,Segoe UI,sans-serif;display:flex}.login-card{background:var(--pride-surface);border:1px solid var(--pride-border);border-radius:20px;flex-direction:column;align-items:center;width:100%;max-width:380px;padding:32px 28px;display:flex;box-shadow:0 20px 60px #00000080}.login-logo{object-fit:contain;width:150px;height:150px;margin-bottom:8px}.login-tagline{letter-spacing:2px;text-transform:uppercase;color:var(--pride-teal-bright);margin-bottom:24px;font-size:11px;font-weight:700}.login-tabs{background:var(--pride-black);border-radius:12px;gap:6px;width:100%;margin-bottom:22px;padding:5px;display:flex}.tab{color:var(--pride-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:10px;font-family:inherit;font-size:14px;font-weight:700;transition:all .15s}.tab.active{background:var(--pride-teal);color:#fff}.field{width:100%;margin-bottom:16px}.field label{letter-spacing:1px;text-transform:uppercase;color:var(--pride-muted);margin-bottom:6px;font-size:11px;font-weight:700;display:block}.field input{background:var(--pride-surface-2);border:1.5px solid var(--pride-border);width:100%;color:var(--pride-text);border-radius:10px;outline:none;padding:12px 14px;font-family:inherit;font-size:15px;transition:border-color .15s}.field input:focus{border-color:var(--pride-teal-bright)}.field input::placeholder{color:#4a5c5f}.login-error{width:100%;color:var(--pride-error);text-align:center;margin-bottom:14px;font-size:13px;font-weight:600}.login-btn{background:var(--pride-teal);color:#fff;cursor:pointer;border:none;border-radius:10px;width:100%;margin-top:4px;padding:13px;font-family:inherit;font-size:15px;font-weight:800;transition:background .15s,transform .1s}.login-btn:hover{background:var(--pride-teal-bright)}.login-btn:active{transform:scale(.98)}.login-footer{color:var(--pride-muted);letter-spacing:.5px;margin-top:24px;font-size:12px}.att-page{color:#e8f4f5;background:#0a0e0f;flex-direction:column;min-height:100vh;padding-bottom:160px;font-family:system-ui,-apple-system,Segoe UI,sans-serif;display:flex}.att-header{z-index:10;background:linear-gradient(#12191b,#0a0e0f);border-bottom:1px solid #1fc8d42e;padding:12px 14px;position:sticky;top:0}.att-back{color:#1fc8d4;cursor:pointer;background:#12191b;border:1px solid #1fc8d440;border-radius:8px;margin-bottom:10px;padding:7px 12px;font-family:inherit;font-size:14px;font-weight:800}.att-title{font-size:17px;font-weight:800;line-height:1.2}.att-sub{color:#7d9599;margin-top:3px;font-size:12px}.att-stats{gap:8px;width:100%;max-width:600px;margin:0 auto;padding:12px 14px;display:flex}.stat{text-align:center;background:#12191b;border-radius:10px;flex:1;padding:10px}.stat-num{font-size:22px;font-weight:800;line-height:1}.stat-num.present{color:#2ecc71}.stat-num.absent{color:#e74c3c}.stat-num.total{color:#1fc8d4}.stat-label{text-transform:uppercase;letter-spacing:.5px;color:#7d9599;margin-top:4px;font-size:10px;font-weight:700}.att-actions{gap:8px;width:100%;max-width:600px;margin:0 auto;padding:0 14px 10px;display:flex}.act-btn{cursor:pointer;border:none;border-radius:10px;flex:1;padding:11px;font-family:inherit;font-size:14px;font-weight:800}.present-btn{color:#fff;background:#2ecc71}.clear-btn{color:#7d9599;background:0 0;border:1.5px solid #ffffff26;flex:0 0 90px}.att-search{width:100%;max-width:600px;margin:0 auto;padding:0 14px 10px}.att-search input{color:#e8f4f5;background:#12191b;border:1.5px solid #1fc8d426;border-radius:10px;outline:none;width:100%;padding:11px 14px;font-family:inherit;font-size:15px}.att-search input:focus{border-color:#1fc8d4}.att-search input::placeholder{color:#4a5c5f}.att-list{flex:1;width:100%;max-width:600px;margin:0 auto;padding:0 14px}.stu-card{cursor:pointer;background:#12191b;border:1.5px solid #0000;border-radius:10px;align-items:center;gap:12px;margin-bottom:6px;padding:10px 12px;transition:all .12s;display:flex}.stu-card:active{transform:scale(.99)}.stu-card.present{background:#2ecc711a;border-color:#2ecc71}.stu-avatar{color:#7d9599;background:#1a2427;border:2px solid #ffffff0f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:12px;font-weight:700;display:flex}.stu-card.present .stu-avatar{color:#fff;background:#2ecc71;border-color:#2ecc71}.stu-name{flex:1;font-size:15px;font-weight:600}.stu-check{color:#fff;border:2px solid #ffffff26;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:13px;display:flex}.stu-card.present .stu-check{background:#2ecc71;border-color:#2ecc71}.att-empty{text-align:center;color:#7d9599;padding:40px 20px;font-size:14px}.att-footer{background:linear-gradient(#0000,#0a0e0f 30%);padding:12px 14px;position:fixed;bottom:60px;left:0;right:0}.save-btn{color:#fff;cursor:pointer;background:#17a2ab;border:none;border-radius:12px;width:100%;max-width:572px;margin:0 auto;padding:14px;font-family:inherit;font-size:16px;font-weight:800;display:block}.save-btn:active{transform:scale(.99)}.save-btn:disabled{opacity:.6}.att-toast{color:#2ecc71;z-index:100;white-space:nowrap;background:#0f2d1a;border:1px solid #2ecc71;border-radius:30px;padding:10px 20px;font-size:14px;font-weight:700;position:fixed;bottom:80px;left:50%;transform:translate(-50%)}.att-footer{align-items:center;gap:8px;max-width:600px;margin:0 auto;display:flex}.whatsapp-btn{color:#25d366;cursor:pointer;white-space:nowrap;background:#12191b;border:1.5px solid #25d366;border-radius:12px;flex:none;padding:14px 16px;font-family:inherit;font-size:15px;font-weight:800}.whatsapp-btn:active{transform:scale(.98)}.save-btn{flex:1;max-width:none;margin:0}.wa-overlay{z-index:200;background:#000000bf;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.wa-modal{background:#12191b;border-top:1px solid #1fc8d440;border-radius:18px 18px 0 0;width:100%;max-width:600px;max-height:80vh;padding:16px;overflow-y:auto}.wa-handle{background:#fff3;border-radius:2px;width:36px;height:4px;margin:0 auto 14px}.wa-title{color:#e8f4f5;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:17px;font-weight:800;display:flex}.wa-close{color:#7d9599;cursor:pointer;background:0 0;border:none;padding:0;font-size:18px}.wa-preview{color:#7fffb0;white-space:pre-wrap;word-break:break-word;background:#060d08;border:1px solid #25d366;border-radius:12px;max-height:40vh;margin-bottom:12px;padding:14px;font-family:ui-monospace,SF Mono,monospace;font-size:12px;line-height:1.7;overflow-y:auto}.wa-buttons{gap:8px;display:flex}.wa-copy,.wa-open{cursor:pointer;border:none;border-radius:10px;flex:1;padding:13px;font-family:inherit;font-size:15px;font-weight:800}.wa-copy{color:#e8f4f5;background:0 0;border:1.5px solid #ffffff26}.wa-open{color:#fff;background:#25d366}.wa-copy:active,.wa-open:active{transform:scale(.98)}.stat-num.trial{color:#f39c12}.att-guest-header{letter-spacing:1px;text-transform:uppercase;color:#7d9599;border-top:1px solid #ffffff0f;margin-top:8px;padding:16px 2px 8px;font-size:12px;font-weight:800}.stu-card.guest.trial.present{background:#f39c121a;border-color:#f39c12}.stu-card.guest.trial.present .stu-avatar{background:#f39c12;border-color:#f39c12}.stu-card.guest.makeup.present{background:#1abc9c1a;border-color:#1abc9c}.stu-card.guest.makeup.present .stu-avatar{background:#1abc9c;border-color:#1abc9c}.guest-tag{vertical-align:middle;border-radius:8px;margin-left:8px;padding:2px 6px;font-size:9px;font-weight:800}.guest-tag.trial{color:#f39c12;background:#f39c1226;border:1px solid #f39c12}.guest-tag.makeup{color:#1abc9c;background:#1abc9c26;border:1px solid #1abc9c}.guest-remove{color:#7d9599;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:4px 8px;font-size:14px}.att-add-guest{width:100%;max-width:600px;margin:0 auto 20px;padding:8px 14px 12px}.add-guest-btn{cursor:pointer;background:0 0;border-radius:10px;width:100%;padding:12px;font-family:inherit;font-size:14px;font-weight:800}.add-guest-btn.trial{color:#f39c12;border:1.5px solid #f39c12}.guest-modal{background:#12191b;border-top:1px solid #1fc8d440;border-radius:18px 18px 0 0;width:100%;max-width:600px;padding:16px}.guest-input{color:#e8f4f5;background:#1a2427;border:1.5px solid #1fc8d426;border-radius:10px;outline:none;width:100%;margin-bottom:12px;padding:12px 14px;font-family:inherit;font-size:15px}.guest-input:focus{border-color:#1fc8d4}.guest-add-btn{cursor:pointer;color:#fff;border:none;border-radius:10px;width:100%;padding:13px;font-family:inherit;font-size:15px;font-weight:800}.guest-add-btn.trial{background:#f39c12}.att-date-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.att-date-label{color:#7d9599;font-size:12px;font-weight:700}.att-date-input{color:#e8f4f5;background:#1a2427;border:1.5px solid #1fc8d426;border-radius:8px;outline:none;padding:7px 10px;font-family:inherit;font-size:13px}.att-date-input:focus{border-color:#1fc8d4}.att-past-badge{text-transform:uppercase;color:#f39c12;background:#f39c1226;border-radius:8px;padding:3px 8px;font-size:10px;font-weight:800}.att-cancel-session{color:#ff6b6b;cursor:pointer;background:#e74c3c14;border:1.5px solid #e74c3c80;border-radius:10px;width:100%;margin-top:12px;padding:12px;font-family:inherit;font-size:14px;font-weight:800;transition:background .15s,border-color .15s}.att-cancel-session:hover{background:#e74c3c29;border-color:#e74c3ccc}.att-cancel-session:disabled{opacity:.6;cursor:not-allowed}.att-cancelled-banner{color:#ff6b6b;text-align:center;background:#e74c3c26;border:1.5px solid #e74c3c99;border-radius:10px;margin-top:12px;padding:12px 14px;font-size:14px;font-weight:800}.att-uncancel-session{color:#2ecc71;cursor:pointer;background:#2ecc7114;border:1px solid #2ecc7180;border-radius:10px;width:100%;margin-top:10px;padding:11px;font-family:inherit;font-size:13px;font-weight:700}.att-uncancel-session:hover{background:#2ecc7129}.sched-page{color:#e8f4f5;background:#0a0e0f;flex-direction:column;min-height:100vh;font-family:system-ui,-apple-system,Segoe UI,sans-serif;display:flex}.sched-header{z-index:20;padding:calc(14px + env(safe-area-inset-top)) 14px 10px;background:linear-gradient(#0f1516,#0a0e0f);border-bottom:1px solid #1fc8d41f;position:sticky;top:0}.sched-header-top{align-items:center;gap:10px;margin-bottom:12px;display:flex}.sched-logo{object-fit:contain;flex-shrink:0;width:40px;height:40px}.sched-title{flex:1;min-width:0}.sched-name{letter-spacing:.5px;font-size:16px;font-weight:800;line-height:1.1}.sched-user{color:#7d9599;text-transform:capitalize;margin-top:2px;font-size:11px}.sched-logout{color:#7d9599;cursor:pointer;background:0 0;border:1px solid #1fc8d44d;border-radius:8px;flex-shrink:0;padding:6px 10px;font-family:inherit;font-size:11px;font-weight:700}.day-tabs{scrollbar-width:none;gap:5px;display:flex;overflow-x:auto}.day-tabs::-webkit-scrollbar{display:none}.day-tab{color:#7d9599;cursor:pointer;background:0 0;border:1.5px solid #ffffff1a;border-radius:20px;flex-shrink:0;padding:7px 13px;font-family:inherit;font-size:12px;font-weight:800;transition:all .15s}.day-tab.active{color:#fff;background:#17a2ab;border-color:#17a2ab}.day-tab.today{color:#1fc8d4;border-color:#1fc8d4}.day-tab.today.active{color:#0a0e0f;background:#1fc8d4}.sched-content{flex:1;width:100%;max-width:600px;margin:0 auto;padding:12px 14px 100px}.sched-section{letter-spacing:1.5px;text-transform:uppercase;color:#7d9599;padding:14px 2px 8px;font-size:12px;font-weight:800}.sched-card{cursor:pointer;background:#12191b;border:1px solid #1fc8d41f;border-radius:12px;align-items:center;gap:12px;margin-bottom:8px;padding:12px 14px;transition:transform .1s,border-color .15s;display:flex}.sched-card:active{border-color:#1fc8d459;transform:scale(.99)}.sport-pill{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.sport-pill.cricket{background:#2ecc711f}.sport-pill.soccer{background:#e67e221f}.sched-info{flex:1;min-width:0}.sched-venue{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.sched-meta{color:#7d9599;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;overflow:hidden}.sched-count{color:#7d9599;background:#0a0e0f;border-radius:20px;flex-shrink:0;padding:4px 12px;font-size:13px;font-weight:700}.sched-empty{text-align:center;color:#7d9599;padding:50px 20px;font-size:14px}.summary-bar{background:#12191b;border:1px solid #1fc8d41f;border-radius:12px;align-items:center;margin-bottom:6px;padding:12px 8px;display:flex}.summary-item{text-align:center;flex:1}.summary-num{color:#1fc8d4;font-size:20px;font-weight:800;line-height:1}.summary-sub{margin-left:2px;font-size:12px}.summary-label{letter-spacing:.5px;text-transform:uppercase;color:#7d9599;margin-top:4px;font-size:10px;font-weight:700}.summary-divider{background:#ffffff14;width:1px;height:30px}.day-tab{align-items:center;gap:5px;display:inline-flex}.day-badge{color:inherit;text-align:center;background:#ffffff1f;border-radius:10px;min-width:16px;padding:1px 6px;font-size:10px;font-weight:800}.day-tab.active .day-badge{background:#0003}.skel-section{background:#1a2427;border-radius:6px;width:80px;height:12px;margin:14px 2px 12px;animation:1.4s ease-in-out infinite pulse}.skel-card{background:#12191b;border-radius:12px;align-items:center;gap:12px;margin-bottom:8px;padding:12px 14px;display:flex}.skel-pill{background:#1a2427;border-radius:10px;flex-shrink:0;width:40px;height:40px;animation:1.4s ease-in-out infinite pulse}.skel-lines{flex:1}.skel-line{background:#1a2427;border-radius:6px;height:12px;animation:1.4s ease-in-out infinite pulse}.skel-line.long{width:70%;margin-bottom:8px}.skel-line.short{width:40%}@keyframes pulse{0%,to{opacity:.4}50%{opacity:.8}}.sched-empty-icon{opacity:.5;margin-bottom:10px;font-size:32px}.sport-badge{object-fit:contain;flex-shrink:0;width:44px;height:44px}.sched-admin-actions{gap:8px;margin:4px 0 10px;display:flex}.sched-admin-actions .sched-add-class{flex:1;margin:0}.sched-cancel-all{color:#ff6b6b;cursor:pointer;background:#e74c3c14;border:1.5px solid #e74c3c80;border-radius:12px;flex:1;padding:12px;font-family:inherit;font-size:13px;font-weight:800;transition:background .15s,border-color .15s}.sched-cancel-all:hover{background:#e74c3c29;border-color:#e74c3ccc}.sched-cancel-all:disabled{opacity:.6;cursor:not-allowed}.ros-page{color:#e8f4f5;background:#0a0e0f;min-height:100vh;padding-bottom:80px;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.ros-loading{text-align:center;color:#7d9599;padding:60px 20px}.ros-header{z-index:10;background:linear-gradient(#12191b,#0a0e0f);border-bottom:1px solid #1fc8d42e;padding:14px 14px 12px;position:sticky;top:0}.ros-title{margin-bottom:12px;font-size:20px;font-weight:800}.ros-mode-tabs{background:#0a0e0f;border-radius:12px;gap:6px;padding:5px;display:flex}.ros-mode{color:#7d9599;cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:9px;font-family:inherit;font-size:14px;font-weight:700}.ros-mode.active{color:#fff;background:#17a2ab}.ros-content{max-width:600px;margin:0 auto;padding:12px 14px}.ros-day{color:#1fc8d4;padding:14px 2px 8px;font-size:13px;font-weight:800}.ros-item{cursor:pointer;background:#12191b;border:1px solid #1fc8d41f;border-radius:10px;align-items:center;gap:10px;margin-bottom:6px;padding:12px;transition:border-color .15s;display:flex}.ros-item:active{border-color:#1fc8d459}.ros-item-info{flex:1;min-width:0}.ros-item-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.ros-item-sub{color:#7d9599;text-transform:capitalize;margin-top:2px;font-size:12px}.ros-item-coaches{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:4px;max-width:45%;display:flex}.ros-chip{color:#1fc8d4;white-space:nowrap;background:#1fc8d41f;border-radius:20px;padding:3px 9px;font-size:11px;font-weight:700}.ros-count-chip{color:#1fc8d4;background:#1fc8d41f;border-radius:20px;padding:4px 12px;font-size:13px;font-weight:800}.ros-unassigned{color:#5f6b6d;font-size:12px;font-style:italic}.ros-overlay{z-index:200;background:#000000bf;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.ros-modal{background:#12191b;border-top:1px solid #1fc8d440;border-radius:18px 18px 0 0;width:100%;max-width:600px;max-height:85vh;padding:16px;overflow-y:auto}.ros-handle{background:#fff3;border-radius:2px;width:36px;height:4px;margin:0 auto 14px}.ros-modal-title{justify-content:space-between;align-items:center;margin-bottom:4px;font-size:17px;font-weight:800;display:flex}.ros-modal-close{color:#7d9599;cursor:pointer;background:0 0;border:none;padding:0;font-size:18px}.ros-modal-sub{color:#7d9599;margin-bottom:14px;font-size:13px}.ros-modal-day{color:#1fc8d4;padding:12px 2px 6px;font-size:12px;font-weight:800}.ros-check-list{margin-bottom:14px}.ros-check-row{cursor:pointer;background:#1a2427;border:1.5px solid #0000;border-radius:8px;align-items:center;gap:10px;margin-bottom:5px;padding:11px 12px;display:flex}.ros-check-row.on{background:#17a2ab1f;border-color:#17a2ab}.ros-checkbox{color:#fff;border:2px solid #fff3;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;display:flex}.ros-check-row.on .ros-checkbox{background:#17a2ab;border-color:#17a2ab}.ros-check-name{font-size:14px;font-weight:600}.ros-done{color:#fff;cursor:pointer;background:#17a2ab;border:none;border-radius:12px;width:100%;padding:14px;font-family:inherit;font-size:16px;font-weight:800}.ros-toast{color:#2ecc71;z-index:300;white-space:nowrap;background:#0f2d1a;border:1px solid #2ecc71;border-radius:30px;padding:10px 20px;font-size:14px;font-weight:700;position:fixed;bottom:90px;left:50%;transform:translate(-50%)}.ros-venue-group{background:#12191b;border:1px solid #1fc8d41f;border-radius:10px;margin-bottom:8px;overflow:hidden}.ros-venue-name{color:#e8f4f5;padding:11px 12px 8px;font-size:14px;font-weight:800}.ros-sub-item{cursor:pointer;border-top:1px solid #ffffff0d;align-items:center;gap:10px;padding:9px 12px;display:flex}.ros-sub-item:active{background:#1fc8d40d}.ros-sub-info{flex-wrap:wrap;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.ros-sub-time{color:#1fc8d4;font-size:13px;font-weight:700}.ros-sub-age{color:#7d9599;font-size:12px}.ros-modal-venue{color:#e8f4f5;padding:8px 2px 4px;font-size:13px;font-weight:700}.ros-venue-head{cursor:pointer;background:#12191b;border:1px solid #1fc8d41f;border-radius:10px;align-items:center;gap:10px;margin-bottom:6px;padding:12px 14px;transition:border-color .15s;display:flex}.ros-venue-head:hover{border-color:#1fc8d44d}.ros-venue-head:active{transform:scale(.996)}.ros-venue-arrow{color:#7d9599;flex-shrink:0;width:12px;font-size:13px}.ros-venue-head .ros-venue-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0;font-size:14px;font-weight:800;overflow:hidden}.ros-venue-summary{flex-shrink:0;align-items:center;gap:6px;display:flex}.ros-venue-count{color:#7d9599;text-align:center;background:#0a0e0f;border-radius:20px;min-width:22px;padding:3px 9px;font-size:12px;font-weight:800}.ros-block-info{padding:2px 12px 6px}.ros-block-time{color:#1fc8d4;font-size:13px;font-weight:700}.ros-block-coaches{flex-wrap:wrap;align-items:center;gap:6px;padding:4px 12px 10px;display:flex}.ros-coach-row{align-items:center;gap:5px;display:flex}.ros-coach-time{color:#7d9599;font-size:11px;font-weight:600}.ros-check-top{cursor:pointer;align-items:center;gap:10px;padding:2px 0;display:flex}.ros-time-range{align-items:center;gap:8px;margin:6px 0 4px 34px;display:flex}.ros-time-range select{color:#1fc8d4;appearance:none;background:#0a0e0f;border:1px solid #1fc8d44d;border-radius:8px;outline:none;padding:6px 10px;font-size:13px;font-weight:600}.ros-time-range select:focus{border-color:#1fc8d4}.ros-time-to{color:#7d9599;font-size:12px;font-weight:600}.ros-coach-time-label{color:#7d9599;margin-left:4px;font-size:12px}.ros-summary-bar{background:#12191b;border:1px solid #1fc8d429;border-radius:14px;justify-content:center;align-items:center;gap:4px;margin:18px 0 10px;padding:16px 10px;display:flex}.ros-summary-item{text-align:center;flex:1;max-width:140px}.ros-summary-num{color:#1fc8d4;font-size:22px;font-weight:800;line-height:1}.ros-summary-label{letter-spacing:.5px;text-transform:uppercase;color:#7d9599;margin-top:6px;font-size:10px;font-weight:700}.ros-summary-divider{background:#ffffff14;width:1px;height:32px}.ros-item.coach .ros-item-info{flex:1;min-width:0}.ros-workload-track{background:#0a0e0f;border-radius:4px;width:100%;max-width:240px;height:6px;margin-top:8px;overflow:hidden}.ros-workload-fill{background:linear-gradient(90deg,#17a2ab,#2ecc71);border-radius:4px;min-width:2px;height:100%;transition:width .3s}.stud-page{color:#e8f4f5;background:#0a0e0f;min-height:100vh;padding-bottom:80px;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.stud-header{z-index:10;background:linear-gradient(#12191b,#0a0e0f);border-bottom:1px solid #1fc8d42e;padding:14px 14px 12px;position:sticky;top:0}.stud-title-row{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.stud-title{font-size:20px;font-weight:800}.stud-add-btn{color:#fff;cursor:pointer;background:#17a2ab;border:none;border-radius:8px;padding:8px 16px;font-family:inherit;font-size:14px;font-weight:800}.stud-search input{color:#e8f4f5;background:#1a2427;border:1.5px solid #1fc8d426;border-radius:10px;outline:none;width:100%;padding:11px 14px;font-family:inherit;font-size:15px}.stud-search input:focus{border-color:#1fc8d4}.stud-search input::placeholder{color:#4a5c5f}.stud-count{color:#7d9599;margin-top:8px;font-size:12px}.stud-list{max-width:600px;margin:0 auto;padding:10px 14px}.stud-row{cursor:pointer;background:#12191b;border:1px solid #1fc8d41a;border-radius:10px;align-items:center;gap:12px;margin-bottom:6px;padding:10px 12px;transition:border-color .15s;display:flex}.stud-row:active{border-color:#1fc8d459}.stud-avatar{color:#1fc8d4;background:#1a2427;border:2px solid #1fc8d426;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:13px;font-weight:700;display:flex}.stud-row-info{flex:1;min-width:0}.stud-row-name{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.stud-row-sub{color:#7d9599;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;overflow:hidden}.stud-status{text-transform:uppercase;border-radius:20px;flex-shrink:0;padding:3px 9px;font-size:10px;font-weight:800}.stud-status.active{color:#2ecc71;background:#2ecc7126}.stud-status.expired{color:#e74c3c;background:#e74c3c26}.stud-empty{text-align:center;color:#7d9599;padding:50px 20px;font-size:14px}.stud-overlay{z-index:200;background:#000000bf;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.stud-modal{background:#12191b;border-top:1px solid #1fc8d440;border-radius:18px 18px 0 0;width:100%;max-width:600px;max-height:88vh;padding:16px;overflow-y:auto}.stud-handle{background:#fff3;border-radius:2px;width:36px;height:4px;margin:0 auto 14px}.stud-detail-header{align-items:center;gap:12px;margin-bottom:18px;display:flex}.stud-detail-avatar{color:#fff;background:#17a2ab;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:16px;font-weight:700;display:flex}.stud-detail-name{margin-bottom:4px;font-size:18px;font-weight:800}.stud-close{color:#7d9599;cursor:pointer;background:0 0;border:none;align-self:flex-start;margin-left:auto;padding:0;font-size:18px}.stud-detail-section{letter-spacing:1px;text-transform:uppercase;color:#1fc8d4;margin:16px 0 8px;font-size:12px;font-weight:800}.stud-detail-row{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;font-size:14px;display:flex}.stud-detail-row span{color:#7d9599;flex-shrink:0}.stud-detail-row b{text-align:right;word-break:break-word;font-weight:600}.stud-detail-actions{gap:8px;margin-top:18px;display:flex}.stud-edit-btn{color:#fff;cursor:pointer;background:#17a2ab;border:none;border-radius:10px;flex:1;padding:13px;font-family:inherit;font-size:15px;font-weight:800}.stud-delete-btn{color:#e74c3c;cursor:pointer;background:0 0;border:1.5px solid #e74c3c;border-radius:10px;flex:0 0 100px;padding:13px;font-family:inherit;font-size:15px;font-weight:800}.stud-form-title{justify-content:space-between;align-items:center;margin-bottom:6px;font-size:18px;font-weight:800;display:flex}.stud-label{letter-spacing:.5px;text-transform:uppercase;color:#7d9599;margin-top:12px;margin-bottom:5px;font-size:11px;font-weight:700;display:block}.stud-input{color:#e8f4f5;background:#1a2427;border:1.5px solid #1fc8d426;border-radius:9px;outline:none;width:100%;padding:11px 13px;font-family:inherit;font-size:15px}.stud-input:focus{border-color:#1fc8d4}.stud-input::placeholder{color:#4a5c5f}.stud-form-row{gap:10px;display:flex}.stud-save-btn{color:#fff;cursor:pointer;background:#17a2ab;border:none;border-radius:12px;width:100%;margin-top:18px;padding:14px;font-family:inherit;font-size:16px;font-weight:800}.stud-save-btn:disabled{opacity:.6}.stud-toast{color:#2ecc71;z-index:300;white-space:nowrap;background:#0f2d1a;border:1px solid #2ecc71;border-radius:30px;padding:10px 20px;font-size:14px;font-weight:700;position:fixed;bottom:90px;left:50%;transform:translate(-50%)}.sched-name{color:#e8f4f5}.sched-header{font-family:system-ui,-apple-system,Segoe UI,sans-serif}.sched-content{padding-bottom:100px}.sched-add-class{color:#1fc8d4;cursor:pointer;background:#1fc8d40f;border:1.5px dashed #1fc8d466;border-radius:12px;width:100%;margin:4px 0 10px;padding:12px;font-family:inherit;font-size:14px;font-weight:800;transition:background .15s,border-color .15s}.sched-add-class:active{transform:scale(.995)}.sched-add-class:hover{background:#1fc8d41f;border-color:#1fc8d4b3}.sched-edit-btn{color:#7d9599;cursor:pointer;background:#0a0e0f;border:1px solid #1fc8d433;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;transition:all .15s;display:flex}.sched-edit-btn:hover{color:#1fc8d4;border-color:#1fc8d480}.cls-overlay{z-index:100;background:#0009;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.cls-modal{padding:8px 20px calc(24px + env(safe-area-inset-bottom));background:#12191b;border:1px solid #1fc8d42e;border-radius:20px 20px 0 0;width:100%;max-width:480px;max-height:92vh;overflow-y:auto}.cls-handle{background:#fff3;border-radius:2px;width:40px;height:4px;margin:8px auto 14px}.cls-title{color:#e8f4f5;justify-content:space-between;align-items:center;margin-bottom:16px;font-size:18px;font-weight:800;display:flex}.cls-close{color:#7d9599;cursor:pointer;background:0 0;border:none;font-size:18px}.cls-label{letter-spacing:.5px;text-transform:uppercase;color:#7d9599;margin:12px 2px 6px;font-size:11px;font-weight:800;display:block}.cls-input{color:#e8f4f5;background:#0a0e0f;border:1px solid #1fc8d42e;border-radius:10px;width:100%;padding:12px 14px;font-family:inherit;font-size:15px}.cls-input:focus{border-color:#1fc8d480;outline:none}.cls-row{gap:12px;display:flex}.cls-col{flex:1}.cls-sport-toggle{gap:8px;display:flex}.cls-sport-opt{color:#7d9599;cursor:pointer;background:#0a0e0f;border:1.5px solid #ffffff1a;border-radius:10px;flex:1;padding:12px;font-family:inherit;font-size:14px;font-weight:700;transition:all .15s}.cls-sport-opt.on.cricket{color:#2ecc71;background:#2ecc7126;border-color:#2ecc71}.cls-sport-opt.on.soccer{color:#ff6b70;background:#e01f2626;border-color:#e01f26}.cls-save{color:#fff;cursor:pointer;background:#17a2ab;border:none;border-radius:12px;width:100%;margin-top:20px;padding:15px;font-family:inherit;font-size:16px;font-weight:800}.cls-save:disabled{opacity:.6;cursor:not-allowed}.cls-delete{color:#e74c3c;cursor:pointer;background:0 0;border:1px solid #e74c3c66;border-radius:12px;width:100%;margin-top:10px;padding:13px;font-family:inherit;font-size:14px;font-weight:700}.cls-delete:disabled{opacity:.5;cursor:not-allowed}.sched-toast{color:#fff;z-index:200;background:#17a2ab;border-radius:24px;padding:12px 22px;font-size:14px;font-weight:700;position:fixed;bottom:90px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #0006}.sched-card.cancelled{background:#e74c3c0f;border-color:#e74c3c80}.sched-card.cancelled .sched-venue,.sched-card.cancelled .sched-meta{opacity:.65}.sched-cancelled-badge{color:#fff;letter-spacing:.5px;vertical-align:middle;background:#e74c3c;border-radius:20px;margin-left:8px;padding:2px 8px;font-size:10px;font-weight:800;display:inline-block}.sum-page{color:#e8f4f5;background:#0a0e0f;min-height:100vh;padding-bottom:80px;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.sum-header{z-index:10;background:linear-gradient(#12191b,#0a0e0f);border-bottom:1px solid #1fc8d42e;padding:14px 14px 12px;position:sticky;top:0}.sum-title{margin-bottom:12px;font-size:20px;font-weight:800}.sum-date-nav{align-items:center;gap:8px;display:flex}.sum-arrow{color:#1fc8d4;cursor:pointer;background:#12191b;border:1.5px solid #1fc8d433;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-family:inherit;font-size:22px;font-weight:800;display:flex}.sum-date-input{color:#e8f4f5;text-align:center;text-align-last:center;background:#1a2427;border:1.5px solid #1fc8d426;border-radius:10px;outline:none;flex:1;padding:10px 12px;font-family:inherit;font-size:15px}.sum-date-input:focus{border-color:#1fc8d4}.sum-pretty-date{color:#7d9599;text-align:center;margin-top:8px;font-size:13px;font-weight:600}.sum-totals{background:#12191b;border:1px solid #1fc8d41f;border-radius:12px;align-items:center;max-width:572px;margin:12px 14px 0;padding:14px 8px;display:flex}.sum-total-item{text-align:center;flex:1}.sum-total-num{font-size:24px;font-weight:800;line-height:1}.sum-total-num.present{color:#2ecc71}.sum-total-num.absent{color:#e74c3c}.sum-total-num.marked{color:#1fc8d4}.sum-total-label{letter-spacing:.5px;text-transform:uppercase;color:#7d9599;margin-top:5px;font-size:10px;font-weight:700}.sum-total-divider{background:#ffffff14;width:1px;height:34px}.sum-content{max-width:600px;margin:0 auto;padding:12px 14px}.sum-card{background:#12191b;border:1px solid #1fc8d41f;border-radius:12px;margin-bottom:8px;overflow:hidden}.sum-card-head{cursor:pointer;align-items:center;gap:12px;padding:12px 14px;display:flex}.sum-sport{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.sum-sport.cricket{background:#2ecc711f}.sum-sport.soccer{background:#e67e221f}.sum-card-info{flex:1;min-width:0}.sum-card-venue{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.sum-card-meta{color:#7d9599;margin-top:2px;font-size:12px}.sum-card-counts{flex-shrink:0;gap:6px;display:flex}.sum-count{border-radius:8px;padding:4px 8px;font-size:12px;font-weight:800}.sum-count.present{color:#2ecc71;background:#2ecc7126}.sum-count.absent{color:#e74c3c;background:#e74c3c26}.sum-not-marked{color:#5f6b6d;flex-shrink:0;font-size:12px;font-style:italic}.sum-card-detail{border-top:1px solid #ffffff0d;padding:4px 14px 14px}.sum-detail-label{margin:12px 0 4px;font-size:12px;font-weight:800}.sum-detail-label.present{color:#2ecc71}.sum-detail-label.absent{color:#e74c3c}.sum-detail-label.trial{color:#f39c12}.sum-detail-label.makeup{color:#1abc9c}.sum-names{color:#c5d4d6;font-size:13px;line-height:1.6}.sum-empty{text-align:center;color:#7d9599;padding:50px 20px;font-size:14px}.sum-empty-icon{opacity:.5;margin-bottom:10px;font-size:32px}.sum-name-link{color:#1fc8d4;cursor:pointer;-webkit-text-decoration:underline #1fc8d466;text-decoration:underline #1fc8d466}.sum-name-link:active{opacity:.7}.sum-overlay{z-index:200;background:#000000bf;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sum-modal{background:#12191b;border-top:1px solid #1fc8d440;border-radius:18px 18px 0 0;width:100%;max-width:600px;max-height:85vh;padding:16px;overflow-y:auto}.sum-handle{background:#fff3;border-radius:2px;width:36px;height:4px;margin:0 auto 14px}.sum-stud-header{align-items:center;gap:12px;margin-bottom:16px;display:flex}.sum-stud-avatar{color:#fff;background:#17a2ab;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:16px;font-weight:700;display:flex}.sum-stud-name{margin-bottom:4px;font-size:18px;font-weight:800}.sum-stud-status{text-transform:uppercase;border-radius:20px;padding:3px 9px;font-size:10px;font-weight:800;display:inline-block}.sum-stud-status.active{color:#2ecc71;background:#2ecc7126}.sum-stud-status.expired{color:#e74c3c;background:#e74c3c26}.sum-stud-close{color:#7d9599;cursor:pointer;background:0 0;border:none;align-self:flex-start;margin-left:auto;padding:0;font-size:18px}.sum-stud-section{letter-spacing:1px;text-transform:uppercase;color:#1fc8d4;margin:14px 0 8px;font-size:12px;font-weight:800}.sum-stud-row{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;font-size:14px;display:flex}.sum-stud-row span{color:#7d9599;flex-shrink:0}.sum-stud-row b{text-align:right;word-break:break-word;font-weight:600}.sum-stud-link{color:#1fc8d4;text-align:right;word-break:break-word;font-weight:600;text-decoration:none}.sum-venue-group{margin-bottom:10px}.sum-venue-head{cursor:pointer;background:#12191b;border:1px solid #1fc8d424;border-radius:12px;align-items:center;gap:10px;padding:14px;transition:border-color .15s,background .15s;display:flex}.sum-venue-head:active{transform:scale(.995)}.sum-venue-head:hover{border-color:#1fc8d44d}.sum-venue-arrow{color:#7d9599;flex-shrink:0;width:14px;font-size:13px}.sum-venue-icons{flex-shrink:0;font-size:18px}.sum-venue-info{flex:1;min-width:0}.sum-venue-name{color:#e8f4f5;font-size:15px;font-weight:800}.sum-venue-sub{color:#7d9599;margin-top:2px;font-size:12px}.sum-venue-counts{flex-shrink:0;gap:8px;display:flex}.sum-venue-body{border-left:2px solid #1fc8d41f;margin:6px 0 4px 18px;padding:8px 0 2px 10px}.sum-venue-body .sum-card{margin-bottom:8px}.sum-tabs{gap:6px;margin-bottom:12px;display:flex}.sum-tab{color:#7d9599;cursor:pointer;background:0 0;border:1.5px solid #ffffff1a;border-radius:10px;flex:1;padding:9px;font-family:inherit;font-size:13px;font-weight:800;transition:all .15s}.sum-tab.on{color:#fff;background:#17a2ab;border-color:#17a2ab}.ins-wrap{padding-bottom:10px}.ins-loading{text-align:center;color:#7d9599;padding:50px 20px;font-size:14px}.ins-range{gap:6px;margin-bottom:14px;display:flex}.ins-range-btn{color:#7d9599;cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:8px;flex:1;padding:8px;font-family:inherit;font-size:12px;font-weight:700}.ins-range-btn.on{color:#1fc8d4;background:#1fc8d426;border-color:#1fc8d4}.ins-stat-grid{gap:8px;margin-bottom:6px;display:flex}.ins-stat{text-align:center;background:#12191b;border:1px solid #1fc8d41f;border-radius:12px;flex:1;padding:14px 8px}.ins-stat-num{font-size:26px;font-weight:800;line-height:1}.ins-stat-label{letter-spacing:.5px;text-transform:uppercase;color:#7d9599;margin-top:6px;font-size:10px;font-weight:700}.ins-note{color:#5f6b6d;margin:4px 2px;font-size:11px;font-style:italic;line-height:1.4}.ins-section-title{color:#e8f4f5;margin:22px 2px 12px;font-size:13px;font-weight:800}.ins-chart{background:#12191b;border:1px solid #1fc8d41f;border-radius:12px;align-items:flex-end;gap:8px;padding:16px 12px 12px;display:flex}.ins-bar-col{flex-direction:column;flex:1;align-items:center;gap:6px;display:flex}.ins-bar-track{background:#0a0e0f;border-radius:6px;align-items:flex-end;width:100%;height:90px;display:flex;overflow:hidden}.ins-bar-fill{border-radius:6px 6px 0 0;width:100%;min-height:2px;transition:height .3s}.ins-bar-val{color:#e8f4f5;font-size:12px;font-weight:800}.ins-bar-label{color:#7d9599;font-size:10px;font-weight:600}.ins-student-row{cursor:pointer;background:#12191b;border:1px solid #1fc8d41f;border-radius:12px;align-items:center;gap:12px;margin-bottom:8px;padding:10px 14px;transition:border-color .15s;display:flex}.ins-student-row:hover{border-color:#1fc8d44d}.ins-stud-avatar{color:#fff;background:#17a2ab;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:flex}.ins-stud-name{color:#e8f4f5;flex:1;font-size:14px;font-weight:600}.ins-stud-flag{border-radius:20px;flex-shrink:0;padding:4px 10px;font-size:12px;font-weight:800}.ins-stud-flag.danger{color:#ff6b6b;background:#e74c3c2e}.ins-stud-flag.warn{color:#f39c12;background:#f39c122e}.ins-empty-row{color:#7d9599;padding:10px 2px;font-size:13px;font-style:italic}.ins-venue-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.ins-venue-name{color:#c5d4d6;white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;width:110px;font-size:13px;font-weight:600;overflow:hidden}.ins-venue-bar-track{background:#0a0e0f;border-radius:6px;flex:1;height:10px;overflow:hidden}.ins-venue-bar-fill{background:linear-gradient(90deg,#17a2ab,#2ecc71);border-radius:6px;height:100%;transition:width .3s}.ins-venue-rate{color:#e8f4f5;text-align:right;flex-shrink:0;width:44px;font-size:13px;font-weight:800}.adm-page{color:#e8f4f5;background:#0a0e0f;min-height:100vh;padding-bottom:80px;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.adm-header{z-index:10;background:linear-gradient(#12191b,#0a0e0f);border-bottom:1px solid #1fc8d42e;padding:16px 14px;position:sticky;top:0}.adm-title{font-size:20px;font-weight:800}.adm-content{max-width:600px;margin:0 auto;padding:12px 14px}.adm-section-head{color:#1fc8d4;justify-content:space-between;align-items:center;margin:22px 2px 10px;font-size:14px;font-weight:800;display:flex}.adm-add-btn{color:#fff;cursor:pointer;background:#17a2ab;border:none;border-radius:8px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:800}.adm-loading{color:#7d9599;text-align:center;padding:20px}.adm-coach-row{background:#12191b;border:1px solid #1fc8d41f;border-radius:10px;align-items:center;gap:10px;margin-bottom:6px;padding:11px 12px;display:flex}.adm-coach-info{flex:1;min-width:0}.adm-coach-name{font-size:14px;font-weight:700}.adm-coach-sport{color:#7d9599;text-transform:capitalize;margin-top:2px;font-size:12px}.adm-edit{color:#1fc8d4;cursor:pointer;background:0 0;border:1.5px solid #1fc8d44d;border-radius:8px;flex-shrink:0;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:700}.adm-remove{color:#e74c3c;cursor:pointer;background:0 0;border:1.5px solid #e74c3c66;border-radius:8px;flex-shrink:0;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:700}.adm-setting{gap:8px;display:flex}.adm-input{color:#e8f4f5;background:#1a2427;border:1.5px solid #1fc8d426;border-radius:9px;outline:none;flex:1;padding:11px 13px;font-family:inherit;font-size:15px}.adm-input:focus{border-color:#1fc8d4}.adm-input::placeholder{color:#4a5c5f}.adm-input.full{width:100%;margin-bottom:4px}.adm-save-setting{color:#fff;cursor:pointer;background:#17a2ab;border:none;border-radius:9px;flex-shrink:0;padding:0 18px;font-family:inherit;font-size:14px;font-weight:800}.adm-hint{color:#7d9599;margin-top:6px;padding:0 2px;font-size:12px}.adm-overlay{z-index:200;background:#000000bf;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.adm-modal{background:#12191b;border-top:1px solid #1fc8d440;border-radius:18px 18px 0 0;width:100%;max-width:600px;padding:16px}.adm-handle{background:#fff3;border-radius:2px;width:36px;height:4px;margin:0 auto 14px}.adm-modal-title{justify-content:space-between;align-items:center;margin-bottom:14px;font-size:18px;font-weight:800;display:flex}.adm-close{color:#7d9599;cursor:pointer;background:0 0;border:none;padding:0;font-size:18px}.adm-label{letter-spacing:.5px;text-transform:uppercase;color:#7d9599;margin-top:12px;margin-bottom:5px;font-size:11px;font-weight:700;display:block}.adm-check-row{cursor:pointer;align-items:center;gap:10px;margin-top:16px;display:flex}.adm-checkbox{color:#fff;border:2px solid #fff3;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:13px;display:flex}.adm-checkbox.on{background:#17a2ab;border-color:#17a2ab}.adm-save-btn{color:#fff;cursor:pointer;background:#17a2ab;border:none;border-radius:12px;width:100%;margin-top:20px;padding:14px;font-family:inherit;font-size:16px;font-weight:800}.adm-toast{color:#2ecc71;z-index:300;white-space:nowrap;background:#0f2d1a;border:1px solid #2ecc71;border-radius:30px;padding:10px 20px;font-size:14px;font-weight:700;position:fixed;bottom:90px;left:50%;transform:translate(-50%)}.adm-toggle-row{background:#12191b;border:1px solid #1fc8d41f;border-radius:10px;align-items:center;gap:12px;margin-bottom:8px;padding:12px 14px;display:flex}.adm-toggle-info{flex:1}.adm-toggle-label{font-size:14px;font-weight:700}.adm-toggle-hint{color:#7d9599;margin-top:2px;font-size:12px}.adm-switch{cursor:pointer;background:#2a3436;border-radius:20px;flex-shrink:0;width:48px;height:28px;transition:background .2s;position:relative}.adm-switch.on{background:#17a2ab}.adm-switch-knob{background:#fff;border-radius:50%;width:22px;height:22px;transition:left .2s;position:absolute;top:3px;left:3px}.adm-switch.on .adm-switch-knob{left:23px}.adm-pending-count{color:#fff;background:#e0932f;border-radius:20px;margin-left:auto;padding:3px 10px;font-size:11px;font-weight:800}.adm-empty-note{color:#6b7a7d;padding:4px 2px 8px;font-size:13px}.adm-sub-label{letter-spacing:1px;text-transform:uppercase;color:#9fb0b3;margin:12px 2px 8px;font-size:11px;font-weight:800}.adm-booking-card{background:#182022;border:1px solid #ffffff14;border-radius:12px;margin-bottom:9px;padding:13px 14px}.adm-booking-card.pending{background:#e0932f14;border-color:#e0932f}.adm-booking-top{align-items:center;gap:8px;margin-bottom:8px;display:flex}.adm-booking-name{color:#eef4f4;flex:1;font-size:15px;font-weight:700}.adm-booking-badge{letter-spacing:.5px;border-radius:20px;padding:3px 8px;font-size:9px;font-weight:800}.adm-booking-badge.pending{color:#e0932f;background:#e0932f33;border:1px solid #e0932f}.adm-booking-badge.confirmed{color:#2ecc71;background:#2ecc7126;border:1px solid #2ecc71}.adm-booking-detail{color:#9fb0b3;font-size:12px;line-height:1.6}.adm-booking-missed,.adm-booking-arrow{color:#6b7a7d;margin-right:3px;font-weight:700}.adm-booking-actions{gap:8px;margin-top:11px;display:flex}.adm-approve{color:#fff;cursor:pointer;background:#2ecc71;border:none;border-radius:8px;flex:1;padding:9px;font-family:inherit;font-size:13px;font-weight:800}.adm-approve:active{transform:scale(.98)}.adm-decline{color:#9fb0b3;cursor:pointer;background:0 0;border:1.5px solid #ffffff29;border-radius:8px;flex:1;padding:9px;font-family:inherit;font-size:13px;font-weight:700}.adm-decline:active{transform:scale(.98)}.adm-coach-group{margin-bottom:8px}.adm-group-head{cursor:pointer;color:#eef4f4;background:#182022;border:1px solid #ffffff14;border-radius:10px;align-items:center;gap:10px;width:100%;padding:13px 14px;font-family:inherit;transition:background .15s;display:flex}.adm-group-head:active{transform:scale(.995)}.adm-group-arrow{color:#17a2ab;width:14px;font-size:13px}.adm-group-label{text-align:left;flex:1;font-size:15px;font-weight:700}.adm-group-count{color:#9fb0b3;background:#ffffff0f;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:800}.adm-coach-group .adm-coach-row{margin-top:6px;margin-left:12px}.adm-booking-controls{flex-wrap:wrap;gap:8px;margin:8px 0 14px;display:flex}.adm-history-toggle,.adm-clear-confirmed{color:#ddd;cursor:pointer;background:#1c1c1e;border:1px solid #333;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s}.adm-history-toggle:hover,.adm-clear-confirmed:hover{background:#2a2a2c;border-color:#444}.adm-history-toggle.on{color:#cfe4ff;background:#2a3a4a;border-color:#3a5a7a}.adm-clear-confirmed{color:#f0a5a5;border-color:#4a2a2a}.adm-clear-confirmed:hover{background:#3a1f1f;border-color:#6a3a3a}.adm-booking-top-right{align-items:center;gap:8px;display:flex}.adm-card-x{color:#777;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 6px;font-size:15px;line-height:1;transition:background .15s,color .15s}.adm-card-x:hover{color:#f0a5a5;background:#3a1f1f}.adm-booking-card.archived{opacity:.85}.adm-restore{color:#9fd4ff;cursor:pointer;background:#1c1c1e;border:1px solid #333;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600}.adm-restore:hover{background:#2a3a4a;border-color:#3a5a7a}.ts-page{color:#fff;background:#0a0e0f;min-height:100vh;padding:0 16px 120px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.ts-header{padding:16px 0 12px}.ts-back{color:#888;cursor:pointer;background:0 0;border:none;margin-bottom:8px;padding:0;font-size:15px;display:block}.ts-title{color:#fff;margin:0 0 4px;font-size:22px;font-weight:700}.ts-subtitle{color:#888;margin:0;font-size:13px}.ts-upload-area{text-align:center;cursor:pointer;background:#151a1c;border:2px dashed #333;border-radius:16px;margin:16px 0;padding:48px 24px;transition:border-color .2s}.ts-upload-area:active{border-color:#4ade80}.ts-upload-icon{margin-bottom:12px;font-size:48px}.ts-upload-text{color:#fff;margin-bottom:6px;font-size:17px;font-weight:600}.ts-upload-hint{color:#666;font-size:13px}.ts-spinner{color:#4ade80;font-size:17px;animation:1.2s infinite ts-pulse}@keyframes ts-pulse{0%,to{opacity:1}50%{opacity:.4}}.ts-info-card{background:#151a1c;border-radius:14px;margin:16px 0;padding:16px 18px}.ts-info-card h3{color:#ccc;margin:0 0 12px;font-size:15px;font-weight:600}.ts-info-row{color:#aaa;align-items:center;gap:12px;padding:8px 0;font-size:14px;display:flex}.ts-info-num{color:#4ade80;background:#1e2628;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:flex}.ts-error{color:#f87171;background:#2a1515;border:1px solid #f87171;border-radius:10px;margin:12px 0;padding:12px 16px;font-size:14px}.ts-summary-row{grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0;display:grid}.ts-summary-card{text-align:center;cursor:pointer;background:#151a1c;border:2px solid #0000;border-radius:12px;padding:14px 8px;transition:transform .15s}.ts-summary-card:active{transform:scale(.95)}.ts-summary-card.green{border-color:#166534}.ts-summary-card.red{border-color:#7f1d1d}.ts-summary-card.orange{border-color:#854d0e}.ts-summary-card.grey{cursor:default;border-color:#333}.ts-summary-num{font-size:26px;font-weight:800}.ts-summary-card.green .ts-summary-num{color:#4ade80}.ts-summary-card.red .ts-summary-num{color:#f87171}.ts-summary-card.orange .ts-summary-num{color:#fbbf24}.ts-summary-card.grey .ts-summary-num{color:#888}.ts-summary-label{color:#888;text-transform:uppercase;letter-spacing:.5px;margin-top:2px;font-size:11px}.ts-new-sessions{background:#0f1f2e;border:1px solid #1d4ed8;border-radius:12px;margin:12px 0;padding:12px 16px}.ts-new-sessions-title{color:#60a5fa;margin-bottom:8px;font-size:14px;font-weight:600}.ts-new-session-row{color:#93c5fd;padding:4px 0;font-size:13px}.ts-tabs{background:#151a1c;border-radius:10px;gap:4px;margin:16px 0 8px;padding:4px;display:flex}.ts-tab{color:#888;cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:10px 4px;font-size:13px;font-weight:600;transition:all .15s}.ts-tab.active{color:#fff;background:#1e2628}.ts-list{margin:8px 0 16px}.ts-student-card{background:#151a1c;border-left:4px solid #0000;border-radius:12px;margin-bottom:8px;padding:12px 16px}.ts-student-card.new{border-left-color:#4ade80}.ts-student-card.gone{border-left-color:#f87171}.ts-student-card.updated{border-left-color:#fbbf24}.ts-stu-name{color:#fff;margin-bottom:4px;font-size:15px;font-weight:600}.ts-stu-detail{color:#888;margin-top:2px;font-size:13px}.ts-stu-change{color:#fbbf24;margin-top:3px;font-size:13px}.ts-empty{text-align:center;color:#555;padding:32px 0;font-size:14px}.ts-venue-map{background:#151a1c;border-radius:12px;margin:12px 0;padding:12px 16px}.ts-venue-map-title{color:#ccc;margin-bottom:8px;font-size:14px;font-weight:600}.ts-venue-row{align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.ts-venue-from{color:#f87171}.ts-venue-arrow{color:#555}.ts-venue-to{color:#4ade80}.ts-apply-btn{color:#fff;cursor:pointer;background:#166534;border:none;border-radius:14px;width:100%;margin:20px 0;padding:16px;font-size:16px;font-weight:700;transition:background .15s;display:block}.ts-apply-btn:active{background:#15803d}.ts-no-changes{text-align:center;color:#4ade80;padding:24px 0;font-size:16px;font-weight:600}.ts-spinner-large{justify-content:center;padding:64px 0;display:flex}.ts-spin{border:4px solid #333;border-top-color:#4ade80;border-radius:50%;width:48px;height:48px;animation:.8s linear infinite ts-rotate}@keyframes ts-rotate{to{transform:rotate(360deg)}}.ts-done-summary{background:#151a1c;border-radius:14px;margin:16px 0;padding:16px 18px}.ts-done-row{border-bottom:1px solid #1e2628;padding:10px 0;font-size:16px}.ts-done-row:last-child{border-bottom:none}.ts-done-row.green{color:#4ade80}.ts-done-row.red{color:#f87171}.ts-done-row.orange{color:#fbbf24}.ts-done-row.blue{color:#60a5fa}.ts-errors{background:#2a1515;border:1px solid #7f1d1d;border-radius:12px;margin:12px 0;padding:12px 16px}.ts-errors-title{color:#f87171;margin-bottom:8px;font-size:14px;font-weight:600}.ts-error-row{color:#fca5a5;padding:3px 0;font-size:13px}.app-shell{background:#0a0e0f;flex-direction:column;min-height:100vh;display:flex}.app-body{flex:1}.app-nav{z-index:50;background:#12191b;border-top:1px solid #1fc8d42e;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-btn{color:#5f6b6d;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:9px 4px 8px;font-family:inherit;font-size:11px;font-weight:700;display:flex}.nav-btn.active{color:#1fc8d4}.nav-icon{font-size:20px}
