*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--color-primary-50: #e6f4f9;--color-primary-100: #b3ddf0;--color-primary-200: #80c6e6;--color-primary-300: #4dafdd;--color-primary-400: #2698d3;--color-primary-500: #0077b6;--color-primary-600: #006aa3;--color-primary-700: #005a8a;--color-primary-800: #004a71;--color-primary-900: #003a58;--color-accent-400: #00b4d8;--color-accent-500: #0096c7;--color-accent-600: #0077b6;--color-gray-50: #f8fafc;--color-gray-100: #f1f5f9;--color-gray-200: #e2e8f0;--color-gray-300: #cbd5e1;--color-gray-400: #94a3b8;--color-gray-500: #64748b;--color-gray-600: #475569;--color-gray-700: #334155;--color-gray-800: #1e293b;--color-gray-900: #0f172a;--color-success: #10b981;--color-success-light: #d1fae5;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-error: #ef4444;--color-error-light: #fee2e2;--color-info: #3b82f6;--color-info-light: #dbeafe;--surface-primary: #ffffff;--surface-secondary: #f8fafc;--surface-dark: #0f172a;--surface-sidebar: linear-gradient(180deg, #0f172a 0%, #1e293b 100%);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-base: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: .75rem;--spacing-base: 1rem;--spacing-lg: 1.25rem;--spacing-xl: 1.5rem;--spacing-2xl: 2rem;--spacing-3xl: 3rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--border-color: #e2e8f0;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .35s ease;--sidebar-width: 280px;--sidebar-collapsed-width: 80px;--header-height: 64px}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);background-color:var(--surface-secondary);color:var(--color-gray-800);line-height:1.5;min-height:100vh}#root{min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}ul,ol{list-style:none}img{max-width:100%;display:block}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in{animation:fadeIn .4s ease-out}.animate-slide-in-left{animation:slideInLeft .3s ease-out}.animate-slide-in-right{animation:slideInRight .3s ease-out}.animate-scale-in{animation:scaleIn .3s ease-out}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-2xl);position:relative;overflow:hidden;background:linear-gradient(135deg,#0f172a,#1e3a5f,#0077b6)}.login-bg{position:absolute;inset:0;overflow:hidden;z-index:0}.login-bg-circle{position:absolute;border-radius:50%;opacity:.08;background:#fff}.login-bg-circle-1{width:600px;height:600px;top:-200px;right:-150px;animation:float 20s ease-in-out infinite}.login-bg-circle-2{width:400px;height:400px;bottom:-100px;left:-100px;animation:float 15s ease-in-out infinite reverse}.login-bg-circle-3{width:200px;height:200px;top:50%;left:50%;animation:float 12s ease-in-out infinite}.login-wave{position:absolute;bottom:0;left:0;width:200%;height:200px;opacity:.06;background:repeating-linear-gradient(90deg,transparent,transparent 40px,white 40px,white 80px);border-radius:50% 50% 0 0}.login-wave-1{animation:wave 8s ease-in-out infinite}.login-wave-2{height:150px;opacity:.04;animation:wave 12s ease-in-out infinite reverse}@keyframes float{0%,to{transform:translate(0)}25%{transform:translate(30px,-30px)}50%{transform:translate(-20px,20px)}75%{transform:translate(20px,10px)}}@keyframes wave{0%,to{transform:translate(0)}50%{transform:translate(-25%)}}.login-container{position:relative;z-index:1;width:100%;max-width:440px;background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--radius-2xl);padding:var(--spacing-3xl);box-shadow:0 25px 50px -12px #0000004d,0 0 0 1px #ffffff1a}.login-header{text-align:center;margin-bottom:var(--spacing-2xl)}.login-logo{width:72px;height:72px;margin:0 auto var(--spacing-lg);background:linear-gradient(135deg,var(--color-primary-500),var(--color-accent-400));border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;color:#fff;font-size:2rem;box-shadow:0 8px 24px #0077b64d}.login-title{font-size:var(--font-size-2xl);font-weight:800;color:var(--color-gray-900);letter-spacing:-.02em}.login-subtitle{font-size:var(--font-size-base);color:var(--color-gray-500);margin-top:var(--spacing-xs);font-weight:500}.login-error{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-base);background:var(--color-error-light);border:1px solid #fecaca;border-radius:var(--radius-md);color:var(--color-error);font-size:var(--font-size-sm);font-weight:500;margin-bottom:var(--spacing-lg)}.login-error svg{flex-shrink:0;font-size:1.1rem}.login-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.login-field{display:flex;flex-direction:column;gap:var(--spacing-sm)}.login-label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-gray-700)}.login-input-wrapper{position:relative}.login-input-icon{position:absolute;left:var(--spacing-base);top:50%;transform:translateY(-50%);color:var(--color-gray-400);font-size:1.1rem;transition:color var(--transition-fast);pointer-events:none}.login-input{width:100%;padding:.75rem 1rem .75rem 2.75rem;border:2px solid var(--color-gray-200);border-radius:var(--radius-lg);font-size:var(--font-size-base);color:var(--color-gray-800);background:var(--surface-primary);transition:all var(--transition-fast);outline:none}.login-input::placeholder{color:var(--color-gray-400)}.login-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px #0077b626}.login-input:focus+.login-input-icon,.login-input-wrapper:focus-within .login-input-icon{color:var(--color-primary-500)}.login-button{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);width:100%;padding:.875rem;background:linear-gradient(135deg,var(--color-primary-500),var(--color-accent-400));color:#fff;border:none;border-radius:var(--radius-lg);font-size:var(--font-size-md);font-weight:600;cursor:pointer;transition:all var(--transition-base);box-shadow:0 4px 14px #0077b64d;margin-top:var(--spacing-sm)}.login-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #0077b666}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.7;cursor:not-allowed}.login-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.login-footer{text-align:center;margin-top:var(--spacing-2xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-gray-200)}.login-footer p{font-size:var(--font-size-xs);color:var(--color-gray-400)}@media(max-width:768px){.login-page{padding:var(--spacing-lg)}.login-container{max-width:100%;padding:var(--spacing-2xl) var(--spacing-lg)}.login-form-input{font-size:16px;padding:.75rem}.login-button{font-size:var(--font-size-sm);padding:.75rem;min-height:44px}.tabs-container .tab{padding:1rem .75rem;font-size:var(--font-size-sm)}}@media(max-width:480px){.login-page{padding:var(--spacing-base)}.login-container{padding:var(--spacing-xl) var(--spacing-base)}.login-logo{max-width:120px;height:120px}.login-title{font-size:var(--font-size-lg)}.login-subtitle{font-size:var(--font-size-xs)}.login-form-group{margin-bottom:var(--spacing-lg)}.login-form-label{font-size:var(--font-size-xs)}.login-form-input{font-size:16px;padding:.875rem;border-radius:var(--radius-md)}.login-form-input::placeholder{font-size:16px}.login-button{font-size:var(--font-size-sm);padding:.875rem;min-height:48px;width:100%}.tabs-container{margin-bottom:var(--spacing-lg)}.tabs-container .tab{padding:.875rem 1rem;font-size:var(--font-size-xs);flex:1}.tabs-container .tab svg{font-size:1rem}.login-footer{gap:var(--spacing-sm);font-size:var(--font-size-xs)}.login-footer p{font-size:var(--font-size-xs);margin:0}.login-footer a{font-size:var(--font-size-xs)}.social-login-button{padding:.875rem;font-size:var(--font-size-xs);min-height:44px}.error-message,.success-message{font-size:var(--font-size-xs);padding:.75rem}}.dashboard-layout{display:flex;min-height:100vh;--current-sidebar-width: var(--sidebar-width)}.dashboard-layout.collapsed{--current-sidebar-width: var(--sidebar-collapsed-width)}.sidebar{width:var(--current-sidebar-width);min-height:100vh;background:var(--surface-sidebar);display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;z-index:100;transition:width var(--transition-base);overflow-x:hidden;overflow-y:auto}.dashboard-layout.tennis-theme .sidebar{background:linear-gradient(180deg,#1f4d3a,#173b2c)}.sidebar-collapse-toggle{position:static;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);background:#ffffff14;color:var(--color-gray-200);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.sidebar-collapse-toggle:hover{background:#ffffff29;color:#fff}.sidebar-mobile-close{display:none;width:32px;height:32px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);background:#ffffff14;color:var(--color-gray-200);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.sidebar-mobile-close:hover{background:#ffffff29;color:#fff}.sidebar-overlay{display:none}.sidebar-header{padding:var(--spacing-xl);border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.dashboard-layout.collapsed .sidebar-header{padding:.75rem .5rem;flex-direction:column;justify-content:center}.dashboard-layout.collapsed .sidebar-logo{width:100%;justify-content:center}.dashboard-layout.collapsed .sidebar-collapse-toggle{width:32px;height:32px;margin-top:.25rem}.sidebar-logo{display:flex;align-items:center;gap:var(--spacing-md)}.sidebar-logo-icon{width:42px;height:42px;min-width:42px;background:linear-gradient(135deg,var(--color-primary-500),var(--color-accent-400));border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.4rem;box-shadow:0 4px 12px #0077b64d}.dashboard-layout.tennis-theme .sidebar-logo-icon{background:transparent;box-shadow:none}.sidebar-logo-text{display:flex;flex-direction:column;white-space:nowrap}.sidebar-logo-title{font-size:var(--font-size-md);font-weight:700;color:#fff;letter-spacing:-.01em}.sidebar-logo-sub{font-size:var(--font-size-xs);color:var(--color-gray-400);font-weight:500}.sidebar-nav{flex:1;padding:var(--spacing-base) 0;display:flex;flex-direction:column;gap:var(--spacing-xs)}.sidebar-section{padding:0 var(--spacing-md)}.sidebar-section-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;color:var(--color-gray-400);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:color var(--transition-fast)}.sidebar-section-toggle:hover{color:var(--color-gray-300)}.sidebar-chevron{font-size:.9rem;transition:transform var(--transition-fast)}.sidebar-chevron.open{transform:rotate(180deg)}.sidebar-links{display:flex;flex-direction:column;gap:2px;margin-top:var(--spacing-xs)}.sidebar-link{display:flex;align-items:center;gap:var(--spacing-md);padding:.625rem var(--spacing-base);border-radius:var(--radius-md);color:var(--color-gray-400);font-size:var(--font-size-sm);font-weight:500;transition:all var(--transition-fast);white-space:nowrap;text-decoration:none}.sidebar-link:hover{color:#fff;background:#ffffff0f}.dashboard-layout.tennis-theme .sidebar-link:hover{background:#ffffff1a}.sidebar-link.active{color:#fff;background:linear-gradient(135deg,#0077b666,#00b4d833);box-shadow:0 0 20px #0077b626}.dashboard-layout.tennis-theme .sidebar-link.active{background:linear-gradient(135deg,#3f8e6b80,#2c6f5259);box-shadow:0 0 16px #092b1e4d}.sidebar-link-icon{font-size:1.2rem;min-width:1.2rem;flex-shrink:0}.sidebar-link-parent{width:100%;background:none;border:none;cursor:pointer;text-align:left}.sidebar-chevron-inline{font-size:.85rem;flex-shrink:0;transition:transform .2s ease;color:var(--color-gray-500)}.sidebar-chevron-inline.open{transform:rotate(180deg)}.sidebar-submenu{list-style:none;padding:0;margin:.25rem 0 .25rem 1rem;display:flex;flex-direction:column;gap:.125rem;border-left:1.5px solid rgba(255,255,255,.08);padding-left:.5rem}.sidebar-sublink{display:flex;align-items:center;gap:var(--spacing-md);padding:.5rem var(--spacing-base);border-radius:var(--radius-md);color:var(--color-gray-500);font-size:.8rem;font-weight:500;transition:all var(--transition-fast);white-space:nowrap;text-decoration:none}.sidebar-sublink:hover{color:#fff;background:#ffffff0d}.dashboard-layout.tennis-theme .sidebar-sublink:hover{background:#ffffff17}.sidebar-sublink.active{color:#fff;background:linear-gradient(135deg,#0077b659,#00b4d826)}.dashboard-layout.tennis-theme .sidebar-sublink.active{background:linear-gradient(135deg,#3f8e6b73,#2c6f5247)}.sidebar-footer{padding:var(--spacing-base) var(--spacing-md);border-top:1px solid rgba(255,255,255,.08)}.sidebar-logout{display:flex;align-items:center;gap:var(--spacing-md);width:100%;padding:.625rem var(--spacing-base);background:none;border:none;border-radius:var(--radius-md);color:var(--color-gray-400);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.sidebar-logout:hover{color:var(--color-error);background:#ef44441a}.dashboard-main{flex:1;min-width:0;margin-left:var(--current-sidebar-width);transition:margin-left var(--transition-base);display:flex;flex-direction:column;min-height:100vh}.dashboard-header{position:sticky;top:0;z-index:50;height:var(--header-height);background:#ffffffd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-2xl)}.dashboard-header-left,.dashboard-header-right{display:flex;align-items:center;gap:var(--spacing-base)}.sidebar-toggle{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);color:var(--color-gray-600);font-size:1.2rem;cursor:pointer;transition:all var(--transition-fast)}.sidebar-toggle:hover{background:var(--color-gray-50);color:var(--color-gray-800)}.mobile-toggle{display:none}.header-user{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-base);background:var(--color-gray-100);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-700)}.header-user svg{color:var(--color-primary-500)}.dashboard-content{flex:1;min-width:0;padding:var(--spacing-2xl)}@media(max-width:1024px){.sidebar-collapse-toggle{display:none}.sidebar-mobile-close{display:inline-flex}.sidebar{transform:translate(-100%);width:var(--sidebar-width)!important}.sidebar.mobile-open{transform:translate(0)}.sidebar-overlay{display:block;position:fixed;inset:0;background:#00000080;z-index:99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dashboard-main{margin-left:0!important}.desktop-toggle{display:none}.mobile-toggle{display:flex}.dashboard-content{padding:var(--spacing-base)}}@media(max-width:768px){.dashboard-layout{flex-direction:column}.sidebar{width:var(--sidebar-width)!important}.dashboard-content{padding:var(--spacing-base)}.sidebar-nav{flex-direction:column;gap:var(--spacing-xs)}.sidebar-link{font-size:var(--font-size-xs);padding:var(--spacing-sm) var(--spacing-md)}.sidebar-link svg{font-size:1rem}.sidebar-header{position:sticky;top:0;z-index:2;background:inherit}}@media(max-width:480px){.dashboard-layout{min-height:100vh}.sidebar{width:100%!important;height:auto;max-height:72vh;position:fixed;inset:auto 0 0;transform:translateY(100%);transition:transform var(--transition-base);z-index:100;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0}.sidebar.mobile-open{transform:translateY(0);box-shadow:0 -4px 12px #0000001a}.sidebar-overlay{display:block;position:fixed;inset:0;background:#0006;z-index:99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sidebar-overlay.active{display:block}.sidebar-header{padding:.625rem .75rem;border-bottom:1px solid rgba(255,255,255,.08);position:sticky;top:0;z-index:3;background:inherit}.sidebar-logo{gap:.5rem}.sidebar-logo-icon{width:32px;height:32px;min-width:32px;font-size:1rem}.sidebar-logo-title{font-size:.82rem}.sidebar-logo-sub{font-size:.68rem}.sidebar-nav{gap:var(--spacing-xs);padding:var(--spacing-base) 0}.sidebar-link{font-size:.72rem;padding:.4rem .5rem;gap:.5rem}.sidebar-link svg{font-size:.82rem}.sidebar-section{padding:0 .5rem}.sidebar-section-toggle{padding:.4rem .5rem;font-size:.62rem;letter-spacing:.05em}.sidebar-submenu{margin:.2rem 0 .2rem .6rem;padding-left:.4rem}.sidebar-sublink{font-size:.68rem;padding:.38rem .5rem;gap:.5rem}.sidebar-mobile-close{width:28px;height:28px}.dashboard-content{padding:var(--spacing-base);margin-bottom:var(--spacing-2xl)}.mobile-toggle{min-width:44px;min-height:44px}}.page-container{animation:fadeIn .4s ease-out;min-width:0}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-2xl);flex-wrap:wrap;gap:var(--spacing-base)}.page-title-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.page-title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-gray-900);letter-spacing:-.02em}.page-subtitle{font-size:var(--font-size-sm);color:var(--color-gray-500)}.page-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.filters-card{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--spacing-xl);margin-bottom:var(--spacing-xl);box-shadow:var(--shadow-md)}.filters-toggle{display:flex;align-items:center;gap:var(--spacing-sm);background:none;border:none;color:var(--color-gray-600);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;padding:0;margin-bottom:var(--spacing-lg)}.filters-toggle:hover{color:var(--color-primary-500)}.filters-toggle svg{font-size:1.1rem}.filters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-base)}.filter-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.filter-label{font-size:var(--font-size-xs);font-weight:600;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.05em}.filter-input,.filter-select{padding:.5rem .75rem;border:1.5px solid var(--color-gray-200);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-gray-800);background:var(--surface-primary);outline:none;transition:all var(--transition-fast)}.filter-input:focus,.filter-select:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px #0077b61a}.filter-input::placeholder{color:var(--color-gray-400)}.filters-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:.5rem 1rem;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-primary{background:linear-gradient(135deg,var(--color-primary-500),var(--color-accent-400));color:#fff;box-shadow:0 2px 8px #0077b640}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0077b659}.btn-secondary{background:var(--color-gray-100);color:var(--color-gray-600);border:1px solid var(--color-gray-200)}.btn-secondary:hover{background:var(--color-gray-200);color:var(--color-gray-700)}.btn-success{background:var(--color-success);color:#fff;box-shadow:0 2px 8px #10b9814d}.btn-success:hover{transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.btn-danger:hover:not(:disabled){transform:translateY(-1px);background:#b91c1c;box-shadow:0 4px 12px #dc262666}.btn-icon{padding:.5rem;width:36px;height:36px}.table-card{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-md)}.table-wrapper{width:100%;max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;min-width:max-content;border-collapse:collapse}.data-table thead{background:var(--color-gray-50);border-bottom:2px solid var(--color-gray-200)}.data-table th{padding:.875rem 1rem;text-align:left;font-size:var(--font-size-xs);font-weight:700;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.data-table td{padding:.875rem 1rem;font-size:var(--font-size-sm);color:var(--color-gray-700);border-bottom:1px solid var(--color-gray-100);white-space:nowrap}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--color-gray-50)}.data-table tbody tr:last-child td{border-bottom:none}.attendance-table{min-width:0}.attendance-table th,.attendance-table td{white-space:normal;word-break:break-word}.status-badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600;letter-spacing:.02em}.status-badge.new,.status-badge.yeni{background:var(--color-info-light);color:var(--color-info)}.status-badge.contacted{background:var(--color-warning-light);color:var(--color-warning)}.status-badge.enrolled,.status-badge.kayıtlı{background:var(--color-success-light);color:var(--color-success)}.status-badge.cancelled,.status-badge.iptal{background:var(--color-error-light);color:var(--color-error)}.status-badge.default{background:var(--color-gray-100);color:var(--color-gray-500)}.role-badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600}.role-badge.admin{background:linear-gradient(135deg,#ede9fe,#ddd6fe);color:#7c3aed}.role-badge.superadmin{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#dc2626}.role-badge.employee{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#2563eb}.role-badge.customer{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#059669}.role-badge.asistan{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#b45309}.role-badge.hoca{background:linear-gradient(135deg,#cffafe,#a5f3fc);color:#0e7490}.pagination{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-base) var(--spacing-xl);border-top:1px solid var(--color-gray-100);flex-wrap:wrap;gap:var(--spacing-sm)}.pagination-info{font-size:var(--font-size-sm);color:var(--color-gray-500)}.pagination-buttons{display:flex;gap:var(--spacing-xs)}.pagination-btn{padding:.375rem .75rem;border:1px solid var(--color-gray-200);background:var(--surface-primary);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-gray-600);cursor:pointer;transition:all var(--transition-fast)}.pagination-btn:hover:not(:disabled){background:var(--color-primary-50);border-color:var(--color-primary-300);color:var(--color-primary-600)}.pagination-btn.active{background:var(--color-primary-500);border-color:var(--color-primary-500);color:#fff}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl);gap:var(--spacing-base)}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-gray-200);border-top-color:var(--color-primary-500);border-radius:50%;animation:spin .8s linear infinite}.loading-text{font-size:var(--font-size-sm);color:var(--color-gray-500)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl);text-align:center;gap:var(--spacing-base)}.empty-state-icon{font-size:3rem;color:var(--color-gray-300)}.empty-state-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-gray-600)}.empty-state-text{font-size:var(--font-size-sm);color:var(--color-gray-400)}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl);gap:var(--spacing-base);text-align:center}.error-icon{font-size:3rem;color:var(--color-error)}.error-text{font-size:var(--font-size-sm);color:var(--color-gray-600)}.toast{position:fixed;bottom:var(--spacing-2xl);right:var(--spacing-2xl);padding:var(--spacing-base) var(--spacing-xl);border-radius:var(--radius-lg);color:#fff;font-size:var(--font-size-sm);font-weight:500;box-shadow:var(--shadow-xl);animation:slideInRight .3s ease-out;z-index:1000;display:flex;align-items:center;gap:var(--spacing-sm)}.toast.success{background:var(--color-success)}.toast.error{background:var(--color-error)}.modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;padding:var(--spacing-2xl);animation:fadeIn .2s ease-out}.modal{background:var(--surface-primary);border-radius:var(--radius-xl);padding:var(--spacing-2xl);width:100%;max-width:480px;box-shadow:var(--shadow-xl);animation:scaleIn .3s ease-out;max-height:90vh;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-xl);flex-shrink:0}.modal-title{font-size:var(--font-size-lg);font-weight:700;color:var(--color-gray-900)}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:var(--radius-md);color:var(--color-gray-400);font-size:1.2rem;cursor:pointer;transition:all var(--transition-fast)}.modal-close:hover{background:var(--color-gray-100);color:var(--color-gray-600)}.modal-body{margin-bottom:var(--spacing-xl);overflow-y:auto;padding-right:4px}.modal-footer{display:flex;gap:var(--spacing-sm);justify-content:flex-end;flex-shrink:0}.detail-drawer-overlay{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:200;animation:fadeIn .2s ease-out}.detail-drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);max-width:100%;background:var(--surface-primary);box-shadow:var(--shadow-xl);border-left:1px solid var(--border-color);z-index:201;display:flex;flex-direction:column;animation:slideInRight .3s ease-out;overflow-y:auto;overflow-x:hidden}.detail-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:clamp(.9rem,1.8vw,var(--spacing-xl)) clamp(1rem,2.2vw,var(--spacing-2xl));border-bottom:1px solid var(--border-color);position:sticky;top:0;background:var(--surface-primary);z-index:1}.detail-drawer-title{font-size:var(--font-size-lg);font-weight:700;color:var(--color-gray-900);min-width:0;word-break:break-word}.detail-drawer-header--compact{padding:.65rem 1rem}.detail-drawer-header--compact .detail-drawer-title{font-size:var(--font-size-base)}.detail-drawer-body{flex:1;padding:clamp(1rem,2.2vw,var(--spacing-2xl))}.detail-section{margin-bottom:var(--spacing-xl)}.detail-section-title{font-size:var(--font-size-xs);font-weight:700;color:var(--color-gray-400);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--spacing-base);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-gray-100)}.detail-row{display:grid;grid-template-columns:minmax(130px,40%) minmax(0,1fr);align-items:flex-start;padding:var(--spacing-sm) 0;gap:var(--spacing-base)}.detail-row>*{min-width:0}.detail-label{font-size:var(--font-size-sm);color:var(--color-gray-500);font-weight:500;overflow-wrap:anywhere}.detail-value{font-size:var(--font-size-sm);color:var(--color-gray-800);font-weight:500;text-align:right;overflow-wrap:anywhere;max-width:100%}.detail-inline-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-sm);flex-wrap:wrap;width:min(100%,430px);margin-left:auto}.detail-inline-select{width:min(100%,320px);min-width:0!important;max-width:100%}.icon-button-plain{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:var(--color-gray-500);cursor:pointer;line-height:1;transition:color var(--transition-fast)}.icon-button-plain:hover:not(:disabled){color:var(--color-primary-500)}.icon-button-plain:disabled{opacity:.45;cursor:not-allowed}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-base);margin-bottom:var(--spacing-xl)}.stat-card{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--spacing-xl);display:flex;align-items:center;gap:var(--spacing-lg);box-shadow:var(--shadow-md);transition:all var(--transition-fast)}.stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.stat-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.stat-icon.blue{background:var(--color-info-light);color:var(--color-info)}.stat-icon.green{background:var(--color-success-light);color:var(--color-success)}.stat-icon.orange{background:var(--color-warning-light);color:var(--color-warning)}.stat-icon.purple{background:#ede9fe;color:#7c3aed}.stat-icon.red{background:var(--color-error-light);color:var(--color-error)}.stat-content{display:flex;flex-direction:column}.stat-card-actions{display:flex;align-items:center;gap:var(--spacing-sm);margin-left:auto;flex-shrink:0}.btn.btn-active{background:var(--color-primary-50, #eff6ff);border-color:var(--color-primary-400);color:var(--color-primary-700)}.stat-value{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-gray-900);line-height:1}.stat-label{font-size:var(--font-size-xs);color:var(--color-gray-500);font-weight:500;margin-top:var(--spacing-xs)}.cell-name{font-weight:600;color:var(--color-gray-800)}.cell-secondary{font-size:var(--font-size-xs);color:var(--color-gray-400)}.cell-clickable{cursor:pointer;color:var(--color-primary-500);font-weight:500}.cell-clickable:hover{text-decoration:underline}@media(max-width:768px){.filters-grid{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start}.page-title{font-size:var(--font-size-xl)}.page-actions{width:100%}.pagination{flex-direction:column;align-items:center}.detail-drawer{width:100%}.detail-row{grid-template-columns:1fr;gap:var(--spacing-xs)}.detail-value{text-align:left}.detail-inline-actions{width:100%;justify-content:flex-start;margin-left:0}.detail-inline-select{width:100%}.stats-row{grid-template-columns:1fr}.data-table{font-size:var(--font-size-xs)}.data-table th,.data-table td{padding:.625rem .5rem;font-size:var(--font-size-xs)}.modal{max-width:calc(100% - var(--spacing-2xl));max-height:90vh;overflow-y:auto}.filters-card{padding:var(--spacing-lg)}.btn{padding:.625rem 1.25rem;font-size:var(--font-size-xs);min-height:44px}.btn-icon{width:44px;height:44px;padding:.5rem}.table-wrapper{-webkit-overflow-scrolling:touch}.attendance-table-wrapper{overflow-x:hidden}.attendance-table thead{display:none}.attendance-table,.attendance-table tbody,.attendance-table tr,.attendance-table td{display:block;width:100%}.attendance-table tbody tr{border-bottom:1px solid var(--color-gray-100);padding:.5rem 0}.attendance-table tbody tr:last-child{border-bottom:none}.attendance-table td{border-bottom:none;padding:.4rem .75rem;display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;white-space:normal}.attendance-table td:before{content:attr(data-label);font-size:var(--font-size-xs);font-weight:700;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.04em;flex:0 0 95px}.attendance-table td>*{flex:1 1 auto;min-width:0}.plate-table thead{display:none}.plate-table,.plate-table tbody,.plate-table tr,.plate-table td{display:block;width:100%}.plate-table tbody tr{border-bottom:1px solid var(--color-gray-100);padding:.5rem 0}.plate-table tbody tr:last-child{border-bottom:none}.plate-table td{border-bottom:none;padding:.45rem .75rem;display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;white-space:normal;word-break:break-word}.plate-table td:before{content:attr(data-label);font-size:var(--font-size-xs);font-weight:700;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.04em;flex:0 0 110px}.plate-table td>*{flex:1 1 auto;min-width:0}.stat-card{gap:var(--spacing-base)}.stat-icon{width:40px;height:40px;font-size:1.25rem}.stat-value{font-size:var(--font-size-xl)}.pagination-buttons{flex-wrap:wrap;justify-content:center}}@media(max-width:480px){.page-container{padding:var(--spacing-base)}.page-title{font-size:var(--font-size-lg)}.page-subtitle{font-size:var(--font-size-xs)}.filters-grid{grid-template-columns:1fr}.page-header{margin-bottom:var(--spacing-base);gap:0}.page-actions{width:100%;justify-content:flex-start}.modal{max-width:100%;padding:var(--spacing-lg);border-radius:0}.modal-header{margin-bottom:var(--spacing-lg)}.modal-footer{flex-direction:column}.modal-footer .btn{width:100%}.detail-drawer{width:100%;max-width:100%}.detail-drawer-body{padding:var(--spacing-lg)}.detail-row{grid-template-columns:1fr;align-items:flex-start}.detail-value{text-align:left;margin-top:var(--spacing-xs)}.filters-card{padding:var(--spacing-base);border-radius:var(--radius-lg)}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table th,.data-table td{padding:.5rem .375rem;font-size:var(--font-size-xs)}.toast{bottom:var(--spacing-base);right:var(--spacing-base);left:var(--spacing-base);max-width:none}.stat-card{flex-direction:column;text-align:center}.stat-icon{margin:0 auto}.stat-content{align-items:center}.stat-card-actions{margin-left:0;width:100%;justify-content:center}.stat-card-actions .btn{flex:1}.btn{width:100%}.filters-toggle{font-size:var(--font-size-xs)}.pagination-buttons{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.confirmation-modal .modal{padding:var(--spacing-lg)}}.att-pills-row{display:flex;align-items:flex-start;gap:0;flex-wrap:wrap}.att-pill-group{display:flex;flex-direction:column;gap:.45rem}.att-pills{display:flex;gap:.35rem;flex-wrap:wrap}.att-pill-sep{width:1px;background:var(--color-gray-150, #eaecf0);margin:0 1.25rem;align-self:stretch;min-height:40px}.att-filter-bottom{display:grid;grid-template-columns:2fr 1fr;gap:1rem;align-items:end}.att-filter-bottom-equal{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:end}.att-filter-divider{height:1px;background:var(--color-gray-100);margin:1rem 0}.att-pill-btn{padding:.35rem .85rem;border-radius:999px;font-weight:600;font-size:.8rem;cursor:pointer;transition:all .15s;white-space:nowrap;border:1.5px solid var(--color-gray-200);background:#fff;color:var(--color-gray-600);line-height:1.4}.att-pill-btn:hover:not(:disabled):not(.active){border-color:var(--color-gray-300);background:var(--color-gray-50);color:var(--color-gray-800)}.att-pill-btn.active{border:2px solid var(--color-primary-500);background:#eff6ff;color:var(--color-primary-700)}.att-pill-btn:disabled{opacity:.45;cursor:default}.att-section-label{font-size:.63rem;font-weight:700;color:var(--color-gray-400);text-transform:uppercase;letter-spacing:.07em;display:block}@media(max-width:640px){.att-pills-row{flex-direction:column;gap:.875rem}.att-pill-sep{display:none}.att-filter-bottom,.att-filter-bottom-equal{grid-template-columns:1fr}.filters-card{padding:var(--spacing-base)}}.password-card{max-width:560px;background:var(--surface-primary);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--spacing-2xl);box-shadow:var(--shadow-sm)}.password-card-header{display:flex;align-items:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl);padding-bottom:var(--spacing-xl);border-bottom:1px solid var(--color-gray-100)}.password-card-icon{width:48px;height:48px;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--color-primary-500),var(--color-accent-400));display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.4rem;flex-shrink:0}.password-card-title{font-size:var(--font-size-lg);font-weight:700;color:var(--color-gray-900)}.password-card-desc{font-size:var(--font-size-sm);color:var(--color-gray-500);margin-top:2px}.password-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.password-field{display:flex;flex-direction:column;gap:var(--spacing-sm)}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-icon{position:absolute;left:.75rem;color:var(--color-gray-400);font-size:1.1rem;pointer-events:none;z-index:1}.password-input{width:100%;padding-left:2.5rem!important;padding-right:2.5rem!important}.password-toggle{position:absolute;right:.75rem;background:none;border:none;color:var(--color-gray-400);cursor:pointer;display:flex;align-items:center;padding:.25rem;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.password-toggle:hover{color:var(--color-gray-600)}.password-strength{display:flex;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-xs)}.strength-bar{display:flex;gap:3px;flex:1;max-width:200px}.strength-segment{height:4px;border-radius:2px;flex:1;transition:background var(--transition-fast)}.strength-label{font-size:var(--font-size-xs);font-weight:600}.password-match{margin-top:var(--spacing-xs)}.match-success{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-xs);color:var(--color-success);font-weight:500}.match-error{font-size:var(--font-size-xs);color:var(--color-error);font-weight:500}.password-hints{background:var(--color-gray-50);border-radius:var(--radius-md);padding:var(--spacing-base)}.password-hints-title{font-size:var(--font-size-xs);font-weight:600;color:var(--color-gray-600);margin-bottom:var(--spacing-sm)}.password-hints ul{display:flex;flex-direction:column;gap:var(--spacing-xs)}.password-hints li{font-size:var(--font-size-xs);color:var(--color-gray-400);padding-left:1.25rem;position:relative;transition:color var(--transition-fast)}.password-hints li:before{content:"○";position:absolute;left:0;transition:all var(--transition-fast)}.password-hints li.met{color:var(--color-success)}.password-hints li.met:before{content:"●";color:var(--color-success)}.password-submit{padding:.75rem 1.5rem;font-size:var(--font-size-base);margin-top:var(--spacing-sm)}@media(max-width:768px){.password-card{max-width:100%;padding:var(--spacing-xl)}.password-card-header{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-lg);gap:var(--spacing-base)}.password-card-icon{width:40px;height:40px;font-size:1.2rem}.password-card-title{font-size:var(--font-size-base)}.password-form{gap:var(--spacing-base)}.strength-bar{max-width:100%}.password-hints{padding:var(--spacing-base)}}@media(max-width:480px){.password-card{border-radius:0;padding:var(--spacing-lg);margin:0}.password-card-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-base);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.password-card-icon{width:36px;height:36px;font-size:1rem}.password-card-title{font-size:var(--font-size-sm)}.password-card-desc{font-size:var(--font-size-xs)}.password-form{gap:var(--spacing-lg)}.password-field{gap:var(--spacing-sm)}.password-input{font-size:16px;padding-left:2.75rem!important;padding-right:2.75rem!important}.password-input-icon{font-size:1rem}.password-toggle{right:.5rem}.password-strength{gap:var(--spacing-xs)}.strength-bar{max-width:100%}.strength-label{font-size:var(--font-size-xs);white-space:nowrap}.password-hints{padding:var(--spacing-base);background:var(--color-gray-50)}.password-hints-title{font-size:var(--font-size-xs);margin-bottom:var(--spacing-sm)}.password-hints ul{gap:var(--spacing-xs)}.password-hints li{font-size:var(--font-size-xs);padding-left:1rem}.password-submit{width:100%;padding:.875rem;font-size:var(--font-size-sm);min-height:44px;margin-top:var(--spacing-base)}.match-success,.match-error{font-size:var(--font-size-xs)}}.subs-alert{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;border-radius:10px;font-size:.9rem;font-weight:500;margin-bottom:1.5rem}.subs-alert-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.subs-table td{vertical-align:top;padding-top:1rem;padding-bottom:1rem}.subs-table td:last-child{width:60%}.no-periods{color:var(--color-gray-400);font-style:italic;font-size:.85rem}.type-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:6px;font-size:.78rem;font-weight:600;letter-spacing:.01em}.type-badge.adult{background:#e0e7ff;color:#3730a3}.type-badge.child{background:#fef9c3;color:#854d0e}.periods-timeline{display:flex;flex-wrap:wrap;gap:10px}.period-card{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:100px;padding:8px 10px;background:#fff;border:1.5px solid var(--color-gray-200);border-radius:10px;transition:all .2s ease;position:relative}.period-card:hover{box-shadow:0 4px 12px #0000000f;transform:translateY(-1px)}.period-card.paid{border-color:#86efac;background:linear-gradient(135deg,#f0fdf4,#dcfce7)}.period-card.unpaid{border-color:#fca5a5;background:linear-gradient(135deg,#fff5f5,#fef2f2)}.period-header{display:flex;align-items:baseline;gap:4px;width:100%;justify-content:center}.period-month{font-size:.85rem;font-weight:700;color:var(--color-gray-800);text-transform:capitalize}.period-year{font-size:.72rem;font-weight:500;color:var(--color-gray-400)}.period-amount{font-size:.78rem;font-weight:600;color:var(--color-gray-500);margin-bottom:2px}.period-footer{display:flex;align-items:center;justify-content:center;width:100%}.action-btn{display:inline-flex;align-items:center;justify-content:center;padding:5px 12px;font-size:.72rem;font-weight:700;border-radius:6px;cursor:pointer;border:none;transition:all .2s;white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}.pay-btn{background:var(--color-primary-50, #eff6ff);color:var(--color-primary-700, #1d4ed8);border:1.5px solid var(--color-primary-200, #bfdbfe)}.pay-btn:hover{background:var(--color-primary-600, #2563eb);color:#fff;border-color:var(--color-primary-600, #2563eb);box-shadow:0 2px 8px #2563eb40;transform:translateY(-1px)}.pay-btn:active{transform:translateY(0)}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;font-size:.72rem;font-weight:700;border-radius:6px;white-space:nowrap;letter-spacing:.02em}.paid-badge{color:#166534;background:#dcfce7;border:1px solid #bbf7d0}.processing{color:var(--color-warning-700, #a16207);background:var(--color-warning-50, #fefce8);border:1px solid var(--color-warning-100, #fef9c3)}.spin-icon{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.confirm-amount-box{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.25rem;background:linear-gradient(135deg,#eff6ff,#dbeafe);border-radius:10px;border:1px solid #bfdbfe;margin-top:.5rem}.confirm-amount-label{font-size:.85rem;font-weight:500;color:#1e40af}.confirm-amount-value{font-size:1.15rem;font-weight:700;color:#1e3a8a}.stat-icon.orange{background:#fff7ed;color:#ea580c}@media(max-width:768px){.periods-timeline{gap:8px}.period-card{min-width:80px;padding:6px 8px}.period-month{font-size:.75rem}.period-amount{font-size:.7rem}.subs-table td:last-child{width:auto}.action-btn{padding:6px 10px;font-size:.65rem;min-height:32px}.status-badge{font-size:.65rem}.period-status-group{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%}}@media(max-width:480px){.periods-timeline{gap:6px}.period-card{min-width:70px;padding:5px 6px}.period-month{font-size:.7rem}.period-year,.period-amount{font-size:.65rem}.action-btn{padding:5px 8px;font-size:.6rem;min-height:30px}.status-badge{font-size:.6rem;padding:2px 6px}.paid-badge,.processing{font-size:.6rem}.period-status-group{width:100%}.subs-alert{padding:.75rem 1rem;font-size:.8rem;gap:.5rem;flex-direction:column}.type-badge{font-size:.7rem;padding:3px 8px}.no-periods{font-size:.8rem}.confirm-amount-box{flex-direction:column;gap:.5rem}.confirm-amount-label,.confirm-amount-value{width:100%;text-align:left}.confirm-amount-value{font-size:1rem}}.programs-filter-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.sport-filter-chip{border:1.5px solid var(--color-gray-200);background:var(--surface-primary);color:var(--color-gray-600);border-radius:999px;padding:.45rem .9rem;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .2s ease}.sport-filter-chip:hover{border-color:var(--color-primary-300);color:var(--color-primary-700);background:var(--color-primary-50, #eff6ff)}.sport-filter-chip.active{border-color:var(--color-primary-500);background:linear-gradient(135deg,var(--color-primary-500),var(--color-accent-400));color:#fff;box-shadow:0 2px 8px #0077b633}.programs-filter-bar{display:flex;align-items:stretch;gap:0;flex-wrap:wrap;background:var(--surface-primary);border:2px solid var(--border-color);border-radius:14px;padding:0;margin-bottom:1.5rem;overflow:hidden;box-shadow:0 1px 4px #0000000d}.programs-filter-group{display:flex;align-items:center;gap:0;flex:1;min-width:200px;border-right:2px solid var(--border-color);padding:.75rem 1.1rem}.programs-filter-group:last-of-type{border-right:none}.programs-filter-label{display:flex;align-items:center;gap:.45rem;font-size:.88rem;font-weight:700;color:var(--color-gray-600);white-space:nowrap;cursor:default;min-width:52px;margin-right:.6rem}.programs-filter-label svg{width:16px;height:16px;color:var(--color-primary-500)}.programs-filter-select{border:none;background:transparent;color:var(--color-gray-800);border-radius:0;padding:.35rem .25rem;font-size:.95rem;font-weight:500;cursor:pointer;transition:color .15s;outline:none;flex:1;min-width:120px;appearance:auto}.programs-filter-select:hover{color:var(--color-primary-600)}.programs-filter-select:focus{color:var(--color-primary-700)}.programs-filter-select.active{color:var(--color-primary-700);font-weight:700}.programs-filter-clear{display:flex;align-items:center;gap:.4rem;border:none;background:transparent;color:var(--color-gray-400);border-radius:0;padding:.75rem 1rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s;border-left:2px solid var(--border-color);white-space:nowrap}.programs-filter-clear:hover{color:#ef4444;background:#fef2f2}.programs-filter-clear svg{width:15px;height:15px}.programs-section-count-total{font-size:.75rem;color:var(--color-gray-400);font-weight:500}.programs-section{margin-bottom:2rem}.programs-section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid var(--border-color)}.programs-section-title{display:flex;align-items:center;gap:.5rem;font-size:1.05rem;font-weight:700;color:var(--color-gray-800);margin:0}.programs-section-count{background:var(--color-primary-100, #dbeafe);color:var(--color-primary-700, #1d4ed8);border-radius:999px;padding:.1rem .55rem;font-size:.78rem;font-weight:700;min-width:22px;text-align:center}.programs-section-tabs{display:flex;align-items:center;gap:.35rem}.sport-section-tab{border:1.5px solid var(--color-gray-200);background:var(--surface-primary);color:var(--color-gray-600);border-radius:999px;padding:.35rem .8rem;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .18s ease}.sport-section-tab:hover{border-color:var(--color-primary-300);color:var(--color-primary-700);background:var(--color-primary-50, #eff6ff)}.sport-section-tab.active{border-color:var(--color-primary-500);background:linear-gradient(135deg,var(--color-primary-500),var(--color-accent-400));color:#fff;box-shadow:0 2px 8px #0077b633}.programs-section-empty{padding:1.5rem;text-align:center;color:var(--color-gray-400);font-size:.88rem;background:var(--color-gray-50);border-radius:var(--radius-lg);border:1px dashed var(--color-gray-200)}.programs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.25rem}.program-card{background:var(--surface-primary);border:1.5px solid var(--border-color);border-radius:var(--radius-xl);padding:1.5rem;display:flex;flex-direction:column;gap:1rem;transition:all .25s ease;position:relative;overflow:hidden}.program-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:var(--radius-xl) var(--radius-xl) 0 0;transition:opacity .25s ease}.program-card.active:before{background:linear-gradient(135deg,var(--color-primary-500),var(--color-accent-400));opacity:1}.program-card.inactive:before{background:var(--color-gray-300);opacity:1}.program-card:hover{box-shadow:0 8px 24px #00000014;transform:translateY(-2px)}.program-card.inactive{opacity:.7}.program-card.inactive:hover{opacity:1}.program-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.program-card-info{flex:1;min-width:0}.program-card-name{font-size:1.05rem;font-weight:700;color:var(--color-gray-900);margin:0 0 .5rem;line-height:1.3;word-break:break-word}.program-card-badges{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.sport-type-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:6px;font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.sport-type-badge.SWIMMING{background:#cffafe;color:#0f766e}.sport-type-badge.TENNIS{background:#dcfce7;color:#166534}.program-type-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:6px;font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.program-type-badge.CHILD{background:#fef9c3;color:#854d0e}.program-type-badge.ADULT{background:#e0e7ff;color:#3730a3}.program-type-badge.BOTH{background:linear-gradient(135deg,#fef9c3,#e0e7ff);color:#4338ca}.program-active-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:6px;font-size:.72rem;font-weight:700;letter-spacing:.02em}.program-active-badge.active{background:#dcfce7;color:#166534}.program-active-badge.inactive{background:#fee2e2;color:#991b1b}.program-card-actions{display:flex;gap:6px;flex-shrink:0}.program-action-btn{width:32px;height:32px;border-radius:8px;border:1.5px solid var(--color-gray-200);background:var(--surface-primary);color:var(--color-gray-500);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;font-size:.9rem}.program-action-btn:hover{border-color:var(--color-primary-300);color:var(--color-primary-600);background:var(--color-primary-50, #eff6ff)}.program-action-btn.delete:hover{border-color:#fca5a5;color:#dc2626;background:#fef2f2}.program-whatsapp-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.55rem 1rem;background:#f0fdf4;border:1.5px solid #86efac;border-radius:var(--radius-md);color:#15803d;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.program-whatsapp-btn svg{font-size:1.1rem;color:#25d366;flex-shrink:0}.program-whatsapp-btn:hover{background:#dcfce7;border-color:#4ade80;color:#166534;box-shadow:0 2px 8px #25d36633}.program-schedule{display:flex;flex-direction:column;gap:.5rem;padding:.875rem;background:var(--color-gray-50);border-radius:var(--radius-lg);border:1px solid var(--color-gray-100)}.program-schedule-row{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--color-gray-600)}.program-schedule-row svg{color:var(--color-primary-500);flex-shrink:0;font-size:1rem}.program-schedule-row strong{color:var(--color-gray-800);font-weight:600}.program-card-footer{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;color:var(--color-gray-400);padding-top:.5rem;border-top:1px solid var(--color-gray-100)}.program-form-modal{padding:clamp(.5rem,2.5vw,var(--spacing-2xl));align-items:center}.program-form-modal .modal{max-width:560px;width:100%;max-height:min(90vh,calc(100vh - 2rem));display:flex;flex-direction:column;padding:0;overflow:hidden}.program-form-modal .modal-header{padding:1.1rem 1.5rem;margin-bottom:0;border-bottom:1px solid var(--color-gray-100);flex-shrink:0;background:var(--surface-primary)}.program-form-modal .modal-body{padding:1.25rem 1.5rem;margin-bottom:0;overflow-y:auto;overflow-x:hidden;flex:1 1 auto;min-height:0;-webkit-overflow-scrolling:touch}.program-form-modal .modal-footer{padding:.9rem 1.5rem;border-top:1px solid var(--color-gray-100);background:var(--surface-primary);flex-shrink:0}.program-form{display:flex;flex-direction:column;gap:1.25rem}.assign-instructor-toggle{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem .9rem;border:1.5px solid var(--color-gray-200);border-radius:var(--radius-md);background:var(--color-gray-50);cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.assign-instructor-toggle:hover{border-color:var(--color-primary-300);background:var(--color-primary-50, #eff6ff)}.assign-instructor-toggle.active{border-color:var(--color-primary-400);background:var(--color-primary-50, #eff6ff)}.assign-instructor-toggle input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}.assign-instructor-checkbox{width:20px;height:20px;border-radius:5px;border:2px solid var(--color-gray-300);background:var(--surface-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;font-size:13px;font-weight:700;transition:all .15s ease;margin-top:1px}.assign-instructor-toggle.active .assign-instructor-checkbox{border-color:var(--color-primary-500);background:var(--color-primary-500)}.assign-instructor-text{display:flex;flex-direction:column;gap:2px;min-width:0}.assign-instructor-title{font-weight:600;font-size:.9rem;color:var(--color-gray-800)}.assign-instructor-sub{font-size:.78rem;color:var(--color-gray-500);line-height:1.35}.instructor-picker{margin-top:.6rem;display:flex;flex-direction:column;gap:.4rem}.instructor-picker-list{display:grid;gap:.4rem;max-height:220px;overflow-y:auto;padding:.4rem;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);background:var(--surface-primary);-webkit-overflow-scrolling:touch}.instructor-option{display:flex;align-items:center;gap:.7rem;padding:.55rem .8rem;border:1.5px solid var(--color-gray-200);border-radius:var(--radius-md);background:var(--surface-primary);cursor:pointer;transition:all .15s ease;text-align:left;width:100%}.instructor-option:hover{border-color:var(--color-primary-300);background:var(--color-gray-50)}.instructor-option.selected{border-color:#86efac;background:#f0fdf4;box-shadow:0 0 0 2px #22c55e1a}.instructor-option-checkbox{width:18px;height:18px;border-radius:4px;border:2px solid var(--color-gray-300);background:transparent;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;font-size:12px;font-weight:700;transition:all .15s ease}.instructor-option.selected .instructor-option-checkbox{border-color:#22c55e;background:#22c55e}.instructor-option-info{display:flex;flex-direction:column;min-width:0;gap:1px}.instructor-option-name{font-weight:600;color:var(--color-gray-800);font-size:.88rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.instructor-option.selected .instructor-option-name{color:#166534}.instructor-option-email{font-size:.72rem;color:var(--color-gray-500);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.instructor-option.selected .instructor-option-email{color:#15803d}.instructor-picker-empty{padding:.75rem 1rem;background:var(--color-gray-50);border:1px dashed var(--color-gray-200);border-radius:var(--radius-md);color:var(--color-gray-500);font-size:.82rem;text-align:center}.instructor-picker-count{font-size:.78rem;color:var(--color-gray-500)}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-label{font-size:.82rem;font-weight:600;color:var(--color-gray-600)}.form-label .required{color:#dc2626;margin-left:2px}.form-input,.form-select{padding:.625rem .875rem;border:1.5px solid var(--color-gray-200);border-radius:var(--radius-md);font-size:.9rem;color:var(--color-gray-800);background:var(--surface-primary);outline:none;transition:all .2s ease;font-family:inherit}.form-input:focus,.form-select:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px #0077b61f}.form-input::placeholder{color:var(--color-gray-400)}.sport-type-picker{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.sport-type-chip{border:1.5px solid var(--color-gray-200);background:var(--surface-primary);color:var(--color-gray-700);border-radius:10px;padding:.6rem .65rem;font-size:.85rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;cursor:pointer;transition:all .2s ease}.sport-type-chip:hover{border-color:var(--color-primary-300);color:var(--color-primary-700);background:var(--color-gray-50)}.sport-type-chip.selected{border-color:var(--color-primary-300);background:var(--color-primary-50, #eff6ff);color:var(--color-primary-700);box-shadow:none}.sport-type-chip-emoji{font-size:1rem;line-height:1}.capacity-mode-picker{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.capacity-mode-chip{border:1.5px solid var(--color-gray-200);background:var(--surface-primary);color:var(--color-gray-700);border-radius:10px;padding:.6rem .65rem;font-size:.85rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.capacity-mode-chip:hover{border-color:var(--color-primary-300);color:var(--color-primary-700);background:var(--color-gray-50)}.capacity-mode-chip.selected{border-color:var(--color-primary-300);background:var(--color-primary-50, #eff6ff);color:var(--color-primary-700)}.weekday-picker{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem}.weekday-chip{border:1.5px solid var(--color-gray-200);background:var(--surface-primary);color:var(--color-gray-600);border-radius:10px;font-size:.82rem;font-weight:600;padding:.55rem .5rem;cursor:pointer;transition:all .2s ease}.weekday-chip:hover{border-color:var(--color-primary-400);color:var(--color-primary-700);background:var(--color-primary-50, #eff6ff)}.weekday-chip.selected{border-color:var(--color-primary-500);background:linear-gradient(135deg,var(--color-primary-500),var(--color-accent-400));color:#fff;box-shadow:0 2px 8px #0077b640}.weekday-selection-text{font-size:.78rem;color:var(--color-gray-500);margin-top:.2rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.toggle-wrapper{display:flex;align-items:center;gap:.75rem}.toggle-switch{position:relative;display:inline-flex;width:44px;height:24px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--color-gray-300);border-radius:12px;transition:all .3s ease}.toggle-slider:before{content:"";position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:all .3s ease;box-shadow:0 1px 3px #00000026}.toggle-switch input:checked+.toggle-slider{background:linear-gradient(135deg,var(--color-primary-500),var(--color-accent-400))}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.toggle-label{font-size:.85rem;color:var(--color-gray-600);font-weight:500}.delete-warning{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-bottom:1rem}.delete-warning svg{color:#dc2626;font-size:1.25rem;flex-shrink:0}.delete-warning p{margin:0;font-size:.85rem;color:#991b1b;line-height:1.5}.btn-danger{background:#dc2626;color:#fff;box-shadow:0 2px 8px #dc26264d}.btn-danger:hover{background:#b91c1c;transform:translateY(-1px);box-shadow:0 4px 12px #dc262666}.stat-icon.teal{background:#ccfbf1;color:#0d9488}.btn-add-program{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1.25rem;background:linear-gradient(135deg,var(--color-primary-500),var(--color-accent-400));color:#fff;border:none;border-radius:var(--radius-md);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #0077b640}.btn-add-program:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0077b659}.btn-add-program svg{font-size:1.1rem}.program-registrations-modal{width:min(760px,calc(100vw - 2rem));max-height:min(85vh,calc(100vh - 2rem));display:flex;flex-direction:column;padding:0;overflow:hidden}.program-registrations-modal .modal-header,.program-registrations-modal .modal-footer{padding:1rem 1.25rem}.program-registrations-modal .modal-body{padding:1rem 1.25rem 1.25rem;overflow-y:auto}.program-registrations-summary{background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);padding:.8rem 1rem;margin-bottom:.9rem}.program-registrations-summary-name{font-size:.94rem;font-weight:700;color:var(--color-gray-900)}.program-registrations-summary-meta{margin-top:.25rem;font-size:.8rem;color:var(--color-gray-500)}.program-registrations-empty{border:1px dashed var(--color-gray-200);border-radius:var(--radius-md);background:var(--color-gray-50);color:var(--color-gray-500);text-align:center;padding:1rem;font-size:.86rem}.program-registrations-list{display:grid;gap:.6rem}.program-registration-row{border:1px solid var(--color-gray-200);border-radius:var(--radius-md);padding:.7rem .85rem;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;background:var(--surface-primary)}.program-registration-person{display:flex;align-items:flex-start;gap:.5rem;min-width:0}.program-registration-index{min-width:1.35rem;color:var(--color-gray-500);font-weight:600;font-size:.8rem;margin-top:.1rem}.program-registration-name{color:var(--color-gray-900);font-size:.88rem;font-weight:600;line-height:1.35;word-break:break-word}.program-registration-parent{margin-top:.15rem;color:var(--color-gray-500);font-size:.75rem}.program-registration-age{margin-left:.45rem;font-size:.75rem;font-weight:500;color:var(--color-gray-500);background:var(--color-gray-100);border-radius:4px;padding:.05rem .35rem;vertical-align:middle;white-space:nowrap}.program-registration-lessons{display:grid;gap:.35rem;justify-items:end;flex-shrink:0}.program-registration-lesson-chip{display:inline-flex;gap:.35rem;align-items:center;padding:.26rem .52rem;border-radius:999px;background:#ecfeff;color:#155e75;font-size:.72rem;font-weight:600;white-space:nowrap}.program-registration-lesson-chip.muted{background:#eef2ff;color:#3730a3}.sms-notification-modal .modal{max-width:540px;width:100%;max-height:min(90vh,calc(100vh - 2rem));display:flex;flex-direction:column;padding:0;overflow:hidden}.sms-notification-modal .modal-header,.sms-notification-modal .modal-footer{padding:1rem 1.5rem}.sms-notification-modal .modal-body{padding:1.25rem 1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:1.1rem}.sms-program-info{background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);padding:.75rem 1rem;display:flex;flex-direction:column;gap:.2rem}.sms-program-name{font-weight:700;font-size:.95rem;color:var(--color-gray-900)}.sms-program-meta{font-size:.8rem;color:var(--color-gray-500)}.sms-facility-list{display:flex;flex-direction:column;gap:.5rem}.sms-facility-option{display:flex;align-items:center;gap:.65rem;padding:.65rem .9rem;border:1.5px solid var(--color-gray-200);border-radius:var(--radius-md);background:var(--surface-primary);cursor:pointer;transition:all .15s ease;font-size:.87rem;color:var(--color-gray-700);-webkit-user-select:none;user-select:none}.sms-facility-option input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}.sms-facility-option:hover{border-color:#86efac;background:#f0fdf4;color:#166534}.sms-facility-option.selected{border-color:#4ade80;background:#f0fdf4;color:#166534;font-weight:600}.sms-facility-radio{width:16px;height:16px;border-radius:50%;border:2px solid var(--color-gray-300);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}.sms-facility-option.selected .sms-facility-radio{border-color:#22c55e;background:#22c55e;box-shadow:inset 0 0 0 3px #f0fdf4}.sms-court-picker{display:grid;grid-template-columns:repeat(8,1fr);gap:.4rem}.sms-court-chip{border:1.5px solid var(--color-gray-200);background:var(--surface-primary);color:var(--color-gray-700);border-radius:8px;padding:.5rem .25rem;font-size:.88rem;font-weight:700;cursor:pointer;transition:all .15s ease;text-align:center}.sms-court-chip:hover{border-color:#86efac;color:#15803d;background:#f0fdf4}.sms-court-chip.selected{border-color:#22c55e;background:#22c55e;color:#fff;box-shadow:0 2px 8px #22c55e4d}.sms-preview{background:#f0fdf4;border:1.5px solid #bbf7d0;border-radius:var(--radius-md);padding:1rem 1.1rem;font-size:.84rem;color:#14532d;line-height:1.65;display:flex;flex-direction:column;gap:.5rem}.sms-preview p{margin:0}.sms-type-picker{display:flex;flex-direction:column;gap:.75rem}.sms-type-btn{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;width:100%;padding:1rem 1.1rem;border-radius:var(--radius-md);border:2px solid transparent;cursor:pointer;transition:all .18s ease;text-align:left;background:var(--color-gray-50)}.sms-type-btn .sms-type-icon{font-size:1.3rem;margin-bottom:.25rem}.sms-type-btn .sms-type-label{font-weight:700;font-size:.92rem}.sms-type-btn .sms-type-desc{font-size:.78rem;opacity:.75}.sms-type-btn.lesson{border-color:#bbf7d0;color:#14532d}.sms-type-btn.lesson .sms-type-icon{color:#25d366}.sms-type-btn.lesson:hover{background:#f0fdf4;border-color:#25d366}.sms-type-btn.cancellation{border-color:#fecaca;color:#7f1d1d}.sms-type-btn.cancellation .sms-type-icon{color:#ef4444}.sms-type-btn.cancellation:hover{background:#fff5f5;border-color:#ef4444}.sms-preview-cancellation{background:#fff7ed;border-color:#fed7aa;color:#7c2d12}.btn-whatsapp{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1.25rem;background:#25d366;color:#fff;border:none;border-radius:var(--radius-md);font-size:.87rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #25d3664d}.btn-whatsapp:hover:not(:disabled){background:#1ebe5a;transform:translateY(-1px);box-shadow:0 4px 12px #25d36666}.btn-whatsapp:disabled{opacity:.65;cursor:not-allowed}.sms-result{border-radius:var(--radius-md);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.4rem}.sms-result.success{background:#f0fdf4;border:1.5px solid #bbf7d0}.sms-result.partial{background:#fffbeb;border:1.5px solid #fde68a}.sms-result-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.sms-result-stat{font-size:.9rem;color:var(--color-gray-800)}.sms-result-failed{display:inline-flex;align-items:center;gap:.3rem;font-size:.82rem;font-weight:600;color:#92400e}.sms-result-ok{display:inline-flex;align-items:center;gap:.35rem;font-size:.84rem;font-weight:600;color:#166534}@media(max-width:768px){.programs-filter-row{margin-bottom:.875rem}.programs-grid{grid-template-columns:1fr}.program-form-modal{padding:.5rem;align-items:flex-end}.program-form-modal .modal{max-height:calc(100vh - 1rem);border-radius:var(--radius-lg)}.program-form-modal .modal-header,.program-form-modal .modal-body,.program-form-modal .modal-footer{padding-left:1rem;padding-right:1rem}.weekday-picker{grid-template-columns:repeat(4,minmax(0,1fr))}.sport-type-picker,.capacity-mode-picker,.form-row{grid-template-columns:1fr}.program-card-top{flex-direction:column}.program-card-actions{align-self:flex-end}.sms-notification-modal .modal{max-width:100%;max-height:calc(100vh - 1rem);border-radius:var(--radius-lg)}.sms-notification-modal{padding:.5rem;align-items:flex-end}.sms-notification-modal .modal-header,.sms-notification-modal .modal-body,.sms-notification-modal .modal-footer{padding-left:1rem;padding-right:1rem}.sms-court-picker{grid-template-columns:repeat(4,1fr);gap:.5rem}.sms-court-chip{padding:.6rem .25rem;font-size:.9rem;min-height:40px}.sms-facility-option{padding:.75rem .9rem;font-size:.85rem;min-height:44px}.program-registrations-modal{width:calc(100vw - 1rem);max-height:calc(100vh - 1rem)}.program-registration-row{flex-direction:column;align-items:stretch}.program-registration-lessons{justify-items:start}.program-card{padding:var(--spacing-lg)}.program-card-title{font-size:var(--font-size-base)}.form-field{padding:.625rem}}@media(max-width:480px){.programs-grid{grid-template-columns:1fr;gap:var(--spacing-base)}.weekday-picker{grid-template-columns:repeat(3,minmax(0,1fr))}.form-row{grid-template-columns:1fr;gap:var(--spacing-base)}.form-field{font-size:16px;padding:.75rem;border-radius:var(--radius-md)}.program-card{padding:var(--spacing-base);border-radius:var(--radius-lg)}.program-card-title{font-size:var(--font-size-sm)}.program-card-content{font-size:var(--font-size-xs)}.program-card-actions{gap:var(--spacing-xs)}.program-card-actions button{padding:.5rem;font-size:var(--font-size-xs)}.program-whatsapp-btn{padding:.65rem 1rem;font-size:.82rem;min-height:44px}.sms-court-picker{grid-template-columns:repeat(4,1fr)}.btn-add-program{padding:.625rem 1.25rem;font-size:var(--font-size-xs);min-height:44px}}.stat-percent{font-size:var(--font-size-xs);color:var(--color-gray-500);margin-top:2px}.stat-card-clickable{cursor:pointer;border:1.5px solid var(--border-color);transition:box-shadow .15s,border-color .15s,transform .1s}.stat-card-clickable:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card-selected{border-color:var(--color-primary-500)!important}.stats-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-base);padding:var(--spacing-4xl);color:var(--color-gray-500);font-size:var(--font-size-sm)}.stats-spinner{width:36px;height:36px;border:3px solid var(--color-gray-200);border-top-color:var(--color-primary-500);border-radius:50%;animation:spin .8s linear infinite}.stats-charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl);margin-bottom:var(--spacing-xl)}@media(max-width:900px){.stats-charts-grid{grid-template-columns:1fr}}.chart-card{background:var(--surface-primary);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--spacing-xl);box-shadow:var(--shadow-sm);margin-bottom:var(--spacing-xl)}.chart-title{font-size:var(--font-size-base);font-weight:700;color:var(--color-gray-900);margin:0 0 4px}.chart-subtitle{font-size:var(--font-size-sm);color:var(--color-gray-500);margin:0 0 var(--spacing-lg) 0}.chart-wrapper{width:100%}.stats-ratio-card{margin-bottom:var(--spacing-xl)}.ratio-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.ratio-row{display:flex;flex-direction:column;gap:6px;padding:var(--spacing-sm) var(--spacing-base);border-radius:var(--radius-lg);border:1.5px solid transparent}.ratio-row-clickable{cursor:pointer;transition:background .12s,border-color .12s}.ratio-row-clickable:hover{background:var(--surface-secondary)}.ratio-row-selected{border-color:currentColor}.ratio-label-row{display:flex;align-items:center;justify-content:space-between}.ratio-label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-gray-700)}.ratio-value{font-size:var(--font-size-sm);font-weight:700;color:var(--color-gray-900)}.ratio-pct{font-weight:400;color:var(--color-gray-500)}.ratio-bar-bg{width:100%;height:10px;background:var(--color-gray-100);border-radius:999px;overflow:hidden}.ratio-bar-fill{height:100%;border-radius:999px;transition:width .6s ease}.error-banner{display:flex;align-items:center;gap:var(--spacing-sm);background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:var(--radius-lg);padding:var(--spacing-base) var(--spacing-lg);margin-bottom:var(--spacing-xl);font-size:var(--font-size-sm)}.detail-panel{background:var(--surface-primary);border:1.5px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--spacing-xl);box-shadow:var(--shadow-md);margin-bottom:var(--spacing-xl);scroll-margin-top:80px}.detail-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-base);flex-wrap:wrap;gap:var(--spacing-sm)}.detail-panel-title-row{display:flex;align-items:center;gap:var(--spacing-sm)}.detail-panel-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.detail-panel-title{font-size:var(--font-size-lg);font-weight:700;color:var(--color-gray-900);margin:0;display:flex;align-items:center;gap:var(--spacing-sm)}.detail-panel-count{font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-500);background:var(--surface-secondary);padding:2px 10px;border-radius:999px}.detail-panel-close{flex-shrink:0}.detail-search-wrap{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;margin-bottom:var(--spacing-base)}.detail-search-input{flex:1;min-width:200px;max-width:400px}.detail-sort-buttons{display:flex;gap:var(--spacing-xs);flex-shrink:0}.btn-sm{padding:.3rem .75rem;font-size:var(--font-size-xs);height:auto}.detail-empty{text-align:center;color:var(--color-gray-500);font-size:var(--font-size-sm);padding:var(--spacing-2xl) 0}.detail-table-wrap{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border-color)}.detail-table{margin-bottom:0!important;border:none!important}.td-muted{color:var(--color-gray-500);font-size:var(--font-size-sm)}.td-name{font-weight:600;color:var(--color-gray-900)}.detail-table-row{cursor:pointer;transition:background .1s}.detail-table-row:hover{background:var(--surface-secondary)!important}.type-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-xs);font-weight:600;padding:2px 8px;border-radius:999px;background:var(--surface-secondary);color:var(--color-gray-600);white-space:nowrap}.program-cell{display:inline-flex;align-items:center;gap:5px;font-size:var(--font-size-sm);color:var(--color-gray-700);white-space:nowrap}.sport-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-xs);font-weight:600;padding:2px 10px;border-radius:999px;white-space:nowrap}.sport-badge-swimming{background:#eff6ff;color:#1d4ed8}.sport-badge-tennis{background:#fef9c3;color:#854d0e}.sport-badge-none{background:var(--surface-secondary);color:var(--color-gray-500)}.lessons-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-xs);font-weight:700;padding:3px 10px;border-radius:999px}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}@media(max-width:640px){.chart-card,.detail-panel{padding:var(--spacing-base)}.stats-charts-grid{gap:var(--spacing-base)}.detail-search-input{max-width:100%}}
