:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh;background-color:#f1f7fb}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}@media(prefers-color-scheme:dark){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.login-wrapper{display:flex;justify-content:center;align-items:center;padding:96px 20px}@media(max-width:768px){.login-wrapper{padding:40px 12px}}.login-card{width:100%;max-width:420px;background:#f4f6f8;padding:40px 36px;border-radius:20px;box-shadow:0 25px 60px #00000040;display:flex;flex-direction:column;gap:18px}.login-title{margin:0;text-align:center;font-size:26px;font-weight:700;color:#143d59}.login-subtitle{margin:0;text-align:center;font-size:14px;color:#475569}.login-input{padding:13px 15px;border-radius:12px;border:1px solid #d0d7de;font-size:14px;background:#fff;transition:all .2s ease;outline:none}.login-input:focus{border-color:#3c6997;box-shadow:0 0 0 3px #3c699733}.login-button{margin-top:10px;padding:13px;border-radius:12px;border:none;background:#e85a4f;color:#fff;font-weight:600;font-size:15px;cursor:pointer;transition:all .2s ease}.login-button:hover{background:#d94c41;transform:translateY(-2px)}.login-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.login-error{padding:10px 14px;border-radius:12px;background:#fee2e2;color:#b91c1c;font-size:13px}.login-footer{text-align:center;font-size:14px;color:#475569}.login-footer a{color:#143d59;font-weight:600;text-decoration:none}.login-footer a:hover{text-decoration:underline}.admin-layout{min-height:100vh}@media(min-width:769px){.admin-layout{display:flex}}.admin-nav{width:220px;background:#0b3a5a;color:#fff;padding:20px}.admin-nav a{display:block;color:#fff;margin-top:12px;text-decoration:none}.admin-content{flex:1;padding:12px}@media(min-width:768px){.admin-content{padding:24px}}.admin-header{display:flex;justify-content:space-between;margin-bottom:16px;align-items:center}.admin-table{width:100%;background:#fff;border-radius:8px}.admin-topbar{display:none;height:56px;background:#0b3a5a;color:#fff;align-items:center;gap:12px}.burger{font-size:24px;background:none;border:none;color:#fff;cursor:pointer}.topbar-title{font-weight:600}.admin-nav{width:260px;min-height:100vh;background:linear-gradient(180deg,#0b3a5a,#0f4f7a);color:#fff;padding:20px;display:flex;flex-direction:column;position:relative;z-index:1001}.admin-nav-header{display:flex;align-items:center;gap:24px;padding-bottom:16px}@media(max-width:768px){.admin-topbar{display:flex;justify-content:space-between;padding-right:16px}.admin-nav{position:fixed;top:0;left:-580px;height:100vh;transition:left .25s ease}.admin-nav.open{left:0}}.nav-backdrop{position:fixed;inset:0;background:#0006;z-index:1000}.admin-nav-links a{display:flex;gap:10px;padding:10px 14px;border-radius:10px;color:#fff;text-decoration:none;margin-bottom:6px}.admin-nav-links a.active{background:#ffffff40}.admin-nav-links a:hover{background:#ffffff26}.admin-nav-footer{padding:16px}.admin-navbar-logo{height:48px;border-radius:50%}.modal-backdrop{position:fixed;inset:0;background:#0006;display:flex;justify-content:center;align-items:center;padding:16px;z-index:1000}.modal-card{background:#fff;width:100%;max-width:520px;border-radius:16px;padding:24px;box-shadow:0 20px 50px #0003;display:flex;flex-direction:column;gap:20px}.modal-card h2{margin:0}.form-grid{display:flex;flex-direction:column;gap:14px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;font-weight:500;color:#374151}.form-group input,.form-group select{padding:8px 10px;border-radius:8px;border:1px solid #e5e7eb;font-size:14px}.form-group input:focus,.form-group select:focus{outline:none;border-color:#0b3a5a}.hint{font-size:12px;color:#6b7280}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.modal-actions button{padding:8px 14px;border-radius:8px;border:none;cursor:pointer}.modal-actions .primary{background:#0b3a5a;color:#fff}.modal-actions .primary:hover{opacity:.9}.drawer-backdrop{position:fixed;inset:0;background:#0006;z-index:1000}.drawer{position:fixed;top:0;right:0;width:420px;height:100vh;background:#fff;z-index:1001;display:flex;flex-direction:column;animation:slideIn .25s ease}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{padding:16px;border-bottom:1px solid #eee;display:flex;justify-content:space-between}.drawer-header h2{margin:0}.drawer-header p{font-size:13px;color:#666}.drawer-body{padding:16px;overflow-y:auto}.signup-list{list-style:none;padding:0;margin:0}.signup-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #f0f0f0}.email{font-size:12px;color:#777}.actions button{margin-left:8px}.actions .danger{color:#e74c3c}.loader-overlay{position:fixed;inset:0;background:linear-gradient(180deg,#0b3a5a,#0f4f7a);display:flex;align-items:center;justify-content:center;z-index:2000}.loader-inline{display:flex;align-items:center;justify-content:center;padding:40px}.loader-content{display:flex;flex-direction:column;align-items:center;color:#fff}.logo-spin{font-size:64px;animation:spinPulse 1.6s ease-in-out infinite;height:90px;border-radius:50%}@keyframes spinPulse{0%{transform:rotate(0) scale(1);opacity:.7}50%{transform:rotate(180deg) scale(1.15);opacity:1}to{transform:rotate(360deg) scale(1);opacity:.7}}.loader-text{margin-top:16px;font-size:14px;letter-spacing:1px;opacity:.85}.classes-controls{display:flex;gap:10px;padding:16px}.classes-controls select{padding:6px 10px;border-radius:6px}.classes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;padding:16px}.class-card{background:#fff;border-radius:16px;padding:18px;box-shadow:0 6px 20px #0000000f;display:flex;flex-direction:column;gap:14px;transition:.2s ease}.class-card:hover{transform:translateY(-3px)}.class-header{display:flex;justify-content:space-between;align-items:flex-start}.class-date{font-size:13px;color:#6b7280}.class-title{font-size:18px;font-weight:600;margin-top:4px}.status-badge{font-size:12px;padding:4px 8px;border-radius:8px}.status-badge.active{background:#e6f7ed;color:#1b7f4b}.status-badge.cancelled{background:#fdecea;color:#b42318}.class-capacity{display:flex;flex-direction:column;gap:6px}.capacity-text{font-size:14px;cursor:help}.progress-bar{height:8px;background:#e5e7eb;border-radius:10px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#0b3a5a,#1e88e5);transition:width .3s ease}.progress-fill.full{background:#b42318}.price-info{font-size:14px;color:#0b3a5a;font-weight:500}.class-actions{display:flex;gap:8px}.add-class-button{padding:12px;border-radius:8px;border:none;cursor:pointer;background:#fff;height:max-content}.class-actions button{flex:1;padding:8px;border-radius:8px;border:none;background:#f3f4f6;cursor:pointer}.class-actions button:hover{background:#e5e7eb}.class-actions .danger{background:#fdecea;color:#b42318}.payments-page{padding:16px}.payments-header{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.period-controls{display:flex;gap:8px;flex-wrap:wrap}.period-controls select,.period-controls button{padding:8px;border-radius:6px}.payments-list{display:flex;flex-direction:column;gap:12px}.payment-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 4px 12px #0000000d;display:flex;flex-direction:column;gap:10px}.payment-top{display:flex;justify-content:space-between;align-items:center}.payment-name{font-weight:600;font-size:16px}.payment-amount{font-size:22px;font-weight:700;color:#0b3a5a}.payment-status{font-size:12px;padding:4px 8px;border-radius:8px}.payment-status.paid{background:#e6f7ed;color:#1b7f4b}.payment-status.unpaid{background:#fdecea;color:#b42318}.mark-paid{background:#0b3a5a;color:#fff;border:none;padding:10px;border-radius:8px;font-weight:500}@media(min-width:768px){.payments-header{flex-direction:row;justify-content:space-between;align-items:center}.payments-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}}.navbar{height:72px;background:linear-gradient(90deg,#0b3a5a,#0f4f7a);color:#fff;display:flex;align-items:center;padding:0 12px;justify-content:space-between;position:relative}@media(min-width:768px){.navbar{padding:0 24px}}.navbar-logo{position:absolute;top:6px;height:64px;border-radius:50%}@media(min-width:768px){.navbar-logo{height:110px;top:12px}}.navbar-center{text-align:center;padding-left:60px}.navbar-center h1{font-size:28px;font-weight:700;margin:0}.navbar-right{display:flex;justify-content:flex-end}.logout-btn{background:#e74c3c;border:none;color:#fff;padding:10px 18px;border-radius:20px;font-weight:600;cursor:pointer}.logout-btn:hover{background:#c0392b}.navbar-left :hover{cursor:pointer}.nav-calendar-header{display:flex;gap:12px;align-items:center;justify-content:space-between;background-color:transparent;color:#fff;font-size:24px;font-weight:600}@media(max-width:768px){.nav-calendar-header{padding-left:70px}}.nav-calendar-title{margin:0;text-align:center;font-size:20px;flex:1}@media(min-width:768px){.nav-calendar-title{font-size:28px}}.nav-calendar-button{padding:0;background:transparent;border:none;color:#fff;font-size:20px;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.nav-calendar-button:hover{transform:scale(1.2);opacity:.8}.nav-calendar-button:focus{border:none;outline:none}.UserLayout{background:#f1f7fb;padding:24px 12px 12px}@media(min-width:768px){.UserLayout{padding:80px 24px 24px}}.dashboard-wrapper{display:flex;flex-direction:column;gap:36px;padding:12px;background:#fff;border-radius:14px;box-shadow:0 6px 16px #0000000d}@media(min-width:768px){.dashboard-wrapper{padding:24px}}.calendar-wrapper{display:flex;justify-content:center}.calendar{width:100%;max-width:560px}.calendar-header{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:8px}.calendar-header-cell{text-align:center;font-weight:600;color:#6b7c93}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-cell{height:56px;background:#eef3f9;border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:transform .1s ease}@media(max-width:768px){.calendar-cell{height:48px}}.calendar-cell:hover{transform:scale(1.05)}.calendar-cell.empty{background:transparent;cursor:default}.calendar-cell.active{background:#8fb3cf;color:#fff}.calendar-cell.full{background:#e74c3c;color:#fff}.calendar-cell.already-signed{background:green;color:#fff}.day-number{font-weight:700;font-size:18px}.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-bottom:32px}.status-card{background:#f1f7fb;border-radius:14px;padding:20px 24px;box-shadow:0 6px 16px #0000000d}.status-title{font-weight:600;font-size:14px;color:#0b3a5a;margin-bottom:12px}.amount{font-size:32px;font-weight:700;color:#0b3a5a}.payment-status{width:max-content;margin-top:6px;font-weight:600}.payment-status.paid{color:#2ecc71}.payment-status.due{color:#e74c3c}.status-sub{font-size:12px;color:#6b7c93;margin-top:4px}.training-title{font-size:18px;font-weight:600;color:#0b3a5a}.training-date{margin-top:6px;font-size:16px;color:#425466}.no-training{font-size:14px;color:#6b7c93}.modal-backdrop{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:16px;padding:24px;width:320px;text-align:center}.modal h2{margin-bottom:12px}.signup-btn{width:100%;margin-top:16px;padding:12px;border-radius:10px;border:none;background:#1e88e5;color:#fff;font-weight:600;cursor:pointer}.remove-signup-btn{width:100%;margin-top:16px;padding:12px;border-radius:10px;border:none;background:#e74c3c;color:#fff;font-weight:600;cursor:pointer}.signup-btn:disabled{background:#ccc;cursor:not-allowed}.close-btn{margin-top:24px;background:none;border:none;color:#555;cursor:pointer}.loader{width:40px;height:40px;border:4px solid #ddd;border-top-color:#1e88e5;border-radius:50%;animation:spin 1s linear infinite;margin:24px auto}@keyframes spin{to{transform:rotate(360deg)}}.success{display:flex;flex-direction:column;align-items:center;margin-top:16px}.checkmark{width:56px;height:56px;border-radius:50%;background:#2ecc71;color:#fff;font-size:32px;display:flex;align-items:center;justify-content:center;animation:pop .4s ease}@keyframes pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.info-box{background:#eef5fb;padding:12px;border-radius:8px;color:#0b3a5a;font-weight:600}.title-info-box{border-radius:8px;padding:4px;color:#0b3a5a;font-weight:600}.danger-btn{width:100%;margin-top:16px;padding:12px;border-radius:10px;border:none;background:#e74c3c;color:#fff;font-weight:700;cursor:pointer}.danger-btn:hover{background:#c0392b}.classes-wrapper{display:flex;flex-direction:column;gap:12px}
