.brand-mark[data-v-3546f4be]{width:1em;height:1em;vertical-align:-.15em;flex:none}.auth-page[data-v-68d7449c]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.auth[data-v-68d7449c]{background:#fff;border-radius:1.5rem;padding:2.5rem 2rem;width:100%;max-width:22rem;box-shadow:0 8px 32px #2563eb1f,0 2px 8px #0000000f}.brand[data-v-68d7449c]{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1.5rem}.brand-icon[data-v-68d7449c]{font-size:2rem}.brand-name[data-v-68d7449c]{font-size:1.9rem;font-weight:800;color:#1e293b}h1[data-v-68d7449c]{margin:0 0 1.5rem;font-size:1.3rem;font-weight:700;text-align:center;color:#1e293b}form[data-v-68d7449c]{display:flex;flex-direction:column;gap:1.1rem}label[data-v-68d7449c]{display:flex;flex-direction:column;gap:.4rem;font-size:.9rem;font-weight:600;color:#475569}input[data-v-68d7449c]{padding:.75rem 1rem;font-size:1rem;border:1.5px solid #e2e8f0;border-radius:.75rem;outline:none;transition:border-color .15s,box-shadow .15s;color:#1e293b}input[data-v-68d7449c]:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}button[type=submit][data-v-68d7449c]{margin-top:.5rem;padding:.875rem;font-size:1rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);border:none;border-radius:.75rem;cursor:pointer;transition:transform .1s,box-shadow .15s;box-shadow:0 4px 12px #2563eb59}button[type=submit][data-v-68d7449c]:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 6px 16px #2563eb66}button[type=submit][data-v-68d7449c]:not(:disabled):active{transform:translateY(0)}button[type=submit][data-v-68d7449c]:disabled{opacity:.65;cursor:default;box-shadow:none}.error[data-v-68d7449c]{color:#dc2626;margin:0;font-size:.9rem;background:#fef2f2;padding:.5rem .75rem;border-radius:.5rem;border:1px solid #fecaca}.switch[data-v-68d7449c]{margin-top:1.25rem;text-align:center;color:#64748b;font-size:.9rem}.auth-page[data-v-7c12c970]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.auth[data-v-7c12c970]{background:#fff;border-radius:1.5rem;padding:2.5rem;width:100%;max-width:28rem;box-shadow:0 8px 32px #2563eb1f,0 2px 8px #0000000f}.brand[data-v-7c12c970]{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1.5rem}.brand-icon[data-v-7c12c970]{font-size:2rem}.brand-name[data-v-7c12c970]{font-size:1.9rem;font-weight:800;color:#1e293b}h1[data-v-7c12c970]{margin:0 0 1.5rem;font-size:1.3rem;font-weight:700;text-align:center;color:#1e293b}form[data-v-7c12c970]{display:flex;flex-direction:column;gap:1.1rem}label[data-v-7c12c970]{display:flex;flex-direction:column;gap:.4rem;font-size:.9rem;font-weight:600;color:#475569}small[data-v-7c12c970]{font-weight:400;color:#64748b;font-size:.85rem}.role-picker[data-v-7c12c970]{border:none;padding:0;margin:0}.role-picker legend[data-v-7c12c970]{font-size:.9rem;font-weight:600;color:#475569;padding:0;margin-bottom:.6rem}.role-options[data-v-7c12c970]{display:flex;gap:.75rem}.role-card[data-v-7c12c970]{flex:1;display:flex;flex-direction:column;gap:.2rem;padding:.85rem .75rem;border:1.5px solid #e2e8f0;border-radius:.9rem;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s;text-align:center}.role-card[data-v-7c12c970]:hover{border-color:#bfdbfe}.role-card.selected[data-v-7c12c970]{border-color:#2563eb;background:#eff6ff;box-shadow:0 0 0 3px #2563eb1f}.role-card input[data-v-7c12c970]{position:absolute;opacity:0;width:0;height:0}.role-icon[data-v-7c12c970]{font-size:1.6rem}.role-title[data-v-7c12c970]{font-size:.95rem;font-weight:700;color:#1e293b}.role-desc[data-v-7c12c970]{font-size:.75rem;font-weight:400;color:#64748b;line-height:1.3}input[data-v-7c12c970]{padding:.75rem 1rem;font-size:1rem;border:1.5px solid #e2e8f0;border-radius:.75rem;outline:none;transition:border-color .15s,box-shadow .15s;color:#1e293b}input[data-v-7c12c970]:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}button[type=submit][data-v-7c12c970]{margin-top:.5rem;padding:.875rem;font-size:1rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);border:none;border-radius:.75rem;cursor:pointer;transition:transform .1s,box-shadow .15s;box-shadow:0 4px 12px #2563eb59}button[type=submit][data-v-7c12c970]:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 6px 16px #2563eb66}button[type=submit][data-v-7c12c970]:not(:disabled):active{transform:translateY(0)}button[type=submit][data-v-7c12c970]:disabled{opacity:.65;cursor:default;box-shadow:none}.error[data-v-7c12c970]{color:#dc2626;margin:0;font-size:.9rem;background:#fef2f2;padding:.5rem .75rem;border-radius:.5rem;border:1px solid #fecaca}.mismatch[data-v-7c12c970]{color:#dc2626;font-size:.8rem;font-weight:400}.terms[data-v-7c12c970]{flex-direction:row;align-items:flex-start;gap:.6rem;font-size:.85rem;font-weight:400;color:#475569;line-height:1.4}.terms input[data-v-7c12c970]{width:1.1rem;height:1.1rem;flex-shrink:0;margin-top:.1rem;padding:0;accent-color:#2563eb;cursor:pointer}.terms a[data-v-7c12c970]{color:#2563eb;font-weight:600}.switch[data-v-7c12c970]{margin-top:1.25rem;text-align:center;color:#64748b;font-size:.9rem}.auth-page[data-v-fc61a31c]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.auth[data-v-fc61a31c]{background:#fff;border-radius:1.5rem;padding:2.5rem 2rem;width:100%;max-width:22rem;box-shadow:0 8px 32px #2563eb1f,0 2px 8px #0000000f}.brand[data-v-fc61a31c]{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1.5rem}.brand-icon[data-v-fc61a31c]{font-size:2rem}.brand-name[data-v-fc61a31c]{font-size:1.9rem;font-weight:800;color:#1e293b}h1[data-v-fc61a31c]{margin:0 0 1.5rem;font-size:1.3rem;font-weight:700;text-align:center;color:#1e293b}form[data-v-fc61a31c]{display:flex;flex-direction:column;gap:1.1rem}label[data-v-fc61a31c]{display:flex;flex-direction:column;gap:.4rem;font-size:.9rem;font-weight:600;color:#475569}input[data-v-fc61a31c]{padding:.75rem 1rem;font-size:1rem;border:1.5px solid #e2e8f0;border-radius:.75rem;outline:none;transition:border-color .15s,box-shadow .15s;color:#1e293b}input[data-v-fc61a31c]:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}button[type=submit][data-v-fc61a31c]{margin-top:.5rem;padding:.875rem;font-size:1rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);border:none;border-radius:.75rem;cursor:pointer;transition:transform .1s,box-shadow .15s;box-shadow:0 4px 12px #2563eb59}button[type=submit][data-v-fc61a31c]:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 6px 16px #2563eb66}button[type=submit][data-v-fc61a31c]:not(:disabled):active{transform:translateY(0)}button[type=submit][data-v-fc61a31c]:disabled{opacity:.65;cursor:default;box-shadow:none}.muted[data-v-fc61a31c]{color:#64748b;margin:0;font-size:.9rem}.sent[data-v-fc61a31c]{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;padding:.875rem 1rem;border-radius:.75rem}.error[data-v-fc61a31c]{color:#dc2626;margin:0;font-size:.9rem;background:#fef2f2;padding:.5rem .75rem;border-radius:.5rem;border:1px solid #fecaca}.switch[data-v-fc61a31c]{margin-top:1.25rem;text-align:center;color:#64748b;font-size:.9rem}.auth-page[data-v-ee968827]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.auth[data-v-ee968827]{background:#fff;border-radius:1.5rem;padding:2.5rem 2rem;width:100%;max-width:22rem;box-shadow:0 8px 32px #2563eb1f,0 2px 8px #0000000f}.brand[data-v-ee968827]{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1.5rem}.brand-icon[data-v-ee968827]{font-size:2rem}.brand-name[data-v-ee968827]{font-size:1.9rem;font-weight:800;color:#1e293b}h1[data-v-ee968827]{margin:0 0 1.5rem;font-size:1.3rem;font-weight:700;text-align:center;color:#1e293b}form[data-v-ee968827]{display:flex;flex-direction:column;gap:1.1rem}label[data-v-ee968827]{display:flex;flex-direction:column;gap:.4rem;font-size:.9rem;font-weight:600;color:#475569}small[data-v-ee968827]{font-weight:400;color:#64748b;font-size:.85rem}input[data-v-ee968827]{padding:.75rem 1rem;font-size:1rem;border:1.5px solid #e2e8f0;border-radius:.75rem;outline:none;transition:border-color .15s,box-shadow .15s;color:#1e293b}input[data-v-ee968827]:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}button[type=submit][data-v-ee968827]{margin-top:.5rem;padding:.875rem;font-size:1rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);border:none;border-radius:.75rem;cursor:pointer;transition:transform .1s,box-shadow .15s;box-shadow:0 4px 12px #2563eb59}button[type=submit][data-v-ee968827]:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 6px 16px #2563eb66}button[type=submit][data-v-ee968827]:not(:disabled):active{transform:translateY(0)}button[type=submit][data-v-ee968827]:disabled{opacity:.65;cursor:default;box-shadow:none}.error[data-v-ee968827]{color:#dc2626;margin:0;font-size:.9rem;background:#fef2f2;padding:.5rem .75rem;border-radius:.5rem;border:1px solid #fecaca}.switch[data-v-ee968827]{margin-top:1.25rem;text-align:center;color:#64748b;font-size:.9rem}.error-state[data-v-d2728754]{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.25rem 1rem;border:1px solid #fecaca;background:#fef2f2;border-radius:.75rem;text-align:center}.message[data-v-d2728754]{margin:0;color:#991b1b;font-weight:600}.retry[data-v-d2728754]{min-height:2.75rem;padding:.5rem 1.5rem;font-weight:700;color:#fff;background:var(--color-primary);border:none;border-radius:.6rem;cursor:pointer}.request-id[data-v-d2728754]{margin:0;font-size:.8rem;color:#6b7280}.page[data-v-b7aa7fc4]{min-height:100vh;background:#f1f5f9}.topbar[data-v-b7aa7fc4]{position:sticky;top:0;z-index:50;background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #e2e8f0;box-shadow:0 1px 4px #0000000d}.topbar-inner[data-v-b7aa7fc4]{display:flex;align-items:center;justify-content:space-between;padding:0;height:3.5rem;max-width:72rem;margin:0 auto}.topbar-brand[data-v-b7aa7fc4]{display:flex;align-items:center;gap:.45rem}.brand-icon[data-v-b7aa7fc4]{font-size:1.3rem}.brand-name[data-v-b7aa7fc4]{font-size:1.1rem;font-weight:800;color:#1e293b}.account[data-v-b7aa7fc4]{display:flex;align-items:center;gap:1rem;font-size:.875rem;color:#64748b}.account-email[data-v-b7aa7fc4]{max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link[data-v-b7aa7fc4]{background:none;border:none;color:#2563eb;cursor:pointer;font:inherit;padding:0;text-decoration:none}.link[data-v-b7aa7fc4]:hover{text-decoration:underline}.hero[data-v-b7aa7fc4]{background:linear-gradient(135deg,#2563eb,#3b82f6,#60a5fa);color:#fff;padding:2.5rem 1.5rem 3rem}.hero-inner[data-v-b7aa7fc4]{max-width:72rem;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}.hero-title[data-v-b7aa7fc4]{margin:0 0 .5rem;font-size:2rem;font-weight:900;letter-spacing:-.02em}.hero-sub[data-v-b7aa7fc4]{margin:0;font-size:1rem;opacity:.85;max-width:36rem}.hero-stats[data-v-b7aa7fc4]{display:flex;align-items:center;gap:1.25rem;background:#ffffff26;border:1px solid rgba(255,255,255,.25);border-radius:1.25rem;padding:1rem 1.5rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);flex-shrink:0}.hero-stat[data-v-b7aa7fc4]{display:flex;flex-direction:column;align-items:center}.hero-stat-value[data-v-b7aa7fc4]{font-size:1.75rem;font-weight:900;line-height:1}.hero-stat-label[data-v-b7aa7fc4]{font-size:.75rem;opacity:.8;margin-top:.2rem;white-space:nowrap}.hero-stat-divider[data-v-b7aa7fc4]{width:1px;height:2.5rem;background:#ffffff4d}.content[data-v-b7aa7fc4]{padding:2rem 1.5rem 3rem}.content-inner[data-v-b7aa7fc4]{max-width:72rem;margin:0 auto}.section-header[data-v-b7aa7fc4]{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.section-title-group[data-v-b7aa7fc4]{display:flex;align-items:center;gap:.6rem}.section-title[data-v-b7aa7fc4]{font-size:1.1rem;font-weight:700;color:#1e293b;margin:0}.limit-badge[data-v-b7aa7fc4]{padding:.15rem .6rem;font-size:.78rem;font-weight:700;color:#64748b;background:#e2e8f0;border-radius:1rem}.limit-notice[data-v-b7aa7fc4]{margin:0 0 1rem;padding:.65rem 1rem;font-size:.85rem;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:.75rem}.btn-add--disabled[data-v-b7aa7fc4]{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-add--disabled[data-v-b7aa7fc4]:hover{transform:none;box-shadow:none}.btn-add[data-v-b7aa7fc4]{display:inline-flex;align-items:center;gap:.35rem;padding:.55rem 1.1rem;font-size:.875rem;font-weight:700;color:#2563eb;background:#fff;border-radius:.875rem;text-decoration:none;box-shadow:0 2px 8px #0000001f;transition:transform .12s,box-shadow .15s;white-space:nowrap;border:none;cursor:pointer}.btn-add[data-v-b7aa7fc4]:hover{transform:translateY(-1px);box-shadow:0 4px 14px #00000029}.btn-add--large[data-v-b7aa7fc4]{font-size:1rem;padding:.75rem 1.5rem;color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);box-shadow:0 4px 14px #2563eb59;margin-top:1rem}.btn-add--large[data-v-b7aa7fc4]:hover{box-shadow:0 6px 20px #2563eb66}.list[data-v-b7aa7fc4]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.card[data-v-b7aa7fc4]{background:#fff;border-radius:1.5rem;box-shadow:0 2px 10px #00000012;overflow:hidden;transition:box-shadow .2s,transform .2s;display:flex;flex-direction:column}.card[data-v-b7aa7fc4]:hover{box-shadow:0 8px 28px #2563eb24;transform:translateY(-2px)}.card-accent[data-v-b7aa7fc4]{height:6px;flex-shrink:0}.card-body[data-v-b7aa7fc4]{display:flex;align-items:flex-start;gap:1.25rem;padding:1.25rem 1.5rem;flex-wrap:wrap}.card-avatar[data-v-b7aa7fc4]{flex-shrink:0;width:4.5rem;height:4.5rem;border-radius:1.25rem;display:flex;align-items:center;justify-content:center;font-size:2.4rem;box-shadow:0 4px 12px #00000026}.card-content[data-v-b7aa7fc4]{flex:1;min-width:0;display:flex;flex-direction:column;gap:.6rem}.card-header[data-v-b7aa7fc4]{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.name[data-v-b7aa7fc4]{font-size:1.2rem;font-weight:800;color:#1e293b}.grade-badge[data-v-b7aa7fc4]{padding:.2rem .65rem;font-size:.72rem;font-weight:700;color:#2563eb;background:#eff6ff;border-radius:1rem;border:1.5px solid #bfdbfe}.streak-badge[data-v-b7aa7fc4]{padding:.2rem .6rem;font-size:.72rem;font-weight:700;background:linear-gradient(135deg,#fde68a,#fbbf24);border-radius:1rem;color:#92400e}.card-stats[data-v-b7aa7fc4]{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.stat-item[data-v-b7aa7fc4]{display:flex;align-items:center;gap:.3rem}.stat-icon[data-v-b7aa7fc4]{font-size:.85rem}.stat-value[data-v-b7aa7fc4]{font-size:.85rem;font-weight:700;color:#334155}.stat-label[data-v-b7aa7fc4]{font-size:.78rem;color:#94a3b8}.stat-separator[data-v-b7aa7fc4]{width:1px;height:1rem;background:#e2e8f0}.stat-none[data-v-b7aa7fc4]{font-size:.82rem;color:#94a3b8;font-style:italic}.card-actions[data-v-b7aa7fc4]{display:flex;align-items:center;gap:.6rem;margin-left:auto;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;align-self:center}.btn-play[data-v-b7aa7fc4]{padding:.65rem 1.4rem;font-size:.9rem;font-weight:800;color:#fff;background:linear-gradient(135deg,#16a34a,#15803d);border:none;border-radius:1rem;cursor:pointer;transition:transform .1s,box-shadow .15s;box-shadow:0 3px 10px #16a34a59;white-space:nowrap}.btn-play[data-v-b7aa7fc4]:hover{transform:translateY(-1px);box-shadow:0 5px 16px #16a34a6b}.btn-play[data-v-b7aa7fc4]:active{transform:scale(.97)}.btn-progress[data-v-b7aa7fc4]{padding:.65rem 1rem;font-size:.85rem;font-weight:700;color:#2563eb;background:#eff6ff;border:1.5px solid #bfdbfe;border-radius:1rem;cursor:pointer;transition:background .15s,transform .1s;white-space:nowrap}.btn-progress[data-v-b7aa7fc4]:hover{background:#dbeafe;transform:translateY(-1px)}.card-actions-secondary[data-v-b7aa7fc4]{display:flex;gap:.4rem}.btn-icon[data-v-b7aa7fc4]{width:2.25rem;height:2.25rem;font-size:.9rem;background:none;border:1.5px solid #e2e8f0;border-radius:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s;padding:0}.btn-icon[data-v-b7aa7fc4]:hover{background:#f1f5f9;border-color:#cbd5e1}.btn-icon--danger[data-v-b7aa7fc4]:hover,.btn-icon--active[data-v-b7aa7fc4]{color:#dc2626;border-color:#fca5a5;background:#fef2f2}.delete-confirm[data-v-b7aa7fc4]{display:flex;flex-direction:column;gap:.6rem;padding:.85rem 1rem;background:#fef2f2;border:1.5px solid #fecaca;border-radius:.85rem}.delete-confirm-text[data-v-b7aa7fc4]{margin:0;font-size:.85rem;color:#991b1b;line-height:1.4}.delete-confirm-actions[data-v-b7aa7fc4]{display:flex;gap:.5rem}.btn-delete-confirm[data-v-b7aa7fc4]{padding:.45rem 1.1rem;font-size:.85rem;font-weight:700;color:#fff;background:#dc2626;border:none;border-radius:.65rem;cursor:pointer;transition:background .15s,opacity .15s}.btn-delete-confirm[data-v-b7aa7fc4]:not(:disabled):hover{background:#b91c1c}.btn-delete-confirm[data-v-b7aa7fc4]:disabled{opacity:.6;cursor:default}.link-panel[data-v-b7aa7fc4]{display:flex;flex-direction:column;gap:.65rem;padding:.9rem 1rem;background:#f0f9ff;border:1.5px solid #bae6fd;border-radius:.85rem}.link-intro[data-v-b7aa7fc4]{margin:0;font-size:.82rem;color:#0369a1;line-height:1.4}.link-loading[data-v-b7aa7fc4]{margin:0;font-size:.85rem;color:#64748b}.link-row[data-v-b7aa7fc4]{display:flex;gap:.5rem;align-items:stretch;flex-wrap:wrap}.link-url[data-v-b7aa7fc4]{flex:1;min-width:12rem;min-height:2.75rem;font-size:.85rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;padding:.5rem .7rem;border:1.5px solid #bae6fd;border-radius:.65rem;background:#fff;color:#334155;width:auto;box-sizing:border-box}.btn-copy[data-v-b7aa7fc4]{min-height:2.75rem;padding:.5rem 1.1rem;font-size:.85rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#0ea5e9,#0284c7);border:none;border-radius:.65rem;cursor:pointer;white-space:nowrap;transition:opacity .15s}.btn-copy[data-v-b7aa7fc4]:disabled{opacity:.6;cursor:default}.btn-link-action[data-v-b7aa7fc4]{min-height:2.75rem;padding:.55rem 1.2rem;font-size:.88rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#0ea5e9,#0284c7);border:none;border-radius:.7rem;cursor:pointer;align-self:flex-start;transition:opacity .15s}.btn-link-action[data-v-b7aa7fc4]:disabled{opacity:.6;cursor:default}.link-actions[data-v-b7aa7fc4]{display:flex;gap:.5rem;flex-wrap:wrap}.btn-link-secondary[data-v-b7aa7fc4]{min-height:2.5rem;padding:.45rem .9rem;font-size:.82rem;font-weight:700;color:#0369a1;background:#fff;border:1.5px solid #bae6fd;border-radius:.65rem;cursor:pointer;transition:background .15s,border-color .15s}.btn-link-secondary[data-v-b7aa7fc4]:not(:disabled):hover{background:#e0f2fe}.btn-link-secondary[data-v-b7aa7fc4]:disabled{opacity:.6;cursor:default}.btn-link-secondary--danger[data-v-b7aa7fc4]{color:#b91c1c;border-color:#fecaca}.btn-link-secondary--danger[data-v-b7aa7fc4]:not(:disabled):hover{background:#fef2f2;border-color:#fca5a5}.link-confirm[data-v-b7aa7fc4]{display:flex;flex-direction:column;gap:.55rem;padding:.7rem .85rem;background:#fffbeb;border:1.5px solid #fde68a;border-radius:.7rem}.link-confirm-text[data-v-b7aa7fc4]{margin:0;font-size:.82rem;color:#92400e;line-height:1.4}.link-confirm-actions[data-v-b7aa7fc4]{display:flex;gap:.5rem}.btn-link-danger[data-v-b7aa7fc4]{min-height:2.5rem;padding:.45rem 1rem;font-size:.82rem;font-weight:700;color:#fff;background:#d97706;border:none;border-radius:.6rem;cursor:pointer;transition:background .15s,opacity .15s}.btn-link-danger[data-v-b7aa7fc4]:not(:disabled):hover{background:#b45309}.btn-link-danger[data-v-b7aa7fc4]:disabled{opacity:.6;cursor:default}.link-error[data-v-b7aa7fc4]{margin:0;font-size:.8rem;color:#dc2626}.empty-state[data-v-b7aa7fc4]{display:flex;flex-direction:column;align-items:center;text-align:center;padding:3rem 2rem;background:#fff;border-radius:1.5rem;border:2px dashed #bfdbfe;list-style:none}.empty-illustration[data-v-b7aa7fc4]{font-size:4rem;margin-bottom:.75rem;filter:drop-shadow(0 4px 8px rgba(0,0,0,.1))}.empty-title[data-v-b7aa7fc4]{margin:0 0 .4rem;font-size:1.2rem;font-weight:800;color:#1e293b}.empty-sub[data-v-b7aa7fc4]{margin:0;font-size:.9rem;color:#64748b;max-width:28rem}.skeleton-list[data-v-b7aa7fc4]{display:flex;flex-direction:column;gap:1rem}.skeleton-card[data-v-b7aa7fc4]{height:6.5rem;background:linear-gradient(90deg,#e2e8f0 25%,#f1f5f9,#e2e8f0 75%);background-size:200% 100%;animation:shimmer-b7aa7fc4 1.4s infinite;border-radius:1.5rem}@keyframes shimmer-b7aa7fc4{0%{background-position:200% 0}to{background-position:-200% 0}}.error-banner[data-v-b7aa7fc4]{color:#dc2626;background:#fef2f2;padding:.65rem 1rem;border-radius:.75rem;font-size:.9rem;border:1px solid #fecaca;margin-bottom:1rem}input[data-v-b7aa7fc4],select[data-v-b7aa7fc4]{padding:.65rem .85rem;font-size:1rem;border:1.5px solid #e2e8f0;border-radius:.75rem;outline:none;transition:border-color .15s,box-shadow .15s;color:#1e293b;background:#fff;width:100%;box-sizing:border-box}input[data-v-b7aa7fc4]:focus,select[data-v-b7aa7fc4]:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.edit-form[data-v-b7aa7fc4]{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:#f8fafc;border-radius:.75rem;border:1.5px solid #bfdbfe}.edit-actions[data-v-b7aa7fc4]{display:flex;gap:.5rem}.btn-save[data-v-b7aa7fc4]{padding:.45rem 1.1rem;font-size:.85rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);border:none;border-radius:.65rem;cursor:pointer;transition:opacity .15s}.btn-save[data-v-b7aa7fc4]:disabled{opacity:.55;cursor:default}.btn-cancel[data-v-b7aa7fc4]{padding:.45rem .85rem;font-size:.85rem;font-weight:600;color:#64748b;background:none;border:1.5px solid #e2e8f0;border-radius:.65rem;cursor:pointer}.btn-cancel[data-v-b7aa7fc4]:hover{background:#f1f5f9}.edit-error[data-v-b7aa7fc4]{color:#dc2626;font-size:.82rem;margin:0}@media (max-width: 1200px){.topbar-inner[data-v-b7aa7fc4]{padding:0 1.5rem}}@media (max-width: 600px){.hero-inner[data-v-b7aa7fc4]{flex-direction:column;align-items:flex-start;gap:1.25rem}.hero-stats[data-v-b7aa7fc4]{width:100%;justify-content:center}.card-body[data-v-b7aa7fc4]{flex-wrap:wrap;gap:1rem}.card-actions[data-v-b7aa7fc4]{margin-left:0;width:100%;justify-content:flex-start}.btn-play[data-v-b7aa7fc4],.btn-progress[data-v-b7aa7fc4]{flex:1;text-align:center;justify-content:center}}.add-child[data-v-21c4ed16]{max-width:36rem;margin:0 auto;padding:1.5rem 1rem 3rem;min-height:100vh}.top[data-v-21c4ed16]{display:flex;align-items:center;gap:1rem;margin-bottom:1.75rem}.top h1[data-v-21c4ed16]{margin:0;font-size:1.5rem;font-weight:800;color:#1e293b}.back-link[data-v-21c4ed16]{color:#2563eb;text-decoration:none;font-size:.9rem;font-weight:600;white-space:nowrap}.back-link[data-v-21c4ed16]:hover{text-decoration:underline}.card[data-v-21c4ed16]{padding:1.5rem;background:#fff;border-radius:1.25rem;border:1px solid #e2e8f0;box-shadow:0 2px 8px #0000000d}form[data-v-21c4ed16]{display:flex;flex-direction:column;gap:1rem}label[data-v-21c4ed16]{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;font-weight:600;color:#475569}input[data-v-21c4ed16],select[data-v-21c4ed16]{padding:.65rem .85rem;font-size:1rem;border:1.5px solid #e2e8f0;border-radius:.75rem;outline:none;transition:border-color .15s,box-shadow .15s;color:#1e293b;background:#fff}input[data-v-21c4ed16]:focus,select[data-v-21c4ed16]:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}button[type=submit][data-v-21c4ed16]{padding:.8rem;font-size:1rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);border:none;border-radius:.75rem;cursor:pointer;transition:opacity .15s,transform .1s;box-shadow:0 4px 12px #2563eb4d}button[type=submit][data-v-21c4ed16]:not(:disabled):hover{transform:translateY(-1px)}button[type=submit][data-v-21c4ed16]:disabled{opacity:.55;cursor:default;box-shadow:none}.error[data-v-21c4ed16]{color:#dc2626;background:#fef2f2;padding:.5rem .75rem;border-radius:.5rem;font-size:.9rem;border:1px solid #fecaca;margin:0}.clock[data-v-b2ac9aba]{width:220px;height:220px;max-width:70vw}.dial[data-v-b2ac9aba]{fill:#fff;stroke:#1f2937;stroke-width:3}.tick[data-v-b2ac9aba]{stroke:#9ca3af;stroke-width:2}.num[data-v-b2ac9aba]{fill:#1f2937;font-size:14px;font-weight:700}.hand[data-v-b2ac9aba]{stroke-linecap:round}.hour[data-v-b2ac9aba]{stroke:#1f2937;stroke-width:6}.minute[data-v-b2ac9aba]{stroke:var(--color-primary);stroke-width:4}.pin[data-v-b2ac9aba]{fill:#1f2937}.number-line[data-v-cb9539f4]{width:100%;max-width:30rem;height:auto}.axis[data-v-cb9539f4]{stroke:#1f2937;stroke-width:3;stroke-linecap:round}.arrow[data-v-cb9539f4]{fill:none;stroke:#1f2937;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.tick[data-v-cb9539f4]{stroke:#6b7280;stroke-width:2.5;stroke-linecap:round}.num[data-v-cb9539f4]{fill:#1f2937;font-size:20px;font-weight:700}.num.question[data-v-cb9539f4]{fill:var(--color-primary);font-size:24px;font-weight:800}.marked-disc[data-v-cb9539f4]{fill:#fef3c7;stroke:#f59e0b;stroke-width:2}.shape-groups[data-v-aeaa7dd1]{width:100%;max-width:32rem;height:auto}.box[data-v-aeaa7dd1]{fill:#fff;stroke:#d1d5db;stroke-width:2}.shape.left[data-v-aeaa7dd1]{fill:var(--color-primary);stroke:#1e40af;stroke-width:1.5}.shape.right[data-v-aeaa7dd1]{fill:#f59e0b;stroke:#b45309;stroke-width:1.5}.unknown[data-v-aeaa7dd1]{fill:#1f2937;font-size:34px;font-weight:800}.shapes-renderer[data-v-6dfa6541]{display:block;max-width:100%;height:auto}.word-renderer[data-v-5cf8978f]{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.1em;font-size:3rem;font-weight:800;letter-spacing:.02em;color:#1e1b4b}.whole[data-v-5cf8978f]{padding:.25rem .75rem}.syllable[data-v-5cf8978f]{padding:.15rem .45rem;border-radius:.5rem}.syllable[data-v-5cf8978f]:nth-child(odd){background:#ede9fe}.syllable[data-v-5cf8978f]:nth-child(2n){background:#fce7f3}.sentence-renderer[data-v-9e7fa8c3]{margin:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;font-size:1.9rem;font-weight:700;line-height:1.5;color:#1e1b4b}.blank[data-v-9e7fa8c3]{display:inline-block;min-width:4.5rem;height:.18em;margin-bottom:.35em;border-radius:999px;background:#a78bfa;vertical-align:bottom}.prompt[data-v-b85349b1]{display:flex;flex-direction:column;align-items:center;gap:1.25rem}.text[data-v-b85349b1]{margin:0;font-size:2.5rem;font-weight:800;text-align:center;line-height:1.2}.word-order[data-v-168382fa]{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%}.answer-row[data-v-168382fa]{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;min-height:4rem;width:100%;padding:.75rem;border:2px dashed #c4b5fd;border-radius:1rem;background:#faf5ff}.answer-hint[data-v-168382fa]{color:#8b7fb8;font-size:1.1rem}.pool[data-v-168382fa]{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}.chip[data-v-168382fa]{min-height:64px;padding:0 1.1rem;font-size:1.6rem;font-weight:700;color:#1e1b4b;background:#fff;border:2px solid #a78bfa;border-radius:.9rem;cursor:pointer;transition:transform .08s ease,background .15s ease}.chip[data-v-168382fa]:hover:not(:disabled){background:#f5f3ff}.chip[data-v-168382fa]:active:not(:disabled){transform:scale(.96)}.chip.placed[data-v-168382fa]{background:#ede9fe;border-style:solid}.chip[data-v-168382fa]:disabled{opacity:.6;cursor:default}.big[data-v-168382fa]{min-height:64px;padding:0 2rem;font-size:1.4rem;font-weight:800;color:#fff;background:linear-gradient(135deg,#7c3aed,#3b82f6);border:none;border-radius:1rem;cursor:pointer}.big[data-v-168382fa]:disabled{opacity:.5;cursor:default}@media (prefers-reduced-motion: reduce){.chip[data-v-168382fa]{transition:none}}.ordering[data-v-ffc063d6]{display:flex;flex-direction:column;align-items:center;gap:1.25rem;width:100%}.source[data-v-ffc063d6]{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}.source-chip[data-v-ffc063d6]{display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem;padding:.35rem .75rem;font-size:1.5rem;font-weight:700;color:#475569;background:#f1f5f9;border-radius:.75rem}.boxes[data-v-ffc063d6]{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}.box[data-v-ffc063d6]{width:72px;height:72px;font-size:2rem;font-weight:800;text-align:center;color:#1e293b;background:#fff;border:3px solid #93c5fd;border-radius:1rem;transition:border-color .15s ease}.box[data-v-ffc063d6]:focus{outline:none;border-color:#3b82f6}.box[data-v-ffc063d6]:disabled{opacity:.6}.big[data-v-ffc063d6]{min-height:64px;padding:0 2rem;font-size:1.4rem;font-weight:800;color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);border:none;border-radius:1rem;cursor:pointer}.big[data-v-ffc063d6]:disabled{opacity:.5;cursor:default}@media (prefers-reduced-motion: reduce){.box[data-v-ffc063d6]{transition:none}}.play[data-v-c6ae0b7a]{max-width:32rem;margin:0 auto;padding:1.25rem 1rem 3rem;min-height:100vh;display:flex;flex-direction:column;justify-content:center}.loading[data-v-c6ae0b7a]{text-align:center;color:#64748b;font-size:1.1rem}.bar[data-v-c6ae0b7a]{height:.75rem;background:#dbeafe;border-radius:1rem;overflow:hidden}.bar-fill[data-v-c6ae0b7a]{height:100%;background:linear-gradient(90deg,#2563eb,#60a5fa);border-radius:1rem;transition:width .3s ease}.count[data-v-c6ae0b7a]{margin:.4rem 0 1.25rem;text-align:center;color:#64748b;font-weight:600;font-size:.9rem}.game-controls[data-v-c6ae0b7a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.control[data-v-c6ae0b7a]{min-height:2.75rem;min-width:2.75rem;padding:.3rem .7rem;font-size:1.1rem;background:#fff;border:1.5px solid #dbeafe;border-radius:.75rem;cursor:pointer;transition:border-color .15s,background .15s;color:var(--color-text)}.control[data-v-c6ae0b7a]:hover{border-color:#93c5fd;background:#eff6ff}.control.exit[data-v-c6ae0b7a]{font-size:.9rem;font-weight:600}.card-prompt[data-v-c6ae0b7a]{position:relative;background:#fff;border:2px solid #dbeafe;border-radius:1.25rem;padding:2rem 1rem;margin-bottom:1.5rem;box-shadow:0 4px 16px #2563eb14;transition:border-color .2s,background .2s,box-shadow .2s}.card-prompt.celebrate[data-v-c6ae0b7a]{border-color:#16a34a;background:#f0fdf4;box-shadow:0 4px 20px #16a34a26;animation:pop-c6ae0b7a .4s ease}.card-prompt.shake[data-v-c6ae0b7a]{border-color:#dc2626;background:#fef2f2;box-shadow:0 4px 20px #dc26261f;animation:shake-c6ae0b7a .4s ease}.sparkles[data-v-c6ae0b7a]{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:visible}.sparkle[data-v-c6ae0b7a]{position:absolute;font-size:1.4rem;color:#f59e0b;animation:sparkle-c6ae0b7a .9s ease-out forwards}.sparkle.s1[data-v-c6ae0b7a]{top:8%;left:10%}.sparkle.s2[data-v-c6ae0b7a]{top:10%;right:12%;animation-delay:.08s}.sparkle.s3[data-v-c6ae0b7a]{bottom:12%;left:16%;animation-delay:.16s}.sparkle.s4[data-v-c6ae0b7a]{bottom:8%;right:9%;animation-delay:.1s}@keyframes sparkle-c6ae0b7a{0%{opacity:0;transform:scale(.4) translateY(4px)}35%{opacity:1;transform:scale(1.15) translateY(-4px)}to{opacity:0;transform:scale(.9) translateY(-14px)}}.choices[data-v-c6ae0b7a]{display:grid;grid-template-columns:repeat(2,1fr);gap:.9rem}.choice[data-v-c6ae0b7a]{min-height:4.5rem;font-size:1.75rem;font-weight:700;color:var(--color-text);background:#fff;border:2.5px solid #dbeafe;border-radius:1.1rem;cursor:pointer;transition:transform .08s ease,border-color .15s ease,box-shadow .15s ease,background .15s;box-shadow:0 2px 6px #0000000f}.choice[data-v-c6ae0b7a]:not(:disabled):hover{border-color:#3b82f6;background:#eff6ff;box-shadow:0 4px 14px #2563eb2e;transform:translateY(-2px)}.choice[data-v-c6ae0b7a]:not(:disabled):active{transform:scale(.97) translateY(0)}.choice.correct[data-v-c6ae0b7a]{border-color:#16a34a;background:#dcfce7;color:#166534;box-shadow:0 4px 14px #16a34a33}.choice.wrong[data-v-c6ae0b7a]{border-color:#dc2626;background:#fee2e2;color:#991b1b}.free[data-v-c6ae0b7a]{display:flex;flex-direction:column;gap:.9rem}.free-input[data-v-c6ae0b7a]{min-height:4rem;font-size:1.75rem;text-align:center;border:2.5px solid #dbeafe;border-radius:1.1rem;padding:.5rem;outline:none;transition:border-color .15s,box-shadow .15s}.free-input[data-v-c6ae0b7a]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.big[data-v-c6ae0b7a]{min-height:4rem;font-size:1.25rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);border:none;border-radius:1.1rem;cursor:pointer;transition:transform .1s,box-shadow .15s;box-shadow:0 4px 14px #2563eb59}.big[data-v-c6ae0b7a]:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 6px 18px #2563eb66}.big[data-v-c6ae0b7a]:not(:disabled):active{transform:translateY(0)}.big[data-v-c6ae0b7a]:disabled{opacity:.5;box-shadow:none}.feedback[data-v-c6ae0b7a]{margin-top:1.5rem;display:flex;flex-direction:column;align-items:center;gap:.9rem}.msg[data-v-c6ae0b7a]{margin:0;font-size:1.4rem;font-weight:700}.msg.good[data-v-c6ae0b7a]{color:#166534}.msg.bad[data-v-c6ae0b7a]{color:#991b1b}.levelup[data-v-c6ae0b7a]{margin:0;font-weight:700;color:#2563eb;background:#eff6ff;padding:.4rem 1rem;border-radius:1rem}.feedback .big[data-v-c6ae0b7a]{width:100%}.summary[data-v-c6ae0b7a]{text-align:center}.summary h1[data-v-c6ae0b7a]{font-size:2.25rem;font-weight:800;color:#1e293b}.stars[data-v-c6ae0b7a]{font-size:3.5rem;letter-spacing:.3rem;margin:.5rem 0}.star[data-v-c6ae0b7a]{color:#e2e8f0;transition:color .3s}.star.filled[data-v-c6ae0b7a]{color:#f59e0b;animation:star-pop-c6ae0b7a .4s ease}@keyframes star-pop-c6ae0b7a{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.score[data-v-c6ae0b7a]{font-size:1.2rem;font-weight:600;color:#475569}.encouragement[data-v-c6ae0b7a]{font-size:1.05rem;font-weight:600;color:#2563eb;text-align:center;margin:.25rem 0 .75rem}.per-type[data-v-c6ae0b7a]{list-style:none;padding:0;margin:1.5rem 0;display:flex;flex-direction:column;gap:.5rem;text-align:left}.per-type li[data-v-c6ae0b7a]{display:flex;justify-content:space-between;padding:.65rem 1rem;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;box-shadow:0 1px 4px #0000000a}.per-type .label[data-v-c6ae0b7a]{font-weight:600;color:#374151}.per-type .ratio[data-v-c6ae0b7a]{color:#64748b;font-weight:600}.actions[data-v-c6ae0b7a]{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem}.actions .big[data-v-c6ae0b7a]{width:100%}.overlay[data-v-c6ae0b7a]{position:fixed;top:0;right:0;bottom:0;left:0;background:#1118278c;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog[data-v-c6ae0b7a]{background:#fff;border-radius:1.5rem;padding:2rem 1.5rem;max-width:22rem;width:100%;display:flex;flex-direction:column;gap:.9rem;text-align:center;box-shadow:0 20px 60px #0003}.dialog-text[data-v-c6ae0b7a]{margin:0;font-size:1.35rem;font-weight:700;color:#1e293b}.dialog-hint[data-v-c6ae0b7a]{margin:0;color:#64748b;font-size:.95rem}.link[data-v-c6ae0b7a]{background:none;border:none;color:#2563eb;cursor:pointer;font:inherit}.error[data-v-c6ae0b7a]{color:#b91c1c;text-align:center}.state[data-v-c6ae0b7a]{display:flex;flex-direction:column;gap:1rem;align-items:center}@keyframes pop-c6ae0b7a{0%{transform:scale(1)}50%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes shake-c6ae0b7a{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}@media (prefers-reduced-motion: reduce){.card-prompt.celebrate[data-v-c6ae0b7a],.card-prompt.shake[data-v-c6ae0b7a]{animation:none}.sparkle[data-v-c6ae0b7a]{animation:none;opacity:0}.bar-fill[data-v-c6ae0b7a]{transition:none}.star.filled[data-v-c6ae0b7a]{animation:none}.choice[data-v-c6ae0b7a]:not(:disabled):hover{transform:none}.big[data-v-c6ae0b7a]:not(:disabled):hover{transform:none}}.play-invalid[data-v-7fec1a19]{max-width:32rem;margin:0 auto;padding:1.25rem 1rem 3rem;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.error[data-v-7fec1a19]{color:#b91c1c;text-align:center}.link[data-v-7fec1a19]{background:none;border:none;color:#2563eb;cursor:pointer;font:inherit}.link[data-v-7fec1a19]:hover{text-decoration:underline}.trend[data-v-2b8e270f]{width:100%;height:auto}.grid[data-v-2b8e270f]{stroke:#e5e7eb;stroke-width:1}.axis-label[data-v-2b8e270f]{fill:#6b7280;font-size:11px}.area[data-v-2b8e270f]{fill:#2563eb1f}.line[data-v-2b8e270f]{fill:none;stroke:var(--color-primary);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.dot[data-v-2b8e270f]{fill:var(--color-primary);stroke:#fff;stroke-width:1.5}.progress[data-v-7ab907ae]{max-width:40rem;margin:0 auto;padding:1.5rem 1rem 3rem}.top[data-v-7ab907ae]{display:flex;align-items:center;gap:1rem;margin-bottom:1.75rem}.top h1[data-v-7ab907ae]{margin:0;font-size:1.5rem;font-weight:800;color:#1e293b}.report-link[data-v-7ab907ae]{margin-left:auto;padding:.4rem .85rem;border:1px solid #bfdbfe;border-radius:.5rem;color:#2563eb;text-decoration:none;font-weight:600;font-size:.9rem}.report-link[data-v-7ab907ae]:hover{background:#eff6ff}.totals[data-v-7ab907ae]{display:flex;gap:.75rem;margin:0 0 2rem}.stat[data-v-7ab907ae]{flex:1;display:flex;flex-direction:column;align-items:center;padding:1rem .5rem;background:#fff;border-radius:1rem;box-shadow:0 2px 8px #0000000f;gap:.15rem}.stat-icon[data-v-7ab907ae]{font-size:1.4rem;margin-bottom:.15rem}.stat .num[data-v-7ab907ae]{font-size:1.75rem;font-weight:800;line-height:1}.stat.stat-indigo .num[data-v-7ab907ae]{color:#2563eb}.stat.stat-green .num[data-v-7ab907ae]{color:#16a34a}.stat.stat-amber .num[data-v-7ab907ae]{color:#d97706}.stat .cap[data-v-7ab907ae]{color:#64748b;font-size:.8rem;font-weight:500}h2[data-v-7ab907ae]{font-size:.8rem;font-weight:700;margin:0 0 .75rem;color:#374151;text-transform:uppercase;letter-spacing:.04em}.types[data-v-7ab907ae],.sessions[data-v-7ab907ae]{list-style:none;padding:0;margin:0 0 2rem;display:flex;flex-direction:column;gap:.65rem}.type[data-v-7ab907ae]{background:#fff;border:1px solid #e2e8f0;border-radius:1rem;padding:.9rem 1.1rem;box-shadow:0 1px 4px #0000000a}.type-head[data-v-7ab907ae],.type-foot[data-v-7ab907ae]{display:flex;justify-content:space-between;align-items:baseline}.type-head .label[data-v-7ab907ae]{font-weight:700;color:#1e293b}.type-head .level[data-v-7ab907ae]{font-size:.8rem;font-weight:600;color:#2563eb;background:#eff6ff;padding:.15rem .5rem;border-radius:1rem}.type-foot[data-v-7ab907ae]{color:#64748b;font-size:.82rem;margin-top:.35rem}.track[data-v-7ab907ae]{height:.5rem;background:#dbeafe;border-radius:1rem;overflow:hidden;margin:.45rem 0}.fill[data-v-7ab907ae]{height:100%;background:linear-gradient(90deg,#2563eb,#60a5fa);border-radius:1rem;transition:width .4s ease}.session[data-v-7ab907ae]{display:flex;align-items:center;gap:.75rem;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;padding:.6rem .9rem}.session .date[data-v-7ab907ae]{width:3rem;color:#64748b;font-size:.82rem;flex-shrink:0;font-weight:600}.session .track[data-v-7ab907ae]{flex:1;margin:0}.session .ratio[data-v-7ab907ae]{width:3rem;text-align:right;font-size:.82rem;flex-shrink:0;font-weight:600;color:#374151}.empty[data-v-7ab907ae]{color:#94a3b8;font-size:.95rem;padding:1rem;background:#f8fafc;border-radius:.75rem;text-align:center}.trend-card[data-v-7ab907ae]{background:#fff;border:1px solid #e2e8f0;border-radius:1rem;padding:1.1rem;display:flex;flex-direction:column;gap:.75rem;box-shadow:0 2px 8px #0000000a;margin-bottom:2rem}.trend-filter[data-v-7ab907ae]{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:#374151}.trend-filter select[data-v-7ab907ae]{padding:.4rem .65rem;font-size:.875rem;border:1.5px solid #e2e8f0;border-radius:.6rem;outline:none;background:#fff}.trend-filter select[data-v-7ab907ae]:focus{border-color:#2563eb}.link[data-v-7ab907ae]{background:none;border:none;color:#2563eb;cursor:pointer;font:inherit;padding:0;font-weight:600}.error[data-v-7ab907ae]{color:#dc2626}.insights-section[data-v-7ab907ae]{margin-bottom:1.5rem}.section-label[data-v-7ab907ae]{font-size:.8rem;font-weight:700;margin:0 0 .75rem;color:#374151;text-transform:uppercase;letter-spacing:.04em}.insights-list[data-v-7ab907ae]{list-style:none;padding:0;display:flex;flex-direction:column;gap:.6rem}.insight-card[data-v-7ab907ae]{display:flex;align-items:center;gap:.85rem;padding:.85rem 1rem;border-radius:.875rem;border:1.5px solid #e2e8f0;background:#fff}.insight-card.practice_more[data-v-7ab907ae]{border-color:#fca5a5;background:#fff7f7}.insight-card.level_up[data-v-7ab907ae]{border-color:#86efac;background:#f0fdf4}.insight-card.not_started[data-v-7ab907ae]{border-color:#bfdbfe;background:#eff6ff}.insight-icon[data-v-7ab907ae]{font-size:1.5rem;line-height:1;flex-shrink:0}.insight-body[data-v-7ab907ae]{display:flex;flex-direction:column;gap:.1rem}.insight-title[data-v-7ab907ae]{font-size:.95rem;font-weight:700;color:#1e293b}.insight-sub[data-v-7ab907ae]{font-size:.78rem;color:#64748b}.verify[data-v-f8a815da]{max-width:24rem;margin:4rem auto;padding:0 1rem;text-align:center}.admin-layout[data-v-211341bd]{display:flex;min-height:100vh}.mobile-topbar[data-v-211341bd]{display:none}.sidebar[data-v-211341bd]{width:220px;min-width:220px;height:100vh;position:fixed;top:0;left:0;background:#1e1b4b;display:flex;flex-direction:column;z-index:200}.sidebar-top[data-v-211341bd]{padding:1.5rem 1.25rem 1rem;border-bottom:1px solid rgba(255,255,255,.1)}.brand[data-v-211341bd]{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem}.brand-icon[data-v-211341bd]{font-size:1.4rem;line-height:1}.brand-name[data-v-211341bd]{font-size:1.2rem;font-weight:800;color:#fff;letter-spacing:-.01em}.admin-badge[data-v-211341bd]{display:block;font-size:.65rem;font-weight:700;letter-spacing:.12em;color:#ffffff73;font-variant:small-caps;padding-left:.1rem}.sidebar-nav[data-v-211341bd]{flex:1;display:flex;flex-direction:column;padding:.75rem;gap:.2rem}.sidebar-nav a[data-v-211341bd]{display:block;padding:.6rem .75rem;border-radius:.6rem;color:#ffffffb3;text-decoration:none;font-size:.92rem;font-weight:500;transition:background .15s,color .15s}.sidebar-nav a[data-v-211341bd]:hover{background:#ffffff14;color:#fffffff2}.sidebar-nav a.router-link-active[data-v-211341bd]{background:#fff;color:#1e1b4b;font-weight:700}.sidebar-footer[data-v-211341bd]{padding:1rem 1.25rem 1.25rem;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:.55rem}.user-email[data-v-211341bd]{font-size:.75rem;color:#fff6;word-break:break-all}.footer-link[data-v-211341bd]{font-size:.85rem;font-weight:600;color:#ffffffa6;text-decoration:none;transition:color .15s}.footer-link[data-v-211341bd]:hover{color:#fff}.logout-btn[data-v-211341bd]{background:none;border:none;padding:0;font:inherit;font-size:.85rem;font-weight:600;color:#ffffffa6;cursor:pointer;text-align:left;transition:color .15s}.logout-btn[data-v-211341bd]:hover{color:#fff}.content[data-v-211341bd]{margin-left:220px;flex:1;min-height:100vh;background:#f1f5f9;min-width:0}.content-inner[data-v-211341bd]{padding:1.5rem}.card[data-v-211341bd]{background:#fff;border-radius:1rem;border:1px solid #e2e8f0;box-shadow:0 2px 8px #0000000f;padding:1.5rem 1.75rem;overflow-x:auto}@media (max-width: 700px){.admin-layout[data-v-211341bd]{flex-direction:column}.mobile-topbar[data-v-211341bd]{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:300;background:#1e1b4b;padding:0 1rem;height:3.25rem;flex-shrink:0}.mobile-brand[data-v-211341bd]{display:flex;align-items:center;gap:.4rem}.mobile-brand .brand-icon[data-v-211341bd]{font-size:1.2rem}.mobile-brand .brand-name[data-v-211341bd]{font-size:1rem;font-weight:800;color:#fff}.mobile-brand .admin-badge[data-v-211341bd]{display:inline;font-size:.65rem;color:#ffffff80;letter-spacing:.08em;margin-left:.25rem}.hamburger[data-v-211341bd]{display:flex;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:.25rem}.hamburger span[data-v-211341bd]{display:block;width:22px;height:2px;background:#fffc;border-radius:2px;transition:background .15s}.hamburger:hover span[data-v-211341bd]{background:#fff}.drawer-overlay[data-v-211341bd]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:190}.sidebar[data-v-211341bd]{position:fixed;top:0;left:0;height:100vh;width:260px;transform:translate(-100%);transition:transform .25s ease;z-index:200}.sidebar.open[data-v-211341bd]{transform:translate(0)}.content[data-v-211341bd]{margin-left:0;padding-top:0}.content-inner[data-v-211341bd],.card[data-v-211341bd]{padding:1rem}}h1[data-v-c93dfa55]{font-size:1.4rem}.filters[data-v-c93dfa55]{display:flex;flex-wrap:wrap;gap:.75rem;margin:.75rem 0 1rem}.search[data-v-c93dfa55]{flex:1 1 16rem;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem}.role[data-v-c93dfa55]{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.5rem;font-size:1rem;background:#fff}.grid[data-v-c93dfa55]{width:100%;border-collapse:collapse}.grid th[data-v-c93dfa55],.grid td[data-v-c93dfa55]{text-align:left;padding:.6rem .75rem;border-bottom:1px solid #e5e7eb}.grid th[data-v-c93dfa55]{color:#6b7280;font-size:.85rem}.grid th.sortable[data-v-c93dfa55]{cursor:pointer;-webkit-user-select:none;user-select:none}.grid th.sortable[data-v-c93dfa55]:hover{color:#2563eb}.empty[data-v-c93dfa55]{color:#6b7280}.pager[data-v-c93dfa55]{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;color:#6b7280;font-size:.9rem}.pager button[data-v-c93dfa55]{padding:.5rem .9rem;border:1px solid #d1d5db;border-radius:.5rem;background:#fff;cursor:pointer}.pager button[data-v-c93dfa55]:disabled{opacity:.5;cursor:default}.user-link[data-v-c93dfa55]{color:#3b82f6;text-decoration:none;font-weight:500}.user-link[data-v-c93dfa55]:hover{text-decoration:underline}h1[data-v-634be78b]{font-size:1.4rem}.grid[data-v-634be78b]{width:100%;border-collapse:collapse}.grid th[data-v-634be78b],.grid td[data-v-634be78b]{text-align:left;padding:.6rem .75rem;border-bottom:1px solid #e5e7eb;vertical-align:top}.grid th[data-v-634be78b]{color:#6b7280;font-size:.85rem}.grid tr.editing td[data-v-634be78b]{background:#eff6ff}.actions-col[data-v-634be78b]{width:16rem}.actions[data-v-634be78b]{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.icon[data-v-634be78b]{min-width:1.9rem;min-height:1.9rem;border:1px solid #d1d5db;border-radius:.4rem;background:#fff;cursor:pointer}.editor[data-v-634be78b]{margin-top:1.5rem;padding:1rem;border:1px solid #e5e7eb;border-radius:.75rem}.editor h2[data-v-634be78b]{margin:0 0 .75rem;font-size:1.05rem}.fields[data-v-634be78b]{display:grid;grid-template-columns:repeat(3,minmax(8rem,1fr));gap:.75rem}.fields .wide[data-v-634be78b]{grid-column:span 3}label[data-v-634be78b]{display:flex;flex-direction:column;gap:.3rem;font-weight:600;font-size:.9rem}input[data-v-634be78b],select[data-v-634be78b]{padding:.5rem;font-size:.95rem;border:1px solid #d1d5db;border-radius:.5rem}.editor-actions[data-v-634be78b]{margin-top:.9rem;display:flex;gap:.75rem;align-items:center}.editor-actions button[type=submit][data-v-634be78b]{padding:.55rem 1.2rem;font-weight:600;color:#fff;background:var(--color-primary);border:none;border-radius:.5rem;cursor:pointer}.editor-actions button[type=submit][data-v-634be78b]:disabled{opacity:.6}.link[data-v-634be78b]{background:none;border:none;color:var(--color-primary);cursor:pointer;font:inherit;padding:0}.link.danger[data-v-634be78b]{color:#b91c1c}.empty[data-v-634be78b]{color:#6b7280}.error[data-v-634be78b]{color:#b91c1c}.notice[data-v-634be78b]{color:#166534}.schema-editor[data-v-0813011d]{display:flex;flex-direction:column;gap:.6rem;border:1px solid #e5e7eb;border-radius:.5rem;padding:.75rem}.param-row[data-v-0813011d]{display:flex;flex-direction:column;gap:.2rem}.param-fields[data-v-0813011d]{display:flex;gap:.5rem;align-items:flex-end;flex-wrap:wrap}label[data-v-0813011d]{display:flex;flex-direction:column;gap:.2rem;font-size:.8rem;font-weight:600;color:#6b7280}.name[data-v-0813011d]{flex:1;min-width:7rem}.bound[data-v-0813011d]{width:5rem}.values[data-v-0813011d]{flex:2;min-width:10rem}input[data-v-0813011d],select[data-v-0813011d]{padding:.4rem .5rem;font-size:.9rem;border:1px solid #d1d5db;border-radius:.4rem}.remove[data-v-0813011d]{min-width:1.9rem;min-height:1.9rem;border:1px solid #fecaca;color:#b91c1c;background:#fff;border-radius:.4rem;cursor:pointer}.add[data-v-0813011d]{align-self:flex-start;background:none;border:1px dashed #d1d5db;border-radius:.4rem;padding:.35rem .7rem;color:var(--color-primary);cursor:pointer;font-weight:600}.row-error[data-v-0813011d]{margin:0;font-size:.8rem;color:#b91c1c}.params-form[data-v-b2faa45d]{display:flex;gap:.75rem;flex-wrap:wrap;align-items:flex-end}.field label[data-v-b2faa45d]{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem;font-weight:600}.hint[data-v-b2faa45d]{font-weight:400;color:#6b7280}.field .check[data-v-b2faa45d]{flex-direction:row;align-items:center;gap:.4rem;min-height:2.3rem}input[type=number][data-v-b2faa45d],select[data-v-b2faa45d]{width:7rem;padding:.4rem .5rem;font-size:.9rem;border:1px solid #d1d5db;border-radius:.4rem}.empty[data-v-b2faa45d]{margin:0;color:#6b7280;font-size:.85rem}h1[data-v-fea97fc5]{font-size:1.4rem}h2[data-v-fea97fc5]{font-size:1.1rem;margin:0 0 .75rem}h3[data-v-fea97fc5]{font-size:.95rem;margin:0 0 .5rem}.layout[data-v-fea97fc5]{display:flex;gap:1.5rem;align-items:flex-start}.list[data-v-fea97fc5]{width:14rem;flex-shrink:0;display:flex;flex-direction:column;gap:.4rem}.item[data-v-fea97fc5]{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:.6rem .75rem;border:1px solid #e5e7eb;border-radius:.5rem;background:#fff;cursor:pointer;font-weight:600}.item small[data-v-fea97fc5]{color:#9ca3af;font-weight:400}.item.active[data-v-fea97fc5]{border-color:var(--color-primary);background:#eff6ff}.item.new[data-v-fea97fc5]{color:var(--color-primary)}.editor[data-v-fea97fc5]{flex:1;min-width:0}form[data-v-fea97fc5]{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}label[data-v-fea97fc5]{display:flex;flex-direction:column;gap:.3rem;font-weight:600}.schema-label[data-v-fea97fc5]{gap:.4rem}input[data-v-fea97fc5],select[data-v-fea97fc5]{padding:.55rem;font-size:1rem;border:1px solid #d1d5db;border-radius:.5rem;font-family:inherit}input[readonly][data-v-fea97fc5]{background:#f3f4f6;color:#6b7280}.grades[data-v-fea97fc5]{border:1px solid #e5e7eb;border-radius:.5rem;padding:.5rem .75rem}.grades legend[data-v-fea97fc5]{font-weight:600;font-size:.85rem;color:#6b7280}.check[data-v-fea97fc5]{flex-direction:row;align-items:center;gap:.4rem;font-weight:400}button[type=submit][data-v-fea97fc5]{align-self:flex-start;padding:.6rem 1.1rem;font-weight:600;color:#fff;background:var(--color-primary);border:none;border-radius:.5rem;cursor:pointer}button[type=submit][data-v-fea97fc5]:disabled{opacity:.6}.preset[data-v-fea97fc5]{border:1px solid #e5e7eb;border-radius:.6rem;padding:.9rem 1rem;margin-bottom:1rem}.preset.new-preset[data-v-fea97fc5]{border-style:dashed}.row[data-v-fea97fc5]{flex-direction:row;display:flex;gap:.75rem}.small[data-v-fea97fc5]{width:6rem}.grow[data-v-fea97fc5]{flex:1}.preset-actions[data-v-fea97fc5]{display:flex;gap:.9rem;align-items:center}.add-preset[data-v-fea97fc5]{background:none;border:1px dashed #d1d5db;border-radius:.5rem;padding:.55rem 1rem;color:var(--color-primary);cursor:pointer;font-weight:600}.preview-grid[data-v-fea97fc5]{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.75rem;margin-top:.5rem;padding-top:.75rem;border-top:1px dashed #e5e7eb}.sample[data-v-fea97fc5]{border:1px solid #e5e7eb;border-radius:.5rem;padding:.75rem}.sample[data-v-fea97fc5] .text{font-size:1.4rem}.answer[data-v-fea97fc5]{margin:.5rem 0 0;font-size:.85rem;color:#6b7280}.link[data-v-fea97fc5]{background:none;border:none;color:var(--color-primary);cursor:pointer;font:inherit;padding:0}.link.danger[data-v-fea97fc5]{color:#b91c1c}.empty[data-v-fea97fc5]{color:#6b7280}.error[data-v-fea97fc5]{color:#b91c1c}.notice[data-v-fea97fc5]{color:#166534}.switch-wrap[data-v-fea97fc5]{display:inline-flex;flex-direction:row;align-items:center;gap:.55rem;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;margin-bottom:.75rem}.switch-input[data-v-fea97fc5]{display:none}.switch-track[data-v-fea97fc5]{display:inline-block;position:relative;width:2.4rem;height:1.35rem;background:#d1d5db;border-radius:9999px;transition:background .2s;flex-shrink:0;vertical-align:middle}.switch-input:checked+.switch-track[data-v-fea97fc5]{background:#3b82f6}.switch-thumb[data-v-fea97fc5]{position:absolute;top:.15rem;left:.15rem;width:1.05rem;height:1.05rem;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform .2s}.switch-input:checked+.switch-track .switch-thumb[data-v-fea97fc5]{transform:translate(1.05rem)}.switch-text[data-v-fea97fc5]{font-size:.9rem;font-weight:400;color:#374151}.type-name[data-v-fea97fc5]{font-weight:600}.archived[data-v-fea97fc5]{opacity:.5}.badge-archived[data-v-fea97fc5]{background:#fef2f2;color:#dc2626;font-size:.6rem;padding:.1rem .4rem;border-radius:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-top:.15rem;align-self:flex-start}.btn-restore[data-v-fea97fc5]{background:#dcfce7;color:#15803d;border:none;border-radius:6px;padding:.3rem .75rem;font-size:.8rem;cursor:pointer}.type-danger-zone[data-v-fea97fc5]{margin-top:.5rem;padding-top:.75rem;border-top:1px solid #f3f4f6}.btn-archive[data-v-fea97fc5]{background:none;border:1px solid #fca5a5;color:#dc2626;border-radius:.5rem;padding:.45rem .9rem;font-size:.85rem;cursor:pointer;font-weight:600}.btn-archive[data-v-fea97fc5]:hover{background:#fef2f2}.btn-restore-type[data-v-fea97fc5]{background:none;border:1px solid #86efac;color:#15803d;border-radius:.5rem;padding:.45rem .9rem;font-size:.85rem;cursor:pointer;font-weight:600}.btn-restore-type[data-v-fea97fc5]:hover{background:#f0fdf4}.preset-header-row[data-v-fea97fc5]{align-items:flex-end}.mobile-picker[data-v-fea97fc5]{display:none}@media (max-width: 640px){.mobile-picker[data-v-fea97fc5]{display:block;margin-bottom:1rem}.mobile-picker select[data-v-fea97fc5]{width:100%;padding:.65rem .75rem;font-size:1rem;border:1.5px solid #d1d5db;border-radius:.6rem;background:#fff;font-family:inherit;font-weight:600}.list[data-v-fea97fc5]{display:none}.layout[data-v-fea97fc5]{flex-direction:column}}h1[data-v-dcf14484]{font-size:1.4rem}.controls[data-v-dcf14484]{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}label[data-v-dcf14484]{display:flex;flex-direction:column;gap:.3rem;font-weight:600}select[data-v-dcf14484],input[data-v-dcf14484]{padding:.55rem;font-size:1rem;border:1px solid #d1d5db;border-radius:.5rem}button[data-v-dcf14484]{padding:.6rem 1.1rem;font-weight:600;color:#fff;background:var(--color-primary);border:none;border-radius:.5rem;cursor:pointer}button[data-v-dcf14484]:disabled{opacity:.6}.samples[data-v-dcf14484]{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1rem}.sample[data-v-dcf14484]{border:1px solid #e5e7eb;border-radius:.6rem;padding:1rem}.answer[data-v-dcf14484]{margin:1rem 0 .25rem}.choices[data-v-dcf14484]{margin:0;color:#6b7280;font-size:.9rem}.error[data-v-dcf14484]{color:#b91c1c}.page-title[data-v-c3b48b4b]{font-size:1.4rem;font-weight:800;color:#1e1b4b;margin:0 0 1.5rem}.state-msg[data-v-c3b48b4b]{color:#64748b;font-size:.95rem}.state-msg.error[data-v-c3b48b4b]{color:#dc2626}.stats-grid[data-v-c3b48b4b]{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1rem}.stat-card[data-v-c3b48b4b]{position:relative;overflow:hidden;background:#fff;border:1px solid #e9edf5;border-radius:1rem;padding:1.35rem 1.5rem;display:flex;flex-direction:column;gap:.4rem;box-shadow:0 1px 2px #0f172a0a;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.stat-card[data-v-c3b48b4b]:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--accent);opacity:.9}.stat-card[data-v-c3b48b4b]:hover{transform:translateY(-3px);box-shadow:0 10px 24px #0f172a1a;border-color:color-mix(in srgb,var(--accent) 35%,#e9edf5)}.stat-icon[data-v-c3b48b4b]{display:inline-flex;align-items:center;justify-content:center;width:2.6rem;height:2.6rem;border-radius:.75rem;margin-bottom:.25rem;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,#fff)}.stat-icon svg[data-v-c3b48b4b]{width:1.5rem;height:1.5rem}.stat-value[data-v-c3b48b4b]{font-size:2.1rem;font-weight:800;color:#1e1b4b;line-height:1;font-variant-numeric:tabular-nums}.stat-label[data-v-c3b48b4b]{font-size:.8rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.week-card[data-v-c3b48b4b]{margin-top:1rem;border-radius:1rem;padding:1.5rem 1.75rem;color:#fff;background:linear-gradient(120deg,#2563eb,#7c3aed 55%,#9333ea);box-shadow:0 12px 28px #2563eb47}.week-head[data-v-c3b48b4b]{display:flex;align-items:center;gap:.5rem;margin-bottom:1.1rem}.week-dot[data-v-c3b48b4b]{width:.55rem;height:.55rem;border-radius:50%;background:#34d399;box-shadow:0 0 0 4px #34d39940}.week-title[data-v-c3b48b4b]{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#ffffffd9}.week-stats[data-v-c3b48b4b]{display:flex;flex-wrap:wrap;gap:2.5rem}.week-item[data-v-c3b48b4b]{display:flex;flex-direction:column;gap:.3rem}.week-value[data-v-c3b48b4b]{font-size:2.1rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.week-label[data-v-c3b48b4b]{font-size:.78rem;font-weight:500;color:#ffffffc7}.page-title[data-v-84e9d317]{font-size:1.4rem;font-weight:800;color:#1e1b4b;margin:0 0 1.5rem}.loading[data-v-84e9d317]{color:#64748b;font-size:.95rem}.error[data-v-84e9d317]{color:#dc2626;font-size:.95rem}.card[data-v-84e9d317]{background:#fff;border-radius:12px;padding:1.25rem 1.5rem;box-shadow:0 1px 4px #0000000f;border:1px solid #e2e8f0}.mb[data-v-84e9d317]{margin-bottom:1.5rem}.section-label[data-v-84e9d317]{text-transform:uppercase;font-size:.7rem;letter-spacing:.1em;color:#64748b;margin:0 0 .75rem;font-weight:700}.daily-chart[data-v-84e9d317]{display:flex;gap:6px;align-items:flex-end;height:100px}.day-col[data-v-84e9d317]{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}.bar-wrap[data-v-84e9d317]{height:80px;display:flex;align-items:flex-end;width:100%}.bar[data-v-84e9d317]{width:100%;background:#3b82f6;border-radius:3px 3px 0 0;min-height:2px}.day-label[data-v-84e9d317]{font-size:.6rem;color:#94a3b8}.metrics-table[data-v-84e9d317]{width:100%;border-collapse:collapse}.metrics-table th[data-v-84e9d317],.metrics-table td[data-v-84e9d317]{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #e2e8f0}.metrics-table th[data-v-84e9d317]{font-size:.75rem;color:#64748b;font-weight:600}.num[data-v-84e9d317]{text-align:right;font-variant-numeric:tabular-nums}.acc[data-v-84e9d317]{position:relative;width:120px}.acc-cell[data-v-84e9d317]{position:relative;display:block}.acc-bar[data-v-84e9d317]{position:absolute;left:0;top:0;bottom:0;background:#dcfce7;z-index:0}.acc-text[data-v-84e9d317]{position:relative;z-index:1}.muted[data-v-84e9d317]{color:#94a3b8}.page-title[data-v-a0a5eeca]{font-size:1.4rem;font-weight:800;color:#1e1b4b;margin:0 0 1.5rem}.state-msg[data-v-a0a5eeca]{color:#64748b;font-size:.95rem}.state-msg.error[data-v-a0a5eeca]{color:#dc2626}.audit-table[data-v-a0a5eeca]{width:100%;border-collapse:collapse}.audit-table th[data-v-a0a5eeca],.audit-table td[data-v-a0a5eeca]{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #e2e8f0;font-size:.88rem}.audit-table th[data-v-a0a5eeca]{font-size:.75rem;color:#64748b;font-weight:600}.date-cell[data-v-a0a5eeca]{white-space:nowrap;color:#64748b;font-size:.82rem}.action-tag[data-v-a0a5eeca]{display:inline-block;padding:.15rem .45rem;background:#ede9fe;color:#5b21b6;border-radius:4px;font-size:.78rem;font-weight:700;font-family:monospace}.entity-cell[data-v-a0a5eeca]{font-family:monospace;font-size:.82rem;color:#475569}.num[data-v-a0a5eeca]{text-align:right;font-variant-numeric:tabular-nums}.details-cell[data-v-a0a5eeca]{max-width:260px}.details-summary[data-v-a0a5eeca]{cursor:pointer;font-size:.8rem;color:#3b82f6;font-weight:500;list-style:none}.details-summary[data-v-a0a5eeca]::-webkit-details-marker{display:none}.details-summary[data-v-a0a5eeca]:before{content:"+ "}details[open] .details-summary[data-v-a0a5eeca]:before{content:"- "}.details-pre[data-v-a0a5eeca]{margin:.4rem 0 0;font-size:.75rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;padding:.5rem;white-space:pre-wrap;word-break:break-all;color:#334155;max-height:200px;overflow-y:auto}.muted[data-v-a0a5eeca]{color:#94a3b8}.pager[data-v-a0a5eeca]{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;color:#6b7280;font-size:.9rem}.pager button[data-v-a0a5eeca]{padding:.5rem .9rem;border:1px solid #d1d5db;border-radius:.5rem;background:#fff;cursor:pointer;font-size:.88rem}.pager button[data-v-a0a5eeca]:disabled{opacity:.5;cursor:default}.page-header[data-v-bf87020a]{margin-bottom:1.25rem}.back-link[data-v-bf87020a]{display:inline-block;font-size:.88rem;color:#3b82f6;text-decoration:none;margin-bottom:.5rem;font-weight:600}.back-link[data-v-bf87020a]:hover{text-decoration:underline}.page-title[data-v-bf87020a]{font-size:1.4rem;font-weight:800;color:#1e1b4b;margin:0}.state-msg[data-v-bf87020a]{color:#64748b;font-size:.95rem}.state-msg.error[data-v-bf87020a]{color:#dc2626}.card[data-v-bf87020a]{background:#fff;border-radius:12px;padding:1.25rem 1.5rem;box-shadow:0 1px 4px #0000000f;border:1px solid #e2e8f0}.mb[data-v-bf87020a]{margin-bottom:1.5rem}.section-label[data-v-bf87020a]{text-transform:uppercase;font-size:.7rem;letter-spacing:.1em;color:#64748b;margin:0 0 .75rem;font-weight:700}.user-header[data-v-bf87020a]{display:flex;flex-wrap:wrap;gap:1.5rem}.user-field[data-v-bf87020a]{display:flex;flex-direction:column;gap:.25rem}.field-label[data-v-bf87020a]{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;font-weight:600}.field-value[data-v-bf87020a]{font-size:.95rem;color:#1e1b4b;font-weight:500}.badge[data-v-bf87020a]{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.badge--admin[data-v-bf87020a]{background:#ede9fe;color:#5b21b6}.badge--parent[data-v-bf87020a]{background:#e0f2fe;color:#0369a1}.badge--yes[data-v-bf87020a]{background:#dcfce7;color:#15803d}.badge--no[data-v-bf87020a]{background:#fee2e2;color:#b91c1c}.data-table[data-v-bf87020a]{width:100%;border-collapse:collapse}.data-table th[data-v-bf87020a],.data-table td[data-v-bf87020a]{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #e2e8f0}.data-table th[data-v-bf87020a]{font-size:.75rem;color:#64748b;font-weight:600}.num[data-v-bf87020a]{text-align:right;font-variant-numeric:tabular-nums}.child-name[data-v-bf87020a]{display:flex;align-items:center;gap:.5rem;font-weight:500}.avatar[data-v-bf87020a]{font-size:1.2rem;line-height:1}.vocab[data-v-47e7149d]{max-width:980px}h1[data-v-47e7149d]{margin:0 0 .25rem}.lead[data-v-47e7149d]{color:#555;margin:0 0 1rem}.tabs[data-v-47e7149d]{display:flex;gap:.5rem;margin-bottom:1rem}.tabs button[data-v-47e7149d]{padding:.5rem 1rem;border:1px solid #bfdbfe;background:#fff;border-radius:.5rem;cursor:pointer}.tabs button.active[data-v-47e7149d]{background:#2563eb;color:#fff;border-color:#2563eb}.card[data-v-47e7149d]{background:#fff;border:1px solid #e5e7eb;border-radius:.75rem;padding:1rem 1.25rem;margin-bottom:1.25rem}.form h2[data-v-47e7149d]{margin:0 0 .75rem;font-size:1.1rem}.row[data-v-47e7149d]{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.5rem}label[data-v-47e7149d]{display:flex;flex-direction:column;font-size:.85rem;color:#374151;gap:.25rem}label.grow[data-v-47e7149d]{flex:1 1 16rem}input[data-v-47e7149d],select[data-v-47e7149d]{padding:.45rem .6rem;border:1px solid #d1d5db;border-radius:.4rem;font-size:1rem}.actions[data-v-47e7149d]{display:flex;gap:.5rem;margin-top:.5rem}button.primary[data-v-47e7149d]{background:#2563eb;color:#fff;border:none;padding:.5rem 1.25rem;border-radius:.5rem;cursor:pointer}button.primary[data-v-47e7149d]:disabled{opacity:.5;cursor:default}.actions button[data-v-47e7149d]:not(.primary){background:#f3f4f6;border:1px solid #d1d5db;border-radius:.5rem;padding:.5rem 1rem;cursor:pointer}.hint[data-v-47e7149d]{font-size:.85rem;color:#555;margin:.25rem 0}.hint.bad[data-v-47e7149d]{color:#b91c1c}.preview[data-v-47e7149d]{font-weight:700;color:#1e1b4b}.list[data-v-47e7149d]{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;overflow:hidden}.list th[data-v-47e7149d],.list td[data-v-47e7149d]{text-align:left;padding:.5rem .75rem;border-bottom:1px solid #f1f1f1;font-size:.95rem}.list .word[data-v-47e7149d]{font-weight:600;color:#1e1b4b}.list tr.unreviewed[data-v-47e7149d]{background:#fffbeb}.toggle[data-v-47e7149d]{background:none;border:none;font-size:1.1rem;cursor:pointer}.row-actions[data-v-47e7149d]{display:flex;gap:.4rem}.row-actions button[data-v-47e7149d]{background:#eff6ff;border:1px solid #bfdbfe;border-radius:.4rem;padding:.3rem .6rem;cursor:pointer;font-size:.85rem}.row-actions button.danger[data-v-47e7149d]{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.notice[data-v-47e7149d]{color:#047857;margin:0 0 .5rem}.form-error[data-v-47e7149d]{color:#b91c1c;margin:0 0 .5rem}.muted[data-v-47e7149d]{color:#6b7280}.picker-page[data-v-9e077d2f]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;background:linear-gradient(160deg,#1e1b4b,#1e3a8a 40%,#1d4ed8);overflow:hidden;position:relative}.deco[data-v-9e077d2f]{position:absolute;font-weight:900;color:#ffffff0f;pointer-events:none;-webkit-user-select:none;user-select:none;line-height:1}.deco-1[data-v-9e077d2f]{font-size:8rem;top:5%;left:3%;animation:float1-9e077d2f 8s ease-in-out infinite}.deco-2[data-v-9e077d2f]{font-size:6rem;top:10%;right:6%;animation:float2-9e077d2f 10s ease-in-out infinite}.deco-3[data-v-9e077d2f]{font-size:10rem;bottom:8%;left:8%;animation:float1-9e077d2f 12s ease-in-out infinite reverse}.deco-4[data-v-9e077d2f]{font-size:7rem;bottom:12%;right:4%;animation:float2-9e077d2f 9s ease-in-out infinite reverse}.deco-5[data-v-9e077d2f]{font-size:5rem;top:40%;left:1%;animation:float1-9e077d2f 11s ease-in-out infinite}.deco-6[data-v-9e077d2f]{font-size:9rem;top:50%;right:2%;animation:float2-9e077d2f 7s ease-in-out infinite}.deco-7[data-v-9e077d2f]{font-size:6rem;top:25%;left:20%;animation:float1-9e077d2f 13s ease-in-out infinite reverse}@keyframes float1-9e077d2f{0%,to{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-20px) rotate(5deg)}}@keyframes float2-9e077d2f{0%,to{transform:translateY(0) rotate(3deg)}50%{transform:translateY(15px) rotate(-3deg)}}.picker-center[data-v-9e077d2f]{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:1.25rem;width:100%;max-width:56rem}.picker-logo[data-v-9e077d2f]{font-size:1.1rem;font-weight:800;color:#ffffffb3;letter-spacing:.02em}.picker-title[data-v-9e077d2f]{font-size:clamp(2.25rem,7vw,3.5rem);font-weight:900;color:#fff;margin:0;text-align:center;letter-spacing:-.03em;text-shadow:0 2px 20px rgba(0,0,0,.3)}.picker-subtitle[data-v-9e077d2f]{margin:0;font-size:1.05rem;color:#ffffffa6;text-align:center}.loading[data-v-9e077d2f]{color:#ffffffb3;font-size:1rem;margin:0}.loading-dots[data-v-9e077d2f]{display:inline-flex;gap:.4rem}.loading-dots span[data-v-9e077d2f]{display:inline-block;width:.6rem;height:.6rem;background:#fff;border-radius:50%;animation:pulse-dot-9e077d2f 1.2s ease-in-out infinite}.loading-dots span[data-v-9e077d2f]:nth-child(2){animation-delay:.2s}.loading-dots span[data-v-9e077d2f]:nth-child(3){animation-delay:.4s}@keyframes pulse-dot-9e077d2f{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.picker-error[data-v-9e077d2f]{color:#fca5a5;font-size:1rem;font-weight:600;background:#dc262626;padding:.75rem 1.5rem;border-radius:.75rem;border:1px solid rgba(252,165,165,.3)}.picker-grid[data-v-9e077d2f]{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center;width:100%}.picker-card[data-v-9e077d2f]{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;width:160px;height:190px;border:none;border-radius:2rem;cursor:pointer;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s ease;overflow:hidden;-webkit-tap-highlight-color:transparent}.picker-card[data-v-9e077d2f]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff40;opacity:0;transition:opacity .15s;border-radius:inherit}.picker-card[data-v-9e077d2f]:hover{transform:translateY(-8px) scale(1.05)}.picker-card[data-v-9e077d2f]:hover:before{opacity:1}.picker-card--pressed[data-v-9e077d2f]{transform:scale(.94)!important}.picker-avatar[data-v-9e077d2f]{font-size:4rem;line-height:1;filter:drop-shadow(0 3px 6px rgba(0,0,0,.2));z-index:1}.picker-name[data-v-9e077d2f]{font-size:1.15rem;font-weight:900;color:#1e293b;text-align:center;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;z-index:1;text-shadow:0 1px 2px rgba(255,255,255,.5)}.picker-tap-hint[data-v-9e077d2f]{font-size:.7rem;font-weight:700;color:#1e293b8c;letter-spacing:.06em;text-transform:uppercase;z-index:1}.picker-empty[data-v-9e077d2f]{color:#fff9;font-size:1rem;text-align:center;line-height:1.6}.picker-back[data-v-9e077d2f]{color:#ffffff80;font-size:.82rem;text-decoration:none;margin-top:.5rem;transition:color .15s}.picker-back[data-v-9e077d2f]:hover{color:#ffffffd9}@media (prefers-reduced-motion: reduce){.deco[data-v-9e077d2f]{animation:none}.picker-card[data-v-9e077d2f],.picker-card[data-v-9e077d2f]:hover,.picker-card--pressed[data-v-9e077d2f]{transform:none!important}.loading-dots span[data-v-9e077d2f]{animation:none}}@media (max-width: 480px){.picker-card[data-v-9e077d2f]{width:140px;height:165px;border-radius:1.5rem}.picker-avatar[data-v-9e077d2f]{font-size:3.25rem}}.subject-page[data-v-e0af605f]{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;background:linear-gradient(160deg,#eff6ff,#f0fdf4);gap:2rem}.subject-title[data-v-e0af605f]{font-size:2.5rem;font-weight:900;color:#1e293b;margin:0;text-align:center;letter-spacing:-.02em;max-width:40rem}.subject-error[data-v-e0af605f]{color:#dc2626;font-size:1rem;font-weight:600;background:#fef2f2;padding:.75rem 1.25rem;border-radius:.75rem;border:1px solid #fecaca}.subject-grid[data-v-e0af605f]{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center;max-width:56rem}.subject-card[data-v-e0af605f]{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;width:180px;height:200px;border:none;border-radius:1.75rem;cursor:pointer;box-shadow:0 4px 16px #0000001a;transition:transform .15s ease,box-shadow .15s ease}.subject-card[data-v-e0af605f]:hover{transform:translateY(-4px) scale(1.04);box-shadow:0 10px 28px #00000029}.subject-card[data-v-e0af605f]:active{transform:scale(.97)}.subject-badge[data-v-e0af605f]{position:absolute;top:.75rem;right:.75rem;background:#1e293b;color:#fff;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:.25rem .6rem;border-radius:999px}.subject-emoji[data-v-e0af605f]{font-size:4rem;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.subject-label[data-v-e0af605f]{font-size:1.3rem;font-weight:800;color:#1e293b;text-align:center}@media (prefers-reduced-motion: reduce){.subject-card[data-v-e0af605f]:hover,.subject-card[data-v-e0af605f]:active{transform:none}}:root{--color-text: #1e293b;--color-text-muted: #64748b;--color-bg: #eff6ff;--color-surface: #ffffff;--color-primary: #2563eb;--color-primary-dark: #1e40af;--color-primary-light: #eff6ff;--color-success: #16a34a;--color-success-light: #dcfce7;--color-error: #dc2626;--color-error-light: #fef2f2;--color-warning: #f59e0b;--color-border: #e2e8f0;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow: 0 4px 16px rgba(37, 99, 235, .1), 0 2px 6px rgba(0, 0, 0, .05);--shadow-lg: 0 8px 32px rgba(37, 99, 235, .14), 0 4px 12px rgba(0, 0, 0, .08);--radius: 1rem;--radius-sm: .625rem;--radius-lg: 1.5rem;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:100vh}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}
