@import"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap";@import"https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css";:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: hsl(6, 78%, 57%);--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-container-width: fit-content;--toastify-toast-width: 320px;--toastify-toast-offset: 16px;--toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));--toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));--toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));--toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));--toastify-toast-background: #fff;--toastify-toast-padding: 14px;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-toast-shadow: 0px 4px 12px rgba(0, 0, 0, .1);--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55);--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error);--toastify-color-progress-bgo: .2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;width:var(--toastify-container-width);box-sizing:border-box;color:#fff;display:flex;flex-direction:column}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right);align-items:end}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right);align-items:end}.Toastify__toast{--y: 0;position:relative;touch-action:none;width:var(--toastify-toast-width);min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:var(--toastify-toast-padding);border-radius:var(--toastify-toast-bd-radius);box-shadow:var(--toastify-toast-shadow);max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);z-index:0;display:flex;flex:1 auto;align-items:center;word-break:break-word}@media only screen and (max-width: 480px){.Toastify__toast-container{width:100vw;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:initial}.Toastify__toast{--toastify-toast-width: 100%;margin-bottom:0;border-radius:0}}.Toastify__toast-container[data-stacked=true]{width:var(--toastify-toast-width)}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,.Toastify__toast--stacked[data-collapsed] .Toastify__close-button{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{margin-inline-end:10px;width:22px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;position:absolute;top:6px;right:6px;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:unset}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:1;opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right;border-bottom-left-radius:initial}.Toastify__progress-bar--wrp{position:absolute;overflow:hidden;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.login-form-container{background-color:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:2.5rem;border-radius:20px;box-shadow:0 12px 40px #ff6b3526,0 4px 12px #0000001a;border:1px solid rgba(255,255,255,.3);width:100%;margin:0 auto;text-align:center;box-sizing:border-box;transition:all .3s ease-in-out;transform:scale(.8);transform-origin:center}.login-form-container h2{font-size:1.8rem;margin-top:0;margin-bottom:2rem;font-weight:700;color:#333;transition:all .2s ease-in-out}.form-group-checkbox{display:flex;align-items:center;margin-bottom:1.5rem}.form-group-checkbox input{margin-right:.5rem;width:1.1em;height:1.1em}.form-group-checkbox label{font-size:.9rem;color:#333;margin-bottom:0}.login-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:1.5rem}.forgot-password-button,.initial-password-button{background:none;border:none;color:#495057;font-size:.85rem;cursor:pointer;padding:.5rem;text-align:center;border-radius:4px;transition:all .2s ease}.forgot-password-button:hover,.initial-password-button:hover:not(:disabled){background-color:#f8f9fa;color:#000}.initial-password-button:disabled{color:#adb5bd;cursor:not-allowed}.login-button{width:100%;padding:1rem;border:none;background-color:#ff6b35;color:#fff;border-radius:8px;font-size:1.2rem;font-weight:600;cursor:pointer;transition:all .2s ease-in-out}.login-button:hover{background-color:#e65c2e}@media (max-width: 480px){.login-form-container{padding:1.5rem}}@media (max-height: 800px){.login-form-container{padding:1.5rem}.login-form-container h2{font-size:1.5rem;margin-bottom:2rem}.form-group{margin-bottom:1rem}.login-button{padding:.9rem;font-size:1.1rem}}.modal-container{background:#fff;padding:2rem 2.5rem;border-radius:12px;box-shadow:0 10px 25px #0000001a;width:100%;max-width:450px;box-sizing:border-box;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-title{font-size:1.5rem;font-weight:700;color:#333;margin-top:0;margin-bottom:.5rem;text-align:center}.modal-subtitle{font-size:.95rem;color:#666;margin-bottom:2rem;text-align:center;line-height:1.5}.modal-form .form-group{margin-bottom:1.5rem}.modal-form label{display:block;font-size:.9rem;font-weight:600;color:#333;margin-bottom:.5rem}.modal-form input{width:100%;padding:.8rem 1rem;border:1px solid #ced4da;border-radius:8px;font-size:1rem;box-sizing:border-box;transition:border-color .2s,box-shadow .2s}.modal-form input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #ff6b3533}.success-message,.error-message{font-size:.9rem;padding:.8rem;border-radius:6px;margin-bottom:1.5rem;text-align:center}.success-message{color:#155724;background-color:#d4edda;border:1px solid #c3e6cb}.error-message{color:#721c24;background-color:#f8d7da;border:1px solid #f5c6cb}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem}.modal-actions button{padding:.8rem 1.2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;border:none;transition:all .2s ease-in-out}.modal-actions .close-btn{background-color:#f1f3f5;color:#495057;border:1px solid #dee2e6}.modal-actions .close-btn:hover{background-color:#e9ecef}.modal-actions .submit-btn{background-color:var(--primary-color);color:#fff}.modal-actions .submit-btn:hover{filter:brightness(110%)}.modal-actions button:disabled{opacity:.6;cursor:not-allowed}.login-page{width:100%;height:100dvh;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2rem;box-sizing:border-box;overflow:hidden;background:linear-gradient(135deg,#f8f9fa,#e9ecef,#dee2e6)}.ballpit-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;opacity:.7;transform:translateZ(0);will-change:transform}.login-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;width:100%;margin-top:0;transform:translateY(-48px)}@media (max-width: 768px){.login-content{transform:translateY(-36px)}}.login-logo-img{width:500px;height:300px;object-fit:cover;object-position:center top;border-radius:12px;overflow:hidden;margin-bottom:.8rem}.subtitle{font-size:2rem;color:#333;margin-top:0;margin-bottom:.1rem;transition:font-size .2s ease-in-out;text-align:center;text-shadow:0 2px 4px rgba(255,255,255,.8);font-weight:400;letter-spacing:.5px}.login-content>main{width:100%;max-width:460px;margin:-20px auto 0}@media (max-width: 768px){.login-logo-img{width:350px;height:210px}.login-content>main{max-width:440px}.subtitle{font-size:1.5rem}}@media (max-width: 480px){.login-page{padding:1rem}.login-content{margin-top:0;transform:translateY(-24px)}.login-content>main{max-width:100%}.login-logo-img{width:280px;height:168px}.subtitle{font-size:1.2rem}}.signup-form-container{background-color:#fff;padding:2.5rem;border-radius:16px;box-shadow:0 8px 30px #0000001a;width:100%;margin:0 auto;text-align:center;box-sizing:border-box;transition:all .3s ease-in-out}.signup-form-container h2{font-size:1.8rem;margin-bottom:2rem;font-weight:700;color:#000;transition:all .2s ease-in-out}.form-group{margin-bottom:1.5rem;text-align:left;transition:margin-bottom .2s ease-in-out}.form-group label{display:block;font-size:.9rem;color:#000;margin-bottom:.5rem}.form-group input{width:100%;padding:1rem;border:1px solid #ced4da;border-radius:8px;font-size:1rem;box-sizing:border-box;background-color:#fff;color:#000;transition:border-color .2s,box-shadow .2s}.form-group input::placeholder{color:#adb5bd}.form-group input:focus{outline:none;border-color:#ff6b35;box-shadow:0 0 0 3px #ff6b3533}.role-selector{display:flex}.role-option{flex:1;text-align:center;padding:.9rem;cursor:pointer;background-color:#fff;color:#495057;transition:all .2s ease-in-out;position:relative;-webkit-user-select:none;user-select:none;border:1px solid #ced4da}.role-option:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}.role-option:last-child{border-top-right-radius:8px;border-bottom-right-radius:8px}.role-option:not(:first-child){margin-left:-1px}.role-option.selected{background-color:#ff6b35;color:#fff;font-weight:600;border-color:#ff6b35;z-index:1}.role-option input[type=radio]{position:absolute;opacity:0;width:0;height:0}.form-group input:-webkit-autofill,.form-group input:-webkit-autofill:hover,.form-group input:-webkit-autofill:focus,.form-group input:-webkit-autofill:active{-webkit-text-fill-color:#000000!important;-webkit-box-shadow:0 0 0px 1000px #ffffff inset!important;transition:background-color 5000s ease-in-out 0s}.signup-button{width:100%;padding:1rem;border:none;background-color:#ff6b35;color:#fff;border-radius:8px;font-size:1.2rem;font-weight:600;cursor:pointer;transition:all .2s ease-in-out;margin-top:1rem}.signup-button:hover{background-color:#e65c2e}.error-message{color:#dc3545;font-size:.875rem;text-align:center;margin-bottom:1rem}.login-link{margin-top:1.5rem;font-size:.85rem;color:#000;transition:all .2s ease-in-out}.login-link a{color:#ff6b35;text-decoration:none;font-weight:600}.login-link a:hover{text-decoration:underline}@media (max-width: 480px){.signup-form-container{padding:1.5rem}}@media (max-height: 800px){.signup-form-container{padding:1.5rem}.signup-form-container h2{font-size:1.5rem;margin-bottom:2rem}.form-group{margin-bottom:1rem}.signup-button{padding:.9rem;font-size:1.1rem}.login-link{margin-top:1.5rem}}.signup-page{width:100%;min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:3rem 1.5rem;box-sizing:border-box;background-color:#f8f9fa}.signup-header{text-align:center;margin-bottom:2rem;transition:all .2s ease-in-out}.signup-logo-img{width:280px;height:auto;margin:0 auto}.subtitle{font-size:1.3rem;color:#495057;margin-top:.5rem;transition:font-size .2s ease-in-out}main{width:100%;max-width:500px}@media (max-width: 480px){.signup-page{padding:2rem 1rem}.signup-logo-img{width:220px}.subtitle{font-size:1.1rem}}@media (max-height: 800px){.signup-page{padding-top:5vh}.signup-logo-img{width:200px}.subtitle{font-size:1rem}.signup-header{margin-bottom:2rem}}.modal-content{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 5px 15px #0000004d;width:90%;max-width:500px;text-align:center}.modal-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #eee;padding-bottom:1rem;margin-bottom:1rem}.modal-header h2{margin:0;font-size:1.5rem}.close-button{background:none;border:none;font-size:2rem;cursor:pointer;color:#aaa}.modal-body p{font-size:1.1rem;color:#555;margin-bottom:2rem}.feedback-button{display:inline-flex;align-items:center;justify-content:center;padding:.8rem 1.5rem;border-radius:8px;background-color:#4a90e2;color:#fff;text-decoration:none;font-size:1rem;font-weight:600;border:none;cursor:pointer;transition:background-color .2s}.feedback-button:hover{background-color:#357abd}.account-info{display:flex;flex-direction:column;gap:1rem;margin-top:1rem;text-align:left}.info-row{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;background-color:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.info-label{font-weight:600;color:#495057;font-size:.95rem}.info-value{font-weight:500;color:#212529;font-size:.95rem}.contract-shared-inline{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .5rem;background-color:#fff3e0;color:#ff6b35;border-radius:12px;font-size:.85rem;font-weight:500;border:1px solid #ffcc99}.link-icon{font-size:.9rem;color:#ff6b35}.contract-individual{color:#6c757d;font-weight:600}.common-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;background-color:#fff}.logo-img{height:28px;width:auto;cursor:pointer}.header-actions{display:flex;align-items:center;gap:1.25rem}.header-actions .action-icon{font-size:1.5rem;color:#374151;cursor:pointer}.notification-container{position:relative;display:flex;align-items:center}.notification-badge{position:absolute;top:-4px;right:-6px;background-color:#ef4444;color:#fff;border-radius:50%;padding:2px 6px;font-size:.7rem;font-weight:700;border:1px solid white;min-width:20px;text-align:center;line-height:1;user-select:none;-webkit-user-select:none;pointer-events:none}.dropdown-menu{position:absolute;top:100%;right:0;background-color:#fff;border-radius:8px;box-shadow:0 4px 12px #0000001a;border:1px solid #F3F4F6;padding:.5rem;margin-top:.5rem;z-index:10;width:180px;display:flex;flex-direction:column;gap:4px}.notification-dropdown{width:400px;padding:0;gap:0}.notification-header{padding:1rem;border-bottom:1px solid #F3F4F6;display:flex;justify-content:space-between;align-items:center}.notification-header h3{margin:0;font-size:1.1rem;font-weight:600}.mark-all-read-btn{background:none;border:none;color:#3b82f6;font-size:.9rem;font-weight:500;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:background-color .2s}.mark-all-read-btn:hover{background-color:#f3f4f6}.notification-list{max-height:400px;overflow-y:auto}.notification-item{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #F3F4F6;cursor:pointer;transition:background-color .2s}.notification-item:last-child{border-bottom:none}.notification-item:hover{background-color:#f9fafb}.notification-item.unread{background-color:#f3f8ff}.notification-content{flex:1;min-width:0}.notification-delete-btn{background:none;border:none;color:#9ca3af;cursor:pointer;padding:.25rem;border-radius:4px;transition:all .2s;margin-left:.5rem;flex-shrink:0}.notification-delete-btn:hover{color:#ef4444;background-color:#ef44441a}.notification-delete-btn svg{width:16px;height:16px}.notification-title{font-weight:600;margin:0 0 4px;color:#1f2937}.notification-body{margin:0 0 8px;font-size:.9rem;color:#4b5563}.notification-time{margin:0;font-size:.8rem;color:#9ca3af}.notification-empty{padding:2rem 1rem;text-align:center;color:#6b7280}.menu-button{display:flex;align-items:center;gap:.75rem;background:none;border:none;padding:.75rem 1rem;width:100%;text-align:left;cursor:pointer;font-size:1rem;border-radius:4px;color:#374151}.menu-button:hover{background-color:#f9fafb}.menu-button svg{font-size:1.25rem}.proposal-modal-overlay{position:fixed;inset:0;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:2000}.proposal-modal-content{background:#fff;padding:30px;border-radius:16px;width:90%;max-width:400px;box-shadow:0 8px 30px #00000026;animation:scale-in .3s cubic-bezier(.175,.885,.32,1.275)}@keyframes scale-in{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.proposal-modal-header{text-align:center;margin-bottom:25px}.proposal-modal-header h2{margin:0 0 10px;font-size:1.6rem;font-weight:700;color:#333}.proposal-modal-header p{margin:0;font-size:1rem;color:#555}.proposal-details{background-color:#f8f9fa;border-radius:12px;padding:20px;margin-bottom:30px}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0}.detail-item:not(:last-child){border-bottom:1px solid #e9ecef}.detail-label{font-size:.95rem;color:#666;font-weight:500}.detail-value{font-size:1.1rem;font-weight:700;color:#007bff}.proposal-modal-actions{display:flex;justify-content:space-between;gap:15px}.proposal-modal-actions button{flex-grow:1;padding:14px;border:none;border-radius:10px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.proposal-reject-btn{background-color:#e9ecef;color:#495057}.proposal-reject-btn:hover:not(:disabled){background-color:#dae0e5}.proposal-accept-btn{background-color:#007bff;color:#fff}.proposal-accept-btn:hover:not(:disabled){background-color:#0056b3}.proposal-modal-actions button:disabled{opacity:.7;cursor:not-allowed}.member-dashboard{background-color:#fff;padding:0;max-width:480px;margin:0 auto;min-height:100vh;box-sizing:border-box}.member-dashboard .dashboard-main{padding:0 20px 80px;box-sizing:border-box}.member-dashboard .greeting{margin-top:20px}.member-dashboard .greeting h1{font-size:26px;margin:0}.member-dashboard .greeting p{font-size:16px;color:#666}.member-dashboard .upcoming-class-card{background-color:#f9773d;color:#fff;border-radius:20px;padding:25px 20px 20px;margin-top:20px;box-shadow:0 4px 15px #0000001a;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.member-dashboard .upcoming-class-card.clickable{cursor:pointer}.member-dashboard .upcoming-class-card.clickable:hover{transform:translateY(-3px);box-shadow:0 6px 20px #0000001f;filter:saturate(70%)}.member-dashboard .class-title{margin:0;font-size:1.2rem;font-weight:700;color:#fff;padding-left:8px;position:relative;top:0;text-shadow:0 1px 3px rgba(0,0,0,.2)}.member-dashboard .class-info{font-size:18px;font-weight:700;margin:5px 0;flex:1}.member-dashboard .class-info-with-time{display:flex;justify-content:space-between;align-items:flex-end;margin-top:8px}.member-dashboard .class-info-with-time .class-info{margin:0;font-size:1.2rem;font-weight:500;flex:1}.member-dashboard .date-time-section{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.member-dashboard .date-time-section .class-date{margin:0;font-size:1.2rem;font-weight:500;opacity:.9;text-align:right}.member-dashboard .date-time-section .time{font-size:36px;font-weight:700;white-space:nowrap;color:#fff}.member-dashboard .no-session-placeholder{margin-top:8px;padding-left:8px;position:relative;top:-5px}.member-dashboard .no-session-placeholder span{font-size:18px;font-weight:700;opacity:.95;text-shadow:0 1px 4px rgba(0,0,0,.5)}.member-dashboard .session-progress{margin-top:15px;padding:8px 0}.member-dashboard .progress-container{position:relative;width:100%;height:28px;margin:15px 0 0}.member-dashboard .progress-track{width:100%;height:100%;background:#ffffff4d;border:2px solid rgba(255,255,255,.5);border-radius:14px;box-sizing:border-box}.member-dashboard .progress-fill{position:absolute;left:0;top:0;height:100%;background:#fffc;border-radius:14px;transition:width .8s ease-in-out;z-index:1}.member-dashboard .progress-character{position:absolute;top:50%;transform:translate(-50%,-50%);width:28px;height:28px;background:#fffffff2;border-radius:50%;border:2px solid rgba(255,255,255,.8);display:flex;justify-content:center;align-items:center;z-index:3;transition:left .8s ease-in-out;animation:bounce 1.2s ease-in-out infinite alternate;box-shadow:0 4px 12px #0003}.member-dashboard .progress-character img{width:18px;height:18px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));transition:transform .3s ease}.member-dashboard .progress-character:hover{transform:translate(-50%,-50%) scale(1.1)}.member-dashboard .progress-flag{display:none}.member-dashboard .time-remaining{text-align:center;font-size:14px;font-weight:600;opacity:.9;margin-top:4px;text-shadow:0 1px 2px rgba(0,0,0,.2)}@keyframes bounce{0%{transform:translate(-50%,-50%) translateY(0)}to{transform:translate(-50%,-50%) translateY(-3px)}}.member-dashboard .class-time{display:flex;justify-content:space-between;align-items:flex-end;margin-top:20px}.member-dashboard .class-time .time{font-size:36px;font-weight:700;display:block}.member-dashboard .class-time .date{font-size:14px;opacity:.9}.member-dashboard .eta{text-align:right}.member-dashboard .eta-label{font-size:12px;display:block}.member-dashboard .eta-time{font-size:18px;font-weight:700}.member-dashboard .card-actions{display:flex;justify-content:space-around;align-items:center;margin-top:20px;background-color:#0000001a;border-radius:30px;padding:10px 0}.member-dashboard .card-actions .icon-btn{background:#fff;border:none;color:#f9773d;font-size:28px;width:50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 4px #0000001a}.member-dashboard .stats{display:flex;justify-content:space-between;gap:10px;margin-top:15px}.member-dashboard .stat-card{flex:1;background-color:#f4f6f8;border-radius:15px;padding:20px;text-align:center;box-shadow:0 2px 5px #0000000d}.member-dashboard .stat-card p{margin:0;font-size:14px;color:#666}.member-dashboard .stat-card span{font-size:28px;font-weight:700;margin-top:8px;display:block;font-family:Pretendard,sans-serif}.member-dashboard .stat-card span strong{font-size:inherit;font-weight:inherit}.member-dashboard .recent-history{margin-top:20px}.member-dashboard .recent-history h2{font-size:20px}.member-dashboard .history-list .history-item{display:flex;align-items:center;background-color:#f4f6f8;border-radius:15px;padding:15px;margin-top:10px;box-shadow:0 2px 5px #0000000d}.member-dashboard .history-icon{font-size:24px;margin-right:15px;color:#555}.member-dashboard .history-details{flex-grow:1}.member-dashboard .history-details p{margin:0;font-size:16px}.member-dashboard .history-details p:last-child{font-size:14px;color:#666;margin-top:4px}.member-dashboard .history-status{padding:5px 12px;border-radius:15px;font-size:12px;font-weight:700}.member-dashboard .history-status.pending{background-color:#fef3c7;color:#92400e}.member-dashboard .history-status.confirmed{background-color:#dbeafe;color:#1e40af}.member-dashboard .history-status.trainer-checkin{background-color:#d1fae5;color:#065f46}.member-dashboard .history-status.member-checkin{background-color:#f3e8ff;color:#5b21b6}.member-dashboard .history-status.completed{background-color:#d1fae5;color:#065f46}.member-dashboard .history-status.rejected{background-color:#fee2e2;color:#991b1b}.member-dashboard .history-status.absent{background-color:#e5e7eb;color:#4b5563}.member-dashboard .pending-contracts-section{background-color:#fff;border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 4px 12px #00000014}.member-dashboard .pending-contracts-section h3{font-size:1.1rem;font-weight:700;color:#333;margin:0 0 15px;padding-bottom:10px;border-bottom:1px solid #eee}.member-dashboard .pending-contract-card{display:flex;justify-content:space-between;align-items:center;padding:15px;background-color:#f8f9fa;border-radius:10px;margin-bottom:10px}.member-dashboard .contract-details p{margin:0 0 5px;font-size:.95rem;color:#333}.member-dashboard .contract-details span{font-size:.9rem;color:#555;font-weight:500}.member-dashboard .contract-actions{display:flex;gap:10px}.member-dashboard .contract-actions button{padding:8px 16px;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease}.member-dashboard .accept-btn{background-color:#007bff;color:#fff}.member-dashboard .accept-btn:hover{background-color:#0056b3}.member-dashboard .reject-btn{background-color:#e9ecef;color:#495057}.member-dashboard .reject-btn:hover{background-color:#dae0e5}.member-dashboard .contract-info-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;background-color:#f9fafb;border-radius:12px;padding:.75rem 1rem;margin-top:10px;border:1px solid #E5E7EB;box-shadow:none;font-size:.9rem}.member-dashboard .contract-info-content{display:flex;align-items:center;gap:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-dashboard .contract-title{font-weight:600;color:#374151}.member-dashboard .contract-dates{color:#4b5563}.member-dashboard .d-day-badge{padding:.25rem .75rem;border-radius:9999px;font-size:.8rem;font-weight:700;white-space:nowrap;flex-shrink:0}.member-dashboard .d-day-badge.valid{background-color:#f0fdf4;color:#166534}.member-dashboard .d-day-badge.expiring{background-color:#fffbeb;color:#b45309;animation:pulse 2s infinite}.member-dashboard .d-day-badge.expired{background-color:#fef2f2;color:#991b1b}.member-dashboard .upcoming-class-card{background-color:#f9773d;color:#fff;border-radius:20px;padding:20px;margin-top:20px;box-shadow:0 4px 15px #0000001a}.member-dashboard .bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;display:flex;justify-content:space-around;align-items:center;background-color:#fff;border-top:1px solid #f0f0f0;box-shadow:0 -2px 10px #0000000d;padding:5px 0;z-index:1000;height:65px;transition:filter .3s ease}.member-dashboard .bottom-nav.inactive{filter:blur(4px) grayscale(80%);pointer-events:none}.member-dashboard .nav-btn{background:none;border:none;color:#6b7280;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;font-weight:500;cursor:pointer;flex:1;height:100%;padding-top:8px;transition:color .2s}.member-dashboard .nav-btn:hover{color:#f9773d}.member-dashboard .nav-btn svg{font-size:24px}.member-dashboard .nav-btn.qr-btn{transform:translateY(-25px);background-color:#f9773d;color:#fff;width:70px;height:70px;border-radius:50%;box-shadow:0 4px 12px #f9773d66;font-size:11px;flex:0 0 70px;padding-top:0;justify-content:center}.member-dashboard .nav-btn.qr-btn svg{font-size:30px}.member-dashboard .nav-btn.qr-btn:hover{background-color:#e86a2f;color:#fff}@media (max-width: 375px){.member-dashboard .dashboard-main{padding:0 15px 15px}.member-dashboard .greeting h1{font-size:22px}.member-dashboard .class-title{font-size:1rem}.member-dashboard .greeting p{font-size:14px}.member-dashboard .upcoming-class-card,.member-dashboard .stat-card,.member-dashboard .history-list .history-item{padding:15px}.member-dashboard .class-info-with-time .class-info,.member-dashboard .date-time-section .class-date{font-size:1rem}.member-dashboard .date-time-section .time{font-size:30px}.member-dashboard .stat-card span{font-size:24px}.member-dashboard .history-details p{font-size:15px}.member-dashboard .contract-info-card{padding:.6rem .8rem;font-size:.85rem;gap:.5rem;flex-wrap:wrap}.member-dashboard .contract-info-content{gap:.5rem}}.attendance-status{padding:5px 12px;border-radius:16px;font-size:12px;font-weight:600;text-align:center;white-space:nowrap;border:1px solid transparent}.attendance-status.completed{background-color:#dcfce7;color:#166534;border-color:#bbf7d0}.attendance-status.trainer-checked{background-color:#dbeafe;color:#1e40af;border-color:#bfdbfe}.attendance-status.member-checked{background-color:#ede9fe;color:#5b21b6;border-color:#ddd6fe}.attendance-status.confirmed{background-color:#e0e7ff;color:#3730a3;border-color:#c7d2fe}.attendance-status.pending{background-color:#ffedd5;color:#9a3412;border-color:#fed7aa}.attendance-status.rejected,.attendance-status.absent,.attendance-status.cancelled{background-color:#fee2e2;color:#991b1b;border-color:#fecaca}.attendance-status.late{background-color:#fef3c7;color:#92400e;border-color:#fde68a}.attendance-status.unknown{background-color:#e5e7eb;color:#4b5563;border-color:#d1d5db}.react-calendar{width:350px;max-width:100%;background:#fff;border:1px solid #a0a096;font-family:Arial,Helvetica,sans-serif;line-height:1.125em}.react-calendar--doubleView{width:700px}.react-calendar--doubleView .react-calendar__viewContainer{display:flex;margin:-.5em}.react-calendar--doubleView .react-calendar__viewContainer>*{width:50%;margin:.5em}.react-calendar,.react-calendar *,.react-calendar *:before,.react-calendar *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.react-calendar button{margin:0;border:0;outline:none}.react-calendar button:enabled:hover{cursor:pointer}.react-calendar__navigation{display:flex;height:44px;margin-bottom:1em}.react-calendar__navigation button{min-width:44px;background:none}.react-calendar__navigation button:disabled{background-color:#f0f0f0}.react-calendar__navigation button:enabled:hover,.react-calendar__navigation button:enabled:focus{background-color:#e6e6e6}.react-calendar__month-view__weekdays{text-align:center;text-transform:uppercase;font:inherit;font-size:.75em;font-weight:700}.react-calendar__month-view__weekdays__weekday{padding:.5em}.react-calendar__month-view__weekNumbers .react-calendar__tile{display:flex;align-items:center;justify-content:center;font:inherit;font-size:.75em;font-weight:700}.react-calendar__month-view__days__day--weekend{color:#d10000}.react-calendar__month-view__days__day--neighboringMonth,.react-calendar__decade-view__years__year--neighboringDecade,.react-calendar__century-view__decades__decade--neighboringCentury{color:#757575}.react-calendar__year-view .react-calendar__tile,.react-calendar__decade-view .react-calendar__tile,.react-calendar__century-view .react-calendar__tile{padding:2em .5em}.react-calendar__tile{max-width:100%;padding:10px 6.6667px;background:none;text-align:center;font:inherit;font-size:.833em}.react-calendar__tile:disabled{background-color:#f0f0f0;color:#ababab}.react-calendar__month-view__days__day--neighboringMonth:disabled,.react-calendar__decade-view__years__year--neighboringDecade:disabled,.react-calendar__century-view__decades__decade--neighboringCentury:disabled{color:#cdcdcd}.react-calendar__tile:enabled:hover,.react-calendar__tile:enabled:focus{background-color:#e6e6e6}.react-calendar__tile--now{background:#ffff76}.react-calendar__tile--now:enabled:hover,.react-calendar__tile--now:enabled:focus{background:#ffffa9}.react-calendar__tile--hasActive{background:#76baff}.react-calendar__tile--hasActive:enabled:hover,.react-calendar__tile--hasActive:enabled:focus{background:#a9d4ff}.react-calendar__tile--active{background:#006edc;color:#fff}.react-calendar__tile--active:enabled:hover,.react-calendar__tile--active:enabled:focus{background:#1087ff}.react-calendar--selectRange .react-calendar__tile--hover{background-color:#e6e6e6}.modal-content{background:#fff;padding:2rem;border-radius:16px;width:90%;max-width:400px;box-shadow:0 4px 20px #00000026;animation:slide-up .3s ease-out}.modal-content .form-group{margin-bottom:1.25rem}.modal-content .form-group label{display:block;margin-bottom:5px;font-weight:700}.modal-content .form-group input{width:100%;padding:10px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}.modal-content .form-group input:focus,.modal-content .form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #ff6b3533}.modal-content .form-group textarea{width:100%;padding:10px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;font-family:inherit;font-size:.9rem;resize:vertical;min-height:80px}.memo-counter{text-align:right;font-size:.8rem;color:#666;margin-top:4px}.time-picker-container{margin:20px 0;position:relative}.picker-container{width:100%;background-color:transparent!important}.picker-container .picker-inner{border:none!important}.picker-container .picker-column{font-size:1.5rem}.picker-container .picker-item{color:#ccc}.picker-container .picker-item.picker-item-selected{color:#000}.picker-highlight{background-color:#f0f0f0!important;border-radius:8px;height:2.5em!important;top:50%!important;transform:translateY(-50%)!important}.modal-actions{display:flex;justify-content:space-between;gap:1rem;margin-top:2rem}.modal-actions button{padding:.8rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.cancel-button{background-color:transparent;color:#e53e3e}.submit-button{background-color:var(--primary-color);color:#fff}.submit-button:disabled{background-color:#ccc}.time-picker-input{width:100%;padding:10px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box;font-size:1rem}.react-datepicker-wrapper{width:100%}.error-message{color:#e53e3e;background-color:#fff5f5;border:1px solid #FC8181;padding:1rem;border-radius:8px;text-align:left;margin-bottom:1rem;white-space:pre-line;line-height:1.5;font-size:.9rem}.schedule-list{padding:.5rem;padding-bottom:80px}.session-left-info{display:flex;align-items:center;gap:.75rem}.session-time{font-size:1rem;font-weight:700;color:#000}.session-member{font-size:.9rem;font-weight:500;color:#374151;background-color:#f3f4f6;padding:.4rem .8rem;border-radius:20px}.session-memo{color:#6b7280;text-align:left;margin-top:.5rem;font-size:.9rem}.schedule-fab{position:fixed;bottom:2rem;right:50%;transform:translate(calc(50% + 180px));background-color:#ff6b35;color:#fff;border:none;border-radius:50%;width:60px;height:60px;box-shadow:0 4px 12px #00000026;font-size:2rem;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1000;transition:transform .2s ease-in-out}@media (max-width: 480px){.schedule-fab{right:1.5rem;transform:translate(0)}}.google-calendar-style{background-color:#fff;border:1px solid #e1e5e9;border-radius:8px;overflow:hidden;font-size:12px;width:100%;box-sizing:border-box;contain:layout style}.calendar-grid{overflow-y:scroll;max-height:70vh;scrollbar-gutter:stable;position:relative}.calendar-grid::-webkit-scrollbar{width:8px}.calendar-grid::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.calendar-grid::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.calendar-grid::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.time-label{border-right:1px solid #e1e5e9;padding:8px;display:flex;align-items:flex-start;justify-content:flex-end;background-color:#fafafa;width:80px;min-width:80px;max-width:80px;box-sizing:border-box}.day-cell{border-right:1px solid #f1f3f4;position:relative;min-height:60px;padding:0;box-sizing:border-box;transition:background-color .2s ease}.day-cell.clickable{cursor:pointer;background-color:#e0f2fe}.day-cell.clickable:hover{background-color:#bae6fd}.day-cell.selected-slot{background-color:#fef9c3;border:1px solid #FDE68A}.session-block{position:absolute;left:4px;right:4px;border-radius:4px;padding:6px;cursor:pointer;box-shadow:0 1px 3px #0000001f;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.empty-slot{width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.empty-slot.past{background-color:#f5f5f5;color:#ccc}.empty-slot.conflict{background-color:#ffe6e6;border:1px dashed #ff9999}.plus-icon{font-size:20px;color:#ccc;font-weight:700;transition:color .2s ease}.day-cell.clickable:hover .plus-icon{color:#ff6b35}.session-block.pending{background-color:#fed7aa}.session-block.confirmed{background-color:#a7f3d0}.session-block.trainer-checkin{background-color:#bfdbfe}.session-block.member-checkin{background-color:#ddd6fe}.weekly-calendar .session-block.pending .session-member,.weekly-calendar .session-block.pending .session-type,.weekly-calendar .session-block.confirmed .session-member,.weekly-calendar .session-block.confirmed .session-type,.weekly-calendar .session-block.trainer-checkin .session-member,.weekly-calendar .session-block.trainer-checkin .session-type,.weekly-calendar .session-block.member-checkin .session-member,.weekly-calendar .session-block.member-checkin .session-type{color:#1f2937!important}@media (max-width: 768px){.weekly-calendar .session-block .session-member{font-size:12px!important}.weekly-calendar .session-block .session-type{font-size:10px!important}.day-cell{min-height:50px}.empty-slot{height:100%}}#qr-reader{width:100%;max-width:500px;margin:0 auto;aspect-ratio:1 / 1;overflow:hidden;border-radius:12px;border:2px solid rgba(255,255,255,.2)}#qr-reader video{width:100%!important;height:100%!important;object-fit:cover}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:2rem}.stat-card{background-color:#fff;border-radius:16px;padding:1.25rem;border:1px solid #E5E7EB}.stat-card p{margin:0 0 .5rem;font-size:.9rem;color:#6b7280}.stat-card span{font-size:1.5rem;font-weight:700}.coaching-note-section{background-color:#fff;border-radius:16px;padding:1.5rem;margin-bottom:2rem;border:1px solid #E5E7EB}.coaching-note-section h2{margin:0 0 1rem;font-size:1.1rem;font-weight:600}.coaching-note-section textarea{width:100%;min-height:80px;border:1px solid #E5E7EB;border-radius:8px;padding:.75rem;font-size:.95rem;resize:vertical;box-sizing:border-box}.save-btn{display:block;margin-left:auto;margin-top:1rem;padding:.6rem 1.2rem;background-color:#4f46e5;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer}.day-attended abbr{background-color:#d1fae5;color:#065f46;border-radius:50%;width:32px;height:32px;display:inline-block;line-height:32px}.day-absent abbr{background-color:#fee2e2;color:#991b1b;border-radius:50%;width:32px;height:32px;display:inline-block;line-height:32px}.day-late abbr{background-color:#fef3c7;color:#92400e;border-radius:50%;width:32px;height:32px;display:inline-block;line-height:32px}.back-btn{background:none;border:none;color:#333;font-size:1.5rem;cursor:pointer;padding:0;position:absolute;left:1rem}.attendance-stats-section{margin-top:1.5rem}.stats-grid-3x1{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media screen and (max-width: 400px){.detail-main{padding:1.5rem .75rem}.attendance-calendar-section{padding:1.25rem}.attendance-calendar-section h2{font-size:1rem}.react-calendar{font-size:.9em}.day-attended abbr,.day-absent abbr,.day-late abbr,.day-confirmed abbr,.day-scheduled abbr{width:28px;height:28px;line-height:28px;font-size:.8em}.calendar-legend{gap:.75rem;font-size:.75rem;flex-wrap:wrap}.stats-grid-3x1{gap:.75rem}.stat-card{padding:1rem;border-radius:12px}.stat-card p{font-size:.8rem}.stat-card span{font-size:1.3rem}}.modal-content{background:#fff;padding:2rem;border-radius:16px;width:90%;max-width:400px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #00000026;animation:slide-up .3s ease-out}.modal-content h2{margin-top:0;text-align:center;font-size:1.5rem}.modal-content .form-group{margin-bottom:1rem}.modal-content .form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#4a5568}.modal-content .form-group input{width:100%;padding:.8rem 1rem;border:1px solid #E2E8F0;border-radius:8px;font-size:1rem}.modal-content .form-group input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #ff6b3533}.form-group input,.form-group select{width:100%;padding:.75rem;border-radius:6px;background-color:#f8fafc}.copy-button{padding:10px 15px;border:none;background-color:#ff6b35;color:#fff;border-radius:4px;cursor:pointer;font-weight:700;white-space:nowrap;transition:all .2s ease}.copy-button:hover{background-color:#f05a21;box-shadow:0 0 0 3px #ff6b354d}.cancel-button,.submit-button{padding:12px 20px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.cancel-button{background-color:#f1f5f9;color:#475569}.cancel-button:hover{background-color:#e2e8f0}.submit-button{background-color:#ff6b35;color:#fff}.submit-button:hover{background-color:#f05a21;box-shadow:0 0 0 3px #ff6b354d}.submit-button:focus-visible{outline:none;box-shadow:0 0 0 3px #ff6b3580}.submit-button:disabled{background-color:#fbd38d;cursor:not-allowed}.error-message{color:#e53e3e;background-color:#fff5f5;border:1px solid #FC8181;padding:.8rem;border-radius:8px;text-align:center;margin-bottom:1rem}.form-row{display:flex;gap:1rem}.form-row .form-group{flex:1}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e5e7eb}.modal-actions .btn-cancel,.modal-actions .btn-submit{padding:.6rem 1.25rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:background-color .2s}.modal-actions .btn-submit{background-color:#f97316;color:#fff}.modal-actions .btn-submit:hover{background-color:#ea580c}.modal-actions .btn-submit:disabled{background-color:#fdba74;cursor:not-allowed}@media (max-width: 768px){.modal-overlay{align-items:flex-end;padding-bottom:1rem}.modal-content{padding:1.5rem;max-height:calc(100vh - 100px);margin-bottom:65px}.modal-content h2{font-size:1.3rem;margin-bottom:1rem}.form-row{flex-direction:column;gap:.8rem}.modal-actions{flex-direction:column;gap:.75rem}.cancel-button,.submit-button{width:100%;padding:.9rem;font-size:1rem}.modal-content .form-group{margin-bottom:.8rem}.modal-content .form-group label{margin-bottom:.3rem;font-size:.9rem}.modal-content .form-group input{padding:.6rem .8rem;font-size:.9rem}.link-display{flex-direction:column}.copy-button{width:100%}}@media (max-width: 480px){.form-row{flex-direction:column}}.modal-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;padding:2rem;border-radius:16px;width:90%;max-width:550px;box-shadow:0 4px 20px #00000026;animation:slide-up .3s ease-out}.modal-content h2{margin-top:0;text-align:center;font-size:1.5rem;font-weight:700;margin-bottom:1rem}.modal-content .selection-description{text-align:center;color:#6c757d;margin-bottom:2rem;font-size:1rem}.contract-options-container{display:flex;justify-content:space-around;gap:1.5rem;margin-bottom:1.5rem}.contract-option-card{flex:1;padding:2rem 1.5rem;border:2px solid var(--border-color);border-radius:12px;text-align:center;cursor:pointer;transition:all .2s ease-in-out;background-color:var(--card-background)}.contract-option-card:hover{transform:translateY(-5px);box-shadow:0 8px 25px #0000001a;border-color:var(--primary-color)}.contract-option-card .option-icon{font-size:2.5rem;display:block;margin-bottom:1rem;line-height:1}.contract-option-card .option-title{font-size:1.1rem;font-weight:700;color:var(--text-color);margin:0 0 .5rem}.contract-option-card .option-description{font-size:.9rem;color:#6c757d;line-height:1.4;min-height:40px}.modal-actions{display:flex;justify-content:center;margin-top:1rem}.cancel-button{padding:12px 24px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s;background-color:#e9ecef;color:#495057}.cancel-button:hover{background-color:#dee2e6}@media (max-width: 768px){.modal-content{padding:1.5rem}.contract-options-container{flex-direction:column;gap:1rem}.contract-option-card{padding:1.5rem 1rem}.contract-option-card .option-icon{font-size:2rem;margin-bottom:.75rem}.contract-option-card .option-description{min-height:auto}}.trainer-dashboard{background-color:#fff;max-width:480px;margin:0 auto;min-height:100vh;position:relative}.trainer-main-content{padding:1rem;padding-bottom:80px}.greeting h2{margin:0;font-size:1.75rem;font-weight:700}.greeting p{margin:.25rem 0 0;font-size:1rem;color:#4b5563}.stats-card{background-color:#ff6b35;color:#fff;border-radius:16px;padding:1.5rem;margin-top:1.5rem;cursor:pointer;transition:all .2s ease;position:relative}.stats-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #ff6b354d}.stats-card .title{font-size:.9rem;opacity:.9}.stats-card .value{display:block;font-size:1.75rem;font-weight:700;margin-top:.25rem}.stats-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.top-left{flex:1;padding-left:.5rem}.top-left .sub-value{font-size:.85rem;margin-top:.5rem;display:block}.top-right{flex:1;text-align:right;padding-right:.5rem}.stats-divider{height:1px;background-color:#ffffff4d;margin:1rem 0}.stats-card-bottom{margin-bottom:1rem}.performance-grid{display:flex;justify-content:space-between;margin-top:.5rem;text-align:center}.performance-grid>div{flex:1}.perf-title{font-size:.85rem;opacity:.9;display:block}.perf-value{font-size:1.25rem;font-weight:600;display:block;margin-top:.25rem}.perf-value.attention{color:#fff}.stats-card-hint{text-align:center;border-top:1px solid rgba(255,255,255,.2);padding-top:.75rem;font-size:.85rem;opacity:.8;font-weight:500}.dropdown-menu{position:absolute;top:100%;right:0;background-color:#fff;border-radius:8px;box-shadow:0 4px 12px #0000001a;border:1px solid #F3F4F6;padding:.5rem;margin-top:.5rem;z-index:10;width:150px}.logout-button{display:flex;align-items:center;gap:.75rem;background:none;border:none;padding:.75rem 1rem;width:100%;text-align:left;cursor:pointer;font-size:1rem;border-radius:4px;color:#374151}.logout-button svg{font-size:1.25rem}.today-schedule{margin-top:1.5rem}.today-schedule h4{font-size:1.25rem;font-weight:600;margin:0 0 1rem}.schedule-item{background-color:#fff;border-radius:12px;padding:1.25rem;border:1px solid #f0f0f0;margin-bottom:.75rem}.session-main-row{display:flex;justify-content:space-between;align-items:center;width:100%}.time-info{display:flex;align-items:center;gap:.75rem}.time{font-size:1rem;font-weight:700;color:#000}.member-name{font-size:.9rem;font-weight:500;color:#374151;background-color:#f3f4f6;padding:.4rem .8rem;border-radius:20px}.session-right-info{display:flex;align-items:center;gap:.5rem}.session-memo{color:#6b7280;text-align:left;margin-top:.75rem;font-size:.9rem;line-height:1.4;padding-top:.75rem;border-top:1px solid #f3f4f6}.attendance-status{background-color:#d1fae5;color:#065f46;padding:.4rem .8rem;border-radius:12px;font-size:.85rem;font-weight:500}.attendance-status.pending{background-color:#fef3c7;color:#92400e}.attendance-status.confirmed{background-color:#dbeafe;color:#1e40af}.attendance-status.trainer-checkin{background-color:#e0e7ff;color:#3730a3}.attendance-status.member-checkin{background-color:#f3e8ff;color:#5b21b6}.attendance-status.completed{background-color:#e0e0e0;color:#616161}.attendance-status.trainer-checked,.attendance-status.member-checked{background-color:#dcedc8;color:#388e3c;border:1px solid #c5e1a5}.attendance-status.rejected{background-color:#fee2e2;color:#991b1b}.trainer-dashboard .bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;display:flex;justify-content:space-around;align-items:center;background-color:#fff;border-top:1px solid #f0f0f0;box-shadow:0 -2px 10px #0000000d;padding:5px 0;z-index:1000;height:65px;transition:filter .3s ease}.trainer-dashboard .bottom-nav.inactive{filter:blur(4px) grayscale(80%);pointer-events:none}.trainer-dashboard .nav-btn{background:none;border:none;color:#6b7280;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:12px;font-weight:500;cursor:pointer;flex:1;height:100%;position:relative;transition:color .2s}.trainer-dashboard .nav-btn:hover{color:#ff6b35}.trainer-dashboard .nav-btn svg{font-size:24px}.trainer-dashboard .nav-btn.qr-btn{transform:translateY(-25px);background-color:#f9773d;color:#fff;width:70px;height:70px;border-radius:50%;box-shadow:0 4px 12px #f9773d66;font-size:11px;flex:0 0 70px;padding-top:0;justify-content:center}.trainer-dashboard .nav-btn.qr-btn svg{font-size:30px}.trainer-dashboard .nav-btn.qr-btn:hover{background-color:#e86a2f;color:#fff}.notification-badge-nav{position:absolute;top:5px;right:calc(50% - 22px);background-color:#ef4444;color:#fff;border-radius:50%;width:18px;height:18px;display:flex;justify-content:center;align-items:center;font-size:.7rem;font-weight:600;border:2px solid white}@media (max-width: 420px){.trainer-main-content{padding:.75rem;padding-bottom:90px}.greeting h2{font-size:1.5rem}.stats-card{padding:1rem;margin-top:1rem}.stats-card .value{font-size:1.5rem}.stats-card .title{font-size:.8rem}.perf-title{font-size:.75rem}.perf-value,.today-schedule h4{font-size:1.1rem}.schedule-item{padding:1rem}.time{font-size:.9rem}.member-name{font-size:.85rem}}.schedule-page-container{background-color:#f7f8fc}.schedule-page{background-color:#fff;max-width:480px;margin:0 auto;min-height:100vh}.schedule-header{display:flex;align-items:center;padding:1rem;border-bottom:1px solid #f0f0f0;position:relative}.schedule-header h1{margin:0;font-size:1.1rem;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.dot{height:8px;width:8px;background-color:var(--primary-color, #FF6B35);border-radius:50%;margin:2px auto 0}.react-calendar__tile{position:relative}.notification-badge-calendar{position:absolute;top:3px;right:3px;background-color:#ef4444;color:#fff;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;z-index:1;box-shadow:0 0 0 2px #fff}.react-calendar{width:100%;border:none;border-bottom:1px solid #f0f0f0;font-family:inherit}.react-calendar__tile--active{background:var(--primary-color)!important;color:#fff;border-radius:8px}.react-calendar__tile--active .dot{background-color:#fff}.react-calendar__tile--now{background:none}.react-calendar__tile--now abbr{color:#ff6b35;font-weight:700;text-decoration:underline}.react-calendar__tile--active.react-calendar__tile--now abbr{color:#fff;text-decoration:none}.view-toggle{display:flex;justify-content:center;padding:1rem;gap:.5rem;background-color:#fff;border-bottom:1px solid #e9ecef}.toggle-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid #dee2e6;border-radius:8px;background-color:#fff;color:#6c757d;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.toggle-btn:hover{background-color:#f8f9fa;border-color:#adb5bd}.toggle-btn.active{background-color:#ff6b35;color:#fff;border-color:#ff6b35}.toggle-btn svg{width:16px;height:16px}.google-calendar-style{background-color:#fff;border:1px solid #e1e5e9;border-radius:8px;overflow:hidden;font-size:12px;width:100%;box-sizing:border-box}.week-navigation{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background-color:#f8f9fa;border-bottom:1px solid #e0e0e0}.week-nav-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #ddd;border-radius:50%;background-color:#fff;color:#666;cursor:pointer;transition:all .2s ease}.week-nav-btn:hover{background-color:#f0f0f0;border-color:#ccc;color:#333}.week-nav-btn:active{transform:scale(.95)}.week-title{display:flex;align-items:center;gap:12px;flex:1;justify-content:center}.week-title-text{font-size:16px;font-weight:600;color:#333}.today-btn{padding:6px 12px;border:1px solid #e74c3c;border-radius:16px;background-color:#fff;color:#e74c3c;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.today-btn:hover{background-color:#e74c3c;color:#fff}.today-btn:active{transform:scale(.95)}.calendar-header{display:grid;grid-template-columns:80px repeat(7,1fr);border-bottom:1px solid #e1e5e9;background-color:#f8f9fa;position:sticky;top:0;z-index:5;align-items:stretch}.time-column-header{border-right:1px solid #e1e5e9;width:80px;min-width:80px;max-width:80px}.day-header{padding:12px 8px;text-align:center;border-right:1px solid #e1e5e9;min-height:60px;display:flex;flex-direction:column;justify-content:center;align-items:center;box-sizing:border-box}.day-header:last-child{border-right:none}.day-header.today{background-color:#fff3e0}.day-name{font-size:11px;font-weight:500;color:#5f6368;margin-bottom:4px;text-transform:uppercase}.day-number{font-size:22px;font-weight:400;color:#3c4043;line-height:1}.day-number.today-number{background-color:#1a73e8;color:#fff;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;margin:0 auto}.day-toggle-btn{margin-top:4px;padding:4px 8px;font-size:10px;border-radius:12px;border:1px solid #ced4da;background-color:#f8f9fa;color:#495057;cursor:pointer;transition:all .2s ease}.day-toggle-btn:hover{background-color:#e9ecef;border-color:#adb5bd}.day-toggle-btn.all-unavailable{background-color:#20c997;color:#fff;border-color:#20c997}.day-toggle-btn.all-unavailable:hover{background-color:#1aa179;border-color:#178b6b}.calendar-grid{overflow-y:auto;max-height:70vh;position:relative}.current-time-indicator{position:absolute;left:80px;right:0;height:2px;z-index:20;pointer-events:none}.current-time-line{width:100%;height:100%;background-color:#ffdab9}.current-time-handle{position:absolute;top:50%;left:-6px;width:12px;height:12px;background-color:#ffdab9;border-radius:50%;transform:translateY(-50%)}.time-row{display:grid;grid-template-columns:80px repeat(7,1fr);min-height:60px;border-bottom:1px solid #f1f3f4;align-items:stretch}.time-row:hover{background-color:#fafafa}.time-label{border-right:1px solid #e1e5e9;padding:8px;display:flex;align-items:flex-start;justify-content:flex-end;background-color:#fafafa;width:80px;min-width:80px;max-width:80px;box-sizing:border-box;flex-direction:column;gap:2px}.time-text{font-size:11px;color:#5f6368;font-weight:500;line-height:1;margin-top:-6px}.time-toggle-btn{padding:2px 6px;font-size:9px;border-radius:8px;border:1px solid #ced4da;background-color:#f1f3f4;color:#868e96;cursor:pointer;transition:all .2s ease;font-weight:700}.time-toggle-btn:hover{background-color:#e9ecef}.time-toggle-btn.all-unavailable{background-color:#f03e3e;color:#fff;border-color:#f03e3e}.day-cell{border-right:1px solid #f1f3f4;position:relative;min-height:60px;padding:2px;box-sizing:border-box;transition:background-color .2s ease;cursor:pointer}.day-cell:last-child{border-right:none}.day-cell.available-slot{background-color:#e0f2fe}.day-cell.available-slot:hover{background-color:#bae6fd}.day-cell.unavailable-slot{background-color:#fee2e2;cursor:pointer}.day-cell.unavailable-slot:hover{background-color:#fee2e2}.day-cell.booked-slot{background-color:#fee2e2;cursor:not-allowed}.day-cell.past-slot{background-color:#f8fafc;cursor:not-allowed}.day-cell.drop-target{background-color:#ff6b351a!important;border:2px dashed #FF6B35}.session-block{position:absolute;left:4px;right:4px;height:56px;border-radius:4px;padding:6px;cursor:pointer;box-shadow:0 1px 3px #0000001f;display:flex;align-items:center;justify-content:center}.session-block:hover{box-shadow:0 2px 8px #00000026;transform:translateY(-1px)}.session-content{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px}.weekly-calendar .session-block .session-member{font-size:13px!important;font-weight:700!important;color:#fff!important;text-align:center!important;line-height:1.1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:100%!important;background:none!important;padding:0!important;border-radius:0!important}.weekly-calendar .session-block .session-type{font-size:11px!important;color:#fffffff2!important;font-weight:600!important;text-align:center!important}@media (max-width: 768px){.weekly-calendar .session-block .session-member{font-size:12px!important}.weekly-calendar .session-block .session-type{font-size:10px!important}}.session-block.pending{background-color:#f59e0b}.session-block.confirmed{background-color:#10b981}.session-block.trainer-checkin{background-color:#3b82f6}.session-block.member-checkin{background-color:#8b5cf6}.session-block.completed{background-color:#6b7280}.session-block.cancelled{background-color:#ef4444}.session-block.late{background-color:#f97316}.session-block.absent{background-color:#9ca3af}.session-block.unavailable{background-color:#ef4444;opacity:.7}.session-block.past-session{opacity:.5;filter:grayscale(50%)}.session-block.current-session{background-color:#fff;border:2px solid #FF6B35}.weekly-calendar .session-block.current-session .session-member,.weekly-calendar .session-block.current-session .session-type{color:#000!important}.session-block.dragging{opacity:.5;transform:rotate(5deg);z-index:1000}.schedule-list{padding:1rem}.schedule-list-title{margin:0 0 1rem;font-size:1.1rem;font-weight:600;color:#333;text-align:center}.schedule-list .schedule-item{background-color:#fff;border-radius:12px;padding:1.25rem;border:1px solid #f0f0f0;margin-bottom:.75rem}.schedule-list .session-main-row{display:flex;justify-content:space-between;align-items:center;width:100%}.schedule-list .session-left-info{display:flex;align-items:center;gap:.75rem}.schedule-list .session-time{font-size:1rem;font-weight:700;color:#000}.schedule-list .session-member{font-size:.9rem;font-weight:500;color:#374151;background-color:#f3f4f6;padding:.4rem .8rem;border-radius:20px}.schedule-list .session-right-info{display:flex;align-items:center;gap:.5rem}.schedule-list .session-memo{color:#6b7280;text-align:left;margin-top:.5rem;font-size:.9rem}.action-button{border:none;border-radius:8px;padding:.5rem 1rem;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.action-button.confirm{background-color:#f1f5f9;color:#10b981;width:2.25rem;height:2.25rem;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;font-size:1.2rem;font-weight:700}.action-button.cancel{background-color:#f1f5f9;color:#64748b;width:2.25rem;height:2.25rem;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;font-size:1.2rem}.attendance-status{font-size:.75rem;font-weight:600;padding:.4rem .8rem;border-radius:16px;white-space:nowrap}.modal-overlay{position:fixed;inset:0;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;padding:30px;border-radius:12px;width:90%;max-width:450px;box-shadow:0 5px 15px #0003;animation:slide-up .3s ease-out}@keyframes slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-content h2{margin-top:0;font-size:1.5rem;font-weight:700;color:#333;margin-bottom:25px;text-align:center}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:.9rem;font-weight:600;color:#555;margin-bottom:8px}.form-group input{width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;font-size:1rem;box-sizing:border-box}.form-group input:focus,.form-group select:focus{outline:none;border-color:#f97316;box-shadow:0 0 0 2px #ff6b3533}.form-group.validity-display{background-color:#f8fafc;padding:.75rem;border-radius:6px;border:1px solid #e2e8f0}.form-group.validity-display p{margin:0;font-weight:600;color:#334155}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:30px}.modal-actions button{padding:10px 20px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.cancel-button{background-color:#f0f0f0;color:#555}.cancel-button:hover{background-color:#e0e0e0}.submit-button{background-color:#007bff;color:#fff}.submit-button:hover{background-color:#0056b3}.submit-button:disabled{background-color:#a0cfff;cursor:not-allowed}.error-message{color:#dc3545;background-color:#f8d7da;border:1px solid #f5c6cb;padding:10px;border-radius:8px;margin-bottom:20px;text-align:center;font-size:.9rem}.submission-success-container{text-align:center}.submission-success-container p{font-size:1rem;line-height:1.6;color:#333}.member-report-page{background-color:#fff;max-width:480px;margin:0 auto;min-height:100vh}.report-header{background-color:#fff;display:flex;align-items:center;padding:1rem;border-bottom:1px solid #f0f0f0;position:relative}.report-header h1{margin:0;font-size:1.1rem;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.back-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:0;color:#333}.report-main{padding:1.5rem 1rem}.summary-card{background-color:#fff;border-radius:16px;padding:1.5rem;text-align:center;margin-bottom:2rem;border:1px solid #E5E7EB}.summary-card p{margin:0 0 .5rem;font-size:1rem;color:#6b7280}.summary-percentage{font-size:2.5rem;font-weight:700;color:#ff6b35}.member-list-section .list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.list-controls{display:flex;align-items:center;gap:1rem}.show-hidden-toggle{display:flex;align-items:center;gap:.5rem}.show-hidden-toggle label{font-size:.85rem;color:#4b5563;cursor:pointer}.show-hidden-toggle input[type=checkbox]{cursor:pointer}.list-header h2{margin:0;font-size:1.2rem;font-weight:600}.sort-container{position:relative;display:inline-block}.sort-option{padding:.5rem .75rem;border-radius:6px;cursor:pointer;font-size:.85rem}.member-cards{display:flex;flex-direction:column;gap:1rem}.report-member-card{background-color:#fff;border-radius:16px;padding:1.5rem;border:1px solid #E5E7EB;display:flex;flex-direction:column;gap:1.5rem;transition:border-color .2s ease-in-out}.report-member-card.expired-contract{border-color:#ef4444}.report-member-card.inactive-member{opacity:.5;cursor:default}.shared-members-names{color:#ff6b35;font-weight:600}.more-icon{color:#9ca3af;cursor:pointer}.card-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;text-align:center}.stat-item p{margin:0 0 .25rem;font-size:.8rem;color:#6b7280}.stat-item span{font-size:1.2rem;font-weight:600}.more-menu-container{position:relative;z-index:5}.report-card-header{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%}.report-card-title{display:flex;flex-grow:1;min-width:0}.report-name-and-tags{display:flex;align-items:center;gap:.75rem;min-width:0}.report-member-tags{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.contract-status-tag,.shared-contract-tag,.attention-tag{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .75rem;border-radius:9999px;font-size:.8rem;font-weight:600;white-space:nowrap}.contract-status-tag.valid{background-color:#f0fdf4;color:#166534}.contract-status-tag.expiring{background-color:#fffbeb;color:#854d0e}.contract-status-tag.expired{background-color:#fef2f2;color:#991b1b}.shared-contract-tag{background-color:#fff3e0;color:#ff6b35;border:1px solid #ffcc99}.attention-tag{background-color:#fef3c7;color:#92400e}.attention-tag svg,.shared-contract-tag svg{font-size:.9rem}.report-card-title h3{margin:0;font-size:1.1rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-card-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;text-align:center}.report-stat-item p{margin:0 0 .25rem;font-size:.8rem;color:#6b7280}.report-stat-item span{font-size:1.2rem;font-weight:600}.progress-bar-container{width:100%;height:8px;background-color:#e5e7eb;border-radius:4px;overflow:hidden}.progress-bar{height:100%;border-radius:4px}.progress-bar.blue{background-color:#3b82f6}.progress-bar.orange{background-color:#ff6b35}.more-menu-container{flex-shrink:0}.more-menu-item.disabled{color:#aaa;cursor:not-allowed;background-color:#f9f9f9}.more-menu-item.disabled:hover{background-color:#f9f9f9}.more-menu-dropdown{position:absolute;top:calc(100% + 4px);right:0;background-color:#fff;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;border:1px solid #E5E7EB;padding:.5rem;min-width:120px;z-index:10;text-align:left}.more-menu-item{padding:.5rem .75rem;border-radius:6px;cursor:pointer;font-size:.9rem;color:#374151;white-space:nowrap}.more-menu-item:hover{background-color:#f3f4f6}@media screen and (max-width: 400px){.desktop-only{display:none}.mobile-only{display:block}.control-icon-btn{background:none;border:1px solid #E5E7EB;border-radius:8px;padding:.5rem;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:#4b5563;cursor:pointer}.control-icon-btn.active{background-color:#fef3c7;color:#92400e;border-color:#fde68a}.report-main{padding:1rem .75rem}.report-member-card{padding:1rem;gap:1rem}.member-list-section .list-header{gap:.5rem}.list-header h2{font-size:1.1rem}.sort-dropdown{padding:.4rem .6rem;font-size:.8rem}.show-hidden-toggle label{font-size:.8rem}.list-controls{gap:.75rem}.report-name-and-tags{gap:.5rem}.report-card-title h3{font-size:1rem}.contract-status-tag,.shared-contract-tag,.attention-tag{font-size:.7rem;padding:.2rem .5rem;gap:.2rem}.attention-tag svg,.shared-contract-tag svg{font-size:.8rem}.report-card-stats{gap:.5rem}.report-stat-item p{font-size:.7rem;margin-bottom:.1rem}.report-stat-item span{font-size:1rem}}.member-detail-page{background-color:#fff;min-height:100vh;max-width:480px;margin:0 auto}.detail-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.detail-stat-card{background-color:#fff;border-radius:16px;padding:1.25rem;border:1px solid #E5E7EB;text-align:center}.detail-stat-card p{margin:0 0 .5rem;font-size:.9rem;color:#6b7280}.detail-stat-card span{font-size:1.5rem;font-weight:700}.detail-stat-card.shared-pt p{color:#ff6b35;font-weight:600}.contract-period-section{background-color:#fff;border-radius:16px;padding:1.5rem;margin-bottom:2rem;border:1px solid #E5E7EB}.contract-period-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.contract-period-section h2{margin:0;font-size:1.1rem;font-weight:600}.status-badge{padding:.25rem .75rem;border-radius:9999px;font-size:.8rem;font-weight:600;white-space:nowrap}.status-badge.valid{background-color:#f0fdf4;color:#166534}.status-badge.expiring{background-color:#fffbeb;color:#854d0e}.status-badge.expired{background-color:#fef2f2;color:#991b1b}.contract-period-display{text-align:center;padding:1rem;background-color:#f9fafb;border-radius:8px}.contract-period-display p{margin:0;font-size:1rem;font-weight:500;color:#374151}.monthly-stats-section{background-color:#fff;border-radius:16px;padding:1.5rem;margin-bottom:2rem;border:1px solid #E5E7EB}.member-note-section{background-color:#fff;border-radius:16px;padding:1.5rem;margin-bottom:2rem;border:1px solid #E5E7EB}.note-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.member-note-section h2{margin:0;font-size:1.1rem;font-weight:600}.edit-note-btn{background:none;border:1px solid #E5E7EB;border-radius:8px;padding:.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;color:#6b7280}.edit-note-btn:hover{background-color:#f9fafb;border-color:#d1d5db;color:#374151}.edit-note-btn svg{width:16px;height:16px}.member-note-section textarea{width:100%;min-height:100px;border:1px solid #E5E7EB;border-radius:8px;padding:.75rem;font-size:.95rem;line-height:1.5;resize:vertical;box-sizing:border-box;font-family:inherit}.member-note-section textarea::placeholder{color:#9ca3af;line-height:1.5}.save-note-btn{display:block;margin-left:auto;margin-top:1rem;padding:.6rem 1.2rem;background-color:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background-color .2s}.save-note-btn:hover{background-color:#2563eb}.save-note-btn:disabled{background-color:#93c5fd;cursor:not-allowed}.note-display{min-height:60px;padding:.75rem;background-color:#f9fafb;border:1px solid #F3F4F6;border-radius:8px}.note-display p{margin:0;font-size:.95rem;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.note-empty{color:#9ca3af;font-style:italic}.attendance-calendar-section{background-color:#fff;border-radius:16px;padding:1.5rem;border:1px solid #E5E7EB}.attendance-calendar-section h2{margin:0 0 1rem;font-size:1.1rem;font-weight:600}.calendar-legend{display:flex;justify-content:center;gap:1rem;margin-top:1rem;font-size:.8rem;color:#6b7280}.legend-item{display:flex;align-items:center;gap:.4rem}.legend-dot{width:10px;height:10px;border-radius:50%}.legend-dot.green{background-color:#86efac}.legend-dot.yellow{background-color:#fde047}.legend-dot.red{background-color:#fca5a5}.legend-dot.gray{background-color:#d1d5db}.legend-dot.light-gray{background-color:#e5e7eb}.day-attended abbr,.day-absent abbr,.day-late abbr,.day-confirmed abbr,.day-scheduled abbr{border-radius:50%;width:32px;height:32px;display:inline-block;line-height:32px}.day-attended abbr{background-color:#d1fae5;color:#065f46}.day-absent abbr{background-color:#fee2e2;color:#991b1b}.day-late abbr{background-color:#fef3c7;color:#92400e}.day-confirmed abbr{background-color:#e5e7eb;color:#4b5563}.day-scheduled abbr{background-color:#f3f4f6;color:#6b7280}.attendance-calendar-section .react-calendar__tile--now:not(:hover){background:transparent!important}.attendance-calendar-section .react-calendar__tile--now abbr{color:#000!important;font-weight:700}@media screen and (max-width: 400px){.detail-main{padding:1.5rem .75rem}.monthly-stats-section,.contract-period-section,.member-note-section,.attendance-calendar-section{padding:1.25rem;margin-bottom:1.5rem}.month-navigation{margin-bottom:1.25rem}.month-navigation h2,.contract-period-section h2,.member-note-section h2,.attendance-calendar-section h2{font-size:1rem}.detail-stats-grid{gap:.75rem}.detail-stat-card{padding:1rem;border-radius:12px}.detail-stat-card p{font-size:.8rem;margin-bottom:.25rem}.detail-stat-card span{font-size:1.3rem}.contract-period-display{padding:.8rem}.contract-period-display p{font-size:.9rem}.status-badge{padding:.2rem .6rem;font-size:.75rem}.note-display p,.member-note-section textarea{font-size:.9rem}.react-calendar{font-size:.9em}.day-attended abbr,.day-absent abbr,.day-late abbr,.day-confirmed abbr,.day-scheduled abbr{width:28px;height:28px;line-height:28px;font-size:.8em}.calendar-legend{gap:.75rem;font-size:.75rem;flex-wrap:wrap}}.trainer-analytics-page{background-color:#fff;min-height:100vh;max-width:480px;margin:0 auto}.analytics-header{background-color:#fff;display:flex;align-items:center;padding:1rem;border-bottom:1px solid #f0f0f0;position:relative}.analytics-header h1{margin:0;font-size:1.1rem;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.analytics-main{padding:1.5rem 1rem}.monthly-analytics-section{background-color:#fff;border-radius:16px;padding:1.5rem;margin-bottom:2rem;border:1px solid #E5E7EB}.month-navigation{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.month-navigation h2{margin:0;font-size:1.1rem;font-weight:600;flex:1;text-align:center}.month-nav-btn{background:none;border:1px solid #E5E7EB;border-radius:8px;padding:.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;color:#6b7280}.month-nav-btn:hover{background-color:#f9fafb;border-color:#d1d5db;color:#374151}.month-nav-btn svg{width:18px;height:18px}.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.analytics-card{background-color:#fff;border-radius:16px;padding:1.25rem;border:1px solid #E5E7EB;position:relative}.analytics-card.clickable{cursor:pointer;transition:all .2s ease}.analytics-card.clickable:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;border-color:#ff6b35}.analytics-card.main-card{grid-column:1 / -1;background:linear-gradient(135deg,#ff6b35,#f97316);color:#fff;border:none}.analytics-card p{margin:0 0 .5rem;font-size:.9rem;color:#6b7280}.analytics-card.main-card p{color:#ffffffe6}.analytics-card span{font-size:1.5rem;font-weight:700;display:block}.analytics-card span.attention{color:#e53935}.sub-info{margin-top:.5rem;font-size:.8rem;color:#fffc;font-weight:500}.detail-hint{margin-top:.25rem;font-size:.75rem;color:#ff6b35;font-weight:500;opacity:.8}.performance-summary-section{background-color:#fff;border-radius:16px;padding:1.5rem;border:1px solid #E5E7EB}.performance-summary-section h2{margin:0 0 1.5rem;font-size:1.1rem;font-weight:600}.summary-cards{display:flex;flex-direction:column;gap:1rem}.summary-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background-color:#f9fafb;border-radius:8px;border:1px solid #F3F4F6}.summary-value-container{display:flex;align-items:center;gap:.5rem}.summary-item.clickable{cursor:pointer;transition:background-color .2s}.summary-item.clickable:hover{background-color:#f3f4f6}.summary-item.clickable .summary-value{color:#ff6b35}.summary-item.clickable .detail-arrow-icon{color:#9ca3af;transition:color .2s}.summary-item.clickable:hover .detail-arrow-icon{color:#ff6b35}.summary-label{font-weight:500;color:#6b7280;font-size:.95rem}.summary-value{font-weight:600;color:#374151;font-size:1rem}.edit-rates-btn{margin-top:1.5rem;width:100%;padding:.75rem;background-color:#ff6b35;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.edit-rates-btn:hover{background-color:#f97316}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:#fff;padding:2rem;border-radius:16px;width:90%;max-width:400px;box-shadow:0 4px 20px #0000001a}.modal-content h2{margin-top:0;margin-bottom:1.5rem;font-size:1.25rem;text-align:center}.input-group{margin-bottom:1rem}.input-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#374151}.input-group input{width:100%;padding:.75rem;border:1px solid #D1D5DB;border-radius:8px;font-size:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:2rem}.modal-actions button{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.btn-cancel{background-color:#e5e7eb;color:#374151}.btn-cancel:hover{background-color:#d1d5db}.btn-save{background-color:#ff6b35;color:#fff}.btn-save:hover{background-color:#f97316}@media screen and (max-width: 400px){.analytics-main{padding:1rem .75rem}.monthly-analytics-section,.performance-summary-section{padding:1rem}.month-navigation h2{font-size:1rem}.analytics-grid{gap:.75rem}.analytics-card{padding:1rem}.analytics-card p{font-size:.8rem;margin-bottom:.25rem}.analytics-card span{font-size:1.2rem}.detail-hint{font-size:.7rem}.performance-summary-section h2{font-size:1rem;margin-bottom:1rem}.summary-item{padding:.75rem}.summary-label{font-size:.85rem}.summary-value{font-size:.9rem}.edit-rates-btn{font-size:.9rem;padding:.6rem}}.trainer-promise-rate-page{background-color:#fff;min-height:100vh;max-width:480px;margin:0 auto}.promise-rate-header{display:flex;align-items:center;padding:1rem;border-bottom:1px solid #f0f0f0;position:relative}.promise-rate-header .back-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:0;color:#333!important;position:absolute;left:1rem}.promise-rate-header h1{margin:0;font-size:1.1rem;font-weight:600;text-align:center;flex-grow:1}.promise-rate-date-navigator{display:flex;justify-content:center;align-items:center;margin-bottom:1.5rem;font-size:1.1rem;font-weight:600;gap:1rem}.promise-rate-date-navigator .nav-arrow{background-color:#fff;border:1px solid #E5E7EB;border-radius:50%;color:#4b5563;cursor:pointer;display:flex;align-items:center;justify-content:center;width:32px;height:32px;transition:all .2s}.promise-rate-date-navigator .nav-arrow:hover{color:#ff6b35;border-color:#ff6b35}.promise-rate-main{padding:1rem}.kpi-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}.kpi-summary-card{background-color:#f9fafb;border-radius:12px;padding:1.5rem;text-align:center;border:1px solid #E5E7EB}.kpi-summary-card p{margin:0 0 .5rem;color:#6b7280;font-size:.9rem}.kpi-summary-card h3{margin:0;font-size:1.75rem;color:#111827;font-weight:700}.kpi-summary-card h3.attention{color:#ef4444}.violation-list{background-color:#fafafa;border-radius:12px;overflow:hidden;border:1px solid #E5E7EB}.violation-list .violation-list-header{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:1rem;padding:1rem;font-size:.8rem;color:#6b7280;background-color:#f3f4f6;border-bottom:1px solid #E5E7EB;text-align:center;font-weight:600}.violation-item{padding:1rem;border-bottom:1px solid #F3F4F6;background-color:#fff}.violation-item:last-child{border-bottom:none}.violation-main-info{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:1rem;align-items:center;text-align:center;font-size:.9rem}.violation-type{font-weight:600;color:#ef4444;background-color:#fef2f2;padding:.25rem .5rem;border-radius:6px;font-size:.8rem}.violation-note{background-color:#f9fafb;border-radius:6px;padding:.75rem;margin:.75rem 0 0;font-size:.85rem;color:#4b5563;border-left:3px solid #FF6B35}.violation-time{color:#6b7280;font-size:.85rem}@media (max-width: 400px){.promise-rate-main{padding:1rem .75rem}.kpi-summary-grid{grid-template-columns:repeat(3,1fr);gap:.5rem}.kpi-summary-card{padding:1rem}.kpi-summary-card p{font-size:.75rem;white-space:nowrap}.kpi-summary-card h3{font-size:1.3rem}.violation-list-header{font-size:.7rem;padding:.75rem .5rem;gap:.5rem}.violation-main-info{font-size:.8rem;gap:.5rem}.violation-item{padding:.75rem .5rem}.violation-type{font-size:.7rem;padding:.2rem .4rem;white-space:nowrap}.violation-note{font-size:.8rem;padding:.5rem}}.trainer-member-violations-page{background-color:#fff;min-height:100vh;max-width:480px;margin:0 auto}.violations-header{background-color:#fff;display:flex;align-items:center;padding:1rem;border-bottom:1px solid #f0f0f0;position:relative}.violations-header h1{margin:0;font-size:1.1rem;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.violations-main{padding:1.5rem 1rem}.violations-summary{background-color:#fff;border-radius:16px;padding:1.5rem;margin-bottom:1.5rem;border:1px solid #E5E7EB;text-align:center}.violations-summary h2{margin:0 0 .5rem;font-size:1.2rem;font-weight:600;color:#374151}.violations-summary p{margin:0;font-size:.9rem;color:#6b7280}.violations-table-container{background-color:#fff;border-radius:12px;border:1px solid #E5E7EB;overflow:hidden}.no-violations{background-color:#f9fafb;border-radius:12px;padding:2rem;text-align:center;border:1px solid #F3F4F6}.no-violations p{margin:0;color:#6b7280;font-size:.9rem}.violations-table{width:100%}.table-header{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;background-color:#f9fafb;border-bottom:1px solid #E5E7EB}.header-cell{padding:1rem .75rem;font-weight:600;font-size:.85rem;color:#374151;text-align:center;border-right:1px solid #E5E7EB}.header-cell:last-child{border-right:none}.table-body{display:flex;flex-direction:column}.table-row{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;border-bottom:1px solid #F3F4F6;transition:background-color .2s}.table-row:hover{background-color:#f9fafb}.table-row:last-child{border-bottom:none}.table-cell{padding:1rem .75rem;display:flex;align-items:center;justify-content:center;border-right:1px solid #F3F4F6;font-size:.85rem}.table-cell:last-child{border-right:none}.date-cell{flex-direction:column;align-items:center;gap:.25rem}.date-info{display:flex;flex-direction:column;align-items:center;gap:.25rem}.date-main{font-weight:500;color:#374151;font-size:.85rem}.date-time{font-size:.75rem;color:#6b7280}.status-cell{justify-content:center}.status-text{font-size:.85rem;font-weight:600}.member-cell{justify-content:center}.member-name-table{font-weight:500;color:#111827;font-size:.85rem;text-align:center}.detail-cell{justify-content:center;text-align:center}.detail-text{font-size:.8rem;color:#6b7280;font-weight:400;word-break:break-word;text-align:center}.violations-date-navigator{display:flex;justify-content:center;align-items:center;margin-bottom:1.5rem;font-size:1.1rem;font-weight:600;gap:1rem}.violations-date-navigator .nav-arrow{background-color:#fff;border:1px solid #E5E7EB;border-radius:50%;color:#4b5563;cursor:pointer;display:flex;align-items:center;justify-content:center;width:32px;height:32px;transition:all .2s}.violations-date-navigator .nav-arrow:hover{color:#ff6b35;border-color:#ff6b35}@media (max-width: 400px){.violations-main{padding:1.5rem .5rem}.table-header,.table-row{grid-template-columns:1.2fr 1fr 1fr 1fr;gap:.25rem}.table-cell,.header-cell{padding:.75rem .25rem;font-size:.75rem;word-break:keep-all}.date-main{font-size:.75rem}.date-time{font-size:.7rem}.status-text,.member-name-table{font-size:.75rem}.detail-text{font-size:.7rem}}.member-registration-detail-page{background-color:#fff;min-height:100vh;max-width:480px;margin:0 auto}.registration-header{background-color:#fff;display:flex;align-items:center;padding:1rem;border-bottom:1px solid #f0f0f0;position:relative}.registration-header h1{margin:0;font-size:1.1rem;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.registration-main{padding:1.5rem 1rem}.registration-summary{background-color:#fff;border-radius:16px;padding:1.5rem;margin-bottom:1.5rem;border:1px solid #E5E7EB}.registration-summary h2{margin:0 0 1rem;font-size:1.2rem;font-weight:600;color:#374151;text-align:center}.summary-stats{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.stat-item{display:flex;flex-direction:column;align-items:center;padding:1rem;border-radius:12px;border:1px solid #E5E7EB}.stat-item.new{background-color:#f0fdf4;border-color:#bbf7d0}.stat-item.renewal{background-color:#eff6ff;border-color:#bfdbfe}.stat-label{font-size:.85rem;color:#6b7280;margin-bottom:.5rem}.stat-value{font-size:1.25rem;font-weight:600;color:#111827}.stat-item.new .stat-value{color:#059669}.stat-item.renewal .stat-value{color:#2563eb}.registration-list-container{background-color:#fff;border-radius:12px;border:1px solid #E5E7EB;overflow:hidden}.no-registrations{background-color:#f9fafb;border-radius:12px;padding:2rem;text-align:center;border:1px solid #F3F4F6}.no-registrations p{margin:0;color:#6b7280;font-size:.9rem}.registration-list{display:flex;flex-direction:column}.registration-card{border-bottom:1px solid #F3F4F6;padding:1.25rem;transition:background-color .2s}.registration-card:hover{background-color:#f9fafb}.registration-card:last-child{border-bottom:none}.card-header{margin-bottom:1rem}.member-info{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.member-name-section{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.member-icon{color:#6b7280;font-size:1rem;flex-shrink:0}.member-name{font-weight:600;color:#111827;font-size:1rem;flex-shrink:0}.shared-indicator{font-size:.75rem;color:#ff6b35;background-color:#fff3e0;padding:.25rem .5rem;border-radius:8px;border:1px solid #FFCC99;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.registration-type{font-size:.75rem;font-weight:600;padding:.25rem .75rem;border-radius:12px;white-space:nowrap;flex-shrink:0}.card-body{display:flex;flex-direction:column;gap:1rem}.registration-detail{display:flex;align-items:center;gap:.5rem}.detail-icon{color:#6b7280;font-size:.9rem}.detail-text{font-size:.9rem;color:#6b7280}.contract-info{display:flex;flex-direction:column;gap:.5rem;background-color:#f9fafb;padding:1rem;border-radius:8px}.info-row{display:flex;justify-content:space-between;align-items:center}.info-label{font-size:.85rem;color:#6b7280;font-weight:500}.info-value{font-size:.85rem;color:#111827;font-weight:600}.info-value.shared{color:#ff6b35;background-color:#fff3e0;padding:.2rem .5rem;border-radius:6px;font-size:.75rem;border:1px solid #FFCC99}.registration-date-navigator{display:flex;justify-content:center;align-items:center;margin:1.5rem 0;font-size:1.1rem;font-weight:600;gap:1rem}.registration-date-navigator .nav-arrow{background-color:#fff;border:1px solid #E5E7EB;border-radius:50%;color:#4b5563;cursor:pointer;display:flex;align-items:center;justify-content:center;width:32px;height:32px;transition:all .2s}.registration-date-navigator .nav-arrow:hover{color:#ff6b35;border-color:#ff6b35}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem}.loading-spinner{width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid #FF6B35;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.loading-container p{color:#6b7280;font-size:.9rem;margin:0}.back-button{background:none;border:none;cursor:pointer;color:#374151;display:flex;align-items:center;justify-content:center;padding:.5rem;border-radius:8px;transition:background-color .2s}.back-button:hover{background-color:#f9fafb}@media (max-width: 400px){.registration-main{padding:1rem .75rem}.registration-summary{padding:1.25rem}.registration-summary h2{font-size:1.1rem}.stat-label{font-size:.8rem}.stat-value{font-size:1.1rem}.registration-card{padding:1rem}.member-info{gap:.5rem}.member-name{font-size:.9rem}.shared-indicator{font-size:.7rem;padding:.2rem .4rem}.registration-type{font-size:.7rem;padding:.2rem .6rem}.detail-text{font-size:.85rem}.info-label,.info-value{font-size:.8rem}}.qr-scanner-page{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000;color:#fff;display:flex;flex-direction:column;z-index:1000}.qr-header{display:grid;grid-template-columns:50px 1fr 50px;align-items:center;padding:1rem;background-color:#00000080;position:relative;z-index:1;width:100%;box-sizing:border-box}.qr-header h1{grid-column:2;text-align:center;font-size:1.25rem;font-weight:600;margin:0}.back-button{grid-column:1;justify-self:start}.qr-main{flex-grow:1;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;overflow:hidden;padding:1rem}#trainer-qr-reader{width:100%;max-width:500px;margin:0 auto;aspect-ratio:1 / 1;overflow:hidden;border-radius:12px;border:2px solid rgba(255,255,255,.2)}#trainer-qr-reader video{width:100%!important;height:100%!important;object-fit:cover}.qr-main p{background-color:#00000080;padding:.5rem 1rem;border-radius:8px;position:relative;z-index:1;margin-bottom:20px}.scanner-footer{padding:1rem;background-color:#00000080;width:100%;text-align:center;position:relative;z-index:1}.cancel-btn{background-color:#ef4444;color:#fff;border:none;padding:.75rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s}.cancel-btn:disabled{background-color:#9ca3af;cursor:not-allowed}.earnings-detail-page{background-color:#fff;min-height:100vh;max-width:480px;margin:0 auto}.detail-header{background-color:#fff;display:flex;align-items:center;padding:1rem;border-bottom:1px solid #f0f0f0;position:relative}.detail-header h1{margin:0;font-size:1.1rem;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.detail-main{padding:1.5rem 1rem}.total-summary-card{background-color:#fff;border-radius:16px;padding:1.5rem;margin-bottom:2rem;border:1px solid #E5E7EB;display:flex;justify-content:space-between;align-items:baseline}.total-label{font-size:1rem;font-weight:600;color:#374151}.total-value{font-size:1.5rem;font-weight:700;color:#ff6b35}.total-session-count{font-size:.9rem;font-weight:500;color:#4b5563}.earnings-date-navigator{display:flex;justify-content:center;align-items:center;margin-bottom:2rem;font-size:1.1rem;font-weight:600;gap:1rem}.earnings-date-navigator .nav-arrow{background-color:#fff;border:1px solid #E5E7EB;border-radius:50%;color:#4b5563;cursor:pointer;display:flex;align-items:center;justify-content:center;width:32px;height:32px;transition:all .2s}.earnings-date-navigator .nav-arrow:hover{color:#ff6b35;border-color:#ff6b35}.member-list-container{margin-top:2rem}.member-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:0 1rem}.member-list-header h2{margin:0;font-size:1.2rem;font-weight:600}.list-controls{position:relative}.sort-dropdown{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem;border:1px solid #E5E7EB;border-radius:8px;font-size:.85rem;background-color:#fff;cursor:pointer}.sort-options{position:absolute;top:100%;right:0;background-color:#fff;border:1px solid #E5E7EB;border-radius:8px;padding:.5rem;margin-top:.5rem;min-width:150px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;z-index:10}.sort-option{padding:.5rem .75rem;border-radius:6px;cursor:pointer;font-size:.85rem;white-space:nowrap}.sort-option:hover{background-color:#f3f4f6}.desktop-only{display:block}.mobile-only{display:none}.member-card{background-color:#fff;border-radius:12px;padding:1rem 1.25rem;border:1px solid #E5E7EB;display:grid;grid-template-columns:2fr 1.5fr 3.5fr;align-items:center;gap:.5rem}.member-name{font-weight:600;color:#374151;font-size:1rem;text-align:left;background:none!important;padding:0}.session-count{font-size:.9rem;color:#6b7280;text-align:center}.earnings-value{font-weight:600;font-size:1.1rem;color:#1f2937;text-align:right}.no-data-message,.loading-container{text-align:center;padding:4rem 0;color:#6b7280}@media screen and (max-width: 400px){.desktop-only{display:none}.mobile-only{display:block}.control-icon-btn{background:none;border:1px solid #E5E7EB;border-radius:8px;padding:.5rem;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:#4b5563;cursor:pointer}.detail-main{padding:1.5rem .75rem}.total-summary-card{padding:1.25rem;gap:.5rem}.total-label{font-size:.9rem}.total-session-count{font-size:.8rem}.total-value{font-size:1.2rem}.member-card{padding:1rem;gap:.25rem;grid-template-columns:1.8fr 1.2fr 3fr}.member-name{font-size:.9rem}.session-count{font-size:.8rem}.earnings-value{font-size:1rem}}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa}.admin-dashboard{background-color:#fff;padding:3rem 1.5rem;height:100vh;overflow-y:auto;box-sizing:border-box}.dashboard-main{display:flex;flex-direction:column;gap:1.25rem}.dashboard-header{display:flex;align-items:center;padding:.5rem 0;height:60px;justify-content:space-between}.logo-img{height:28px;width:auto}.admin-info span{font-weight:600;font-size:1.25rem}.header-icons{display:flex;align-items:center;gap:1.5rem;margin-left:auto}.user-menu-container{position:relative}.dropdown-menu{position:absolute;top:100%;right:0;background-color:#fff;border-radius:8px;box-shadow:0 4px 12px #0000001a;border:1px solid #F3F4F6;padding:.5rem;margin-top:.5rem;z-index:10}.logout-button{background:none;border:none;padding:.5rem 1rem;width:100%;text-align:left;cursor:pointer;font-size:.95rem;border-radius:4px}.logout-button:hover{background-color:#f9fafb}.icon{font-size:1.5rem;color:#4b5563;cursor:pointer}.icon-background{width:36px;height:36px;background-color:#f0f2f5;border-radius:50%;display:flex;justify-content:center;align-items:center}.dashboard-title{padding:.5rem}.dashboard-title h2{margin:0;font-size:1.75rem;font-weight:700}.dashboard-title p{margin:.5rem 0 0;color:#6b7280;font-size:1rem}.date-navigator{display:flex;justify-content:space-between;align-items:center;font-size:1.1rem;font-weight:600;padding:1.25rem .5rem}.nav-arrow{cursor:pointer;color:#374151}.nav-arrow:hover{color:#000}.kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:2rem}.kpi-card{background-color:#fff;padding:1.5rem 1rem;border-radius:16px;text-align:center;border:1px solid #E5E7EB}.kpi-card p{margin:0;color:#6b7280;font-size:.9rem;font-weight:500}.kpi-card h3{margin:.5rem 0 0;font-size:2.5rem;font-weight:700}.text-orange{color:#f59e0b}.text-green{color:#10b981}.chart-section{padding-top:1.5rem}.section-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-bottom:1.5rem}.section-header h4{grid-column:2;margin:0;font-size:1.1rem;font-weight:600}.view-all-btn{grid-column:3;justify-self:end;background:#f3f4f6;border:none;border-radius:8px;padding:.5rem .75rem;cursor:pointer;display:flex;align-items:center;gap:.25rem;font-size:.85rem;font-weight:500;color:#4b5563}.bar-chart{display:flex;justify-content:space-around;align-items:flex-end;height:150px;margin-bottom:1rem}.bar-item{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:40px}.bar-wrapper{width:100%;height:100%;display:flex;align-items:flex-end;background-color:#e5e7eb;border-radius:6px;overflow:hidden}.bar{width:100%;background-color:#818cf8;border-radius:6px 6px 0 0;transition:height .3s ease-in-out}.bar-item span{font-size:.8rem;color:#6b7280}.bar-amount{font-size:.8rem;color:#111827;font-weight:600}.dashboard-card{background-color:#fff;padding:1rem;border-radius:16px;border:1px solid #E5E7EB;margin-top:1.5rem}.dashboard-card:first-of-type{margin-top:0}.dashboard-card h4{margin:0 0 1.5rem;font-size:1.1rem;font-weight:600}.progress-item{display:flex;align-items:center;margin-bottom:12px;gap:12px}.progress-item:last-child{margin-bottom:0}.progress-item span:first-child{width:50px;font-weight:500}.progress-bar-container{flex-grow:1;height:10px;background-color:#e9ecef;border-radius:5px;overflow:hidden}.progress-bar{height:100%;background-color:#f97316;border-radius:5px;transition:width .3s ease-in-out}.trainer-rate{width:40px;text-align:right;font-weight:700}.detail-view-button{padding:4px 12px;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;font-size:12px;font-weight:500;color:#495057;cursor:pointer;transition:background-color .2s;white-space:nowrap}.detail-view-button:hover{background-color:#e9ecef}.clickable{cursor:pointer}.clickable:hover{background-color:#f8f9fa}.total-classes-content{display:flex;align-items:center;gap:1rem}.content-icon{font-size:2rem;color:var(--primary-color)}.content-main-text{font-size:2rem;font-weight:700}.content-description{color:#6b7280;font-size:.9rem;margin:.75rem 0 0}.management-link{display:flex;align-items:center;padding:1rem;background-color:#fff;border-radius:12px;margin-bottom:.75rem;cursor:pointer;transition:background-color .2s;border:1px solid #E5E7EB}.management-link:hover{background-color:#f9fafb}.management-link:last-child{margin-bottom:0}.link-icon{font-size:1.25rem;margin-right:1rem;color:var(--secondary-color)}.management-link span{flex-grow:1;font-weight:500}.arrow-icon{font-size:1.2rem;color:#9ca3af}.member-list{display:flex;flex-direction:column;gap:1rem}.member-item{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;border-bottom:1px solid #F3F4F6}.member-item:last-child{border-bottom:none;padding-bottom:0}.member-info{display:flex;align-items:center;gap:.75rem;flex-grow:1}.member-info h5{margin:0;font-weight:600;font-size:1rem}.member-info p{margin:0;color:#6b7280;font-size:.9rem}.member-details{display:flex;align-items:center;gap:.75rem;margin-top:0}.remaining-pt{font-size:.85rem;color:#4b5563;margin:0}.detail-item{display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:#4b5563}.detail-item svg{color:#9ca3af}.trainer-badge,.status-badge{padding:.35rem .75rem;border-radius:16px;font-size:.8rem;font-weight:600}.dashboard-summary .date-navigator{display:flex;justify-content:center;align-items:center;margin-bottom:2rem;font-size:1.1rem;font-weight:500}.dashboard-summary .date-navigator .nav-arrow{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:0 1rem;color:#4b5563;display:flex;align-items:center}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:#fff;padding:2rem;border-radius:16px;width:90%;max-width:400px;box-shadow:0 4px 12px #0000001a}.modal-content h2{font-size:1.5rem;font-weight:700;text-align:center;margin:0 0 2rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-size:.9rem;font-weight:600;margin-bottom:.5rem}.form-group input{width:100%;padding:.75rem 1rem;border:1px solid #E5E7EB;border-radius:8px;font-size:1rem;box-sizing:border-box}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.generated-link-container{display:flex;flex-direction:column;gap:15px}.generated-link-container p{margin:0;color:#666;font-size:14px;line-height:1.5}.link-display{display:flex;gap:10px}.link-display input[type=text]{flex-grow:1;padding:10px;border:1px solid #ccc;border-radius:4px;background-color:#f8f8f8;color:#333;font-size:14px;min-width:0}.copy-button{padding:10px 15px;border:none;background-color:#56f;color:#fff;border-radius:4px;cursor:pointer;font-weight:700;white-space:nowrap}.copy-button:hover{background-color:#45c}.cancel-button,.submit-button{padding:12px 20px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer}.cancel-button{background-color:transparent;color:#dc2626}.submit-button{background-color:transparent;color:#2563eb}.sales-chart-container{width:100%;max-width:1536px;margin:0 auto;padding:0;background:transparent;border-radius:0;border:none}.header-section{margin-bottom:.75rem}.header-content{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.main-title{font-size:1.25rem;font-weight:700;color:#1f2937;margin-bottom:.25rem;padding-left:8px}.subtitle{color:#6b7280}.button-group,.edit-buttons{display:flex;gap:.5rem}.primary-button{background:#f97316;color:#fff;padding:.35rem .75rem;border-radius:9999px;border:none;cursor:pointer;transition:background-color .2s;font-size:.85rem}.primary-button:hover{background:#ea580c}.save-button{background:#16a34a;color:#fff;padding:.5rem 1rem;border-radius:8px;border:none;cursor:pointer}.cancel-button{background:#6b7280;color:#fff;padding:.5rem 1rem;border-radius:8px;border:none;cursor:pointer}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:50}.modal-content{background:#fff;border-radius:8px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;padding:1.25rem;width:100%;max-width:40rem;margin:1rem}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.modal-title{font-size:1.25rem;font-weight:700;color:#1f2937}.close-button{color:#9ca3af;font-size:1.5rem;background:none;border:none;cursor:pointer}.close-button:hover{color:#6b7280}.edit-grid{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width: 768px){.edit-grid{grid-template-columns:repeat(3,1fr)}}.edit-card{background:#f9fafb;padding:.75rem;border-radius:8px;border:1px solid #E5E7EB}.month-title{font-weight:600;color:#1f2937;margin-bottom:.75rem;text-align:center}.input-label{display:block;font-size:.875rem;font-weight:500;color:#6b7280;margin-bottom:.5rem}.target-input{width:100%;padding:.75rem;border:1px solid #D1D5DB;border-radius:8px;text-align:center;font-size:1.125rem}.target-input:focus{outline:none;border-color:transparent;box-shadow:0 0 0 2px #f97316}.current-value{font-size:.75rem;color:#6b7280;margin-top:.5rem;text-align:center}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.cancel-modal-button{padding:.5rem 1rem;color:#6b7280;border:1px solid #D1D5DB;background:#fff;border-radius:8px;cursor:pointer}.cancel-modal-button:hover{background:#f9fafb}.save-modal-button{padding:.5rem 1.5rem;background:#f97316;color:#fff;border:none;border-radius:8px;cursor:pointer}.save-modal-button:hover{background:#ea580c}.chart-container{background:transparent;padding:0;border-radius:0}.chart-inner{max-width:860px;margin:0 auto;padding:8px 12px}.custom-tooltip{background:#fff;padding:.75rem;border:1px solid #E5E7EB;border-radius:4px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.tooltip-label{font-weight:600;color:#1f2937;margin:0 0 .25rem}.tooltip-entry{font-size:.875rem;margin:0}.tooltip-achievement{font-size:.875rem;color:#6b7280;margin-top:.25rem}.stats-grid{margin:1rem auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;max-width:860px}.stat-card{background:transparent;padding:.5rem;border-radius:8px;text-align:center}.stat-card.blue,.stat-card.green,.stat-card.purple{background:transparent}.stat-title{font-weight:600;margin-bottom:.25rem;font-size:.9rem;color:#6b7280}.stat-card.blue .stat-title,.stat-card.green .stat-title,.stat-card.purple .stat-title{color:#6b7280}.stat-value{margin:0;font-size:1.5rem;font-weight:700}.detail-link-container{text-align:right;margin:1rem 0}.detail-link-button{background:none;border:none;color:#f97316;font-weight:600;cursor:pointer;font-size:.9rem;padding:.5rem;border-radius:8px;transition:background-color .2s}.detail-link-button:hover{background-color:#fff7ed}@media (max-width: 768px){.stat-value{font-size:2.5rem}}.stat-card.blue .stat-value,.stat-card.green .stat-value,.stat-card.purple .stat-value{color:#f97316}@media (max-width: 768px){.header-content{flex-direction:column;align-items:flex-start;gap:1rem}.stats-grid{grid-template-columns:1fr}.modal-content{margin:.5rem;padding:1rem}}.modal-backdrop{position:fixed;inset:0;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:#fff;padding:2rem;border-radius:16px;width:90%;max-width:480px;box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.modal-content h2{margin:0 0 .5rem;font-size:1.5rem;color:#333}.modal-content .section-title{margin-top:2rem;font-size:1.2rem;color:#333;padding-bottom:.5rem;border-bottom:1px solid #eee;margin-bottom:1rem}.modal-description{font-size:.9rem;color:#666;margin:0 0 1.5rem}.settings-form{display:flex;flex-direction:column;gap:1.25rem}.input-group{display:flex;flex-direction:column}.input-group label{font-size:.875rem;font-weight:500;margin-bottom:.5rem;color:#374151}.input-group input{padding:.75rem 1rem;border:1px solid #D1D5DB;border-radius:8px;font-size:1rem;transition:border-color .2s,box-shadow .2s}.input-group input:focus{outline:none;border-color:#f97316;box-shadow:0 0 0 2px #f9731633}.modal-actions .btn-cancel,.modal-actions .btn-save{padding:.6rem 1.25rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:background-color .2s}.modal-actions .btn-cancel{background-color:#e5e7eb;color:#4b5563}.modal-actions .btn-cancel:hover{background-color:#d1d5db}.modal-actions .btn-save{background-color:#f97316;color:#fff}.modal-actions .btn-save:hover{background-color:#ea580c}.modal-actions .btn-save:disabled{background-color:#fdba74;cursor:not-allowed}.trainer-management-page{background-color:#f9fafb;min-height:100vh;padding:1rem;box-sizing:border-box}.pending-approval-btn{background-color:#fef2f2;color:#dc2626;border:none;border-radius:8px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;position:absolute;right:0}.pending-badge{background-color:#dc2626;color:#fff;border-radius:50%;width:20px;height:20px;display:flex;justify-content:center;align-items:center;font-size:.75rem}.trainer-list{background-color:#fff;border-radius:16px;padding:1rem}.list-header,.list-item{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;align-items:center;padding:.75rem .5rem;font-size:.8rem;color:#6b7280}.list-item .trainer-info{display:flex;flex-direction:column}.list-item .trainer-info .name{font-size:1rem;font-weight:600;color:#1f2937}.list-item .trainer-info .email{font-size:.85rem;color:#6b7280;margin-top:.1rem}.list-item .member-count{font-weight:500;color:#1f2937}.search-bar-container{margin:1.5rem 0;position:relative}.search-bar-container input::placeholder{color:#9ca3af}.member-list{background-color:#fff;border-radius:16px;padding:1rem}.list-header,.list-item{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;align-items:center;padding:.75rem .5rem;font-size:.8rem;color:#6b7280}.list-header{border-bottom:1px solid #F3F4F6;font-weight:500}.list-item{border-bottom:1px solid #F3F4F6}.list-item:last-child{border-bottom:none}.list-item .member-info{display:flex;flex-direction:column;align-items:flex-start}.list-item .name{font-size:1rem;font-weight:600;color:#1f2937;text-align:left;line-height:1}.list-item .email{font-size:.85rem;color:#6b7280;margin-top:-6px;line-height:1}.trainer-col,.remaining-col{font-weight:500;color:#1f2937}.trainer-badge{padding:.35rem .75rem;border-radius:16px;font-size:.8rem;font-weight:600}.status-badge{padding:.35rem .75rem;border-radius:16px;font-size:.8rem;font-weight:600;display:inline-block}.status-badge.active{background-color:#d1fae5;color:#065f46}.status-badge.inactive{background-color:#f3f4f6;color:#4b5563}.manage-button{padding:.4rem .8rem;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:.8rem}.manage-button.activate{background-color:#dbeafe;color:#1e40af}.manage-button.deactivate{background-color:#fef2f2;color:#991b1b}.admin-page .member-list .list-header,.admin-page .member-list .list-item{grid-template-columns:2fr 1.5fr 1fr 1fr 1fr 1fr}.admin-page .member-list .contract-status-badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.8rem;font-weight:500;text-align:center;white-space:nowrap;cursor:help}.admin-page .member-list .contract-status-badge.valid{background-color:#d1fae5;color:#065f46}.admin-page .member-list .contract-status-badge.expiring{background-color:#ffedd5;color:#9a3412}.admin-page .member-list .contract-status-badge.expired{background-color:#fee2e2;color:#991b1b}.admin-page .member-list .contract-status-badge.none{background-color:#e5e7eb;color:#4b5563}.sessions-list .list-header,.sessions-list .list-item{display:grid;grid-template-columns:1.5fr 1.5fr 2.5fr 1.5fr 1.5fr;align-items:center;padding:.75rem .5rem;font-size:.85rem;color:#6b7280;gap:1rem}.name{font-size:.95rem;font-weight:600;color:#1f2937;text-align:left}.col-datetime{color:#374151;text-align:left}.col-status,.list-header .col-status,.col-manage,.list-header .col-manage{display:flex;justify-content:center;align-items:center;gap:.5rem}.page-header{display:flex;align-items:center;position:relative;justify-content:center;padding:.5rem 0;margin-bottom:1rem}.page-header .back-button{position:absolute;left:0;background:none;border:none;font-size:1.75rem;cursor:pointer;color:#4b5563}.page-header h1{margin:0;font-size:1.1rem;font-weight:600;text-align:center;flex-grow:1}.page-header,.page-header:before,.page-header:after{border:none!important;box-shadow:none!important;text-decoration:none!important;background-image:none!important}.search-bar-container{margin:1rem 0;position:relative}.search-bar-container .search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:#9ca3af;font-size:1.25rem}.search-bar-container input{width:100%;padding:1rem 1rem 1rem 3.5rem;border-radius:12px;border:1px solid #E5E7EB;background-color:#fff;font-size:1rem;box-sizing:border-box}.filters-row{display:flex;gap:8px;align-items:center;margin:.5rem 0 1rem;flex-wrap:wrap}.filters-row .date-input{padding:.5rem .75rem;border:1px solid #E5E7EB;border-radius:8px;background:#fff}.filters-row .filter-button{background-color:#f3f4f6;color:#4b5563;border:none;border-radius:8px;padding:.5rem .75rem;font-size:.9rem;font-weight:600;cursor:pointer}.filters-row .tilde{color:#6b7280}.preset-row{display:flex;gap:8px;margin:.5rem 0;flex-wrap:wrap}.preset-btn{background:#f3f4f6;color:#4b5563;border:none;border-radius:9999px;padding:.4rem .9rem;font-size:.85rem;font-weight:600;cursor:pointer}.preset-btn.active{background:#dbeafe;color:#1e40af}.sessions-list{background-color:#fff;border-radius:16px;padding:1rem}.sessions-list .list-header,.sessions-list .list-item{display:grid;grid-template-columns:2fr 2fr 1.2fr 2fr 1.5fr 1fr 1fr;align-items:center;padding:.75rem .5rem;font-size:.85rem;color:#6b7280}.sessions-list .list-header{border-bottom:1px solid #F3F4F6;font-weight:500}.sessions-list .list-item{border-bottom:1px solid #F3F4F6}.sessions-list .list-item:last-child{border-bottom:none}.member-info{display:flex;align-items:center;min-width:0}.name{font-size:1rem;font-weight:600;color:#1f2937;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.date-time{color:#374151}.shared-contract-badge{margin-left:8px;font-size:.8rem;color:#6b7280;font-weight:500;white-space:nowrap;flex-shrink:0}.type-badge{padding:.35rem .75rem;border-radius:16px;font-size:.8rem;font-weight:600;display:inline-block}.type-badge.new{background-color:#e0f2fe;color:#0c4a6e}.type-badge.renewal{background-color:#d1fae5;color:#065f46}.status-badge{padding:.35rem .75rem;border-radius:16px;font-size:.8rem;font-weight:600;display:inline-block;background-color:#f3f4f6;color:#4b5563}.status-badge.completed{background-color:#d1fae5;color:#065f46}.status-badge.confirmed{background-color:#dbeafe;color:#1e40af}.status-badge.cancelled{background-color:#fee2e2;color:#991b1b}.status-badge.absent,.status-badge.no-show{background-color:#fef3c7;color:#92400e}.manage-button{background-color:#f3f4f6;color:#4b5563;border:none;border-radius:8px;padding:.5rem .75rem;font-size:.8rem;font-weight:500;cursor:pointer;transition:background-color .2s,color .2s}.manage-button.edit{background-color:#dbeafe;color:#1e40af}.manage-button.delete{background-color:#fef2f2;color:#dc2626}.modal-overlay{position:fixed;inset:0;background:#0006;display:flex;justify-content:center;align-items:center}.modal-card{background:#fff;padding:1rem;border-radius:12px;width:360px;display:grid;gap:12px}.modal-card h3{margin:0 0 4px}.modal-field{display:grid;gap:6px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.admin-page{background-color:#f8f9fa;min-height:100vh}.admin-main-content{max-width:1200px;margin:0 auto;padding:2rem}.trainer-approval-page{padding:1rem;background-color:#fff;min-height:100vh}.page-header{display:flex;align-items:center;margin-bottom:2rem;position:relative;justify-content:center}.back-button{position:absolute;left:0;background:none;border:none;font-size:1.75rem;cursor:pointer;color:#4b5563}.page-header h1{font-size:1.25rem;font-weight:600;margin:0}.approval-list-container{display:flex;flex-direction:column;gap:1rem}.approval-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background-color:#f9fafb;border-radius:12px;border:1px solid #E5E7EB}.trainer-details{display:flex;flex-direction:column}.trainer-details .trainer-name{font-weight:600}.trainer-details .trainer-email{color:#6b7280;font-size:.9rem;margin-top:.25rem}.action-buttons{display:flex;gap:.75rem}.action-buttons button{display:flex;justify-content:center;align-items:center;width:40px;height:40px;border-radius:50%;border:none;cursor:pointer;transition:background-color .2s;font-size:1.2rem}.approve-btn{background-color:#d1fae5;color:#065f46}.approve-btn:hover{background-color:#a7f3d0}.reject-btn{background-color:#fee2e2;color:#991b1b}.reject-btn:hover{background-color:#fecaca}.no-pending-message{text-align:center;color:#6b7280;padding:2rem;font-size:1rem}.admin-page .page-header{display:flex;align-items:center;margin-bottom:2rem;padding:0 1rem}.admin-page .back-button{background:none;border:none;cursor:pointer;padding:0;margin-right:1rem;display:flex;align-items:center;justify-content:center}.admin-page .back-button svg{width:24px;height:24px;color:#374151}.admin-page .page-header h1{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0}.admin-page .content-wrapper{padding:0 1rem}.admin-page .date-navigator{display:flex;justify-content:center;align-items:center;margin-bottom:2rem;font-size:1.1rem;font-weight:500}.admin-page .date-navigator .nav-arrow{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:0 1rem;color:#4b5563;display:flex;align-items:center}.admin-page .kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:2.5rem}.admin-page .kpi-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem;text-align:center;box-shadow:0 1px 2px #0000000d}.admin-page .kpi-card p{margin:0 0 .5rem;font-size:.9rem;color:#6b7280}.admin-page .kpi-card h3{margin:0;font-size:2rem;font-weight:700;color:#1f2937}.admin-page .violations-list-container{background-color:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.admin-page .list-title{font-size:1.25rem;font-weight:600;margin-bottom:1.5rem}.admin-page .violations-list-header{display:grid;grid-template-columns:1fr 1.5fr 1fr 1fr auto;gap:1rem;padding:.75rem 0;border-bottom:1px solid #e5e7eb;font-weight:600;color:#6b7280;font-size:.85rem;text-align:left}.admin-page .violation-item{display:grid;grid-template-columns:1fr 1.5fr 1fr 1fr auto;align-items:center;padding:1rem 0;border-bottom:1px solid #f3f4f6;gap:1rem}.admin-page .violation-item:last-child{border-bottom:none}.admin-page .item-column{font-size:.9rem;color:#4b5563}.admin-page .item-column.date-time{display:flex;flex-direction:column}.admin-page .item-column.violation-type{padding:.25rem .75rem;border-radius:8px;font-weight:500;text-align:center;white-space:nowrap;justify-self:start}.admin-page .item-column.violation-type.late{background-color:#feefc3;color:#92400e}.admin-page .item-column.violation-type.cancelled{background-color:#fee2e2;color:#991b1b}.admin-page .item-column.violation-type.absent{background:none;color:#991b1b}.admin-page .note-indicator{background-color:#e0e7ff;color:#3730a3;padding:.25rem .5rem;border-radius:6px;font-size:.75rem;font-weight:500;cursor:help}.admin-page .empty-state{text-align:center;padding:3rem 0;color:#9ca3af}.super-admin-page-header{margin-bottom:1rem}.super-admin-page-header h1{font-size:1.75rem;font-weight:700;color:#1f2937}.super-admin-page-header p{color:#6b7280;margin-top:.25rem;margin-bottom:1rem}.back-to-list-btn{background:none;border:none;color:#4f46e5;font-weight:500;cursor:pointer;margin-bottom:1rem;display:inline-block;padding:0}.back-to-list-btn:hover{text-decoration:underline}.tabs-nav{margin-top:1rem;border-bottom:1px solid #e5e7eb;display:flex;gap:2rem}.tabs-nav a{padding:.75rem .25rem;color:#6b7280;text-decoration:none;font-weight:500;border-bottom:2px solid transparent;transition:color .2s,border-color .2s;margin-bottom:-1px}.tabs-nav a:hover{color:#4f46e5}.tabs-nav a.active{color:#4f46e5;font-weight:600;border-bottom-color:#4f46e5}.tab-content{margin-top:2rem}.section-header{display:flex;justify-content:flex-end;align-items:center}.section-header h2{font-size:1.25rem;font-weight:700;color:#1f2937}.section-header p{color:#6b7280;margin-top:.25rem}.add-admin-btn{background-color:#4f46e5;color:#fff;font-weight:700;padding:.625rem 1.25rem;border:none;border-radius:.5rem;cursor:pointer;transition:background-color .2s;display:flex;align-items:center;gap:.5rem}.add-admin-btn:hover{background-color:#4338ca}.admin-list-card,.form-card,.list-card{margin-top:1.5rem;background-color:#fff;border-radius:.75rem;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;padding:2rem}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.card-header h3{font-weight:700;color:#1f2937}.card-header p{font-size:.875rem;color:#6b7280}.refresh-btn{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:#374151;background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;padding:.5rem 1rem;cursor:pointer;transition:background-color .2s}.refresh-btn:hover:not(:disabled){background-color:#f9fafb}.refresh-btn:disabled{opacity:.7;cursor:not-allowed}.refresh-icon{width:1rem;height:1rem;transition:transform .5s}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.admin-list-header,.admin-row{display:grid;grid-template-columns:3.5fr 2.5fr 1.5fr 1.5fr 2fr;gap:1rem;align-items:center}.admin-list-header{font-size:.75rem;font-weight:600;color:#6b7280;border-bottom:1px solid #e5e7eb;padding-bottom:.75rem}.admin-list-header .header-item{padding:0 .5rem}.admin-row{padding:1rem .5rem;border-bottom:1px solid #f3f4f6}.admin-info{display:flex;align-items:center}.admin-avatar{width:2.5rem;height:2.5rem;background-color:#e5e7eb;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#6b7280;margin-right:1rem;flex-shrink:0}.admin-name{font-weight:600;color:#1f2937}.admin-email{color:#6b7280;font-size:.875rem}.admin-role{font-size:.75rem;color:#9ca3af;margin-top:.25rem}.center-name{font-weight:500;color:#1f2937}.center-id{font-size:.75rem;color:#9ca3af}.status-badge{font-size:.75rem;font-weight:600;padding:.25rem .625rem;border-radius:9999px;display:inline-block}.status-badge.active{background-color:#dcfce7;color:#166534}.creation-date{color:#6b7280;font-size:.875rem}.action-buttons{display:flex;align-items:center;gap:.5rem}.edit-btn,.delete-btn{background:transparent;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;width:2.25rem;height:2.25rem;border-radius:50%;transition:background-color .2s,color .2s}.edit-btn{color:#4b5563}.edit-btn:hover{background-color:#e5e7eb;color:#111827}.delete-btn{color:#ef4444}.delete-btn:hover{background-color:#fee2e2;color:#b91c1c}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:#fff;padding:2rem;border-radius:.75rem;box-shadow:0 4px 6px #0000001a;width:100%;max-width:500px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.modal-header h2{font-size:1.25rem;font-weight:700;color:#1f2937}.close-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6b7280}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#374151}.form-group input,.form-group select{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:2rem}.edit-admin-modal .modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.edit-admin-modal .cancel-btn,.edit-admin-modal .save-btn{flex:initial;width:100%;padding:.625rem 1.25rem;border-radius:.5rem;font-weight:700;border:none;cursor:pointer;transition:background-color .2s;box-sizing:border-box;min-height:48px;display:inline-flex;align-items:center;justify-content:center;appearance:none}.edit-admin-modal .cancel-btn{background-color:#e5e7eb;color:#374151}.edit-admin-modal .cancel-btn:hover{background-color:#d1d5db}.edit-admin-modal .save-btn{background-color:#4f46e5;color:#fff}.edit-admin-modal .save-btn:hover{background-color:#4338ca}.add-modal-header-desc{text-align:center;margin-bottom:2rem;color:#6b7280;line-height:1.6}.add-modal-form .form-group-inline{display:flex;gap:1rem}.add-modal-form .form-group-inline .form-group{flex:1}.add-modal-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:2rem}.form-section-title{font-size:1.125rem;font-weight:600;color:#1f2937;margin-top:2rem;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid #e5e7eb}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.form-group-full{grid-column:span 2}.add-center-modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;z-index:1000}.add-center-modal-backdrop.open{opacity:1;visibility:visible}.add-center-modal-content{background-color:#fff;width:500px;max-height:90vh;overflow-y:auto;border-radius:8px;transform:scale(.95);opacity:0;transition:transform .3s ease-out,opacity .3s ease-out;padding:2rem;box-shadow:0 5px 15px #0003}.add-center-modal-content.open{transform:scale(1);opacity:1}.step-indicator{display:flex;align-items:center;font-size:.9rem;color:#6b7280}.step-indicator .step-arrow{margin:0 .5rem}.step-indicator span.active{font-weight:600;color:#1f2937}.modal-actions{display:flex;width:100%}.next-btn,.back-btn{padding:.75rem 1.5rem;border-radius:.375rem;border:1px solid #d1d5db;background-color:#fff;font-weight:500;cursor:pointer;transition:background-color .2s}.next-btn:hover,.back-btn:hover{background-color:#f9fafb}.next-btn{margin-left:auto}.center-list-page{padding:2rem}.center-list-page h1{font-size:1.75rem;font-weight:700;color:#1f2937;margin-bottom:.5rem}.page-header-container{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.add-center-btn{background-color:#4f46e5;color:#fff;font-weight:700;padding:.625rem 1.25rem;border:none;border-radius:.5rem;cursor:pointer;transition:background-color .2s;white-space:nowrap}.add-center-btn:hover{background-color:#4338ca}.center-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.center-card-wrapper{position:relative}.center-card{display:block;background-color:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 4px 6px #0000000d;transition:box-shadow .3s ease,transform .3s ease;text-decoration:none;color:inherit;height:100%}.center-card:hover{transform:translateY(-5px);box-shadow:0 10px 15px #0000001a}.center-card-name{font-size:1.25rem;font-weight:600;color:#1f2937;margin-top:0;margin-bottom:.5rem}.center-card-address{font-size:.9rem;color:#6b7280}.delete-center-btn{position:absolute;top:1rem;right:1rem;background:transparent;border:none;color:#9ca3af;cursor:pointer;padding:.5rem;border-radius:50%;transition:background-color .2s,color .2s}.delete-center-btn:hover{background-color:#fee2e2;color:#ef4444}.deleting-overlay{position:absolute;inset:0;background-color:#fffc;display:flex;justify-content:center;align-items:center;border-radius:8px;z-index:10;font-weight:600;color:#1f2937}.landing-root{position:relative;min-height:100vh;overflow:hidden;background:linear-gradient(135deg,#f8f9fa,#e9ecef,#dee2e6);color:#1f2937}.landing-root.fade-out{animation:fadeOutSoft .25s ease forwards}@keyframes fadeOutSoft{to{opacity:0}}.landing-bg{position:absolute;inset:0;opacity:.7;pointer-events:none}.landing-header{position:relative;padding-top:40px;z-index:2;width:100%;display:flex;justify-content:center;transform:translateY(80px)}.landing-logo-box{width:200px;height:100px;overflow:hidden;border-radius:12px}.landing-logo-img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;opacity:.95}.landing-hero{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 220px);padding:4px 20px 0;text-align:center;transform:translateY(52px);margin-top:-40px}.headline{font-size:clamp(14px,2.6vw,18px);font-weight:500;letter-spacing:.1px;margin:2px 0;color:#333;line-height:1;text-shadow:0 0 6px rgba(255,255,255,.55),0 0 2px rgba(255,255,255,.75)}.headline.second{margin-top:24px}.subcopy{margin:10px 0;line-height:1.4;opacity:.95;font-size:clamp(14px,2.6vw,18px);color:#333;text-shadow:0 0 6px rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.7)}.subcopy.small{opacity:.85;font-size:clamp(13px,2.4vw,16px)}.divider{width:64px;height:1px;background:#0000001f;margin:14px auto}.cta{margin-top:10px;padding:14px 24px;min-width:220px;min-height:48px;border:0;border-radius:12px;font-weight:700;font-size:16px;color:#fff;cursor:pointer;background:#ff6b35;box-shadow:0 8px 20px #ff6b3540;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}.cta:hover{transform:translateY(-1px);box-shadow:0 10px 24px #ff6b3559;filter:brightness(1.03)}.cta:focus{outline:3px solid #ffffff55;outline-offset:3px}.tagline-top{margin-top:8px;opacity:.9;font-size:clamp(14px,2.6vw,18px);letter-spacing:.2px;color:#374151;text-shadow:0 0 5px rgba(255,255,255,.45)}@media (max-width: 480px){.headline{text-shadow:0 0 5px rgba(255,255,255,.5),0 0 2px rgba(255,255,255,.65)}.subcopy{text-shadow:0 0 4px rgba(255,255,255,.45),0 0 1px rgba(255,255,255,.6)}}.mega{font-weight:800;letter-spacing:-.5px;margin:0;color:#111;text-shadow:none}.mega.make-your{font-size:clamp(64px,12vw,140px);line-height:.95;color:#fff;text-shadow:0 0 10px rgba(255,107,53,.18),0 0 24px rgba(255,107,53,.12),0 2px 12px rgba(255,107,53,.1)}.brand-logo-large{margin:0 0 8px;width:clamp(220px,40vw,520px);height:clamp(120px,20vw,260px);overflow:hidden;border-radius:14px}.brand-logo-large img{width:100%;height:100%;object-fit:cover;object-position:center 30%}.rotator{font-weight:900;font-size:clamp(48px,9vw,120px);line-height:1.1;display:flex;justify-content:flex-end;align-items:center;width:100%;height:100%;color:#ff6b35;padding-right:5%}.rotator>.text-rotate,.rotator>.text-rotate-lines{display:flex;width:100%;height:100%;justify-content:flex-end;align-items:center}.rotator .text-rotate-element{color:#ff6b35}.rotator-text.align-right{display:block;width:100%;text-align:right;color:#ff6b35;padding-right:0}.logo-crop{width:85%;height:85%;object-fit:cover;object-position:right 38%;display:block;margin-left:auto;clip-path:inset(6% 0 8% 0 round 6px)}.backdrop-inline{position:relative;display:inline;background:#ffffff61;box-decoration-break:clone;-webkit-box-decoration-break:clone;padding:2px 4px;border-radius:6px;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}@media (prefers-reduced-motion: reduce){.cta{transition:none}.landing-bg{display:none}}@media (max-width: 768px){.landing-logo-box{width:170px;height:85px}.landing-header{transform:translateY(18px)}.landing-hero{min-height:calc(100vh - 200px);transform:translateY(34px);margin-top:-12px}}@media (max-width: 480px){.landing-logo-box{width:130px;height:65px}.landing-header{transform:translateY(16px)}.landing-hero{min-height:calc(100vh - 180px);transform:translateY(26px);margin-top:-10px}}.text-rotate{display:flex;flex-wrap:wrap;white-space:pre-wrap;position:relative}.text-rotate-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-rotate-word{display:inline-flex}.text-rotate-lines{display:flex;flex-direction:column;width:100%}.text-rotate-element{display:inline-block}.text-rotate-space{white-space:pre}.trainer-sales-page{background-color:#fff;min-height:100vh}.main-content{max-width:800px;margin:0 auto;padding:2rem 1rem}.page-header{display:flex;align-items:center;position:relative;justify-content:center;margin-bottom:2rem}.page-header .back-button{position:absolute;left:0;background:none;border:none;font-size:1.75rem;cursor:pointer;color:#4b5563;display:flex;align-items:center}.page-header h1{margin:0;font-size:1.2rem;font-weight:600}.date-navigator{display:flex;justify-content:center;align-items:center;margin-bottom:2rem;font-size:1.1rem;font-weight:500}.date-navigator .nav-arrow{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:0 1rem;color:#4b5563;display:flex;align-items:center}.sales-list-container{background-color:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.sales-list .list-header,.sales-list .list-item{display:grid;grid-template-columns:.5fr 1.5fr 1.5fr 1.5fr 1fr;align-items:center;padding:1rem;gap:1rem;text-align:center}.sales-list .list-header{font-weight:600;color:#6b7280;border-bottom:2px solid #f3f4f6;font-size:.9rem}.sales-list .list-item{border-bottom:1px solid #f3f4f6}.sales-list .list-item:last-child{border-bottom:none}.sales-list .list-item.clickable{cursor:pointer;transition:background-color .2s}.sales-list .list-item.clickable:hover{background-color:#f8f9fa}.sales-list .col-trainer-name,.sales-list .trainer-name{text-align:left;font-weight:500;color:#1f2937}.sales-list .rank{font-weight:600;color:#4b5563}.sales-list .sales-amount{font-weight:600;color:#f97316}.sales-list .net-earnings{font-weight:600;color:#10b981}.no-data,.loading-text{text-align:center;padding:3rem 0;color:#6b7280;font-size:1rem}.trainer-sales-detail-page{background-color:#fff;min-height:100vh}.trainer-sales-detail-page .main-content{max-width:800px;margin:0 auto;padding:2rem 1rem}.trainer-sales-detail-page .page-header{display:flex;align-items:center;position:relative;justify-content:center;margin-bottom:.5rem}.trainer-sales-detail-page .page-header .back-button{position:absolute;left:0;background:none;border:none;font-size:1.75rem;cursor:pointer;color:#4b5563}.trainer-sales-detail-page .page-header h1{margin:0;font-size:1.2rem;font-weight:600}.trainer-sales-detail-page .page-subtitle{text-align:center;font-size:1rem;color:#6b7280;margin-bottom:2rem}.summary-section{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-bottom:2rem}.summary-card{background-color:#f8f9fa;border-radius:12px;padding:1.5rem;text-align:center;border:1px solid #E5E7EB}.summary-card p{margin:0 0 .5rem;font-size:.9rem;color:#4b5563;font-weight:500}.summary-card span{font-size:1.75rem;font-weight:700;color:#f97316}.detail-list-container{background-color:#fff;border-radius:16px;padding:1.5rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.detail-list .list-header,.detail-list .list-item{display:grid;grid-template-columns:2fr 1fr 1.5fr 1.5fr;align-items:center;padding:1rem;gap:1rem}.detail-list .list-header{font-weight:600;color:#6b7280;border-bottom:2px solid #f3f4f6;font-size:.9rem;text-align:right}.detail-list .list-header .col-member-name,.detail-list .list-header .col-session-count{text-align:left}.detail-list .list-item{border-bottom:1px solid #f3f4f6}.detail-list .list-item:last-child{border-bottom:none}.detail-list .member-name{text-align:left;font-weight:600;color:#1f2937}.detail-list .list-item .member-name{font-weight:500;display:flex;align-items:center;gap:.5rem}.detail-list .list-item .shared-info{display:flex;align-items:center;gap:.3rem;background-color:#eef2ff;color:#4338ca;padding:.2rem .6rem;border-radius:9999px;font-size:.8rem;font-weight:500;cursor:help}.detail-list .list-item .shared-info .partner-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px}.detail-list .list-item .session-count{font-size:.9rem;color:#6b7280;text-align:left}.detail-list .sales-amount,.detail-list .net-earning{font-weight:600;text-align:right}.detail-list .sales-amount{color:#374151}.detail-list .net-earning{color:#10b981}.detail-list .no-data,.loading-text{text-align:center;padding:3rem 0;color:#6b7280}.detail-list-container .list-controls{display:flex;justify-content:flex-end;margin-bottom:1rem}.detail-list-container .sort-dropdown-container{position:relative}.detail-list-container .sort-dropdown-button{display:flex;align-items:center;gap:.25rem;padding:.5rem .75rem;border:1px solid #E5E7EB;border-radius:8px;font-size:.85rem;background-color:#fff;cursor:pointer;color:#374151}.detail-list-container .sort-dropdown-menu{position:absolute;top:100%;right:0;background-color:#fff;border:1px solid #E5E7EB;border-radius:8px;padding:.5rem;margin-top:.5rem;min-width:160px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;z-index:10}.detail-list-container .sort-option{padding:.5rem .75rem;border-radius:6px;cursor:pointer;font-size:.85rem;white-space:nowrap}.detail-list-container .sort-option:hover{background-color:#f3f4f6}.completed-sessions-page{background-color:#fff;min-height:100vh;max-width:480px;margin:0 auto}.page-header{background-color:#fff;display:flex;align-items:center;padding:1rem;border-bottom:1px solid #f0f0f0;position:relative}.page-header h1{margin:0;font-size:1.1rem;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.page-main{padding:1.5rem 1rem}.month-navigator{display:flex;justify-content:center;align-items:center;margin-bottom:1.5rem;font-size:1.1rem;font-weight:600;gap:1rem}.month-navigator .nav-arrow{background-color:#fff;border:1px solid #E5E7EB;border-radius:50%;color:#4b5563;cursor:pointer;display:flex;align-items:center;justify-content:center;width:32px;height:32px;transition:all .2s}.month-navigator .nav-arrow:hover{color:#ff6b35;border-color:#ff6b35}.search-container{position:relative;margin-bottom:1.5rem}.search-icon{position:absolute;top:50%;left:1rem;transform:translateY(-50%);color:#9ca3af}.search-input{width:100%;padding:.75rem 1rem .75rem 2.5rem;font-size:.95rem;border:1px solid #E5E7EB;border-radius:8px;box-sizing:border-box}.search-input:focus{outline:none;border-color:#ff6b35;box-shadow:0 0 0 1px #ff6b35}.sessions-list-container{display:flex;flex-direction:column;gap:.75rem}.session-card{background-color:#fff;border-radius:12px;padding:1rem 1.25rem;border:1px solid #E5E7EB;display:grid;grid-template-columns:1fr 1.5fr 1fr;align-items:center;gap:1rem}.session-date-info{display:flex;flex-direction:column;gap:.25rem;text-align:left}.session-date{font-weight:500;font-size:.9rem}.session-time{font-size:.8rem;color:#6b7280}.session-member-info{text-align:center}.session-member-name{font-weight:600}.session-status-info{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.attendance-status{padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600}.attendance-status.on-time{background-color:#d1fae5;color:#065f46}.attendance-status.late{background-color:#fef3c7;color:#92400e}.checkin-time{font-size:.75rem;color:#6b7280}.no-sessions-message,.loading-container{text-align:center;padding:3rem 0;color:#6b7280}.back-button{background:none;border:none;cursor:pointer;color:#374151;display:flex;align-items:center;justify-content:center;padding:.5rem;border-radius:8px;transition:background-color .2s;z-index:1}.back-button:hover{background-color:#f3f4f6}.back-button svg{width:20px;height:20px}@media screen and (max-width: 400px){.page-main{padding:1.5rem .75rem}.session-card{padding:1rem;gap:.5rem;grid-template-columns:1fr 1.2fr 1fr}.session-date,.session-member-name{font-size:.85rem}.session-time{font-size:.75rem}.attendance-status{font-size:.75rem;padding:.2rem .5rem;white-space:nowrap}.checkin-time{font-size:.7rem;white-space:nowrap}}.trainer-schedule-page{background-color:#f8f9fa;font-family:Inter,Noto Sans KR,sans-serif;height:100vh;display:flex;flex-direction:column}.trainer-schedule-page .page-container{flex-grow:1;padding:2rem;display:flex;align-items:center;justify-content:center}.trainer-schedule-page .content-card{width:100%;height:100%;max-width:1400px;background-color:#fff;border-radius:1rem;box-shadow:0 10px 15px -3px #0000000d,0 4px 6px -2px #0000000d;display:flex;flex-direction:column;overflow:hidden}.trainer-schedule-page .card-header{display:flex;align-items:center;gap:.5rem;padding:1.5rem 1.5rem 1rem;border-bottom:1px solid #e5e7eb}.trainer-schedule-page .card-header .back-button{background:none;border:none;cursor:pointer;color:#4b5563;font-size:1.75rem;padding:0;display:flex;align-items:center}.trainer-schedule-page .card-header .card-title{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0}.trainer-schedule-page .card-body{display:flex;flex-grow:1;min-height:0}.trainer-schedule-page .trainer-sidebar{width:224px;padding:1.5rem;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;background-color:#fff}.trainer-schedule-page .sidebar-header{margin-bottom:1rem;display:flex;justify-content:center}.trainer-schedule-page .sidebar-header h4{font-size:1.125rem;font-weight:700;color:#1f2937}.trainer-schedule-page .trainer-list{display:flex;flex-direction:column;gap:.75rem}.trainer-schedule-page .trainer-item{position:relative}.trainer-schedule-page .trainer-item input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.trainer-schedule-page .trainer-item label{display:flex;align-items:center;cursor:pointer;font-size:.875rem;font-weight:500;color:#374151;padding:.25rem 0}.trainer-schedule-page .checkbox-custom{width:1rem;height:1rem;border:2px solid #d1d5db;border-radius:50%;margin-right:.75rem;display:inline-block;position:relative}.trainer-schedule-page .trainer-item input[type=checkbox]:checked+label .checkbox-custom{border-color:#4f46e5;background-color:#4f46e5}.trainer-schedule-page .trainer-item input[type=checkbox]:checked+label .checkbox-custom:after{content:"";position:absolute;top:2px;left:2px;width:8px;height:8px;background:#fff;border-radius:50%}.trainer-schedule-page .color-dot{width:.75rem;height:.75rem;border-radius:50%;margin-right:.5rem}.trainer-schedule-page .admin-main-content{flex:1;padding:1.5rem;display:flex;flex-direction:column;min-width:0}.trainer-schedule-page .main-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.trainer-schedule-page .main-header .back-button{background:none;border:none;cursor:pointer;color:#4b5563;font-size:1.75rem;padding:0;display:flex;align-items:center}.trainer-schedule-page .main-header .main-title{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0}.trainer-schedule-page .schedule-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.trainer-schedule-page .current-date-display{font-size:1.5rem;font-weight:700}.trainer-schedule-page .today-btn{margin-left:1rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;border-radius:.5rem;transition:all .2s;border:none;cursor:pointer;background-color:#4f46e5;color:#fff;box-shadow:0 1px 2px #0000000d}.trainer-schedule-page .today-btn:hover{background-color:#4338ca}.trainer-schedule-page .view-btn.active{background-color:#4f46e5;color:#fff}.trainer-schedule-page .schedule-container{flex:1;position:relative;min-height:0}.trainer-schedule-page .fc{height:100%}.trainer-schedule-page .fc .fc-view-harness,.trainer-schedule-page .fc .fc-col-header{border:none}.trainer-schedule-page .fc .fc-col-header-cell{border-bottom:1px solid #e5e7eb}.trainer-schedule-page .fc .fc-scrollgrid{border:none}.trainer-schedule-page .fc .fc-daygrid-day{border:none;border-bottom:1px solid #e5e7eb;border-left:1px solid #e5e7eb;padding:.25rem}.trainer-schedule-page .fc-theme-standard .fc-scrollgrid{border-left:1px solid #e5e7eb;border-top:1px solid #e5e7eb}.trainer-schedule-page .fc-scrollgrid-section-body table{border-right:1px solid #e5e7eb}.trainer-schedule-page .fc-daygrid-day-number-container{display:flex;justify-content:center;align-items:center;width:28px;height:28px;border-radius:50%;font-weight:600}.trainer-schedule-page .fc-daygrid-day-number-container.today{background-color:#4f46e5;color:#fff}.trainer-schedule-page .fc-daygrid-event-container{margin-top:.5rem;display:flex;flex-direction:column;gap:.25rem}.trainer-schedule-page .fc-custom-month-event{font-size:.75rem;padding:.125rem .5rem;border-radius:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-width:1px;border-style:solid}.trainer-schedule-page .fc-custom-month-more-link{font-size:.75rem;font-weight:500;color:#4f46e5;margin-top:.25rem;padding-left:.25rem}.modal-backdrop{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:#fff;border-radius:1rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;width:91.666667%;max-width:28rem;transform:scale(1);opacity:1;transition:all .2s ease-out;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.5rem}.modal-title{font-size:1.5rem;font-weight:700;color:#1f2937;margin:0}.modal-close-btn{padding:.25rem;border-radius:9999px;background:none;border:none;cursor:pointer;transition:background-color .2s}.modal-close-btn:hover{background-color:#f3f4f6}.modal-close-btn svg{width:1.5rem;height:1.5rem;color:#4b5563}.modal-body{padding:0 1.5rem 1.5rem;display:flex;flex-direction:column;gap:1rem;color:#374151}.detail-item{display:flex}.detail-label{font-weight:600;width:80px}.detail-value{color:#1f2937}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1.5rem;border-top:1px solid #f3f4f6}.modal-button-secondary,.modal-button-danger{padding:.5rem 1rem;font-size:.875rem;font-weight:600;border-radius:.5rem;transition:background-color .2s;border:none;cursor:pointer}.modal-button-secondary{background-color:#e5e7eb;color:#374151}.modal-button-secondary:hover{background-color:#d1d5db}.modal-button-danger{background-color:#ef4444;color:#fff}.modal-button-danger:hover{background-color:#dc2626}.day-modal-content{max-width:32rem}.day-modal-list{max-height:24rem;overflow-y:auto;padding-right:.5rem}.day-modal-list::-webkit-scrollbar{width:6px}.day-modal-list::-webkit-scrollbar-track{background-color:#f1f1f1;border-radius:10px}.day-modal-list::-webkit-scrollbar-thumb{background-color:#c4c4c4;border-radius:10px}.day-modal-list::-webkit-scrollbar-thumb:hover{background-color:#a8a8a8}.schedule-list-item{padding:.75rem;margin-bottom:.5rem;border-radius:.5rem;border:1px solid #e5e7eb;display:flex;align-items:center}.item-color-dot{width:.75rem;height:.75rem;border-radius:9999px;margin-right:1rem;flex-shrink:0}.item-info{flex-grow:1}.item-title{font-weight:700;color:#1f2937;margin:0}.item-subtitle{font-size:.875rem;color:#6b7280;margin:0}.item-time{font-size:.875rem;color:#4b5563;font-weight:500}:root{--primary-color: #FF6B35;--secondary-color: #4A90E2;--text-color: #333333;--background-color: #F8F9FA;--card-background: #FFFFFF;--border-color: #EAECEF;--success-color: #28A745;--warning-color: #FFC107;--danger-color: #DC3545}html{font-size:16px}html,body,#root{height:100%;margin:0;padding:0}body{font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background-color);color:var(--text-color);overscroll-behavior:none}*{box-sizing:border-box}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1050}.modal-content{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 5px 15px #0000004d;width:90%;max-width:450px;text-align:center;animation:slide-up .3s ease-out}@keyframes slide-up{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{margin-bottom:1.5rem}.modal-header h2{font-size:1.5rem;color:#333;margin:0}.modal-body{margin-bottom:2rem}.time-change-info{background-color:#f9f9f9;border-radius:8px;padding:1rem}.time-change-info p{margin:.5rem 0;font-size:1.1rem;color:#555;display:flex;align-items:center;justify-content:center}.time-change-info .arrow{margin:.5rem 0;font-size:1.5rem;color:#ff6b35}.time-change-info strong{font-weight:600;color:#333;margin-left:.5rem}.modal-footer{display:flex;justify-content:space-between;gap:1rem}.modal-footer .action-button{flex:1;padding:.8rem 1rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s,transform .1s;display:flex;align-items:center;justify-content:center;gap:.5rem}.modal-footer .action-button:active{transform:scale(.98)}.modal-footer .cancel{background-color:#f3f4f6;color:#4b5563}.modal-footer .cancel:hover{background-color:#e5e7eb}.modal-footer .confirm{background-color:#ff6b35;color:#fff}.modal-footer .confirm:hover{background-color:#e65c2e}
