:root{--bg: #f5f7fa;--card-bg: #ffffff;--text: #2d3436;--text-light: #636e72;--border: #dfe6e9;--green: #00b894;--green-bg: #e6fcf5;--red: #d63031;--red-bg: #fff5f5;--warning: #f39c12;--warning-bg: #fef5e7;--radius: 12px;--shadow: 0 2px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .12)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Nunito,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh}.app{max-width:800px;margin:0 auto;padding:0 16px;min-height:100vh}.header{position:relative;display:flex;align-items:center;justify-content:space-between;padding:12px 0;gap:12px;flex-wrap:wrap}.header-logo{height:40px;width:auto;flex-shrink:0}.header h1{font-size:2.4rem;font-weight:800;color:var(--text);margin-bottom:4px;display:none}.header-sub{color:var(--green);font-weight:700;display:none}.header-desc{color:var(--text-light);font-size:.95rem;margin:0;flex:1;min-width:120px}.header-controls{display:flex;align-items:center;gap:8px;z-index:10;flex-shrink:0;margin-left:auto}.help-header-btn{width:36px;height:36px;border:2px solid var(--border);border-radius:50%;background:var(--card-bg);font-family:inherit;font-size:1.1rem;font-weight:800;color:var(--text-light);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.help-header-btn:hover{border-color:var(--green);color:var(--green);background:var(--green-bg)}.page-subtitle{color:var(--text-light);font-size:.95rem;font-weight:600;margin:0 0 12px;padding:0}.lang-select{padding:6px 28px 6px 10px;border:2px solid var(--border);border-radius:8px;background:var(--card-bg);font-family:inherit;font-size:.85rem;font-weight:700;color:var(--text);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23636e72'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;flex-shrink:0}.lang-select:hover{border-color:var(--green)}.lang-select:focus{outline:none;border-color:var(--green)}.lang-toggle{display:none;gap:0;border:2px solid var(--border);border-radius:8px;overflow:hidden}.lang-btn{padding:6px 14px;border:none;background:var(--card-bg);font-family:inherit;font-size:.85rem;font-weight:700;color:var(--text-light);cursor:pointer;transition:all .15s}.lang-btn:not(:last-child){border-right:1px solid var(--border)}.lang-btn:hover{background:var(--bg)}.lang-btn-active{background:#2d3436;color:#fff}.lang-btn-active:hover{background:#2d3436}.modal-close-btn{position:absolute;top:12px;right:12px;width:36px;height:36px;border:2px solid var(--border);border-radius:8px;background:var(--card-bg);font-size:1.4rem;line-height:1;color:var(--text-light);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.modal-close-btn:hover{border-color:var(--red);color:var(--red);background:var(--red-bg)}.blocks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;padding-bottom:40px}.block-card{display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--card-bg);border:3px solid var(--bl-color, #333);border-radius:var(--radius);padding:32px 24px;cursor:pointer;transition:all .2s ease;text-align:center;font-family:inherit;font-size:inherit;color:inherit}.block-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);background:color-mix(in srgb,var(--bl-color, #333) 5%,white)}.block-num{font-size:1.8rem;font-weight:800;color:var(--bl-color, #333)}.block-desc{font-size:.9rem;color:var(--text-light);line-height:1.5}.block-stats{font-size:.85rem;font-weight:700;color:var(--bl-color, #333);background:color-mix(in srgb,var(--bl-color, #333) 10%,white);padding:4px 14px;border-radius:20px;margin-top:4px}.back-btn-header{margin-bottom:12px}.chapters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;padding-bottom:40px}.chapter-card-wrapper{display:flex;flex-direction:column;background:var(--card-bg);border:2px solid var(--border);border-left:6px solid var(--ch-color, #333);border-radius:var(--radius);overflow:hidden;transition:all .2s ease}.chapter-card-wrapper:hover{box-shadow:var(--shadow-lg);border-color:var(--ch-color, #333)}.chapter-card-info{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:20px 24px 12px;text-align:left;flex:1}.chapter-card-actions{display:flex;gap:8px;padding:0 24px 16px;margin-top:auto}.chapter-action-btn{flex:1;padding:8px 12px;border:2px solid var(--border);border-radius:8px;font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .15s}.exercise-btn{color:#fff;border-color:transparent}.exercise-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.test-btn{background:#fff;color:var(--text);border-color:var(--ch-color, #333)}.test-btn:hover{background:color-mix(in srgb,var(--ch-color, #333) 10%,white);transform:translateY(-1px)}.chapter-icon{font-size:2rem;margin-bottom:4px}.chapter-num{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--ch-color, #333)}.chapter-title{font-size:1.3rem;font-weight:800;color:var(--text)}.chapter-sub{font-size:.85rem;color:var(--text-light)}.chapter-count{font-size:.8rem;font-weight:700;color:var(--ch-color, #333);background:color-mix(in srgb,var(--ch-color, #333) 10%,white);padding:2px 10px;border-radius:20px;margin-top:4px}.quiz-header{display:flex;align-items:center;justify-content:space-between;padding:16px 0;gap:12px}.back-btn{background:none;border:2px solid var(--border);border-radius:8px;padding:6px 14px;font-family:inherit;font-size:.9rem;font-weight:700;color:var(--text-light);cursor:pointer;transition:all .15s;white-space:nowrap}.back-btn:hover{border-color:var(--ch-color, #333);color:var(--ch-color, #333)}.quiz-header-info{display:flex;align-items:center;gap:8px;flex:1;justify-content:center}.quiz-chapter-icon{font-size:1.4rem}.quiz-chapter-title{font-weight:800;font-size:1.1rem}.quiz-score{font-weight:700;font-size:.95rem;color:var(--text-light);white-space:nowrap}.progress-bar-wrap{width:100%;height:6px;background:var(--border);border-radius:3px;overflow:hidden;margin-bottom:24px}.progress-bar{height:100%;border-radius:3px;transition:width .4s ease}.quiz-body{padding-bottom:40px}.question-nav-dots{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;margin-bottom:12px;max-height:80px;overflow-y:auto}.nav-dot{width:28px;height:28px;border-radius:50%;border:2px solid var(--border);background:#fff;font-size:.7rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0;font-family:inherit;color:var(--text-light)}.nav-dot:disabled{opacity:.3;cursor:not-allowed}.nav-dot-current{border-color:var(--green);background:var(--green);color:#fff;transform:scale(1.15)}.nav-dot-correct{border-color:var(--green);background:var(--green-bg);color:var(--green)}.nav-dot-wrong{border-color:var(--red);background:var(--red-bg);color:var(--red)}.nav-dot-answered{border-color:#74b9ff;background:#dfe6e9;color:var(--text)}.nav-dot-empty{border-color:var(--border);background:#fff;color:var(--text-light)}.nav-dot:hover:not(.nav-dot-current):not(:disabled){transform:scale(1.1);border-color:var(--green)}.question-nav-buttons{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}.btn-nav-prev,.btn-nav-next{padding:8px 16px;border:2px solid var(--border);border-radius:8px;background:#fff;font-family:inherit;font-size:.9rem;font-weight:700;color:var(--text);cursor:pointer;transition:all .15s}.btn-nav-prev:hover:not(:disabled),.btn-nav-next:hover:not(:disabled){border-color:var(--green);color:var(--green)}.btn-nav-prev:disabled,.btn-nav-next:disabled{opacity:.3;cursor:not-allowed}.question-nav-counter{font-weight:700;color:var(--text-light);font-size:.9rem}.input-readonly{background:var(--bg)!important;cursor:not-allowed;opacity:.8}.question-counter{font-size:.9rem;font-weight:700;color:var(--text-light);margin-bottom:12px;text-align:center}.question-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px}.question-text{font-size:1.2rem;font-weight:600;line-height:1.7;margin-bottom:24px;white-space:pre-wrap}.answer-row{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.answer-label{font-weight:700;font-size:.95rem;color:var(--text-light);white-space:nowrap}.answer-input{flex:1;min-width:140px;padding:12px 16px;border:2px solid var(--border);border-radius:8px;font-family:inherit;font-size:1.2rem;font-weight:700;outline:none;transition:border-color .2s}.answer-input:focus{border-color:#74b9ff}.answer-input.input-correct{border-color:var(--green);background:var(--green-bg)}.answer-input.input-wrong{border-color:var(--red);background:var(--red-bg)}.answer-unit{font-weight:700;color:var(--text-light);font-size:1rem}.btn{display:inline-block;padding:12px 28px;border:none;border-radius:8px;font-family:inherit;font-size:1rem;font-weight:700;color:#fff;cursor:pointer;transition:all .15s}.btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn[class*=secondary],.btn-home,.btn[style*=border]{color:var(--text)!important}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-check{width:100%}.btn-next{width:100%;margin-top:16px}.btn-retry{color:#fff}.btn-home{background:#fff;color:var(--text);border:2px solid var(--border)}.btn-home:hover{background:var(--bg);border-color:var(--text-light)}.feedback{padding:16px 20px;border-radius:8px;margin-top:4px}.feedback-correct{background:var(--green-bg);border:2px solid var(--green)}.feedback-wrong{background:var(--red-bg);border:2px solid var(--red)}.feedback-content{display:flex;align-items:flex-start;gap:12px;font-weight:600}.feedback-icon{font-size:1.5rem;line-height:1}.feedback-correct .feedback-icon{color:var(--green)}.feedback-wrong .feedback-icon{color:var(--red)}.correct-answer{margin-top:4px;font-size:1.05rem}.explanation{margin-top:12px;padding-top:12px;border-top:1px solid rgba(0,0,0,.1);font-size:.95rem;color:var(--text-light)}.result-body{padding-bottom:60px}.result-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:40px;text-align:center;margin-bottom:32px}.result-emoji{font-size:3.5rem;margin-bottom:8px}.result-title{font-size:1.5rem;font-weight:800;margin-bottom:16px}.result-score-big{font-size:3rem;font-weight:800;margin-bottom:4px}.result-num{color:var(--green)}.result-denom{color:var(--text-light)}.result-pct{font-size:1.1rem;font-weight:700;color:var(--text-light);margin-bottom:24px}.result-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.review-section{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.review-section h3{font-size:1.2rem;font-weight:800;margin-bottom:16px}.review-item{padding:12px 16px;border-radius:8px;margin-bottom:8px;border-left:4px solid}.review-correct{background:var(--green-bg);border-color:var(--green)}.review-wrong{background:var(--red-bg);border-color:var(--red)}.review-q{font-weight:600;margin-bottom:4px;display:flex;gap:6px}.review-num{font-weight:800;color:var(--text-light)}.review-answers{display:flex;gap:20px;font-size:.9rem;color:var(--text-light);flex-wrap:wrap}.review-explanation{font-size:.85rem;color:var(--text-light);margin-top:4px;font-style:italic}.footer{text-align:center;padding:24px 0;color:var(--text-light);font-size:.85rem}.quiz-header-right{display:flex;align-items:center;gap:12px;white-space:nowrap}.chart-wrapper{margin-bottom:20px;padding:12px 0;border-bottom:1px solid var(--border)}.chart-title{font-size:1rem;font-weight:700;text-align:center;margin-bottom:8px;color:var(--text)}.data-table-wrapper{margin-bottom:20px;overflow-x:auto;border-bottom:1px solid var(--border);padding-bottom:16px}.data-table{width:100%;border-collapse:collapse;font-size:.95rem;margin-bottom:8px}.data-table caption{font-weight:700;font-size:.95rem;margin-bottom:8px;text-align:left;color:var(--text)}.data-table th{padding:8px 14px;text-align:left;font-weight:700;color:#fff;font-size:.85rem}.data-table td{padding:7px 14px;border-bottom:1px solid var(--border)}.data-table td.num-cell{text-align:right;font-variant-numeric:tabular-nums}.data-table tbody tr:nth-child(2n){background:var(--bg)}.data-table tbody tr:hover{background:#edf2f7}.thermometers-row{display:flex;justify-content:center;gap:32px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border)}.thermometer-container{display:flex;flex-direction:column;align-items:center}.thermometer-label{font-size:.85rem;font-weight:700;color:var(--text-light);margin-top:4px;text-align:center}.circle-diagram-container{display:flex;justify-content:center;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border)}.circle-diagram-container svg{max-width:200px;height:auto}.context-box{background:#f0f4ff;border-left:4px solid var(--ch-color, #3498db);border-radius:0 8px 8px 0;padding:14px 18px;margin-bottom:16px;font-size:1.05rem;font-weight:600;line-height:1.7;color:var(--text)}.sub-question-counter{font-size:.8rem;font-weight:700;color:var(--text-light);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.timer-display{font-size:1.1rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--text);background:var(--bg);padding:4px 12px;border-radius:6px;border:2px solid var(--border)}.timer-warning{color:var(--warning);border-color:var(--warning);background:var(--warning-bg)}.timer-critical{color:var(--red);border-color:var(--red);background:var(--red-bg);animation:pulse .8s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal-content{position:relative;background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:36px;max-width:440px;width:100%;text-align:center}.modal-icon{font-size:2.5rem;margin-bottom:8px}.modal-title{font-size:1.5rem;font-weight:800;margin-bottom:4px}.modal-subtitle{font-size:.9rem;color:var(--text-light);margin-bottom:24px}.timer-options{display:flex;flex-direction:column;gap:10px;margin-bottom:24px;text-align:left}.timer-option{display:flex;flex-direction:column;gap:2px;padding:12px 16px;border:2px solid var(--border);border-radius:8px;cursor:pointer;transition:all .15s}.timer-option:hover{background:var(--bg)}.timer-option-selected{background:#f0f4ff}.timer-option input[type=radio]{display:none}.timer-option-label{font-weight:700;font-size:1rem}.timer-option-desc{font-size:.85rem;color:var(--text-light)}.timer-select{margin-top:8px;padding:6px 12px;border:2px solid var(--border);border-radius:6px;font-family:inherit;font-size:.9rem;font-weight:600;background:#fff;cursor:pointer}.modal-start-btn{width:100%;padding:14px;font-size:1.1rem}.test-mode-info{margin-bottom:24px}.test-mode-badge{font-size:1rem;font-weight:800;color:var(--text);background:var(--warning-bg);border:2px solid var(--warning);border-radius:8px;padding:8px 16px;margin-bottom:8px;display:inline-block}.test-mode-desc{font-size:.9rem;color:var(--text-light);line-height:1.6;margin:8px 0 0;text-align:left}.review-group{margin-bottom:12px}.review-group-header{font-size:.85rem;font-weight:700;color:var(--text-light);padding:8px 16px 4px;text-transform:uppercase;letter-spacing:.5px}.block-test-card{display:flex;align-items:center;gap:16px;background:var(--card-bg);border:3px solid var(--bt-color, #333);border-radius:var(--radius);padding:20px 24px;margin-bottom:20px;box-shadow:var(--shadow)}.block-test-icon{font-size:2.4rem;flex-shrink:0}.block-test-info{flex:1}.block-test-title{font-size:1.2rem;font-weight:800;margin:0 0 2px}.block-test-desc{font-size:.9rem;color:var(--text-light);margin:0}.block-test-sizes{display:flex;gap:8px;flex-shrink:0}.block-test-size-btn{padding:8px 16px;border:2px solid;border-radius:8px;background:#fff;font-family:inherit;font-size:.9rem;font-weight:700;cursor:pointer;transition:all .15s}.block-test-size-btn:hover{background:color-mix(in srgb,var(--bt-color, #333) 10%,white);transform:translateY(-1px)}.chapter-breakdown{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;margin-bottom:24px}.chapter-breakdown h3{font-size:1.2rem;font-weight:800;margin:0 0 16px}.breakdown-table{display:flex;flex-direction:column;gap:6px}.breakdown-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:8px;background:var(--bg);border-left:4px solid var(--ch-color, #ccc)}.breakdown-row.needs-practice{background:var(--red-bg);border-left-color:var(--red)}.breakdown-icon{font-size:1.3rem;flex-shrink:0}.breakdown-info{flex:1;min-width:0}.breakdown-chapter-title{font-weight:700;font-size:.9rem;display:block;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.breakdown-bar-wrap{width:100%;height:5px;background:var(--border);border-radius:3px;overflow:hidden}.breakdown-bar{height:100%;border-radius:3px;transition:width .3s}.breakdown-stats{display:flex;gap:12px;font-size:.85rem;font-weight:700;color:var(--text-light);flex-shrink:0}.breakdown-score{min-width:36px;text-align:right}.breakdown-pct{min-width:32px;text-align:right}.breakdown-time{min-width:44px;text-align:right;font-variant-numeric:tabular-nums}.breakdown-status{font-size:1.1rem;flex-shrink:0}.result-time-stats{display:flex;gap:24px;justify-content:center;font-size:.9rem;color:var(--text-light);margin-bottom:20px;flex-wrap:wrap}.btn-pdf{background:#2d3436;color:#fff}.user-menu{display:flex;align-items:center;gap:10px;z-index:11;flex-shrink:0}.user-menu-name{font-weight:700;font-size:.9rem;color:var(--text);cursor:pointer;padding:4px 10px;border-radius:6px;transition:background .15s}.user-menu-name:hover{background:var(--border)}.user-menu-logout{padding:4px 12px;border:2px solid var(--border);border-radius:6px;background:var(--card-bg);font-family:inherit;font-size:.8rem;font-weight:700;color:var(--text-light);cursor:pointer;transition:all .15s}.user-menu-logout:hover{border-color:var(--red);color:var(--red);background:var(--red-bg)}.login-page{display:flex;align-items:center;justify-content:center;min-height:70vh;padding:20px}.login-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:40px;max-width:400px;width:100%;text-align:center}.login-title{font-size:2rem;font-weight:800;margin-bottom:2px}.login-subtitle{color:var(--green);font-weight:700;font-size:1.1rem;margin-bottom:24px}.login-tabs{display:flex;border:2px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:24px}.login-tab{flex:1;padding:10px;border:none;background:var(--card-bg);font-family:inherit;font-size:.95rem;font-weight:700;color:var(--text-light);cursor:pointer;transition:all .15s}.login-tab:not(:last-child){border-right:1px solid var(--border)}.login-tab-active{background:var(--text);color:#fff}.login-form{display:flex;flex-direction:column;gap:16px;text-align:left}.login-field label{display:block;font-weight:700;font-size:.85rem;color:var(--text-light);margin-bottom:4px}.login-field input{width:100%;padding:10px 14px;border:2px solid var(--border);border-radius:8px;font-family:inherit;font-size:1rem;outline:none;transition:border-color .2s}.login-field input:focus{border-color:#74b9ff}.login-error{color:var(--red);font-size:.9rem;font-weight:600;padding:8px 12px;background:var(--red-bg);border-radius:6px;text-align:center}.login-submit-btn{width:100%;background:var(--green);padding:12px;font-size:1.05rem}.login-guest-link{display:inline-block;margin-top:16px;background:none;border:none;font-family:inherit;font-size:.9rem;font-weight:600;color:var(--text-light);cursor:pointer;text-decoration:underline;transition:color .15s}.login-guest-link:hover{color:var(--text)}.login-teacher-email-note{font-size:.82rem;color:var(--text-light);font-style:italic;margin-top:-8px}.verify-email-page{display:flex;align-items:center;justify-content:center;min-height:70vh;padding:20px}.verify-email-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:40px;max-width:440px;width:100%;text-align:center}.verify-email-card h2{font-size:1.5rem;font-weight:800;margin-bottom:12px}.verify-email-icon{font-size:3rem;margin-bottom:16px}.verify-email-loading{animation:pulse 1.2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.verify-email-success-icon{color:var(--green)}.verify-email-error-icon{color:var(--red)}.verify-email-message{color:var(--text);font-size:1rem;margin-bottom:8px;line-height:1.6}.verify-email-hint{color:var(--text-light);font-size:.9rem;margin-bottom:20px}.verify-email-btn{width:100%;background:var(--green);color:#fff;padding:12px;font-size:1.05rem;border-radius:8px;border:none;cursor:pointer;font-weight:700;font-family:inherit}.verify-email-btn:hover{opacity:.9}.verify-email-error-text{color:var(--red);font-size:.9rem;font-weight:600}.verify-email-success-text{color:var(--green);font-size:.9rem;font-weight:600;margin-top:8px}.verify-email-actions{margin:24px 0 16px;padding-top:20px;border-top:1px solid var(--border)}.verify-email-resend-label{color:var(--text-light);font-size:.9rem;margin-bottom:8px}.verify-email-resend-btn{width:100%;background:var(--card-bg);color:var(--text);padding:10px;font-size:.95rem;border-radius:8px;border:2px solid var(--border);cursor:pointer;font-weight:700;font-family:inherit;transition:all .15s}.verify-email-resend-btn:hover:not(:disabled){border-color:var(--green);color:var(--green)}.verify-email-resend-btn:disabled{opacity:.5;cursor:not-allowed}.verify-email-footer-actions{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.verify-email-already-label{color:var(--text-light);font-size:.85rem;margin-bottom:8px}.verify-email-btn-secondary{width:100%;background:none;color:var(--text-light);padding:10px;font-size:.95rem;border-radius:8px;border:none;cursor:pointer;font-weight:600;font-family:inherit;text-decoration:underline;transition:color .15s}.verify-email-btn-secondary:hover{color:var(--text)}.verify-email-pending-banner{padding:24px 16px;margin:16px 0;background:#e6fcf5;border-radius:var(--radius);border:2px solid var(--green)}.verify-email-pending-text{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:8px}.verify-email-pending-email{font-size:.95rem;color:var(--text);margin-bottom:8px}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center}.loading-text{text-align:center;padding:20px;color:var(--text-light)}.dashboard{padding-bottom:40px}.dashboard-header{margin-bottom:28px}.dashboard-header h2{font-size:1.8rem;font-weight:800}.dashboard-subtitle{color:var(--text-light);font-size:1rem}.dashboard-section{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;margin-bottom:20px}.dashboard-section h3{font-size:1.15rem;font-weight:800;margin-bottom:16px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-header h3{margin-bottom:0}.dashboard-actions{display:flex;gap:12px;flex-wrap:wrap}.btn-dashboard-action{flex:1;min-width:180px;padding:14px 24px;background:var(--green);font-size:1rem}.btn-dashboard-action.btn-secondary{background:#fff;color:var(--text);border:2px solid var(--border)}.btn-dashboard-action.btn-secondary:hover{background:var(--bg);border-color:var(--green);color:var(--green)}.btn-small{padding:8px 16px;font-size:.85rem}.btn-add{background:var(--green)}.btn-add-secondary{background:#fff!important;color:var(--text)!important;border:2px solid var(--border)}.btn-add-secondary:hover{border-color:var(--green)!important;color:var(--green)!important;background:var(--green-bg)!important}.section-header-actions{display:flex;gap:8px;align-items:center}.empty-state{text-align:center;padding:24px;color:var(--text-light);font-size:.95rem;font-style:italic}.add-child-form{background:var(--bg);border-radius:8px;padding:16px;margin-bottom:16px}.form-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.form-row input{flex:1;min-width:120px;padding:8px 12px;border:2px solid var(--border);border-radius:8px;font-family:inherit;font-size:.9rem;outline:none;transition:border-color .2s}.form-row input:focus{border-color:#74b9ff}.children-list{display:flex;flex-direction:column;gap:10px}.child-card{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;padding:16px 18px;background:var(--bg);border-radius:8px;transition:box-shadow .15s;position:relative}.child-card:hover{box-shadow:var(--shadow)}.child-info{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.child-avatar{width:40px;height:40px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:800;flex-shrink:0}.child-details{display:flex;flex-direction:column;min-width:0}.child-name{font-weight:700;font-size:1rem}.child-email{font-size:.8rem;color:var(--text-light);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.child-stats{display:flex;gap:16px}.stat{display:flex;flex-direction:column;align-items:center;min-width:60px}.stat-value{font-weight:800;font-size:1rem;color:var(--text)}.stat-date{font-size:.8rem}.stat-label{font-size:.7rem;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px}.btn-icon{width:32px;height:32px;border:2px solid var(--border);border-radius:6px;background:var(--card-bg);font-size:1.3rem;line-height:1;color:var(--text-light);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.child-action-buttons{display:flex;gap:6px;flex-shrink:0}.child-delete-details{position:relative;margin-left:8px}.child-delete-details:not([open]) .child-delete-btn{display:none}.child-delete-toggle{cursor:pointer;font-size:1.2rem;color:var(--text-light);padding:4px 8px;border:none;background:none;border-radius:6px;-webkit-user-select:none;user-select:none;font-family:inherit}.child-delete-toggle:hover{background:var(--bg)}.child-delete-btn{position:absolute;right:0;top:100%;margin-top:4px;white-space:nowrap;padding:8px 16px;border:2px solid var(--red);border-radius:8px;background:#fff;color:var(--red);font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;z-index:20;box-shadow:var(--shadow-lg);transition:all .15s}.child-delete-btn:hover{background:var(--red);color:#fff}.assignments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.assignment-card{background:var(--card-bg);border:2px solid var(--border);border-radius:var(--radius);padding:18px 20px;transition:box-shadow .15s}.assignment-card:hover{box-shadow:var(--shadow)}.assignment-overdue{border-color:var(--red);background:var(--red-bg)}.assignment-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.assignment-title{font-weight:700;font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-status-badge{padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:700;flex-shrink:0}.assignment-deadline{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--text-light);margin-bottom:8px}.assignment-countdown{font-weight:700;color:var(--warning)}.assignment-countdown-overdue{color:var(--red)}.assignment-meta{display:flex;gap:14px;font-size:.82rem;color:var(--text-light);margin-bottom:6px}.assignment-config{font-size:.78rem;color:var(--text-light);margin-bottom:8px;font-style:italic}.assignment-score{font-weight:800;font-size:1.05rem;color:var(--green);margin-bottom:6px}.btn-assignment-start{width:100%;padding:8px;background:var(--green);border:none;border-radius:8px;font-family:inherit;font-size:.9rem;font-weight:700;color:#fff;cursor:pointer;transition:all .15s;margin-top:6px}.btn-assignment-start:hover{filter:brightness(1.1);transform:translateY(-1px)}.create-assignment{padding-bottom:40px}.ca-header{margin-bottom:24px}.ca-header h2{font-size:1.6rem;font-weight:800;margin-top:12px}.ca-form{display:flex;flex-direction:column;gap:20px}.ca-field{display:flex;flex-direction:column;gap:6px}.ca-field label{font-weight:700;font-size:.9rem;color:var(--text)}.ca-field input,.ca-field select{padding:10px 14px;border:2px solid var(--border);border-radius:8px;font-family:inherit;font-size:.95rem;outline:none;transition:border-color .2s}.ca-field input:focus,.ca-field select:focus{border-color:#74b9ff}.block-selector{display:flex;flex-direction:column;gap:8px;background:var(--bg);border-radius:8px;padding:12px}.block-select-item{display:flex;flex-direction:column;gap:6px}.block-checkbox{display:flex;align-items:center;gap:8px;font-weight:700;font-size:.95rem;cursor:pointer}.block-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--green)}.block-select-label{font-weight:800}.chapter-checkboxes{display:flex;flex-direction:column;gap:4px;margin-left:28px;padding:6px 0}.chapter-checkbox{display:flex;align-items:center;gap:8px;font-size:.85rem;cursor:pointer}.chapter-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--green)}.chapter-select-label{font-weight:600}.radio-group{display:flex;gap:8px;flex-wrap:wrap}.radio-option{flex:1;min-width:60px;padding:10px;border:2px solid var(--border);border-radius:8px;text-align:center;font-weight:700;font-size:.95rem;cursor:pointer;transition:all .15s}.radio-option input{display:none}.radio-selected{background:color-mix(in srgb,var(--green) 15%,white);border-color:var(--green);color:var(--green)}.grade-slider{width:100%;accent-color:var(--green);cursor:pointer}.grade-range-labels{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-light);font-weight:600}.ca-preview{background:var(--bg);border-radius:8px;padding:12px 16px}.ca-preview-toggle{background:none;border:none;font-family:inherit;font-size:.9rem;font-weight:700;color:var(--text-light);cursor:pointer;text-decoration:underline}.ca-preview-content{margin-top:12px;font-size:.9rem;line-height:1.7}.ca-preview-content ul{margin-left:20px}.ca-submit-btn{width:100%;background:var(--green);padding:14px;font-size:1.05rem}.xp-bar-container{display:flex;align-items:center;gap:14px;background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 20px;margin-bottom:16px}.xp-level-badge{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#ffd93d,#ff6b6b);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px #ff6b6b4d}.xp-level-number{font-size:1.3rem;font-weight:800;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2)}.xp-bar-content{flex:1;min-width:0}.xp-bar-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.xp-bar-level-text{font-weight:800;font-size:.95rem;color:var(--text)}.xp-bar-xp-text{font-size:.8rem;font-weight:600;color:var(--text-light)}.xp-bar-track{width:100%;height:10px;background:var(--border);border-radius:5px;overflow:hidden}.xp-bar-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,#ffd93d,#ff6b6b);transition:width .8s cubic-bezier(.4,0,.2,1);min-width:0}.xp-bar-total{font-size:.75rem;font-weight:700;color:var(--text-light);text-align:right;margin-top:4px}.streak-display{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 20px;margin-bottom:16px}.streak-main{display:flex;align-items:center;gap:10px}.streak-fire{font-size:1.8rem;line-height:1}.streak-fire-active{animation:fireFlicker 1.5s ease-in-out infinite}@keyframes fireFlicker{0%,to{transform:scale(1)}25%{transform:scale(1.1) rotate(-3deg)}50%{transform:scale(1.05)}75%{transform:scale(1.1) rotate(3deg)}}.streak-text{display:flex;flex-direction:column}.streak-count{font-weight:800;font-size:1rem;color:var(--text)}.streak-count-zero{font-weight:600;font-size:.9rem;color:var(--text-light)}.streak-longest{font-size:.75rem;color:var(--text-light);font-weight:600}.streak-calendar{display:flex;gap:6px}.streak-day{display:flex;flex-direction:column;align-items:center;gap:3px}.streak-dot{width:12px;height:12px;border-radius:50%;background:var(--border);transition:all .2s}.streak-dot-active{background:linear-gradient(135deg,#ff6b6b,#ffd93d);box-shadow:0 0 6px #ff6b6b66}.streak-dot-today{border:2px solid var(--text)}.streak-day-label{font-size:.6rem;font-weight:700;color:var(--text-light);text-transform:uppercase}.badge-grid-container{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:16px}.badge-grid-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.badge-grid-header h3{font-size:1.1rem;font-weight:800;margin:0}.badge-count{font-size:.8rem;font-weight:600;color:var(--text-light)}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px}.badge-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;border-radius:10px;text-align:center;transition:all .2s;cursor:default}.badge-earned{background:linear-gradient(135deg,#fff9e6,#fff3cc);border:2px solid #ffd93d}.badge-earned:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ffd93d4d}.badge-locked{background:var(--bg);border:2px solid var(--border);opacity:.5;filter:grayscale(1)}.badge-locked:hover{opacity:.75;filter:grayscale(.5)}.badge-new{animation:badgePulse 1.5s ease-in-out 3}@keyframes badgePulse{0%,to{box-shadow:0 0 #ffd93d66}50%{box-shadow:0 0 0 8px #ffd93d00}}.badge-icon{font-size:1.8rem;line-height:1}.badge-name{font-size:.7rem;font-weight:700;color:var(--text);line-height:1.2}.badge-date{font-size:.6rem;color:var(--text-light);font-weight:600}.badge-requirement{font-size:.6rem;color:var(--text-light);line-height:1.2}.result-xp-summary{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:20px}.result-xp-badge{display:inline-block;padding:6px 16px;background:linear-gradient(135deg,#ffd93d,#ff6b6b);color:#fff;font-weight:800;font-size:.95rem;border-radius:20px;box-shadow:0 2px 8px #ff6b6b4d;animation:xpBadgeAppear .5s cubic-bezier(.34,1.56,.64,1) both}.result-levelup-badge{display:inline-block;padding:6px 16px;background:linear-gradient(135deg,#845ef7,#5c7cfa);color:#fff;font-weight:800;font-size:.95rem;border-radius:20px;box-shadow:0 2px 8px #845ef74d;animation:xpBadgeAppear .5s cubic-bezier(.34,1.56,.64,1) .1s both}.result-streak-badge{display:inline-block;padding:6px 16px;background:linear-gradient(135deg,#ff6b6b,#ee5a24);color:#fff;font-weight:800;font-size:.95rem;border-radius:20px;box-shadow:0 2px 8px #ee5a244d;animation:xpBadgeAppear .5s cubic-bezier(.34,1.56,.64,1) .2s both}@keyframes xpBadgeAppear{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.celebration-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;transition:opacity .3s ease}.celebration-visible{opacity:1}.celebration-hidden{opacity:0;pointer-events:none}.celebration-content{position:relative;text-align:center;padding:40px;animation:celebrationSlideIn .4s cubic-bezier(.34,1.56,.64,1)}@keyframes celebrationSlideIn{0%{transform:scale(.5) translateY(40px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.celebration-main{margin-bottom:12px}.celebration-emoji{font-size:4rem;line-height:1;margin-bottom:8px}.celebration-bounce{animation:celebrationBounce .6s cubic-bezier(.34,1.56,.64,1) .2s both}@keyframes celebrationBounce{0%{transform:scale(0)}to{transform:scale(1)}}.celebration-title{font-size:2rem;font-weight:800;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.3);margin:0 0 4px}.celebration-level{font-size:1.3rem;font-weight:700;color:#ffd93d}.celebration-badge-name{font-size:1.1rem;font-weight:700;color:#ffd93d}.celebration-xp-earned{font-size:1.1rem;font-weight:700;color:#6bcb77;margin-bottom:16px}.celebration-dismiss{font-size:.85rem;color:#fff9;font-weight:600}.confetti-container{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.confetti-piece{position:absolute;top:-10px;left:var(--x);width:8px;height:8px;background:var(--color);border-radius:2px;animation:confettiFall 2s ease-out var(--delay) both}@keyframes confettiFall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(400px) rotate(720deg);opacity:0}}.install-prompt{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#00b894,#00cec9);color:#fff;padding:12px 16px;border-radius:var(--radius);margin-bottom:12px;box-shadow:var(--shadow);flex-wrap:wrap}.install-prompt-text{flex:1;font-weight:600;font-size:.9rem;min-width:180px}.install-prompt-actions{display:flex;gap:8px;flex-shrink:0}.install-prompt-btn{padding:8px 18px;border:none;border-radius:8px;font-family:inherit;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .15s}.install-prompt-install{background:#fff;color:#00b894}.install-prompt-install:hover{background:#e6fcf5;transform:translateY(-1px)}.install-prompt-later{background:#fff3;color:#fff}.install-prompt-later:hover{background:#ffffff59}.number-pad{position:sticky;bottom:0;left:0;right:0;background:var(--card-bg);border-top:2px solid var(--border);padding:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));margin:16px -16px 0;box-shadow:0 -4px 16px #00000014;z-index:50}.number-pad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:360px;margin:0 auto}.np-btn{min-height:52px;border:2px solid var(--border);border-radius:10px;background:var(--bg);font-family:inherit;font-size:1.3rem;font-weight:700;color:var(--text);cursor:pointer;transition:all .1s;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.np-btn:active{background:var(--border);transform:scale(.95)}.np-btn:disabled{opacity:.35;cursor:not-allowed}.np-btn-submit{background:var(--green);color:#fff;border-color:var(--green);font-size:1.5rem}.np-btn-submit:active{background:#00a080}.np-btn-submit:disabled{background:var(--border);border-color:var(--border);color:var(--text-light)}.np-btn-backspace{font-size:1.5rem}.analytics-page{padding-bottom:40px}.analytics-header{margin-bottom:24px}.analytics-header h2{font-size:1.6rem;font-weight:800;margin-top:12px}.analytics-summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.analytics-metric-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 16px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}.metric-value{font-size:1.4rem;font-weight:800;color:var(--text)}.metric-trend{font-size:1rem;font-weight:800}.metric-label{font-size:.75rem;font-weight:700;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px}.analytics-streak-calendar{display:flex;gap:4px;justify-content:center;flex-wrap:wrap;margin-bottom:20px;padding:14px 16px;background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow)}.analytics-streak-dot{width:10px;height:10px;border-radius:3px;background:var(--border);transition:all .2s}.analytics-streak-active{background:var(--green);box-shadow:0 0 4px #00b89466}.analytics-section{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;margin-bottom:20px}.analytics-section h3{font-size:1.15rem;font-weight:800;margin:0 0 4px}.analytics-section-sub{font-size:.85rem;color:var(--text-light);margin:0 0 16px}.analytics-chart-container{margin:0 -8px}.analytics-tooltip{background:var(--card-bg);border-radius:8px;box-shadow:var(--shadow-lg);padding:10px 14px;border:1px solid var(--border)}.analytics-tooltip-date{font-size:.8rem;color:var(--text-light);font-weight:600}.analytics-tooltip-score{font-size:1.2rem;font-weight:800}.analytics-tooltip-mode{font-size:.75rem;color:var(--text-light);text-transform:capitalize}.analytics-heatmap-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.analytics-heatmap-block{margin-bottom:14px}.analytics-heatmap-block-title{font-weight:800;font-size:.9rem;margin-bottom:6px}.analytics-heatmap-cells{display:flex;gap:6px;flex-wrap:wrap}.analytics-heatmap-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:72px;padding:10px 8px;border-radius:8px;cursor:default;transition:transform .15s}.analytics-heatmap-cell:hover{transform:scale(1.05)}.heatmap-cell-score{font-weight:800;font-size:1rem;color:var(--text)}.heatmap-cell-label{font-size:.6rem;font-weight:600;color:#2d3436b3;text-align:center;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analytics-sw-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.analytics-sw-column{display:flex;flex-direction:column;gap:10px}.analytics-sw-title{font-size:.95rem;font-weight:800;margin:0 0 4px}.analytics-sw-strong{color:var(--green)}.analytics-sw-weak{color:var(--red)}.analytics-sw-item{display:flex;flex-direction:column;gap:4px}.analytics-sw-item-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.analytics-sw-item-title{font-size:.85rem;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}.analytics-sw-item-score{font-size:.9rem;font-weight:800;flex-shrink:0}.analytics-sw-bar-wrap{width:100%;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.analytics-sw-bar{height:100%;border-radius:3px;transition:width .5s cubic-bezier(.4,0,.2,1)}.analytics-sw-bar-green{background:linear-gradient(90deg,#55efc4,#00b894)}.analytics-sw-bar-red{background:linear-gradient(90deg,#fab1a0,#d63031)}.analytics-focus-hint{font-size:.8rem;font-weight:700;color:var(--red);margin-top:8px;padding:8px 12px;background:var(--red-bg);border-radius:6px;border-left:3px solid var(--red)}.btn-analytics-child{font-size:1rem}.btn-analytics-child:hover{border-color:#3498db;color:#3498db;background:#edf2f7}@supports (padding: env(safe-area-inset-left)){.app{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}}@media(max-width:500px){.block-test-card{flex-direction:column;text-align:center}.block-test-sizes{justify-content:center}.breakdown-stats{gap:6px;font-size:.8rem}.breakdown-chapter-title{font-size:.8rem}.result-time-stats{flex-direction:column;gap:4px}.header h1{font-size:1.8rem}.header-logo{height:32px}.header{padding:8px 0;gap:8px}.chapters-grid{grid-template-columns:1fr}.question-card{padding:20px}.question-text{font-size:1.05rem}.result-card{padding:28px 20px}.result-score-big{font-size:2.5rem}.quiz-chapter-title{font-size:.95rem}.thermometers-row{gap:16px}.modal-content{padding:24px}.chart-wrapper{margin:0 -12px 20px}.timer-display{font-size:.95rem}.quiz-header-right{gap:8px}.nav-dot{width:24px;height:24px;font-size:.6rem}.question-nav-dots{gap:3px}.btn-nav-prev,.btn-nav-next{padding:6px 10px;font-size:.8rem}.answer-input{min-width:100px;font-size:1.15rem;padding:14px 16px}.result-actions{flex-direction:column}.result-actions .btn{width:100%;text-align:center}.quiz-header{flex-wrap:wrap;gap:8px}.quiz-header-info{order:-1;flex-basis:100%;justify-content:center}.chart-wrapper,.data-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.install-prompt,.streak-display{flex-direction:column;text-align:center}.streak-calendar{justify-content:center}.badge-grid{grid-template-columns:repeat(3,1fr)}.xp-bar-label{flex-direction:column;align-items:flex-start;gap:2px}.celebration-title{font-size:1.5rem}.celebration-emoji{font-size:3rem}.header-controls{gap:6px}.help-header-btn{width:32px;height:32px;font-size:.95rem}.user-menu{position:static;justify-content:center;margin-bottom:8px;gap:8px}.login-card,.verify-email-card{padding:24px 20px}.child-card{flex-direction:column;text-align:center}.child-stats{justify-content:center}.form-row{flex-direction:column}.form-row input{min-width:0;width:100%}.assignments-grid{grid-template-columns:1fr}.dashboard-actions{flex-direction:column}.btn-dashboard-action{min-width:0}.number-pad{margin-left:-16px;margin-right:-16px}.analytics-summary-cards{grid-template-columns:repeat(2,1fr)}.analytics-sw-grid{grid-template-columns:1fr}.metric-value{font-size:1.15rem}.analytics-heatmap-cell{min-width:60px;padding:8px 6px}.heatmap-cell-score{font-size:.85rem}}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:16px}.loading-spinner{width:48px;height:48px;display:flex;align-items:center;justify-content:center;animation:spinnerRotate 2s linear infinite}.loading-spinner-symbol{font-size:2rem;font-weight:800;color:var(--green);animation:spinnerPulse 1s ease-in-out infinite}@keyframes spinnerRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spinnerPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}.loading-spinner-text{font-size:.9rem;font-weight:600;color:var(--text-light);margin:0}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:80vh;padding:20px}.error-boundary-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:48px 40px;max-width:420px;width:100%;text-align:center}.error-boundary-icon{width:64px;height:64px;border-radius:50%;background:var(--red-bg);color:var(--red);font-size:2rem;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;border:3px solid var(--red)}.error-boundary-title{font-size:1.4rem;font-weight:800;margin-bottom:8px;color:var(--text)}.error-boundary-message{font-size:.95rem;color:var(--text-light);margin-bottom:24px;line-height:1.5}.error-boundary-btn{background:var(--green);color:#fff;padding:12px 32px;font-size:1rem}.onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.onboarding-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:36px;max-width:400px;width:100%;text-align:center;animation:onboardingSlideIn .3s ease-out}@keyframes onboardingSlideIn{0%{transform:scale(.9) translateY(20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.onboarding-step-indicator{display:flex;gap:8px;justify-content:center;margin-bottom:24px}.onboarding-dot{width:10px;height:10px;border-radius:50%;background:var(--border);transition:all .2s}.onboarding-dot-active{background:var(--green);transform:scale(1.3)}.onboarding-dot-done{background:var(--green);opacity:.5}.onboarding-text{font-size:1.1rem;font-weight:600;color:var(--text);line-height:1.6;margin-bottom:28px}.onboarding-actions{display:flex;gap:12px;justify-content:center}.onboarding-skip{background:var(--border);color:var(--text-light);padding:10px 24px;font-size:.9rem}.onboarding-skip:hover{background:#c8d6e5}.onboarding-next{background:var(--green);color:#fff;padding:10px 24px;font-size:.9rem}.empty-state-box{display:flex;flex-direction:column;align-items:center;text-align:center;padding:32px 20px;gap:8px}.empty-state-icon{font-size:2.5rem;line-height:1;margin-bottom:4px}.empty-state-title{font-size:1.05rem;font-weight:700;color:var(--text);margin:0}.empty-state-description{font-size:.9rem;color:var(--text-light);margin:0;line-height:1.5;max-width:300px}.empty-state-btn{margin-top:8px;background:var(--green);color:#fff;padding:10px 24px;font-size:.9rem}.smart-practice-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 24px;margin-bottom:20px;border-left:4px solid var(--warning)}.smart-practice-title{font-size:1.1rem;font-weight:800;margin:0 0 12px}.smart-practice-loading{text-align:center;padding:12px;color:var(--text-light)}.smart-practice-empty{font-size:.9rem;color:var(--text-light);font-style:italic;margin:0}.smart-practice-section{margin-bottom:16px}.smart-practice-section:last-child{margin-bottom:0}.smart-practice-suggestion{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:var(--bg);border-radius:8px}.smart-practice-suggestion-info{display:flex;flex-direction:column;gap:2px;min-width:0}.smart-practice-block{font-weight:700;font-size:.9rem;color:var(--text)}.smart-practice-chapter{font-size:.85rem;color:var(--text-light);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.smart-practice-score{font-size:.8rem;font-weight:600;color:var(--warning)}.btn-smart-start{background:var(--green);color:#fff;padding:8px 20px;font-size:.9rem;flex-shrink:0}.smart-practice-review-title{font-size:.95rem;font-weight:700;margin:0 0 8px;color:var(--text)}.smart-practice-review-list{display:flex;flex-direction:column;gap:6px}.smart-practice-review-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:6px;background:var(--bg);border-left:3px solid var(--border)}.smart-practice-review-item.urgency-high{border-left-color:var(--red);background:var(--red-bg)}.smart-practice-review-item.urgency-medium{border-left-color:var(--warning);background:var(--warning-bg)}.smart-practice-review-item.urgency-low{border-left-color:var(--green)}.smart-practice-review-info{display:flex;align-items:center;gap:8px;min-width:0}.smart-practice-review-name{font-weight:600;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.smart-practice-urgency{font-size:.7rem;font-weight:700;text-transform:uppercase;padding:2px 8px;border-radius:10px;flex-shrink:0}.smart-practice-urgency.urgency-high{background:var(--red);color:#fff}.smart-practice-urgency.urgency-medium{background:var(--warning);color:#fff}.smart-practice-urgency.urgency-low{background:var(--green);color:#fff}.smart-practice-wrong-count{font-size:.8rem;color:var(--text-light);font-weight:600;flex-shrink:0}.lang-toggle-3 .lang-btn{padding:6px 11px}@media(max-width:500px){.smart-practice-suggestion{flex-direction:column;text-align:center}.smart-practice-suggestion-info{align-items:center}.onboarding-card{padding:24px}.error-boundary-card{padding:28px 20px}.lang-toggle-3 .lang-btn{padding:6px 9px;font-size:.8rem}}.child-xp-row{display:flex;align-items:center;gap:6px;margin-top:4px;width:100%}.child-level-badge{font-size:.7rem;font-weight:700;color:#6c5ce7;background:#f0eaff;padding:1px 6px;border-radius:8px;white-space:nowrap}.child-xp-bar-track{flex:1;height:6px;background:#eee;border-radius:3px;overflow:hidden}.child-xp-bar-fill{height:100%;background:linear-gradient(90deg,#6c5ce7,#a29bfe);border-radius:3px;transition:width .5s ease}.child-xp-text{font-size:.65rem;color:var(--text-light);white-space:nowrap}.analytics-gamification-streak{margin-top:16px}.analytics-gamification-streak h4{font-size:.95rem;margin-bottom:8px;color:var(--text)}.analytics-streak-stats{display:flex;gap:24px;margin-top:8px;font-size:.85rem;color:var(--text-light)}.analytics-leaderboard{margin-top:20px}.analytics-leaderboard h4{font-size:.95rem;margin-bottom:8px;color:var(--text)}.analytics-leaderboard-list{display:flex;flex-direction:column;gap:6px}.analytics-leaderboard-row{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--card-bg);border-radius:var(--radius);border:1px solid var(--border)}.analytics-leaderboard-row.analytics-leaderboard-current{border-color:#6c5ce7;background:#f8f7ff}.analytics-leaderboard-rank{font-weight:800;font-size:1rem;color:#6c5ce7;min-width:28px}.analytics-leaderboard-name{flex:1;font-weight:600}.analytics-leaderboard-xp{font-weight:700;color:#6c5ce7}.analytics-leaderboard-level{font-size:.8rem;color:var(--text-light)}.cookie-consent-banner{position:fixed;bottom:0;left:0;right:0;background:var(--card-bg);border-top:1px solid var(--border);box-shadow:0 -2px 12px #0000001a;z-index:9999;padding:12px 16px}.cookie-consent-content{max-width:800px;margin:0 auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cookie-consent-text{flex:1;font-size:.85rem;color:var(--text-light);min-width:200px}.cookie-consent-link{background:none;border:none;color:#3498db;text-decoration:underline;cursor:pointer;font-size:.85rem;padding:0}.cookie-consent-accept{background:var(--green)!important;color:#fff!important;border:none;white-space:nowrap}.data-consent-checkbox{margin:12px 0}.data-consent-label{display:flex;align-items:flex-start;gap:8px;cursor:pointer;font-size:.85rem;color:var(--text-light);line-height:1.4}.data-consent-input{margin-top:3px;flex-shrink:0;width:16px;height:16px;accent-color:#6c5ce7}.data-consent-link{background:none;border:none;color:#3498db;text-decoration:underline;cursor:pointer;font-size:.85rem;padding:0}.privacy-policy-page{padding:16px 0 40px}.privacy-policy-header{margin-bottom:24px}.privacy-policy-header h2{font-size:1.6rem;margin-bottom:4px}.privacy-policy-updated{font-size:.8rem;color:var(--text-light)}.privacy-policy-content{display:flex;flex-direction:column;gap:20px}.privacy-policy-section h3{font-size:1rem;margin-bottom:6px;color:var(--text)}.privacy-policy-section p{font-size:.9rem;color:var(--text-light);line-height:1.6}.footer-privacy-link{display:inline-block;background:none;border:none;color:var(--text-light);font-family:inherit;font-size:.75rem;cursor:pointer;margin-top:4px;text-decoration:underline}.footer-privacy-link:hover{color:#3498db}.login-privacy-link{display:block;background:none;border:none;color:var(--text-light);font-size:.8rem;cursor:pointer;margin-top:8px;text-decoration:underline;text-align:center;width:100%}.login-privacy-link:hover{color:#3498db}.class-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:12px}.class-card{background:var(--card-bg);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px;transition:box-shadow .2s}.class-card:hover{box-shadow:var(--shadow-lg)}.class-card-header{display:flex;justify-content:space-between;align-items:flex-start}.class-card-name{font-size:1.2rem;font-weight:700;color:var(--text);margin:0}.class-card-stats{display:flex;gap:24px}.class-card-code{display:flex;align-items:center;gap:8px;background:var(--bg);border-radius:8px;padding:8px 12px}.join-code-label{font-size:.85rem;color:var(--text-light)}.join-code-value{font-family:Courier New,monospace;font-size:1.1rem;font-weight:700;color:var(--text);letter-spacing:2px}.join-code-large{font-size:1.4rem;letter-spacing:3px}.btn-copy-code{border:1px solid var(--border);background:var(--card-bg);border-radius:6px;padding:4px 10px;font-size:.8rem;font-family:inherit;color:var(--text-light);cursor:pointer;transition:all .15s;white-space:nowrap}.btn-copy-code:hover{background:var(--bg);color:var(--text)}.class-card-actions{display:flex;gap:8px;margin-top:4px}.btn-view-class{background:var(--green)!important;color:#fff!important}.class-detail{padding-bottom:32px}.class-detail-code-bar{display:flex;align-items:center;gap:12px;background:var(--card-bg);border-radius:var(--radius);padding:12px 20px;box-shadow:var(--shadow);margin-bottom:20px}.class-analytics-section{margin-bottom:24px}.class-analytics-section h3{font-size:1.2rem;font-weight:700;margin-bottom:12px}.class-analytics-summary{display:flex;gap:16px;margin-bottom:20px}.stat-card{background:var(--card-bg);border-radius:var(--radius);padding:16px 24px;box-shadow:var(--shadow);text-align:center;flex:1}.stat-card-value{display:block;font-size:1.8rem;font-weight:800;color:var(--green)}.stat-card-label{display:block;font-size:.85rem;color:var(--text-light);margin-top:4px}.score-distribution{background:var(--card-bg);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:20px}.score-distribution h4{font-size:1rem;font-weight:700;margin-bottom:16px}.histogram{display:flex;align-items:flex-end;justify-content:center;gap:16px;min-height:160px;padding-top:8px}.histogram-bar-wrapper{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;max-width:80px}.histogram-count{font-size:.85rem;font-weight:700;color:var(--text)}.histogram-bar{width:100%;min-height:4px;background:linear-gradient(to top,#00b894,#55efc4);border-radius:6px 6px 0 0;transition:height .3s ease}.histogram-label{font-size:.75rem;color:var(--text-light);text-align:center}.weakest-chapters{background:var(--card-bg);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:20px}.weakest-chapters h4{font-size:1rem;font-weight:700;margin-bottom:12px}.weakest-chapters-list{display:flex;flex-direction:column;gap:8px}.weakest-chapter-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--red-bg);border-radius:8px}.weakest-chapter-name{font-weight:600;color:var(--text)}.weakest-chapter-score{font-size:.9rem;color:var(--red);font-weight:600}.per-student-table{overflow-x:auto}.student-analytics-table{width:100%;border-collapse:collapse;background:var(--card-bg);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.student-analytics-table th{padding:12px 16px;text-align:left;background:var(--bg);font-weight:700;font-size:.85rem;color:var(--text-light);border-bottom:2px solid var(--border)}.student-analytics-table td{padding:10px 16px;border-bottom:1px solid var(--border);font-size:.95rem}.student-analytics-table tr:last-child td{border-bottom:none}.student-analytics-table tr:hover td{background:var(--bg)}.join-class-section{background:var(--card-bg);border-radius:var(--radius);padding:16px 20px;box-shadow:var(--shadow)}.join-class-title{font-size:1rem;font-weight:700;margin-bottom:12px}.my-classes-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.my-class-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--green-bg);border-radius:8px}.my-class-info{display:flex;flex-direction:column}.my-class-name{font-weight:600;color:var(--text)}.my-class-teacher{font-size:.8rem;color:var(--text-light)}.btn-leave-class{background:transparent!important;color:var(--red)!important;border:1px solid var(--red)!important;font-size:.8rem}.btn-leave-class:hover{background:var(--red-bg)!important}.join-class-form{display:flex;gap:8px;align-items:center}.join-code-input{font-family:Courier New,monospace;font-size:1.1rem;font-weight:700;letter-spacing:3px;text-transform:uppercase;text-align:center;padding:10px 16px;border:2px solid var(--border);border-radius:8px;width:160px;transition:border-color .2s}.join-code-input:focus{outline:none;border-color:var(--green)}.btn-join-class{background:var(--green)!important;color:#fff!important;padding:10px 20px;font-weight:700}.join-class-error{color:var(--red);font-size:.85rem;margin-top:6px}.join-class-success{color:var(--green);font-size:.85rem;margin-top:6px;font-weight:600}@media(max-width:600px){.class-cards-grid{grid-template-columns:1fr}.class-analytics-summary{flex-direction:column}.histogram{gap:8px}.join-class-form{flex-direction:column}.join-code-input{width:100%}.class-detail-code-bar{flex-wrap:wrap;justify-content:center}.class-card-actions{flex-direction:column}}.pricing-page{padding-bottom:60px}.pricing-header{text-align:center;padding:32px 0 8px}.pricing-title{font-size:2rem;font-weight:800;color:var(--text)}.pricing-subtitle{color:var(--text-light);font-size:1.05rem;margin-top:4px}.pricing-error{color:var(--red);background:var(--red-bg);border-radius:8px;padding:10px 16px;text-align:center;font-weight:600;margin:12px 0}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:24px}.pricing-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 24px;display:flex;flex-direction:column;position:relative;border:2px solid var(--border);transition:transform .2s,box-shadow .2s}.pricing-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.pricing-card-highlighted{border-color:var(--green);box-shadow:0 4px 24px #00b8942e}.pricing-card-current{border-color:#74b9ff}.pricing-recommended-badge{position:absolute;top:-13px;left:50%;transform:translate(-50%);background:var(--green);color:#fff;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:1px;padding:4px 16px;border-radius:12px;white-space:nowrap}.pricing-card-header{text-align:center;margin-bottom:20px}.pricing-plan-name{font-size:1.3rem;font-weight:800;color:var(--text);margin-bottom:8px}.pricing-price{display:flex;align-items:baseline;justify-content:center;gap:4px}.pricing-amount{font-size:2.4rem;font-weight:800;color:var(--text)}.pricing-interval{font-size:.9rem;color:var(--text-light);font-weight:600}.pricing-features{list-style:none;padding:0;margin:0 0 20px;flex:1}.pricing-feature{padding:6px 0;font-size:.9rem;font-weight:600;display:flex;align-items:flex-start;gap:8px;line-height:1.4}.pricing-feature:before{flex-shrink:0;font-size:1rem;line-height:1.3}.pricing-feature-yes{color:var(--text)}.pricing-feature-yes:before{content:"✓";color:var(--green);font-weight:800}.pricing-feature-no{color:var(--text-light);text-decoration:line-through;opacity:.6}.pricing-feature-no:before{content:"✗";color:var(--red);font-weight:800}.pricing-student-count{background:var(--bg);border-radius:8px;padding:12px;margin-bottom:16px;text-align:center}.pricing-student-label{display:block;font-size:.8rem;font-weight:700;color:var(--text-light);margin-bottom:6px}.pricing-student-input{width:80px;padding:6px 10px;border:2px solid var(--border);border-radius:6px;font-family:inherit;font-size:1rem;font-weight:700;text-align:center;outline:none}.pricing-student-input:focus{border-color:#74b9ff}.pricing-student-total{display:block;margin-top:6px;font-size:.85rem;font-weight:700;color:var(--text)}.pricing-card-footer{margin-top:auto}.pricing-btn{width:100%;padding:12px;font-size:1rem;font-weight:700;border-radius:8px;cursor:pointer;transition:all .2s}.pricing-btn-primary{background:var(--green);color:#fff;border:none}.pricing-btn-primary:hover{background:#00a884}.pricing-btn-school{background:#6c5ce7;color:#fff;border:none}.pricing-btn-school:hover{background:#5b4bd5}.pricing-btn-current,.pricing-btn-secondary{background:var(--bg);color:var(--text-light);border:2px solid var(--border);cursor:default}.pricing-btn-manage{background:var(--card-bg);color:var(--text);border:2px solid var(--border)}.pricing-btn-manage:hover{border-color:var(--text)}@media(max-width:900px){.pricing-grid{grid-template-columns:1fr;max-width:420px;margin-left:auto;margin-right:auto}.pricing-card-highlighted{order:-1}}.upgrade-prompt{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#fff9e6,#fff3cd);border:2px solid #ffc107;border-radius:var(--radius);padding:16px 20px;margin:16px 0}.upgrade-prompt-icon{font-size:1.8rem;flex-shrink:0}.upgrade-prompt-content{flex:1}.upgrade-prompt-title{font-size:1rem;font-weight:800;color:var(--text);margin-bottom:2px}.upgrade-prompt-desc{font-size:.85rem;color:var(--text-light);line-height:1.4}.upgrade-prompt-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.upgrade-prompt-btn{background:#ffc107;color:#2d3436;font-size:.85rem;font-weight:700;padding:8px 18px;border:none;border-radius:6px;cursor:pointer;white-space:nowrap;transition:background .15s}.upgrade-prompt-btn:hover{background:#e0a800}.upgrade-prompt-dismiss{background:none;border:none;font-family:inherit;font-size:.8rem;color:var(--text-light);cursor:pointer;text-align:center}.upgrade-prompt-dismiss:hover{text-decoration:underline}.pricing-header-link{display:inline-block;margin-top:8px;padding:6px 16px;background:linear-gradient(135deg,#00b894,#00cec9);color:#fff;border:none;border-radius:6px;font-family:inherit;font-size:.8rem;font-weight:700;cursor:pointer;transition:opacity .15s}.pricing-header-link:hover{opacity:.9}@media(max-width:600px){.upgrade-prompt{flex-direction:column;text-align:center}.upgrade-prompt-actions{flex-direction:row;width:100%;justify-content:center}}.lang-toggle-4 .lang-btn{padding:6px 10px;font-size:.8rem}.guest-auth-banner{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 20px;margin-bottom:16px;background:linear-gradient(135deg,#e8f4fd,#d6eaf8);border:1px solid #b3d7f2;border-radius:var(--radius);font-size:.9rem;color:var(--text);flex-wrap:wrap}.guest-auth-banner span{font-weight:600}.guest-auth-banner button{padding:6px 16px;border:2px solid #3498db;border-radius:8px;background:#fff;font-family:inherit;font-size:.85rem;font-weight:700;color:#3498db;cursor:pointer;transition:all .15s}.guest-auth-banner button:hover{background:#3498db;color:#fff}.guest-auth-banner-sm{padding:8px 16px;font-size:.85rem}.guest-auth-banner-sm button{padding:4px 12px;font-size:.8rem}.save-progress-prompt{margin-top:20px;padding:20px;background:linear-gradient(135deg,#e8f4fd,#d6eaf8);border:2px solid #3498db;border-radius:var(--radius);text-align:center}.save-progress-prompt p{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:12px}.save-progress-prompt button{padding:10px 24px;border:none;border-radius:8px;background:#3498db;font-family:inherit;font-size:.95rem;font-weight:700;color:#fff;cursor:pointer;transition:all .15s}.save-progress-prompt button:hover{background:#2980b9;transform:translateY(-1px)}.help-page{padding-bottom:60px}.help-title{font-size:2rem;font-weight:800;text-align:center;margin:24px 0 16px;color:var(--text)}.help-toc{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;margin-bottom:24px}.help-toc h2{font-size:1.1rem;font-weight:800;margin-bottom:12px;color:var(--text)}.help-toc ol{list-style:none;counter-reset:toc-counter;padding:0}.help-toc li{counter-increment:toc-counter;margin-bottom:4px}.help-toc li button{background:none;border:none;font-family:inherit;font-size:.95rem;font-weight:600;color:#3498db;cursor:pointer;padding:4px 0;text-align:left;width:100%;transition:color .15s}.help-toc li button:hover{color:#2980b9;text-decoration:underline}.help-section{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px;margin-bottom:20px}.help-section h2{font-size:1.4rem;font-weight:800;margin-bottom:16px;color:var(--text);padding-bottom:8px;border-bottom:2px solid var(--border)}.help-section h3{font-size:1.05rem;font-weight:700;margin:16px 0 8px;color:var(--text)}.help-section p{font-size:.95rem;color:var(--text-light);line-height:1.7;margin-bottom:8px}.help-intro{font-size:1rem!important;color:var(--text)!important;font-weight:600;background:#f0f4ff;padding:16px;border-radius:8px;border-left:4px solid #3498db;margin-bottom:16px!important}.help-steps{padding-left:24px;margin-bottom:16px}.help-steps li{font-size:.95rem;color:var(--text-light);line-height:1.7;margin-bottom:8px;padding-left:4px}.help-section ul{padding-left:24px;margin-bottom:12px}.help-section ul li{font-size:.95rem;color:var(--text-light);line-height:1.7;margin-bottom:4px}.help-mode-card{background:var(--bg);border-radius:8px;padding:16px 20px;margin-bottom:12px;border-left:4px solid var(--green)}.help-mode-card h3{margin:0 0 6px;color:var(--text)}.help-mode-card p{margin:0}.help-feature-table-wrap{overflow-x:auto;margin-bottom:16px}.help-feature-table{width:100%;border-collapse:collapse;font-size:.9rem}.help-feature-table th{padding:10px 14px;text-align:center;font-weight:800;background:#2d3436;color:#fff;font-size:.85rem}.help-feature-table th:first-child{text-align:left;border-radius:8px 0 0}.help-feature-table th:last-child{border-radius:0 8px 0 0}.help-feature-table td{padding:10px 14px;border-bottom:1px solid var(--border);text-align:center;font-weight:600}.help-feature-table td:first-child{text-align:left;color:var(--text)}.help-feature-table .feat-yes{color:var(--green)}.help-feature-table .feat-no{color:var(--text-light);opacity:.5}.help-feature-table tbody tr:nth-child(2n){background:var(--bg)}.help-privacy-link{display:inline-block;margin-top:12px;padding:8px 20px;background:none;border:2px solid #3498db;border-radius:8px;font-family:inherit;font-size:.9rem;font-weight:700;color:#3498db;cursor:pointer;transition:all .15s}.help-privacy-link:hover{background:#3498db;color:#fff}.help-faq-list{display:flex;flex-direction:column;gap:4px}.help-faq-item{border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:border-color .15s}.help-faq-item.help-faq-open{border-color:#3498db}.help-faq-question{display:flex;justify-content:space-between;align-items:center;width:100%;padding:14px 18px;background:var(--bg);border:none;font-family:inherit;font-size:.95rem;font-weight:700;color:var(--text);cursor:pointer;text-align:left;transition:background .15s}.help-faq-question:hover{background:#edf2f7}.help-faq-arrow{font-size:.7rem;color:var(--text-light);margin-left:12px;flex-shrink:0}.help-faq-answer{padding:14px 18px;background:#fff;border-top:1px solid var(--border)}.help-faq-answer p{font-size:.9rem;color:var(--text-light);line-height:1.7;margin:0}@media print{.help-page .back-btn,.help-toc{display:none}.help-section{box-shadow:none;border:1px solid #ddd;break-inside:avoid}.help-faq-answer{display:block!important}}@media(max-width:600px){.help-section{padding:20px 16px}.help-title{font-size:1.6rem}.help-feature-table{font-size:.8rem}.help-feature-table th,.help-feature-table td{padding:8px}.guest-auth-banner{flex-direction:column;text-align:center;gap:8px}.guest-auth-banner button{width:100%}}.sp-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:12px}.sp-card{background:var(--card-bg);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);cursor:pointer;transition:transform .15s,box-shadow .15s;border-left:4px solid var(--green)}.sp-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.sp-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.sp-card-title{font-size:1rem;font-weight:700;color:var(--text);margin:0}.sp-card-child{font-size:.85rem;color:var(--text-light);margin:0 0 12px}.sp-card-countdown{display:flex;align-items:baseline;gap:6px;margin-bottom:12px}.sp-card-days{font-size:1.8rem;font-weight:800;color:var(--green);line-height:1}.sp-card-days-label{font-size:.85rem;color:var(--text-light)}.sp-card-progress{display:flex;align-items:center;gap:10px;margin-bottom:12px}.sp-card-progress-track{flex:1;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.sp-card-progress-fill{height:100%;background:var(--green);border-radius:4px;transition:width .3s}.sp-card-progress-text{font-size:.85rem;font-weight:700;color:var(--text);min-width:40px;text-align:right}.sp-card-next{font-size:.8rem;color:var(--text-light);margin-bottom:12px}.sp-card-next-label{font-weight:600}.sp-card-next-info{margin-left:4px}.sp-card-view-btn{width:100%;margin-top:4px}.sp-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.sp-badge-small{padding:2px 8px;font-size:.7rem}.sp-badge-draft{background:var(--warning-bg);color:var(--warning)}.sp-badge-active{background:var(--green-bg);color:var(--green)}.sp-badge-completed{background:#e8f5e9;color:#2e7d32}.sp-badge-canceled{background:var(--red-bg);color:var(--red)}.exam-cards-list{display:flex;flex-direction:column;gap:16px;margin-top:12px}.exam-card{background:var(--card-bg);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);border-left:4px solid var(--green);transition:box-shadow .15s}.exam-card:hover{box-shadow:var(--shadow-lg)}.exam-card.exam-overdue{border-left-color:var(--red)}.exam-card.exam-today{border-left-color:var(--warning)}.exam-card.exam-very-behind{border-left-color:var(--red)}.exam-card.exam-behind{border-left-color:var(--warning)}.exam-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:10px}.exam-card-date-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.exam-card-date-text{font-size:.85rem;font-weight:700;color:var(--text-light);text-transform:uppercase;letter-spacing:.3px}.exam-countdown{font-size:.75rem;font-weight:700;padding:2px 10px;border-radius:20px;background:var(--green-bg);color:var(--green)}.exam-countdown-today{background:var(--warning-bg);color:var(--warning)}.exam-countdown-overdue{background:var(--red-bg);color:var(--red)}.exam-delete-btn{background:none;border:none;font-size:1.2rem;color:var(--text-light);cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1}.exam-delete-btn:hover{background:var(--red-bg);color:var(--red)}.exam-card-info{margin-bottom:14px}.exam-card-title{font-size:1.05rem;font-weight:700;color:var(--text);margin-bottom:2px}.exam-card-child{font-size:.85rem;color:var(--text-light);margin-bottom:4px}.exam-card-scope{font-size:.8rem;color:var(--text-light)}.exam-plan-status{background:var(--bg);border-radius:8px;padding:14px}.exam-plan-label{font-size:.85rem;font-weight:600;color:var(--text);margin-bottom:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.exam-tracking-badge{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.3px}.exam-tracking-on-track{background:var(--green-bg);color:var(--green)}.exam-tracking-behind{background:var(--warning-bg);color:var(--warning)}.exam-tracking-very-behind{background:var(--red-bg);color:var(--red)}.exam-progress-bar{height:8px;background:var(--border);border-radius:4px;overflow:hidden;margin-bottom:8px}.exam-progress-fill{height:100%;background:var(--green);border-radius:4px;transition:width .3s}.exam-card.exam-behind .exam-progress-fill{background:var(--warning)}.exam-card.exam-very-behind .exam-progress-fill{background:var(--red)}.exam-plan-stats{font-size:.8rem;color:var(--text-light);margin-bottom:10px}.exam-plan-actions{display:flex;gap:8px;flex-wrap:wrap}.exam-no-plan{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--warning-bg);border-radius:8px;padding:12px 14px;flex-wrap:wrap}.exam-no-plan-label{font-size:.85rem;color:var(--warning);font-weight:600}.exam-add-form{background:var(--card-bg);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-top:16px;border:2px dashed var(--border)}.exam-form-row{margin-bottom:14px}.exam-form-row label{display:block;font-size:.85rem;font-weight:600;color:var(--text);margin-bottom:4px}.exam-form-row input,.exam-form-row select{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:.9rem;color:var(--text);background:var(--card-bg)}.exam-form-row input:focus,.exam-form-row select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px #00b8941a}.exam-scope-selector{display:flex;flex-direction:column;gap:8px}.exam-scope-block{background:var(--bg);border-radius:8px;padding:10px 14px}.exam-scope-block-label{font-weight:600;font-size:.9rem;cursor:pointer;display:flex;align-items:center;gap:6px}.exam-scope-chapters{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:8px;padding-left:22px}.exam-scope-chapter-label{font-size:.8rem;cursor:pointer;display:flex;align-items:center;gap:4px;color:var(--text-light)}.exam-form-actions{display:flex;gap:10px;margin-top:8px}@media(max-width:600px){.exam-card{padding:16px}.exam-no-plan{flex-direction:column;align-items:flex-start}.exam-plan-actions{flex-direction:column}.exam-plan-actions .btn{width:100%}}.create-study-plan{max-width:700px;margin:0 auto;padding-bottom:40px}.sp-section{background:var(--card-bg);border-radius:var(--radius);padding:24px;margin-bottom:20px;box-shadow:var(--shadow)}.sp-section-title{font-size:1.1rem;font-weight:700;margin:0 0 16px;color:var(--text);border-bottom:2px solid var(--green);padding-bottom:8px}.sp-availability-grid{display:flex;flex-direction:column;gap:8px}.sp-avail-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:8px;background:#f8f9fa;transition:background .2s}.sp-avail-row.sp-avail-active{background:var(--green-bg)}.sp-avail-row.sp-avail-disabled{opacity:.5}.sp-avail-toggle{display:flex;align-items:center;gap:8px;min-width:70px;cursor:pointer}.sp-avail-toggle input[type=checkbox]{width:18px;height:18px;accent-color:var(--green)}.sp-avail-day{font-weight:700;font-size:.9rem;color:var(--text)}.sp-avail-times{display:flex;align-items:center;gap:8px}.sp-avail-times input[type=time]{padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-size:.9rem;background:#fff}.sp-avail-separator{font-weight:700;color:var(--text-light)}.sp-avail-total{margin-top:12px;font-size:.9rem;color:var(--text-light);text-align:right}.sp-timeline{position:relative;padding-left:32px;margin:24px 0}.sp-timeline:before{content:"";position:absolute;left:12px;top:0;bottom:0;width:3px;background:var(--border);border-radius:2px}.sp-timeline-item{position:relative;margin-bottom:16px}.sp-timeline-dot{position:absolute;left:-26px;top:16px;width:14px;height:14px;border-radius:50%;background:var(--border);border:3px solid var(--card-bg);z-index:1}.sp-timeline-item.sp-session-today .sp-timeline-dot{background:#2196f3;box-shadow:0 0 0 4px #2196f333}.sp-timeline-item.sp-session-completed .sp-timeline-dot{background:var(--green)}.sp-timeline-item.sp-session-skipped .sp-timeline-dot{background:var(--text-light)}.sp-timeline-card{background:var(--card-bg);border-radius:var(--radius);padding:16px 20px;box-shadow:var(--shadow);border-left:3px solid var(--border);transition:border-color .2s}.sp-timeline-item.sp-session-today .sp-timeline-card{border-left-color:#2196f3;background:#f3f8ff}.sp-timeline-item.sp-session-completed .sp-timeline-card{border-left-color:var(--green);opacity:.85}.sp-timeline-item.sp-session-skipped .sp-timeline-card{border-left-color:var(--text-light);opacity:.6}.sp-session-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.sp-session-icon{font-size:1.2rem}.sp-session-type{font-weight:700;font-size:.95rem;color:var(--text)}.sp-session-date{font-size:.85rem;color:var(--text-light);margin-left:auto}.sp-session-time{font-size:.8rem;color:var(--text-light);background:#f0f0f0;padding:2px 8px;border-radius:4px}.sp-session-details{display:flex;gap:12px;font-size:.85rem;color:var(--text-light);margin-bottom:6px}.sp-session-reason{font-size:.8rem;color:var(--warning);font-style:italic}.sp-session-status-row{display:flex;align-items:center;justify-content:flex-end;margin-top:8px;gap:8px}.sp-session-score{font-size:1.1rem;font-weight:800}.sp-start-btn{background:#2196f3!important;color:#fff!important}.sp-session-skipped-label{font-size:.8rem;color:var(--text-light);font-style:italic}.study-plan-view{max-width:700px;margin:0 auto;padding-bottom:40px}.sp-view-header{background:var(--card-bg);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);margin-bottom:20px}.sp-view-title-row{display:flex;align-items:center;gap:12px;margin-bottom:4px}.sp-view-title-row h2{margin:0;font-size:1.3rem}.sp-view-child{font-size:.9rem;color:var(--text-light);margin:0 0 12px}.sp-view-meta{display:flex;align-items:center;gap:16px;margin-bottom:16px}.sp-exam-countdown{font-size:1rem;font-weight:700;color:var(--green)}.sp-exam-date{font-size:.85rem;color:var(--text-light)}.sp-progress-section{margin-top:12px}.sp-progress-label{font-size:.9rem;font-weight:600;margin-bottom:6px}.sp-progress-track{height:12px;background:var(--border);border-radius:6px;overflow:hidden}.sp-progress-fill{height:100%;background:linear-gradient(90deg,var(--green),#00d2b4);border-radius:6px;transition:width .4s ease}.sp-view-actions{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.sp-preview-header{background:var(--card-bg);border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow);margin-bottom:20px}.sp-preview-header h3{margin:0 0 8px}.sp-preview-header p{margin:0;color:var(--text-light);font-size:.9rem}.sp-preview-actions{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}.sp-child-section{background:linear-gradient(135deg,#e6fcf5,#f0fdf4);border-radius:var(--radius);padding:20px;margin-bottom:20px;border:2px solid var(--green)}.sp-today-sessions{display:flex;flex-direction:column;gap:8px;margin-top:12px}.sp-today-card{background:#fff;border-radius:8px;padding:12px 16px;display:flex;align-items:center;gap:12px;box-shadow:0 1px 4px #0000000f}.sp-today-type{font-weight:700;font-size:.95rem}.sp-today-details{font-size:.85rem;color:var(--text-light)}.sp-today-reason{font-size:.8rem;color:var(--warning);font-style:italic;margin-left:auto}.sp-upcoming{margin-top:16px}.sp-upcoming h4{font-size:.9rem;color:var(--text-light);margin:0 0 8px}.sp-upcoming-item{display:flex;align-items:center;gap:12px;padding:6px 0;font-size:.85rem;color:var(--text-light);border-bottom:1px solid var(--border)}.sp-upcoming-item:last-child{border-bottom:none}@media(max-width:600px){.sp-cards-grid{grid-template-columns:1fr}.sp-avail-row{flex-direction:column;align-items:flex-start;gap:6px}.sp-session-header{flex-direction:column;align-items:flex-start}.sp-session-date{margin-left:0}.sp-view-actions{flex-direction:column}.sp-view-actions .btn{width:100%}.sp-today-card{flex-direction:column;align-items:flex-start;gap:4px}.sp-today-reason{margin-left:0}}.child-study-plan-section{background:linear-gradient(135deg,#e6fcf5,#f0fdf4);border-radius:var(--radius);padding:20px;margin-bottom:20px;border-left:4px solid var(--green)}.child-plan-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.child-plan-header h3{margin:0;font-size:1.1rem}.child-plan-exam-info{display:flex;gap:12px;align-items:center;font-size:.85rem;color:var(--text-light);flex-shrink:0}.exam-countdown-badge{background:var(--green);color:#fff;padding:2px 10px;border-radius:12px;font-weight:700;font-size:.8rem}.child-plan-progress{display:flex;align-items:center;gap:12px;margin-bottom:16px;font-size:.85rem;color:var(--text-light)}.child-plan-progress-bar{flex:1;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.child-plan-progress-fill{height:100%;background:var(--green);border-radius:4px;transition:width .3s ease}.child-plan-today{background:#e8f4fd;border:2px solid #4a90d9;border-radius:12px;padding:16px;margin-bottom:16px;display:flex;flex-direction:column;gap:10px}.child-plan-today-badge{font-weight:700;color:#4a90d9;font-size:.9rem}.child-plan-today-info{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:.9rem}.child-plan-session-type{font-weight:600}.btn-start-session{background:#4a90d9;color:#fff;border:none;padding:12px 28px;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:background .2s;align-self:flex-start}.btn-start-session:hover{background:#357abd}.child-plan-next{background:#f5f5f5;border-radius:8px;padding:12px 16px;margin-bottom:16px;display:flex;gap:16px;align-items:center;font-size:.9rem;color:var(--text-light)}.child-plan-completed{margin-bottom:12px}.child-plan-completed h4{font-size:.85rem;color:var(--text-light);margin:0 0 8px}.child-plan-completed-item{display:flex;align-items:center;gap:12px;padding:6px 0;font-size:.85rem;border-bottom:1px solid var(--border)}.child-plan-completed-item:last-child{border-bottom:none}.child-plan-score{font-weight:700;min-width:40px;text-align:right}.child-plan-date{color:var(--text-light);font-size:.8rem;margin-left:auto}.child-plan-timeline-details{margin-top:8px}.child-plan-timeline-details summary{cursor:pointer;font-size:.85rem;color:var(--text-light);padding:6px 0}.child-plan-timeline{display:flex;flex-direction:column;gap:4px;margin-top:8px}.child-plan-timeline-item{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:.8rem;color:var(--text-light)}.child-plan-timeline-item.completed{opacity:.7}.timeline-dot{font-size:.75rem;width:20px;text-align:center}.timeline-date{min-width:56px}.timeline-focus{flex:1}.timeline-score{font-weight:700;min-width:36px;text-align:right}.exam-past-details{margin-top:16px}.exam-past-summary{cursor:pointer;font-size:.9rem;color:var(--text-light);padding:8px 0;font-weight:600}@media(max-width:600px){.child-plan-header{flex-direction:column;gap:6px}.child-plan-exam-info{flex-wrap:wrap}.child-plan-today-info{flex-direction:column;align-items:flex-start;gap:6px}.child-plan-completed-item{flex-wrap:wrap}.child-plan-date{margin-left:0}}.sp-region-select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:.95rem;background:var(--card);color:var(--text);-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.sp-holiday-preview{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:12px 16px;margin-bottom:12px}.sp-holiday-preview-title{font-weight:600;font-size:.85rem;color:var(--text-light);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.sp-holiday-preview-item{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:.9rem}.sp-holiday-preview-item+.sp-holiday-preview-item{border-top:1px solid var(--border)}.sp-holiday-icon{font-size:1.1rem}.sp-holiday-name{font-weight:500;flex:1}.sp-holiday-dates{color:var(--text-light);font-size:.8rem;white-space:nowrap}.sp-holiday-toggle{display:flex;align-items:center;gap:10px;padding:10px 0;cursor:pointer;font-size:.95rem}.sp-holiday-toggle input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.sp-holiday-hours{display:flex;align-items:center;gap:8px;padding:8px 0 12px}.sp-holiday-hours-label{font-size:.9rem;font-weight:500;min-width:120px}.sp-holiday-hours input[type=time]{padding:6px 8px;border:1px solid var(--border);border-radius:6px;font-size:.9rem;background:var(--card);color:var(--text)}.sp-holiday-note{font-size:.8rem;color:var(--text-light);font-style:italic;padding:4px 0 8px}.sp-holiday-badge{display:inline-flex;align-items:center;gap:4px;background:#fff3cd;color:#856404;padding:3px 10px;border-radius:12px;font-size:.78rem;font-weight:500;margin-top:6px}.sp-holiday-badge-name{color:#856404;font-weight:400}.sp-exam-date-row{display:flex;align-items:center;gap:10px}.sp-exam-date-row input[type=date]{flex:1}.sp-outlook-import-btn{white-space:nowrap;font-size:.8rem;background:#0078d4;color:#fff;border:none}.sp-outlook-import-btn:hover{background:#106ebe}.outlook-connect-compact{padding:8px 0}.outlook-connected-row{display:flex;align-items:center;gap:8px}.outlook-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.outlook-status-connected{background:var(--green)}.outlook-status-text{font-size:.9rem;font-weight:500}.outlook-disconnect-btn{margin-left:auto;font-size:.8rem}.sp-outlook-connect-btn{display:inline-flex;align-items:center;gap:8px;background:#0078d4;color:#fff;border:none;padding:10px 20px;border-radius:8px;font-weight:500;cursor:pointer;font-size:.9rem;transition:background .2s}.sp-outlook-connect-btn:hover{background:#106ebe}.outlook-icon{font-size:1.1rem}.outlook-connect-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px}.outlook-connect-header{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px}.outlook-icon-large{font-size:2rem}.outlook-connect-title{font-size:1rem;font-weight:600;margin:0 0 4px}.outlook-connect-desc{font-size:.85rem;color:var(--text-light);margin:0}.outlook-connected-section{display:flex;align-items:center;gap:8px}.sp-outlook-export-btn{background:#0078d4;color:#fff;border:none;padding:8px 16px;border-radius:8px;font-weight:500;cursor:pointer;font-size:.85rem;transition:background .2s}.sp-outlook-export-btn:hover{background:#106ebe}.sp-outlook-exported{display:inline-flex;align-items:center;gap:6px;color:var(--green);font-weight:500;font-size:.9rem}@media(max-width:600px){.sp-holiday-preview-item{flex-wrap:wrap}.sp-holiday-dates{width:100%;margin-left:28px}.sp-holiday-hours{flex-wrap:wrap}.sp-exam-date-row{flex-direction:column;align-items:stretch}.outlook-connect-header{flex-direction:column}}.adaptive-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:var(--radius);padding:20px 24px;margin-bottom:16px;color:#fff;box-shadow:var(--shadow);cursor:pointer;transition:transform .15s,box-shadow .15s}.adaptive-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.adaptive-card-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.adaptive-card-icon{font-size:1.6rem}.adaptive-card-title{font-size:1.15rem;font-weight:700}.adaptive-card-desc{font-size:.9rem;opacity:.9;margin-bottom:12px}.adaptive-card-profiles{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.adaptive-card-topic{background:#fff3;border-radius:8px;padding:6px 12px;font-size:.8rem;display:flex;align-items:center;gap:6px}.adaptive-card-topic-name{font-weight:600}.adaptive-card-diff-bar{width:50px;height:6px;background:#ffffff4d;border-radius:3px;overflow:hidden}.adaptive-card-diff-fill{height:100%;border-radius:3px;background:#fff;transition:width .3s ease}.adaptive-card-btn{display:inline-flex;align-items:center;gap:6px;background:#ffffff40;color:#fff;border:2px solid rgba(255,255,255,.5);border-radius:8px;padding:8px 18px;font-family:inherit;font-size:.9rem;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s}.adaptive-card-btn:hover{background:#fff6;border-color:#fff}.adaptive-topics{padding:16px 0}.adaptive-topics-title{font-size:1.1rem;font-weight:700;margin-bottom:16px}.adaptive-topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.adaptive-topic-item{background:var(--card-bg);border:2px solid var(--border);border-radius:var(--radius);padding:16px;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .1s;display:flex;flex-direction:column;gap:8px}.adaptive-topic-item:hover{border-color:#667eea;box-shadow:var(--shadow);transform:translateY(-1px)}.adaptive-topic-name{font-weight:700;font-size:1rem;display:flex;align-items:center;gap:8px}.adaptive-topic-icon{font-size:1.2rem}.adaptive-topic-stats{display:flex;align-items:center;gap:12px;font-size:.8rem;color:var(--text-light)}.adaptive-topic-diff{display:flex;align-items:center;gap:6px}.adaptive-topic-diff-bar{width:60px;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.adaptive-topic-diff-fill{height:100%;border-radius:3px;transition:width .3s ease}.adaptive-topic-diff-fill.diff-easy{background:var(--green)}.adaptive-topic-diff-fill.diff-medium{background:var(--warning)}.adaptive-topic-diff-fill.diff-hard{background:var(--red)}.adaptive-topic-accuracy{font-weight:600}.adaptive-topic-trend{display:flex;align-items:center;gap:3px;font-weight:600}.adaptive-topic-trend.improving{color:var(--green)}.adaptive-topic-trend.declining{color:var(--red)}.adaptive-topic-trend.stable{color:var(--text-light)}.adaptive-quiz-header{display:flex;align-items:center;justify-content:space-between;padding:8px 0 4px;margin-bottom:8px}.adaptive-difficulty-indicator{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-light)}.adaptive-stars{display:flex;gap:2px;font-size:1rem}.adaptive-star-filled{color:#f39c12}.adaptive-star-empty{color:var(--border)}.adaptive-difficulty-badge{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:3px 10px;border-radius:12px;font-size:.75rem;font-weight:700}.adaptive-feedback-trend{text-align:center;margin-top:8px;font-size:.85rem;font-weight:600;animation:fadeInUp .3s ease}.adaptive-feedback-trend.up{color:var(--green)}.adaptive-feedback-trend.down{color:var(--red)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.adaptive-result-summary{background:var(--card-bg);border-radius:var(--radius);padding:24px;text-align:center;box-shadow:var(--shadow);margin-bottom:20px}.adaptive-result-difficulty{display:flex;align-items:center;justify-content:center;gap:12px;margin:16px 0}.adaptive-result-old-diff{font-size:1.5rem;font-weight:700;color:var(--text-light);text-decoration:line-through;opacity:.5}.adaptive-result-arrow{font-size:1.2rem;color:var(--text-light)}.adaptive-result-new-diff{font-size:1.5rem;font-weight:800;color:#667eea}.adaptive-result-stats{display:flex;justify-content:center;gap:24px;margin-top:12px;flex-wrap:wrap}.adaptive-result-stat{display:flex;flex-direction:column;align-items:center}.adaptive-result-stat-value{font-size:1.3rem;font-weight:800;color:var(--text)}.adaptive-result-stat-label{font-size:.8rem;color:var(--text-light)}@media(max-width:600px){.adaptive-topic-grid{grid-template-columns:1fr}.adaptive-card{padding:16px 18px}.adaptive-result-stats{gap:16px}}.epr-container{background:var(--card-bg);border-radius:var(--radius);padding:20px;margin-bottom:20px;box-shadow:var(--shadow)}.epr-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.epr-title{font-size:1.1rem;font-weight:700;color:var(--text);margin:0}.epr-summary-badge{font-size:.75rem;color:var(--text-light);background:var(--bg);padding:4px 10px;border-radius:20px}.epr-loading,.epr-empty{color:var(--text-light);font-size:.9rem;text-align:center;padding:24px 0}.epr-top-recommendation{display:flex;align-items:flex-start;gap:10px;background:var(--warning-bg);border:1px solid var(--warning);border-radius:8px;padding:10px 14px;margin-bottom:14px;font-size:.85rem}.epr-rec-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--warning);color:#fff;font-weight:800;font-size:.75rem;flex-shrink:0}.epr-rec-text{color:var(--text);line-height:1.4}.epr-patterns-list{display:flex;flex-direction:column;gap:8px}.epr-pattern-card{background:var(--bg);border-radius:8px;padding:12px 14px;cursor:pointer;transition:all .15s;border:1px solid transparent}.epr-pattern-card:hover{border-color:var(--border)}.epr-pattern-expanded{border-color:var(--green);background:var(--green-bg)}.epr-pattern-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.epr-pattern-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.epr-pattern-name{font-size:.9rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.epr-trend-badge{font-size:.65rem;font-weight:700;padding:2px 8px;border-radius:10px;white-space:nowrap;text-transform:uppercase;letter-spacing:.3px}.epr-trend-improving{background:var(--green-bg);color:var(--green)}.epr-trend-declining{background:var(--red-bg);color:var(--red)}.epr-trend-stable{background:var(--bg);color:var(--text-light)}.epr-pattern-pct{font-size:.85rem;font-weight:700;color:var(--text);flex-shrink:0;margin-left:8px}.epr-pattern-bar-wrap{height:6px;background:var(--border);border-radius:3px;overflow:hidden;margin-bottom:4px}.epr-pattern-bar{height:100%;border-radius:3px;transition:width .3s ease}.epr-bar-default{background:var(--warning)}.epr-bar-improving{background:var(--green)}.epr-pattern-meta{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;color:var(--text-light)}.epr-pattern-expand-hint{font-size:.6rem}.epr-remediation{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.epr-remediation-label{font-size:.75rem;font-weight:700;color:var(--green);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.epr-remediation-text{font-size:.85rem;color:var(--text);line-height:1.5;margin-bottom:8px}.epr-practice-btn{background:var(--green);color:#fff;border:none;padding:6px 16px;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s}.epr-practice-btn:hover{background:#00a382}.psm-container{background:var(--card-bg);border-radius:var(--radius);padding:20px;margin-bottom:20px;box-shadow:var(--shadow)}.psm-title{font-size:1.1rem;font-weight:700;color:var(--text);margin:0 0 16px}.psm-loading,.psm-empty{color:var(--text-light);font-size:.9rem;text-align:center;padding:24px 0}.psm-gauge-section{display:flex;align-items:center;gap:24px;margin-bottom:20px}.psm-gauge-wrap{flex-shrink:0}.psm-gauge-bg{stroke:var(--border)}.psm-gauge-confidence{stroke:currentColor}.psm-gauge-fill{transition:stroke-dashoffset .6s ease}.psm-gauge-ready .psm-gauge-fill,.psm-gauge-ready .psm-gauge-confidence{stroke:var(--green)}.psm-gauge-almost .psm-gauge-fill,.psm-gauge-almost .psm-gauge-confidence{stroke:#f39c12}.psm-gauge-needs_work .psm-gauge-fill,.psm-gauge-needs_work .psm-gauge-confidence{stroke:#e17055}.psm-gauge-not_ready .psm-gauge-fill,.psm-gauge-not_ready .psm-gauge-confidence{stroke:var(--red)}.psm-gauge-score-text{font-size:1.5rem;font-weight:800;fill:var(--text)}.psm-gauge-margin-text{font-size:.7rem;fill:var(--text-light)}.psm-gauge-details{display:flex;flex-direction:column;gap:6px}.psm-readiness-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:.8rem;font-weight:700;width:fit-content}.psm-readiness-ready{background:var(--green-bg);color:var(--green)}.psm-readiness-almost{background:#fef5e7;color:#f39c12}.psm-readiness-needs_work{background:#ffeee8;color:#e17055}.psm-readiness-not_ready{background:var(--red-bg);color:var(--red)}.psm-confidence-text{font-size:.8rem;color:var(--text-light)}.psm-data-points{font-size:.75rem;color:var(--text-light)}.psm-readiness-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.psm-readiness-card{background:var(--bg);border-radius:8px;padding:14px;text-align:center;border:2px solid transparent;transition:border-color .15s}.psm-readiness-card.psm-readiness-ready{border-color:var(--green)}.psm-readiness-card.psm-readiness-almost{border-color:#f39c12}.psm-readiness-card.psm-readiness-needs_work{border-color:#e17055}.psm-readiness-card.psm-readiness-not_ready{border-color:var(--red)}.psm-readiness-level-name{font-size:.8rem;font-weight:600;color:var(--text-light);margin-bottom:4px}.psm-readiness-score{font-size:1.4rem;font-weight:800;color:var(--text)}.psm-readiness-label{font-size:.75rem;font-weight:600;margin-top:2px}.psm-readiness-data{font-size:.7rem;color:var(--text-light);margin-top:4px}.psm-chapters{margin-bottom:16px}.psm-section-title{font-size:.9rem;font-weight:700;color:var(--text);margin:0 0 10px}.psm-chapter-row{margin-bottom:10px}.psm-chapter-info{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.psm-chapter-name{font-size:.8rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.psm-chapter-score{font-size:.8rem;font-weight:700;flex-shrink:0;margin-left:8px}.psm-chapter-bar-wrap{position:relative;height:8px;background:var(--border);border-radius:4px;overflow:visible}.psm-chapter-bar{height:100%;border-radius:4px;transition:width .3s ease}.psm-chapter-target{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--text);border-radius:1px;opacity:.4}.psm-chapter-meta{display:flex;align-items:center;justify-content:flex-end;margin-top:2px}.psm-trend{font-size:.75rem;font-weight:700}.psm-trend-improving{color:var(--green)}.psm-trend-declining{color:var(--red)}.psm-trend-stable,.psm-trend-none{color:var(--text-light)}.psm-no-data{font-size:.7rem;color:var(--text-light);font-style:italic}.psm-recommendations{margin-top:4px}.psm-rec-item{display:flex;align-items:flex-start;gap:8px;padding:8px 12px;border-radius:6px;margin-bottom:6px;font-size:.85rem}.psm-rec-critical{background:var(--red-bg)}.psm-rec-warning{background:var(--warning-bg)}.psm-rec-info{background:#e8f4fd}.psm-rec-success{background:var(--green-bg)}.psm-rec-badge{font-size:.65rem;font-weight:700;padding:2px 8px;border-radius:10px;white-space:nowrap;text-transform:uppercase;flex-shrink:0}.psm-rec-critical .psm-rec-badge{background:var(--red);color:#fff}.psm-rec-warning .psm-rec-badge{background:var(--warning);color:#fff}.psm-rec-info .psm-rec-badge{background:#3498db;color:#fff}.psm-rec-success .psm-rec-badge{background:var(--green);color:#fff}.psm-rec-text{color:var(--text);line-height:1.4}@media(max-width:600px){.psm-gauge-section{flex-direction:column;text-align:center}.psm-gauge-details{align-items:center}.psm-readiness-grid{grid-template-columns:repeat(2,1fr)}.epr-pattern-info{flex-wrap:wrap}}.dc-card{background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:var(--radius);padding:20px;margin-bottom:20px;box-shadow:var(--shadow);border:2px solid #f59e0b}.dc-header{display:flex;align-items:center;gap:10px;margin-bottom:14px}.dc-icon{font-size:1.6rem}.dc-title{font-size:1.15rem;font-weight:800;color:#92400e;flex:1}.dc-countdown{font-size:.85rem;color:#b45309;font-weight:600;background:#fff9;padding:4px 10px;border-radius:20px}.dc-question{font-size:1.1rem;font-weight:600;color:var(--text);margin-bottom:12px;line-height:1.5}.dc-input-row{display:flex;gap:10px;margin-bottom:10px}.dc-input{flex:1;padding:10px 14px;border:2px solid #d97706;border-radius:8px;font-size:1.05rem;background:#fff;font-family:inherit}.dc-input:focus{outline:none;border-color:#b45309;box-shadow:0 0 0 3px #f59e0b33}.dc-submit{background:#f59e0b;color:#fff;font-weight:700;padding:10px 20px;border:none;border-radius:8px;cursor:pointer}.dc-submit:hover{background:#d97706}.dc-submit:disabled{opacity:.5;cursor:not-allowed}.dc-bonus{text-align:center;font-size:.9rem;color:#92400e;font-weight:600}.dc-login-hint{font-size:.85rem;color:#b45309;text-align:center;margin-bottom:8px}.dc-done{text-align:center}.dc-result{display:flex;align-items:center;justify-content:center;gap:12px;font-size:1.1rem;font-weight:700;margin-bottom:10px}.dc-result-correct{color:#16a34a}.dc-result-wrong{color:#dc2626}.dc-xp{background:var(--green);color:#fff;padding:4px 12px;border-radius:20px;font-size:.9rem}.dc-explanation{background:#ffffffb3;border-radius:8px;padding:10px 14px;margin:10px 0;font-size:.95rem;text-align:left}.dc-comeback{color:#92400e;font-weight:600;margin-top:8px}.fc-alerts{background:var(--warning-bg);border:2px solid var(--warning);border-radius:var(--radius);padding:16px;margin-bottom:20px}.fc-title{font-size:1.05rem;font-weight:700;margin-bottom:12px;color:#b45309}.fc-list{display:flex;flex-direction:column;gap:10px}.fc-alert{background:#fff;border-radius:8px;padding:12px 14px;box-shadow:0 1px 4px #0000000f}.fc-alert-high{border-left:4px solid var(--red)}.fc-alert-medium{border-left:4px solid var(--warning)}.fc-alert-low{border-left:4px solid #f59e0b}.fc-alert-info{display:flex;justify-content:space-between;margin-bottom:6px}.fc-topic{font-weight:700;font-size:.95rem}.fc-days{font-size:.85rem;color:var(--text-light)}.fc-retention-bar-track{height:6px;background:#e5e7eb;border-radius:3px;margin-bottom:4px;overflow:hidden}.fc-retention-bar-fill{height:100%;border-radius:3px;transition:width .5s ease}.fc-retention-label{font-size:.8rem;color:var(--text-light);margin-bottom:6px}.fc-review-btn{background:var(--warning);color:#fff;font-size:.85rem;padding:6px 14px}.fc-review-btn:hover{background:#d97706}.hint-section{margin:8px 0 12px}.btn-hint{background:#eef2ff;color:#4338ca;border:2px solid #c7d2fe;border-radius:8px;padding:8px 16px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-hint:hover{background:#e0e7ff;border-color:#a5b4fc}.hint-bubble{background:#eef2ff;border:1px solid #c7d2fe;border-radius:10px;padding:12px 16px;margin-top:8px;font-size:.95rem;color:#3730a3;line-height:1.5;animation:hintSlideIn .3s ease}@keyframes hintSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.battle-create-v2{padding:20px;max-width:600px;margin:0 auto}.battle-create-v2 h3{font-size:1.3rem;font-weight:800;margin-bottom:20px;text-align:center;color:#7c3aed}.battle-field{margin-bottom:16px}.battle-field label{display:block;font-size:.85rem;font-weight:700;margin-bottom:6px;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px}.battle-title-input{width:100%;padding:10px 14px;border:2px solid var(--border);border-radius:8px;font-size:1rem;font-family:inherit}.battle-title-input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed26}.battle-topics-grid{display:flex;flex-wrap:wrap;gap:8px}.battle-topic-chip{display:flex;align-items:center;gap:6px;padding:8px 14px;border:2px solid var(--border);border-radius:20px;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .15s ease;background:var(--card-bg)}.battle-topic-chip input[type=checkbox]{display:none}.battle-topic-chip.selected{background:#ede9fe;border-color:#7c3aed;color:#7c3aed}.battle-topic-chip:hover{border-color:#a78bfa}.battle-target-row{display:flex;gap:10px}.battle-target-btn{flex:1;padding:10px;border:2px solid var(--border);border-radius:8px;font-size:1rem;font-weight:700;background:var(--card-bg);cursor:pointer;transition:all .15s ease}.battle-target-btn.selected{background:#7c3aed;color:#fff;border-color:#7c3aed}.battle-target-btn:hover:not(.selected){border-color:#a78bfa}.battle-create-btn{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;font-weight:800;width:100%;padding:14px;border-radius:10px;font-size:1.1rem;margin-top:8px;border:none;cursor:pointer}.battle-create-btn:hover{background:linear-gradient(135deg,#6d28d9,#5b21b6)}.battle-cancel-btn{width:100%;margin-top:8px}.battle-error{color:var(--red);font-size:.85rem;margin-top:8px;text-align:center}.battle-lobby{padding:20px;max-width:600px;margin:0 auto;text-align:center}.battle-lobby h3{font-size:1.3rem;font-weight:800;margin-bottom:20px;color:#7c3aed}.battle-join-code-section{margin:20px 0}.battle-share-label{font-size:.9rem;color:var(--text-light);margin-bottom:8px}.battle-join-code{display:flex;justify-content:center;gap:6px;cursor:pointer;margin-bottom:8px}.battle-code-char{display:flex;align-items:center;justify-content:center;width:52px;height:60px;background:linear-gradient(135deg,#ede9fe,#ddd6fe);border:3px solid #a78bfa;border-radius:10px;font-size:1.8rem;font-weight:900;color:#5b21b6;font-family:Courier New,monospace;letter-spacing:2px}.battle-copy-hint{font-size:.8rem;color:var(--text-light)}.battle-lobby-info{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--text-light);margin-bottom:16px;padding:10px;background:var(--bg);border-radius:8px}.battle-participants-list{text-align:left;margin-bottom:16px}.battle-participants-list h4{font-size:.9rem;color:var(--text-light);margin-bottom:8px}.battle-participant-row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--card-bg);border-radius:8px;margin-bottom:4px;box-shadow:var(--shadow)}.battle-participant-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.battle-participant-avatar-default{width:32px;height:32px;border-radius:50%;background:#7c3aed;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem}.battle-participant-name{font-weight:600}.battle-start-btn{background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-weight:800;width:100%;padding:14px;border-radius:10px;font-size:1.1rem;border:none;cursor:pointer}.battle-start-btn:hover{background:linear-gradient(135deg,#059669,#047857)}.battle-need-players{color:var(--text-light);font-size:.9rem;padding:12px;background:var(--bg);border-radius:8px}.battle-join{padding:20px;max-width:500px;margin:0 auto;text-align:center}.battle-join h3{font-size:1.3rem;font-weight:800;margin-bottom:8px;color:#7c3aed}.battle-join-desc{font-size:.9rem;color:var(--text-light);margin-bottom:20px}.battle-code-input-row{margin-bottom:16px}.battle-code-input{width:100%;max-width:300px;padding:16px;border:3px solid #a78bfa;border-radius:12px;font-size:2rem;font-weight:900;text-align:center;letter-spacing:8px;font-family:Courier New,monospace;color:#5b21b6;background:#faf5ff}.battle-code-input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 4px #7c3aed26}.battle-code-input::placeholder{color:#c4b5fd;letter-spacing:4px}.battle-join-btn{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;font-weight:800;width:100%;max-width:300px;padding:14px;border-radius:10px;font-size:1.1rem;border:none;cursor:pointer}.battle-join-btn:hover{background:linear-gradient(135deg,#6d28d9,#5b21b6)}.battle-arena{padding:12px;max-width:700px;margin:0 auto}.battle-leaderboard{background:var(--card-bg);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);margin-bottom:16px}.battle-leaderboard h4{font-size:.85rem;color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.battle-lb-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;margin-bottom:4px;transition:background .3s ease}.battle-lb-me{background:#ede9fe;border:2px solid #c4b5fd}.battle-lb-finished{opacity:.85}.battle-lb-rank{font-weight:800;font-size:.9rem;width:28px;text-align:center;color:var(--text-light)}.battle-lb-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.battle-lb-avatar-default{width:28px;height:28px;border-radius:50%;background:#7c3aed;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.7rem;flex-shrink:0}.battle-lb-info{flex:1;min-width:0}.battle-lb-name{font-weight:600;font-size:.85rem;display:block;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.battle-lb-bar-track{height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.battle-lb-bar-fill{height:100%;background:linear-gradient(90deg,#7c3aed,#a78bfa);border-radius:4px;transition:width .5s ease}.battle-lb-xp{font-weight:800;font-size:.85rem;color:#7c3aed;white-space:nowrap}.battle-lb-streak{font-size:.8rem;font-weight:700;white-space:nowrap}.battle-winner-banner{text-align:center;font-size:1.5rem;font-weight:900;padding:20px;background:linear-gradient(135deg,#fef3c7,#fde68a);border:3px solid #f59e0b;border-radius:var(--radius);margin-bottom:16px;animation:battleWinPulse 1s ease infinite alternate}@keyframes battleWinPulse{0%{transform:scale(1)}to{transform:scale(1.02)}}.battle-question-area{margin-bottom:16px}.battle-loading{text-align:center;padding:20px;color:var(--text-light);font-weight:600}.battle-question-card-v2{background:var(--card-bg);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);transition:border-color .3s ease,background .3s ease;border:3px solid transparent}.battle-question-card-v2.flash-green{border-color:var(--green);background:var(--green-bg)}.battle-question-card-v2.flash-red{border-color:var(--red);background:var(--red-bg)}.battle-question-text{font-size:1.1rem;font-weight:600;margin-bottom:16px;line-height:1.5}.battle-answer-row{display:flex;gap:10px}.battle-input{flex:1;padding:10px 14px;border:2px solid var(--border);border-radius:8px;font-size:1.05rem;font-family:inherit}.battle-input:focus{outline:none;border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed26}.battle-submit-btn{background:#7c3aed;color:#fff;font-weight:700;padding:10px 20px;border:none;border-radius:8px;cursor:pointer}.battle-submit-btn:hover{background:#6d28d9}.battle-submit-btn:disabled{opacity:.5;cursor:not-allowed}.battle-feedback{margin-top:12px;padding:8px 14px;border-radius:8px;font-weight:800;text-align:center;font-size:1rem;animation:battleFeedbackPop .3s ease}@keyframes battleFeedbackPop{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}.battle-feedback-correct{background:var(--green-bg);color:var(--green)}.battle-feedback-wrong{background:var(--red-bg);color:var(--red)}.battle-stats-bar{display:flex;justify-content:space-around;padding:12px;background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow)}.battle-stat{font-size:.85rem;font-weight:700;color:var(--text)}.battle-results-v2{padding:20px;max-width:600px;margin:0 auto;text-align:center}.battle-results-title-v2{font-size:1.5rem;font-weight:900;margin-bottom:8px;color:#7c3aed}.battle-winner-text{font-size:1rem;color:var(--text-light);margin-bottom:20px}.battle-standings{text-align:left;margin-bottom:20px}.battle-standing-row{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:8px}.battle-standing-me{border:2px solid #7c3aed;background:#faf5ff}.battle-standing-medal{font-size:1.4rem;width:40px;text-align:center}.battle-standing-info{flex:1}.battle-standing-name{font-weight:700;font-size:1rem;display:block;margin-bottom:4px}.battle-standing-stats{display:flex;gap:12px;font-size:.8rem;color:var(--text-light);font-weight:600}.battle-results-actions{display:flex;flex-direction:column;gap:8px;max-width:300px;margin:0 auto}.battle-play-again-btn{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff;font-weight:800;padding:14px;border-radius:10px;font-size:1.05rem;border:none;cursor:pointer}.battle-play-again-btn:hover{background:linear-gradient(135deg,#6d28d9,#5b21b6)}.battle-dashboard-actions{display:flex;gap:10px;margin-top:8px}.battle-dashboard-btn{flex:1;padding:12px;font-weight:700;border-radius:8px}.battle-section-child{background:linear-gradient(135deg,#faf5ff,#ede9fe);border:2px solid #c4b5fd;border-radius:var(--radius);padding:16px}.battle-active-list,.battle-history-list{margin-top:12px}.battle-active-list h4{font-size:.85rem;color:var(--text-light);margin-bottom:6px}.battle-active-item,.battle-history-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--card-bg);border-radius:8px;margin-bottom:4px;font-size:.85rem}.battle-active-title,.battle-history-title{flex:1;font-weight:600}.battle-active-status{color:var(--text-light);font-size:.8rem}.battle-active-code{font-weight:800;font-family:monospace;color:#7c3aed;font-size:.85rem}.battle-history-xp{font-weight:700;color:#7c3aed}.battle-history-result{font-size:1.1rem}.battle-history-details{margin-top:12px}.battle-history-details summary{cursor:pointer;font-weight:600;font-size:.85rem;color:var(--text-light)}.btn-battle-child{font-size:1.1rem;background:none;border:none;cursor:pointer;padding:4px 8px}@media(max-width:600px){.dc-input-row,.battle-answer-row,.battle-target-row,.battle-dashboard-actions{flex-direction:column}.battle-code-char{width:40px;height:48px;font-size:1.4rem}.battle-code-input{font-size:1.5rem;letter-spacing:5px}.battle-stats-bar{flex-direction:column;gap:4px;text-align:center}.battle-standing-stats{flex-wrap:wrap;gap:6px}.fc-alert-info{flex-direction:column;gap:2px}}.admin-dashboard{padding-bottom:40px}.admin-stats-bar{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:16px}.admin-stat-card{background:var(--card-bg);border-radius:var(--radius);padding:16px;text-align:center;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:4px}.admin-stat-value{font-size:1.8rem;font-weight:800;color:var(--green)}.admin-stat-label{font-size:.8rem;color:var(--text-light);font-weight:600}.admin-role-chips{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.admin-chip{background:var(--card-bg);border:1px solid var(--border);border-radius:20px;padding:4px 14px;font-size:.85rem;font-weight:600;color:var(--text-light)}.admin-actions-row{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.admin-filters{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.admin-search-input{flex:1;min-width:200px;padding:8px 12px;border:2px solid var(--border);border-radius:8px;font-family:inherit;font-size:.9rem}.admin-search-input:focus{border-color:var(--green);outline:none}.admin-filter-select{padding:8px 12px;border:2px solid var(--border);border-radius:8px;font-family:inherit;font-size:.9rem;background:var(--card-bg);cursor:pointer}.admin-table-wrap{overflow-x:auto;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px}.admin-table{width:100%;border-collapse:collapse;background:var(--card-bg);font-size:.85rem}.admin-table th{background:#f8f9fa;padding:10px 12px;text-align:left;font-weight:700;color:var(--text-light);border-bottom:2px solid var(--border);white-space:nowrap}.admin-table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.admin-table tbody tr:hover{background:#f8f9fa}.admin-row-disabled{opacity:.6}.admin-email-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-role-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:700;text-transform:capitalize}.admin-role-parent{background:#e3f2fd;color:#1565c0}.admin-role-child{background:#e8f5e9;color:#2e7d32}.admin-role-teacher{background:#fff3e0;color:#e65100}.admin-role-admin{background:#fce4ec;color:#c62828}.admin-plan-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:.75rem;font-weight:700;text-transform:capitalize}.admin-plan-free{background:#f5f5f5;color:#757575}.admin-plan-premium{background:#fff8e1;color:#f57f17}.admin-plan-school{background:#e8eaf6;color:#283593}.admin-expiry{display:block;font-size:.7rem;color:var(--text-light)}.admin-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.admin-status-active{background:var(--green)}.admin-status-disabled{background:var(--red)}.admin-actions-cell{white-space:nowrap;display:flex;gap:4px;flex-wrap:wrap}.admin-action-btn{padding:3px 8px;border:1px solid var(--border);border-radius:6px;background:var(--card-bg);font-family:inherit;font-size:.7rem;font-weight:600;cursor:pointer;transition:all .15s}.admin-action-btn:hover{box-shadow:var(--shadow)}.admin-action-edit{color:#1565c0;border-color:#1565c0}.admin-action-edit:hover{background:#e3f2fd}.admin-action-reset{color:#e65100;border-color:#e65100}.admin-action-reset:hover{background:#fff3e0}.admin-action-toggle{color:#6a1b9a;border-color:#6a1b9a}.admin-action-toggle:hover{background:#f3e5f5}.admin-action-upgrade{color:#f57f17;border-color:#f57f17}.admin-action-upgrade:hover{background:#fff8e1}.admin-action-delete{color:var(--red);border-color:var(--red)}.admin-action-delete:hover{background:var(--red-bg)}.admin-pagination{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:8px}.admin-pagination button{padding:6px 16px;border:2px solid var(--border);border-radius:8px;background:var(--card-bg);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s}.admin-pagination button:hover:not(:disabled){border-color:var(--green);color:var(--green)}.admin-pagination button:disabled{opacity:.4;cursor:not-allowed}.admin-pagination span{font-size:.85rem;color:var(--text-light);font-weight:600}.admin-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.admin-modal{background:var(--card-bg);border-radius:var(--radius);padding:28px;max-width:480px;width:100%;box-shadow:var(--shadow-lg);position:relative;max-height:90vh;overflow-y:auto}.admin-modal h3{margin-bottom:16px;font-size:1.2rem}.admin-form{display:flex;flex-direction:column;gap:12px}.admin-form-row{display:flex;flex-direction:column;gap:4px}.admin-form-row label{font-size:.85rem;font-weight:600;color:var(--text-light)}.admin-form-row input,.admin-form-row select{padding:8px 12px;border:2px solid var(--border);border-radius:8px;font-family:inherit;font-size:.9rem}.admin-form-row input:focus,.admin-form-row select:focus{border-color:var(--green);outline:none}.admin-checkbox-row{flex-direction:row;align-items:center}.admin-checkbox-row label{display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--text)}.admin-checkbox-row input[type=checkbox]{width:16px;height:16px}.admin-generated-pw{background:var(--green-bg);border:1px solid var(--green);border-radius:8px;padding:10px 14px;font-size:.9rem;word-break:break-all}.admin-feedback{background:var(--green-bg);border:1px solid var(--green);border-radius:var(--radius);padding:10px 16px;margin-bottom:12px;font-size:.9rem;font-weight:600;color:var(--green);cursor:pointer;word-break:break-all}.login-invitation-note{text-align:center;color:var(--text-light);font-size:.85rem;margin:12px 0;padding:8px 16px;background:var(--warning-bg);border-radius:8px;border:1px solid var(--warning)}.joint-parent-badge{display:inline-block;background:#e8f5e9;color:#2e7d32;border-radius:12px;padding:2px 10px;font-size:.8rem;font-weight:600;margin-top:4px}.link-parent-section{margin-top:12px;padding:12px 16px;background:var(--card-bg);border-radius:var(--radius);border:1px solid var(--border)}.link-parent-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.link-parent-form input{flex:1;min-width:200px;padding:8px 12px;border:2px solid var(--border);border-radius:8px;font-family:inherit;font-size:.9rem}.link-parent-form input:focus{border-color:var(--green);outline:none}@media(max-width:600px){.admin-stats-bar{grid-template-columns:repeat(2,1fr)}.admin-filters,.admin-actions-cell{flex-direction:column}.admin-table{font-size:.75rem}.admin-table th,.admin-table td{padding:6px 8px}}.error-practice-page{max-width:700px;margin:0 auto;padding:0 16px 40px}.error-practice-header{display:flex;align-items:center;gap:16px;padding:16px 0}.error-practice-header h2{font-size:1.3rem;font-weight:700;color:var(--text-primary)}.epr-practice-info-card{background:var(--card-bg);border-radius:var(--radius);padding:24px;box-shadow:0 2px 12px #0000000f}.epr-practice-pattern-badge{display:flex;align-items:center;gap:10px;margin-bottom:20px;padding:12px 16px;background:linear-gradient(135deg,#e17055,#d63031);border-radius:10px;color:#fff}.epr-practice-pattern-icon{font-size:1.5rem}.epr-practice-pattern-name{font-weight:700;font-size:1.1rem}.epr-practice-info-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f0f0f0}.epr-practice-info-label{color:#636e72;font-size:.9rem}.epr-practice-info-value{font-weight:600;color:var(--text-primary);font-size:.9rem}.epr-practice-tip{display:flex;gap:12px;padding:14px;margin:16px 0;background:#fff8e1;border-radius:8px;border-left:4px solid #f39c12}.epr-practice-tip-icon{font-size:1.3rem;flex-shrink:0}.epr-practice-tip p{margin:4px 0 0;font-size:.9rem;color:#555}.epr-practice-history-preview{margin:16px 0}.epr-practice-history-preview h4{font-size:.9rem;color:#636e72;margin-bottom:8px}.epr-practice-history-bars{display:flex;flex-direction:column;gap:6px}.epr-practice-history-bar-item{display:flex;align-items:center;gap:8px}.epr-practice-history-bar-bg{flex:1;height:12px;background:#f0f0f0;border-radius:6px;overflow:hidden}.epr-practice-history-bar-fill{height:100%;border-radius:6px;transition:width .5s ease}.epr-practice-history-bar-fill.bar-green{background:#00b894}.epr-practice-history-bar-fill.bar-yellow{background:#f39c12}.epr-practice-history-bar-fill.bar-red{background:#d63031}.epr-practice-history-bar-pct{font-size:.8rem;font-weight:600;width:40px;text-align:right}.epr-practice-trend{margin-top:8px;font-size:.85rem;font-weight:600}.epr-trend-improving-text{color:#00b894}.epr-trend-declining-text{color:#d63031}.epr-trend-stable-text{color:#636e72}.epr-practice-no-history{text-align:center;padding:16px;color:#636e72;font-size:.9rem}.epr-practice-info-meta{display:flex;justify-content:space-between;margin-top:16px;padding-top:12px;border-top:1px solid #f0f0f0;color:#636e72;font-size:.85rem}.epr-practice-start-btn{width:100%;margin-top:20px;padding:14px;font-size:1.05rem;font-weight:700;background:linear-gradient(135deg,#e17055,#d63031);color:#fff;border:none;border-radius:10px;cursor:pointer;transition:transform .15s,box-shadow .15s}.epr-practice-start-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #e170554d}.epr-error-feedback{margin-top:8px;padding:8px 12px;border-radius:6px;font-size:.85rem}.epr-error-same{color:#d63031;font-weight:600}.epr-error-different{color:#f39c12}.epr-remediation-inline{display:flex;gap:8px;margin-top:8px;padding:10px 12px;background:#fff8e1;border-radius:6px;font-size:.85rem;color:#555}.epr-remediation-inline-icon{flex-shrink:0}.epr-result-summary{text-align:center;padding:32px 20px;background:var(--card-bg);border-radius:var(--radius);box-shadow:0 2px 12px #0000000f;margin-bottom:24px}.epr-result-comparison{display:flex;align-items:center;justify-content:center;gap:12px;margin:20px 0;padding:16px;background:#f8f9fa;border-radius:10px;flex-wrap:wrap}.epr-result-prev,.epr-result-current{display:flex;flex-direction:column;align-items:center}.epr-result-prev-label,.epr-result-current-label{font-size:.75rem;color:#636e72;margin-bottom:4px}.epr-result-prev-value{font-size:1.5rem;font-weight:700;color:#636e72}.epr-result-current-value{font-size:1.5rem;font-weight:700;color:#2d3436}.epr-result-arrow{font-size:1.3rem;color:#636e72}.epr-result-improvement{font-size:1.2rem;font-weight:700;padding:4px 12px;border-radius:20px}.epr-improvement-positive{color:#00b894;background:#e8f8f5}.epr-improvement-negative{color:#d63031;background:#fde8e8}.epr-result-history-chart{margin:20px 0}.epr-result-history-chart h4{font-size:.9rem;color:#636e72;margin-bottom:12px}.epr-sparkline{display:flex;align-items:flex-end;justify-content:center;gap:6px;padding:8px 0}.epr-sparkline-bar-wrap{display:flex;flex-direction:column;align-items:center;gap:4px}.epr-sparkline-bar{width:24px;border-radius:4px 4px 0 0;transition:height .5s ease}.epr-sparkline-bar.bar-green{background:#00b894}.epr-sparkline-bar.bar-yellow{background:#f39c12}.epr-sparkline-bar.bar-red{background:#d63031}.epr-sparkline-current{box-shadow:0 0 0 2px #e17055}.epr-sparkline-label{font-size:.65rem;color:#636e72}.epr-sparkline-summary{margin-top:8px;font-size:.85rem;color:#636e72}.epr-result-xp{display:flex;align-items:center;justify-content:center;gap:8px;margin:16px 0}.epr-result-xp-value{font-size:1.4rem;font-weight:700;color:#f39c12}.epr-result-xp-label{font-size:.85rem;color:#636e72}.epr-badge-earned{display:flex;align-items:center;gap:12px;padding:16px;margin:16px auto;max-width:320px;background:linear-gradient(135deg,#ffeaa7,#fdcb6e);border-radius:12px;animation:epr-badge-pop .5s ease}.epr-badge-icon{font-size:2rem}.epr-badge-earned strong{display:block;font-size:1rem;color:#2d3436}.epr-badge-earned p{margin:4px 0 0;font-size:.8rem;color:#555}@keyframes epr-badge-pop{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.epr-pattern-practice-stats{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0;font-size:.8rem;color:#636e72}.epr-pattern-practice-stats.epr-no-practice{font-style:italic}.epr-pattern-sessions,.epr-pattern-latest-accuracy{padding:2px 8px;background:#f0f0f0;border-radius:12px}.epr-pattern-improvement{padding:2px 8px;border-radius:12px;font-weight:600}.epr-pattern-improvement.epr-improvement-positive{background:#e8f8f5;color:#00b894}.epr-pattern-improvement.epr-improvement-negative{background:#fde8e8;color:#d63031}.epr-review-pattern-tag{margin-top:4px;font-size:.8rem;color:#d63031;font-weight:600}.error-trend-chart{margin:12px 0}.error-trend-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.error-trend-title{font-weight:700;font-size:.95rem}.error-trend-delta{font-weight:800;font-size:.9rem}.trend-positive{color:var(--green)}.trend-negative{color:var(--red)}.error-trend-compact-summary{text-align:center;font-size:.8rem;font-weight:700;color:var(--text-light);margin-top:4px}.analytics-error-trend-item{margin-bottom:24px;padding:16px;background:var(--bg);border-radius:var(--radius)}.analytics-error-trend-item h4{font-size:.95rem;font-weight:700;margin:0 0 8px}@media(max-width:600px){.epr-result-comparison{flex-direction:column;gap:8px}.epr-sparkline-bar{width:18px}.epr-practice-pattern-badge{flex-direction:column;text-align:center}}.profile-page{max-width:600px;margin:0 auto;padding-bottom:40px}.profile-avatar-section{text-align:center;margin-bottom:24px}.profile-avatar{width:120px;height:120px;border-radius:50%;object-fit:cover;border:4px solid var(--green)}.default-avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800}.profile-avatar-upload{margin-top:8px}.profile-avatar-upload label{display:inline-block;padding:6px 16px;border:2px solid var(--border);border-radius:8px;font-family:inherit;font-size:.85rem;font-weight:700;color:var(--text-light);cursor:pointer;transition:all .15s}.profile-avatar-upload label:hover{border-color:var(--green);color:var(--green)}.profile-avatar-upload input[type=file]{display:none}.profile-form{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.profile-field{margin-bottom:16px}.profile-field label{display:block;font-weight:700;font-size:.85rem;color:var(--text-light);margin-bottom:4px}.profile-field input,.profile-field select{width:100%;padding:10px 14px;border:2px solid var(--border);border-radius:8px;font-family:inherit;font-size:1rem;box-sizing:border-box}.profile-field-readonly{background:var(--bg);color:var(--text-light);cursor:not-allowed}.profile-role-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:.8rem;font-weight:700;background:var(--green-bg);color:var(--green)}.profile-actions{margin-top:24px}.profile-actions .btn{width:100%;margin-bottom:8px}.profile-feedback{background:var(--green-bg);color:var(--green);padding:10px 16px;border-radius:8px;text-align:center;font-weight:700;margin-bottom:16px}.profile-section-title{font-size:1rem;font-weight:800;margin:24px 0 12px;color:var(--text)}.profile-danger-zone{margin-top:32px;padding-top:24px;border-top:2px solid var(--border)}.profile-danger-zone .btn{background:var(--red-bg);color:var(--red);border:2px solid var(--red)}.profile-danger-zone .btn:hover{background:var(--red);color:#fff}.user-menu-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;cursor:pointer;border:2px solid var(--border)}.user-menu-avatar-default{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:.7rem;cursor:pointer}.child-avatar-img{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0}.error-insight-filter{display:flex;align-items:center;gap:12px;margin:8px 0 12px}.error-filter-btn{background:var(--card-bg, #fff);border:1.5px solid var(--border, #e0e0e0);border-radius:6px;padding:4px 12px;font-size:.78rem;font-weight:600;color:var(--primary, #3498db);cursor:pointer;transition:background .15s,border-color .15s}.error-filter-btn:hover{background:var(--primary, #3498db);color:#fff;border-color:var(--primary, #3498db)}.error-filter-count{font-size:.75rem;color:var(--text-light, #888)}.error-mastered-badge{display:inline-block;background:#d4edda;color:#155724;font-size:.65rem;font-weight:700;padding:1px 7px;border-radius:8px;margin-left:6px;white-space:nowrap}@media(max-width:600px){.profile-page{padding:0 8px 40px}.profile-form{padding:16px}}.view-toggle{display:flex;gap:4px;margin-bottom:16px;background:var(--border);border-radius:var(--radius);padding:4px}.view-toggle button{flex:1;padding:8px 16px;border:none;border-radius:8px;background:transparent;font-family:inherit;font-size:.9rem;font-weight:600;color:var(--text-light);cursor:pointer;transition:all .2s}.view-toggle button.active{background:var(--card-bg);color:var(--text);box-shadow:0 1px 4px #0000001a}.view-toggle button:hover:not(.active){color:var(--text)}.skill-tracks-grid{display:flex;flex-direction:column;gap:10px}.skill-track-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;transition:box-shadow .2s}.skill-track-card:hover{box-shadow:var(--shadow-lg)}.skill-track-header{display:flex;align-items:center;gap:12px;width:100%;padding:16px;border:none;background:transparent;cursor:pointer;text-align:left;font-family:inherit;border-left:4px solid var(--track-color)}.skill-track-icon{font-size:1.8rem;flex-shrink:0}.skill-track-info{flex:1;display:flex;flex-direction:column;gap:2px}.skill-track-title{font-size:1.05rem;font-weight:700;color:var(--text)}.skill-track-desc{font-size:.82rem;color:var(--text-light)}.skill-track-meta{font-size:.75rem;color:var(--text-light);margin-top:2px}.skill-track-arrow{font-size:.7rem;color:var(--text-light);transition:transform .2s;flex-shrink:0}.skill-track-arrow-open{transform:rotate(180deg)}.skill-track-chapters{border-top:1px solid var(--border);padding:8px 0}.skill-track-chapter-row{display:flex;align-items:center;gap:10px;padding:8px 16px}.skill-track-chapter-row:hover{background:var(--bg)}.skill-track-level-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;border-radius:6px;font-size:.7rem;font-weight:700;color:#fff;flex-shrink:0}.skill-track-chapter-title{flex:1;font-size:.88rem;color:var(--text)}.skill-track-chapter-actions{display:flex;gap:6px;flex-shrink:0}.skill-track-chapter-actions .chapter-action-btn{padding:4px 12px;font-size:.78rem}@media(max-width:500px){.skill-track-chapter-row{flex-wrap:wrap}.skill-track-chapter-actions{width:100%;margin-top:4px}.skill-track-chapter-actions .chapter-action-btn{flex:1}}.ai-tutor{margin-top:16px;border:2px solid var(--green);border-radius:var(--radius);background:var(--card-bg);overflow:hidden;max-height:400px;display:flex;flex-direction:column}.ai-tutor-header{display:flex;align-items:center;gap:8px;padding:10px 14px;background:linear-gradient(135deg,#00b894,#00cec9);color:#fff}.ai-tutor-title{font-weight:800;font-size:1rem}.ai-tutor-subtitle{font-size:.8rem;opacity:.8;flex:1}.ai-tutor-close{background:none;border:none;color:#fff;font-size:1.3rem;cursor:pointer;padding:0 4px;font-weight:700}.ai-tutor-messages{flex:1;overflow-y:auto;padding:12px;max-height:250px;display:flex;flex-direction:column;gap:8px}.ai-tutor-msg{display:flex;gap:8px;align-items:flex-start}.ai-tutor-msg-user{flex-direction:row-reverse}.ai-tutor-avatar{font-size:1.2rem;flex-shrink:0}.ai-tutor-bubble{padding:8px 12px;border-radius:12px;font-size:.9rem;line-height:1.4;max-width:80%}.ai-tutor-msg-assistant .ai-tutor-bubble{background:var(--green-bg);border:1px solid #c3e6cb}.ai-tutor-msg-user .ai-tutor-bubble{background:#e3f2fd;border:1px solid #bbdefb}.ai-tutor-typing span{animation:tutorDot 1.4s infinite;display:inline-block;margin:0 1px;font-size:1.2rem}.ai-tutor-typing span:nth-child(2){animation-delay:.2s}.ai-tutor-typing span:nth-child(3){animation-delay:.4s}@keyframes tutorDot{0%,80%,to{opacity:.3}40%{opacity:1}}.ai-tutor-input-row{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border)}.ai-tutor-input{flex:1;padding:8px 12px;border:2px solid var(--border);border-radius:20px;font-family:inherit;font-size:.9rem;outline:none}.ai-tutor-input:focus{border-color:var(--green)}.ai-tutor-send{width:36px;height:36px;border:none;border-radius:50%;background:var(--green);color:#fff;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.ai-tutor-send:disabled{opacity:.4;cursor:not-allowed}.ai-tutor-limit{text-align:center;padding:10px;color:var(--text-light);font-size:.85rem;font-style:italic;border-top:1px solid var(--border)}.ai-tutor-open-btn{margin-top:12px;padding:8px 16px;border:2px solid var(--green);border-radius:20px;background:#fff;color:var(--green);font-family:inherit;font-size:.9rem;font-weight:700;cursor:pointer;transition:all .15s}.ai-tutor-open-btn:hover{background:var(--green);color:#fff}.verification-offer{margin:16px 0;padding:16px;background:#fff8e1;border:2px solid #ffb300;border-radius:var(--radius);display:flex;gap:12px;align-items:center;flex-wrap:wrap}.verification-offer-icon{font-size:2rem;flex-shrink:0}.verification-offer-text{flex:1;min-width:200px}.verification-offer-text strong{font-size:1rem}.verification-offer-text p{font-size:.85rem;color:var(--text-light);margin:4px 0 0}.verification-offer-buttons{display:flex;gap:8px;flex-shrink:0}.verification-question-card{margin:16px 0;padding:20px;background:#f3e5f5;border:2px solid #ce93d8;border-radius:var(--radius)}.verification-label{font-size:.85rem;font-weight:700;color:#7b1fa2;margin-bottom:12px}.coach-exhausted{display:block;text-align:center;color:var(--text-light);font-size:.85rem;font-style:italic;margin:8px 0}.test-history-list{display:flex;flex-direction:column;gap:8px}.test-history-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--card-bg);border-radius:8px;border-left:4px solid var(--border);box-shadow:0 1px 3px #0000000d}.test-history-item:nth-child(odd){background:var(--bg)}.test-history-info{flex:1;font-size:.9rem;font-weight:600}.test-history-mode{margin-right:4px}.test-history-assignment{color:var(--text-light);font-weight:400;font-size:.85rem}.test-history-score{font-weight:800;font-size:1rem;white-space:nowrap}.test-history-date{font-size:.8rem;color:var(--text-light);white-space:nowrap}.test-history-more{text-align:center;color:var(--text-light);font-size:.85rem;margin-top:8px}.pagination-controls{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px;font-size:.85rem;color:var(--text-light)}.pagination-controls button{padding:4px 12px;border:1px solid var(--border);border-radius:6px;background:#fff;font-family:inherit;font-weight:700;cursor:pointer;transition:all .15s}.pagination-controls button:hover:not(:disabled){border-color:var(--green);color:var(--green)}.pagination-controls button:disabled{opacity:.3;cursor:not-allowed}.history-chart-section{margin-top:20px;background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.history-chart-section h4{margin:0 0 12px;font-size:1rem;font-weight:800}.history-chart-container{margin:0 -8px}.history-chart-tooltip{background:var(--card-bg);border-radius:8px;box-shadow:var(--shadow-lg);padding:8px 12px;border:1px solid var(--border)}.history-chart-tooltip-date{font-size:.75rem;color:var(--text-light)}.history-chart-tooltip-score{font-size:1.1rem;font-weight:800}.history-chart-tooltip-mode{font-size:.7rem;color:var(--text-light);text-transform:capitalize}.btn-recent-tests{display:flex;align-items:center;gap:4px;padding:4px 10px;border:2px solid var(--border);border-radius:8px;background:#fff;font-size:.8rem;font-weight:700;cursor:pointer;color:var(--text);font-family:inherit;transition:all .15s}.btn-recent-tests:hover{border-color:var(--green);color:var(--green)}.child-test-history-popup{position:absolute;top:100%;right:0;z-index:20;background:var(--card-bg);border:2px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:12px 16px;min-width:240px;max-width:320px;margin-top:4px}.child-test-history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:.85rem}.child-test-history-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--text-light);padding:0 4px}.child-test-history-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border);font-size:.85rem}.child-test-history-row:last-child{border-bottom:none}.child-test-mini-mode{font-size:1rem}.child-test-mini-score{font-weight:800;min-width:40px}.child-test-mini-date{color:var(--text-light);margin-left:auto}
