html,:root{scrollbar-gutter:stable}:root{--font-sans: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", monospace;--font-serif: "Playfair Display", serif;--bg-top-bar: #1d4ed8;--text-top-bar: #ffffff;--bg-header-banner: #0f172a;--text-header-title: #ffffff;--text-header-by: #93c5fd;--text-header-sub: #94a3b8;--bg-app: #edf2f7;--bg-card: #ffffff;--bg-card-secondary: #f8fafc;--bg-input: #ffffff;--border-color: #cbd5e1;--border-light: #e2e8f0;--border-focus: #2563eb;--text-main: #0f172a;--text-title: #0a192f;--text-muted: #64748b;--text-dim: #94a3b8;--accent-orange: #f59e0b;--accent-blue: #2563eb;--accent-blue-hover: #1d4ed8;--accent-blue-light: #eff6ff;--accent-blue-border: #bfdbfe;--accent-crimson: #dc2626;--accent-crimson-hover: #b91c1c;--accent-gold: #d97706;--btn-dark: #0f172a;--btn-dark-hover: #1e293b;--btn-green: #059669;--btn-green-hover: #047857;--btn-gray: #64748b;--btn-gray-hover: #475569;--card-shadow: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04)}[data-theme=studio-scuro]{--bg-top-bar: #1e293b;--text-top-bar: #cbd5e1;--bg-header-banner: #0b0f19;--bg-app: #090d16;--bg-card: #111827;--bg-card-secondary: #1a2234;--bg-input: #0c121e;--border-color: #233044;--border-light: #1c2738;--border-focus: #3b82f6;--text-main: #f8fafc;--text-title: #f1f5f9;--text-muted: #94a3b8;--text-dim: #64748b;--accent-blue: #3b82f6;--accent-blue-hover: #2563eb;--accent-blue-light: rgba(59, 130, 246, .15);--accent-blue-border: #3b82f6}[data-theme=studio-chiaro]{--bg-top-bar: #2563eb;--text-top-bar: #ffffff;--bg-header-banner: #1e3a8a;--bg-app: #f1f5f9;--bg-card: #ffffff;--bg-card-secondary: #f8fafc;--bg-input: #ffffff;--border-color: #cbd5e1;--border-light: #e2e8f0;--border-focus: #1d4ed8;--text-main: #1e293b;--text-title: #0f172a;--text-muted: #475569;--text-dim: #64748b;--accent-blue: #1d4ed8;--accent-blue-hover: #1e40af;--accent-blue-light: #eff6ff;--accent-blue-border: #bfdbfe}[data-theme=cobalto-scuro]{--bg-top-bar: #1e1b4b;--text-top-bar: #c7d2fe;--bg-header-banner: #0f172a;--bg-app: #020617;--bg-card: #0f172a;--bg-card-secondary: #1e293b;--bg-input: #020617;--border-color: #334155;--border-light: #1e293b;--border-focus: #6366f1;--text-main: #f8fafc;--text-title: #e0e7ff;--text-muted: #94a3b8;--text-dim: #64748b;--accent-blue: #6366f1;--accent-blue-hover: #4f46e5;--accent-blue-light: rgba(99, 102, 241, .15);--accent-blue-border: #6366f1}[data-theme=terminale-amber]{--bg-top-bar: #d97706;--text-top-bar: #ffffff;--bg-header-banner: #18181b;--bg-app: #18181b;--bg-card: #27272a;--bg-card-secondary: #3f3f46;--bg-input: #18181b;--border-color: #52525b;--border-light: #3f3f46;--border-focus: #f59e0b;--text-main: #fafafa;--text-title: #fef08a;--text-muted: #a1a1aa;--text-dim: #71717a;--accent-blue: #f59e0b;--accent-blue-hover: #d97706;--accent-blue-light: rgba(245, 158, 11, .15);--accent-blue-border: #f59e0b}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-main);min-height:100vh;display:flex;flex-direction:column}.app-root{display:flex;flex-direction:column;min-height:100vh}.app-header-banner{background-color:var(--bg-header-banner);padding:.65rem 1.75rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;border-bottom:2px solid var(--border-color);box-shadow:0 4px 12px #0000001a;position:sticky;top:0;z-index:100;min-height:64px;height:auto;box-sizing:border-box}.banner-left{display:flex;flex-direction:column;gap:.2rem;flex-shrink:0;min-width:0}.banner-title-line{display:flex;align-items:baseline;gap:.75rem;white-space:nowrap}.banner-title-text{font-size:1.35rem;font-weight:800;color:var(--text-header-title);letter-spacing:-.02em;white-space:nowrap}.banner-by-text{font-size:.8rem;font-weight:600;color:var(--text-header-by);white-space:nowrap;flex-shrink:0}.banner-subtitle-text{font-size:.825rem;color:var(--text-header-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:540px}.header-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;justify-content:flex-end;min-width:0}.header-dropdown-wrap,.header-user-menu{position:relative;display:inline-flex;align-items:center}.header-combo-btn{display:inline-flex;align-items:center;gap:.5rem;height:36px;padding:0 .85rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:.78rem;font-weight:700;cursor:pointer;transition:all .15s ease;white-space:nowrap}.header-combo-btn:hover,.header-combo-btn.active{background:#ffffff2e;border-color:#ffffff59}.header-combo-caret{font-size:.7rem;opacity:.8;margin-left:2px;transition:transform .2s ease}.header-combo-btn.active .header-combo-caret,.header-user-badge-btn.active .header-combo-caret{transform:rotate(180deg)}.header-user-badge-btn{display:inline-flex;align-items:center;gap:.5rem;height:36px;padding:0 .75rem 0 .35rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.22);border-radius:8px;color:#fff;cursor:pointer;transition:all .15s ease;white-space:nowrap}.header-user-badge-btn:hover,.header-user-badge-btn.active{background:#ffffff2e;border-color:#fff6}.user-badge-avatar{width:26px!important;height:26px!important;border-radius:50%!important;object-fit:cover!important;display:block!important;flex-shrink:0!important}.user-badge-initial{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--teal-dark, #0b7d70);color:#fff;font-weight:700;font-size:.75rem;flex-shrink:0}.user-badge-name{font-size:.8rem;font-weight:700;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-badge-quota{background:#f59e0b40;border:1px solid rgba(245,158,11,.5);color:#fef08a;padding:1px 7px;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.02em}.header-dropdown-panel{position:absolute;top:calc(100% + 8px);right:0;min-width:280px;background:#0f172a;border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:6px;box-shadow:0 16px 40px #00000080,0 0 0 1px #ffffff0f;z-index:1200;animation:headerDropdownFade .15s ease-out}.header-dropdown-panel.resources-dropdown{min-width:320px}@keyframes headerDropdownFade{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.dropdown-user-header{padding:10px 12px 8px;display:flex;flex-direction:column;gap:2px}.dropdown-user-header strong{color:#fff;font-size:.85rem;font-weight:700}.dropdown-user-header small{color:#94a3b8;font-size:.75rem;word-break:break-all}.dropdown-sub-status{margin-top:6px;padding:4px 8px;border-radius:6px;background:#f59e0b1f;border:1px solid rgba(245,158,11,.25);color:#fef08a;display:flex;justify-content:space-between;align-items:center;font-size:.72rem}.dropdown-sub-status b{color:#fff}.header-dropdown-divider{height:1px;background:#ffffff1a;margin:6px 0}.header-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:8px;border:none;background:transparent;color:#e2e8f0;text-align:left;cursor:pointer;text-decoration:none;font-family:inherit;transition:all .12s ease;box-sizing:border-box}.header-dropdown-item:hover{background:#ffffff1a;color:#fff}.header-dropdown-item.logout:hover{background:#ef44442e}.dropdown-item-icon{font-size:1.15rem;line-height:1;flex-shrink:0}.dropdown-item-content{display:flex;flex-direction:column;gap:1px;min-width:0}.dropdown-item-content strong{font-size:.8rem;font-weight:700;color:inherit;line-height:1.25}.dropdown-item-content small{font-size:.7rem;color:#94a3b8;line-height:1.3}.app-google-auth.google-auth-button{height:36px;padding:0 .85rem;border-color:#fff3;border-radius:8px;color:#fff;background:#ffffff1a;box-shadow:none;font-size:.78rem;box-sizing:border-box}.app-google-auth.google-auth-button:hover{background:#ffffff2b;box-shadow:none}.google-user-chip,.app-google-auth.google-user-chip{display:inline-flex;align-items:center;gap:8px;padding:0 10px 0 4px;border-radius:8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.18);font-size:.78rem;color:#fff;height:36px;box-sizing:border-box}.google-user-chip img,.google-user-avatar,.app-google-auth.google-user-chip img{width:26px!important;height:26px!important;max-width:26px!important;max-height:26px!important;border-radius:50%!important;object-fit:cover!important;display:block!important;flex-shrink:0!important}.google-user-initial{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--teal-dark, #0b7d70);color:#fff;font-weight:700;font-size:.72rem;flex-shrink:0}.google-user-name,.app-google-auth .google-user-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:600;color:#fff;line-height:1}.google-user-chip button,.app-google-auth.google-user-chip button{background:transparent;border:none;border-left:1px solid rgba(255,255,255,.22);padding:2px 0 2px 8px;margin-left:2px;color:#ffffffbf;font-size:.72rem;font-weight:600;cursor:pointer;transition:color .2s ease;line-height:1}.google-user-chip button:hover,.app-google-auth.google-user-chip button:hover{color:#f87171}.app-google-auth.google-auth-loading{color:#fff}.status-badge{display:flex;align-items:center;gap:.4rem;padding:.35rem .65rem;background:#ffffff14;border-radius:9999px;font-size:.75rem;font-weight:600;color:#fff;border:1px solid rgba(255,255,255,.12)}.status-dot{width:8px;height:8px;border-radius:50%;background-color:#ef4444}.status-dot.connected,.status-dot.online{background-color:#10b981;box-shadow:0 0 8px #10b981}.status-dot.connecting{background-color:#f59e0b}.tool-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;height:36px;padding:0 .85rem;background:#ffffff14;border:1px solid rgba(255,255,255,.18);border-radius:8px;color:#fff;font-size:.78rem;font-weight:700;cursor:pointer;transition:all .15s ease;white-space:nowrap;box-sizing:border-box}.tool-btn:hover{background:#ffffff2e;border-color:#ffffff4d}.theme-select{height:36px;padding:0 .75rem;background:#ffffff14;border:1px solid rgba(255,255,255,.18);border-radius:8px;color:#fff;font-size:.78rem;font-weight:700;cursor:pointer;outline:none;white-space:nowrap;box-sizing:border-box}.theme-select option{background:#0f172a;color:#fff}.header-btn-action{display:inline-flex;align-items:center;gap:.45rem;height:36px;padding:0 .85rem;background:#ffffff1f;border:1px solid rgba(255,255,255,.22);border-radius:8px;color:#fff;font-size:.82rem;font-weight:700;cursor:pointer;transition:all .18s ease;white-space:nowrap;box-sizing:border-box}.header-btn-action:hover:not(:disabled){background:#ffffff38;border-color:#fff6;transform:translateY(-1px)}.header-btn-action:disabled{opacity:.45;cursor:not-allowed}.header-btn-action.save-btn{background:linear-gradient(135deg,#10b981,#059669);border-color:#34d399;box-shadow:0 2px 6px #10b98159}.header-btn-action.save-btn:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);box-shadow:0 3px 8px #10b98173}.header-btn-action.archive-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#60a5fa;box-shadow:0 2px 6px #2563eb59}.header-btn-action.archive-btn:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 3px 8px #2563eb73}.header-badge-count{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#1e3a8a;font-size:.7rem;font-weight:800;min-width:18px;height:18px;padding:0 4px;border-radius:9px;margin-left:2px}.hub-btn-save-quick{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;font-size:.82rem;font-weight:700;border-radius:7px;border:1px solid #10b981;background:#ecfdf5;color:#065f46;cursor:pointer;transition:all .15s ease}.hub-btn-save-quick:hover:not(:disabled){background:#10b981;color:#fff;box-shadow:0 2px 8px #10b9814d}.hub-btn-save-quick:disabled{opacity:.5;cursor:not-allowed}.hub-btn-archive{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;font-size:.82rem;font-weight:700;border-radius:7px;border:1px solid #cbd5e1;background:#f8fafc;color:#1e293b;cursor:pointer;transition:all .15s ease}.hub-btn-archive:hover{background:#e2e8f0;border-color:#94a3b8}.history-btn-group{display:inline-flex;align-items:center;gap:2px;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:6px;padding:2px}.btn-history-step{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;font-size:1rem;font-weight:700;cursor:pointer;color:#334155;transition:background .15s}.btn-history-step:hover:not(:disabled){background:#e2e8f0}.btn-history-step:disabled{opacity:.35;cursor:not-allowed}.main-layout{display:grid;grid-template-columns:460px 1fr;gap:1.5rem;padding:1.5rem 1.75rem;max-width:1720px;margin:0 auto;width:100%}@media(max-width:1150px){.main-layout{grid-template-columns:1fr}}.sidebar-panel{display:flex;flex-direction:column;gap:1.15rem}.card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:1rem;box-shadow:var(--card-shadow)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.4rem;border-bottom:1px solid var(--border-light)}.card-title{font-size:.9rem;font-weight:700;color:var(--text-title);text-transform:uppercase;letter-spacing:.04em}.track-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.track-tab{padding:.55rem .65rem;background:var(--bg-card-secondary);border:1px solid var(--border-color);border-radius:6px;font-size:.775rem;font-weight:600;color:var(--text-muted);cursor:pointer;text-align:left;transition:all .15s ease}.track-tab:hover{background:var(--accent-blue-light);border-color:var(--accent-blue-border);color:var(--accent-blue)}.track-tab.active{background:var(--accent-blue-light);border-color:var(--accent-blue);color:var(--accent-blue);font-weight:700}.year-filter-tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.65rem}.year-tab-btn{flex:1;min-width:60px;padding:.4rem .5rem;background:var(--bg-card-secondary);border:1px solid var(--border-color);border-radius:5px;font-size:.75rem;font-weight:600;color:var(--text-muted);cursor:pointer;text-align:center;transition:all .15s ease}.year-tab-btn:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.year-tab-btn.active{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff;font-weight:700}.topics-actions{display:flex;flex-direction:column;gap:.45rem;margin-bottom:.65rem}.search-input{width:100%;padding:.5rem .75rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:6px;font-size:.8rem;color:var(--text-main);outline:none}.search-input:focus{border-color:var(--accent-blue)}.batch-buttons{display:flex;gap:.4rem}.btn-secondary-sm{padding:.3rem .6rem;background:var(--bg-card-secondary);border:1px solid var(--border-color);border-radius:5px;font-size:.725rem;font-weight:600;color:var(--text-muted);cursor:pointer}.btn-secondary-sm:hover{background:var(--border-light);color:var(--text-main)}.topics-scroll-list{max-height:290px;overflow-y:auto;display:flex;flex-direction:column;gap:.35rem;padding-right:.25rem}.topic-item{display:flex;align-items:center;gap:.65rem;padding:.55rem .65rem;background:var(--bg-card-secondary);border:1px solid var(--border-light);border-radius:6px;cursor:pointer;transition:all .12s ease}.topic-item:hover{border-color:var(--accent-blue-border);background:var(--accent-blue-light)}.topic-item.selected{border-color:var(--accent-blue);background:var(--accent-blue-light)}.topic-checkbox{margin:0;accent-color:var(--accent-blue);cursor:pointer}.topic-info{display:flex;flex-direction:column;gap:.15rem;flex:1}.topic-meta-line{display:flex;align-items:center;gap:.35rem}.badge-year{font-size:.675rem;font-weight:700;padding:.1rem .35rem;border-radius:4px;background:var(--accent-blue);color:#fff}.badge-period{font-size:.65rem;font-weight:700;padding:.1rem .35rem;border-radius:4px}.badge-period-trimestre{background:#0284c7;color:#fff}.badge-period-pentamestre{background:#d97706;color:#fff}.badge-timing{font-size:.65rem;font-weight:600;padding:.1rem .35rem;border-radius:4px;background:#0f172a12;color:var(--text-muted)}.badge-minima{font-size:.65rem;font-weight:700;padding:.1rem .35rem;border-radius:4px;background:#16a34a;color:#fff}.prof-curriculum-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0 .65rem;padding:.45rem .6rem;background:#0d94880f;border:1px solid rgba(13,148,136,.2);border-radius:6px}.period-filter-tabs{display:flex;gap:.3rem}.period-tab-btn{font-size:.72rem;font-weight:600;padding:.25rem .55rem;border-radius:4px;border:1px solid #cbd5e1;background:#fff;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.period-tab-btn:hover{background:#f1f5f9;color:var(--text-main)}.period-tab-btn.active{background:#0d9488;border-color:#0d9488;color:#fff;font-weight:700}.btn-minima-toggle{font-size:.72rem;font-weight:600;padding:.25rem .6rem;border-radius:4px;border:1px solid #16a34a;background:#fff;color:#16a34a;cursor:pointer;transition:all .15s ease;margin-left:auto}.btn-minima-toggle:hover{background:#16a34a14}.btn-minima-toggle.active{background:#16a34a;color:#fff;font-weight:700}.topic-category{font-size:.7rem;font-weight:600;color:var(--text-muted)}.topic-title{font-size:.8rem;font-weight:600;color:var(--text-main);line-height:1.25}.config-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.form-group{display:flex;flex-direction:column;gap:.25rem}.form-group label{font-size:.75rem;font-weight:600;color:var(--text-muted)}.form-select,.form-input{padding:.45rem .6rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:6px;font-size:.8rem;color:var(--text-main);outline:none}.form-select:focus,.form-input:focus{border-color:var(--accent-blue)}.seed-row{display:flex;gap:.35rem}.seed-row input{flex:1}.action-buttons-group{display:flex;flex-direction:column;gap:.5rem}.btn-primary{padding:.75rem 1rem;background:var(--accent-blue);color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:700;cursor:pointer;display:flex;justify-content:center;align-items:center;gap:.5rem;box-shadow:0 2px 6px #2563eb40;transition:all .15s ease}.btn-primary:hover{background:var(--accent-blue-hover);box-shadow:0 4px 12px #2563eb59}.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.btn-secondary{padding:.6rem .75rem;background:var(--bg-card-secondary);border:1px solid var(--border-color);color:var(--text-main);border-radius:6px;font-size:.775rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.35rem;transition:all .15s ease}.btn-secondary:hover{background:var(--border-light);border-color:var(--border-focus)}.preview-panel{display:flex;flex-direction:column;gap:1.15rem}.unified-action-hub{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;padding:.75rem 1rem;box-shadow:0 4px 14px #0000000d;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem}.hub-group-left{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.hub-btn-preview{padding:.5rem .95rem;background:var(--accent-blue);border:1px solid var(--accent-blue);color:#fff;border-radius:6px;font-size:.85rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;box-shadow:0 2px 5px #2563eb40;transition:all .15s ease}.hub-btn-preview:hover:not(:disabled){background:#1d4ed8;box-shadow:0 4px 8px #2563eb59}.hub-btn-preview:disabled{opacity:.5;cursor:not-allowed}.hub-btn-dice-standalone{padding:.5rem .95rem;background:var(--accent-blue-light);border:1px solid var(--accent-blue-border);color:var(--accent-blue);border-radius:6px;font-size:.85rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;transition:all .15s ease}.hub-btn-dice-standalone:hover:not(:disabled){background:var(--accent-blue);color:#fff;box-shadow:0 2px 6px #2563eb4d}.hub-btn-dice-standalone:disabled{opacity:.5;cursor:not-allowed}.hub-seed-pill{display:flex;align-items:center;gap:.4rem;background:var(--bg-card-secondary);border:1px solid var(--border-color);border-radius:8px;padding:.25rem .5rem}.hub-pill-label{font-size:.75rem;font-weight:700;color:var(--text-muted)}.hub-seed-input{width:80px;padding:.25rem .4rem;border:1px solid var(--border-color);border-radius:5px;font-size:.8rem;font-weight:700;background:var(--bg-input);color:var(--text-main)}.hub-btn-dice{padding:.35rem .65rem;background:var(--accent-blue-light);border:1px solid var(--accent-blue-border);color:var(--accent-blue);border-radius:6px;font-size:.8rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;transition:all .15s ease}.hub-btn-dice:hover{background:var(--accent-blue);color:#fff}.hub-btn-edit{padding:.45rem .85rem;background:var(--bg-card-secondary);border:1px solid var(--border-color);color:var(--text-main);border-radius:6px;font-size:.8rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:all .15s ease}.hub-btn-edit:hover{border-color:var(--accent-orange);background:var(--border-light)}.hub-btn-edit.active{background:#fef3c7;border-color:#f59e0b;color:#92400e;box-shadow:0 0 0 2px #f59e0b33}.hub-group-right{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.hub-btn-generate-complete{padding:.55rem 1.1rem;background:#059669;color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;box-shadow:0 2px 6px #05966940;transition:all .15s ease}.hub-btn-generate-complete:hover{background:#047857;transform:translateY(-1px);box-shadow:0 4px 12px #05966959}.hub-btn-generate-separate{padding:.55rem .95rem;background:#2563eb;color:#fff;border:none;border-radius:6px;font-size:.825rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;box-shadow:0 2px 6px #2563eb33;transition:all .15s ease}.hub-btn-generate-separate:hover{background:#1d4ed8;transform:translateY(-1px)}.hub-btn-folder{padding:.55rem .85rem;background:var(--bg-card-secondary);border:1px solid var(--border-color);color:var(--text-main);border-radius:6px;font-size:.825rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;transition:all .15s ease}.hub-btn-folder:hover{background:var(--border-light);border-color:var(--border-focus)}.paper-exercise-item.editing-active{border:2px dashed var(--accent-orange);background:#f59e0b0a;padding:1.25rem;border-radius:10px;margin-bottom:1.5rem;box-shadow:0 4px 14px #f59e0b14}.math-inline-editor-card{position:relative;background:#fff;border:1.5px solid var(--border-color, #cbd5e1);border-radius:8px;padding:8px 12px 10px;margin:8px 0 10px;transition:all .2s ease;box-shadow:0 1px 3px #0000000a}.math-inline-editor-card:hover{border-color:#94a3b8}.math-inline-editor-card.focused{border-color:var(--accent-blue, #2563eb);box-shadow:0 0 0 3px #2563eb26}.math-inline-editor-card.solution{border-color:#86efac;background:#fcfdfc;margin-top:10px}.math-inline-editor-card.solution.focused{border-color:#22c55e;box-shadow:0 0 0 3px #22c55e26}.math-inline-editor-card.help{border-color:#fde047;background:#fffdf5;margin-top:10px}.math-inline-editor-card.help.focused{border-color:#eab308;box-shadow:0 0 0 3px #eab30826}.math-inline-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid var(--border-light, #f1f5f9)}.math-inline-tag{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, #64748b);padding:2px 6px;border-radius:4px;background:var(--bg-card-secondary, #f1f5f9)}.math-inline-tag.solution{color:#15803d;background:#dcfce7}.math-inline-tag.help{color:#a16207;background:#fef9c3}.math-inline-tools{display:flex;align-items:center;gap:3px;margin-left:auto}.math-inline-tools button{min-width:26px;height:24px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border-color, #e2e8f0);background:#fff;border-radius:4px;font-size:.75rem;color:var(--text-main, #334155);cursor:pointer;transition:all .15s ease}.math-inline-tools button:hover{background:var(--border-light, #f1f5f9);border-color:var(--border-focus, #cbd5e1);color:#0f172a}.math-inline-textarea{width:100%;border:none;background:transparent;padding:0;margin:0;font-family:inherit;font-size:.95rem;line-height:1.65;color:var(--text-main, #1e293b);resize:none;outline:none;overflow:hidden;box-sizing:border-box}.math-inline-textarea::placeholder{color:var(--text-muted, #94a3b8);font-style:italic}.math-inline-view{font-size:.95rem;line-height:1.7;color:inherit}.math-solution-block{margin-top:.75rem;padding:.65rem .85rem;background:#f0fdf4;border-left:3px solid #22c55e;border-radius:4px;color:#166534}.math-help-block{margin-top:.75rem;padding:.65rem .85rem;background:#fefce8;border-left:3px solid #eab308;border-radius:4px;color:#854d0e}.formatted-math-content{font-size:1.08rem;line-height:1.75;color:inherit;overflow-wrap:break-word}.formatted-math-content .katex{font-size:1.15em;line-height:1.25;text-indent:0;text-rendering:auto}.formatted-math-content .katex-display{display:block;margin:.85em 0;padding:.25rem .5rem;overflow-x:auto;overflow-y:visible;text-align:center}.formatted-math-content .katex-error{color:#dc2626;background:#fee2e2;padding:2px 6px;border-radius:4px;font-family:monospace;font-size:.85em}.preview-nav-bar{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.6rem .85rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px}.preview-tabs-group{display:flex;gap:.35rem}.preview-tab-btn{padding:.4rem .75rem;background:var(--bg-card-secondary);border:1px solid var(--border-color);border-radius:6px;font-size:.775rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.preview-tab-btn:hover{color:var(--text-main);border-color:var(--accent-blue)}.preview-tab-btn.active{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff;font-weight:700}.variant-selector-group{display:flex;align-items:center;gap:.35rem}.variant-label{font-size:.75rem;font-weight:700;color:var(--text-muted);margin-right:.25rem}.variant-btn{padding:.35rem .65rem;background:var(--bg-card-secondary);border:1px solid var(--border-color);border-radius:5px;font-size:.75rem;font-weight:700;color:var(--text-main);cursor:pointer}.variant-btn.active{background:#3b82f6;border-color:#2563eb;color:#fff}.btn-preview-quick{width:100%;padding:.6rem .85rem;background:var(--accent-blue);color:#fff;border:none;border-radius:6px;font-size:.825rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.4rem;margin-bottom:.5rem;box-shadow:0 2px 4px #2563eb33;transition:all .15s ease}.btn-preview-quick:hover{background:var(--accent-blue-hover);box-shadow:0 3px 8px #2563eb4d}.bottom-approval-card{margin-top:1.5rem;background:#f8fafc;border:2px dashed #94a3b8;border-radius:8px;padding:1.25rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.75rem}.bottom-approval-title{font-size:.95rem;font-weight:800;color:#1e293b}.bottom-approval-desc{font-size:.8rem;color:#64748b;max-width:550px}.exercise-help-box{margin-top:.5rem;padding:.55rem .75rem;background:#fefce8;border-left:3px solid #eab308;border-radius:4px;font-size:.825rem;color:#854d0e}.exercise-help-box strong,.exercise-solution-box strong{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.2rem}.paper-container{background:#fff;color:#111827;border:1px solid #d1d5db;border-radius:6px;box-shadow:0 4px 16px #00000014;padding:2.5rem 3rem;min-height:1060px;display:flex;flex-direction:column;justify-content:space-between;box-sizing:border-box;position:relative}.paper-header{border-bottom:2px solid #111827;padding-bottom:1rem;margin-bottom:1.25rem}.paper-school-row{display:flex;justify-content:space-between;font-size:.85rem;font-weight:600;color:#374151;margin-bottom:.5rem}.paper-title{font-size:1.35rem;font-weight:800;color:#111827;text-align:center;margin:.75rem 0 .5rem;text-transform:uppercase;letter-spacing:.02em}.paper-student-row{display:flex;justify-content:space-between;gap:2rem;margin-top:1rem;font-size:.875rem;font-weight:600}.student-field-line{flex:1;border-bottom:1px solid #4b5563;padding-bottom:.15rem}.paper-instruction{font-size:.8rem;font-style:italic;color:#4b5563;margin-bottom:1.25rem;padding:.4rem .65rem;background:#f3f4f6;border-left:3px solid #2563eb}.preview-points-summary-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;padding:.65rem 1rem;margin-bottom:1.25rem}.points-total-pill{display:flex;align-items:center;gap:.65rem;font-size:.85rem;font-weight:700;padding:.3rem .75rem;border-radius:6px}.points-total-pill.valid{background:#ecfdf5;color:#065f46;border:1px solid #6ee7b7}.points-total-pill.warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.points-status-ok{font-size:.75rem;color:#059669;font-weight:800}.points-status-diff{font-size:.75rem;color:#b45309;font-weight:800}.btn-rebalance-pts{padding:.35rem .85rem;background:#2563eb;color:#fff;border:none;border-radius:6px;font-size:.775rem;font-weight:700;cursor:pointer;box-shadow:0 1px 3px #2563eb40;transition:all .15s ease}.btn-rebalance-pts:hover{background:#1d4ed8;box-shadow:0 2px 6px #2563eb59}.paper-exercises-list{display:flex;flex-direction:column;flex:1;justify-content:space-between;gap:1.25rem}.support-settings-note{margin:0 0 .75rem;color:var(--text-muted);font-size:.78rem;line-height:1.45}.paper-support-conditions{margin:-.25rem 0 .7rem;padding:.4rem .6rem;border-radius:6px;background:#f8fafc;color:#334155;font-size:.75rem;font-weight:600;text-align:center}.support-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem .75rem}.support-time-field{grid-column:1 / -1;display:grid;gap:.35rem;color:var(--text-main);font-size:.78rem;font-weight:600}.support-check-label{display:flex;align-items:center;gap:.45rem;color:var(--text-main);font-size:.78rem;cursor:pointer}.exercise-item-actions{display:flex;align-items:center;gap:.4rem}.btn-exercise-reroll,.btn-exercise-delete{border:1px solid var(--border-color);border-radius:6px;padding:.3rem .65rem;font-size:.75rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;transition:.15s ease}.btn-exercise-reroll{color:#1d4ed8;background:#eff6ff}.btn-exercise-delete{color:#b91c1c;background:#fff1f2}.btn-exercise-reroll:hover:not(:disabled),.btn-exercise-delete:hover:not(:disabled){transform:translateY(-1px);filter:brightness(.97)}.btn-exercise-reroll:disabled,.btn-exercise-delete:disabled{opacity:.5;cursor:not-allowed}.paper-exercise-item{display:flex;flex-direction:column;flex:1;justify-content:flex-start;min-height:0;gap:.5rem;padding-bottom:.75rem;border-bottom:1px dashed #e5e7eb}.paper-exercise-item:last-child{border-bottom:none}.exercise-heading-line{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.65rem 1rem}.exercise-num-title{font-size:1.15rem;font-weight:700;color:#111827}.exercise-points-editor{display:flex;align-items:center;gap:.3rem;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:6px;padding:.2rem .5rem}.points-editor-label{font-size:.85rem;font-weight:600;color:#475569}.btn-pts-step{width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #94a3b8;border-radius:4px;font-size:.85rem;font-weight:700;color:#1e293b;cursor:pointer;transition:all .1s ease}.btn-pts-step:hover{background:#e2e8f0;border-color:#64748b}.input-pts-custom{width:44px;text-align:center;padding:.15rem .2rem;border:1px solid #94a3b8;border-radius:4px;font-size:.825rem;font-weight:800;color:#1e293b;background:#fff}.pts-suffix{font-size:.75rem;font-weight:700;color:#2563eb}.exercise-pts-tag{font-size:.775rem;font-weight:700;color:#2563eb;background:#eff6ff;padding:.15rem .5rem;border-radius:4px}.exercise-body-text{font-size:.925rem;line-height:1.55;color:#1f2937}.exercise-solution-box{margin-top:.5rem;padding:.5rem .75rem;background:#f0fdf4;border-left:3px solid #16a34a;border-radius:4px;font-size:.825rem;color:#166534}.exercise-answer-space{margin-top:.75rem;flex:1;min-height:48px;border-bottom:1px solid #d1d5db}.paper-eval-grid{margin-top:auto;padding-top:1.25rem;border:1px solid #374151;display:grid;grid-template-columns:1fr 1fr 1fr;text-align:center;font-size:.8rem}.grid-cell-header{background:#f3f4f6;font-weight:700;padding:.4rem;border-bottom:1px solid #374151;border-right:1px solid #374151}.grid-cell-header:last-child{border-right:none}.grid-cell-value{padding:.6rem;font-weight:600;border-right:1px solid #374151}.grid-cell-value:last-child{border-right:none}.generated-files-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:1rem;box-shadow:var(--card-shadow)}.files-list{display:flex;flex-direction:column;gap:.4rem;margin-top:.5rem}.file-item-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:var(--bg-card-secondary);border:1px solid var(--border-light);border-radius:6px}.file-name-txt{font-size:.8rem;font-weight:600;color:var(--text-main)}.modal-backdrop{position:fixed;inset:0;background:#000000a6;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1.5rem}.modal-content{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;width:100%;max-width:780px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 12px 36px #00000040}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--border-light)}.modal-header h2{font-size:1.1rem;font-weight:700;color:var(--text-title)}.modal-close-btn{background:transparent;border:none;font-size:1.25rem;color:var(--text-muted);cursor:pointer}.modal-body{padding:1.25rem;overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:.85rem 1.25rem;border-top:1px solid var(--border-light)}.formula-card{padding:.75rem 1rem;background:var(--bg-card-secondary);border:1px solid var(--border-light);border-radius:6px;margin-bottom:.75rem}.formula-category-title{font-size:.85rem;font-weight:700;color:var(--accent-blue);margin-bottom:.35rem}.formula-body{font-size:.875rem;line-height:1.5}.formula-modal-large{max-width:1040px!important;width:95vw!important;max-height:90vh!important}.formula-header-title-group{display:flex;align-items:baseline;gap:.85rem;flex-wrap:wrap}.formula-header-title-group h2{margin:0;font-size:1.15rem}.formula-header-badge{font-size:.75rem;font-weight:600;color:var(--accent-blue);background:var(--accent-blue-light);padding:.15rem .5rem;border-radius:9999px;border:1px solid var(--accent-blue-border)}.formula-controls-bar{display:flex;flex-direction:column;gap:.65rem;padding:.85rem 1.25rem;background:var(--bg-card-secondary);border-bottom:1px solid var(--border-light)}.formula-year-tabs{display:flex;gap:.4rem;flex-wrap:wrap}.formula-tab-pill{padding:.35rem .75rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:20px;font-size:.78rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.formula-tab-pill:hover{border-color:var(--accent-blue-border);color:var(--text-main)}.formula-tab-pill.active{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff;box-shadow:0 2px 6px #2563eb4d}.formula-search-wrapper{position:relative;display:flex;align-items:center}.formula-search-input{width:100%;padding:.5rem 2.2rem .5rem .85rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;font-size:.825rem;color:var(--text-main);outline:none;transition:border-color .15s ease}.formula-search-input:focus{border-color:var(--accent-blue)}.formula-search-clear{position:absolute;right:.65rem;background:transparent;border:none;font-size:.85rem;color:var(--text-muted);cursor:pointer}.formula-search-clear:hover{color:var(--text-main)}.formula-toast-msg{background:#ecfdf5;color:#065f46;border:1px solid #6ee7b7;padding:.45rem 1rem;margin:.5rem 1.25rem 0;border-radius:6px;font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:.4rem;animation:fadeIn .2s ease}.formula-modal-scroll{padding:1rem 1.25rem!important;display:flex;flex-direction:column;gap:1rem}.formula-section-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:1rem;box-shadow:0 2px 8px #0000000a;transition:border-color .15s ease}.formula-section-card:hover{border-color:var(--accent-blue-border)}.formula-card-topbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:.85rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-light)}.formula-card-left{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.formula-year-tag{font-size:.7rem;font-weight:700;padding:.15rem .45rem;background:var(--accent-blue);color:#fff;border-radius:4px}.formula-category-pill{font-size:.725rem;font-weight:600;color:var(--text-muted);background:var(--bg-card-secondary);padding:.15rem .45rem;border-radius:4px;border:1px solid var(--border-light)}.formula-card-heading{font-size:.925rem;font-weight:700;color:var(--text-title);margin:0}.formula-badge-label{font-size:.7rem;font-weight:700;color:#059669;background:#ecfdf5;border:1px solid #a7f3d0;padding:.15rem .5rem;border-radius:9999px}.formula-items-container{display:flex;flex-direction:column;gap:.75rem}.formula-entry-row{background:var(--bg-card-secondary);border:1px solid var(--border-light);border-radius:6px;padding:.65rem .85rem}.formula-entry-subtitle{font-size:.78rem;font-weight:700;color:var(--accent-blue);margin-bottom:.4rem;display:flex;justify-content:space-between;align-items:center}.formula-header-right-actions{display:flex;align-items:center;gap:.65rem}.btn-expert-toggle{padding:.35rem .75rem;background:var(--bg-card-secondary);border:1px solid var(--border-color);border-radius:6px;font-size:.75rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.btn-expert-toggle:hover{background:var(--border-light);color:var(--text-main)}.btn-expert-toggle.active{background:#fef3c7;border-color:#f59e0b;color:#92400e;box-shadow:0 1px 4px #f59e0b33}.formula-entry-action-buttons{display:flex;align-items:center;gap:.4rem}.btn-copy-word-action{padding:.25rem .55rem;background:#eff6ff;border:1px solid #bfdbfe;border-radius:5px;font-size:.72rem;font-weight:700;color:#1d4ed8;cursor:pointer;display:flex;align-items:center;gap:.3rem;transition:all .15s ease}.btn-copy-word-action:hover{background:#dbeafe;border-color:#93c5fd;color:#1e40af;box-shadow:0 1px 4px #1d4ed826}.btn-copy-latex-action{padding:.25rem .5rem;background:#fef3c7;border:1px solid #fde68a;border-radius:5px;font-size:.7rem;font-weight:600;color:#92400e;cursor:pointer;transition:all .15s ease}.btn-copy-latex-action:hover{background:#fde68a;color:#78350f}.formula-expert-latex-snippet{margin-top:.45rem;padding:.4rem .65rem;background:var(--bg-input);border:1px dashed var(--border-color);border-radius:5px;font-size:.725rem;font-family:JetBrains Mono,monospace;color:var(--text-muted);display:flex;align-items:flex-start;gap:.5rem;overflow-x:auto}.latex-label-tag{font-weight:700;color:#d97706;white-space:nowrap}.formula-expert-latex-snippet code{color:var(--text-main);white-space:pre-wrap;word-break:break-all}.formula-katex-box{overflow-x:auto;padding:.45rem .35rem;font-size:.95rem;line-height:1.6}.formula-katex-box .katex{font-size:1.05em!important}.formula-katex-box .katex-display{margin:.35rem 0!important}.formula-entry-notes{font-size:.725rem;color:var(--text-muted);margin-top:.35rem;font-style:italic}.formula-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;gap:1rem;color:var(--text-muted);font-size:.875rem;text-align:center}.formula-modal-footer{display:flex;justify-content:space-between;align-items:center}.formula-footer-stats{font-size:.775rem;color:var(--text-muted)}.alert-box{padding:.65rem .85rem;border-radius:6px;font-size:.8rem;font-weight:600;display:flex;justify-content:space-between;align-items:center}.alert-success{background:#ecfdf5;border:1px solid #6ee7b7;color:#065f46}.alert-error{background:#fef2f2;border:1px solid #fca5a5;color:#991b1b}.alert-info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}@media print{body{background:#fff}.app-header-banner,.sidebar-panel,.preview-toolbar,.generated-files-card{display:none!important}.main-layout{display:block;padding:0;margin:0}.paper-container{border:none;box-shadow:none;padding:0}}.demo-mode-banner{padding:.55rem 1.25rem;display:flex;align-items:center;justify-content:center;gap:1.25rem;color:#d5f4ed;background:#075e55;font-size:.72rem;line-height:1.4;text-align:center}.demo-mode-banner a{color:#fff;font-weight:800;text-decoration:underline;text-underline-offset:3px}.hub-desktop-offer{min-height:44px;padding:.45rem .85rem;display:flex;align-items:center;gap:.7rem;border:1px solid #5eead4;border-radius:7px;color:#ecfeff;background:#0f766e;text-decoration:none;box-shadow:0 3px 10px #0f766e33}.hub-desktop-offer>span{width:25px;height:25px;display:grid;place-items:center;border-radius:5px;color:#064e3b;background:#99f6e4;font-weight:900}.hub-desktop-offer div{display:grid;gap:2px}.hub-desktop-offer b{font-size:.72rem}.hub-desktop-offer small{color:#b9eee5;font-size:.58rem}.demo-print-lock{padding:.42rem .7rem;border:1px solid var(--border-color);border-radius:6px;color:var(--text-muted);background:var(--bg-card-secondary);font-size:.7rem;font-weight:700}.demo-paper-watermark{position:absolute;z-index:5;top:48%;left:50%;color:#0d76661d;font-size:clamp(1.35rem,3vw,2.5rem);font-weight:900;letter-spacing:.08em;pointer-events:none;white-space:nowrap;transform:translate(-50%,-50%) rotate(-24deg)}.paper-container.is-editing .demo-paper-watermark{display:none}.demo-access-page{min-height:100vh;padding:30px;display:grid;place-items:center;color:#102536;background:radial-gradient(circle at 20% 15%,rgba(45,190,166,.17),transparent 27%),radial-gradient(circle at 85% 80%,rgba(62,116,162,.15),transparent 28%),#071a29;font-family:Inter,sans-serif}.demo-access-page:before{content:"";position:fixed;inset:0;opacity:.25;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:42px 42px}.demo-back-home{position:absolute;z-index:2;top:26px;left:30px;color:#b9cbd4;font-size:.78rem;font-weight:700;text-decoration:none}.demo-access-card{position:relative;z-index:2;width:min(520px,100%);padding:50px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:#f7f4ed;box-shadow:0 35px 90px #00000052;text-align:center}.demo-access-mark{width:54px;height:54px;margin:0 auto 24px;display:grid;place-items:center;border-radius:15px 15px 15px 4px;color:#fff;background:#0b7d70;font-family:Georgia,serif;font-size:31px}.demo-access-kicker{color:#0b7d70;font-size:.62rem;font-weight:800;letter-spacing:.18em}.demo-access-card h1{margin:13px 0 15px;font-family:Georgia,serif;font-size:clamp(2rem,5vw,2.8rem);font-weight:400;letter-spacing:-.035em}.demo-access-card>p{margin:0 auto 25px;color:#667780;font-size:.82rem;line-height:1.75}.demo-access-google{margin:0 auto 18px;min-height:47px;padding:0 20px;border-radius:8px}.demo-access-card>small{display:block;color:#859299;font-size:.64rem}@media(max-width:760px){.demo-mode-banner{align-items:flex-start;flex-direction:column;gap:.25rem;text-align:left}.hub-desktop-offer small{display:none}.demo-access-page{padding:18px}.demo-access-card{padding:38px 22px 28px}.demo-back-home{top:18px;left:18px}}@media print{body.web-demo-mode #root{display:none!important}body.web-demo-mode:before{content:"La stampa è disponibile nella versione desktop di Docentia Suite.";padding:3cm 2cm;display:block;color:#111827;font:700 18pt/1.5 Arial,sans-serif;text-align:center}}.driver-popover.driverjs-theme{background-color:#fff;color:#0f2434;border:1px solid rgba(15,36,52,.12);border-radius:12px;box-shadow:0 20px 45px #071a2940;font-family:Plus Jakarta Sans,system-ui,sans-serif;max-width:360px;padding:18px 20px}.driver-popover-title{font-family:Plus Jakarta Sans,sans-serif;font-size:15px;font-weight:700;color:#071a29;margin-bottom:8px}.driver-popover-description{font-size:13px;line-height:1.6;color:#4b616c}.driver-popover-description b{color:#071a29}.driver-popover-footer{margin-top:16px;gap:8px}.driver-popover-btn{border-radius:6px;font-size:12px;font-weight:700;padding:6px 12px;cursor:pointer;transition:all .15s ease}.driver-popover-next-btn{background-color:#0b7d70!important;color:#fff!important;border:1px solid #0b7d70!important;text-shadow:none!important}.driver-popover-next-btn:hover{background-color:#086157!important}.driver-popover-prev-btn{background-color:#f1f5f9!important;color:#475569!important;border:1px solid #cbd5e1!important}.driver-popover-close-btn{color:#94a3b8;font-size:18px}.driver-popover-progress-text{font-size:11px;font-weight:600;color:#64748b}.legal-modal-backdrop{z-index:9999}.landing-modal.legal-modal{width:min(800px,94vw);max-height:88vh;padding:36px 36px 28px;display:flex;flex-direction:column;text-align:left;background:#fff;border-radius:20px}.legal-modal-header{margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid #e1ebe7}.legal-modal-header h2{font-size:30px;margin:4px 0 6px}.legal-subtitle{margin:0;color:#728793;font-size:12px;font-weight:600}.legal-modal-content{flex:1;overflow-y:auto;padding-right:14px;margin-bottom:18px}.legal-text h3{font-family:Plus Jakarta Sans,system-ui,sans-serif;font-size:15px;font-weight:800;color:#071a29;margin:22px 0 8px}.legal-text h3:first-of-type{margin-top:0}.legal-text p{color:#455a66;font-size:13px;line-height:1.7;margin:0 0 12px}.legal-text ul{margin:0 0 16px 20px;padding:0;color:#455a66;font-size:13px;line-height:1.65}.legal-text li{margin-bottom:6px}.legal-link{color:#0b7d70;font-weight:700;text-decoration:underline}.legal-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:16px;border-top:1px solid #e1ebe7}.legal-support-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid #0b7d70;border-radius:8px;color:#0b7d70!important;background:#e6f7f3;font-size:12px;font-weight:700;text-decoration:none;transition:all .2s}.legal-support-btn:hover{background:#0b7d70;color:#fff!important}.ministerial-backdrop{position:fixed;z-index:10000;inset:0;background:#0a1929b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:20px;animation:modalFadeIn .2s ease-out}.ministerial-modal-dialog{width:100%;max-width:960px;max-height:90vh;background:var(--panel-bg, #ffffff);border:1px solid var(--border-color, #cbd5e1);border-radius:16px;box-shadow:0 25px 60px #00000059;display:flex;flex-direction:column;overflow:hidden;animation:modalSlideUp .25s cubic-bezier(.16,1,.3,1)}.ministerial-modal-header{padding:18px 24px;background:var(--bg-secondary, #f8fafc);border-bottom:1px solid var(--border-color, #e2e8f0);display:flex;align-items:center;justify-content:space-between;gap:16px}.ministerial-header-info{display:flex;align-items:center;gap:14px}.ministerial-subject-badge{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;box-shadow:0 4px 12px #00000026;flex-shrink:0}.ministerial-kicker{font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--modal-accent, #0d9488);text-transform:uppercase;margin-bottom:2px}.ministerial-header-info h2{margin:0;font-size:19px;font-weight:700;color:var(--text-color, #0f172a)}.ministerial-subtext{display:block;font-size:12px;color:var(--text-muted, #64748b);margin-top:2px}.ministerial-header-actions{display:flex;align-items:center;gap:10px}.ministerial-copy-btn{padding:8px 14px;border-radius:8px;border:1px solid var(--modal-accent, #0d9488);background:transparent;color:var(--modal-accent, #0d9488);font-size:12px;font-weight:700;cursor:pointer;transition:all .15s ease;white-space:nowrap}.ministerial-copy-btn:hover{background:var(--modal-accent, #0d9488);color:#fff}.ministerial-copy-btn.copied{background:#16a34a;border-color:#16a34a;color:#fff}.ministerial-close{background:transparent;border:none;font-size:18px;color:var(--text-muted, #64748b);cursor:pointer;padding:6px 10px;border-radius:6px;transition:all .15s}.ministerial-close:hover{background:var(--border-color, #e2e8f0);color:var(--text-color, #0f172a)}.ministerial-control-bar{padding:12px 24px;background:var(--bg-color, #ffffff);border-bottom:1px solid var(--border-color, #e2e8f0);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.ministerial-subject-select-wrapper{display:flex;align-items:center;gap:8px}.ministerial-subject-select-wrapper label{font-size:12px;font-weight:700;color:var(--text-muted, #64748b)}.ministerial-subject-select{padding:6px 12px;border:1px solid var(--border-color, #cbd5e1);border-radius:8px;font-size:13px;font-weight:600;color:var(--text-color, #0f172a);background:var(--panel-bg, #ffffff);outline:none}.ministerial-search-wrapper{position:relative;flex:1;max-width:450px;display:flex;align-items:center}.ministerial-search-icon{position:absolute;left:10px;font-size:13px;pointer-events:none;opacity:.6}.ministerial-search-input{width:100%;padding:7px 32px;border:1px solid var(--border-color, #cbd5e1);border-radius:8px;font-size:13px;background:var(--panel-bg, #ffffff);color:var(--text-color, #0f172a);outline:none;transition:border-color .2s}.ministerial-search-input:focus{border-color:var(--modal-accent, #0d9488)}.ministerial-search-clear{position:absolute;right:8px;background:transparent;border:none;color:var(--text-muted, #64748b);cursor:pointer;font-size:12px;padding:2px 6px}.ministerial-nav-tabs{padding:0 24px;background:var(--bg-secondary, #f8fafc);border-bottom:1px solid var(--border-color, #e2e8f0);display:flex;gap:4px;overflow-x:auto}.ministerial-nav-tab{padding:11px 16px;border:none;background:transparent;font-size:13px;font-weight:600;color:var(--text-muted, #64748b);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap;transition:all .15s ease}.ministerial-nav-tab:hover{color:var(--text-color, #0f172a)}.ministerial-nav-tab.active{color:var(--modal-accent, #0d9488);border-bottom-color:var(--modal-accent, #0d9488);font-weight:700}.ministerial-modal-body{padding:24px;overflow-y:auto;flex:1;background:var(--bg-color, #fdfdfe)}.ministerial-tab-pane{display:flex;flex-direction:column;gap:18px}.ministerial-year-pills{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-bottom:4px}.ministerial-pill-label{font-size:12px;font-weight:700;color:var(--text-muted, #64748b)}.ministerial-year-pill{padding:5px 12px;border-radius:20px;border:1px solid var(--border-color, #cbd5e1);background:var(--panel-bg, #ffffff);color:var(--text-muted, #64748b);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease}.ministerial-year-pill:hover{border-color:var(--modal-accent, #0d9488);color:var(--modal-accent, #0d9488)}.ministerial-year-pill.active{background:var(--modal-accent, #0d9488);border-color:var(--modal-accent, #0d9488);color:#fff}.ministerial-years-timeline{display:flex;flex-direction:column;gap:16px}.ministerial-year-card{border:1px solid var(--border-color, #e2e8f0);background:var(--panel-bg, #ffffff);border-radius:12px;padding:16px 20px;box-shadow:0 2px 6px #00000008}.ministerial-year-header{display:flex;align-items:center;gap:12px;margin-bottom:14px;border-bottom:1px dashed var(--border-color, #e2e8f0);padding-bottom:10px}.ministerial-year-badge{padding:3px 9px;border-radius:6px;background:var(--modal-accent, #0d9488);color:#fff;font-size:11px;font-weight:800;text-transform:uppercase}.ministerial-year-header h4{margin:0;font-size:15px;font-weight:700;color:var(--text-color, #0f172a)}.ministerial-topics-count{margin-left:auto;font-size:11px;color:var(--text-muted, #64748b)}.ministerial-nuclei-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:12px}.ministerial-nucleus-item{padding:10px 14px;background:var(--bg-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:8px}.ministerial-nucleus-title{display:flex;align-items:center;gap:6px;margin-bottom:4px;color:var(--text-color, #0f172a);font-size:13px}.ministerial-bullet{color:var(--modal-accent, #0d9488);font-weight:700}.ministerial-nucleus-desc{margin:0;font-size:12px;color:var(--text-muted, #64748b);line-height:1.5}.ministerial-track-banner{padding:18px 22px;border-radius:12px;border:1px solid #cbd5e1;background:#f8fafc}.ministerial-track-banner.liceo{border-color:#93c5fd;background:#eff6ff}.ministerial-track-banner.tecnico{border-color:#fde047;background:#fefce8}.ministerial-track-banner.professionale{border-color:#fca5a5;background:#fef2f2}.ministerial-track-header{display:flex;align-items:center;gap:12px;margin-bottom:14px}.ministerial-track-icon{font-size:28px}.ministerial-track-header h3{margin:0 0 4px;font-size:16px;font-weight:700;color:#0f172a}.ministerial-track-header p{margin:0;font-size:12px;color:#475569}.ministerial-track-content{display:flex;flex-direction:column;gap:10px}.ministerial-track-box{background:#ffffffb3;padding:12px 14px;border-radius:8px;border:1px solid rgba(0,0,0,.06)}.ministerial-track-box strong{display:block;margin-bottom:4px;font-size:12px;color:#1e293b}.ministerial-track-box p{margin:0;font-size:13px;color:#334155;line-height:1.6}.ministerial-track-box code{font-size:12px;color:#0369a1;font-weight:600}.ministerial-competenze-section h4{margin:0 0 10px;font-size:14px;font-weight:700;color:var(--text-color, #0f172a)}.ministerial-checklist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.ministerial-checklist li{padding:10px 14px;background:var(--panel-bg, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;font-size:12.5px;line-height:1.5;color:var(--text-color, #1e293b);display:flex;align-items:flex-start;gap:10px}.ministerial-checklist li span{color:#16a34a;font-weight:700}.ministerial-overview-card{padding:16px 20px;border-radius:10px;background:var(--bg-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0)}.ministerial-overview-card h4{margin:0 0 8px;font-size:14px;font-weight:700;color:var(--text-color, #0f172a)}.ministerial-overview-card p{margin:0;font-size:13px;line-height:1.65;color:var(--text-color, #334155)}.ministerial-quadri-orari-box h4,.ministerial-sources-container h4{margin:0 0 10px;font-size:14px;font-weight:700;color:var(--text-color, #0f172a)}.ministerial-hours-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.ministerial-hour-card{padding:12px 16px;background:var(--panel-bg, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;display:flex;flex-direction:column;gap:4px}.ministerial-hour-card strong{font-size:13px;color:var(--text-color, #0f172a)}.ministerial-hour-card span{font-size:12px;color:var(--modal-accent, #0d9488);font-weight:600}.ministerial-links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.ministerial-source-card{display:flex;flex-direction:column;padding:14px 16px;border:1px solid var(--border-color, #cbd5e1);border-radius:10px;background:var(--panel-bg, #ffffff);text-decoration:none;color:var(--text-color, #0f172a);transition:all .2s ease}.ministerial-source-card:hover{transform:translateY(-2px);border-color:var(--modal-accent, #0d9488);box-shadow:0 6px 16px #00000014}.ministerial-source-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.ministerial-source-badge{font-size:10px;font-weight:800;text-transform:uppercase;color:var(--modal-accent, #0d9488)}.ministerial-source-arrow{font-size:14px;color:var(--text-muted, #64748b)}.ministerial-source-card strong{font-size:13.5px;margin-bottom:4px}.ministerial-source-card small{font-size:11px;color:var(--text-muted, #64748b);margin-bottom:8px}.ministerial-source-cta{font-size:11px;font-weight:700;color:var(--modal-accent, #0d9488);margin-top:auto}.ministerial-modal-footer{padding:14px 24px;background:var(--bg-secondary, #f8fafc);border-top:1px solid var(--border-color, #e2e8f0);display:flex;align-items:center;justify-content:space-between;gap:16px}.ministerial-footer-note{font-size:11.5px;color:var(--text-muted, #64748b)}.ministerial-empty-state{text-align:center;padding:40px 20px}.ministerial-empty-icon{font-size:36px;display:block;margin-bottom:10px}.ministerial-empty-state h3{margin:0 0 6px;font-size:16px}.ministerial-empty-state p{margin:0 0 14px;font-size:13px;color:var(--text-muted, #64748b)}.ministerial-open-explorer-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:10px;background:#14b8a6;border:1px solid #2dd4bf;color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 14px #14b8a64d}.ministerial-open-explorer-btn:hover{background:#0d9488;transform:translateY(-2px);box-shadow:0 6px 20px #14b8a666}.ministerial-pdf-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s ease;white-space:nowrap}.ministerial-pdf-btn.primary{background:#0d9488;border:1px solid #0f766e;color:#fff;box-shadow:0 2px 6px #0d94884d}.ministerial-pdf-btn.primary:hover:not(:disabled){background:#0f766e;transform:translateY(-1px)}.ministerial-pdf-btn.secondary{background:transparent;border:1px solid var(--border-color, #cbd5e1);color:var(--text-color, #0f172a)}.ministerial-pdf-btn.secondary:hover:not(:disabled){background:var(--bg-secondary, #f8fafc);border-color:#94a3b8}.ministerial-pdf-btn:disabled{opacity:.6;cursor:not-allowed}.ministerial-toast-bar{padding:8px 24px;background:#ecfdf5;border-bottom:1px solid #a7f3d0;color:#065f46;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:space-between}.ministerial-toast-bar button{background:transparent;border:none;color:#065f46;cursor:pointer;font-size:12px}.ministerial-filter-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-bottom:6px;border-bottom:1px solid var(--border-color, #e2e8f0)}.ministerial-track-pills{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ministerial-year-pill.track-pill{border-radius:6px;font-size:11px}.ministerial-topics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:10px}.ministerial-topic-card-item{display:flex;align-items:flex-start;gap:12px;padding:10px 14px;background:var(--bg-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;transition:all .15s ease}.ministerial-topic-card-item:hover{background:#fff;border-color:var(--modal-accent, #0d9488);box-shadow:0 2px 8px #0000000a}.ministerial-topic-index{min-width:24px;height:24px;border-radius:6px;background:var(--modal-accent, #0d9488);color:#fff;font-size:10.5px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.ministerial-topic-details{display:flex;flex-direction:column;gap:3px;flex:1}.ministerial-topic-category-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ministerial-topic-category{font-size:10px;font-weight:800;text-transform:uppercase;color:var(--modal-accent, #0d9488);background:#0d948814;padding:1px 6px;border-radius:4px}.ministerial-topic-cefr{font-size:10px;font-weight:800;color:#7c3aed;background:#ede9fe;padding:1px 6px;border-radius:4px}.ministerial-topic-track-badge{font-size:9.5px;color:var(--text-muted, #64748b);margin-left:auto;font-weight:600}.ministerial-topic-title{margin:0;font-size:12.5px;font-weight:600;color:var(--text-color, #0f172a);line-height:1.45}.scientific-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;padding:6px 8px;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-radius:7px 7px 0 0;margin-bottom:8px;-webkit-user-select:none;user-select:none}.scientific-tag-badge{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:4px;background:#e2e8f0;color:#475569}.scientific-tag-badge.solution{background:#dcfce7;color:#15803d}.scientific-tag-badge.help{background:#fef9c3;color:#a16207}.scientific-tool-group{display:flex;align-items:center;gap:3px}.scientific-toolbar-divider{width:1px;height:20px;background:#cbd5e1;margin:0 2px}.scientific-toolbar .tool-btn{height:28px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;gap:4px;background:#fff;border:1px solid #cbd5e1;border-radius:5px;color:#334155;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.scientific-toolbar .tool-btn:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a}.scientific-toolbar .tool-btn.active{background:#eff6ff;border-color:#3b82f6;color:#1d4ed8}.scientific-toolbar .tool-btn.math-btn{background:#f0fdf4;border-color:#bbf7d0;color:#166534;font-weight:700}.scientific-toolbar .tool-btn.math-btn:hover{background:#dcfce7;border-color:#86efac}.scientific-toolbar .tool-btn.fraction-btn{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.scientific-toolbar .tool-btn.fraction-btn:hover{background:#dbeafe;border-color:#93c5fd}.scientific-toolbar .tool-btn.fraction-btn small{font-size:9px;font-weight:700;opacity:.85;text-transform:uppercase;margin-left:2px}.scientific-toolbar .tool-btn.dropdown-btn{background:#fdf4ff;border-color:#f5d0fe;color:#86198f;font-weight:700}.scientific-toolbar .tool-btn.dropdown-btn:hover{background:#fae8ff;border-color:#e879f9}.scientific-tutorial-trigger-btn{margin-left:auto;height:28px;padding:0 10px;display:inline-flex;align-items:center;gap:5px;background:#fef3c7;border:1px solid #fde68a;border-radius:6px;color:#92400e;font-size:11.5px;font-weight:700;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 2px #0000000d}.scientific-tutorial-trigger-btn:hover{background:#fde68a;border-color:#f59e0b;color:#78350f;transform:translateY(-1px)}.relative-popover-wrapper{position:relative}.fraction-popover-card{position:absolute;top:calc(100% + 6px);left:0;z-index:1000;width:270px;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 10px 28px #0f172a2e;animation:popoverFadeIn .15s ease-out;padding:12px}.fraction-popover-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid #f1f5f9}.fraction-popover-header strong{font-size:12px;color:#0f172a}.popover-close-btn{background:transparent;border:none;font-size:14px;color:#94a3b8;cursor:pointer;padding:2px 4px}.popover-close-btn:hover{color:#0f172a}.fraction-inputs-container{display:flex;flex-direction:column;gap:8px}.fraction-field-row{display:flex;flex-direction:column;gap:3px}.fraction-field-row label{font-size:11px;font-weight:700;color:#475569}.fraction-field-row input{height:32px;padding:0 8px;border:1px solid #cbd5e1;border-radius:6px;font-size:13px;color:#0f172a;outline:none}.fraction-field-row input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.fraction-visual-divider{height:2px;background:#3b82f6;border-radius:2px;margin:2px 0;opacity:.8}.fraction-popover-actions{margin-top:10px;display:flex;align-items:center;justify-content:flex-end;gap:6px}.btn-cancel-popover{height:28px;padding:0 10px;border:1px solid #cbd5e1;background:#fff;border-radius:6px;font-size:11.5px;font-weight:600;color:#64748b;cursor:pointer}.btn-confirm-fraction{height:28px;padding:0 12px;border:none;background:#2563eb;color:#fff;border-radius:6px;font-size:11.5px;font-weight:700;cursor:pointer;transition:background .15s ease}.btn-confirm-fraction:hover{background:#1d4ed8}.scientific-dropdown-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:1000;width:320px;max-height:380px;overflow-y:auto;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 10px 30px #0f172a33;padding:12px;display:flex;flex-direction:column;gap:12px;animation:popoverFadeIn .15s ease-out}.scientific-dropdown-menu.units-menu{width:360px}.dropdown-category-block{display:flex;flex-direction:column;gap:6px}.dropdown-category-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#0f766e;border-bottom:1px solid #f1f5f9;padding-bottom:3px}.dropdown-items-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.dropdown-symbol-item{height:26px;padding:0 6px;border:1px solid #e2e8f0;background:#f8fafc;border-radius:5px;font-size:11px;color:#1e293b;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .1s ease}.dropdown-symbol-item:hover{background:#0d9488;border-color:#0d9488;color:#fff}.dropdown-units-pills{display:flex;flex-wrap:wrap;gap:4px}.dropdown-unit-pill{height:24px;padding:0 8px;border:1px solid #cbd5e1;background:#f8fafc;border-radius:4px;font-size:11.5px;font-weight:600;color:#334155;cursor:pointer;transition:all .12s ease}.dropdown-unit-pill:hover{background:#3b82f6;border-color:#3b82f6;color:#fff}@keyframes popoverFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.scientific-tutorial-backdrop{position:fixed;inset:0;z-index:10000;background:#0f172aa6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:16px;animation:modalFadeIn .2s ease-out}.scientific-tutorial-card{width:min(840px,96vw);max-height:90vh;background:#fff;border-radius:16px;box-shadow:0 25px 60px #0000004d;display:flex;flex-direction:column;overflow:hidden;animation:modalSlideUp .25s cubic-bezier(.16,1,.3,1)}.scientific-tutorial-header{padding:18px 24px;background:#0f172a;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:16px}.scientific-tutorial-title-row{display:flex;align-items:center;gap:14px}.scientific-tutorial-badge-icon{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#0d9488,#0284c7);display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 4px 12px #00000040;flex-shrink:0}.scientific-tutorial-kicker{font-size:10px;font-weight:800;letter-spacing:.1em;color:#5eead4;text-transform:uppercase}.scientific-tutorial-title-row h2{margin:2px 0 0;font-size:18px;font-weight:700;color:#fff}.scientific-tutorial-close-btn{background:transparent;border:none;font-size:20px;color:#94a3b8;cursor:pointer;padding:6px 10px;border-radius:6px;transition:all .15s ease}.scientific-tutorial-close-btn:hover{background:#ffffff1a;color:#fff}.scientific-tutorial-nav{display:flex;align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:6px 16px 0;overflow-x:auto;gap:6px}.scientific-tut-tab{padding:10px 16px;border:none;background:transparent;border-bottom:3px solid transparent;color:#64748b;font-size:12.5px;font-weight:700;cursor:pointer;transition:all .15s ease;white-space:nowrap}.scientific-tut-tab:hover{color:#0f172a}.scientific-tut-tab.active{color:#0d9488;border-bottom-color:#0d9488;background:#fff;border-radius:8px 8px 0 0}.scientific-tutorial-body{padding:22px 24px;overflow-y:auto;flex:1;background:#fff}.scientific-tut-alert-box{padding:12px 16px;border-radius:10px;margin-bottom:16px;font-size:13px;line-height:1.5}.scientific-tut-alert-box.info{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.scientific-tut-alert-box strong{display:block;font-size:14px;margin-bottom:2px}.scientific-tut-alert-box p{margin:0}.scientific-tut-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.scientific-tut-card{padding:16px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;position:relative}.scientific-tut-card.highlight{background:#eff6ff;border-color:#bfdbfe}.scientific-card-icon{font-size:20px;margin-bottom:6px}.scientific-tut-card h4{margin:0 0 6px;font-size:14px;font-weight:700;color:#0f172a}.scientific-tut-card p{margin:0 0 10px;font-size:12.5px;color:#475569;line-height:1.5}.scientific-tut-list{margin:0;padding-left:18px;font-size:12.5px;color:#334155;line-height:1.6}.scientific-tut-demo-box{background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.tut-label{font-size:10px;font-weight:800;text-transform:uppercase;color:#64748b}.scientific-tut-demo-box code{font-family:JetBrains Mono,monospace;font-size:11.5px;color:#0f766e;word-break:break-all}.tut-render-preview{padding:8px;background:#f8fafc;border-radius:6px;border:1px dashed #cbd5e1;font-size:14px;color:#0f172a;text-align:center}.scientific-tut-steps{display:flex;flex-direction:column;gap:10px}.tut-step-item{display:flex;align-items:center;gap:12px;font-size:13px;color:#1e293b}.step-num{width:26px;height:26px;border-radius:50%;background:#2563eb;color:#fff;font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.scientific-tut-table-wrapper{overflow-x:auto}.scientific-tut-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:12.5px}.scientific-tut-table th{background:#e2e8f0;color:#1e293b;text-align:left;padding:8px 12px;font-weight:700}.scientific-tut-table td{padding:8px 12px;border-bottom:1px solid #e2e8f0;color:#334155}.scientific-tut-table code{font-family:JetBrains Mono,monospace;font-size:11px;color:#0f766e;background:#f1f5f9;padding:2px 6px;border-radius:4px}.scientific-tut-examples-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}.scientific-tut-example-card{padding:12px 14px;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc;display:flex;flex-direction:column;gap:6px}.example-card-header{display:flex;align-items:center;justify-content:space-between}.example-card-header strong{font-size:12.5px;color:#0f172a}.tut-copy-btn{height:26px;padding:0 10px;border:1px solid #0d9488;background:#f0fdfa;color:#0d9488;border-radius:5px;font-size:11px;font-weight:700;cursor:pointer;transition:all .15s ease}.tut-copy-btn:hover{background:#0d9488;color:#fff}.tut-copy-btn.copied{background:#16a34a;border-color:#16a34a;color:#fff}.example-card-preview{padding:8px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;text-align:center;font-size:13.5px}.example-card-code code{font-family:JetBrains Mono,monospace;font-size:11px;color:#64748b;word-break:break-all}.scientific-tutorial-footer{padding:14px 24px;background:#f8fafc;border-top:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;gap:16px}.scientific-tutorial-footer-hint{font-size:12px;color:#64748b}.scientific-tutorial-ok-btn{padding:9px 20px;border:none;background:#0d9488;color:#fff;border-radius:8px;font-size:13px;font-weight:700;cursor:pointer;transition:all .15s ease;white-space:nowrap}.scientific-tutorial-ok-btn:hover{background:#0f766e;transform:translateY(-1px)}.subscriber-active-banner{padding:.55rem 1.25rem;display:flex;align-items:center;justify-content:center;gap:.85rem;color:#ecfdf5;background:linear-gradient(90deg,#065f46,#047857,#059669);font-size:.76rem;line-height:1.4;text-align:center;box-shadow:inset 0 -1px #ffffff26}.sub-banner-badge{padding:.2rem .55rem;background:#10b981;color:#fff;border-radius:4px;font-size:.65rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.subscription-header-badge{display:inline-flex;align-items:center;gap:.35rem;height:36px;padding:0 .75rem;background:#10b9812e;border:1px solid #10b981;border-radius:8px;color:#10b981;font-size:.78rem;font-weight:800;white-space:nowrap;box-sizing:border-box}.hub-btn-print-sub{min-height:44px;padding:.45rem 1rem;display:inline-flex;align-items:center;gap:.5rem;border:1px solid #34d399;border-radius:7px;color:#fff;background:linear-gradient(135deg,#059669,#047857);font-weight:800;font-size:.78rem;cursor:pointer;box-shadow:0 4px 12px #05966940;transition:all .2s ease}.hub-btn-print-sub:hover{background:linear-gradient(135deg,#10b981,#059669);transform:translateY(-1px);box-shadow:0 6px 16px #05966959}.btn-tool-print-active{background:#ecfdf5!important;color:#047857!important;border-color:#a7f3d0!important;font-weight:700}.btn-tool-print-active:hover{background:#d1fae5!important;color:#065f46!important}@media print{@page{size:A4 portrait;margin:15mm 12mm}body{background:#fff!important;color:#000!important;font-size:11pt!important}.app-header-banner,.demo-mode-banner,.subscriber-active-banner,.sidebar-panel,.unified-action-hub,.preview-nav-bar,.preview-points-summary-bar,.exercise-item-actions,.exercise-points-editor,.btn-exercise-reroll,.btn-exercise-delete,.demo-paper-watermark,.subject-watermark,.landing-active-sub-banner,.modal-backdrop,.subject-header,.subject-demo-notice,.subject-suite-nav,.subject-controls,.subject-action-bar,.subject-preview-nav,.subject-exercise-actions,.subject-points-editor,.scientific-toolbar-wrap{display:none!important}.main-layout,.subject-workspace{display:block!important;padding:0!important;margin:0!important;border:none!important;background:transparent!important}.preview-panel,.subject-preview-area{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;border:none!important;background:transparent!important;box-shadow:none!important}.paper-container,.subject-paper{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;border:none!important;box-shadow:none!important;background:#fff!important;color:#000!important}.paper-exercise-item,.subject-exercise{break-inside:avoid;page-break-inside:avoid;border-bottom:1px solid #e2e8f0;padding-bottom:12px;margin-bottom:12px}}.readable-formula-preview{margin:8px 12px 12px;padding:10px;border:1px solid #dbe4f0;border-radius:6px;background:#fff;overflow-wrap:anywhere}.readable-formula-preview>small{display:block;color:#64748b;margin-bottom:6px}@media print{.readable-formula-preview{display:none}}.header-hub-btn{display:inline-flex;align-items:center;gap:.45rem;height:36px;background:#1e293b;color:#e2e8f0;border:1px solid rgba(255,255,255,.18);padding:0 .85rem;border-radius:8px;font-size:.78rem;font-weight:700;text-decoration:none;cursor:pointer;transition:all .15s ease;box-shadow:0 2px 5px #0003;white-space:nowrap;box-sizing:border-box}.header-hub-btn:hover{background:#334155;color:#fff;border-color:#ffffff59}.header-switch-subject-btn{display:inline-flex;align-items:center;gap:.45rem;height:36px;background:linear-gradient(135deg,#0d9488,#0369a1);color:#fff;border:1px solid rgba(255,255,255,.25);padding:0 .85rem;border-radius:8px;font-size:.78rem;font-weight:800;text-decoration:none;cursor:pointer;transition:all .15s ease;box-shadow:0 3px 10px #0d948859;white-space:nowrap;box-sizing:border-box}.header-switch-subject-btn:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 5px 14px #0d948880}@media(max-width:1400px){.banner-subtitle-text{max-width:380px}.tool-btn{padding:0 .65rem;font-size:.75rem;gap:.3rem}.header-hub-btn,.header-switch-subject-btn{padding:0 .65rem;font-size:.74rem}}@media(max-width:1200px){.app-header-banner{padding:.55rem 1.25rem}.banner-subtitle-text{max-width:260px}.banner-title-text{font-size:1.2rem}.subscription-header-badge{font-size:.72rem;padding:0 8px}}@media(max-width:1050px){.app-header-banner{flex-wrap:wrap;padding:.5rem 1rem;gap:.5rem}.banner-subtitle-text{display:none}.header-actions{width:100%;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}}.admin-corrector-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;background:linear-gradient(135deg,#091a28,#0d283e);border:1px solid #1e3a5f;border-left:4px solid #38bdf8;border-radius:8px;padding:10px 16px;margin:10px 0 14px;box-shadow:0 4px 14px #00000040;color:#e2e8f0}.admin-corrector-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.admin-badge{background:#f59e0b;color:#0f172a;font-size:11px;font-weight:800;padding:2px 8px;border-radius:9999px;letter-spacing:.3px;text-transform:uppercase}.admin-feature-title{font-weight:700;font-size:13px;color:#f8fafc}.admin-exam-id-chip{display:inline-flex;align-items:center;gap:6px;background:#0f172a99;border:1px solid rgba(56,189,248,.3);padding:2px 8px;border-radius:6px}.admin-exam-id-chip .chip-label{font-size:11px;color:#94a3b8;font-weight:600}.admin-exam-id-chip .chip-code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;font-weight:800;color:#38bdf8;letter-spacing:.5px}.btn-admin-icon{background:none;border:none;color:#94a3b8;cursor:pointer;padding:0;font-size:12px;line-height:1;transition:transform .2s ease,color .2s ease}.btn-admin-icon:hover{transform:rotate(90deg);color:#38bdf8}.admin-corrector-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.btn-admin-toggle{background:#1e293bcc;border:1px solid #334155;color:#cbd5e1;font-size:12px;font-weight:600;padding:6px 12px;border-radius:6px;cursor:pointer;transition:all .15s ease}.btn-admin-toggle.is-active{background:#10b98133;border-color:#10b981;color:#34d399}.btn-admin-action{background:#1e293b;border:1px solid #38bdf8;color:#f8fafc;font-size:12px;font-weight:600;padding:6px 12px;border-radius:6px;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:6px}.btn-admin-action:hover:not(:disabled){background:#0284c7;border-color:#0284c7;color:#fff;transform:translateY(-1px)}.btn-admin-action:disabled{opacity:.5;cursor:not-allowed}.btn-admin-action.btn-admin-sync{background:#0369a1;border-color:#38bdf8}.btn-admin-action.btn-admin-sync:hover:not(:disabled){background:#0284c7}.btn-admin-action.btn-admin-open{background:#4f46e5;border-color:#818cf8}.btn-admin-action.btn-admin-open:hover:not(:disabled){background:#4338ca}.paper-qr-badge{float:right;margin-left:12px;margin-bottom:6px;display:flex;flex-direction:column;align-items:center;background:#fff;border:1.5px solid #0f172a;border-radius:8px;padding:5px 6px 4px;text-align:center;box-shadow:0 2px 8px #0f172a14;z-index:20}.paper-qr-img{width:66px;height:66px;display:block;image-rendering:pixelated}.paper-qr-text{margin-top:3px;display:flex;flex-direction:column;align-items:center}.paper-qr-id{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:800;font-size:9.5px;color:#0f172a;letter-spacing:.6px;line-height:1}.paper-qr-caption{font-size:7px;font-weight:700;color:#2563eb;letter-spacing:.8px;text-transform:uppercase;margin-top:2px}.dsa-top-notice-box{background:linear-gradient(135deg,#eff6ff,#f5f3ff);border:1.5px solid #c7d2fe;border-radius:8px;padding:.85rem 1.15rem;margin-bottom:1.25rem;box-shadow:0 2px 6px #6366f114}.dsa-top-notice-header{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .85rem;margin-bottom:.35rem}.dsa-top-badge{background:#4f46e5;color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.04em;padding:.2rem .55rem;border-radius:4px}.dsa-top-title{font-weight:700;font-size:.95rem;color:#1e1b4b}.dsa-top-desc{font-size:.85rem;color:#4338ca;line-height:1.45;margin-bottom:.5rem}.dsa-top-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem}.dsa-top-format-toggle{display:inline-flex;background:#fff;border:1px solid #c7d2fe;border-radius:6px;padding:2px;gap:2px}.btn-top-format{border:none;background:transparent;color:#4338ca;font-size:.76rem;font-weight:600;padding:.25rem .6rem;border-radius:4px;cursor:pointer;transition:all .15s ease}.btn-top-format:hover{background:#f5f3ff}.btn-top-format.active{background:#4f46e5;color:#fff;font-weight:700;box-shadow:0 1px 2px #4f46e540}.btn-dsa-jump{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;font-weight:700;color:#4338ca;background:#fff;border:1px solid #c7d2fe;padding:.3rem .75rem;border-radius:6px;text-decoration:none;transition:all .15s ease}.btn-dsa-jump:hover{background:#ede9fe;color:#312e81}.exercise-dsa-support-card{margin-top:.75rem;background:#fcfcfd;border:1px solid #e0e7ff;border-left:4px solid #6366f1;border-radius:6px;overflow:hidden}.exercise-dsa-support-header{display:flex;justify-content:space-between;align-items:center;padding:.45rem .75rem;background:#f5f3ff;border-bottom:1px solid #ede9fe;cursor:pointer;-webkit-user-select:none;user-select:none}.exercise-dsa-tag{font-size:.75rem;font-weight:800;color:#4f46e5;letter-spacing:.03em}.btn-toggle-dsa-mini{background:transparent;border:none;font-size:.75rem;font-weight:600;color:#6366f1;cursor:pointer;padding:0}.btn-toggle-dsa-mini:hover{color:#4338ca;text-decoration:underline}.exercise-dsa-support-content{padding:.75rem;display:flex;flex-direction:column;gap:.65rem}.exercise-dsa-sublabel{display:block;font-size:.74rem;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.02em;margin-bottom:.25rem}.exercise-dsa-formula-box{background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:.55rem .75rem}.exercise-dsa-math-row{font-size:.95rem;overflow-x:auto;padding:.15rem 0}.exercise-dsa-mini-note{font-size:.78rem;color:#6b21a8;margin-top:.35rem;font-style:italic}.exercise-dsa-map-box{background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:.55rem .75rem}.exercise-dsa-steps-row{display:flex;flex-direction:column;gap:.45rem;margin-top:.35rem}.exercise-dsa-step-pill{display:flex;align-items:flex-start;gap:.5rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:5px;padding:.35rem .55rem;font-size:.8rem;line-height:1.4}.exercise-dsa-step-pill .dsa-step-num{background:#6366f1;color:#fff;font-size:.7rem;font-weight:800;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.exercise-dsa-step-pill .dsa-step-text{flex:1}.exercise-dsa-step-pill .dsa-step-mini-vis{margin-top:.2rem;font-size:.8rem;color:#0369a1}.dsa-compensatory-section{margin-top:2rem;padding:1.5rem;background:#fff;border:2px solid #e0e7ff;border-radius:12px;box-shadow:0 4px 16px #6366f10f;font-family:inherit;color:#1e293b}.dsa-section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1.25rem;padding-bottom:1.25rem;border-bottom:2px solid #ede9fe;flex-wrap:wrap}.dsa-header-badge{display:inline-block;background:#ede9fe;color:#6d28d9;font-size:.72rem;font-weight:800;letter-spacing:.05em;padding:.25rem .65rem;border-radius:999px;margin-bottom:.45rem}.dsa-header-title{margin:0 0 .35rem;font-size:1.25rem;font-weight:800;color:#1e1b4b}.dsa-header-desc{margin:0;font-size:.85rem;color:#64748b;line-height:1.45;max-width:650px}.dsa-header-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.dsa-format-switcher{display:inline-flex;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px;padding:3px;gap:3px}.btn-dsa-format{border:none;background:transparent;color:#475569;font-size:.8rem;font-weight:600;padding:.35rem .75rem;border-radius:6px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn-dsa-format:hover{color:#0f172a}.btn-dsa-format.active{background:#fff;color:#4338ca;font-weight:800;box-shadow:0 1px 3px #0000001a}.btn-dsa-lim{display:inline-flex;align-items:center;gap:.5rem;background:#4f46e5;color:#fff;border:none;border-radius:8px;padding:.55rem .95rem;font-size:.82rem;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 6px #4f46e540}.btn-dsa-lim:hover{background:#4338ca;transform:translateY(-1px)}.dsa-compact-banner-notice{margin-top:.85rem;background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;font-size:.82rem;line-height:1.45;padding:.5rem .85rem;border-radius:6px}.dsa-formula-cards-grid.compact-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.65rem}.dsa-formula-card.is-compact-card{padding:.65rem .75rem;gap:.4rem}.dsa-formula-card.is-compact-card .dsa-card-math-box{padding:.45rem .65rem;font-size:.9rem}.dsa-compact-maps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:.75rem}.dsa-compact-map-card{background:#fff;border:1px solid #e2e8f0;border-left:3.5px solid #0ea5e9;border-radius:8px;padding:.75rem;display:flex;flex-direction:column;gap:.45rem}.dsa-compact-map-header{display:flex;align-items:center;gap:.45rem;font-size:.85rem;color:#0f172a}.dsa-compact-map-badge{background:#e0f2fe;color:#0284c7;font-size:.68rem;font-weight:800;padding:.15rem .4rem;border-radius:4px}.dsa-compact-steps-list{display:flex;flex-direction:column;gap:.35rem}.dsa-compact-step-row{display:flex;align-items:flex-start;gap:.45rem;background:#f8fafc;border:1px solid #f1f5f9;border-radius:5px;padding:.35rem .5rem;font-size:.8rem;line-height:1.35}.dsa-compact-step-num{background:#0ea5e9;color:#fff;font-size:.68rem;font-weight:800;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.dsa-compact-step-body{flex:1;color:#334155}.dsa-compact-step-vis{display:block;margin-top:.2rem;font-size:.8rem;color:#0369a1}.dsa-controls-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid #f1f5f9;flex-wrap:wrap}.dsa-tabs-group{display:flex;gap:.4rem;flex-wrap:wrap}.dsa-tab-btn{background:#f8fafc;color:#475569;border:1px solid #cbd5e1;border-radius:8px;padding:.45rem .85rem;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s ease}.dsa-tab-btn:hover{background:#f1f5f9;color:#0f172a}.dsa-tab-btn.active{background:#e0e7ff;color:#3730a3;border-color:#818cf8;font-weight:700}.dsa-toggles-group{display:flex;align-items:center;gap:.85rem;font-size:.8rem;color:#475569;flex-wrap:wrap}.dsa-toggles-label{font-weight:600}.dsa-toggle-check{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:500}.dsa-toggle-check input{accent-color:#4f46e5;width:15px;height:15px;cursor:pointer}.dsa-block{margin-top:1.5rem}.dsa-block-title{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}.dsa-block-title h4{margin:0;font-size:1.05rem;font-weight:800;color:#0f172a}.dsa-block-icon{font-size:1.25rem}.dsa-block-count{font-size:.75rem;font-weight:700;background:#f1f5f9;color:#475569;padding:.15rem .55rem;border-radius:999px}.dsa-formula-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem}.dsa-formula-card{background:#fcfcfd;border:1px solid #e2e8f0;border-left:4px solid #6366f1;border-radius:8px;padding:1rem;display:flex;flex-direction:column;gap:.65rem;transition:border-color .15s ease}.dsa-formula-card:hover{border-color:#cbd5e1;border-left-color:#4f46e5}.dsa-topic-tag{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;color:#6366f1;letter-spacing:.04em;margin-bottom:.15rem}.dsa-card-title{margin:0;font-size:.95rem;font-weight:700;color:#1e293b;line-height:1.35}.dsa-card-math-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:.75rem .85rem;overflow-x:auto;font-size:.95rem}.dsa-card-tags-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.2rem}.dsa-card-badge{font-size:.7rem;font-weight:700;background:#e0e7ff;color:#3730a3;padding:.15rem .45rem;border-radius:4px}.dsa-schematic-rows{display:flex;flex-direction:column;gap:.35rem}.dsa-schematic-row{display:flex;align-items:center;justify-content:space-between;gap:.45rem;background:#fff;border:1px solid #e2e8f0;border-left:3px solid #6366f1;border-radius:5px;padding:.4rem .6rem;font-size:.85rem;flex-wrap:wrap}.dsa-schematic-label{font-weight:700;color:#334155;white-space:nowrap}.dsa-schematic-action{font-weight:800;color:#4338ca;background:#eef2ff;border:1px solid #c7d2fe;padding:.15rem .45rem;border-radius:4px;white-space:nowrap;font-size:.82rem}.dsa-schematic-example{color:#0f172a;font-weight:600;font-size:.85rem}.is-compact-card .dsa-schematic-row{padding:.25rem .45rem;font-size:.78rem;gap:.3rem}.is-compact-card .dsa-schematic-action{font-size:.75rem;padding:.1rem .35rem}.is-compact-card .dsa-schematic-example{font-size:.78rem}.lim-schematic .dsa-schematic-row{padding:.65rem .9rem;font-size:1.1rem}.lim-schematic .dsa-schematic-action{font-size:1.05rem;padding:.3rem .7rem}.lim-schematic .dsa-schematic-example{font-size:1.15rem}.mini-schematic{margin-top:.35rem}.mini-schematic .dsa-schematic-row{padding:.3rem .5rem;font-size:.82rem}.dsa-card-notes{display:flex;align-items:flex-start;gap:.45rem;font-size:.8rem;color:#475569;background:#fefce8;border:1px solid #fef08a;border-radius:6px;padding:.5rem .65rem;line-height:1.4}.dsa-notes-icon{font-size:.9rem;flex-shrink:0}.dsa-maps-list{display:flex;flex-direction:column;gap:1.25rem}.dsa-map-card{background:#fdfdfd;border:1px solid #e2e8f0;border-left:5px solid #0ea5e9;border-radius:10px;padding:1.25rem;box-shadow:0 2px 8px #00000005}.dsa-map-header{margin-bottom:1rem}.dsa-map-tag{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;color:#0284c7;letter-spacing:.04em;margin-bottom:.2rem}.dsa-map-title{margin:0 0 .25rem;font-size:1.1rem;font-weight:800;color:#0f172a}.dsa-map-subtitle{margin:0;font-size:.82rem;color:#64748b;line-height:1.4}.dsa-steps-timeline{display:flex;flex-direction:column;gap:.85rem}.dsa-step-item{display:flex;align-items:flex-start;gap:.85rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.85rem 1rem}.dsa-step-badge{background:#0284c7;color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;flex-shrink:0;box-shadow:0 2px 4px #0284c74d}.dsa-step-content{flex:1;display:flex;flex-direction:column;gap:.4rem}.dsa-step-header-text{font-size:.92rem;font-weight:700;color:#0f172a}.dsa-step-rule-box{font-size:.85rem;line-height:1.5;color:#334155;white-space:pre-line}.dsa-step-visual-example{background:#fff;border:1px dashed #cbd5e1;border-radius:6px;padding:.5rem .75rem;margin-top:.25rem;font-size:.85rem}.dsa-visual-label{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;color:#64748b;margin-bottom:.2rem}.dsa-step-tip{font-size:.8rem;color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:6px;padding:.4rem .65rem}.dsa-map-warning-box{display:flex;align-items:flex-start;gap:.6rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:.75rem 1rem;margin-top:.85rem;font-size:.82rem;color:#991b1b;line-height:1.45}.dsa-warn-icon{font-size:1.1rem;flex-shrink:0}.dsa-map-example-box{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:.75rem 1rem;margin-top:.85rem;font-size:.85rem}.dsa-ex-label{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;color:#166534;margin-bottom:.25rem}.dsa-tables-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1.25rem}.dsa-table-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1.15rem}.dsa-table-card-full{grid-column:1 / -1}.dsa-table-title{margin:0 0 .4rem;font-size:.95rem;font-weight:800;color:#0f172a}.dsa-table-sub{font-size:.8rem;font-weight:700;color:#475569;margin-bottom:.45rem}.dsa-table-note{font-size:.8rem;color:#64748b;margin:0 0 .65rem}.dsa-mini-table{width:100%;border-collapse:collapse;font-size:.82rem}.dsa-mini-table th,.dsa-mini-table td{padding:.45rem .65rem;border:1px solid #e2e8f0;text-align:left}.dsa-mini-table th{background:#f8fafc;font-weight:700;color:#334155}.sign-badge{display:inline-block;font-weight:900;font-size:.9rem;width:20px;height:20px;text-align:center;line-height:20px;border-radius:4px}.sign-badge.plus{background:#dcfce7;color:#15803d}.sign-badge.minus{background:#fee2e2;color:#b91c1c}.dsa-somma-rules{display:flex;flex-direction:column;gap:.5rem}.dsa-somma-rule-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:.5rem .75rem;font-size:.8rem;line-height:1.4}.dsa-somma-head{color:#1e293b;margin-bottom:.15rem}.dsa-somma-ex{margin-top:.25rem;color:#0369a1}.dsa-primes-pill-box{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.65rem}.dsa-prime-pill{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;font-weight:700;font-size:.78rem;padding:.2rem .5rem;border-radius:4px}.dsa-primes-subnote{font-size:.75rem;color:#64748b;font-style:italic;margin:0}.dsa-criteri-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem;font-size:.8rem}.dsa-criterio-item{line-height:1.4}.dsa-criterio-ex{color:#059669}.dsa-quadrati-row{display:flex;flex-wrap:wrap;gap:.5rem}.dsa-quadrato-tag{background:#f1f5f9;border:1px solid #cbd5e1;padding:.25rem .55rem;border-radius:6px;font-family:monospace;font-size:.8rem;font-weight:600;color:#0f172a}.dsa-lim-overlay{z-index:9999!important}.dsa-lim-modal{max-width:1200px!important;width:95vw!important;max-height:92vh!important;background:#fff;border-radius:12px;display:flex;flex-direction:column}.dsa-lim-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:2px solid #e2e8f0}.dsa-lim-title-group{display:flex;align-items:center;gap:.75rem}.dsa-lim-title-group h3{margin:0;font-size:1.25rem;font-weight:800;color:#0f172a}.dsa-lim-modal-body{padding:1.5rem;overflow-y:auto;flex:1}.dsa-lim-section-title{font-size:1.2rem;font-weight:800;color:#1e1b4b;margin:0 0 1rem;border-bottom:2px solid #ede9fe;padding-bottom:.4rem}.lim-card{font-size:1.1rem}.lim-math{font-size:1.25rem!important}.lim-notes{font-size:1rem!important}.dsa-lim-modal-footer{padding:1rem 1.5rem;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end}.driver-popover{all:unset;font-family:var(--driver-popover-font-family,"Helvetica Neue", Inter, ui-sans-serif, "Apple Color Emoji", Helvetica, Arial, sans-serif);box-sizing:border-box;color:#2d2d2d;z-index:1000000000;background-color:#fff;border-radius:5px;min-width:250px;max-width:300px;margin:0;padding:15px;position:fixed;top:0;right:0;box-shadow:0 1px 10px #0006}.driver-popover-title{zoom:1;margin:0;font-size:19px;font-weight:700;line-height:1.5;display:block;position:relative}.driver-popover-close-btn{all:unset;cursor:pointer;color:#d2d2d2;z-index:1;text-align:center;width:32px;height:28px;font-size:18px;font-weight:500;transition:color .2s;position:absolute;top:0;right:0}.driver-popover-close-btn:hover,.driver-popover-close-btn:focus{color:#2d2d2d}.driver-popover-title[style*=block]+.driver-popover-description{margin-top:5px}.driver-popover-description{zoom:1;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.5}.driver-popover-footer{text-align:right;zoom:1;justify-content:space-between;align-items:center;margin-top:15px;display:flex}.driver-popover-progress-text{color:#727272;zoom:1;font-size:13px;font-weight:400}.driver-popover-footer-btn{all:unset;box-sizing:border-box;color:#2d2d2d;cursor:pointer;zoom:1;background-color:#fff;border:1px solid #ccc;border-radius:3px;outline:0;padding:3px 7px;font-size:12px;line-height:1.3;text-decoration:none;display:inline-block}.driver-popover-footer .driver-popover-btn-disabled{opacity:.5;pointer-events:none}.driver-popover-footer-btn:hover,.driver-popover-footer-btn:focus{background-color:#f7f7f7}.driver-popover-navigation-btns{flex-grow:1;justify-content:flex-end;display:flex}.driver-popover-navigation-btns button+button{margin-left:4px}.driver-popover-arrow{content:"";border:5px solid #fff;position:absolute}.driver-popover-arrow-side-over{display:none}.driver-popover-arrow-side-left{border-top-color:#0000;border-bottom-color:#0000;border-right-color:#0000;left:100%}.driver-popover-arrow-side-right{border-top-color:#0000;border-bottom-color:#0000;border-left-color:#0000;right:100%}.driver-popover-arrow-side-top{border-bottom-color:#0000;border-left-color:#0000;border-right-color:#0000;top:100%}.driver-popover-arrow-side-bottom{border-top-color:#0000;border-left-color:#0000;border-right-color:#0000;bottom:100%}.driver-popover-arrow-side-center,.driver-popover-arrow-none{display:none}.driver-active .driver-overlay{pointer-events:none}.driver-active.driver-no-scroll{overflow:hidden}.driver-active *{pointer-events:none}.driver-active .driver-active-element,.driver-active .driver-active-element *,.driver-popover,.driver-popover *{pointer-events:auto}@keyframes animate-fade-in{0%{opacity:0}to{opacity:1}}.driver-fade .driver-overlay{animation:animate-fade-in var(--driver-animation-duration,.4s) ease-in-out}.driver-fade .driver-popover{animation:animate-fade-in var(--driver-animation-duration,.4s)}.driver-active-element-parent-no-scroll{overflow:hidden!important}.driver-no-interaction,.driver-no-interaction *{pointer-events:none!important}.launch-top-banner{background:linear-gradient(90deg,#071a29,#0d2c44,#071a29);border-bottom:2px solid #f59e0b;color:#fff;padding:10px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative;z-index:1100;box-shadow:0 4px 20px #00000040;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;animation:launchBannerSlideDown .4s ease-out}@keyframes launchBannerSlideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.launch-top-banner-content{display:flex;align-items:center;gap:14px;flex-wrap:wrap;max-width:1200px;margin:0 auto}.launch-banner-badge{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#0f172a;font-size:11px;font-weight:800;padding:4px 10px;border-radius:999px;letter-spacing:.05em;text-transform:uppercase;box-shadow:0 2px 8px #f59e0b66;white-space:nowrap}button.launch-banner-badge-btn{border:1px solid rgba(255,255,255,.35);cursor:pointer;font-family:inherit;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}button.launch-banner-badge-btn:hover{transform:translateY(-1px) scale(1.03);filter:brightness(1.08);box-shadow:0 4px 14px #f59e0b8c}button.launch-banner-badge-btn:active{transform:translateY(0) scale(.98)}button.launch-banner-badge-btn:focus-visible{outline:2px solid #ffffff;outline-offset:2px}.launch-banner-pulse{width:8px;height:8px;background-color:#0f172a;border-radius:50%;animation:launchPulse 1.8s infinite}@keyframes launchPulse{0%{transform:scale(.9);opacity:.8}50%{transform:scale(1.3);opacity:1}to{transform:scale(.9);opacity:.8}}.launch-banner-text{font-size:13.5px;line-height:1.4;color:#f1f5f9}.launch-banner-text strong{color:#fef08a;font-weight:700}.launch-banner-text .launch-subtext{color:#94a3b8;font-size:12.5px;margin-left:8px}.launch-banner-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.launch-banner-info-btn{background:#ffffff14;color:#e2e8f0;border:1px solid rgba(255,255,255,.26);padding:5px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s ease;white-space:nowrap}.launch-banner-info-btn:hover{background:#ffffff2e;color:#fff;border-color:#ffffff73;transform:translateY(-1px)}.launch-banner-close-btn{background:transparent;border:none;color:#94a3b8;font-size:18px;cursor:pointer;padding:4px 8px;border-radius:4px;display:grid;place-items:center;transition:color .2s ease,background .2s ease}.launch-banner-close-btn:hover{color:#fff;background:#ffffff1a}.launch-floating-trigger{position:fixed;bottom:20px;right:20px;z-index:990;background:linear-gradient(135deg,#0d2638,#071a29);border:1px solid #f59e0b;color:#fef08a;padding:8px 14px;border-radius:999px;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;cursor:pointer;box-shadow:0 6px 20px #00000059;transition:all .25s cubic-bezier(.16,1,.3,1);animation:launchPillFloat 3s ease-in-out infinite alternate}.launch-floating-trigger:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 10px 25px #f59e0b59;background:#0f354f}@keyframes launchPillFloat{0%{transform:translateY(0)}to{transform:translateY(-4px)}}.launch-modal-backdrop{position:fixed;inset:0;z-index:2000;background:#05121dc7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:20px;animation:launchModalFadeIn .3s ease-out}@keyframes launchModalFadeIn{0%{opacity:0}to{opacity:1}}.launch-modal-card{background:#fff;border-radius:20px;max-width:580px;width:100%;max-height:calc(100dvh - 32px);max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch;box-shadow:0 25px 60px -15px #0006,0 0 0 1px #0f243414;position:relative;animation:launchCardScaleUp .35s cubic-bezier(.16,1,.3,1);font-family:inherit;color:#0f2434}@keyframes launchCardScaleUp{0%{opacity:0;transform:scale(.92) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.launch-modal-header-hero{background:linear-gradient(135deg,#071a29,#0d324d 60%,#124468);color:#fff;padding:32px 28px 24px;position:relative;border-bottom:3px solid #f59e0b}.launch-modal-close{position:absolute;top:16px;right:16px;background:#ffffff1f;border:none;color:#fff;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:16px;cursor:pointer;transition:all .2s ease}.launch-modal-close:hover{background:#ffffff40;transform:rotate(90deg)}.launch-modal-kicker{display:inline-flex;align-items:center;gap:8px;background:#f59e0b33;border:1px solid rgba(245,158,11,.5);color:#fbbf24;font-size:11px;font-weight:800;padding:4px 12px;border-radius:999px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}.launch-modal-title{margin:0 0 8px;font-size:24px;font-weight:800;line-height:1.25;color:#fff}.launch-modal-title em{font-style:normal;color:#fef08a;text-decoration:underline;text-decoration-color:#f59e0b;text-underline-offset:4px}.launch-modal-subtitle{margin:0;font-size:14px;line-height:1.5;color:#cbd5e1}.launch-modal-body{padding:24px 28px}.launch-modal-grid{display:grid;gap:14px;margin-bottom:24px}.launch-modal-item{display:flex;align-items:flex-start;gap:14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px;transition:border-color .2s ease,background .2s ease}.launch-modal-item:hover{border-color:#cbd5e1;background:#f1f5f9}.launch-item-icon{font-size:22px;flex-shrink:0;line-height:1.2}.launch-item-text strong{display:block;font-size:14px;color:#0f172a;margin-bottom:2px}.launch-item-text p{margin:0;font-size:12.5px;color:#64748b;line-height:1.45}.launch-modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:8px;border-top:1px solid #f1f5f9}.launch-btn-primary{background:linear-gradient(135deg,#0b7d70,#065048);color:#fff;border:none;padding:10px 22px;border-radius:10px;font-size:13.5px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px;box-shadow:0 4px 14px #0b7d704d;transition:all .2s ease}.launch-btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 18px #0b7d7066;background:linear-gradient(135deg,#0e9687,#075f56)}.launch-btn-secondary{background:transparent;color:#475569;border:1px solid #cbd5e1;padding:10px 18px;border-radius:10px;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .2s ease}.launch-btn-secondary:hover{background:#f1f5f9;color:#0f172a}@media(max-width:680px){.launch-top-banner{padding:7px 10px;gap:6px}.launch-top-banner-content{flex-direction:row;flex-wrap:nowrap;gap:8px;min-width:0}.launch-banner-text{font-size:11.5px;line-height:1.25}.launch-banner-text .launch-subtext{display:block;margin-left:0;margin-top:3px;font-size:11.5px;line-height:1.4}.launch-banner-actions{width:auto;margin-top:0}.launch-banner-badge{font-size:9px;padding:3px 7px}.launch-banner-close-btn{padding:2px 5px;font-size:15px}.launch-modal-backdrop{padding:12px}.launch-modal-card{max-height:calc(100dvh - 24px);border-radius:16px}.launch-modal-header-hero{padding:20px 16px 16px}.launch-modal-title{font-size:18px}.launch-modal-subtitle{font-size:12.5px}.launch-modal-body{padding:16px}.launch-modal-grid{gap:10px;margin-bottom:16px}.launch-modal-item{padding:10px 12px;gap:10px}.launch-item-icon{font-size:18px}.launch-item-text strong{font-size:13px}.launch-item-text p{font-size:11.5px}.launch-modal-actions{flex-direction:column-reverse;gap:8px}.launch-btn-primary,.launch-btn-secondary{width:100%;justify-content:center;min-height:44px}.launch-floating-trigger{bottom:12px;right:12px;padding:6px 12px;font-size:11px}}.exercise-browser-backdrop{position:fixed;z-index:20000;inset:0;display:grid;place-items:center;padding:20px;background:#081321d1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.exercise-browser{display:grid;grid-template-rows:auto auto auto minmax(220px,1fr) auto;width:min(1200px,97vw);height:min(900px,95vh);overflow:hidden;border-radius:16px;background:#fff;box-shadow:0 35px 95px #0000008c;color:#172033;position:relative}.exercise-browser>header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;border-bottom:1px solid #dbe3ec;background:#fff}.exercise-browser-header-left{display:flex;flex-direction:column;gap:2px}.exercise-browser h2{margin:0;font-size:22px;font-weight:800;color:#0f172a}.exercise-browser header p{margin:0;color:#64748b;font-size:12px}.exercise-browser header small{color:var(--subject-accent, var(--accent, #0d9488));font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.exercise-browser-header-actions{display:flex;align-items:center;gap:10px}.exercise-browser-add-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border:none;border-radius:8px;background:#0d9488;color:#fff;font-size:12px;font-weight:700;cursor:pointer;box-shadow:0 2px 6px #0d948859;transition:all .15s ease}.exercise-browser-add-btn:hover{background:#0f766e;transform:translateY(-1px)}.exercise-browser-backup-btn{display:inline-flex;align-items:center;gap:4px;padding:8px 12px;border:1px solid #cbd5e1;border-radius:8px;background:#f8fafc;color:#475569;font-size:11px;font-weight:600;cursor:pointer;transition:background .15s ease}.exercise-browser-backup-btn:hover{background:#e2e8f0;color:#1e293b}.exercise-browser-close{border:0;background:none;color:#64748b;font-size:28px;line-height:1;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .15s}.exercise-browser-close:hover{background:#f1f5f9;color:#0f172a}.exercise-browser-filters{display:grid;grid-template-columns:2fr .8fr 1.6fr .9fr 1.1fr .9fr;gap:8px;padding:12px 24px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.exercise-browser-filters input,.exercise-browser-filters select{width:100%;min-width:0;padding:9px 11px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;font:inherit;font-size:11.5px;color:#1e293b;outline:none}.exercise-browser-filters input:focus,.exercise-browser-filters select:focus{border-color:#0d9488;box-shadow:0 0 0 2px #0d948826}.exercise-browser-summary{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:9px 24px;border-bottom:1px solid #e2e8f0;font-size:11.5px;background:#fff}.exercise-browser-summary b{color:#1e293b}.exercise-browser-count-pill{padding:4px 10px;border-radius:999px;color:#fff;background:#0d9488;font-weight:700;font-size:11px}.exercise-browser-custom-counter{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:999px;background:#fef3c7;color:#92400e;font-weight:700;font-size:11px}.exercise-browser-summary button.reset-btn{margin-left:auto;border:0;background:none;color:#b91c1c;font-size:11px;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:4px}.exercise-browser-summary button.reset-btn:hover{background:#fee2e2}.exercise-browser-list{overflow-y:auto;padding:14px 24px;display:grid;align-content:start;gap:10px;background:#f8fafc}.exercise-browser-item{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding:14px 16px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer;transition:all .15s ease;position:relative}.exercise-browser-item:hover{border-color:#94a3b8;box-shadow:0 3px 8px #0000000a}.exercise-browser-item.selected{border-color:#0d9488;background:#f0fdf4;box-shadow:0 0 0 1px #0d9488}.exercise-browser-item.is-custom-item{border-left:4px solid #f59e0b}.exercise-browser-checkbox{margin-top:4px;width:17px;height:17px;accent-color:#0d9488;cursor:pointer}.exercise-browser-content{display:grid;gap:8px;min-width:0}.exercise-browser-item-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.exercise-browser-topic-title{font-size:12px;font-weight:700;color:#1e293b}.exercise-browser-year-badge{padding:2px 7px;border-radius:999px;font-size:9px;font-weight:700;background:#e2e8f0;color:#475569}.exercise-browser-level-badge{padding:3px 8px;border-radius:999px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.exercise-browser-level-badge.facile{color:#166534;background:#dcfce7}.exercise-browser-level-badge.media{color:#854d0e;background:#fef9c3}.exercise-browser-level-badge.difficile{color:#991b1b;background:#fee2e2}.exercise-browser-track-badge{padding:3px 8px;border-radius:999px;font-size:9px;font-weight:700;color:#1e40af;background:#dbeafe}.exercise-browser-track-badge.tecnico{color:#9a3412;background:#ffedd5}.exercise-browser-track-badge.professionale{color:#831843;background:#fce7f3}.exercise-browser-custom-badge{padding:3px 8px;border-radius:999px;font-size:9px;font-weight:800;color:#92400e;background:#fef3c7;border:1px solid #fde68a}.exercise-browser-points-badge{margin-left:auto;font-size:10px;font-weight:700;color:#64748b;background:#f1f5f9;padding:2px 6px;border-radius:4px}.exercise-browser-text{font-size:12px;line-height:1.55;color:#0f172a;overflow-wrap:anywhere;white-space:pre-line}.exercise-browser-text .katex{font-size:1.15em;line-height:1.25}.exercise-browser-text .katex-display{margin:8px 0;padding:6px 10px;background:#f8fafc;border-radius:6px;overflow-x:auto;overflow-y:hidden;border:1px solid #e2e8f0}.exercise-browser-solution-box{display:block;margin-top:4px;padding:8px 10px;border-radius:6px;background:#f8fafc;border-left:3px solid #0d9488;color:#334155;font-size:11px;line-height:1.5;overflow-wrap:anywhere;white-space:pre-line}.exercise-browser-solution-box strong{color:#0f766e}.exercise-browser-solution-box .katex{font-size:1.1em}.exercise-browser-help-box{display:block;margin-top:4px;padding:6px 10px;border-radius:6px;background:#fefce8;border-left:3px solid #eab308;color:#713f12;font-size:10.5px;line-height:1.45}.exercise-browser-item-actions{display:flex;flex-direction:column;gap:6px}.exercise-item-action-btn{padding:5px 8px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#475569;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s ease}.exercise-item-action-btn:hover{background:#f1f5f9;color:#0f172a}.exercise-item-action-btn.delete:hover{background:#fee2e2;border-color:#fca5a5;color:#dc2626}.exercise-browser-empty{padding:60px 20px;text-align:center;color:#64748b;font-size:13px}.exercise-browser>footer{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-top:1px solid #dbe3ec;background:#fff}.exercise-browser-pages{display:flex;align-items:center;gap:10px;font-size:11px;color:#334155;font-weight:600}.exercise-browser-pages button{padding:8px 14px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;font-weight:700;cursor:pointer}.exercise-browser-pages button:hover:not(:disabled){background:#f1f5f9}.exercise-browser-apply{padding:10px 18px;border:none;border-radius:8px;background:#0d9488;color:#fff;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 2px 6px #0d948859;transition:all .15s ease}.exercise-browser-apply:hover:not(:disabled){background:#0f766e}.exercise-browser button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.exercise-form-overlay{position:absolute;inset:0;z-index:50;background:#0f172ab3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px;overflow-y:auto}.exercise-form-card{width:min(840px,94%);max-height:90vh;display:grid;grid-template-rows:auto 1fr auto;background:#fff;border-radius:14px;box-shadow:0 25px 60px #0006;overflow:hidden;animation:fadeInForm .18s ease-out}@keyframes fadeInForm{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.exercise-form-header{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.exercise-form-header h3{margin:0;font-size:16px;font-weight:800;color:#0f172a}.exercise-form-body{padding:18px 22px;overflow-y:auto;display:grid;gap:16px}.exercise-form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.exercise-form-group{display:flex;flex-direction:column;gap:6px}.exercise-form-group label{font-size:11.5px;font-weight:700;color:#334155}.exercise-form-group select,.exercise-form-group input[type=text],.exercise-form-group input[type=number],.exercise-form-group textarea{width:100%;padding:9px 12px;border:1px solid #cbd5e1;border-radius:7px;font:inherit;font-size:12px;color:#1e293b;outline:none;background:#fff}.exercise-form-group select:focus,.exercise-form-group input:focus,.exercise-form-group textarea:focus{border-color:#0d9488;box-shadow:0 0 0 2px #0d948826}.exercise-form-group textarea{min-height:85px;resize:vertical;line-height:1.5;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.exercise-pill-selector{display:flex;flex-wrap:wrap;gap:8px}.exercise-pill-btn{padding:7px 12px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;font-size:11px;font-weight:700;color:#475569;cursor:pointer;transition:all .15s ease}.exercise-pill-btn:hover{background:#f1f5f9;border-color:#94a3b8}.exercise-pill-btn.active.facile{background:#166534;color:#fff;border-color:#166534}.exercise-pill-btn.active.media{background:#b45309;color:#fff;border-color:#b45309}.exercise-pill-btn.active.difficile{background:#b91c1c;color:#fff;border-color:#b91c1c}.exercise-pill-btn.active.track{background:#0d9488;color:#fff;border-color:#0d9488}.exercise-math-quick-bar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:6px 8px;background:#f1f5f9;border-radius:6px;border:1px solid #e2e8f0}.exercise-math-quick-bar span{font-size:10px;font-weight:700;color:#64748b;margin-right:4px}.quick-math-btn{padding:3px 7px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;color:#1e293b;font-size:11px;font-family:ui-monospace,SFMono-Regular,monospace;font-weight:600;cursor:pointer;transition:background .1s}.quick-math-btn:hover{background:#e2e8f0;border-color:#94a3b8}.exercise-live-preview{margin-top:4px;padding:10px 14px;border-radius:7px;background:#f8fafc;border:1px dashed #cbd5e1;font-size:12px;line-height:1.55;color:#0f172a;min-height:38px;overflow-wrap:anywhere}.exercise-live-preview-label{font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin-bottom:4px;display:block}.exercise-form-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:14px 22px;border-top:1px solid #e2e8f0;background:#f8fafc}.exercise-form-cancel-btn{padding:9px 16px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#475569;font-size:12px;font-weight:700;cursor:pointer}.exercise-form-cancel-btn:hover{background:#f1f5f9}.exercise-form-save-btn{padding:9px 20px;border:none;border-radius:7px;background:#0d9488;color:#fff;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 2px 6px #0d948859}.exercise-form-save-btn:hover{background:#0f766e}@media(max-width:960px){.exercise-browser-filters{grid-template-columns:1fr 1fr 1fr}.exercise-form-row{grid-template-columns:1fr}}@media(max-width:640px){.exercise-browser-backdrop{padding:6px}.exercise-browser{width:100%;height:98vh}.exercise-browser-filters{grid-template-columns:1fr 1fr;padding:10px}.exercise-browser-list{padding:10px}.exercise-browser-item{grid-template-columns:auto 1fr}.exercise-browser-item-actions{grid-column:1 / -1;flex-direction:row;justify-content:flex-end}.exercise-browser>footer{padding:10px;flex-direction:column;gap:8px}.exercise-form-card{width:98%;max-height:95vh}}.exercise-browser-ai-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:none;border-radius:8px;background:linear-gradient(135deg,#4338ca,#6d28d9);color:#fff;font-size:12px;font-weight:700;cursor:pointer;box-shadow:0 2px 4px #4f46e540;transition:all .2s ease}.exercise-browser-ai-btn:hover{background:linear-gradient(135deg,#3730a3,#5b21b6);transform:translateY(-1px);box-shadow:0 4px 8px #4f46e559}.exercise-browser-summary-left{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.exercise-browser-group-toggle{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:#0f766e;background:#f0fdfa;padding:4px 10px;border-radius:6px;border:1px solid #ccfbf1;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s ease}.exercise-browser-group-toggle:hover{background:#ccfbf1}.exercise-browser-group-toggle input{cursor:pointer;accent-color:#0d9488}.exercise-browser-variant-btn{display:inline-flex;align-items:center;gap:4px;background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;padding:3px 9px;font-size:11px;font-weight:700;color:#334155;cursor:pointer;transition:all .15s ease}.exercise-browser-variant-btn:hover{background:#e2e8f0;border-color:#94a3b8;color:#0f172a}.dbsync-overlay{position:fixed;inset:0;background:#0a0f1ec7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:99999;display:flex;align-items:center;justify-content:center;padding:1.25rem;animation:dbsyncFadeIn .2s ease-out}@keyframes dbsyncFadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.dbsync-modal{background:#111827;color:#f3f4f6;border:1px solid rgba(255,255,255,.12);border-radius:16px;width:100%;max-width:580px;box-shadow:0 24px 60px #0009,0 0 0 1px #6366f133;display:flex;flex-direction:column;overflow:hidden}.dbsync-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.08)}.dbsync-header h2{margin:0;font-size:1.2rem;font-weight:700;display:flex;align-items:center;gap:.6rem;color:#fff}.dbsync-header h2 .dbsync-icon{font-size:1.35rem}.dbsync-close{background:transparent;border:none;color:#9ca3af;font-size:1.4rem;cursor:pointer;padding:.25rem .5rem;border-radius:6px;line-height:1;transition:all .15s}.dbsync-close:hover{background:#ffffff1a;color:#fff}.dbsync-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem;max-height:75vh;overflow-y:auto}.dbsync-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.dbsync-stat-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:.9rem 1rem}.dbsync-stat-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#9ca3af;margin-bottom:.35rem}.dbsync-stat-val{font-size:1.15rem;font-weight:700;color:#60a5fa}.dbsync-info-box{background:#3b82f614;border:1px solid rgba(59,130,246,.2);border-radius:10px;padding:.9rem 1rem;font-size:.85rem;line-height:1.45;color:#cbd5e1}.dbsync-info-box p{margin:0 0 .4rem}.dbsync-info-box p:last-child{margin-bottom:0}.dbsync-info-box input{width:100%;margin-top:.8rem;padding:.8rem .9rem;border:1px solid #475569;border-radius:.6rem;background:#0f172a;color:#f8fafc;font:inherit;letter-spacing:.04em}.dbsync-status-banner{padding:.85rem 1rem;border-radius:8px;font-size:.88rem;font-weight:500;display:flex;align-items:center;gap:.6rem}.dbsync-status-banner.success{background:#10b98126;border:1px solid rgba(16,185,129,.35);color:#34d399}.dbsync-status-banner.info{background:#3b82f626;border:1px solid rgba(59,130,246,.35);color:#93c5fd}.dbsync-status-banner.warning{background:#f59e0b26;border:1px solid rgba(245,158,11,.35);color:#fbbf24}.dbsync-status-banner.error{background:#ef444426;border:1px solid rgba(239,68,68,.35);color:#f87171}.dbsync-progress-bar{width:100%;height:6px;background:#ffffff1a;border-radius:999px;overflow:hidden;margin-top:.5rem}.dbsync-progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:999px;animation:dbsyncIndeterminate 1.5s infinite linear;width:50%}@keyframes dbsyncIndeterminate{0%{transform:translate(-100%)}to{transform:translate(250%)}}.dbsync-actions{display:flex;flex-direction:column;gap:.6rem}.dbsync-btn-primary{background:linear-gradient(135deg,#2563eb,#4f46e5);color:#fff;border:none;font-weight:600;font-size:.95rem;padding:.75rem 1.25rem;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s;box-shadow:0 4px 12px #2563eb4d}.dbsync-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#4338ca);transform:translateY(-1px);box-shadow:0 6px 16px #2563eb66}.dbsync-btn-primary:disabled{opacity:.6;cursor:not-allowed}.dbsync-btn-secondary{background:#ffffff0f;color:#e5e7eb;border:1px solid rgba(255,255,255,.12);font-weight:500;font-size:.88rem;padding:.6rem 1rem;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.4rem;transition:all .15s}.dbsync-btn-secondary:hover:not(:disabled){background:#ffffff1a;color:#fff}.dbsync-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.dbsync-btn-danger{background:transparent;color:#9ca3af;border:none;font-size:.8rem;padding:.4rem;cursor:pointer;text-decoration:underline;transition:color .15s}.dbsync-btn-danger:hover{color:#f87171}.dbsync-tool-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;font-size:.82rem;font-weight:600;border-radius:8px;border:1px solid rgba(59,130,246,.35);background:#3b82f61f;color:#93c5fd;cursor:pointer;transition:all .15s}.dbsync-tool-btn:hover{background:#3b82f638;border-color:#3b82f68c;color:#fff}.dbsync-tool-btn .dbsync-dot{width:7px;height:7px;border-radius:50%;background:#10b981;display:inline-block}.dbsync-tool-btn .dbsync-dot.pulse{animation:dbsyncDotPulse 1.8s infinite}@keyframes dbsyncDotPulse{0%{transform:scale(.9);opacity:.7}50%{transform:scale(1.3);opacity:1}to{transform:scale(.9);opacity:.7}}.selected-topics-chip-bar{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:.6rem .75rem;margin-bottom:.75rem}.selected-topics-chip-header{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;font-weight:600;color:#9ca3af;margin-bottom:.4rem}.selected-topics-chip-list{display:flex;flex-wrap:wrap;gap:.4rem;max-height:120px;overflow-y:auto}.selected-topic-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .5rem;background:#3b82f62e;border:1px solid rgba(59,130,246,.4);color:#e0e7ff;border-radius:6px;font-size:.78rem;line-height:1.2}.selected-topic-chip .chip-year{font-size:.7rem;font-weight:700;background:#3b82f666;padding:.1rem .3rem;border-radius:4px}.selected-topic-chip .chip-title{max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-topic-chip .chip-remove{background:transparent;border:none;color:#9ca3af;cursor:pointer;font-size:.85rem;line-height:1;padding:0;display:inline-flex;align-items:center}.selected-topic-chip .chip-remove:hover{color:#f87171}.topic-year-group-header{position:sticky;top:0;z-index:2;background:#1e293b;color:#cbd5e1;padding:.4rem .6rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-left:3px solid var(--subject-accent, #3b82f6);margin:.4rem 0 .2rem;display:flex;align-items:center;justify-content:space-between}.main-layout{grid-template-columns:minmax(300px,340px) minmax(0,1fr);gap:20px;padding:20px}.preview-panel,.sidebar-panel{min-width:0;scroll-margin-top:100px}.workspace-progress{position:sticky;top:0;z-index:40;display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px 20px;background:var(--bg-card, white);border-bottom:1px solid var(--border-color, #d1d5db)}.workspace-progress a{display:inline-flex;align-items:center;gap:6px;color:var(--text-main, #172a3a);text-decoration:none;font-weight:600}.workspace-progress a b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#e1eeff;color:#194c92}.workspace-progress [role=status]{flex:1;font-size:12px;color:var(--text-muted, #526176)}.workspace-progress button,.workspace-actions button,.exam-archive-list button,.workspace-dialog header button,.exercise-item-actions button,.editor-field-tabs button,.focused-editor-actions button{padding:8px 11px;min-height:36px;border:1px solid var(--border-color, #bcc9d6);border-radius:7px;background:var(--bg-card, white);color:var(--text-main, #172a3a);font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #357be2;outline-offset:3px}.support-options summary{cursor:pointer;font-weight:650;padding:14px 16px}.support-options>:not(summary){margin:10px 16px}.unified-action-hub{gap:12px}.hub-group-left,.hub-group-right{gap:8px;flex-wrap:wrap}.hub-btn-preview{min-height:40px}.card-title,.topic-name,.topic-title,.form-select,.form-input,.search-input{font-size:14px}.paper-container{padding:28px 36px;min-height:1060px;display:flex;flex-direction:column;justify-content:space-between;box-sizing:border-box}.exercise-heading-line{flex-wrap:wrap;gap:8px}.exercise-item-actions{display:flex;gap:5px;flex-wrap:wrap}.exercise-item-actions button{font-size:12px}.exercise-item-actions button[aria-pressed=true]{color:#805317;background:#fff3d6;border-color:#bb891f}.editor-field-tabs{display:flex;gap:7px;margin:12px 0}.editor-field-tabs button[aria-pressed=true]{background:#215cca;color:#fff;border-color:#215cca}.focused-exercise-editor{min-width:0}.focused-editor-header-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:12px 0 8px}.focused-editor-header-bar .editor-field-tabs{margin:0}.btn-engine-solve{display:inline-flex;align-items:center;gap:6px;padding:8px 14px!important;font-size:13px!important;font-weight:650!important;border-radius:8px!important;border:1px solid #7c3aed!important;background:linear-gradient(135deg,#f5f3ff,#ede9fe)!important;color:#6d28d9!important;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #6d28d91f}.btn-engine-solve:hover:not(:disabled){background:linear-gradient(135deg,#ede9fe,#ddd6fe)!important;border-color:#6d28d9!important;transform:translateY(-1px);box-shadow:0 3px 8px #6d28d933}.btn-engine-solve.is-solving{animation:pulse-border 1.5s infinite ease-in-out;cursor:wait}@keyframes pulse-border{0%,to{border-color:#7c3aed;box-shadow:0 0 0 2px #7c3aed33}50%{border-color:#a78bfa;box-shadow:0 0 0 4px #7c3aed66}}.focused-editor-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0;padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.45}.focused-editor-banner.calculating{background:#f0fdf4;border:1px solid #86efac;color:#166534}.focused-editor-banner.calculating .banner-spin{display:inline-block;animation:banner-spin-anim 1s linear infinite}@keyframes banner-spin-anim{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.focused-editor-banner.success{background:#f0fdf4;border:1px solid #86efac;color:#15803d;font-weight:550}.focused-editor-banner.warning{background:#fffbeb;border:1px solid #fcd34d;color:#92400e;flex-direction:column;align-items:stretch;gap:8px}.focused-editor-banner.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.banner-dismiss-btn{background:transparent!important;border:none!important;color:inherit!important;cursor:pointer;padding:2px 6px!important;font-size:14px;min-height:auto!important}.btn-banner-action{align-self:flex-start;padding:6px 12px!important;font-size:12px!important;font-weight:650!important;background:#d97706!important;color:#fff!important;border:1px solid #b45309!important;border-radius:6px!important;cursor:pointer}.btn-banner-action:hover{background:#b45309!important}.focused-editor-key-box{margin:12px 0;padding:12px 14px;background:#fbf7ff;border:1px solid #d8b4fe;border-radius:8px}.key-box-title{color:#6b21a8;font-size:13.5px;margin-bottom:4px}.key-box-desc{margin:4px 0 8px;font-size:12.5px;color:#4b5563}.key-box-row{display:flex;gap:8px;align-items:center}.key-box-input{flex:1;padding:8px 10px;font-size:13px;border:1px solid #c084fc;border-radius:6px;background:#fff}.key-box-submit{padding:8px 14px!important;font-size:12.5px!important;font-weight:650!important;background:#7c3aed!important;color:#fff!important;border:1px solid #6d28d9!important;border-radius:6px!important;cursor:pointer;white-space:nowrap}.key-box-submit:hover{background:#6d28d9!important}.key-box-hint{display:block;margin-top:6px;font-size:11.5px;color:#6b7280}.key-box-hint a{color:#7c3aed;text-decoration:underline}.focused-editor-warning{margin:10px 0;padding:9px 11px;border:1px solid #f59e0b;border-radius:7px;background:#fffbeb;color:#92400e;font-size:13px;line-height:1.45}.focused-editor-solution-check{display:flex;align-items:flex-start;gap:8px;margin:10px 0;padding:9px 11px;border-radius:7px;background:#f8fafc;color:#334155;font-size:13px;line-height:1.45;cursor:pointer}.focused-editor-solution-check input{margin-top:3px}.focused-editor-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 6px}.focused-editor-actions .focused-editor-save{color:#fff;background:#16734b;border-color:#12613f;font-weight:700}.focused-editor-solve-save{background:linear-gradient(135deg,#7c3aed,#6d28d9)!important;color:#fff!important;border:1px solid #5b21b6!important;font-weight:650!important}.focused-exercise-editor>small{display:block;margin:10px 0;color:#526176}.advanced-exam-options summary{cursor:pointer;font-size:13px}.paper-eval-grid{margin-top:auto!important;flex-shrink:0!important;width:100%!important;box-sizing:border-box!important;padding-top:0!important}.win-desktop-window{box-sizing:border-box;background:#fff;border:1px solid #797979;border-radius:8px;box-shadow:0 20px 48px #00000059,0 0 0 1px #fff6 inset;padding:0;overflow:hidden;color:#1a1a1a;font-family:Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;position:fixed}.win-desktop-window::backdrop{background:#0f172a80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.win-desktop-window.is-maximized{border-radius:0!important;border:none!important;box-shadow:none!important}.win-desktop-window.is-minimized{height:auto!important;box-shadow:0 8px 24px #00000040}.win-frame-wrapper{display:flex;flex-direction:column;height:100%;width:100%;position:relative;overflow:hidden;background:#fff}.win-titlebar{height:38px;min-height:38px;background:#f3f3f3;border-bottom:1px solid #e5e5e5;display:flex;align-items:center;justify-content:space-between;-webkit-user-select:none;user-select:none;cursor:move;padding-left:12px;box-sizing:border-box;touch-action:none}.win-title-left{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#18181b;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0}.win-app-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.win-title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.win-controls{display:flex;height:100%;flex-shrink:0}.win-ctrl-btn{width:46px;height:100%;border:none;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#27272a;padding:0;transition:background .12s ease,color .12s ease;outline:none}.win-ctrl-btn:hover{background:#e4e4e7}.win-ctrl-btn.win-close-btn:hover{background:#e81123!important;color:#fff!important}.win-body{flex:1;display:flex;flex-direction:column;min-height:0;overflow:auto;background:#fcfcfc;padding:16px;box-sizing:border-box}.win-statusbar{height:26px;min-height:26px;background:#f4f4f5;border-top:1px solid #e4e4e7;display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 12px;font-size:11.5px;color:#52525b;-webkit-user-select:none;user-select:none;flex-shrink:0;box-sizing:border-box}.win-statusbar-left{display:flex;align-items:center;gap:10px;overflow:hidden;white-space:nowrap}.win-statusbar-right{display:flex;align-items:center;gap:12px;flex-shrink:0}.win-status-pane{display:flex;align-items:center;gap:4px}.win-status-sep{color:#d4d4d8}.win-resize-grip{cursor:se-resize;display:flex;align-items:center;justify-content:center;padding:2px;touch-action:none}.win-resize-handle{position:absolute;z-index:50;touch-action:none}.win-resize-handle.win-resize-r{top:38px;bottom:26px;right:0;width:6px;cursor:e-resize}.win-resize-handle.win-resize-b{left:0;right:18px;bottom:0;height:6px;cursor:s-resize}.win-resize-handle.win-resize-se{right:0;bottom:0;width:18px;height:26px;cursor:se-resize}.workspace-dialog{border:1px solid #cad5e0;border-radius:12px;width:min(780px,calc(100vw - 32px));max-height:calc(100vh - 48px);padding:0;color:var(--text-main, #172a3a);background:var(--bg-card, white)}.workspace-dialog.wide{width:min(1100px,calc(100vw - 32px))}.workspace-dialog.fullscreen{width:100vw!important;max-width:100vw!important;height:100vh!important;max-height:100vh!important;inset:0!important;margin:0!important;border-radius:0!important;border:none!important}.workspace-dialog.fullscreen .workspace-dialog-inner{height:100%;display:flex;flex-direction:column;padding:16px 20px;box-sizing:border-box}.workspace-dialog.fullscreen .pdf-preview-modal-content{flex:1;display:flex;flex-direction:column;min-height:0;height:100%}.workspace-dialog.fullscreen iframe{flex:1;height:100%!important;min-height:0!important}.workspace-dialog::backdrop{background:#0f172a80}.workspace-dialog-inner{padding:24px}.workspace-dialog header{display:flex;justify-content:space-between;align-items:center;gap:20px}.workspace-dialog h2{font-size:21px;margin:0}.workspace-dialog p{line-height:1.6}.workspace-actions{display:flex;flex-wrap:wrap;gap:10px}.project-file-label{display:grid;gap:5px;font-size:13px}.exam-archive-list{padding:0;list-style:none}.exam-archive-list li{display:flex;gap:10px;padding:16px 0;border-top:1px solid #cbd5e1;align-items:center}.exam-archive-list li>div{flex:1}.exam-archive-list small{display:block;margin-top:5px}#export-exam{scroll-margin-top:90px}.export-options{display:flex;flex-wrap:wrap;gap:10px;width:100%}.export-options label{display:grid;gap:5px;font-size:13px}.export-options select{padding:7px;border:1px solid #bdcbd8;border-radius:6px;background:var(--bg-card, white);color:var(--text-main, #172a3a);max-width:100%}@media(min-width:1051px)and (max-width:1200px){.banner-subtitle-text{display:none}}@media(max-width:900px){.main-layout{grid-template-columns:1fr;padding:12px}.workspace-progress [role=status]{flex-basis:100%}}@media print{.workspace-progress,.workspace-dialog,.win-desktop-window,.exercise-item-actions,.editor-field-tabs,.focused-exercise-editor>small{display:none!important}}.paper-exercise-item .katex-display{margin:1em 0;padding-top:4px;padding-bottom:4px}.paper-exercises-list{display:flex;flex-direction:column;flex:1;justify-content:space-between;gap:16px}.paper-exercise-item{display:flex;flex-direction:column;flex:1;justify-content:space-between;min-height:0;padding-bottom:12px}.paper-exercise-item.editing-active{flex:0 0 auto;min-height:max-content;justify-content:flex-start}.paper-exercise-item .formatted-math-content{font-size:14px;line-height:1.6}.paper-exercise-item .katex-display{margin:.65em 0;padding:4px 8px}.paper-container.layout-compact{padding:20px 28px!important;min-height:1080px!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important}.paper-container.layout-compact .paper-header{padding-bottom:.4rem!important;margin-bottom:.4rem!important;flex-shrink:0!important}.paper-container.layout-compact .paper-title{margin-top:.3rem!important;font-size:1.15rem!important}.paper-container.layout-compact .paper-school-row{margin:1px 0!important;font-size:.82rem!important}.paper-container.layout-compact .paper-student-row{font-size:.82rem!important;margin-top:3px!important}.paper-container.layout-compact .paper-instruction{font-size:.75rem!important;line-height:1.3!important;margin-bottom:.35rem!important;flex-shrink:0!important}.paper-container.layout-compact .preview-points-summary-bar{margin-bottom:.35rem!important;padding:3px 8px!important;font-size:.78rem!important;flex-shrink:0!important}.paper-container.layout-compact .paper-exercises-list{display:flex!important;flex-direction:column!important;flex:1 1 auto!important;justify-content:space-between!important;gap:4px!important;margin:4px 0!important}.paper-container.layout-compact .paper-exercise-item{display:flex!important;flex-direction:column!important;flex:1 1 auto!important;justify-content:space-between!important;padding-bottom:4px!important;margin-bottom:2px!important;gap:2px!important;border-bottom:1px dashed #cbd5e1!important}.paper-container.layout-compact .exercise-num-title{font-size:.85rem!important}.paper-container.layout-compact .formatted-math-content{font-size:12px!important;line-height:1.35!important}.paper-container.layout-compact .katex-display{margin:.2em 0!important;padding:1px 4px!important}.paper-container.layout-compact .exercise-answer-space{display:none!important}.paper-container.layout-compact .paper-eval-grid{margin-top:auto!important;flex-shrink:0!important;padding-top:0!important;font-size:.75rem!important}.paper-container.layout-compact .paper-eval-grid .grid-cell-header,.paper-container.layout-compact .paper-eval-grid .grid-cell-value{padding:3px 6px!important;font-size:.75rem!important}@media print{@page{size:A4 portrait;margin:8mm 10mm}.paper-container{height:100vh!important;max-height:100vh!important;min-height:100vh!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important;padding:0!important;box-sizing:border-box!important;page-break-inside:avoid!important;break-inside:avoid!important}.paper-exercises-list{flex:1!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important}.paper-eval-grid{margin-top:auto!important;flex-shrink:0!important;padding-top:0!important}.paper-container.layout-compact{padding:0!important;height:100vh!important;max-height:100vh!important;overflow:hidden!important;page-break-inside:avoid!important;break-inside:avoid!important}.paper-container.layout-compact .paper-exercise-item{page-break-inside:avoid!important;break-inside:avoid!important;padding-bottom:3px!important;margin-bottom:2px!important}.paper-container.layout-compact .exercise-answer-space{display:none!important}}.config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.config-grid>.form-group{min-width:0}.config-grid .form-input,.config-grid .form-select{width:100%;min-width:0;max-width:100%;box-sizing:border-box}[data-tour=config-panel] .config-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}[data-tour=config-panel] .form-help{display:block;max-width:100%;white-space:normal;overflow-wrap:anywhere;font-size:13px;line-height:1.45}.progressive-flow-nav{position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;align-items:center;background:var(--bg-card, #ffffff);border-bottom:2px solid var(--border-color, #cbd5e1);padding:8px 24px;box-shadow:0 2px 4px #0000000a}.progressive-flow-steps{display:flex;align-items:center;gap:12px}.flow-step-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;border:1px solid var(--border-color, #cbd5e1);background:var(--bg-card-secondary, #f8fafc);color:var(--text-muted, #475569);font-weight:600;font-size:14px;cursor:pointer;transition:all .2s ease}.flow-step-btn:hover{background:var(--bg-app, #f1f5f9);color:var(--text-main, #1e293b)}.flow-step-btn.active{background:var(--accent-blue, #2563eb);color:#fff;border-color:var(--accent-blue, #2563eb);box-shadow:0 2px 6px #2563eb40}.flow-step-number{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#ffffff40;font-size:12px;font-weight:700}.flow-step-btn:not(.active) .flow-step-number{background:var(--border-color, #cbd5e1);color:var(--text-main, #1e293b)}.flow-step-arrow{color:var(--border-color, #cbd5e1);font-size:18px}.presets-container{margin-bottom:16px;padding:14px;background:var(--bg-card-secondary, #f8fafc);border:1px solid var(--border-color, #cbd5e1);border-radius:10px}.presets-title{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:700;margin-bottom:10px;color:var(--text-title, #0f172a)}.presets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.preset-chip-btn{display:flex;flex-direction:column;align-items:flex-start;padding:8px 10px;border-radius:6px;border:1px solid var(--border-color, #cbd5e1);background:var(--bg-card, #ffffff);color:var(--text-main, #1e293b);font-size:13px;font-weight:600;cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease}.preset-chip-btn:hover{border-color:var(--accent-blue, #2563eb);background:var(--accent-blue-light, #eff6ff)}.preset-chip-desc{font-size:11px;font-weight:400;color:var(--text-muted, #64748b);margin-top:2px}.selected-topics-badge-bar{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;padding:8px 10px;background:var(--accent-blue-light, #eff6ff);border:1px solid var(--accent-blue-border, #bfdbfe);border-radius:6px}.topic-badge-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;background:#fff;border:1px solid #93c5fd;border-radius:12px;font-size:12px;font-weight:600;color:#1e40af}@media(max-width:1024px){.main-layout{grid-template-columns:minmax(280px,320px) minmax(0,1fr);gap:14px;padding:14px}.paper-container{padding:20px 24px}}@media(max-width:960px){.main-layout{display:flex;flex-direction:column;padding:12px}.sidebar-panel{width:100%}.progressive-flow-nav{padding:8px 12px}.flow-step-btn{padding:6px 10px;font-size:13px}}
