.test-warning-banner{background:linear-gradient(135deg,#ff6b6b,#ffa726);color:#fff;padding:1.5rem 2rem;border-radius:12px;margin-bottom:2rem;display:flex;align-items:center;gap:1.5rem;box-shadow:0 4px 16px #ff6b6b4d;animation:pulse 2s infinite}.test-warning-icon{font-size:2rem;flex-shrink:0}.test-warning-content h3{margin:0 0 .8rem;font-size:1.3rem;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.2)}.test-warning-content p{margin:0 0 .5rem;font-size:.95rem;line-height:1.4;opacity:.95}.test-warning-content p:last-child{margin-bottom:0}.test-warning-content strong{font-weight:700;text-shadow:0 1px 1px rgba(0,0,0,.3)}@keyframes pulse{0%{box-shadow:0 4px 16px #ff6b6b4d;transform:scale(1)}50%{box-shadow:0 6px 20px #ff6b6b80;transform:scale(1.01)}to{box-shadow:0 4px 16px #ff6b6b4d;transform:scale(1)}}@media (max-width: 700px){.test-warning-banner{flex-direction:column;text-align:center;gap:1rem;padding:1.5rem}.test-warning-content h3{font-size:1.2rem}.test-warning-content p{font-size:.9rem}}.packages-page{min-height:100vh;background:linear-gradient(135deg,var(--color-surface) 0%,var(--color-secondary) 100%);padding:2rem 1rem}.packages-container{max-width:1200px;margin:0 auto}.packages-header{text-align:center;margin-bottom:3rem;color:var(--color-text-primary)}.packages-header h1{font-size:2rem;margin-bottom:1rem;font-weight:700;color:var(--color-text-primary)}.packages-header p{font-size:1rem;opacity:.9;color:var(--color-text-secondary)}.section-title{font-size:1.6rem;margin-bottom:2rem;color:var(--color-text-primary);text-align:center;border-bottom:2px solid var(--color-accent);padding-bottom:.5rem;font-weight:600}.class-type-selector,.session-type-selector{margin-bottom:3rem}.class-type-grid{display:grid;grid-template-columns:repeat(2,minmax(300px,400px));gap:1.5rem;margin-top:1.5rem;justify-content:center;max-width:900px;margin-left:auto;margin-right:auto}.session-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-top:1.5rem}.class-type-card,.session-type-card{background:var(--color-surface);border-radius:16px;padding:2rem;box-shadow:0 4px 16px #092f4e14;border:3px solid var(--color-border);cursor:pointer;transition:all .3s ease;text-align:center}.class-type-card:hover,.session-type-card:hover{transform:translateY(-5px);box-shadow:0 8px 32px #092f4e29;border-color:var(--color-accent)}.class-type-card.selected,.session-type-card.selected{border-color:var(--color-accent);transform:translateY(-5px);box-shadow:0 8px 32px #9e2f2f4d}.class-type-card h3,.session-type-card h3{font-size:1.3rem;color:var(--color-accent);margin-bottom:.5rem;font-weight:700}.class-type-card p,.session-type-card p{color:var(--color-text-secondary);line-height:1.5;font-size:.9rem}.packages-grid{display:flex;flex-direction:column;gap:2rem;margin-bottom:2rem;width:100%}.package-section{margin-bottom:3rem}.package-card{background:var(--color-surface);border-radius:16px;padding:2rem;box-shadow:0 4px 16px #092f4e14;transition:all .3s ease;cursor:pointer;position:relative;border:3px solid var(--color-border);display:flex;flex-direction:column;height:100%}.package-card:hover{transform:translateY(-5px);box-shadow:0 8px 32px #092f4e29;border-color:var(--color-accent)}.package-card.selected{border-color:var(--color-accent);transform:translateY(-5px);box-shadow:0 8px 32px #9e2f2f4d}.package-content{display:flex;flex-direction:row;gap:2rem;height:100%}.package-image-container{flex-shrink:0;aspect-ratio:1;min-height:400px;max-height:500px}.package-image-placeholder{width:100%;height:100%;border-radius:12px;overflow:hidden;background:linear-gradient(135deg,var(--color-secondary) 0%,var(--color-accent) 100%);display:flex;align-items:center;justify-content:center;border:2px solid var(--color-border)}.package-image-wrapper{position:relative;width:100%;height:100%}.package-image{width:100%;height:100%;object-fit:cover;border-radius:10px}.image-attribution{position:absolute;bottom:8px;right:8px;background:#000000b3;color:#fff;padding:4px 8px;border-radius:4px;font-size:.7rem;font-weight:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:opacity .2s ease}.image-attribution:hover{opacity:.9}.class-count-badge{position:absolute;top:12px;left:12px;background:#000c;color:#fff;padding:6px 12px;border-radius:20px;font-size:.85rem;font-weight:600;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2;box-shadow:0 2px 8px #0000004d}.attribution-text{opacity:.9}.attribution-text a{color:inherit;text-decoration:none;transition:opacity .2s ease}.attribution-text a:hover{opacity:.8;text-decoration:underline}.package-image-placeholder-content{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-primary);text-align:center;padding:1rem}.placeholder-icon{font-size:3rem;margin-bottom:.5rem;opacity:.8}.placeholder-text{font-size:.9rem;font-weight:600;opacity:.9}.package-details{flex:1;display:flex;flex-direction:column;min-width:0}.package-header h3{font-size:1.3rem;color:var(--color-accent);margin-bottom:.5rem;font-weight:700}.package-description{color:var(--color-text-secondary);margin-bottom:.5rem;font-size:.9rem;line-height:1.4}.package-duration{color:var(--color-accent);font-weight:600;font-size:.85rem}.package-expiry{color:#e74c3c;font-size:.85rem;font-weight:600;margin:.5rem 0;padding:.25rem .5rem;background:#e74c3c1a;border-radius:4px;border-left:3px solid #e74c3c}.package-pricing{margin:1.5rem 0;text-align:center;flex-shrink:0}.price{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.5rem}.original-price{color:var(--color-text-secondary);text-decoration:line-through;font-size:1rem;opacity:.7}.current-price{color:var(--color-text-primary);font-size:1.6rem;font-weight:700}.discount{color:var(--color-success);font-weight:600;font-size:.8rem}.per-hour-text{color:var(--color-accent);font-weight:600;font-size:1rem;margin-left:.5rem;opacity:.9}.package-features{list-style:none;padding:0;margin:1.5rem 0;flex-grow:1}.package-features li{display:flex;align-items:center;gap:.75rem;color:var(--color-text-secondary);position:relative;padding:.5rem 0 .5rem 1.5rem}.package-features li:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:.5rem;height:.5rem;background-color:var(--color-accent);border-radius:50%;opacity:.8}.check-icon{color:var(--color-success);flex-shrink:0}.select-button{width:100%;padding:1rem;border:none;border-radius:8px;background:var(--color-secondary);color:var(--color-primary);font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;font-family:var(--font-family-en);margin-top:auto;flex-shrink:0}.select-button:hover{background:var(--color-accent);color:var(--color-surface)}.select-button.selected{background:var(--color-success);color:var(--color-surface)}.selected-package-summary{background:var(--color-surface);border:2px solid var(--color-accent);border-radius:12px;box-shadow:0 4px 16px #092f4e1a;margin-top:2rem;max-width:800px;margin-left:auto;margin-right:auto}.summary-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:1.5rem}.summary-content h3{margin:0;color:var(--color-text-primary);font-size:1.1rem;font-weight:600}.summary-content p{margin:0;color:var(--color-accent);font-weight:700;font-size:1.2rem}.proceed-button{background:var(--color-accent);color:var(--color-surface);border:none;padding:1rem 2rem;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .3s ease;font-family:var(--font-family-en)}.proceed-button:hover{background:var(--color-accent-hover);transform:translateY(-2px)}.contact-button{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center;min-width:140px}.contact-button:hover{text-decoration:none;color:var(--color-surface)}.contact-buttons{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.whatsapp-button{background:#25d366}.whatsapp-button:hover{background:#128c7e}.telegram-button{background:#08c}.telegram-button:hover{background:#069}.contact-button i{margin-right:.5rem}.cost-per-hour{margin:.5rem 0 0;color:var(--color-accent);font-weight:600;font-size:.9rem;opacity:.9}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;padding:2rem;text-align:center}.loading-container p,.error-container p{color:var(--color-text-secondary);font-size:1.1rem;margin-bottom:1rem}.error-container h2{color:var(--color-error);margin-bottom:1rem}@media (max-width: 768px){.class-type-grid,.session-type-grid{grid-template-columns:1fr;justify-content:center}.class-type-grid{max-width:400px}.packages-header h1{font-size:2rem}.section-title{font-size:1.5rem}.summary-content{flex-direction:column;gap:1rem;text-align:center}.contact-buttons{flex-direction:column;gap:.75rem}.contact-button{width:100%;justify-content:center}.package-card,.class-type-card,.session-type-card{padding:1.5rem}.package-content{flex-direction:column;gap:1.5rem}.package-image-container{width:100%;height:180px;order:-1}.package-image-placeholder{border-radius:8px}.placeholder-icon{font-size:2.5rem}.placeholder-text{font-size:.8rem}.image-attribution{bottom:6px;right:6px;padding:3px 6px;font-size:.65rem}}@media (max-width: 500px){.class-type-grid{grid-template-columns:1fr;max-width:350px}.package-card{padding:1rem}.package-content{gap:1rem}.package-image-container{height:150px}.placeholder-icon{font-size:2rem}.placeholder-text{font-size:.75rem}.package-header h3{font-size:1.3rem}.current-price{font-size:1.1rem}}.packages-policy-section{margin-top:3rem;padding-top:2rem;border-top:2px solid var(--color-border)}.packages-policy{background:var(--color-surface);border:3px solid var(--color-border);border-radius:16px;padding:2rem;max-width:800px;margin:0 auto;box-shadow:0 4px 16px #092f4e14}.packages-policy h3{color:var(--color-accent);margin:0 0 1.5rem;font-size:1.3rem;font-weight:700;text-align:center;border-bottom:2px solid var(--color-accent);padding-bottom:.5rem}.policy-items{display:grid;gap:1.5rem}.policy-item{padding:1.5rem;background:var(--color-surface);border-radius:12px;box-shadow:0 2px 8px #092f4e0d}.policy-content h4{color:var(--color-accent);margin:0 0 .75rem;font-size:1.1rem;font-weight:700}.policy-content p{color:var(--color-text-secondary);margin:0;font-size:.9rem;line-height:1.6;font-weight:500}@media (max-width: 768px){.packages-policy{padding:1.5rem;margin:0 1rem}.packages-policy h3{font-size:1.2rem}.policy-item{padding:1.25rem}.policy-content h4{font-size:1.1rem}.policy-content p{font-size:.95rem}}@media (max-width: 500px){.packages-policy{padding:1rem;margin:0 .5rem}.policy-items{gap:1rem}.policy-item{padding:.75rem}}.pre-login-selected-package-container{border:2px solid #9e2f2f;border-radius:8px;padding:20px;margin-bottom:20px;background-color:#faf6ef;box-shadow:0 2px 6px #4a90e24d;max-width:500px}.pre-login-selected-package-container-alternate{border:2px solid #4A90E2;border-radius:8px;padding:20px;margin-bottom:20px;background-color:#f0f7ff;box-shadow:0 2px 6px #4a90e24d;max-width:500px}.hero.hero-split{display:flex;flex-direction:row;align-items:stretch;justify-content:center;background:var(--color-background);box-shadow:0 8px 32px #092f4e1f;border-radius:0;margin-bottom:2.5rem;overflow:hidden;text-align:left;padding:0;position:relative}.hero-video-wrapper{flex:2 1 0%;width:100%;aspect-ratio:16 / 9;background:#000;overflow:hidden;display:flex;align-items:center;justify-content:center}.hero-video{width:100%;height:100%;object-fit:cover;display:block;border-radius:0;pointer-events:none}.hero-content{width:100%;display:flex;flex-direction:column;flex:1 1 0%;justify-content:center;align-items:flex-start;padding:2.5rem 2rem;color:var(--color-surface);z-index:1;min-width:0;text-align:left;background:none}.hero-content h1{color:var(--color-text-primary)}.hero-content h2{font-size:2.5rem;color:var(--color-text-primary);margin-bottom:.7rem;letter-spacing:1px}.hero-content p{font-size:1.2rem;color:var(--color-text-primary);margin-bottom:1.2rem}.cta{display:inline-block;margin-top:1.5rem;padding:.9rem 2.5rem;background:var(--color-secondary);color:var(--color-primary);border-radius:30px;text-decoration:none;font-weight:700;font-size:1.1rem;box-shadow:0 2px 8px #fcd79933;transition:background .2s,color .2s}.cta:hover{cursor:pointer;background:var(--color-accent);color:var(--color-surface)}button.cta{background:var(--color-secondary);border:none;font-family:inherit}@media (max-width: 900px){.hero.hero-split{flex-direction:column;border-radius:0;margin-bottom:2rem;text-align:center}.hero-video-wrapper,.hero-content{width:100%;min-width:0;padding:0;border-radius:0}.hero-content{padding:1.5rem 1rem;align-items:center;text-align:center;border-radius:0 0 14px 14px}.hero-content h2,.hero-content p,.cta{text-align:center}}#about{margin-bottom:2rem}#about h3{margin-bottom:1rem;color:var(--color-text-primary);border-bottom:2px solid var(--color-accent);padding-bottom:.25rem;font-weight:600}#about p{color:var(--color-text-primary);margin-bottom:1.5rem;line-height:1.6}#about p:last-child{margin-bottom:0}#testimonial{margin-bottom:2rem}#testimonial h3{margin-bottom:1rem;color:var(--color-text-primary);border-bottom:2px solid var(--color-accent);padding-bottom:.25rem;font-weight:600}.testimonial-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-top:1rem}.testimonial{background-color:var(--color-surface);border-left:5px solid var(--color-accent);padding:1rem 1.5rem;border-radius:6px;color:var(--color-text-primary);box-shadow:0 2px 4px #00000012}.testimonial blockquote{margin:0 0 .75rem}.testimonial span{font-style:normal;font-weight:600;font-size:.9rem;color:var(--color-text-primary)}#faq{margin-bottom:2rem}#faq h3{margin-bottom:1rem;color:var(--color-text-primary);border-bottom:2px solid var(--color-accent);padding-bottom:.25rem;font-weight:600}#faq dl{margin-top:1rem;border-left:3px solid var(--color-accent);padding-left:1rem;color:var(--color-text-secondary)}#faq dt{font-weight:700;margin-top:1rem;color:var(--color-text-primary)}#faq dd{margin-left:0;margin-bottom:.75rem;line-height:1.4;font-size:.95rem}#additional-info{margin-bottom:2rem}#additional-info h3{margin-bottom:1rem;color:var(--color-text-primary);border-bottom:2px solid var(--color-accent);padding-bottom:.25rem;font-weight:600}#additional-info p{margin:0;color:var(--color-text-secondary);line-height:1.4;font-size:1.05rem}#additional-info ul{list-style:none;padding-left:1.2rem;margin:.75rem 0 0;font-size:1.05rem;color:var(--color-text-secondary)}#additional-info ul li{position:relative;margin-bottom:.5rem;padding-left:1.2rem}#additional-info ul li:before{content:"";position:absolute;left:0;top:.6em;transform:translateY(-50%);width:.5rem;height:.5rem;background-color:var(--color-accent);border-radius:50%;opacity:.6}#learn{margin-bottom:2rem}#learn h3{margin-bottom:1rem;color:var(--color-text-primary);border-bottom:2px solid var(--color-accent);padding-bottom:.25rem;font-weight:600}.learn-intro{color:var(--color-text-primary);margin-bottom:1.5rem;line-height:1.6}.learn-categories{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.learn-category{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:1.25rem;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s}.learn-category:hover{border-color:var(--color-accent);box-shadow:0 4px 12px #092f4e1a;transform:translateY(-2px)}.learn-category.expanded{border-color:var(--color-accent)}.learn-category-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.learn-category-title{color:var(--color-text-primary);font-size:1.15rem;font-weight:600;margin:0;flex:1}.learn-category-toggle{color:var(--color-accent);font-size:1.5rem;font-weight:300;line-height:1;width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .2s}.learn-category.expanded .learn-category-toggle{transform:rotate(0)}.learn-category-summary{color:var(--color-text-secondary);font-size:.95rem;line-height:1.5;margin:0}.learn-category-details{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border);animation:slideDown .3s ease-out}.learn-category-desc{color:var(--color-text-primary);font-size:.95rem;line-height:1.6;margin:0 0 .75rem}.learn-category-bullets{list-style:none;padding:0;margin:0}.learn-category-bullets li{color:var(--color-text-primary);font-size:.9rem;line-height:1.6;padding:.4rem 0 .4rem 1.5rem;position:relative}.learn-category-bullets li:before{content:"•";position:absolute;left:0;color:var(--color-accent);font-weight:700;font-size:1.2rem}@media (max-width: 768px){.learn-categories{gap:.875rem}.learn-category{padding:1rem}.learn-category-title{font-size:1.05rem}.learn-category-toggle{font-size:1.4rem;width:22px;height:22px}.learn-category-summary,.learn-category-desc{font-size:.9rem}.learn-category-bullets li{font-size:.85rem;padding-left:1.25rem}}@media (max-width: 480px){#learn h3{font-size:1.25rem}.learn-intro{font-size:.9375rem;margin-bottom:1.25rem}.learn-category{padding:.875rem}.learn-category-header{margin-bottom:.625rem}.learn-category-title{font-size:1rem}.learn-category-toggle{font-size:1.3rem;width:20px;height:20px}.learn-category-summary{font-size:.875rem}.learn-category-details{margin-top:.875rem;padding-top:.875rem}.learn-category-desc{font-size:.875rem;margin-bottom:.625rem}.learn-category-bullets li{font-size:.8125rem;padding:.35rem 0 .35rem 1.125rem}}#class{margin-bottom:2rem}#class h3{margin-bottom:1rem;color:var(--color-text-primary);border-bottom:2px solid var(--color-accent);padding-bottom:.25rem;font-weight:600}.class-intro{color:var(--color-text-primary);margin-bottom:1.5rem;line-height:1.6}.pricing-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin-top:1.5rem}.pricing-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:1.25rem;transition:border-color .2s,box-shadow .2s;display:flex;flex-direction:column}.pricing-card:hover{box-shadow:0 4px 12px #092f4e1a}.pricing-card.highlight{border:2px solid var(--color-accent);background:#092f4e05}.pricing-card.highlight:hover{box-shadow:0 6px 16px #092f4e26}.pricing-card.expanded{border-color:var(--color-accent)}.pricing-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem;gap:.75rem}.pricing-card-title-section{flex:1;min-width:0}.pricing-card-title{color:var(--color-text-primary);font-size:1.1rem;font-weight:600;margin:0 0 .25rem}.pricing-card-max{display:inline-block;color:var(--color-text-secondary);font-size:.8rem;background:var(--color-surface);padding:.2rem .5rem;border-radius:4px;border:1px solid var(--color-border)}.pricing-card-price-main{flex-shrink:0}.pricing-price{color:var(--color-accent);font-size:1.5rem;font-weight:700;line-height:1}.pricing-card-price-preview{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0;gap:.2rem}.pricing-price-small{color:var(--color-accent);font-size:1.1rem;font-weight:700;line-height:1}.pricing-price-label{color:var(--color-text-secondary);font-size:.75rem;line-height:1}.pricing-card-content{display:flex;flex-direction:column;gap:.75rem;flex:1;min-height:0}@media (min-width: 769px){.pricing-card-content{min-height:200px}.pricing-card:not(.expanded):not(.highlight) .pricing-card-content{min-height:150px}}.pricing-duration{color:var(--color-text-secondary);font-size:.875rem;line-height:1.4}.pricing-packages{display:flex;flex-direction:column;gap:.5rem}.pricing-package-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--color-border)}.pricing-package-item:last-child{border-bottom:none}.pricing-package-label{color:var(--color-text-primary);font-size:.9rem}.pricing-package-price{color:var(--color-text-primary);font-size:.95rem;font-weight:600}.pricing-perpax{color:var(--color-text-secondary);font-size:.8rem;font-weight:400}.pricing-card-details{margin-top:0;padding-top:0;border-top:none;flex:1;display:flex;flex-direction:column}.pricing-details-text{color:var(--color-text-primary);font-size:.9rem;line-height:1.5;margin:0 0 .75rem}.pricing-policy{color:var(--color-text-primary);font-size:.85rem;line-height:1.5;margin:0 0 .75rem;padding:.5rem;background:#092f4e08;border-radius:4px;border-left:3px solid var(--color-accent)}.pricing-policy strong{font-weight:600}.pricing-cta-button{width:100%;padding:.75rem 1rem;background:var(--color-accent);color:#fff;border:none;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background-color .2s,transform .2s;margin-top:auto}.pricing-cta-button:hover{background:var(--color-accent);opacity:.9;transform:translateY(-1px)}.pricing-cta-button:active{transform:translateY(0)}.pricing-more-details-button{width:100%;padding:.625rem 1rem;background:transparent;color:var(--color-accent);border:1px solid var(--color-accent);border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s;margin-top:auto;display:flex;align-items:center;justify-content:center;gap:.5rem}.pricing-more-details-button:hover{background:var(--color-accent);color:#fff}.pricing-more-details-toggle{font-size:1.2rem;font-weight:300;line-height:1}.pricing-expanded-info{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--color-border);animation:slideDown .3s ease-out}@media (max-width: 768px){.pricing-cards{grid-template-columns:1fr;gap:.875rem}.pricing-card{padding:1rem}.pricing-card-title{font-size:1rem}.pricing-price{font-size:1.3rem}.pricing-price-small{font-size:1rem}}@media (max-width: 480px){#class h3{font-size:1.25rem}.class-intro{font-size:.9375rem;margin-bottom:1.25rem}.pricing-card{padding:.875rem}.pricing-card-header{margin-bottom:.625rem;gap:.5rem}.pricing-card-title{font-size:.95rem}.pricing-card-max{font-size:.75rem;padding:.15rem .4rem}.pricing-price{font-size:1.2rem}.pricing-price-small{font-size:.95rem}.pricing-price-label{font-size:.7rem}.pricing-duration{font-size:.8125rem}.pricing-package-label{font-size:.85rem}.pricing-package-price{font-size:.9rem}.pricing-details-text{font-size:.85rem}.pricing-policy{font-size:.8rem;padding:.4rem}.pricing-cta-button{padding:.625rem .875rem;font-size:.9rem}.pricing-more-details-button{padding:.5rem .75rem;font-size:.85rem}.pricing-more-details-toggle{font-size:1.1rem}}#teacher{margin-bottom:2rem}#teacher h3{margin-bottom:1rem;color:var(--color-text-primary);border-bottom:2px solid var(--color-accent);padding-bottom:.25rem;font-weight:600}.teacher-intro{color:var(--color-text-primary);margin-bottom:1.5rem;line-height:1.6}.teacher-intro:last-child{margin-bottom:1rem}.teachers-loading,.teachers-error,.teachers-empty{padding:2rem;text-align:center;color:var(--color-text-secondary)}.teachers-error{color:var(--color-error, #dc3545)}.teachers-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-top:1.5rem}.teacher-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:1.25rem;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex;flex-direction:column;min-height:auto}.teacher-card:hover{border-color:var(--color-accent);box-shadow:0 4px 12px #092f4e1a;transform:translateY(-2px)}.teacher-header{display:flex;gap:1rem;margin-bottom:.75rem;align-items:center}.teacher-photo-container{flex-shrink:0}.teacher-photo{width:80px;height:80px;border-radius:50%;object-fit:cover;border:2px solid var(--color-border)}.teacher-photo-placeholder{width:80px;height:80px;border-radius:50%;background:var(--color-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:600;border:2px solid var(--color-border)}.teacher-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.teacher-name{color:var(--color-text-primary);font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.teacher-short-bio{color:var(--color-text-secondary);font-size:.9rem;line-height:1.5;margin:0}.teacher-content{display:flex;flex-direction:column;gap:1rem;margin-top:.5rem}.teacher-bio{margin-top:0}.teacher-see-more{width:100%;padding:.75rem 1rem;background:transparent;border:1px solid var(--color-accent);color:var(--color-accent);font-size:.9rem;font-weight:600;cursor:pointer;border-radius:6px;text-align:center;transition:all .2s;margin-top:.5rem}.teacher-see-more:hover{background:var(--color-accent);color:#fff;transform:translateY(-1px);box-shadow:0 2px 8px #092f4e26}.teacher-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1001;padding:5rem 1rem 1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}.teacher-modal-content{background:var(--color-surface);border-radius:16px;padding:2rem;max-width:700px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d;border:1px solid var(--color-border);position:relative;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.teacher-modal-close{position:absolute;top:1rem;right:1rem;background:transparent;border:none;color:var(--color-text-secondary);font-size:1.5rem;line-height:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:4px;transition:all .2s;z-index:10}.teacher-modal-close:hover{background:#00000014;color:var(--color-text-primary)}.teacher-modal-header{display:flex;gap:1.5rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:2px solid var(--color-border);align-items:center}.teacher-modal-photo-container{flex-shrink:0;height:120px;display:flex;align-items:center}.teacher-modal-photo{width:120px;height:120px;border-radius:50%;object-fit:cover;border:3px solid var(--color-accent);box-shadow:0 4px 12px #092f4e26}.teacher-modal-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;height:120px}.teacher-modal-name{color:var(--color-text-primary);font-size:1.75rem;font-weight:700;margin:0 0 .5rem;line-height:1.3}.teacher-modal-short-bio{color:var(--color-text-secondary);font-size:1rem;line-height:1.5;margin:0}.teacher-modal-body{display:flex;flex-direction:column;gap:1.5rem}.teacher-modal-bio{color:var(--color-text-primary);font-size:1rem;line-height:1.7}.teacher-modal-bio p{margin:0}.teacher-modal-video{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:12px;border:1px solid var(--color-border)}.teacher-modal-video-iframe{position:absolute;top:0;left:0;width:100%;height:100%}@media (max-width: 768px){.teachers-grid{grid-template-columns:1fr;gap:1rem}.teacher-card{padding:1.25rem}.teacher-header{gap:.875rem;margin-bottom:.875rem}.teacher-photo,.teacher-photo-placeholder{width:70px;height:70px;font-size:1.75rem}.teacher-name{font-size:1.1rem}.teacher-short-bio{font-size:.85rem}.teacher-see-more{padding:.625rem .875rem;font-size:.85rem}}@media (max-width: 480px){#teacher h3{font-size:1.25rem}.teacher-intro{font-size:.9375rem;margin-bottom:1.25rem}.teacher-card{padding:1rem}.teacher-header{gap:.75rem;margin-bottom:.75rem}.teacher-photo,.teacher-photo-placeholder{width:60px;height:60px;font-size:1.5rem}.teacher-name{font-size:1rem;margin-bottom:.375rem}.teacher-short-bio{font-size:.8rem}.teacher-see-more{padding:.625rem .75rem;font-size:.85rem}}@media (max-width: 768px){.teacher-modal-overlay{padding-top:4.5rem}.teacher-modal-content{padding:1.5rem;max-height:85vh}.teacher-modal-header{flex-direction:column;align-items:center;text-align:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem}.teacher-modal-photo{width:100px;height:100px}.teacher-modal-name{font-size:1.5rem}.teacher-modal-short-bio,.teacher-modal-bio{font-size:.95rem}}@media (max-width: 480px){.teacher-modal-overlay{padding:4rem .5rem .5rem}.teacher-modal-content{padding:1.25rem;border-radius:12px}.teacher-modal-close{top:.75rem;right:.75rem;width:28px;height:28px;font-size:1.5rem}.teacher-modal-header{gap:.875rem;margin-bottom:1.25rem}.teacher-modal-photo{width:80px;height:80px}.teacher-modal-name{font-size:1.25rem}.teacher-modal-short-bio,.teacher-modal-bio{font-size:.9rem}}#location{margin-bottom:2rem}#location h3{margin-bottom:1.5rem;color:var(--color-text-primary);border-bottom:2px solid var(--color-accent);padding-bottom:.25rem;font-weight:600}.location-map-container{width:100%;max-width:100%;margin:0 auto 2rem;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px #092f4e1a;border:1px solid var(--color-border)}.location-map-embed{width:100%;height:400px;display:block;border:none}.location-address-section{margin-bottom:1.5rem;text-align:center}.location-studio-label{color:var(--color-text-secondary);font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin:0 0 .5rem}.location-address-text{color:var(--color-text-primary);font-size:1.1rem;line-height:1.6;margin:0 0 .75rem}.location-address-text strong{font-weight:600;color:var(--color-text-primary)}.location-landmark{color:var(--color-text-secondary);font-size:.95rem;line-height:1.5;margin:0;font-style:italic}.location-directions-buttons{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.location-direction-button{flex:1;min-width:200px;padding:.875rem 1.25rem;background:var(--color-surface);color:var(--color-text-primary);border:2px solid var(--color-accent);border-radius:8px;font-size:.95rem;font-weight:600;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:.75rem;transition:all .2s;cursor:pointer}.location-direction-button:hover{background:var(--color-accent);color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #092f4e33}.location-direction-button i{font-size:1.2rem}.location-google-maps:hover{background:#4285f4;border-color:#4285f4}.location-apple-maps:hover{background:#000;border-color:#000}@media (max-width: 768px){.location-map-container{max-width:100%}.location-address-text{font-size:1rem}.location-landmark{font-size:.9rem}.location-directions-buttons{flex-direction:column}.location-direction-button{width:100%;min-width:unset}}@media (max-width: 480px){#location h3{font-size:1.25rem}.location-map-embed{height:250px}.location-studio-label{font-size:.85rem}.location-address-text{font-size:.95rem}.location-landmark{font-size:.85rem}.location-direction-button{padding:.75rem 1rem;font-size:.9rem}}#contact{margin-bottom:2rem}#contact h3{margin-bottom:1rem;color:var(--color-text-primary);border-bottom:2px solid var(--color-accent);padding-bottom:.25rem;font-weight:600}.contact-intro{color:var(--color-text-secondary);font-size:1rem;line-height:1.5;margin-bottom:1rem}.contact-methods{display:flex;gap:1rem;flex-wrap:wrap}.contact-method{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--color-surface);border-radius:8px;box-shadow:0 2px 8px #092f4e14;border:1px solid var(--color-border);transition:transform .2s,box-shadow .2s;flex:1;min-width:fit-content}.contact-method:hover{transform:translateY(-2px);box-shadow:0 4px 16px #092f4e1f}.contact-icon{width:40px;height:40px;border-radius:50%;background:var(--color-accent);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1rem;flex-shrink:0}.contact-details h5{margin:0 0 .25rem;color:var(--color-text-primary);font-weight:600;font-size:.9rem}.contact-details a{color:var(--color-accent);text-decoration:none;font-weight:500;font-size:.9rem;transition:color .2s}.contact-details a:hover{color:var(--color-accent-hover)}.contact-cta{margin-top:2rem;text-align:center}.contact-button{display:inline-block;background:var(--color-accent);color:var(--color-surface);text-decoration:none;padding:1rem 2rem;border-radius:8px;font-weight:600;font-size:1.1rem;transition:all .2s ease;border:2px solid var(--color-accent)}.contact-button:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);transform:translateY(-2px);box-shadow:0 4px 12px #9e2f2f33}@media (max-width: 768px){.contact-methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;max-width:800px}.contact-method{padding:.75rem}.contact-icon{width:40px;height:40px;font-size:1rem}}@media (max-width: 480px){.contact-methods{gap:.75rem}.contact-intro{font-size:1rem}}.dashboard{display:flex;flex-direction:column;justify-content:flex-start;padding:2rem;min-height:calc(100vh - 200px);width:100%;margin:0;max-width:none}.dashboard-tab-content{padding:2rem;overflow-y:auto;height:100%}.empty-dashboard{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.lesson-history-tab-content,.purchase-history-tab-content{overflow-y:auto;height:100%}.app-content .dashboard{margin:0;max-width:none;width:100%}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem}.dashboard-welcome{background:var(--color-surface);border-radius:14px;padding:2rem;margin-bottom:2rem;box-shadow:0 4px 16px #092f4e14;border:1px solid var(--color-border)}.dashboard-welcome h1{color:var(--color-text-primary);font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.dashboard-welcome p{color:var(--color-text-secondary);font-size:1.1rem}.dashboard-content{background:var(--color-surface);border-radius:14px;padding:2rem;box-shadow:0 4px 16px #092f4e14;border:1px solid var(--color-border);flex:1;display:flex;flex-direction:column;min-height:0}.role-switcher{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.role-switcher-loading,.role-switcher-error{padding:.5rem 1rem;border-radius:8px;font-size:.9rem;font-weight:500}.role-switcher-loading{background:#fcd79933;color:var(--color-text-secondary)}.role-switcher-error{background:#b74a4a1a;color:var(--color-error)}.role-switcher-label{color:var(--color-text-secondary);font-weight:600;font-size:.9rem;white-space:nowrap}.role-switcher-buttons{display:flex;gap:.5rem;align-items:center}.role-button{padding:.6rem 1rem;border-radius:12px;border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease;min-width:100px;text-transform:capitalize}.role-button:hover{border-color:var(--color-primary);color:var(--color-primary);transform:translateY(-1px);box-shadow:0 2px 8px #092f4e26}.role-button.active{background:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary);box-shadow:0 2px 8px #092f4e33}.role-switcher-select-wrapper{position:relative;display:none;min-width:140px;align-items:center;gap:.5rem}.custom-dropdown{position:relative;min-width:120px;width:fit-content}.custom-dropdown-trigger{width:100%;padding:.2rem .6rem;border:none;border-radius:6px;background:none;color:var(--color-primary);font-weight:600;font-size:1.08rem;cursor:pointer;transition:color .2s,background .2s;display:flex;align-items:center;justify-content:space-between;text-transform:capitalize;min-width:120px;height:40px;line-height:1;vertical-align:middle}.custom-dropdown-trigger:hover,.custom-dropdown-trigger:focus{color:var(--color-surface);background:var(--color-accent);outline:none}.dropdown-value{flex:1;text-align:left}.dropdown-arrow{font-size:.8rem;transition:transform .2s ease;margin-left:.5rem}.dropdown-arrow.open{transform:rotate(180deg)}.custom-dropdown-menu{position:absolute;top:100%;left:0;right:0;background:var(--color-background);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:none;border-radius:0;box-shadow:0 4px 16px #092f4e14;z-index:1000;margin-top:0;padding:1rem 0 1.2rem;width:fit-content;min-width:100%;display:flex;flex-direction:column;align-items:center;gap:.5rem}.dropdown-option{width:100%;padding:.2rem .6rem;background:none;color:var(--color-primary);font-weight:600;font-size:1.08rem;cursor:pointer;transition:color .2s,background .2s;border:none;text-align:center;text-transform:capitalize;height:40px;line-height:1;vertical-align:middle;display:flex;align-items:center;justify-content:center;white-space:nowrap;margin:0}.dropdown-option:hover,.dropdown-option:focus{color:var(--color-surface);background:var(--color-accent);outline:none}.dropdown-option.active{color:var(--color-surface);background:var(--color-accent)}.dropdown-option.placeholder{color:var(--color-text-secondary);font-style:italic;font-weight:400}.dropdown-option.placeholder:hover{color:var(--color-surface);background:var(--color-accent)}.dropdown-option:not(:last-child):after{content:"";position:absolute;bottom:-.125rem;left:1rem;right:1rem;height:1px;background:#092f4e14}.cardsContainer{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:1rem}@media (max-width: 768px){.dashboard{padding:1.5rem;width:100%;margin:0}.dashboard-welcome,.dashboard-content{padding:1.5rem}.dashboard-welcome h1{font-size:2rem}.cardsContainer{gap:1rem}}@media (max-width: 600px){.dashboard-header{flex-direction:row;align-items:center;gap:1rem}.role-switcher{width:auto;flex-direction:row;align-items:center}.role-switcher-buttons{display:none}.role-switcher-select-wrapper{display:flex!important;width:auto;align-items:center;gap:.5rem}.custom-dropdown{display:block;width:auto;min-width:120px}}@media (max-width: 480px){.dashboard{padding:1rem;width:100%;margin:0}.dashboard-welcome,.dashboard-content{padding:1rem}.cardsContainer{gap:.75rem}.role-button{min-width:80px;padding:.5rem .75rem;font-size:.85rem}.role-switcher-label{font-size:.85rem}.role-switcher-select{min-width:100px;font-size:.85rem;padding:.5rem 2rem .5rem .75rem}}.tabs-bar-container{border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface);width:100%;margin:0;margin-top:1rem;box-shadow:0 4px 16px #092f4e14;overflow:hidden;display:flex;flex-direction:column;height:calc(100vh - 200px);min-height:600px}.tabs-bar.desktop-tabs{display:flex;border-bottom:1px solid var(--color-border);padding:0;background:var(--color-surface);border-radius:14px 14px 0 0;height:56px;align-items:center;gap:0;flex-shrink:0}.tab-btn{background:transparent;border:none;padding:0 2rem;margin:0;height:56px;font-size:1rem;color:var(--color-text-secondary);border-bottom:3px solid transparent;cursor:pointer;transition:all .2s ease;border-radius:0;font-weight:600;display:flex;align-items:center;justify-content:center;min-width:120px;white-space:nowrap}.tab-btn.active{color:var(--color-text-primary);border-bottom:3px solid var(--color-accent);background:var(--color-secondary);font-weight:700}.tab-btn:not(.active):hover{background:#fcd7994d;color:var(--color-text-primary)}.tabs-content-area{flex:1;background:var(--color-surface);border-radius:0 0 14px 14px;width:100%;box-sizing:border-box;padding:0;overflow:hidden;display:flex;flex-direction:column;min-height:0}.tabs-content-area>*{flex:1;display:flex;flex-direction:column;min-height:0;height:100%}.mobile-tabs-container{display:none;position:relative;z-index:10;border-bottom:1px solid var(--color-border);background:var(--color-surface);border-radius:14px 14px 0 0}.mobile-tabs-container .tab-btn{width:100%;justify-content:space-between;padding:0 1.5rem}.mobile-tabs-container .tab-btn.open{border-bottom:1px solid var(--color-border)}.mobile-arrow{font-size:.9rem;color:#fff;transition:transform .2s ease;display:flex;align-items:center;justify-content:center;width:24px;height:24px}.mobile-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;z-index:998;animation:fadeIn .2s ease}.mobile-tabs-menu{position:absolute;top:100%;left:0;right:0;background:var(--color-surface);border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border);border-top:none;border-radius:0 0 14px 14px;box-shadow:0 4px 16px #092f4e14;z-index:999;max-height:70vh;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.mobile-tabs-menu .tab-btn{width:100%;text-align:left;justify-content:space-between;padding:0 1.5rem}.mobile-tabs-menu .tab-btn:last-child{border-bottom:none;border-radius:0 0 14px 14px}@media (max-width: 768px){.tabs-bar-container{height:calc(100vh - 150px);min-height:500px;margin-top:.5rem;border-radius:12px}.tabs-bar.desktop-tabs{display:none}.mobile-tabs-container{display:block}.tabs-content-area{padding:0;border-radius:0 0 12px 12px}}@media (max-width: 480px){.tabs-bar-container{height:calc(100vh - 120px);min-height:400px;margin-top:.5rem;border-radius:12px}.mobile-tab-selector{padding:.9rem 1.25rem;font-size:.95rem;border-radius:12px 12px 0 0}.mobile-tabs-menu .tab-btn{padding:0 1.25rem;font-size:.95rem;height:52px}.mobile-tabs-menu{border-radius:0 0 12px 12px}.mobile-tab-btn:last-child{border-radius:0 0 12px 12px}.tabs-content-area{border-radius:0 0 12px 12px}}.admin-content{padding:2rem;height:100%;overflow-y:auto;box-sizing:border-box;-webkit-overflow-scrolling:touch}.admin-header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid var(--color-secondary)}.admin-header h1{color:var(--color-text-primary);font-size:2rem;font-weight:700;margin-bottom:.5rem}.admin-header p{color:var(--color-text-secondary);font-size:1.1rem}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:3rem}.metric-card{background:var(--color-surface);border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #092f4e14;border:1px solid var(--color-border);transition:transform .2s ease,box-shadow .2s ease;display:flex;align-items:center;gap:1rem}.metric-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #092f4e1f}.metric-icon{font-size:2rem;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:var(--color-secondary);border-radius:12px;flex-shrink:0}.metric-content h3{color:var(--color-text-secondary);font-size:.9rem;font-weight:600;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.metric-value{color:var(--color-text-primary);font-size:2rem;font-weight:700;margin-bottom:.25rem}.metric-change{font-size:.85rem;font-weight:600}.metric-change.positive{color:var(--color-success)}.metric-change.negative{color:var(--color-error)}.metric-change.neutral{color:var(--color-text-secondary)}.activity-section{margin-bottom:3rem}.activity-section h2{color:var(--color-text-primary);font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-secondary)}.activity-list{background:var(--color-surface);border-radius:12px;border:1px solid var(--color-border);overflow:hidden}.activity-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border);transition:background-color .2s ease}.activity-item:last-child{border-bottom:none}.activity-item:hover{background-color:#fcd7991a}.activity-icon{font-size:1.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-secondary);border-radius:8px;flex-shrink:0}.activity-content{flex:1}.activity-description{color:var(--color-text-primary);font-weight:600;margin-bottom:.25rem}.activity-meta{display:flex;gap:1rem;font-size:.85rem;color:var(--color-text-secondary)}.activity-user{font-weight:600}.activity-time{opacity:.8}.empty-state{padding:3rem 1.5rem;text-align:center;color:var(--color-text-secondary)}.empty-state h2{color:var(--color-text-primary);margin-bottom:1rem}.empty-state ul{text-align:left;max-width:400px;margin:1rem auto}.empty-state li{margin-bottom:.5rem}.quick-actions{margin-bottom:2rem}.quick-actions h2{color:var(--color-text-primary);font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-secondary)}.action-buttons{display:flex;gap:1rem;flex-wrap:wrap}.action-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;font-size:.95rem;transition:all .2s ease;border:2px solid transparent;cursor:pointer}.action-btn.primary{background:var(--color-accent);color:var(--color-surface)}.action-btn.primary:hover{background:var(--color-accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #9e2f2f4d}.action-btn.secondary{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}.action-btn.secondary:hover{background:var(--color-primary);color:var(--color-surface);transform:translateY(-1px);box-shadow:0 4px 12px #092f4e33}.action-icon{font-size:1.1rem}.filter-section{margin-bottom:2rem}.filter-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.filter-btn{padding:.5rem 1rem;border:2px solid var(--color-border);background:transparent;color:var(--color-text-secondary);border-radius:6px;font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease}.filter-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.filter-btn.active{background:var(--color-primary);color:var(--color-surface);border-color:var(--color-primary)}.sessions-section{margin-bottom:2rem}.sessions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.session-card{background:var(--color-surface);border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #092f4e14;border:1px solid var(--color-border);transition:transform .2s ease,box-shadow .2s ease}.session-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #092f4e1f}.session-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.session-status{display:flex;align-items:center}.status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:600;text-transform:capitalize}.status-badge.success{background:#5d8e6f1a;color:var(--color-success)}.status-badge.warning{background:#fcd7994d;color:#b8860b}.status-badge.error{background:#b74a4a1a;color:var(--color-error)}.status-badge.neutral{background:#d4d4c94d;color:var(--color-text-secondary)}.session-time{font-size:.9rem;color:var(--color-text-secondary);font-weight:600}.session-content{margin-bottom:1.5rem}.session-title{color:var(--color-text-primary);font-size:1.2rem;font-weight:700;margin-bottom:.5rem}.session-teacher,.session-attendance{color:var(--color-text-secondary);font-size:.95rem;margin-bottom:.25rem}.session-actions{display:flex;gap:1rem;align-items:center}.status-select{padding:.5rem;border:2px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text-primary);font-size:.9rem;cursor:pointer}.status-select:focus{outline:none;border-color:var(--color-accent)}.session-details{margin-bottom:1.5rem}.session-details p{margin-bottom:.75rem;color:var(--color-text-secondary)}.session-details strong{color:var(--color-text-primary)}.customer-tabs,.report-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid var(--color-border);padding-bottom:.5rem}.customer-tab,.report-tab{padding:.75rem 1.5rem;border:none;background:transparent;color:var(--color-text-secondary);border-radius:8px;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .2s ease}.customer-tab:hover,.report-tab:hover{background:#fcd7991a;color:var(--color-text-primary)}.customer-tab.active,.report-tab.active{background:var(--color-accent);color:var(--color-surface)}.customer-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;gap:1rem}.search-box{flex:1;max-width:400px}.search-input{width:100%;padding:.75rem 1rem;border:2px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text-primary);font-size:.95rem}.search-input:focus{outline:none;border-color:var(--color-accent)}.customers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.customer-card{background:var(--color-surface);border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #092f4e14;border:1px solid var(--color-border);transition:transform .2s ease,box-shadow .2s ease}.customer-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #092f4e1f}.customer-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.customer-avatar{width:50px;height:50px;background:var(--color-secondary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:var(--color-primary)}.customer-content h3{color:var(--color-text-primary);font-size:1.2rem;font-weight:700;margin-bottom:.5rem}.customer-email,.customer-role,.customer-stats,.customer-dates{color:var(--color-text-secondary);font-size:.9rem;margin-bottom:.25rem}.customer-actions{display:flex;gap:1rem;align-items:center;margin-top:1rem}.enrollments-section,.payments-section{margin-bottom:2rem}.enrollments-section h2,.payments-section h2{color:var(--color-text-primary);font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-secondary)}.enrollments-list{background:var(--color-surface);border-radius:12px;border:1px solid var(--color-border);overflow:hidden}.enrollment-item{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border);transition:background-color .2s ease}.enrollment-item:last-child{border-bottom:none}.enrollment-item:hover{background-color:#fcd7991a}.enrollment-info h3{color:var(--color-text-primary);font-size:1.1rem;font-weight:700;margin-bottom:.5rem}.enrollment-info p{color:var(--color-text-secondary);font-size:.9rem;margin-bottom:.25rem}.date-range-selector{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.date-range-selector label{color:var(--color-text-primary);font-weight:600}.date-select{padding:.5rem 1rem;border:2px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text-primary);font-size:.9rem;cursor:pointer}.date-select:focus{outline:none;border-color:var(--color-accent)}.revenue-summary,.attendance-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.summary-card{background:var(--color-surface);border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #092f4e14;border:1px solid var(--color-border);text-align:center}.summary-card h3{color:var(--color-text-secondary);font-size:.9rem;font-weight:600;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.summary-value{color:var(--color-text-primary);font-size:2rem;font-weight:700;margin-bottom:.25rem}.summary-period{color:var(--color-text-secondary);font-size:.85rem}.revenue-chart{background:var(--color-surface);border-radius:12px;padding:2rem;box-shadow:0 2px 8px #092f4e14;border:1px solid var(--color-border)}.revenue-chart h3{color:var(--color-text-primary);font-size:1.3rem;font-weight:700;margin-bottom:1.5rem}.chart-container{display:flex;align-items:end;gap:1rem;height:200px;padding:1rem 0}.chart-bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:.5rem}.bar-label{color:var(--color-text-secondary);font-size:.8rem;font-weight:600}.bar-container{width:100%;height:100%;background:#fcd7991a;border-radius:4px;position:relative;min-height:20px}.bar-fill{position:absolute;bottom:0;width:100%;background:var(--color-accent);border-radius:4px;transition:height .3s ease;min-height:4px}.bar-value{color:var(--color-text-primary);font-size:.8rem;font-weight:600}.attendance-list{background:var(--color-surface);border-radius:12px;padding:2rem;box-shadow:0 2px 8px #092f4e14;border:1px solid var(--color-border)}.attendance-list h3{color:var(--color-text-primary);font-size:1.3rem;font-weight:700;margin-bottom:1.5rem}.attendance-items{display:flex;flex-direction:column;gap:1rem}.attendance-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#fcd7990d;border-radius:8px;border:1px solid var(--color-border)}.attendance-date{color:var(--color-text-primary);font-weight:600}.attendance-stats{display:flex;gap:1rem;align-items:center;color:var(--color-text-secondary);font-size:.9rem}.attendance-rate.good{color:var(--color-success);font-weight:600}.attendance-rate.warning{color:#b8860b;font-weight:600}.attendance-rate.poor{color:var(--color-error);font-weight:600}.teachers-section,.students-section{margin-bottom:2rem}.teachers-section h3,.students-section h3{color:var(--color-text-primary);font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-secondary)}.teachers-grid,.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.teacher-card,.student-card{background:var(--color-surface);border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #092f4e14;border:1px solid var(--color-border);transition:transform .2s ease,box-shadow .2s ease}.teacher-card:hover,.student-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #092f4e1f}.teacher-header,.student-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.teacher-header h4,.student-header h4{color:var(--color-text-primary);font-size:1.2rem;font-weight:700}.rating-badge,.progress-badge{padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:600}.rating-badge.success{background:#5d8e6f1a;color:var(--color-success)}.rating-badge.warning{background:#fcd7994d;color:#b8860b}.rating-badge.error{background:#b74a4a1a;color:var(--color-error)}.progress-badge.warning{background:#fcd7994d;color:#b8860b}.progress-badge.success{background:#5d8e6f1a;color:var(--color-success)}.progress-badge.primary{background:#092f4e1a;color:var(--color-primary)}.teacher-stats,.student-stats{color:var(--color-text-secondary);font-size:.9rem}.teacher-stats p,.student-stats p{margin-bottom:.5rem}.teacher-stats strong,.student-stats strong{color:var(--color-text-primary)}.export-section{margin-top:3rem;padding-top:2rem;border-top:2px solid var(--color-border)}.export-section h3{color:var(--color-text-primary);font-size:1.3rem;font-weight:700;margin-bottom:1rem}.export-buttons{display:flex;gap:1rem;flex-wrap:wrap}@media (max-width: 768px){.metrics-grid{grid-template-columns:1fr;gap:1rem}.metric-card{padding:1rem}.metric-icon{width:50px;height:50px;font-size:1.5rem}.metric-value{font-size:1.5rem}.action-buttons{flex-direction:column}.action-btn{width:100%;justify-content:center}.activity-meta{flex-direction:column;gap:.25rem}.sessions-grid{grid-template-columns:1fr}.session-actions{flex-direction:column;align-items:stretch}.filter-buttons{flex-direction:column}.filter-btn{text-align:center}.customer-tabs,.report-tabs{flex-direction:column;gap:.5rem}.customer-controls{flex-direction:column;align-items:stretch}.search-box{max-width:none}.customers-grid{grid-template-columns:1fr}.customer-actions{flex-direction:column;align-items:stretch}.enrollment-item{flex-direction:column;align-items:flex-start;gap:1rem}.revenue-summary,.attendance-summary{grid-template-columns:1fr}.chart-container{flex-direction:column;height:auto;gap:1rem}.chart-bar{flex-direction:row;align-items:center;gap:1rem}.bar-container{height:40px;min-height:40px}.teachers-grid,.students-grid{grid-template-columns:1fr}.export-buttons{flex-direction:column}}@media (max-width: 480px){.admin-header h1{font-size:1.75rem}.metric-card,.activity-item{flex-direction:column;text-align:center;gap:.75rem}.session-header,.customer-header,.attendance-item{flex-direction:column;align-items:flex-start;gap:.5rem}.attendance-stats{flex-direction:column;gap:.25rem}}.calendar-container{width:100%;background:var(--color-surface);border-radius:12px;overflow:hidden}.calendar-header{display:grid;grid-template-columns:repeat(7,1fr);background:var(--color-secondary);border-bottom:1px solid var(--color-border)}.calendar-header-cell{padding:1rem .5rem;text-align:center;font-weight:600;color:var(--color-text-primary);font-size:.9rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--color-border)}.calendar-day{min-height:80px;background:var(--color-surface);padding:.5rem;cursor:pointer;transition:all .2s ease;position:relative;display:flex;flex-direction:column}.calendar-day:hover{background:var(--color-accent);color:var(--color-surface)}.calendar-day.selected{background:var(--color-primary);color:var(--color-surface)}.calendar-day.empty{background:var(--color-background);cursor:default}.calendar-day.empty:hover{background:var(--color-background)}.day-number{font-weight:600;font-size:.9rem;margin-bottom:.25rem}.schedule-indicators{display:flex;flex-wrap:wrap;gap:2px;margin-top:auto}.schedule-dot{width:6px;height:6px;border-radius:50%;background:var(--color-success);flex-shrink:0}.schedule-dot.unavailable{background:var(--color-error)}.schedule-dot.more{background:var(--color-text-secondary);font-size:.6rem;display:flex;align-items:center;justify-content:center;color:var(--color-surface);font-weight:600}.schedule-teacher-name{background:var(--color-primary);color:var(--color-surface);padding:.2rem .4rem;border-radius:4px;font-size:.7rem;font-weight:600;margin-bottom:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.schedule-more{background:var(--color-text-secondary);color:var(--color-surface);padding:.2rem .4rem;border-radius:4px;font-size:.6rem;font-weight:600;text-align:center}.week-grid{grid-template-columns:repeat(7,1fr);gap:1px}.week-day{min-height:120px;display:flex;flex-direction:column}.day-header{display:flex;flex-direction:column;align-items:center;padding:.5rem;border-bottom:1px solid var(--color-border);background:var(--color-secondary)}.day-name{font-size:.8rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:.25rem}.schedule-list{flex:1;padding:.5rem;overflow-y:auto}.schedule-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;padding:.5rem;margin-bottom:.5rem;cursor:pointer;transition:all .2s ease}.schedule-item:hover{background:var(--color-accent);color:var(--color-surface)}.schedule-item.available{border-left:3px solid var(--color-success)}.schedule-item.unavailable{border-left:3px solid var(--color-error);opacity:.7}.schedule-teacher{font-size:.8rem;font-weight:600;margin-bottom:.25rem}.schedule-time{font-size:.7rem;color:var(--color-text-secondary)}.day-view{padding:1rem}.day-view .day-header{background:var(--color-primary);color:var(--color-surface);padding:1rem;border-radius:8px;margin-bottom:1rem;text-align:center}.day-view .day-header h3{margin:0;font-size:1.2rem}.day-schedules{display:flex;flex-direction:column;gap:1rem}.schedule-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:1rem;cursor:pointer;transition:all .2s ease;display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:1rem;align-items:center}.schedule-card:hover{background:var(--color-accent);color:var(--color-surface);transform:translateY(-2px);box-shadow:0 4px 12px #092f4e26}.schedule-card.available{border-left:4px solid var(--color-success)}.schedule-card.unavailable{border-left:4px solid var(--color-error);opacity:.7}.schedule-time{font-weight:600;font-size:.9rem}.schedule-teacher{font-weight:600;color:var(--color-primary)}.schedule-class{font-size:.8rem;color:var(--color-text-secondary)}.schedule-status{font-size:.8rem;font-weight:600;padding:.25rem .5rem;border-radius:4px;text-align:center}.schedule-card.available .schedule-status{background:var(--color-success);color:var(--color-surface)}.schedule-card.unavailable .schedule-status{background:var(--color-error);color:var(--color-surface)}.no-schedules{text-align:center;padding:2rem;color:var(--color-text-secondary);font-style:italic}@media (max-width: 768px){.calendar-day{min-height:60px;padding:.25rem}.day-number{font-size:.8rem}.schedule-teacher-name{font-size:.6rem;padding:.15rem .3rem}.schedule-more{font-size:.5rem;padding:.15rem .3rem}.calendar-header-cell{padding:.5rem .25rem;font-size:.8rem}.week-day{min-height:100px}.schedule-card{grid-template-columns:1fr;gap:.5rem}.schedule-time,.schedule-teacher,.schedule-class,.schedule-status{text-align:center}}@media (max-width: 480px){.calendar-day{min-height:50px;padding:.2rem}.day-number{font-size:.7rem}.schedule-teacher-name{font-size:.5rem;padding:.1rem .2rem}.schedule-more{font-size:.4rem;padding:.1rem .2rem}.calendar-header-cell{padding:.4rem .2rem;font-size:.7rem}.week-day{min-height:80px}.day-header{padding:.25rem}.day-name{font-size:.7rem}.schedule-list{padding:.25rem}.schedule-item{padding:.25rem;margin-bottom:.25rem}.schedule-teacher{font-size:.7rem}.schedule-time{font-size:.6rem}}@media (max-width: 768px){.lessons-grid{grid-template-columns:1fr;gap:1rem}.lesson-card{padding:1rem}.lesson-header{flex-direction:column;gap:.5rem}.lesson-actions{flex-direction:column}.lesson-sessions{padding:.75rem}.session-info{gap:.2rem}.session-date{font-size:.85rem}.session-teacher,.session-students{font-size:.8rem}.lessons-calendar{padding:1rem}}@media (max-width: 768px){.admin-content{padding:1.25rem}.admin-header{margin-bottom:1.5rem;padding-bottom:.75rem}.admin-header h1{font-size:1.5rem}.admin-header p{font-size:1rem}.admin-table-container{border-radius:8px;overflow-x:auto;-webkit-overflow-scrolling:touch}.admin-table{font-size:.9rem}.admin-table th,.admin-table td{padding:.75rem .5rem;white-space:nowrap}.admin-form-container{padding:1.5rem;border-radius:10px}.admin-form-container h2{font-size:1.25rem;margin-bottom:1.25rem}.admin-form-container .form-group{margin-bottom:1.25rem}.admin-form-container .form-actions{flex-direction:column;gap:.75rem}.admin-form-container .form-actions button{width:100%}}@media (max-width: 480px){.admin-content{padding:1rem}.admin-header{margin-bottom:1.25rem;padding-bottom:.5rem}.admin-header h1{font-size:1.25rem}.admin-header p{font-size:.95rem}.admin-table{font-size:.85rem}.admin-table th,.admin-table td{padding:.6rem .4rem}.admin-form-container{padding:1.25rem;border-radius:8px}.admin-form-container h2{font-size:1.1rem;margin-bottom:1rem}.admin-form-container .form-group{margin-bottom:1rem}.admin-form-container .form-group label{font-size:.9rem;margin-bottom:.4rem}.admin-form-container .form-group input,.admin-form-container .form-group select,.admin-form-container .form-group textarea{padding:.65rem;font-size:.95rem}}.lessons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-bottom:2rem}.lesson-card{background:#fff;border:1px solid #e1e5e9;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;transition:all .2s ease}.lesson-card:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.lesson-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.lesson-header h3{margin:0;color:#2c3e50;font-size:1.2rem;font-weight:600}.lesson-id{background:#f8f9fa;color:#6c757d;padding:.25rem .5rem;border-radius:4px;font-size:.8rem;font-weight:500}.lesson-details{margin-bottom:1.5rem}.lesson-details p{margin:.5rem 0;color:#495057;font-size:.9rem}.lesson-details strong{color:#2c3e50}.lesson-actions{display:flex;gap:.75rem}.lesson-actions .admin-btn{flex:1;padding:.5rem 1rem;font-size:.85rem}.lesson-sessions{margin:1rem 0;padding:1rem;background:#f8f9fa;border-radius:6px;border:1px solid #e9ecef}.lesson-sessions h4{color:#495057;font-size:1rem;font-weight:600;margin-bottom:.75rem;margin-top:0}.sessions-list{display:flex;flex-direction:column;gap:.5rem}.session-item{background:#fff;border:1px solid #dee2e6;border-radius:4px;padding:.75rem;transition:all .2s ease}.session-item:hover{background:#f8f9fa;border-color:#adb5bd}.session-info{display:flex;flex-direction:column;gap:.25rem}.session-date{font-weight:600;color:#495057;font-size:.9rem}.session-teacher{color:#6c757d;font-size:.85rem}.session-students{color:#6c757d;font-size:.8rem;font-style:italic}.more-sessions{text-align:center;padding:.5rem;color:#6c757d;font-size:.85rem;font-style:italic;border-top:1px solid #dee2e6;margin-top:.5rem}.lessons-calendar{background:var(--color-surface);border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #092f4e14;border:1px solid var(--color-border)}.lessons-calendar .session-card{background:var(--color-background-secondary);border:1px solid var(--color-border);border-radius:8px;padding:.75rem;margin-bottom:.5rem;transition:all .2s ease}.lessons-calendar .session-card:hover{background:var(--color-accent);color:var(--color-surface);transform:translateY(-1px);box-shadow:0 4px 8px #0000001a}.timeline-container{position:relative;min-height:900px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:0 0 8px 8px;padding:1rem}.timeline-headers{margin-bottom:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px 8px 0 0;overflow:hidden}.timeline-headers-row{display:flex;height:60px}.timeline-header-label{width:60px;background:var(--color-background-secondary);border-right:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--color-text-secondary);font-size:.8rem}.timeline-header-column{flex:1;padding:.75rem;border-right:1px solid var(--color-border);text-align:center;background:var(--color-background-secondary);font-weight:700;font-size:.9rem;color:var(--color-text-primary);display:flex;align-items:center;justify-content:center}.timeline-header-column:last-child{border-right:none}.timeline-header-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.time-markers{position:absolute;left:0;top:0;bottom:0;width:60px;display:flex;flex-direction:column;justify-content:space-between;padding:1rem 0;border-right:1px solid var(--color-border)}.time-marker{font-size:.75rem;color:var(--color-text-secondary);font-weight:600;text-align:right;padding-right:.5rem;height:30px;display:flex;align-items:center;justify-content:flex-end}.timeline-grid{position:absolute;left:60px;top:0;bottom:0;right:0;display:flex;flex-direction:column;justify-content:space-between;padding:1rem 0}.timeline-grid-line{border-top:1px solid var(--color-border);height:30px;opacity:.3}.session-columns{position:absolute;left:60px;top:0;bottom:0;right:0;display:flex}.session-column{flex:1;position:relative;border-right:1px solid var(--color-border);padding:0 .25rem}.session-column:last-child{border-right:none}.session-block{position:absolute;left:.25rem;right:.25rem;background:var(--color-primary);color:#fff;border-radius:6px;padding:.5rem;cursor:pointer;box-shadow:0 2px 4px #0000001a;border:2px solid rgba(255,255,255,.2);overflow:hidden;transition:all .2s ease}.session-block.ongoing{background:var(--color-accent)}.session-block:hover{transform:scale(1.02);box-shadow:0 4px 8px #0003;z-index:10}.session-block-content{display:flex;flex-direction:column;height:100%;justify-content:space-between}.session-time{font-size:.7rem;opacity:.9;margin-bottom:.25rem}.session-details{display:flex;flex-direction:column;gap:.125rem;font-size:.6rem}.session-teacher-name{font-weight:600}.session-student-count{font-size:.6rem}.status-indicator{position:absolute;top:.25rem;right:.25rem;background:var(--color-success);color:#fff;font-size:.55rem;padding:.125rem .25rem;border-radius:3px;font-weight:600}.status-indicator.ongoing{background:var(--color-accent)}.status-indicator.completed{background:var(--color-text-secondary)}.loading-state,.error-state,.empty-state{text-align:center;padding:3rem 1rem;color:#6c757d}.loading-state p,.error-state p,.empty-state p{margin:1rem 0;font-size:1rem}.error-state{color:#dc3545}.empty-state h3{color:#495057;margin-bottom:.5rem}.empty-state .admin-btn{margin-top:1rem}.view-toggle{display:flex;justify-content:center;gap:.5rem;margin-bottom:1rem}.view-toggle-btn{padding:.5rem 1rem;border:2px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-text);cursor:pointer;font-size:.875rem;transition:all .2s ease}.view-toggle-btn.active{background:var(--color-primary);color:#fff}.view-toggle-btn:hover{border-color:var(--color-primary)}.time-filter{display:flex;justify-content:center;align-items:center;gap:1rem;flex-wrap:wrap;padding:1rem;background:var(--color-background-secondary);border-radius:8px;border:1px solid var(--color-border);margin-bottom:1.5rem}.time-filter-label{font-size:.9rem;font-weight:600;color:var(--color-text-primary);margin-right:.5rem}.time-filter-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.time-filter-btn{padding:.5rem .75rem;border:2px solid var(--color-border);border-radius:6px;background:transparent;color:var(--color-text);cursor:pointer;font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:.25rem;transition:all .2s ease}.time-filter-btn.active{background:var(--color-accent);color:#fff}.time-filter-btn:hover{border-color:var(--color-accent)}.custom-time-range{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.custom-time-range label{font-size:.8rem;color:var(--color-text-secondary)}.custom-time-range input{padding:.25rem .5rem;border:1px solid var(--color-border);border-radius:4px;font-size:.8rem}@media (max-width: 768px){.lessons-grid{grid-template-columns:1fr;gap:1rem}.lesson-card{padding:1rem}.lesson-header{flex-direction:column;gap:.5rem}.lesson-actions{flex-direction:column}.lesson-sessions{padding:.75rem}.session-info{gap:.2rem}.session-date{font-size:.85rem}.session-teacher,.session-students{font-size:.8rem}.lessons-calendar{padding:1rem}.timeline-headers-row{height:50px}.timeline-header-label{width:50px;font-size:.7rem}.timeline-header-column{font-size:.8rem;padding:.5rem}.time-markers{width:50px}.time-marker{font-size:.7rem;height:25px}.session-columns,.timeline-grid{left:50px}.timeline-grid-line{height:25px}.view-toggle{flex-direction:column;align-items:center}.time-filter{flex-direction:column;align-items:center;gap:.75rem}.time-filter-buttons{justify-content:center}.custom-time-range{flex-direction:column;gap:.25rem}}@media (max-width: 480px){.lesson-card{padding:.75rem}.lesson-header h3{font-size:1.1rem}.lesson-id{font-size:.7rem}.session-block{padding:.25rem}.session-time{font-size:.6rem}.session-details{font-size:.5rem}.status-indicator{font-size:.5rem;padding:.1rem .2rem}}.receipt-generator-container{padding:0;background:transparent;border:none;box-shadow:none;max-width:none;margin:0;color:var(--color-text-primary);height:100%;display:flex;flex-direction:column;overflow:hidden}.receipt-generator-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;height:100%;padding:1.5rem;overflow:hidden}.form-section{background:var(--color-surface);border-radius:14px;box-shadow:0 4px 16px #092f4e14;border:1px solid var(--color-border);padding:1.5rem;display:flex;flex-direction:column;overflow:hidden}.form-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.form-header h3{color:var(--color-text-primary);font-size:1.25rem;font-weight:600;margin:0}.receipt-form{display:flex;flex-direction:column;gap:1rem;flex:1;overflow-y:auto}.form-group{display:flex;flex-direction:column}.form-group label{font-weight:600;margin-bottom:.5rem;color:var(--color-text-primary);font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.form-group input,.form-group select{width:100%;padding:.6rem .8rem;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;background:var(--color-surface);color:var(--color-text-primary);transition:all .2s ease;box-sizing:border-box}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #092f4e1a}.form-group input[readonly]{background:var(--color-secondary);cursor:not-allowed;color:var(--color-text-secondary)}.amount-input-wrapper{position:relative;display:flex;align-items:center}.currency-symbol{position:absolute;left:.8rem;color:var(--color-text-secondary);font-weight:600;z-index:1}.amount-input{padding-left:1.5rem!important}.form-actions{margin-top:1rem;display:flex;justify-content:center;flex-shrink:0}.submit-button{background-color:var(--color-primary);color:var(--color-surface);border:none;padding:.8rem 1.5rem;font-size:.9rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;width:100%;justify-content:center}.submit-button:hover{background-color:var(--color-accent);transform:translateY(-1px);box-shadow:0 4px 12px #092f4e33}.button-icon{font-size:1.2rem}.receipt-section{background:var(--color-surface);border-radius:14px;box-shadow:0 4px 16px #092f4e14;border:1px solid var(--color-border);padding:1.5rem;display:flex;flex-direction:column;overflow:hidden}.receipt-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.receipt-header h3{color:var(--color-text-primary);font-size:1.25rem;font-weight:600;margin:0}.receipt-actions{display:flex;gap:.75rem;align-items:center}.email-button{background-color:#28a745;color:#fff;border:none;padding:.6rem 1rem;font-size:.85rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.4rem}.email-button:hover{background-color:#218838;transform:translateY(-1px);box-shadow:0 4px 12px #28a74533}.print-button{background-color:var(--color-primary);color:var(--color-surface);border:none;padding:.6rem 1rem;font-size:.85rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.4rem}.print-button:hover{background-color:var(--color-accent);transform:translateY(-1px);box-shadow:0 4px 12px #092f4e33}.receipt{margin-top:30px;padding:25px 30px;border:2px solid #004080;border-radius:8px;background:#fff;line-height:1.6;flex:1;overflow-y:auto}.receipt-placeholder{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;text-align:center;color:var(--color-text-secondary);font-style:italic}.receipt-header-print{margin-bottom:20px;border-bottom:2px solid #004080;padding-bottom:10px}.receipt-logo-section{display:flex;align-items:center;gap:12px}.receipt-logo{width:40px;height:40px;object-fit:contain}.receipt-header-print h3{color:#004080;margin:0;font-size:1.5rem;font-weight:700}.receipt-details{margin-bottom:1.5rem}.receipt-row{font-size:1.1rem;margin:6px 0}.receipt-row:last-child{border-bottom:none}.receipt-total{border-top:2px solid #004080;font-weight:700;font-size:1.1rem;margin-top:1rem;padding-top:1rem}.receipt-label{width:150px;display:inline-block;color:#002f5b;font-weight:600}.receipt-value{color:#004080;font-weight:600}.receipt-footer{text-align:center;padding-top:1rem;border-top:1px solid rgba(9,47,78,.1)}.receipt-footer p{margin:.4rem 0;color:var(--color-text-secondary);font-size:.85rem}.receipt-date{font-size:.8rem;font-style:italic}.email-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.email-modal{background:var(--color-surface);border-radius:14px;box-shadow:0 8px 32px #092f4e33;border:1px solid var(--color-border);max-width:600px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.email-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--color-border);background:var(--color-secondary)}.email-modal-header h3{color:var(--color-text-primary);font-size:1.25rem;font-weight:600;margin:0}.close-button{background:none;border:none;font-size:1.5rem;color:var(--color-text-secondary);cursor:pointer;padding:.25rem;line-height:1;transition:color .2s ease}.close-button:hover{color:var(--color-text-primary)}.email-content{flex:1;overflow-y:auto;padding:1.5rem}.email-preview{display:flex;flex-direction:column;gap:1rem}.email-mode-toggle{display:flex;gap:.5rem;margin-bottom:1rem;padding:.25rem;background:var(--color-secondary);border-radius:8px}.mode-toggle-btn{flex:1;padding:.6rem 1rem;border:none;background:transparent;color:var(--color-text-secondary);font-weight:600;font-size:.9rem;border-radius:6px;cursor:pointer;transition:all .2s ease}.mode-toggle-btn:hover{background:#092f4e1a;color:var(--color-text-primary)}.mode-toggle-btn.active{background:var(--color-primary);color:var(--color-surface);box-shadow:0 2px 8px #092f4e33}.email-field{display:flex;flex-direction:column;gap:.5rem}.email-field label{font-weight:600;color:var(--color-text-primary);font-size:.9rem}.email-input{padding:.75rem;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;background:var(--color-surface);color:var(--color-text-primary);transition:border-color .2s ease}.email-input:focus{outline:none;border-color:var(--color-primary)}.email-textarea{padding:.75rem;border:1px solid var(--color-border);border-radius:6px;font-size:.9rem;background:var(--color-surface);color:var(--color-text-primary);font-family:inherit;resize:vertical;min-height:200px}.email-textarea:focus{outline:none;border-color:var(--color-primary)}.email-modal-actions{display:flex;gap:.75rem;padding:1.5rem;border-top:1px solid var(--color-border);background:var(--color-secondary)}.copy-button{background-color:#6c757d;color:#fff;border:none;padding:.75rem 1rem;font-size:.85rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;justify-content:center}.copy-button:hover{background-color:#5a6268;transform:translateY(-1px);box-shadow:0 4px 12px #6c757d33}.open-client-button{background-color:#17a2b8;color:#fff;border:none;padding:.75rem 1rem;font-size:.85rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;justify-content:center}.open-client-button:hover{background-color:#138496;transform:translateY(-1px);box-shadow:0 4px 12px #17a2b833}.send-button{background-color:#28a745;color:#fff;border:none;padding:.75rem 1rem;font-size:.85rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;justify-content:center;flex:1}.send-button:hover:not(:disabled){background-color:#218838;transform:translateY(-1px);box-shadow:0 4px 12px #28a74533}.send-button:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}@media print{body *{visibility:hidden}#printable,#printable *{visibility:visible}#printable{position:absolute;left:0;top:0;width:100%}.receipt-generator-container{box-shadow:none;border:none;padding:0}.receipt-generator-header,.form-section,.receipt-header,.print-button{display:none}}@media (max-width: 768px){.receipt-generator-layout{grid-template-columns:1fr;gap:1rem;padding:1rem}.form-section,.receipt-section{padding:1rem}.receipt-header{flex-direction:column;gap:1rem;align-items:stretch}.receipt-actions{flex-direction:column;gap:.5rem}.email-button,.print-button{width:100%;justify-content:center}.receipt-row{flex-direction:column;align-items:flex-start;gap:.25rem}.receipt-value{text-align:left}}@media (max-width: 480px){.receipt-generator-layout{padding:.5rem}.form-section,.receipt-section{padding:.75rem}.receipt{padding:1rem}.receipt-header-print h3{font-size:1.25rem}}:root{--font-family-en: "Poppins", sans-serif;--font-family-cn: "Ma Shan Zheng", cursive;--color-background: #FFFFFF;--color-surface: #FFFFFF;--color-text-primary: #092F4E;--color-text-secondary: #5A5A5A;--color-primary: #092F4E;--color-primary-hover: #1A4D6E;--color-secondary: #FCD799;--color-accent: #9E2F2F;--color-accent-hover: #C91F37;--color-border: #D4D4C9;--color-success: #5D8E6F;--color-error: #B74A4A}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body,.app{font-family:var(--font-family-en);background:linear-gradient(135deg,var(--color-surface) 0%,var(--color-secondary) 100%);color:var(--color-text-primary);min-height:100vh;margin:0}.app-content{margin:0 auto;box-sizing:border-box;min-height:calc(100vh - 128px);scroll-behavior:smooth;padding-top:70px;position:relative;z-index:1}.cn{font-family:var(--font-family-cn)}@media (max-width: 700px){.app-content{min-height:calc(100vh - 128px);padding-top:70px}}[data-role=student]{--color-background: #FFFFFF;--color-surface: #FFFFFF;--color-text-primary: #0D1B2A;--color-text-secondary: #555555;--color-primary: #3A506B;--color-primary-hover: #4A515A;--color-secondary: #E0E0E0;--color-accent: #FF6F61;--color-accent-hover: #F77568;--color-border: #CCCCCC;--color-success: #56B881;--color-error: #E63946}[data-role=teacher]{--color-background: #FFFFFF;--color-surface: #FFFFFF;--color-text-primary: #1C1C1C;--color-text-secondary: #5D5D5D;--color-primary: #3E2723;--color-primary-hover: #5D4037;--color-secondary: #C1BEB6;--color-accent: #6A1B9A;--color-accent-hover: #8E24AA;--color-border: #D7CCC8;--color-success: #43A047;--color-error: #E53935}[data-role=admin]{--color-background: #FFFFFF;--color-surface: #F1F1F1;--color-text-primary: #2B2B2B;--color-text-secondary: #7F7F7F;--color-primary: #4A90E2;--color-primary-hover: #357ABD;--color-secondary: #B0BEC5;--color-accent: #E94E77;--color-accent-hover: #E94E77CC;--color-border: #D1D1D6;--color-success: #81C784;--color-error: #E57373}.main-content{padding-left:2rem;padding-right:2rem;margin:0 auto;box-sizing:border-box}button{background-color:transparent;color:var(--color-primary);border:2px solid var(--color-primary);padding:.9rem 2.5rem;font-size:1.1rem;font-weight:700;border-radius:30px;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none;outline-offset:3px;min-height:36px;line-height:1.2;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;margin:.25rem .5rem;font-family:inherit}button:hover,button:focus-visible{background:var(--color-accent);color:var(--color-surface);border-color:var(--color-accent);outline:none;box-shadow:0 2px 8px #9e2f2f33}button:active{transform:translateY(1px);box-shadow:0 1px 4px #9e2f2f4d}button:disabled{background-color:transparent;border-color:var(--color-border);color:var(--color-border);cursor:not-allowed;box-shadow:none;opacity:.6;transform:none}button.cta,button.primary{background:var(--color-secondary);color:var(--color-primary);border-color:var(--color-secondary);box-shadow:0 2px 8px #fcd79933}button.cta:hover,button.cta:focus-visible,button.primary:hover,button.primary:focus-visible{background:var(--color-accent);color:var(--color-surface);border-color:var(--color-accent);box-shadow:0 2px 8px #9e2f2f33}.auth-container{max-width:500px;margin:2rem auto;background-color:var(--color-surface);border-radius:14px;box-shadow:0 8px 32px #092f4e1f;padding:2.5rem 2rem;border:1px solid var(--color-border)}.tabs{display:flex!important;margin-bottom:2rem!important;gap:0!important;border-radius:8px!important;overflow:hidden!important;background:var(--color-background)!important;border:1px solid var(--color-border)!important;padding:0!important}.tab-btn{flex:1!important;padding:1rem 1.5rem!important;background-color:transparent!important;border:none!important;cursor:pointer!important;font-weight:600!important;font-size:1rem!important;color:var(--color-primary)!important;transition:all .2s ease!important;border-radius:0!important;margin:0!important;min-height:auto!important;border-right:1px solid var(--color-border)!important;position:relative!important;outline:none!important;box-shadow:none!important}.tab-btn:last-child{border-right:none!important}.tab-btn.active{background-color:var(--color-accent)!important;color:var(--color-surface)!important;font-weight:700!important;border-bottom:3px solid var(--color-surface)!important}.tab-btn:not(.active):hover{background-color:#9e2f2f1a!important;color:var(--color-accent)!important;border-bottom:2px solid var(--color-accent)!important}.tab-btn:focus{outline:none!important;box-shadow:none!important}.forgot-password{text-align:center;margin-top:1.5rem}.forgot-password a{color:var(--color-accent);text-decoration:none;font-size:.95rem;transition:color .2s ease}.forgot-password a:hover{color:var(--color-accent-hover);text-decoration:underline}.auth-page-container{display:none;min-height:calc(100vh - 200px);background:linear-gradient(135deg,var(--color-surface) 0%,var(--color-secondary) 100%);padding:2rem}.auth-page-content{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;min-height:calc(100vh - 200px)}.auth-page-left{display:flex;flex-direction:column;justify-content:center;padding:2rem}.auth-page-left h1{font-size:3.5rem;font-weight:700;color:var(--color-text-primary);margin-bottom:1.5rem;line-height:1.2}.auth-page-left p{font-size:1.25rem;color:var(--color-text-secondary);margin-bottom:2rem;line-height:1.6}.auth-page-left .features{display:flex;flex-direction:column;gap:1rem;margin-top:2rem}.auth-page-left .feature{display:flex;align-items:center;gap:1rem;color:var(--color-text-primary);font-size:1.1rem}.auth-page-left .feature-icon{width:24px;min-width:24px;height:24px;min-height:24px;background:var(--color-accent);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-surface);font-size:.8rem;font-weight:700}.auth-page-right{display:flex;justify-content:center;align-items:center}.auth-page-form{background:var(--color-surface);border-radius:20px;box-shadow:0 12px 40px #092f4e26;padding:3rem;width:100%;max-width:450px;border:1px solid var(--color-border)}.auth-page-form h2{text-align:center;font-size:2rem;font-weight:700;color:var(--color-text-primary);margin-bottom:2rem}.auth-page-form .form-group{margin-bottom:2rem}.auth-page-form .form-group label{display:block;margin-bottom:.75rem;font-weight:600;color:var(--color-text-primary);font-size:1rem}.auth-page-form .form-group input,.auth-page-form .form-group select{width:100%;padding:1rem 1.25rem;border:2px solid var(--color-border);border-radius:12px;font-size:1rem;font-family:inherit;transition:all .2s ease;background:var(--color-surface);color:var(--color-text-primary)}.auth-page-form .form-group input:focus,.auth-page-form .form-group select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #9e2f2f1a}.auth-page-form button{width:100%;padding:1rem 2rem;font-size:1.1rem;font-weight:700;border-radius:12px;margin-top:1rem}@media (min-width: 768px){.auth-container{display:none}.auth-page-container{display:block}}@media (max-width: 1200px){.auth-page-content{gap:3rem}.auth-page-left h1{font-size:3rem}}@media (max-width: 767px){.auth-container{display:block}.auth-page-container{display:none}}.auth-form{padding:1rem 0}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--color-text-primary);font-size:1rem}.form-group input,.form-group select{width:100%;padding:.9rem 1.2rem;border:2px solid var(--color-border);border-radius:8px;font-size:1rem;font-family:inherit;transition:border-color .2s ease,box-shadow .2s ease;background:var(--color-surface);color:var(--color-text-primary)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #9e2f2f1a}.error-message{color:var(--color-error);background:#b74a4a1a;padding:.75rem 1rem;border-radius:8px;margin:1rem 0;border-left:4px solid var(--color-error);font-size:.95rem}.success-message{color:var(--color-success);background:#5d8e6f1a;padding:.75rem 1rem;border-radius:8px;margin:1rem 0;border-left:4px solid var(--color-success);font-size:.95rem}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center;min-height:200px}.loading-container h1{color:var(--color-text-primary);margin-bottom:1rem;font-size:1.5rem}.loading-container p{color:var(--color-text-secondary);font-size:1rem}.page-container{max-width:1200px;margin:0 auto;padding:2rem;min-height:calc(100vh - 200px)}.page-header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid var(--color-secondary)}.page-header h1{color:var(--color-text-primary);font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.page-header p{color:var(--color-text-secondary);font-size:1.1rem}.section-container{background:var(--color-surface);border-radius:14px;padding:2rem;margin-bottom:2rem;box-shadow:0 4px 16px #092f4e14;border:1px solid var(--color-border)}.section-title{color:var(--color-text-primary);font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-secondary)}.card{background:var(--color-surface);border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #092f4e14;border:1px solid var(--color-border);transition:transform .2s ease,box-shadow .2s ease}.card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #092f4e1f}.grid{display:grid;gap:1.5rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}@media (max-width: 768px){.page-container{padding:1rem}.section-container{padding:1.5rem}.auth-container{margin:1rem;padding:2rem 1.5rem}.page-header h1{font-size:2rem}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}@media (max-width: 480px){.auth-container{margin:.5rem;padding:1.5rem 1rem}.section-container{padding:1rem}button{padding:.8rem 2rem;font-size:1rem}}.booking-page{padding:2rem;max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box}.booking-title{margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid var(--color-secondary);color:var(--color-text-primary);font-size:2.5rem;font-weight:700}.booking-section{background:var(--color-surface);border-radius:14px;padding:2rem;margin-bottom:2rem;box-shadow:0 4px 16px #092f4e14;border:1px solid var(--color-border);width:100%;box-sizing:border-box}.section-label{font-weight:700;color:var(--color-text-primary);display:block;margin-bottom:1rem;font-size:1.25rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-secondary);text-transform:none}.button-group{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem}.button-group.disabled{opacity:.5;pointer-events:none}.btn{background-color:transparent;border:2px solid var(--color-primary);color:var(--color-primary);padding:.9rem 2rem;font-weight:600;font-size:1rem;border-radius:30px;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none;flex-shrink:0;outline-offset:3px;font-family:inherit}.btn:hover:not(:disabled),.btn:focus-visible:not(:disabled){background:var(--color-accent);color:var(--color-surface);border-color:var(--color-accent);outline:none;box-shadow:0 2px 8px #9e2f2f33}.btn-selected{background:var(--color-accent);color:var(--color-surface);border-color:var(--color-accent);font-weight:700;box-shadow:0 2px 8px #9e2f2f33}.btn:disabled{cursor:not-allowed;opacity:.6;border-color:var(--color-border);color:var(--color-border)}.custom-calendar{width:100%;max-width:500px;margin:1rem auto 0;background:transparent;border-radius:12px;padding:2rem;border:none;box-sizing:border-box}.calendar-header{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #666;border-bottom:1px solid #666;padding:1rem;margin-bottom:1.5rem;background:transparent}.calendar-nav-btn{background:var(--color-surface);border:2px solid var(--color-primary);color:var(--color-primary);border-radius:50%;padding:0;transition:all .3s cubic-bezier(.4,0,.2,1);font-weight:700;font-size:1.1rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000014;cursor:pointer;position:relative;overflow:hidden}.calendar-nav-btn:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--color-accent);border-radius:50%;transform:scale(0);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:1}.calendar-nav-btn span{position:relative;z-index:2;transition:color .3s ease}.calendar-nav-btn:hover{border-color:var(--color-accent);box-shadow:0 4px 16px #9e2f2f26;transform:translateY(-1px)}.calendar-nav-btn:hover:before{transform:scale(1)}.calendar-nav-btn:hover span{color:var(--color-surface)}.calendar-nav-btn:active{transform:translateY(0);box-shadow:0 2px 8px #9e2f2f33}.calendar-month{margin:0;color:var(--color-text-primary);font-weight:700;font-size:1.25rem;text-align:center;flex:1;text-shadow:0 1px 2px rgba(0,0,0,.1)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;margin-bottom:1rem;background:transparent}.weekday{text-align:center;font-weight:600;color:var(--color-text-primary);padding:.75rem;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px;text-shadow:0 1px 1px rgba(0,0,0,.1)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;background:transparent}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s cubic-bezier(.4,0,.2,1);color:var(--color-text-primary);cursor:pointer;font-weight:500;border:2px solid var(--color-primary);font-size:1rem;min-height:45px;background:transparent;text-shadow:0 1px 1px rgba(0,0,0,.1);position:relative;overflow:hidden;box-shadow:0 2px 4px #0000000d}.calendar-day:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--color-secondary);border-radius:50%;transform:scale(0);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:1}.calendar-day span{position:relative;z-index:2;transition:color .3s ease}.calendar-day:hover:not(.disabled):not(.empty){border-color:var(--color-secondary);transform:translateY(-1px) scale(1.02);box-shadow:0 4px 12px #0000001a}.calendar-day:hover:not(.disabled):not(.empty):before{transform:scale(1)}.calendar-day:hover:not(.disabled):not(.empty) span{color:var(--color-primary)}.calendar-day.today{background:var(--color-primary);color:var(--color-surface);font-weight:700;border-color:var(--color-primary);box-shadow:0 2px 8px #3a506b33;transform:scale(1.05)}.calendar-day.today:before{background:var(--color-primary);transform:scale(1)}.calendar-day.selected{background:var(--color-accent);color:var(--color-surface);border-color:var(--color-accent);font-weight:700;box-shadow:0 2px 8px #9e2f2f33;transform:scale(1.05)}.calendar-day.selected:before{background:var(--color-accent);transform:scale(1)}.calendar-day:active:not(.disabled):not(.empty){transform:translateY(0) scale(.98);box-shadow:0 2px 6px #00000014}.calendar-day.disabled{background:transparent;color:#666;border-color:transparent;cursor:not-allowed;opacity:.7;font-weight:400}.calendar-day.disabled:hover{background:transparent;color:#999;border-color:transparent;cursor:not-allowed;transform:none}.calendar-day.empty{background:transparent;cursor:default;pointer-events:none;color:transparent;border-color:transparent;-webkit-user-select:none;user-select:none}.cancellation-policy{background:#ffc1070d;border:1px solid rgba(255,193,7,.2);border-radius:8px;padding:20px}.cancellation-policy h3{color:#856404;margin:0 0 12px;font-size:1.1rem;font-weight:600}.cancellation-policy p{color:#856404;margin:0 0 12px;font-size:.95rem}.cancellation-policy ul{margin:0;padding-left:20px;color:#856404}.cancellation-policy li{margin-bottom:8px;line-height:1.5;font-size:.9rem}.cancellation-policy li:last-child{margin-bottom:0}.cancellation-policy strong{color:#856404;font-weight:700}.security-policy{background:#092f4e0d;border:1px solid rgba(9,47,78,.2);border-radius:8px;padding:20px}.security-policy h3{color:var(--color-primary);margin:0 0 12px;font-size:1.1rem;font-weight:600}.security-policy p{color:var(--color-text-secondary);margin:0;font-size:.95rem;line-height:1.5}.booking-policy-info{background:#ffc1071a;border:1px solid rgba(255,193,7,.3);border-radius:8px;padding:16px;margin:16px 0;font-size:.9rem}.booking-policy-info p{margin:0 0 8px;color:#856404;font-weight:600}.booking-policy-info ul{margin:0;padding-left:20px;color:#856404}.booking-policy-info li{margin-bottom:4px;line-height:1.4}.booking-policy-info li:last-child{margin-bottom:0}@media (max-width: 768px){.booking-page{padding:1rem;width:100%;box-sizing:border-box}.booking-section{padding:1.25rem;margin-bottom:1.5rem;width:100%;box-sizing:border-box}.booking-title{font-size:1.75rem;margin-bottom:1.5rem;word-wrap:break-word}.section-label{font-size:1.1rem;word-wrap:break-word}.btn{padding:.8rem 1.5rem;font-size:.95rem;min-width:auto;flex:1 1 auto}.button-group{gap:.75rem}.custom-calendar{width:100%;max-width:100%;padding:1rem;box-sizing:border-box}.calendar-header{padding:.75rem}.calendar-day{min-height:40px;font-size:.9rem}.calendar-grid{gap:.4rem}.calendar-weekdays{gap:.4rem;margin-bottom:.75rem}.calendar-nav-btn{width:35px;height:35px;font-size:1rem;box-shadow:0 1px 6px #00000014}.calendar-month{font-size:1rem}.form-group{margin-bottom:1.25rem}.form-group input{padding:.8rem 1rem;font-size:.95rem}}@media (max-width: 480px){.booking-page{padding:.75rem;width:100%;box-sizing:border-box}.booking-section{padding:1rem;margin-bottom:1.25rem;width:100%;box-sizing:border-box}.booking-title{font-size:1.5rem;margin-bottom:1.25rem;padding-bottom:.75rem;word-wrap:break-word}.section-label{font-size:1rem;margin-bottom:.75rem;word-wrap:break-word}.button-group{gap:.5rem}.btn{padding:.7rem 1rem;font-size:.85rem;min-width:auto;flex:1 1 auto}.custom-calendar{padding:.75rem;box-sizing:border-box}.calendar-header{padding:.5rem;margin-bottom:1rem}.calendar-nav-btn{width:32px;height:32px;font-size:.85rem;box-shadow:0 1px 4px #00000014}.calendar-month{font-size:.95rem}.calendar-day{min-height:32px;font-size:.85rem}.calendar-grid{gap:.25rem}.calendar-weekdays{gap:.25rem;margin-bottom:.5rem}.weekday{font-size:.75rem;padding:.5rem .25rem}.form-group{margin-bottom:1rem}.form-group label{font-size:.9rem;margin-bottom:.4rem}.form-group input{padding:.75rem .9rem;font-size:.9rem}.booking-button{padding:.9rem 1.5rem;font-size:1rem}}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--color-text-primary);font-size:.95rem;text-transform:none}.form-group input{width:100%;padding:.9rem 1.2rem;border:1px solid var(--color-border);border-radius:8px;font-size:1rem;background:var(--color-surface);color:var(--color-text-primary);transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box}.form-group input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #9e2f2f1a}.form-group input.error{border-color:var(--color-error);box-shadow:0 0 0 3px #b74a4a1a}.error-message{display:block;color:var(--color-error);font-size:.85rem;margin-top:.25rem;font-weight:500}.booking-button{width:100%;padding:1rem 2rem;background:var(--color-accent);color:var(--color-surface);border:1px solid var(--color-accent);border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px}.booking-button:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover);transform:translateY(-2px);box-shadow:0 4px 12px #9e2f2f4d}.booking-button:disabled{background:var(--color-border);border-color:var(--color-border);color:var(--color-text-secondary);cursor:not-allowed;transform:none;box-shadow:none}.booking-btn,.cancel-btn{box-sizing:border-box;width:100%;margin-bottom:.75rem}.booking-btn:last-of-type,.cancel-btn:last-of-type{margin-bottom:0}@media (min-width: 481px){.booking-btn,.cancel-btn{width:auto;min-width:150px;margin-right:1rem;margin-bottom:0}.booking-btn:last-of-type,.cancel-btn:last-of-type{margin-right:0}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;box-sizing:border-box;overflow-y:auto}.modal-content{background:var(--color-surface);border-radius:16px;padding:2rem;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d;border:1px solid var(--color-border);box-sizing:border-box}.modal-content h2{margin-top:0;margin-bottom:1.5rem;color:var(--color-text-primary);font-size:1.5rem;word-wrap:break-word}.booking-details{margin-bottom:1.5rem}.booking-details p{margin:.75rem 0;color:var(--color-text-primary);word-wrap:break-word}.modal-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem}.success-message{margin-top:1.5rem;padding:1rem;background:#5d8e6f1a;border-radius:8px;border-left:4px solid var(--color-success);word-wrap:break-word}.success-message p{margin:.5rem 0;color:var(--color-text-primary)}@media (min-width: 481px){.modal-actions{flex-direction:row;justify-content:flex-start}.modal-content{padding:2.5rem}.modal-content h2{font-size:1.75rem}}@media (max-width: 480px){.modal-overlay{padding:.5rem}.modal-content{padding:1.5rem;border-radius:12px}.modal-content h2{font-size:1.25rem;margin-bottom:1.25rem}.booking-details{margin-bottom:1.25rem}.booking-details p{margin:.5rem 0;font-size:.95rem}.modal-actions{margin-top:1.25rem}}.calendar-container{height:100%;background-color:var(--color-surface);border-radius:14px;position:relative;box-shadow:0 4px 16px #092f4e14;border:1px solid var(--color-border);display:flex;flex-direction:column;overflow:hidden}.rbc-timeslot-group{min-height:70px}.event-display{justify-content:space-between;align-items:center;font-size:13px;line-height:1.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.left-side{flex-shrink:1}.right-side{flex-shrink:0;white-space:nowrap}.timeblock-background-event-text{color:#000;font-weight:700;font-size:25px}.timeblock-background-event-work{background-color:#72f0b5;opacity:.3;border:none}.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#092f4e99;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background-color:var(--color-surface);border-radius:14px;padding:2rem;margin:1rem;width:400px;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px #092f4e40;border:1px solid var(--color-border)}.rbc-event-label{display:none!important}.modal-content h2{color:var(--color-text-primary);font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-secondary)}.modal-content p{color:var(--color-text-secondary);margin-bottom:.75rem;font-size:1rem}.modal-content strong{color:var(--color-text-primary);font-weight:600}.modal-close-button{margin-top:1.5rem;padding:.9rem 2rem;background-color:transparent;color:var(--color-primary);border:2px solid var(--color-primary);border-radius:30px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .2s ease}.modal-close-button:hover{background:var(--color-accent);color:var(--color-surface);border-color:var(--color-accent);box-shadow:0 2px 8px #9e2f2f33}.calendar-filter-section{max-height:300px;overflow-y:auto}@media (max-width: 768px){.calendar-container{padding:1.5rem;height:100%}.calendar-filter-section{max-height:250px}.modal-content{width:90%;max-width:350px;padding:1.5rem;margin:.5rem}}@media (max-width: 480px){.calendar-container{padding:1rem;height:100%}.calendar-filter-section{max-height:200px}.modal-content{padding:1rem}.modal-content h2{font-size:1.25rem}}.app-header{display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;z-index:1000;background:#ffffff80;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid #ccc;padding:1rem;box-shadow:0 2px 4px #0000001a}.app-logo{display:flex;align-items:center;justify-content:center;padding:.2rem .7rem;border-radius:6px;transition:color .2s,background .2s;color:var(--color-primary);text-decoration:none;margin-right:1rem}.app-logo:hover,.app-logo:focus{color:var(--color-surface);background:var(--color-accent);outline:none}.app-header h1{font-size:2.2rem;letter-spacing:2px;color:var(--color-accent);margin-bottom:.3rem;font-weight:700}nav{display:flex;gap:1.2rem}.nav-link{margin:0 1.2rem;text-decoration:none;color:var(--color-primary);font-weight:600;font-size:1.08rem;padding:.2rem .6rem;border-radius:6px;transition:color .2s,background .2s;display:inline-flex;align-items:center;justify-content:center;height:40px;line-height:1;vertical-align:middle}.nav-link:hover,.nav-link:focus{color:var(--color-surface);background:var(--color-accent);outline:none}button.nav-link{background:none;border:none;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;height:40px;line-height:1;vertical-align:middle}.hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;width:40px;height:40px;border:none;border-radius:6px;cursor:pointer;padding:0;margin-left:auto;z-index:1001;color:var(--color-primary);transition:color .2s,background .2s}.hamburger span{display:block;height:2px;width:24px;background:currentColor;border-radius:2px;margin:4px 0;transition:all .3s;position:relative}.hamburger.open span:nth-child(1){transform:translateY(10px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-10px) rotate(-45deg)}.hamburger:hover,.hamburger:focus{color:var(--color-surface);background:var(--color-accent);outline:none}@media (max-width: 700px){.hamburger{display:flex}.app-header{flex-direction:row;align-items:center;justify-content:space-between;padding:.7rem .5rem}nav{position:absolute;top:100%;left:0;right:0;background:var(--color-background);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-direction:column;align-items:center;gap:.5rem;margin-top:0;padding:1rem 0 1.2rem;box-shadow:0 4px 16px #092f4e14;display:none;z-index:999;cursor:pointer}nav.open{display:flex}.nav-link{justify-content:center;width:100%;text-align:center;margin:0;cursor:pointer}.language-switcher .nav-link{width:auto;justify-content:center}.app-logo{width:auto;justify-content:flex-start;text-align:left;margin:0}}.language-switcher{display:flex;gap:1.2rem}.language-switcher-button{margin:0 1.2rem;text-decoration:none;gap:.5rem;color:var(--color-primary);font-weight:600;font-size:1.08rem;padding:.2rem .6rem;border-radius:6px;transition:color .2s,background .2s;display:inline-flex;align-items:center;justify-content:center;height:40px;line-height:1;vertical-align:middle}.language-switcher-button:hover,.language-switcher-button:focus{color:var(--color-surface);background:var(--color-accent);outline:none}.language-flag{font-size:1.2rem;line-height:1}.language-code{font-size:.9rem;font-weight:700}@media (max-width: 700px){.language-switcher{margin:.5rem 0}}.footer{background-color:var(--color-background);padding:2rem 1rem;display:flex;flex-direction:column;align-items:center;gap:1rem;font-size:.95rem;border-top:1px solid var(--color-border)}.footer .socialIcons{display:flex;gap:1.5rem;font-size:1.3rem}.footer .socialIcons a{color:var(--color-primary);padding:.2rem .7rem;border-radius:6px;transition:color .2s ease-in-out;text-decoration:none}.footer .socialIcons a:hover{color:var(--color-surface);background:var(--color-accent)}a[aria-label=RedNote] i,a[aria-label=RedNote] .icon-custom{color:inherit;width:1rem;height:1rem;fill:currentColor;vertical-align:middle;display:inline-block;transition:color .3s ease}a[aria-label=RedNote]:hover i,a[aria-label=RedNote]:hover .icon-custom{color:var(--color-surface);background:var(--color-accent)}.footer .copyright{color:var(--color-primary);opacity:.7}.loading-container{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:var(--color-background);display:flex;justify-content:center;align-items:center;z-index:9999}.loading-video,.loading-gif{width:500px;height:auto}.data-loading-overlay{position:fixed;top:70px;left:0;right:0;bottom:0;background-color:#fffffff2;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;display:flex;justify-content:center;align-items:center;pointer-events:auto}.data-loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%;height:calc(100vh - 70px)}.data-loading-video{width:100%;height:100%;object-fit:cover;border-radius:0;box-shadow:none}@media (max-width: 768px){.data-loading-overlay{top:70px}.data-loading-container{height:calc(100vh - 70px)}.data-loading-video{width:100%;height:100%}}@media (max-width: 480px){.data-loading-overlay{top:70px}.data-loading-container{height:calc(100vh - 70px)}.data-loading-video{width:100%;height:100%}}html{scroll-padding-top:80px}.payment-status{text-align:center;padding:2rem;max-width:800px;margin:0 auto}.payment-loading{text-align:center;padding:2rem;min-height:400px;display:flex;align-items:center;justify-content:center;flex-direction:column}.loading-text{font-size:1.2rem;margin-bottom:1rem;color:var(--color-text-primary);font-weight:600}.loading-subtitle{color:var(--color-text-secondary)}.status-icon{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;box-shadow:0 2px 8px #092f4e1a}.status-text{margin-bottom:1rem;color:var(--color-text-primary);font-size:2rem;font-weight:700}.error-text{color:var(--color-error);margin-bottom:1rem;font-weight:600;font-size:1.5rem}.error-description{color:var(--color-text-secondary);margin-bottom:2rem}.purchase-details{background-color:var(--color-surface);padding:2rem;border-radius:12px;margin:2rem auto;max-width:600px;text-align:left;box-shadow:0 4px 16px #092f4e14;border:1px solid var(--color-border)}.purchase-details h3{margin-top:0;margin-bottom:1.5rem;color:var(--color-text-primary);text-align:center;font-weight:700;font-size:1.3rem}.details-grid{display:grid;gap:.8rem}.detail-row{display:flex;justify-content:space-between;padding:.8rem 0;border-bottom:1px solid var(--color-border)}.detail-row:last-child{border-bottom:none}.detail-label{font-weight:600;color:var(--color-text-primary)}.detail-value{text-align:right;color:var(--color-text-secondary)}.detail-value.session-id{font-family:Courier New,monospace;font-size:.9em;color:var(--color-text-secondary)}.detail-value.payment-status{font-weight:600;text-transform:capitalize}.detail-value.payment-status.paid{color:var(--color-success)}.detail-value.payment-status.unpaid{color:var(--color-error)}.detail-value.capitalize{text-transform:capitalize;color:var(--color-text-primary)}.amount-row{display:flex;justify-content:space-between;padding:.8rem 0;margin-top:.5rem;font-size:1.2em;border-top:2px solid var(--color-border);font-weight:700}.amount-value{color:var(--color-success);font-weight:700}.payment-elements-details{margin:2rem auto;max-width:500px;background-color:var(--color-surface);border-radius:12px;padding:1.5rem;box-shadow:0 4px 16px #092f4e14;border:1px solid var(--color-border)}.payment-elements-details h3{margin-top:0;margin-bottom:1.5rem;color:var(--color-text-primary);font-weight:700;text-align:center}.details-table{width:100%;border-collapse:collapse}.table-label{padding:.8rem 0;font-weight:600;color:var(--color-text-primary);border-bottom:1px solid var(--color-border)}.table-content{padding:.8rem 0;border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);text-align:right}.table-content.intent-id{font-family:Courier New,monospace;font-size:.9em}.table-content.intent-status{text-transform:capitalize;font-weight:600}.table-content.intent-status.succeeded{color:var(--color-success)}.action-buttons{margin-top:3rem;align-items:center;display:inline-block}.button-group{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.action-button{display:inline-flex;align-items:center;justify-content:center;padding:1rem 2rem;color:var(--color-surface);text-decoration:none;border-radius:6px;font-weight:600;font-size:1.08rem;transition:background-color .2s ease;cursor:pointer;border:none;font-family:var(--font-family-en);min-width:160px}.action-button.primary{background-color:var(--color-primary)}.action-button.primary:hover{background-color:var(--color-primary-hover)}.action-button.success{background-color:var(--color-success)}.action-button.success:hover{background-color:#4a6b57}.action-button.retry{margin-top:1rem;background-color:var(--color-accent)}.action-button.retry:hover{background-color:var(--color-accent-hover)}.stripe-dashboard-link{display:inline-block;margin-top:2rem;color:var(--color-primary);text-decoration:none;font-size:.9rem;padding:.2rem .6rem;border-radius:6px;transition:color .2s,background .2s}.stripe-dashboard-link:hover{color:var(--color-surface);background:var(--color-accent);text-decoration:none}.external-link-icon{padding-left:5px;vertical-align:middle}.payment-id-text{text-align:center;font-size:.8rem;color:var(--color-text-secondary);margin-top:1rem;font-family:Courier New,monospace;opacity:.7}@media (max-width: 700px){.payment-status{padding:1rem}.purchase-details,.payment-elements-details{margin:1rem auto;padding:1.5rem}.status-text{font-size:1.5rem}.button-group{flex-direction:column;align-items:center}.action-button{width:100%;max-width:280px}.detail-row{flex-direction:column;gap:.3rem;align-items:flex-start}.detail-value{text-align:left;font-weight:500}.amount-row{flex-direction:column;gap:.3rem;align-items:flex-start}}.loading-text:after{content:"";display:inline-block;width:20px;animation:dots 1.5s linear infinite}@keyframes dots{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}.status-icon{animation:fadeInScale .6s ease-out}@keyframes fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.detail-row{transition:background-color .2s ease}.detail-row:hover{background-color:#d4d4c91a;border-radius:4px;margin:0 -.5rem;padding:.8rem .5rem}.test-completion-notice{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:1rem 0;padding:.5rem 1rem;background:#ffc1071a;border:1px solid #ffc107;border-radius:20px;font-size:.9rem;color:#856404}.test-badge{background:#ffc107;color:#856404;padding:.2rem .5rem;border-radius:12px;font-weight:600;font-size:.8rem}.contact-page-content{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-top:2rem}.contact-info-section,.contact-form-section{background:var(--color-surface);border-radius:14px;padding:2rem;box-shadow:0 4px 16px #092f4e14;border:1px solid var(--color-border)}.contact-info-section h2,.contact-form-section h2{color:var(--color-text-primary);font-size:1.5rem;font-weight:700;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-secondary)}.contact-info-section p{color:var(--color-text-secondary);margin-bottom:2rem;line-height:1.6}.contact-methods{display:flex;flex-direction:column;gap:1.5rem}.contact-method{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--color-background);border-radius:8px;border:1px solid var(--color-border);transition:all .2s ease}.contact-method:hover{transform:translateY(-2px);box-shadow:0 4px 12px #092f4e1a;border-color:var(--color-accent)}.contact-icon{width:40px;height:40px;background:var(--color-accent);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-surface);font-size:1.1rem;flex-shrink:0}.contact-details h5{color:var(--color-text-primary);font-size:.9rem;font-weight:600;margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.5px}.contact-details a{color:var(--color-accent);text-decoration:none;font-weight:500;transition:color .2s ease}.contact-details a:hover{color:var(--color-accent-hover);text-decoration:underline}.contact-form{display:flex;flex-direction:column;gap:1.5rem}.contact-form .form-group{margin-bottom:0}.contact-form .form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--color-text-primary);font-size:.95rem}.contact-form .form-group input,.contact-form .form-group select,.contact-form .form-group textarea{width:100%;padding:.9rem 1.2rem;border:2px solid var(--color-border);border-radius:8px;font-size:1rem;font-family:inherit;transition:all .2s ease;background:var(--color-surface);color:var(--color-text-primary)}.contact-form .form-group input:focus,.contact-form .form-group select:focus,.contact-form .form-group textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #9e2f2f1a}.contact-form .form-group textarea{resize:vertical;min-height:120px}.contact-form button{width:100%;padding:1rem 2rem;font-size:1.1rem;font-weight:700;border-radius:8px;margin-top:.5rem;background:var(--color-accent);color:var(--color-surface);border-color:var(--color-accent)}.contact-form button:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.contact-form button:disabled{background:var(--color-border);border-color:var(--color-border);color:var(--color-text-secondary);cursor:not-allowed}.contact-form .success-message,.contact-form .error-message{padding:1rem;border-radius:8px;font-weight:500;text-align:center}.contact-form .success-message{background:#5d8e6f1a;color:var(--color-success);border:1px solid var(--color-success)}.contact-form .error-message{background:#b74a4a1a;color:var(--color-error);border:1px solid var(--color-error)}@media (max-width: 768px){.contact-page-content{grid-template-columns:1fr;gap:2rem}.contact-info-section,.contact-form-section{padding:1.5rem}.contact-method{padding:.8rem}.contact-icon{width:35px;height:35px;font-size:1rem}}@media (max-width: 480px){.contact-info-section,.contact-form-section{padding:1rem}.contact-method{flex-direction:column;text-align:center;gap:.8rem}.contact-details{text-align:center}}.profile{display:flex;flex-direction:column;justify-content:flex-start;padding:2rem;min-height:calc(100vh - 200px);width:100%;margin:0;max-width:none}.profile-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;gap:1rem}.profile-welcome{background:var(--color-surface);border-radius:14px;padding:2rem;margin-bottom:2rem;box-shadow:0 4px 16px #092f4e14;border:1px solid var(--color-border)}.profile-email-text{display:inline-block;font-size:16px;font-family:Arial,sans-serif;color:#333;background-color:#e0f0ff;padding:8px 12px;border-radius:12px;box-shadow:0 1px 3px #0000001a;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-change-password-button{display:inline-block;padding:8px 16px}.loading-spinner{display:flex;justify-content:center;align-items:center;height:200px;font-size:18px;color:var(--color-text-secondary)}.gamified-profile{margin-bottom:3rem}.level-section{margin-bottom:2.5rem}.level-card{background:var(--color-surface);border-radius:24px;padding:2.5rem;display:flex;align-items:center;gap:2.5rem;color:var(--color-text-primary);box-shadow:0 8px 32px #092f4e0f;border:1px solid var(--color-border);position:relative;overflow:hidden}.level-badge{background:var(--color-primary);border-radius:20px;width:100px;height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;position:relative;z-index:1;box-shadow:0 8px 24px #092f4e26}.level-number{font-size:2.5rem;font-weight:700;line-height:1;margin-bottom:.25rem}.level-label{font-size:.75rem;opacity:.9;text-transform:uppercase;letter-spacing:1px;font-weight:500}.level-info{flex:1;position:relative;z-index:1}.level-info h3{margin:0 0 1.5rem;font-size:1.75rem;font-weight:600;color:var(--color-text-primary)}.experience-bar{background:#f1f5f9;border-radius:12px;height:8px;overflow:hidden;margin-bottom:.75rem;position:relative}.experience-fill{background:var(--color-secondary);height:100%;border-radius:12px;transition:width 1s cubic-bezier(.4,0,.2,1);position:relative}.experience-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer 3s ease-in-out infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.level-info p{margin:0;font-size:.9rem;color:var(--color-text-secondary);font-weight:500}.stats-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-bottom:2.5rem}.stat-card{background:var(--color-surface);border-radius:20px;padding:2rem;display:flex;align-items:center;gap:1.25rem;box-shadow:0 4px 20px #092f4e0a;border:1px solid var(--color-border);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.stat-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #092f4e14;border-color:var(--color-accent)}.stat-icon{font-size:1.75rem;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--color-accent);border-radius:16px;color:#fff;box-shadow:0 4px 16px #9e2f2f33}.stat-info h4{margin:0 0 .5rem;font-size:.8rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.stat-number{margin:0;font-size:2rem;font-weight:700;color:var(--color-text-primary)}.achievements-section{background:var(--color-surface);border-radius:24px;padding:2.5rem;box-shadow:0 4px 20px #092f4e0a;border:1px solid var(--color-border)}.achievements-section h3{margin:0 0 2rem;font-size:1.75rem;color:var(--color-text-primary);font-weight:600;position:relative}.achievements-section h3:after{content:"";position:absolute;bottom:-.5rem;left:0;width:60px;height:3px;background:var(--color-accent);border-radius:2px}.achievements-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}.achievement-card{background:var(--color-background);border-radius:16px;padding:1.75rem;display:flex;align-items:center;gap:1.25rem;border:1px solid var(--color-border);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.achievement-card.unlocked{border-color:var(--color-success);background:var(--color-surface);transform:translateY(-2px);box-shadow:0 8px 24px #5d8e6f1a}.achievement-card.locked{opacity:.7;filter:grayscale(.3)}.achievement-card.unlocked:hover{transform:translateY(-4px);box-shadow:0 12px 32px #5d8e6f26}.achievement-icon{font-size:2.25rem;width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:#f8fafc;border-radius:16px;flex-shrink:0;transition:all .3s ease}.achievement-card.unlocked .achievement-icon{background:var(--color-success);color:#fff;box-shadow:0 4px 16px #5d8e6f4d}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.achievement-card.unlocked .achievement-icon{animation:pulse 3s ease-in-out infinite}.achievement-info{flex:1}.achievement-info h4{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:var(--color-text-primary)}.achievement-info p{margin:0 0 1rem;font-size:.9rem;color:var(--color-text-secondary);line-height:1.5}.achievement-progress{display:flex;align-items:center;gap:.75rem}.achievement-progress .progress-bar{flex:1;height:4px;background:#f1f5f9;border-radius:2px;overflow:hidden;position:relative}.achievement-progress .progress-bar:before{content:"";position:absolute;top:0;left:0;height:100%;background:var(--color-success);border-radius:2px;transition:width .8s cubic-bezier(.4,0,.2,1)}.achievement-progress span{font-size:.8rem;color:var(--color-text-secondary);font-weight:500}@media (max-width: 768px){.level-card{flex-direction:column;text-align:center;gap:1.5rem;padding:2rem}.stats-section{grid-template-columns:repeat(2,1fr)}.achievements-grid{grid-template-columns:1fr}.stat-card{flex-direction:column;text-align:center;padding:1.5rem}.achievements-section{padding:2rem}}@media (max-width: 480px){.stats-section{grid-template-columns:1fr}.level-badge{width:80px;height:80px}.level-number{font-size:2rem}.stat-icon{width:48px;height:48px;font-size:1.5rem}.achievement-icon{width:56px;height:56px;font-size:2rem}}.achievement-celebration{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .4s cubic-bezier(.4,0,.2,1)}.celebration-content{background:var(--color-surface);border-radius:24px;padding:3rem;text-align:center;color:var(--color-text-primary);position:relative;overflow:hidden;animation:scaleIn .6s cubic-bezier(.4,0,.2,1);box-shadow:0 24px 80px #092f4e33;border:1px solid var(--color-border);max-width:90vw;max-height:90vh}.celebration-icon{font-size:4rem;margin-bottom:1.5rem;animation:bounce 2s ease-in-out infinite}.celebration-content h3{margin:0 0 .5rem;font-size:1.5rem;font-weight:700;color:var(--color-accent);text-transform:uppercase;letter-spacing:1px}.celebration-content h4{margin:0 0 1rem;font-size:1.25rem;color:var(--color-text-primary);font-weight:600}.celebration-content p{margin:0;font-size:1rem;color:var(--color-text-secondary);line-height:1.5}.celebration-sparkles{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.sparkle{position:absolute;width:3px;height:3px;background:var(--color-secondary);border-radius:50%;animation:sparkle 2.5s ease-in-out infinite;animation-delay:var(--delay)}.sparkle:nth-child(1){top:20%;left:20%}.sparkle:nth-child(2){top:20%;right:20%}.sparkle:nth-child(3){bottom:20%;left:20%}.sparkle:nth-child(4){bottom:20%;right:20%}.sparkle:nth-child(5){top:50%;left:10%}.sparkle:nth-child(6){top:50%;right:10%}.sparkle:nth-child(7){left:50%;top:10%}.sparkle:nth-child(8){left:50%;bottom:10%}.sparkle:nth-child(9){top:30%;left:50%}.sparkle:nth-child(10){bottom:30%;left:50%}.sparkle:nth-child(11){top:40%;left:30%}.sparkle:nth-child(12){top:40%;right:30%}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}@keyframes sparkle{0%,to{transform:scale(0) rotate(0);opacity:0}50%{transform:scale(1) rotate(180deg);opacity:1}}.verification-required{margin-bottom:3rem}.verification-card{background:var(--color-surface);border-radius:24px;padding:3rem;text-align:center;color:var(--color-text-primary);position:relative;overflow:hidden;box-shadow:0 8px 32px #092f4e0f;border:1px solid var(--color-border)}.verification-icon{font-size:3.5rem;margin-bottom:1.5rem;position:relative;z-index:1;animation:lockBounce 3s ease-in-out infinite;color:var(--color-accent)}.verification-card h3{margin:0 0 1rem;font-size:1.75rem;font-weight:700;position:relative;z-index:1;color:var(--color-text-primary)}.verification-card p{margin:0 0 2rem;font-size:1.1rem;color:var(--color-text-secondary);line-height:1.6;position:relative;z-index:1}.verification-benefits{display:flex;flex-direction:column;gap:1rem;max-width:450px;margin:0 auto;position:relative;z-index:1}.benefit-item{display:flex;align-items:center;gap:1rem;background:#f8fafc;padding:1.25rem;border-radius:16px;border:1px solid var(--color-border);transition:all .3s cubic-bezier(.4,0,.2,1)}.benefit-item:hover{transform:translate(4px);background:var(--color-surface);box-shadow:0 4px 16px #092f4e14}.benefit-icon{font-size:1.25rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-accent);border-radius:12px;color:#fff;flex-shrink:0}.benefit-item span:last-child{font-size:.95rem;font-weight:500;color:var(--color-text-primary)}@keyframes lockBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@media (max-width: 768px){.verification-card{padding:2rem}.verification-card h3{font-size:1.5rem}.verification-card p{font-size:1rem}.verification-benefits{max-width:100%}.benefit-item{padding:1rem}.benefit-icon{width:36px;height:36px;font-size:1.1rem}}.profile-sidebar-nav{position:sticky;top:10%;padding:1rem 2rem 1rem 1rem;min-width:180px;height:100vh}.profile-sidebar-items{margin:.5rem 0;border-radius:6px;box-shadow:0 1px 3px #0000001a;transition:background-color .3s ease,box-shadow .3s ease}.profile-sidebar-link{display:block;padding:10px 16px;cursor:pointer;text-decoration:none;border-radius:6px;transition:color .3s ease,box-shadow .3s ease}.profile-top-section{background:var(--color-surface);border-radius:20px;padding:2rem;margin-bottom:2rem;box-shadow:0 4px 20px #092f4e0f;border:1px solid var(--color-border)}.profile-avatar-section{display:flex;align-items:center;gap:2rem}.profile-avatar{width:80px;height:80px;border-radius:50%;overflow:hidden;border:3px solid var(--color-primary);box-shadow:0 4px 16px #092f4e26;flex-shrink:0}.profile-avatar img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--color-primary);color:#fff;font-size:2rem;font-weight:700}.profile-user-info h2{margin:0 0 .5rem;font-size:1.75rem;font-weight:600;color:var(--color-text-primary)}.profile-email{margin:0 0 .75rem;font-size:1rem;color:var(--color-text-secondary)}.profile-verification-badge{display:inline-block}.verified-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--color-success);color:#fff;border-radius:20px;font-size:.9rem;font-weight:600}.not-verified-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f59e0b;color:#fff;border-radius:20px;font-size:.9rem;font-weight:600}.profile-section,.security-section,.achievements-tab{padding:2rem;overflow-y:auto;height:100%}.profile-section h3,.security-section h3{margin:0 0 1.5rem;font-size:1.5rem;font-weight:600;color:var(--color-text-primary)}.profile-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;padding:1.75rem;margin-bottom:1.5rem;box-shadow:0 2px 8px #092f4e0f;transition:all .3s ease}.profile-card:hover{box-shadow:0 4px 16px #092f4e1a}.profile-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border)}.profile-card-title{font-size:1.1rem;font-weight:600;color:var(--color-text-primary);margin:0;display:flex;align-items:center;gap:.5rem}.profile-card-icon{font-size:1.25rem}.profile-card-content{display:flex;flex-direction:column;gap:1.25rem}.profile-field{display:flex;flex-direction:column;gap:.5rem}.profile-field-label{font-size:.9rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.profile-field-value{padding:.75rem 1rem;background:var(--color-background);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-primary);font-size:1rem}.profile-field-input{padding:.75rem 1rem;background:var(--color-surface);border:2px solid var(--color-border);border-radius:8px;color:var(--color-text-primary);font-size:1rem;font-family:inherit;transition:all .2s ease}.profile-field-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #092f4e1a}.profile-field-input:disabled{background:var(--color-background);opacity:.6;cursor:not-allowed}.profile-status-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:20px;font-size:.85rem;font-weight:600;border:1px solid}.profile-status-badge.verified{background:#5d8e6f1a;color:var(--color-success);border-color:var(--color-success)}.profile-status-badge.not-verified{background:#ecba5d1a;color:#d97706;border-color:#f59e0b}.profile-status-badge.loading{background:#9e9e9e1a;color:var(--color-text-secondary);border-color:var(--color-border)}.profile-action-btn{align-self:flex-start;padding:.75rem 1.5rem;background:var(--color-primary);color:#fff;border:2px solid var(--color-primary);border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem}.profile-action-btn:hover:not(:disabled){background:var(--color-accent);border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 4px 12px #9e2f2f33}.profile-action-btn:active:not(:disabled){transform:translateY(0)}.profile-action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.profile-action-btn.secondary{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}.profile-action-btn.secondary:hover:not(:disabled){background:#092f4e0d;border-color:var(--color-primary);transform:translateY(-2px);box-shadow:0 4px 12px #092f4e1a}.profile-action-btn.success{background:var(--color-success);border-color:var(--color-success)}.profile-feedback{padding:.75rem 1rem;border-radius:8px;font-size:.9rem;font-weight:500;display:flex;align-items:center;gap:.5rem;border:1px solid;animation:slideIn .3s ease}.profile-feedback.success{background:#5d8e6f1a;color:var(--color-success);border-color:var(--color-success)}.profile-feedback.error{background:#b74a4a1a;color:var(--color-error);border-color:var(--color-error)}.profile-feedback.info{background:#0a66c21a;color:var(--color-primary);border-color:var(--color-primary)}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.profile-field-row{display:flex;gap:1rem;align-items:flex-end}.profile-field-row .profile-field{flex:1}.achievements-tab{padding:2rem;overflow-y:auto}.achievements-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:2rem}.achievements-stats .stat-card{padding:1.5rem}.achievement-category{margin-bottom:2rem}.achievement-category:last-child{margin-bottom:0}.achievement-category h3{margin:0 0 1.25rem;font-size:1.1rem;font-weight:600;color:var(--color-text-primary);padding-bottom:.5rem;border-bottom:2px solid var(--color-border)}.achievement-card.locked{opacity:.6;filter:grayscale(.5)}.achievement-card.locked .achievement-icon{background:#e2e8f0;color:#94a3b8}.how-to-unlock{margin-top:.5rem;font-size:.85rem;color:var(--color-text-secondary);font-style:italic}.verify-button{margin-top:1.5rem;padding:.75rem 2rem;background:var(--color-primary);color:#fff;border:none;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 16px #0a66c233}.verify-button:hover{background:var(--color-secondary);transform:translateY(-2px);box-shadow:0 6px 20px #0a66c24d}.achievements-tab .verification-required{margin:0;padding:2rem 0}.achievements-tab .verification-card{max-width:600px;margin:0 auto}@media (max-width: 768px){.profile{padding:1rem}.profile-avatar-section{flex-direction:column;text-align:center;gap:1rem}.profile-top-section{padding:1.5rem;margin-bottom:1rem}.profile-section,.security-section,.achievements-tab,.profile-card{padding:1.5rem}.profile-card-header{flex-direction:column;align-items:flex-start;gap:.75rem}.profile-field-row{flex-direction:column}.achievements-stats{grid-template-columns:repeat(2,1fr);gap:.75rem}.achievements-grid{grid-template-columns:1fr}}@media (max-width: 480px){.profile{padding:.5rem}.profile-top-section{padding:1rem}.profile-avatar{width:60px;height:60px}.avatar-placeholder{font-size:1.5rem}.profile-user-info h2{font-size:1.25rem}.profile-email{font-size:.9rem}.profile-section,.security-section,.achievements-tab{padding:1rem}.profile-card{padding:1.25rem;margin-bottom:1rem}.profile-card-title{font-size:1rem}.profile-action-btn{width:100%;justify-content:center}.achievements-stats{grid-template-columns:1fr}.achievements-stats .stat-card{padding:1.25rem}}
