html{margin:0;padding:0;background-color:#2c3e50}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:#f5f5f5;color:#333;margin:0;padding:0;overflow:hidden}#app{height:100vh;display:flex;flex-direction:column;overflow:hidden}.navbar{background-color:#2c3e50;color:#fff;box-shadow:0 2px 4px #0000001a;position:fixed;top:0;left:0;right:0;z-index:100001;flex-shrink:0;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}@supports (-webkit-touch-callout: none){.navbar{padding-top:env(safe-area-inset-top)}}.nav-container{width:100%;max-width:100vw;margin:0 auto;display:flex;align-items:center;padding:.5rem 1rem;position:relative}.nav-logo{display:flex;align-items:center;margin-right:1rem}.nav-logo img{height:40px;width:auto}.nav-brand{flex:1;text-align:center;padding:0 1rem}.nav-brand h1{font-size:1.2rem;font-weight:600;margin:0}.nav-links{display:flex;gap:.5rem;align-items:center;margin-left:auto}.nav-link{color:#fff;text-decoration:none;padding:.5rem 1rem;border-radius:4px;transition:background-color .2s;white-space:nowrap;font-size:.95rem}.nav-link:hover{background-color:#ffffff1a}.nav-link.router-link-active{background-color:#fff3;font-weight:600}.nav-user-profile{margin-left:1rem}.profile-circle{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;cursor:pointer;transition:all .2s ease;border:2px solid rgba(255,255,255,.3)}.profile-circle:hover{transform:scale(1.05);border-color:#fff9}.nav-auth-links{margin-left:1rem}.auth-link{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.3)}.auth-link:hover{background:rgba(255,255,255,.2);border-color:#ffffff80}.nav-divider{border:none;border-top:1px solid rgba(255,255,255,.2);margin:1rem 0}.nav-user-section{margin-bottom:1rem}.user-name-display{display:flex;align-items:center;gap:.5rem;color:#fff;font-weight:600;font-size:1rem;margin-bottom:.75rem;padding:.3rem;border-radius:8px;background:rgba(255,255,255,.05)}.logout-btn{background:none;border:none;color:#fff;text-decoration:none;padding:.3rem;border-radius:8px;transition:background-color .2s;font-weight:500;margin-bottom:.3rem;cursor:pointer;font-family:inherit;font-size:inherit;display:flex;align-items:center;gap:.75rem;width:100%}.logout-btn:hover{background-color:#e74c3c33}.nav-auth-section{margin-bottom:1rem}.nav-toggle{display:none;flex-direction:column;background:none;border:none;cursor:pointer;padding:.5rem;z-index:110;position:absolute;left:6px}.nav-toggle span{width:25px;height:3px;background:white;margin:3px 0;transition:.3s;border-radius:2px}.nav-toggle.active{opacity:0;pointer-events:none}.nav-menu{position:fixed;top:0;left:-100%;width:280px;height:100vh;height:100dvh;background:#2c3e50;transition:left .3s ease;z-index:100002;box-shadow:2px 0 10px #0000004d;padding-top:env(safe-area-inset-top)}.nav-menu-open{left:0}.nav-menu-content{padding:0rem 1.5rem 2rem;min-height:0;flex:1;display:flex;flex-direction:column;overflow-y:auto;padding-bottom:calc(2rem + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.nav-menu-header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center}.nav-menu-header h3{color:#fff;font-size:1.25rem;font-weight:600;margin:0}.button-nav-toggle{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:background-color .2s;line-height:1}.button-nav-toggle:hover{background-color:#ffffff1a}.nav-menu-links{display:flex;flex-direction:column;gap:.5rem;flex:1}.nav-menu-link{display:flex;align-items:center;gap:.75rem;color:#fff;text-decoration:none;padding:.3rem;border-radius:8px;transition:background-color .2s;font-weight:500;margin-bottom:.3rem}.nav-menu-link:hover{background-color:#ffffff1a}.nav-menu-link.router-link-active{background-color:#fff3;font-weight:600}.nav-menu-link.admin-link{background:rgba(220,53,69,.2);border:1px solid rgba(220,53,69,.5)}.nav-menu-link.admin-link:hover{background:rgba(220,53,69,.3)}.nav-icon{font-size:1.125rem;width:1.5rem;text-align:center}.nav-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.5);z-index:100001}.main-content{flex:1;width:100%;max-width:1024px;padding:1rem 3rem 3rem;background-color:#fff;height:calc(100vh - 55px);margin-top:55px;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}@media (max-width: 768px){.main-content{padding:1rem;padding-left:0;padding-right:0}}.main-content::-webkit-scrollbar{display:none}.nav-menu-divider{height:1px;background:rgba(255,255,255,.1);margin:1rem 0}.pwa-update-section{padding:1rem 0}.pwa-update-item{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.pwa-update-label{color:#ffffffb3;font-size:.875rem;font-weight:500}.btn-pwa-update{display:flex;align-items:center;justify-content:center;gap:.5rem;background:#3498db;color:#fff;border:none;padding:.75rem 1rem;border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;transition:background-color .2s}.btn-pwa-update:hover:not(:disabled){background:#2980b9}.btn-pwa-update:disabled{opacity:.6;cursor:not-allowed}.btn-pwa-update.available{background:#27ae60;animation:pulse 2s infinite}.btn-pwa-update.available:hover{background:#229954}.btn-force-update{display:flex;align-items:center;justify-content:center;gap:.5rem;background:#e74c3c;color:#fff;border:none;padding:.75rem 1rem;border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;transition:background-color .2s;margin-top:.5rem}.btn-force-update:hover{background:#c0392b}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}@media (max-width: 768px){.desktop-only{display:none}.nav-toggle{display:flex}.nav-brand h1{font-size:.9rem}.nav-logo{margin-left:2rem}.nav-logo img{height:30px;margin-left:10px}.main-content{padding:1rem}.admin-page{margin:-1rem}}@media (min-width: 769px){.nav-container{max-width:1024px;margin:0}}@media (max-width: 768px){.problem-equation{font-size:2rem!important;gap:.5rem!important}.operand{min-width:60px!important;height:80px!important}.blank-input{width:80px!important;height:80px!important;font-size:2rem!important;padding:.25rem!important}.operator{font-size:2rem!important;min-width:40px!important}.exercise-container{max-height:calc(100vh - 160px);padding:1rem!important}.exercise-title{font-size:2rem!important}.exercise-meta{flex-direction:column!important;gap:.5rem!important}}.exercise-meta{display:flex;justify-content:center;gap:2rem;font-size:.9rem;color:#666;text-align:center;margin-bottom:.75rem}.grade-level{background:#e3f2fd;padding:.25rem .75rem;border-radius:1rem;color:#1565c0;font-weight:500}.author{background:#f3e5f5;padding:.25rem .75rem;border-radius:1rem;color:#7b1fa2;font-weight:500}.feedback{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:1.5rem;font-weight:600;padding:1rem 1.5rem;border-radius:8px;transition:all .3s ease;height:3rem;margin-bottom:.5rem;opacity:0;visibility:hidden}.feedback.visible{opacity:1;visibility:visible}.feedback.correct{color:#28a745;background:#d4edda;border:1px solid #c3e6cb}.feedback.incorrect{color:#dc3545;background:#f8d7da;border:1px solid #f5c6cb}.page-container[data-v-cb17ccf1]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh}.page-icon[data-v-cb17ccf1]{font-size:72pt;color:#d3d3d3;margin-bottom:1rem}.page-title[data-v-cb17ccf1]{font-size:72pt;color:#d3d3d3;font-weight:300;margin:0}.page-container[data-v-df7a91c5]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh}.page-icon[data-v-df7a91c5]{font-size:72pt;color:#d3d3d3;margin-bottom:1rem}.page-title[data-v-df7a91c5]{font-size:72pt;color:#d3d3d3;font-weight:300;margin:0}.page-container[data-v-e1e46cc5]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh}.page-icon[data-v-e1e46cc5]{font-size:72pt;color:#d3d3d3;margin-bottom:1rem}.page-title[data-v-e1e46cc5]{font-size:72pt;color:#d3d3d3;font-weight:300;margin:0}.tools-page[data-v-f68048f4]{max-width:1200px;margin:0 auto;padding:2rem}.page-header[data-v-f68048f4]{text-align:center;margin-bottom:3rem}.page-icon[data-v-f68048f4]{font-size:4rem;color:#2c3e50;margin-bottom:1rem}.page-title[data-v-f68048f4]{font-size:2.5rem;color:#2c3e50;margin:0 0 .5rem;font-weight:600}.page-description[data-v-f68048f4]{color:#666;font-size:1.1rem;margin:0}.search-section[data-v-f68048f4]{margin-bottom:3rem}.search-container[data-v-f68048f4]{position:relative;max-width:500px;margin:0 auto}.search-icon[data-v-f68048f4]{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:#666}.search-input[data-v-f68048f4]{width:100%;padding:.75rem 1rem .75rem 2.5rem;border:2px solid #e1e5e9;border-radius:.5rem;font-size:1rem;transition:border-color .2s}.search-input[data-v-f68048f4]:focus{outline:none;border-color:#2c3e50}.clear-button[data-v-f68048f4]{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;color:#666;cursor:pointer;padding:.25rem;border-radius:50%;transition:background-color .2s}.clear-button[data-v-f68048f4]:hover{background-color:#f0f0f0}.tools-grid[data-v-f68048f4]{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:1.5rem;margin-bottom:2rem}.tool-card[data-v-f68048f4]{background:white;border:1px solid #e1e5e9;border-radius:.75rem;padding:1.5rem;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000000d}.tool-card[data-v-f68048f4]:hover{border-color:#2c3e50;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.tool-icon[data-v-f68048f4]{font-size:2.5rem;color:#2c3e50;margin-bottom:1rem}.tool-title[data-v-f68048f4]{font-size:1.25rem;font-weight:600;color:#2c3e50;margin:0 0 .5rem}.tool-description[data-v-f68048f4]{color:#666;line-height:1.5;margin:0 0 1rem}.tool-meta[data-v-f68048f4]{display:flex;justify-content:space-between;align-items:center;font-size:.875rem;color:#888}.tool-type[data-v-f68048f4]{background:#e3f2fd;color:#1565c0;padding:.25rem .5rem;border-radius:.25rem;font-weight:500}.no-results[data-v-f68048f4]{text-align:center;padding:3rem 1rem;color:#666}.no-results i[data-v-f68048f4]{font-size:3rem;margin-bottom:1rem;color:#ccc}.no-results p[data-v-f68048f4]{font-size:1.1rem;margin:0}@media (max-width: 768px){.tools-page[data-v-f68048f4]{padding:1rem}.page-title[data-v-f68048f4]{font-size:2rem}.tools-grid[data-v-f68048f4]{grid-template-columns:1fr}.tool-card[data-v-f68048f4]{padding:1rem}}.page-container[data-v-c16b4dee]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh}.page-icon[data-v-c16b4dee]{font-size:72pt;color:#d3d3d3;margin-bottom:1rem}.page-title[data-v-c16b4dee]{font-size:72pt;color:#d3d3d3;font-weight:300;margin:0}.auth-popup-overlay[data-v-c6c1dea5]{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(2px);animation:overlayFadeIn-c6c1dea5 .3s ease-out}@keyframes overlayFadeIn-c6c1dea5{0%{opacity:0;backdrop-filter:blur(0px)}to{opacity:1;backdrop-filter:blur(2px)}}.auth-popup[data-v-c6c1dea5]{background:white;border-radius:12px;box-shadow:0 20px 40px #0003;max-width:450px;width:90%;max-height:90vh;overflow-y:auto;animation:popupExpandIn-c6c1dea5 .4s cubic-bezier(.34,1.56,.64,1)}@keyframes popupExpandIn-c6c1dea5{0%{opacity:0;transform:scale(.3)}50%{opacity:.8;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.auth-popup-header[data-v-c6c1dea5]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 1.5rem 1rem;border-bottom:1px solid #e1e5e9}.auth-popup-header h3[data-v-c6c1dea5]{margin:0;color:#2c3e50;font-size:1.25rem;font-weight:600}.close-button[data-v-c6c1dea5]{background:none;border:none;color:#6c757d;font-size:1.25rem;cursor:pointer;padding:.25rem;border-radius:50%;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.close-button[data-v-c6c1dea5]:hover{background:#f8f9fa;color:#495057}.auth-popup-content[data-v-c6c1dea5]{padding:1.5rem}.benefits-list[data-v-c6c1dea5]{margin-bottom:1.5rem}.benefit-item[data-v-c6c1dea5]{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;color:#495057}.benefit-item i[data-v-c6c1dea5]{color:#28a745;width:1.25rem;text-align:center}.auth-message[data-v-c6c1dea5]{text-align:center;font-size:1.1rem;color:#2c3e50;margin:0;font-weight:500}.auth-popup-actions[data-v-c6c1dea5]{padding:1rem 1.5rem 1.5rem;display:flex;gap:.75rem;flex-direction:column}.btn-create-account[data-v-c6c1dea5],.btn-continue[data-v-c6c1dea5]{padding:.875rem 1.5rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:1rem}.btn-create-account[data-v-c6c1dea5]{background:#007bff;color:#fff}.btn-create-account[data-v-c6c1dea5]:hover{background:#0056b3;transform:translateY(-1px)}.btn-continue[data-v-c6c1dea5]{background:#f8f9fa;color:#6c757d;border:2px solid #e1e5e9}.btn-continue[data-v-c6c1dea5]:hover{background:#e9ecef;color:#495057;border-color:#ced4da}@media (max-width: 480px){.auth-popup[data-v-c6c1dea5]{margin:1rem;width:calc(100% - 2rem)}.auth-popup-header[data-v-c6c1dea5],.auth-popup-content[data-v-c6c1dea5],.auth-popup-actions[data-v-c6c1dea5]{padding-left:1rem;padding-right:1rem}.auth-popup-actions[data-v-c6c1dea5]{gap:.5rem}.btn-create-account[data-v-c6c1dea5],.btn-continue[data-v-c6c1dea5]{padding:.75rem 1rem;font-size:.95rem}}.practice-main[data-v-898ab558]{display:flex;flex-direction:column;height:100%;width:100%;max-width:1024px;background-color:#fff}.search-section-fixed[data-v-898ab558]{position:relative;padding:1rem 3rem;background-color:#fff;z-index:10}.content-area[data-v-898ab558]{flex:1;overflow-y:auto;padding:0 3rem 3rem;scrollbar-width:none;-ms-overflow-style:none}.content-area[data-v-898ab558]::-webkit-scrollbar{display:none}.search-section[data-v-898ab558]{position:relative;margin-bottom:1rem;margin-top:1rem}.search-container[data-v-898ab558]{position:relative;margin:0 auto}.search-input[data-v-898ab558]{width:100%;padding:.75rem 1rem .75rem 2.5rem;border:2px solid #e1e5e9;border-radius:.5rem;font-size:1rem;transition:border-color .2s ease;background:white}.search-input[data-v-898ab558]:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.search-icon[data-v-898ab558]{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:#6b7280;pointer-events:none}.clear-button[data-v-898ab558]{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;color:#6b7280;cursor:pointer;padding:.25rem;border-radius:50%;transition:background-color .2s ease}.clear-button[data-v-898ab558]:hover{background-color:#f3f4f6}.search-results[data-v-898ab558]{position:absolute;top:100%;left:50%;transform:translate(-50%);width:100%;max-width:600px;height:80vh;overflow-y:auto;background:white;border:1px solid #e1e5e9;border-radius:.5rem;box-shadow:0 10px 25px #0000001a;z-index:1000;margin-top:.25rem;scrollbar-width:none;-ms-overflow-style:none}.search-results[data-v-898ab558]::-webkit-scrollbar{display:none}.exercise-card[data-v-898ab558]{padding:.75rem;border-bottom:1px solid #f3f4f6;cursor:pointer;transition:background-color .2s ease}.exercise-card[data-v-898ab558]:hover{background-color:#f9fafb}.exercise-card[data-v-898ab558]:last-child{border-bottom:none}.exercise-title[data-v-898ab558]{font-weight:600;color:#1f2937;margin-bottom:.25rem}.exercise-meta[data-v-898ab558]{display:flex;gap:.5rem;margin-bottom:.25rem}.grade[data-v-898ab558],.category[data-v-898ab558]{font-size:.75rem;padding:.125rem .375rem;border-radius:.25rem;font-weight:500}.grade[data-v-898ab558]{background-color:#dbeafe;color:#1e40af}.category[data-v-898ab558]{background-color:#ecfdf5;color:#065f46}.exercise-description[data-v-898ab558]{font-size:.875rem;color:#6b7280;line-height:1.4}.no-results[data-v-898ab558]{padding:2rem;text-align:center;color:#6b7280}.no-results i[data-v-898ab558]{font-size:2rem;margin-bottom:.5rem;opacity:.5}.welcome-section[data-v-898ab558]{text-align:center;padding:3rem 1rem;color:#6b7280}.welcome-content[data-v-898ab558]{max-width:500px;margin:0 auto}.welcome-icon[data-v-898ab558]{font-size:3rem;color:#2196f3;margin-bottom:1rem}.welcome-content h2[data-v-898ab558]{color:#1f2937;margin-bottom:1rem}.stats[data-v-898ab558]{display:flex;justify-content:center;gap:2rem;margin-top:2rem}.stat[data-v-898ab558]{display:flex;flex-direction:column;align-items:center}.stat .number[data-v-898ab558]{font-size:1.5rem;font-weight:700;color:#2196f3}.stat .label[data-v-898ab558]{font-size:.875rem;color:#6b7280}.error-component[data-v-898ab558]{text-align:center;padding:2rem;color:#dc2626}.error-component i[data-v-898ab558]{font-size:2rem;margin-bottom:1rem}@media (max-width: 768px){.search-section-fixed[data-v-898ab558]{padding:.5rem}.content-area[data-v-898ab558]{padding:0 .5rem .5rem}.exercise-content[data-v-898ab558]{padding:1rem}.exercise-title[data-v-898ab558]{font-size:1.5rem!important}.stats[data-v-898ab558]{gap:1rem}}[data-v-898ab558] mark{background-color:#fef08a;padding:.125rem 0;border-radius:.125rem}.login-page[data-v-128850c9]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:1rem}.login-container[data-v-128850c9]{width:100%;max-width:400px}.login-card[data-v-128850c9]{background:white;border-radius:1rem;padding:2rem;box-shadow:0 10px 30px #0003;border:1px solid #e1e5e9}.login-header[data-v-128850c9]{text-align:center;margin-bottom:2rem}.login-title[data-v-128850c9]{color:#2c3e50;font-size:2rem;font-weight:700;margin:0 0 .5rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.login-title i[data-v-128850c9]{color:#667eea}.login-subtitle[data-v-128850c9]{color:#666;font-size:1rem;margin:0}.form-group[data-v-128850c9]{margin-bottom:1.5rem}.form-label[data-v-128850c9]{display:flex;align-items:center;gap:.5rem;color:#2c3e50;font-weight:600;margin-bottom:.5rem;font-size:.9rem}.form-input[data-v-128850c9]{width:100%;padding:.875rem 1rem;border:2px solid #e1e5e9;border-radius:.5rem;font-size:1rem;transition:all .2s ease;box-sizing:border-box}.form-input[data-v-128850c9]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-input[data-v-128850c9]:disabled{background-color:#f8f9fa;cursor:not-allowed;opacity:.7}.error-message[data-v-128850c9]{background:#fee;color:#c33;padding:.75rem;border-radius:.5rem;border:1px solid #fcc;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem;font-size:.9rem}.login-button[data-v-128850c9]{width:100%;padding:1rem;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.login-button[data-v-128850c9]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea4d}.login-button[data-v-128850c9]:disabled{opacity:.7;cursor:not-allowed;transform:none}.login-footer[data-v-128850c9]{margin-top:2rem;text-align:center}.signup-prompt[data-v-128850c9]{color:#666;margin-bottom:1.5rem}.signup-link[data-v-128850c9]{color:#667eea;text-decoration:none;font-weight:600}.signup-link[data-v-128850c9]:hover{text-decoration:underline}.help-text[data-v-128850c9]{border-top:1px solid #e9ecef;padding-top:1rem}.help-text p[data-v-128850c9]{color:#999;font-size:.875rem;margin:.5rem 0;display:flex;align-items:center;justify-content:center;gap:.5rem}.email-popup-overlay[data-v-128850c9]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.email-popup[data-v-128850c9]{background:white;border-radius:.75rem;max-width:600px;width:100%;max-height:90vh;overflow:hidden;box-shadow:0 20px 40px #0000004d}.email-header[data-v-128850c9]{background:#f8f9fa;padding:1rem 1.5rem;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;align-items:center}.email-header h3[data-v-128850c9]{margin:0;color:#2c3e50;font-size:1.1rem}.close-btn[data-v-128850c9]{background:none;border:none;color:#6c757d;cursor:pointer;padding:.25rem;border-radius:.25rem;transition:color .2s ease}.close-btn[data-v-128850c9]:hover{color:#dc3545}.email-content[data-v-128850c9]{overflow-y:auto;max-height:calc(90vh - 100px)}.email-headers[data-v-128850c9]{background:#f8f9fa;padding:1rem;padding-bottom:0;border-radius:.5rem;margin-bottom:1rem;font-family:monospace;font-size:.875rem}.email-headers div[data-v-128850c9]{margin-bottom:.25rem}.email-body[data-v-128850c9]{border:1px solid #dee2e6;border-radius:.5rem;padding:1rem;background:white}.email-body div[style*="font-family: Arial"][data-v-128850c9]{padding:0!important}.email-body div[style*="font-family: 'Courier New'"][data-v-128850c9]{font-size:30px!important}.session-expired-alert[data-v-128850c9]{background:#fff3cd;border:1px solid #ffc107;border-radius:.5rem;padding:.875rem 1rem;margin-bottom:1.5rem;color:#856404;display:flex;align-items:center;gap:.75rem;font-size:.95rem;animation:slideIn-128850c9 .3s ease-out}.session-expired-alert i[data-v-128850c9]{font-size:1.25rem}@keyframes slideIn-128850c9{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.login-page[data-v-128850c9]{padding:.5rem}.login-card[data-v-128850c9]{padding:1.5rem}.login-title[data-v-128850c9]{font-size:1.75rem}.email-popup[data-v-128850c9]{margin:1rem}}.register-page[data-v-da605f38]{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:1rem}.register-container[data-v-da605f38]{width:100%;max-width:500px}.register-card[data-v-da605f38]{background:white;border-radius:1rem;padding:2rem;box-shadow:0 10px 30px #0003;border:1px solid #e1e5e9}.register-header[data-v-da605f38]{text-align:center;margin-bottom:.75rem}.register-title[data-v-da605f38]{color:#2c3e50;font-size:2rem;font-weight:700;margin:0 0 .5rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.register-title i[data-v-da605f38]{color:#667eea}.register-subtitle[data-v-da605f38]{color:#666;font-size:1rem;margin:0}.form-row[data-v-da605f38]{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.5rem}.form-group[data-v-da605f38]{margin-bottom:.5rem}.form-row .form-group[data-v-da605f38]{margin-bottom:0}.form-label[data-v-da605f38]{display:flex;align-items:center;gap:.5rem;color:#2c3e50;font-weight:600;margin-bottom:.5rem;font-size:.9rem}.form-input[data-v-da605f38]{width:100%;padding:.5rem 1rem;border:2px solid #e1e5e9;border-radius:.5rem;font-size:1rem;transition:all .2s ease;box-sizing:border-box}.phone-input-container[data-v-da605f38]{display:flex;align-items:center;gap:.75rem;border:2px solid #e1e5e9;border-radius:.5rem;padding:.5rem 1rem;transition:all .2s ease;background:white}.phone-input-container[data-v-da605f38]:focus-within{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.phone-capture-input[data-v-da605f38]{width:30px;padding:0;border:none;font-size:1rem;text-align:center;background:transparent}.phone-capture-input[data-v-da605f38]:focus{outline:none}.phone-display[data-v-da605f38]{flex:1;font-size:1rem;color:#2c3e50;cursor:text;user-select:none}.phone-display[data-v-da605f38]:empty:before{content:"+1 (___) ___-____";color:#999}.form-input[data-v-da605f38]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-input[data-v-da605f38]:disabled{background-color:#f8f9fa;cursor:not-allowed;opacity:.7}.error-message[data-v-da605f38]{background:#fee;color:#c33;padding:.75rem;border-radius:.5rem;border:1px solid #fcc;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem;font-size:.9rem}.register-button[data-v-da605f38]{width:100%;padding:1rem;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem}.register-button[data-v-da605f38]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea4d}.register-button[data-v-da605f38]:disabled{opacity:.7;cursor:not-allowed;transform:none}.register-footer[data-v-da605f38]{margin-top:.5rem;text-align:center}.login-prompt[data-v-da605f38]{color:#666;margin-bottom:1.5rem}.login-link[data-v-da605f38]{color:#667eea;text-decoration:none;font-weight:600}.login-link[data-v-da605f38]:hover{text-decoration:underline}.help-text[data-v-da605f38]{border-top:1px solid #e9ecef;padding-top:1rem}.help-text p[data-v-da605f38]{color:#999;font-size:.875rem;margin:.5rem 0;display:flex;align-items:center;justify-content:flex-start;gap:.5rem;line-height:1.4}.email-popup-overlay[data-v-da605f38]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.email-popup[data-v-da605f38]{background:white;border-radius:.75rem;max-width:600px;width:100%;max-height:90vh;overflow:hidden;box-shadow:0 20px 40px #0000004d}.email-header[data-v-da605f38]{background:#f8f9fa;padding:1rem 1.5rem;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;align-items:center}.email-header h3[data-v-da605f38]{margin:0;color:#2c3e50;font-size:1.1rem}.close-btn[data-v-da605f38]{background:none;border:none;color:#6c757d;cursor:pointer;padding:.25rem;border-radius:.25rem;transition:color .2s ease}.close-btn[data-v-da605f38]:hover{color:#dc3545}.email-content[data-v-da605f38]{overflow-y:auto;max-height:calc(90vh - 100px)}.email-headers[data-v-da605f38]{background:#f8f9fa;border-radius:.5rem;margin-bottom:1rem;font-family:monospace;font-size:.875rem}.email-headers div[data-v-da605f38]{margin-bottom:.25rem}.email-body[data-v-da605f38]{border:1px solid #dee2e6;border-radius:.5rem;background:white}.email-body[data-v-da605f38] .verification-code{font-family:Courier New,monospace;font-size:26px;font-weight:700;color:#2c3e50;letter-spacing:8px}.email-body[data-v-da605f38] div{font-family:Arial,sans-serif;max-width:600px;margin:0 auto;padding:4px}.main-content[data-v-da605f38]{flex:1;width:100%;max-width:1024px;padding:.5rem 3rem 3rem;background-color:#fff;height:calc(100vh - 60px);margin-top:46px;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}@media (max-width: 768px){.main-content[data-v-da605f38]{padding:0}.register-card[data-v-da605f38]{padding:1.5rem}.register-title[data-v-da605f38]{font-size:1.75rem}.form-row[data-v-da605f38]{grid-template-columns:1fr;gap:.5rem}}.code-input-container[data-v-e6d129d1]{display:flex;flex-direction:column;align-items:center;gap:1rem}.code-inputs[data-v-e6d129d1]{display:flex;gap:.75rem;justify-content:center}.code-digit[data-v-e6d129d1]{width:60px;height:60px;border:3px solid #e1e5e9;border-radius:.75rem;background:white;font-family:Courier New,Consolas,Monaco,monospace;font-size:2rem;font-weight:700;text-align:center;color:#2c3e50;transition:all .2s ease;outline:none}.code-digit[data-v-e6d129d1]:focus{border-color:#667eea;box-shadow:0 0 0 4px #667eea26;transform:scale(1.05)}.code-digit.has-value[data-v-e6d129d1]{border-color:#28a745;background:#f8fff8}.code-digit.error[data-v-e6d129d1]{border-color:#dc3545;background:#fff8f8;animation:shake-e6d129d1 .5s ease-in-out}.code-digit[data-v-e6d129d1]:disabled{background:#f8f9fa;color:#6c757d;cursor:not-allowed;opacity:.7}.error-indicator[data-v-e6d129d1]{color:#dc3545;font-size:.875rem;display:flex;align-items:center;gap:.5rem;margin-top:.5rem}@keyframes shake-e6d129d1{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@media (max-width: 768px){.code-digit[data-v-e6d129d1]{width:45px;height:45px;font-size:1.5rem}.code-inputs[data-v-e6d129d1]{gap:.5rem}}@media (max-width: 480px){.code-digit[data-v-e6d129d1]{width:40px;height:40px;font-size:1.25rem}.code-inputs[data-v-e6d129d1]{gap:.375rem}}.verify-page[data-v-44d45d26]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:1rem}.verify-container[data-v-44d45d26]{width:100%;max-width:500px}.verify-card[data-v-44d45d26]{background:white;border-radius:1rem;padding:2rem;box-shadow:0 10px 30px #0003;border:1px solid #e1e5e9;text-align:center}.verify-header[data-v-44d45d26]{margin-bottom:2rem}.verify-title[data-v-44d45d26]{color:#2c3e50;font-size:2rem;font-weight:700;margin:0 0 1rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.verify-title i[data-v-44d45d26]{color:#667eea}.verify-subtitle[data-v-44d45d26]{color:#666;font-size:1rem;margin:0;line-height:1.5}.verify-content[data-v-44d45d26]{margin-bottom:2rem}.error-message[data-v-44d45d26]{background:#fee;color:#c33;padding:.75rem;border-radius:.5rem;border:1px solid #fcc;margin:1.5rem 0;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.9rem}.verify-actions[data-v-44d45d26]{margin-top:2rem}.verify-button[data-v-44d45d26]{width:100%;padding:1rem;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1.5rem}.verify-button[data-v-44d45d26]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea4d}.verify-button[data-v-44d45d26]:disabled{opacity:.7;cursor:not-allowed;transform:none}.resend-section[data-v-44d45d26]{text-align:center;margin-bottom:1.5rem}.resend-text[data-v-44d45d26]{color:#666;font-size:.9rem;margin:0 0 .5rem}.resend-button[data-v-44d45d26]{background:none;border:none;color:#667eea;font-weight:600;cursor:pointer;font-size:.9rem;padding:.5rem;border-radius:.25rem;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;margin:0 auto}.resend-button[data-v-44d45d26]:hover:not(:disabled){background:#f8f9ff;text-decoration:underline}.resend-button[data-v-44d45d26]:disabled{opacity:.5;cursor:not-allowed}.verify-info[data-v-44d45d26]{border-top:1px solid #e9ecef;padding-top:1rem}.verify-info p[data-v-44d45d26]{color:#999;font-size:.875rem;margin:.5rem 0;display:flex;align-items:center;justify-content:center;gap:.5rem}.verify-footer[data-v-44d45d26]{border-top:1px solid #e9ecef;padding-top:1rem;text-align:center}.back-button[data-v-44d45d26]{background:none;border:2px solid #e1e5e9;color:#666;padding:.75rem 1.5rem;border-radius:.5rem;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;margin:0 auto}.back-button[data-v-44d45d26]:hover{border-color:#667eea;color:#667eea;background:#f8f9ff}.main-content[data-v-44d45d26]{flex:1;width:100%;max-width:1024px;padding:.5rem 3rem 3rem;background-color:#fff;height:calc(100vh - 60px);margin-top:46px;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}@media (max-width: 768px){.main-content[data-v-44d45d26]{padding:0}.verify-page[data-v-44d45d26]{padding:.5rem}.verify-card[data-v-44d45d26]{padding:1.5rem}.verify-title[data-v-44d45d26]{font-size:1.75rem}}.login-failed-page[data-v-84d86108]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#dc3545 0%,#c82333 100%);padding:1rem}.login-failed-container[data-v-84d86108]{width:100%;max-width:500px}.login-failed-card[data-v-84d86108]{background:white;border-radius:1rem;padding:2rem;box-shadow:0 10px 30px #0003;border:1px solid #e1e5e9;text-align:center}.login-failed-icon[data-v-84d86108]{font-size:4rem;color:#dc3545;margin-bottom:1.5rem}.login-failed-header[data-v-84d86108]{margin-bottom:2rem}.login-failed-title[data-v-84d86108]{color:#2c3e50;font-size:2rem;font-weight:700;margin:0 0 1rem}.login-failed-subtitle[data-v-84d86108]{color:#666;font-size:1rem;margin:0;line-height:1.5}.login-failed-content[data-v-84d86108]{text-align:left}.info-section[data-v-84d86108],.next-steps[data-v-84d86108]{background:#f8f9fa;border-radius:.5rem;padding:1.5rem;margin-bottom:1.5rem}.info-section h3[data-v-84d86108],.next-steps h3[data-v-84d86108]{color:#2c3e50;font-size:1.1rem;margin:0 0 1rem;display:flex;align-items:center;gap:.5rem}.info-section p[data-v-84d86108]{color:#666;margin:0;line-height:1.5}.next-steps ul[data-v-84d86108]{color:#666;margin:0;padding-left:1.5rem}.next-steps li[data-v-84d86108]{margin-bottom:.5rem;line-height:1.4}.actions[data-v-84d86108]{display:flex;gap:1rem;margin-bottom:2rem}.primary-button[data-v-84d86108]{flex:1;padding:.875rem 1.5rem;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.primary-button[data-v-84d86108]:hover{transform:translateY(-2px);box-shadow:0 5px 15px #667eea4d}.secondary-button[data-v-84d86108]{flex:1;padding:.875rem 1.5rem;background:none;color:#666;border:2px solid #e1e5e9;border-radius:.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.secondary-button[data-v-84d86108]:hover{border-color:#667eea;color:#667eea;background:#f8f9ff}.help-section[data-v-84d86108]{text-align:center;padding-top:1.5rem;border-top:1px solid #e9ecef}.help-section p[data-v-84d86108]{color:#999;font-size:.9rem;margin:0;display:flex;align-items:center;justify-content:center;gap:.5rem}.help-link[data-v-84d86108]{color:#667eea;text-decoration:none;font-weight:600}.help-link[data-v-84d86108]:hover{text-decoration:underline}@media (max-width: 768px){.login-failed-page[data-v-84d86108]{padding:.5rem}.login-failed-card[data-v-84d86108]{padding:1.5rem}.login-failed-title[data-v-84d86108]{font-size:1.75rem}.actions[data-v-84d86108]{flex-direction:column}.help-section p[data-v-84d86108]{flex-direction:column;gap:.25rem}}.progress-page[data-v-2acf8b82]{padding:2rem;max-width:1000px;margin:0 auto}.progress-header[data-v-2acf8b82]{text-align:center;margin-bottom:3rem}.progress-title[data-v-2acf8b82]{color:#2c3e50;font-size:2.5rem;font-weight:700;margin-bottom:.5rem;display:flex;align-items:center;justify-content:center;gap:.75rem}.progress-subtitle[data-v-2acf8b82]{color:#666;font-size:1.1rem}.user-selector[data-v-2acf8b82]{background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);border-radius:12px;padding:1.25rem;margin-bottom:2rem;box-shadow:0 2px 8px #00000014}.selector-label[data-v-2acf8b82]{display:flex;align-items:center;gap:.5rem;color:#495057;font-weight:600;margin-bottom:.75rem;font-size:.95rem}.selector-buttons[data-v-2acf8b82]{display:flex;flex-wrap:wrap;gap:.75rem}.selector-btn[data-v-2acf8b82]{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;border:2px solid #dee2e6;border-radius:8px;background:white;color:#495057;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.selector-btn[data-v-2acf8b82]:hover{border-color:#3498db;color:#3498db;background:#f0f7ff}.selector-btn.active[data-v-2acf8b82]{border-color:#3498db;background:#3498db;color:#fff}.selector-btn.active i[data-v-2acf8b82]{color:#fff}.selector-btn i[data-v-2acf8b82]{color:#6c757d}.selector-btn:hover i[data-v-2acf8b82]{color:#3498db}.loading-state[data-v-2acf8b82],.auth-required[data-v-2acf8b82],.no-data[data-v-2acf8b82]{text-align:center;padding:4rem 2rem}.loading-state i[data-v-2acf8b82]{font-size:2rem;color:#3498db;margin-bottom:1rem}.auth-message[data-v-2acf8b82],.no-data-message[data-v-2acf8b82]{max-width:400px;margin:0 auto}.auth-message i[data-v-2acf8b82],.no-data-message i[data-v-2acf8b82]{font-size:3rem;color:#95a5a6;margin-bottom:1rem}.auth-message h2[data-v-2acf8b82],.no-data-message h2[data-v-2acf8b82]{color:#2c3e50;margin-bottom:1rem}.login-btn[data-v-2acf8b82],.practice-btn[data-v-2acf8b82]{display:inline-flex;align-items:center;gap:.5rem;background:#3498db;color:#fff;text-decoration:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;margin-top:1rem;transition:all .2s ease}.login-btn[data-v-2acf8b82]:hover,.practice-btn[data-v-2acf8b82]:hover{background:#2980b9;transform:translateY(-1px)}.charts-section[data-v-2acf8b82]{margin-bottom:3rem}.filter-section[data-v-2acf8b82]{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e1e5e9}.filter-label[data-v-2acf8b82]{color:#2c3e50;font-weight:600;font-size:.9rem;display:flex;align-items:center;gap:.5rem;margin:0}.exercise-filter[data-v-2acf8b82]{padding:.5rem 1rem;border:1px solid #ddd;border-radius:6px;background:white;font-size:.9rem;color:#2c3e50;min-width:200px}.exercise-filter[data-v-2acf8b82]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.charts-container[data-v-2acf8b82]{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:2rem}.chart-wrapper[data-v-2acf8b82]{background:white;border-radius:12px;padding:1.5rem;box-shadow:0 2px 10px #0000001a;border:1px solid #e1e5e9}.chart-title[data-v-2acf8b82]{color:#2c3e50;font-size:1.1rem;font-weight:600;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.chart-container[data-v-2acf8b82]{position:relative;height:300px;width:100%}.chart-canvas[data-v-2acf8b82]{width:100%!important;height:100%!important}.stats-overview[data-v-2acf8b82]{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:3rem}.stat-card[data-v-2acf8b82]{background:white;border-radius:12px;padding:1.5rem;box-shadow:0 2px 10px #0000001a;border:1px solid #e1e5e9;display:flex;align-items:center;gap:1rem}.stat-icon[data-v-2acf8b82]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem}.stat-info h3[data-v-2acf8b82]{font-size:2rem;font-weight:700;color:#2c3e50;margin:0}.stat-info p[data-v-2acf8b82]{color:#666;margin:0;font-size:.9rem}.section-title[data-v-2acf8b82]{color:#2c3e50;font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;display:flex;align-items:center;gap:.5rem}.history-list[data-v-2acf8b82]{display:flex;flex-direction:column;gap:1rem}.history-item[data-v-2acf8b82]{background:white;border-radius:8px;padding:1rem;box-shadow:0 2px 8px #0000001a;border:1px solid #e1e5e9;cursor:pointer;transition:all .2s ease}.history-item[data-v-2acf8b82]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026;border-color:#667eea}.history-item[data-v-2acf8b82]:active{transform:translateY(0)}.history-header[data-v-2acf8b82]{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.history-icon[data-v-2acf8b82]{background:#f8f9fa;color:#495057;width:36px;height:36px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}.history-details[data-v-2acf8b82]{flex:1}.exercise-title[data-v-2acf8b82]{color:#2c3e50;font-size:1.5rem;font-weight:600;margin:0;flex:1}.exercise-stats[data-v-2acf8b82]{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.completion-date[data-v-2acf8b82]{color:#999;font-size:.75rem;margin:0 0 0 auto}.score[data-v-2acf8b82]{padding:.2rem .6rem;border-radius:16px;font-weight:600;font-size:.8rem}.score.excellent[data-v-2acf8b82]{background:#d4edda;color:#155724}.score.good[data-v-2acf8b82]{background:#cce6ff;color:#004085}.score.fair[data-v-2acf8b82]{background:#fff3cd;color:#856404}.score.needs-improvement[data-v-2acf8b82]{background:#f8d7da;color:#721c24}.problems[data-v-2acf8b82],.time[data-v-2acf8b82]{color:#666;font-size:.8rem}@media (max-width: 768px){.progress-page[data-v-2acf8b82]{padding:1rem}.progress-title[data-v-2acf8b82]{font-size:2rem}.charts-container[data-v-2acf8b82]{grid-template-columns:1fr;gap:1.5rem}.filter-section[data-v-2acf8b82]{flex-direction:column;align-items:flex-start;gap:.75rem}.exercise-filter[data-v-2acf8b82]{width:100%;min-width:auto}.chart-wrapper[data-v-2acf8b82]{padding:1rem}.chart-title[data-v-2acf8b82]{font-size:1rem}.chart-container[data-v-2acf8b82]{height:250px}.stats-overview[data-v-2acf8b82]{grid-template-columns:1fr;gap:1rem}.stat-card[data-v-2acf8b82]{padding:1rem}.history-item[data-v-2acf8b82]{padding:.75rem}.history-header[data-v-2acf8b82]{margin-bottom:.5rem}.history-icon[data-v-2acf8b82]{width:32px;height:32px;font-size:.9rem}.history-item .exercise-title[data-v-2acf8b82]{font-size:1.25rem}.exercise-stats[data-v-2acf8b82]{flex-wrap:wrap;gap:.5rem}}.admin-page[data-v-52729d74]{min-height:100vh;background:#d9dbdd;padding-bottom:4rem}.admin-header[data-v-52729d74]{margin-bottom:2rem}.admin-title[data-v-52729d74]{color:#2c3e50;font-size:2rem;display:flex;align-items:center;gap:.75rem;margin:0}.admin-title i[data-v-52729d74]{color:#dc3545}.loading-state[data-v-52729d74]{text-align:center;padding:3rem;color:#666}.loading-state i[data-v-52729d74]{font-size:3rem;margin-bottom:1rem}.admin-content[data-v-52729d74]{max-width:1400px;margin:0 auto}.action-bar[data-v-52729d74]{background:white;padding:1rem;border-radius:8px;margin-bottom:1.5rem;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.selected-info[data-v-52729d74]{color:#2c3e50;font-size:1rem;display:flex;align-items:center;gap:.5rem}.action-buttons[data-v-52729d74]{display:flex;gap:.75rem;flex-wrap:wrap}.action-buttons button[data-v-52729d74]{padding:.5rem 1rem;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;font-size:.9rem}.btn-extend[data-v-52729d74]{background:#28a745;color:#fff}.btn-extend[data-v-52729d74]:hover:not(:disabled){background:#218838}.btn-ban[data-v-52729d74]{background:#ffc107;color:#333}.btn-ban[data-v-52729d74]:hover:not(:disabled){background:#e0a800}.btn-delete[data-v-52729d74]{background:#dc3545;color:#fff}.btn-delete[data-v-52729d74]:hover:not(:disabled){background:#c82333}.btn-clear[data-v-52729d74]{background:#6c757d;color:#fff}.btn-clear[data-v-52729d74]:hover{background:#5a6268}.action-buttons button[data-v-52729d74]:disabled{opacity:.5;cursor:not-allowed}.search-container[data-v-52729d74]{position:relative;margin-bottom:1.5rem}.search-icon[data-v-52729d74]{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:#6c757d;font-size:1.1rem}.search-input[data-v-52729d74]{width:100%;padding:.875rem 3rem;border:2px solid #dee2e6;border-radius:8px;font-size:1rem;transition:border-color .2s ease;box-sizing:border-box}.search-input[data-v-52729d74]:focus{outline:none;border-color:#007bff}.clear-search[data-v-52729d74]{position:absolute;right:1rem;top:50%;transform:translateY(-50%);background:none;border:none;color:#6c757d;cursor:pointer;padding:.25rem;font-size:1.1rem}.clear-search[data-v-52729d74]:hover{color:#dc3545}.no-users[data-v-52729d74]{text-align:center;padding:3rem;color:#6c757d}.no-users i[data-v-52729d74]{font-size:4rem;margin-bottom:1rem}.user-cards[data-v-52729d74]{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:1.5rem}.user-card[data-v-52729d74]{background:white;border-radius:8px;padding:1.25rem;box-shadow:0 2px 4px #0000001a;cursor:pointer;transition:all .2s ease;border:2px solid transparent}.user-card[data-v-52729d74]:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.user-card.selected[data-v-52729d74]{border-color:#007bff;box-shadow:0 4px 12px #007bff4d}.user-card.banned[data-v-52729d74]{opacity:.7;background:#fff3cd}.card-header[data-v-52729d74]{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e9ecef}.user-initials[data-v-52729d74]{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.25rem;flex-shrink:0}.user-info[data-v-52729d74]{flex:1;min-width:0}.user-info h3[data-v-52729d74]{margin:0;color:#2c3e50;font-size:1.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-email[data-v-52729d74]{margin:.25rem 0 0;color:#6c757d;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-badges[data-v-52729d74]{display:flex;flex-direction:column;gap:.25rem;align-items:flex-end}.badge[data-v-52729d74]{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.badge.admin[data-v-52729d74]{background:#dc3545;color:#fff}.badge.banned[data-v-52729d74]{background:#ffc107;color:#333}.badge.inactive[data-v-52729d74]{background:#6c757d;color:#fff}.card-body[data-v-52729d74]{display:flex;flex-direction:column;gap:.5rem}.info-row[data-v-52729d74]{display:flex;justify-content:space-between;align-items:center;font-size:.875rem}.info-row .label[data-v-52729d74]{color:#6c757d;display:flex;align-items:center;gap:.5rem}.info-row .label i[data-v-52729d74]{width:16px;text-align:center}.info-row .value[data-v-52729d74]{color:#2c3e50;font-weight:500;text-align:right}@media (max-width: 768px){.admin-header[data-v-52729d74]{text-align:center;padding:2rem 1rem 0}.admin-title[data-v-52729d74]{font-size:1.5rem;justify-content:center}.search-container[data-v-52729d74]{max-width:90%;margin-left:5%;margin-bottom:1.5rem}.user-cards[data-v-52729d74]{grid-template-columns:1fr;max-width:430px;margin:0 auto}.user-card[data-v-52729d74]{padding:.5rem;max-width:90%;margin-left:5%;margin-right:0}.card-header[data-v-52729d74]{margin-bottom:.75rem;padding-bottom:.75rem}.user-initials[data-v-52729d74]{width:40px;height:40px;font-size:1rem}.user-info h3[data-v-52729d74]{font-size:.95rem}.user-email[data-v-52729d74]{font-size:.8rem}.badge[data-v-52729d74]{font-size:.7rem;padding:.2rem .4rem}.info-row[data-v-52729d74]{font-size:.8rem}.info-row .label i[data-v-52729d74]{width:14px;font-size:.75rem}.action-bar[data-v-52729d74]{flex-direction:column;align-items:stretch;padding:.75rem;max-width:90%;margin-left:5%}.selected-info[data-v-52729d74]{font-size:.9rem}.action-buttons[data-v-52729d74]{justify-content:stretch}.action-buttons button[data-v-52729d74]{flex:1;font-size:.85rem;padding:.4rem .75rem}.search-input[data-v-52729d74]{font-size:.9rem;padding:.75rem 2.5rem}}.parent-link-page[data-v-6aab33bd]{max-width:800px;margin:0 auto;padding:20px;min-height:100vh}.parent-link-header[data-v-6aab33bd]{text-align:center;margin-bottom:30px}.parent-link-title[data-v-6aab33bd]{font-size:2rem;color:#2c3e50;margin-bottom:10px}.parent-link-title i[data-v-6aab33bd]{color:#3498db;margin-right:10px}.parent-link-subtitle[data-v-6aab33bd]{color:#7f8c8d;font-size:1.1rem}.loading-state[data-v-6aab33bd],.auth-required[data-v-6aab33bd]{text-align:center;padding:60px 20px}.loading-state i[data-v-6aab33bd]{font-size:3rem;color:#3498db;margin-bottom:20px}.auth-message[data-v-6aab33bd]{background:#f8f9fa;padding:40px;border-radius:12px;max-width:400px;margin:0 auto}.auth-message i[data-v-6aab33bd]{font-size:3rem;color:#95a5a6;margin-bottom:20px}.auth-message h2[data-v-6aab33bd]{margin-bottom:10px;color:#2c3e50}.login-btn[data-v-6aab33bd]{display:inline-block;margin-top:20px;padding:12px 24px;background:#3498db;color:#fff;text-decoration:none;border-radius:8px;font-weight:600}.login-btn[data-v-6aab33bd]:hover{background:#2980b9}.parent-linked-section[data-v-6aab33bd],.parent-view-section[data-v-6aab33bd]{max-width:500px;margin:0 auto}.linked-card[data-v-6aab33bd],.students-card[data-v-6aab33bd]{background:#f8f9fa;padding:30px;border-radius:12px;text-align:center}.success-icon[data-v-6aab33bd]{font-size:3rem;color:#27ae60;margin-bottom:15px}.parent-info[data-v-6aab33bd]{display:flex;align-items:center;justify-content:center;gap:10px;font-size:1.2rem;color:#2c3e50;margin:15px 0}.parent-info i[data-v-6aab33bd]{color:#3498db}.linked-date[data-v-6aab33bd]{color:#7f8c8d;font-size:.9rem;margin-bottom:20px}.remove-btn[data-v-6aab33bd]{padding:10px 20px;background:#e74c3c;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem}.remove-btn[data-v-6aab33bd]:hover{background:#c0392b}.students-card h2[data-v-6aab33bd]{margin-bottom:10px}.students-subtitle[data-v-6aab33bd]{color:#7f8c8d;margin-bottom:20px}.students-list[data-v-6aab33bd]{display:flex;flex-direction:column;gap:12px}.student-item[data-v-6aab33bd]{display:flex;justify-content:space-between;align-items:center;background:white;padding:15px;border-radius:8px;box-shadow:0 2px 4px #0000000d}.student-info[data-v-6aab33bd]{display:flex;align-items:center;gap:10px}.student-info i[data-v-6aab33bd]{color:#3498db;font-size:1.2rem}.student-name[data-v-6aab33bd]{font-weight:600;color:#2c3e50}.unlink-btn[data-v-6aab33bd]{padding:8px 12px;background:#e74c3c;color:#fff;border:none;border-radius:6px;cursor:pointer}.unlink-btn[data-v-6aab33bd]:hover{background:#c0392b}.section-divider[data-v-6aab33bd]{margin:30px 0;border:none;border-top:1px solid #dee2e6}.qr-section[data-v-6aab33bd],.qr-section-main[data-v-6aab33bd]{text-align:center}.instructions-card[data-v-6aab33bd]{background:#f8f9fa;padding:30px;border-radius:12px;max-width:500px;margin:0 auto}.instructions-card i.fa-info-circle[data-v-6aab33bd]{font-size:2.5rem;color:#3498db;margin-bottom:15px}.instructions-card h2[data-v-6aab33bd]{margin-bottom:15px;color:#2c3e50}.steps-list[data-v-6aab33bd]{list-style:none;padding:0;text-align:left;margin:20px 0}.steps-list li[data-v-6aab33bd]{display:flex;align-items:center;gap:12px;padding:10px 0;color:#34495e}.steps-list li i[data-v-6aab33bd]{width:24px;height:24px;background:#3498db;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem}.generate-btn[data-v-6aab33bd]{padding:14px 28px;background:#3498db;color:#fff;border:none;border-radius:8px;font-size:1.1rem;cursor:pointer;margin-top:10px}.generate-btn[data-v-6aab33bd]:hover{background:#2980b9}.qr-card[data-v-6aab33bd]{background:#f8f9fa;padding:30px;border-radius:12px;max-width:400px;margin:0 auto}.qr-card h2[data-v-6aab33bd]{margin-bottom:10px;color:#2c3e50}.qr-instructions[data-v-6aab33bd]{color:#7f8c8d;margin-bottom:20px}.qr-container[data-v-6aab33bd]{background:white;padding:20px;border-radius:8px;display:inline-block;margin-bottom:20px}.qr-canvas[data-v-6aab33bd]{display:block}.link-section[data-v-6aab33bd]{margin:20px 0}.or-text[data-v-6aab33bd]{color:#7f8c8d;margin-bottom:10px}.link-copy[data-v-6aab33bd]{display:flex;gap:8px}.link-input[data-v-6aab33bd]{flex:1;padding:10px;border:1px solid #dee2e6;border-radius:6px;font-size:.9rem;background:white}.copy-btn[data-v-6aab33bd]{padding:10px 16px;background:#27ae60;color:#fff;border:none;border-radius:6px;cursor:pointer}.copy-btn[data-v-6aab33bd]:hover{background:#219a52}.copy-btn.copied[data-v-6aab33bd]{background:#27ae60}.expiry-info[data-v-6aab33bd]{display:flex;align-items:center;justify-content:center;gap:8px;color:#e67e22;font-size:.95rem;margin:15px 0}.regenerate-btn[data-v-6aab33bd]{padding:10px 20px;background:#95a5a6;color:#fff;border:none;border-radius:6px;cursor:pointer}.regenerate-btn[data-v-6aab33bd]:hover{background:#7f8c8d}.modal-overlay[data-v-6aab33bd]{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-6aab33bd]{background:white;padding:30px;border-radius:12px;max-width:400px;width:90%;text-align:center}.modal-content h3[data-v-6aab33bd]{margin-bottom:15px;color:#2c3e50}.modal-content p[data-v-6aab33bd]{color:#7f8c8d;margin-bottom:20px}.modal-actions[data-v-6aab33bd]{display:flex;gap:12px;justify-content:center}.cancel-btn[data-v-6aab33bd]{padding:10px 20px;background:#95a5a6;color:#fff;border:none;border-radius:6px;cursor:pointer}.confirm-btn[data-v-6aab33bd]{padding:10px 20px;background:#e74c3c;color:#fff;border:none;border-radius:6px;cursor:pointer}.confirm-btn[data-v-6aab33bd]:hover{background:#c0392b}@media (max-width: 600px){.parent-link-page[data-v-6aab33bd]{padding:15px}.parent-link-title[data-v-6aab33bd]{font-size:1.5rem}.instructions-card[data-v-6aab33bd],.qr-card[data-v-6aab33bd],.linked-card[data-v-6aab33bd],.students-card[data-v-6aab33bd]{padding:20px}.link-copy[data-v-6aab33bd]{flex-direction:column}}.connect-parent-page[data-v-40cc19ec]{max-width:500px;margin:0 auto;padding:20px;min-height:100vh}.connect-header[data-v-40cc19ec]{text-align:center;margin-bottom:30px}.connect-title[data-v-40cc19ec]{font-size:1.8rem;color:#2c3e50}.connect-title i[data-v-40cc19ec]{color:#3498db;margin-right:10px}.loading-state[data-v-40cc19ec],.error-state[data-v-40cc19ec],.success-state[data-v-40cc19ec]{text-align:center;padding:40px 20px}.loading-state i[data-v-40cc19ec]{font-size:3rem;color:#3498db;margin-bottom:20px}.error-card[data-v-40cc19ec],.success-card[data-v-40cc19ec]{background:#f8f9fa;padding:30px;border-radius:12px}.error-card i[data-v-40cc19ec]{font-size:3rem;color:#e74c3c;margin-bottom:15px}.success-card i[data-v-40cc19ec]{font-size:3rem;color:#27ae60;margin-bottom:15px}.error-card h2[data-v-40cc19ec],.success-card h2[data-v-40cc19ec]{margin-bottom:10px;color:#2c3e50}.success-info[data-v-40cc19ec]{color:#7f8c8d;margin-top:10px}.home-btn[data-v-40cc19ec],.progress-btn[data-v-40cc19ec]{display:inline-block;margin-top:20px;padding:12px 24px;background:#3498db;color:#fff;text-decoration:none;border-radius:8px;font-weight:600}.progress-btn[data-v-40cc19ec]{background:#27ae60}.progress-btn[data-v-40cc19ec]:hover{background:#219a52}.student-info-card[data-v-40cc19ec]{background:#e8f4fd;padding:25px;border-radius:12px;text-align:center;margin-bottom:25px}.student-info-card i[data-v-40cc19ec]{font-size:2.5rem;color:#3498db;margin-bottom:15px}.student-info-card h2[data-v-40cc19ec]{color:#2c3e50;margin-bottom:10px}.student-info-card p[data-v-40cc19ec]{color:#5d6d7e}.logged-in-section[data-v-40cc19ec]{background:#f8f9fa;padding:25px;border-radius:12px;text-align:center}.user-info[data-v-40cc19ec]{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:20px;color:#27ae60}.link-btn[data-v-40cc19ec]{padding:14px 28px;background:#27ae60;color:#fff;border:none;border-radius:8px;font-size:1.1rem;cursor:pointer}.link-btn[data-v-40cc19ec]:hover:not(:disabled){background:#219a52}.link-btn[data-v-40cc19ec]:disabled{opacity:.7;cursor:not-allowed}.auth-section[data-v-40cc19ec]{background:#f8f9fa;padding:25px;border-radius:12px}.auth-options h3[data-v-40cc19ec]{text-align:center;margin-bottom:10px;color:#2c3e50}.auth-options>p[data-v-40cc19ec]{text-align:center;color:#7f8c8d;margin-bottom:20px}.auth-tabs[data-v-40cc19ec]{display:flex;gap:10px;margin-bottom:20px}.tab-btn[data-v-40cc19ec]{flex:1;padding:12px;background:#e9ecef;border:none;border-radius:8px;cursor:pointer;font-weight:500;color:#5d6d7e;transition:all .2s}.tab-btn.active[data-v-40cc19ec]{background:#3498db;color:#fff}.auth-form[data-v-40cc19ec]{margin-top:15px}.form-group[data-v-40cc19ec]{margin-bottom:15px}.form-group label[data-v-40cc19ec]{display:block;margin-bottom:6px;font-weight:500;color:#34495e}.form-group input[data-v-40cc19ec]{width:100%;padding:12px;border:1px solid #dee2e6;border-radius:8px;font-size:1rem}.form-group input[data-v-40cc19ec]:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.submit-btn[data-v-40cc19ec]{width:100%;padding:14px;background:#3498db;color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.submit-btn[data-v-40cc19ec]:hover:not(:disabled){background:#2980b9}.submit-btn[data-v-40cc19ec]:disabled{opacity:.7;cursor:not-allowed}.code-sent-msg[data-v-40cc19ec]{text-align:center;padding:15px;background:#d4edda;border-radius:8px;margin-bottom:15px;color:#155724}.code-sent-msg i[data-v-40cc19ec]{margin-right:8px}.back-btn[data-v-40cc19ec]{width:100%;padding:12px;background:transparent;color:#7f8c8d;border:1px solid #dee2e6;border-radius:8px;cursor:pointer;margin-top:10px;display:flex;align-items:center;justify-content:center;gap:8px}.back-btn[data-v-40cc19ec]:hover{background:#f8f9fa}.auth-error[data-v-40cc19ec]{margin-top:15px;padding:12px;background:#f8d7da;color:#721c24;border-radius:8px;display:flex;align-items:center;gap:8px}@media (max-width: 500px){.connect-parent-page[data-v-40cc19ec]{padding:15px}.auth-tabs[data-v-40cc19ec]{flex-direction:column}}.email-popup-overlay[data-v-40cc19ec]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.email-popup[data-v-40cc19ec]{background:white;border-radius:12px;max-width:600px;width:90%;max-height:80vh;overflow:hidden;box-shadow:0 10px 40px #0000004d}.email-popup .email-header[data-v-40cc19ec]{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;background:#3498db;color:#fff}.email-popup .email-header h3[data-v-40cc19ec]{margin:0;display:flex;align-items:center;gap:10px}.email-popup .close-btn[data-v-40cc19ec]{background:transparent;border:none;color:#fff;font-size:1.2rem;cursor:pointer;padding:5px}.email-popup .email-content[data-v-40cc19ec]{padding:20px;overflow-y:auto;max-height:calc(80vh - 60px)}.email-popup .email-headers[data-v-40cc19ec]{background:#f8f9fa;padding:15px;border-radius:8px;margin-bottom:20px;font-size:.9rem}.email-popup .email-headers div[data-v-40cc19ec]{margin-bottom:5px}.email-popup .email-body[data-v-40cc19ec]{padding:15px;background:#fff;border:1px solid #dee2e6;border-radius:8px}.code-input-group[data-v-40cc19ec]{display:flex;flex-direction:column;align-items:center}.code-input-group label[data-v-40cc19ec]{margin-bottom:15px;text-align:center}.code-input-group[data-v-40cc19ec] .code-input-container{width:100%;display:flex;justify-content:center}.code-input-group[data-v-40cc19ec] .code-inputs{display:flex;gap:8px;justify-content:center}.code-input-group[data-v-40cc19ec] .code-digit{width:40px;height:50px;text-align:center;font-size:1.5rem;font-weight:700;border:2px solid #dee2e6;border-radius:8px;outline:none;transition:border-color .2s,box-shadow .2s}.code-input-group[data-v-40cc19ec] .code-digit:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db33}.code-input-group[data-v-40cc19ec] .code-digit.has-value{border-color:#27ae60;background:#f0fff4}.code-input-group[data-v-40cc19ec] .code-digit.error{border-color:#e74c3c;background:#fef2f2}
