:root{--primary-color: #3b82f6;--primary-color-rgb: 59, 130, 246;--primary-hover: #2563eb;--accent-color: #9333ea;--accent-rgb: 147, 51, 234;--bg-color: #f7f7f8;--bg-secondary: #f4f4f5;--bg-tertiary: #e4e4e7;--bg-hover: #e4e4e7;--surface-color: #ffffff;--surface-color-rgb: 255, 255, 255;--border-color: rgba(161, 161, 170, .15);--text-primary: #18181b;--text-secondary: #52525b;--text-tertiary: #71717a;--glass-base-bg: rgba(248, 250, 252, .75);--glass-base-border: rgba(226, 232, 240, .6);--glass-base-blur: 24px;--glass-surface-bg: rgba(255, 255, 255, .85);--glass-surface-border: rgba(255, 255, 255, .8);--glass-surface-blur: 16px;--card-glass-bg: rgba(255, 255, 255, .75);--card-glass-border: rgba(255, 255, 255, .8);--glass-overlay-bg: rgba(255, 255, 255, .8);--glass-overlay-border: rgba(255, 255, 255, .6);--glass-overlay-blur: 24px;--radius-pill: 9999px;--radius-xl: 32px;--radius-lg: 24px;--radius-md: 16px;--radius-sm: 8px;--radius-xs: 4px;--input-border-width: 1px;--input-border-width-focus: 2px;--input-focus-bg: var(--surface-color);--input-fill-bg: var(--bg-secondary);--card-input-padding: 12px 16px;--shadow-sm: 0 1px 3px rgba(15, 23, 42, .05);--shadow-md: 0 4px 12px -2px rgba(15, 23, 42, .08), 0 2px 6px -1px rgba(15, 23, 42, .04);--shadow-lg: 0 12px 32px -4px rgba(15, 23, 42, .12), 0 4px 12px -2px rgba(15, 23, 42, .06);--shadow-xl: 0 24px 48px -12px rgba(15, 23, 42, .15);--shadow-elevation: 0 2px 5px rgba(0, 0, 0, .1), 0 1px 1px rgba(0, 0, 0, .05);--success-color: #10b981;--success-rgb: 16, 185, 129;--success-light: rgba(16, 185, 129, .15);--warning-color: #f59e0b;--warning-rgb: 245, 158, 11;--warning-light: rgba(245, 158, 11, .12);--error-color: #ef4444;--error-hover: #dc2626;--error-rgb: 239, 68, 68;--error-light: rgba(239, 68, 68, .15);--close-btn-bg: transparent;--close-btn-color: var(--text-secondary);--close-btn-hover-bg: var(--error-light);--close-btn-hover-color: var(--error-color);--icon-btn-color: var(--text-secondary);--icon-btn-hover: var(--primary-color);--icon-btn-muted: var(--text-tertiary);--item-idle-bg: rgba(0, 0, 0, .02);--item-hover-bg: rgba(0, 0, 0, .03);--item-active-bg: rgba(0, 0, 0, .05);--item-hover-bg-elevated: var(--bg-tertiary);--purple-color: #9333ea;--purple-rgb: 147, 51, 234;--purple-light: rgba(147, 51, 234, .15);--neutral-light: rgba(161, 161, 170, .15);--info-color: #3b82f6;--info-rgb: 59, 130, 246;--info-light: rgba(59, 130, 246, .15);--grade-range-0-4: #EF4444;--grade-range-4-8: #F97316;--grade-range-8-12: #EAB308;--grade-range-12-16: #14b8a6;--grade-range-16-20: #22c55e;--ease-material: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.32, .72, 0, 1);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--transition-fast: .15s var(--ease-material);--transition-base: .3s var(--ease-material);--transition-spring: .5s var(--ease-spring);--transition-bounce: .5s var(--ease-bounce);--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-xs: .75rem;--font-sm: .8125rem;--font-base: .875rem;--font-md: 1rem;--font-lg: 1.125rem;--font-xl: 1.25rem;--font-2xl: 1.5rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--gap-xs: var(--space-2);--gap-sm: var(--space-3);--gap-md: var(--space-4);--gap-lg: var(--space-5);--gap-xl: var(--space-6);--sidebar-width: 460px;--glow-highlight: rgba(59, 130, 246, .6);--gradient-primary: linear-gradient(135deg, var(--primary-color) 0%, var(--purple-color) 100%);--gradient-ai: linear-gradient(135deg, var(--primary-color) 0%, var(--purple-color) 100%);--gradient-warning: linear-gradient(135deg, var(--warning-color) 0%, #ea580c 100%);--warning-hover: #ea580c;--z-negative: -1;--z-normal: 1;--z-base: 1;--z-sidebar: 50;--z-focus-panel-backdrop: 590;--z-focus-panel: 600;--z-header: 700;--z-dropdown: 100;--z-sticky: 500;--z-modal-backdrop: 900;--z-modal: 1000;--z-tooltip: 1100;--z-toast: 2000;--z-skip-link: 10000;--scrollbar-width: 6px;--modal-backdrop-bg: rgba(0, 0, 0, .5);--modal-backdrop-blur: 8px;--modal-bg: var(--surface-color);--modal-radius: var(--radius-lg);--modal-border: 1px solid var(--border-color);--modal-shadow: var(--shadow-lg);--modal-width: 900px;--modal-max-height: 90vh;--modal-padding: 16px;--modal-padding-spacious: 24px;--modal-header-height: 60px;--modal-header-padding: 16px 20px;--modal-header-border: 1px solid var(--border-color);--modal-footer-height: 56px;--modal-footer-padding: 12px 20px;--modal-footer-border: 1px solid var(--border-color);--modal-btn-height: 40px;--close-btn-size: 32px;--close-btn-icon-size: 18px;--guide-panel-bg: rgba(244, 244, 245, .5);--card-item-bg: var(--surface-color);--card-item-border: 1px solid var(--border-color);--card-item-radius: var(--radius-lg);--card-item-shadow: none;--card-item-hover-border-color: rgba(var(--primary-color-rgb), .3);--card-item-hover-shadow: 0 2px 8px rgba(0, 0, 0, .07)}[data-theme=dark]{--primary-color: #60a5fa;--primary-color-rgb: 96, 165, 250;--primary-hover: #3b82f6;--purple-color: #a78bfa;--purple-rgb: 167, 139, 250;--neutral-light: rgba(161, 161, 170, .15);--bg-color: #09090b;--bg-secondary: #18181b;--bg-tertiary: #27272a;--surface-color: #18181b;--surface-color-rgb: 24, 24, 27;--bg-hover: #27272a;--border-color: rgba(255, 255, 255, .06);--text-primary: #fafafa;--text-secondary: #a1a1aa;--text-tertiary: #71717a;--glass-base-bg: rgba(9, 9, 11, .7);--glass-base-border: rgba(255, 255, 255, .06);--glass-surface-bg: rgba(24, 24, 27, .75);--glass-surface-border: rgba(255, 255, 255, .08);--glass-overlay-bg: rgba(9, 9, 11, .75);--glass-overlay-border: rgba(255, 255, 255, .06);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 32px -4px rgba(0, 0, 0, .6);--shadow-elevation: 0 2px 8px rgba(0, 0, 0, .4);--glow-highlight: rgba(96, 165, 250, .4);--gradient-primary: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%);--gradient-ai: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%);--card-glass-bg: rgba(24, 24, 27, .6);--card-glass-border: rgba(255, 255, 255, .06);--guide-panel-bg: rgba(255, 255, 255, .03);--card-item-hover-border-color: rgba(var(--primary-color-rgb), .35);--card-item-hover-shadow: 0 2px 8px rgba(0, 0, 0, .25);--icon-btn-hover: var(--text-primary);--item-idle-bg: rgba(255, 255, 255, .03);--item-hover-bg: rgba(255, 255, 255, .07);--item-active-bg: rgba(255, 255, 255, .1);--item-hover-bg-elevated: rgba(255, 255, 255, .12)}*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}::selection{background:rgba(var(--primary-color-rgb),.15);color:var(--primary-color)}html{scroll-behavior:smooth;font-family:var(--font-sans)}body{margin:0;padding:0;background:var(--bg-color);color:var(--text-primary);font-size:14px;line-height:1.5;overflow:hidden}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;color:var(--text-primary);letter-spacing:-.02em}a{color:var(--primary-color);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--primary-hover)}a.btn:hover,a.btn-ai:hover,a.btn-secondary:hover,a.btn-purple:hover{color:#fff}a.btn-secondary:hover{color:var(--primary-color)}::-webkit-scrollbar{width:var(--scrollbar-width);height:var(--scrollbar-width)}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#a1a1aa66;border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@keyframes appFadeInBlur{0%{opacity:0;filter:blur(8px);transform:translateY(12px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}.app-loading .header{animation:appFadeInBlur .6s var(--ease-spring) both}.app-loading .stats-container{animation:appFadeInBlur .6s var(--ease-spring) .08s both}.app-loading .output-header{animation:appFadeInBlur .6s var(--ease-spring) .15s both}.app-loading #outputList{animation:appFadeInBlur .6s var(--ease-spring) .22s both}.app-loading .fab-add-student{animation:appFadeInBlur .6s var(--ease-spring) .3s both}.app-loading .stat-card:nth-child(1){animation:appFadeInBlur .6s var(--ease-spring) .05s both}.app-loading .stat-card:nth-child(2){animation:appFadeInBlur .6s var(--ease-spring) .1s both}.app-loading .stat-card:nth-child(3){animation:appFadeInBlur .6s cubic-bezier(.32,.72,0,1) .15s both}@media (prefers-reduced-motion: reduce){.app-loading .header,.app-loading .stats-container,.app-loading .stat-card,.app-loading .output-header,.app-loading #outputList,.app-loading .fab-add-student{animation:none}}.app-layout{display:grid;grid-template-columns:1fr;grid-template-areas:"main";gap:0;height:100dvh;padding:0;background-color:var(--bg-color);overflow:hidden;position:relative;transition:all var(--transition-base)}.main-content-wrapper{grid-area:main;height:100%;display:flex;flex-direction:column;border-radius:0;overflow:hidden}.main-content{flex-grow:1;min-height:0;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;--content-padding-x: var(--space-6);padding:calc(56px + var(--content-padding-x)) var(--content-padding-x) 80px;max-width:none;width:100%;margin:0;display:flex;flex-direction:column}.output-section{margin:0;padding:0;position:relative}.section-title{font-size:var(--font-2xl);font-weight:600;color:var(--text-primary);margin:0}.sub-section-title{font-size:var(--font-xl);font-weight:600;color:var(--text-primary);margin:0;display:flex;align-items:center;gap:10px}.header{flex-shrink:0;height:56px;background:rgba(var(--surface-color-rgb),.65);backdrop-filter:blur(16px) saturate(120%);-webkit-backdrop-filter:blur(16px) saturate(120%);border-bottom:1px solid var(--card-glass-border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);position:absolute;top:0;left:0;width:100%;z-index:var(--z-header);transition:background var(--transition-base),border-color var(--transition-base)}.header-logo{display:flex;align-items:center;flex-shrink:0}.header-logo img{height:36px;width:auto;object-fit:contain}.header-center{display:flex;justify-content:center;flex-grow:1}.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}#sidebarToggle{margin-left:-8px}#sidebarToggle i{transition:transform var(--transition-base)}.app-layout.sidebar-collapsed #sidebarToggle i{transform:rotate(180deg)}.header-context-chip{display:flex;align-items:center;gap:8px;background-color:transparent;border-radius:var(--radius-pill);padding:0 12px;height:38px;font-size:.95rem;font-weight:600;color:var(--text-primary);cursor:pointer;transition:all .2s var(--ease-spring);border:1px solid transparent;box-shadow:none;position:relative;overflow:visible}.header-context-chip:hover,.header-context-chip.active{border-color:transparent;background-color:var(--surface-color);box-shadow:var(--shadow-elevation);transform:translateY(-1px);color:var(--text-primary)}[data-theme=dark] .header-context-chip:hover,[data-theme=dark] .header-context-chip.active{box-shadow:var(--shadow-elevation)}.header-context-chip:active{transform:scale(.98);box-shadow:none;background-color:#00000014}.header-context-chip .icon{color:var(--text-secondary);transition:color var(--transition-fast);display:flex;align-items:center;justify-content:center;font-size:18px}.header-context-chip:hover .icon{color:var(--primary-color)}.ai-model-chip{background:linear-gradient(135deg,rgba(var(--primary-color-rgb),.08),rgba(var(--primary-color-rgb),.15));border:1px solid rgba(var(--primary-color-rgb),.2);position:relative;overflow:hidden;transition:all .2s var(--ease-spring);box-shadow:none}.ai-model-chip .icon{color:var(--primary-color)}.ai-model-chip:hover{background:linear-gradient(135deg,rgba(var(--primary-color-rgb),.15),rgba(var(--primary-color-rgb),.25));border-color:var(--primary-color);box-shadow:var(--shadow-elevation);transform:translateY(-1px)}[data-theme=dark] .ai-model-chip:hover{box-shadow:var(--shadow-elevation)}.ai-model-chip.generating{animation:none;border:1px solid transparent!important;background-image:linear-gradient(var(--surface-color),var(--surface-color)),conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.6) 0%,rgba(var(--primary-color-rgb),.6) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.6) 32%,rgba(var(--primary-color-rgb),.6) 50%,rgba(var(--primary-color-rgb),.6) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.6) 82%,rgba(var(--primary-color-rgb),.6) 100%);background-origin:padding-box,border-box;background-clip:padding-box,border-box;animation:rotate-gradient 8s linear infinite;box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.12),var(--shadow-elevation);transform:translateY(-1px)}[data-theme=dark] .ai-model-chip.generating{box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.12),0 2px 8px #0006}.ai-model-chip.generating:before{display:none}.ai-model-chip.generating:after{display:none}.ai-model-chip.fallback-active{animation:switch-shake .5s cubic-bezier(.36,.07,.19,.97) both;background:linear-gradient(135deg,#f59e0b33,#fbbf2440);border-color:var(--warning-color);box-shadow:0 0 15px #f59e0b4d}.ai-model-chip.fallback-active .icon{color:var(--warning-color);transform:scale(1.1);transition:transform var(--transition-base)}.ai-model-chip.fallback-active #headerAiModelName{color:var(--warning-hover);font-weight:600}@keyframes switch-shake{0%{transform:scale(1)}15%{transform:scale(1.05) rotate(-2deg)}30%{transform:scale(1.05) rotate(2deg)}45%{transform:scale(1.05) rotate(-2deg)}60%{transform:scale(1.05) rotate(1deg)}75%{transform:scale(1) rotate(0)}to{transform:scale(1)}}.ai-model-chip .model-name-transition{display:inline-block;transition:opacity var(--transition-fast),transform var(--transition-fast)}.ai-model-chip .exit-up{opacity:0;transform:translateY(-15px)}.ai-model-chip .enter-from-down,.ai-model-chip .exit-down{opacity:0;transform:translateY(15px)}.ai-model-chip .enter-from-up{opacity:0;transform:translateY(-15px)}.ai-model-chip .fallback-indicator{display:none;font-size:10px;padding:2px 6px;background:var(--gradient-warning);color:#fff;border-radius:var(--radius-pill);margin-left:6px;font-weight:600;animation:badge-appear .3s ease-out}.ai-model-chip.fallback-active .fallback-indicator{display:inline-flex;align-items:center;gap:4px}@keyframes badge-appear{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.ai-model-chip .model-text-container{display:flex;align-items:center}.header-actions-pill{display:flex;align-items:center;background-color:transparent;border-radius:0;padding:0;gap:8px;border:none;transition:all var(--transition-fast);position:relative;height:38px}.header-actions-pill:before{content:"";display:block;width:1px;height:24px;background-color:var(--border-color);opacity:.6;margin-right:4px;margin-left:4px}.header-actions-pill:hover{border-color:transparent;background-color:transparent}.cloud-sync-indicator.minimal-cloud{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;position:relative;border:none;background:transparent;color:var(--text-tertiary);transition:all var(--transition-fast)}.cloud-sync-indicator.minimal-cloud:hover{color:var(--text-primary);background-color:var(--surface-color);box-shadow:var(--shadow-elevation);transform:translateY(-1px)}.cloud-sync-indicator.minimal-cloud:active{transform:scale(.92);background-color:var(--surface-color);box-shadow:none}[data-theme=dark] .cloud-sync-indicator.minimal-cloud:hover{background-color:var(--surface-color);box-shadow:var(--shadow-elevation)}.cloud-sync-indicator.minimal-cloud i.fa-cloud,.cloud-sync-indicator.minimal-cloud i.fa-hard-drive{font-size:20px;color:#fff;filter:drop-shadow(0 1px 1px rgba(0,0,0,.1));-webkit-text-stroke:1px #374151;transition:all var(--transition-fast)}.cloud-sync-indicator.minimal-cloud .cloud-status-badge{position:absolute;bottom:6px;right:6px;width:8px;height:8px;border-radius:50%;background-color:transparent;border:2px solid var(--bg-secondary);padding:0;pointer-events:none}.cloud-sync-indicator.minimal-cloud .cloud-status-badge i{display:none}.cloud-sync-indicator.connected,[data-theme=dark] .cloud-sync-indicator.connected{color:inherit}.cloud-sync-indicator.connected:hover{background-color:var(--surface-color);box-shadow:var(--shadow-elevation)}[data-theme=dark] .cloud-sync-indicator.connected:hover{background-color:var(--surface-color)}.cloud-sync-indicator.connected .cloud-status-badge{background:var(--success-color);border:2px solid var(--surface-color);box-shadow:none;width:10px;height:10px;bottom:4px;right:4px}.cloud-sync-indicator.expired{color:inherit;cursor:pointer;background-color:transparent}.cloud-sync-indicator.expired:hover{background-color:var(--surface-color);box-shadow:var(--shadow-elevation);transform:translateY(-1px)}.cloud-sync-indicator.expired .cloud-status-badge{background:var(--warning-color);border:2px solid var(--surface-color);width:10px;height:10px;bottom:4px;right:4px}.cloud-sync-indicator.syncing{color:var(--text-tertiary)!important;cursor:wait}.cloud-sync-indicator.syncing .cloud-status-badge{display:block!important;background:transparent!important;border:2px solid rgba(156,163,175,.3);border-top-color:var(--primary-color);border-radius:50%;width:10px;height:10px;bottom:4px;right:4px;box-shadow:none;animation:spin-badge .8s linear infinite;z-index:10}.cloud-sync-indicator.syncing i.fa-cloud,.cloud-sync-indicator.syncing i.fa-hard-drive{animation:none!important;transform:none!important}.cloud-sync-indicator.local .cloud-status-badge{display:none}@keyframes spin-badge{to{transform:rotate(360deg)}}.menu-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.menu-btn i,.menu-btn iconify-icon{font-size:20px}.menu-btn:hover,.menu-btn.active{background-color:var(--surface-color);color:var(--text-primary);box-shadow:var(--shadow-elevation);transform:translateY(-1px)}.menu-btn:active{transform:scale(.92);background-color:var(--surface-color);box-shadow:none}[data-theme=dark] .menu-btn:hover,[data-theme=dark] .menu-btn.active{background-color:var(--surface-color);box-shadow:var(--shadow-elevation)}.menu-btn.has-update{flex-direction:row;gap:3px;color:var(--text-secondary)}.menu-btn.has-update:before,.menu-btn.has-update:after,.menu-btn.has-update i,.menu-btn.has-update iconify-icon{content:"";display:block;width:3.5px;height:3.5px;min-width:3.5px;min-height:3.5px;border-radius:50%;background-color:var(--text-secondary);transition:all .4s cubic-bezier(.2,.8,.2,1);animation:organic-pulse-dots 2.2s infinite cubic-bezier(.45,.05,.55,.95);font-size:0;line-height:0;padding:0;margin:0;border:none}.menu-btn.has-update i:before,.menu-btn.has-update iconify-icon::part(svg){display:none!important}.menu-btn.has-update iconify-icon{background:transparent}.menu-btn.has-update:before{animation-delay:0s}.menu-btn.has-update i,.menu-btn.has-update iconify-icon{animation-delay:.15s}.menu-btn.has-update:after{animation-delay:.3s}@keyframes organic-pulse-dots{0%,to{background-color:var(--text-secondary);transform:scale(1);box-shadow:none;opacity:.8}50%{background-color:var(--primary-color);transform:scale(1.6);box-shadow:0 0 8px rgba(var(--primary-color-rgb),.6);opacity:1}}.menu-item.update-item{background-color:rgba(var(--primary-color-rgb),.08);color:var(--primary-color);font-weight:500;margin-bottom:4px}.menu-item.update-item:hover{background-color:rgba(var(--primary-color-rgb),.15)}.menu-item.update-item i{color:var(--primary-color)}.dropdown-wrapper{position:relative}.header-dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;width:200px;background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:0 10px 40px -10px #0000001a,0 0 10px #0000000d;padding:6px;display:none;flex-direction:column;gap:2px;z-index:1000;transform-origin:top right;animation:menu-open .2s cubic-bezier(.2,.8,.2,1) forwards}[data-theme=dark] .header-dropdown-menu{box-shadow:0 10px 40px -5px #0006,0 0 0 1px #ffffff0d}.header-dropdown-menu.open{display:flex}@keyframes menu-open{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.menu-item,.menu-item-row{display:flex;align-items:center;width:100%;padding:8px 12px;font-size:14px;color:var(--text-secondary);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:all var(--transition-fast);gap:10px}.menu-item-row{justify-content:space-between;cursor:default}.menu-item:hover,.menu-item-row:hover{color:var(--primary-color);background-color:var(--item-hover-bg)}[data-theme=dark] .menu-item:hover,[data-theme=dark] .menu-item-row:hover{color:var(--text-primary)}.menu-item i,.menu-item iconify-icon{font-size:18px;color:var(--icon-btn-color);min-width:24px;display:flex;justify-content:center;align-items:center;transition:color var(--transition-fast)}.menu-item:hover i,.menu-item:hover iconify-icon{color:var(--icon-btn-hover)}.cloud-save-menu-item{display:grid!important;grid-template-columns:24px 1fr;grid-template-rows:auto auto;column-gap:10px;row-gap:0;align-items:center;padding:8px 12px;height:auto}.cloud-save-menu-item>iconify-icon{grid-row:1 / span 2;grid-column:1;position:static;transform:none;font-size:18px;justify-self:start;color:var(--text-secondary);margin-top:2px}.cloud-save-menu-item:hover>iconify-icon{color:var(--text-primary)}.cloud-save-menu-item .cloud-save-label{grid-column:2;grid-row:1;margin:0;font-weight:500;color:var(--text-secondary);font-size:14px;line-height:1.2}.cloud-save-menu-item:hover .cloud-save-label{color:var(--primary-color)}[data-theme=dark] .cloud-save-menu-item:hover .cloud-save-label{color:var(--text-primary)}.cloud-save-menu-item .cloud-save-time{grid-column:2;grid-row:2;margin:0;font-size:10px;color:var(--text-tertiary);font-weight:400;line-height:1.2}.cloud-save-menu-item:hover .cloud-save-time{color:var(--text-secondary)}.cloud-save-menu-item.saving{cursor:wait;opacity:.7}.cloud-save-menu-item.saving .cloud-save-label:after{content:"...";animation:ellipsis 1.2s steps(4,end) infinite}@keyframes ellipsis{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.cloud-save-menu-item.disabled{opacity:.4;pointer-events:none;cursor:not-allowed}.cloud-save-menu-item.disabled>iconify-icon,.cloud-save-menu-item.disabled .cloud-save-label{color:var(--text-tertiary)}.cloud-connect-item{font-weight:500}.cloud-connect-item iconify-icon{font-size:18px;min-width:24px;display:inline-flex;justify-content:center}.cloud-connect-item.saving{cursor:wait;opacity:.7}.cloud-reconnect-item{background-color:transparent;color:var(--warning-color);font-weight:500}.cloud-reconnect-item:hover{color:var(--warning-hover)}.cloud-reconnect-item iconify-icon{font-size:18px;display:inline-flex;min-width:24px;justify-content:center;transition:opacity var(--transition-fast)}.cloud-reconnect-item:hover iconify-icon{opacity:.85}#darkModeToggle{width:36px;height:20px;background-color:var(--border-color);border-radius:20px;border:none;position:relative;cursor:pointer;padding:0;transition:background-color .3s;flex-shrink:0}#darkModeToggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background-color:#fff;transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px #0003}[data-theme=dark] #darkModeToggle{background-color:var(--primary-color)}[data-theme=dark] #darkModeToggle:after{transform:translate(16px)}#darkModeToggle i{display:none}.menu-separator{height:1px;background-color:var(--border-color);margin:4px 0;width:100%}.pill-divider{display:none}.cloud-sync-indicator{position:relative}.cloud-sync-indicator:hover i.fa-cloud{transform:none}.cloud-status-badge{position:absolute;bottom:3px;right:3px;border-radius:50%;width:12px;height:12px;display:flex;align-items:center;justify-content:center;pointer-events:none;font-size:7px;line-height:1}.cloud-status-badge i{font-size:7px}@keyframes cloud-pulse{0%,to{transform:scale(1)}50%{transform:scale(1)}}.cloud-sync-indicator.syncing{color:var(--primary-color)}.cloud-sync-indicator.syncing>i.fa-cloud{animation:cloud-sync-spin 1.5s linear infinite}.cloud-sync-indicator.syncing .cloud-status-badge{display:none}@keyframes cloud-sync-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cloud-sync-indicator.local{color:var(--text-tertiary);cursor:pointer;opacity:.8}.cloud-sync-indicator.local:hover{color:var(--text-primary);opacity:1;background-color:#0000000d}[data-theme=dark] .cloud-sync-indicator.local:hover{background-color:#ffffff0d}.cloud-sync-indicator.disconnected{color:var(--text-tertiary);opacity:.5}.cloud-sync-indicator:not(.syncing){cursor:pointer}.sidebar-header{display:flex;justify-content:space-between;align-items:center;position:relative;padding:calc(24px * (1 - var(--header-progress, 0))) 24px 0;margin-bottom:18px;overflow:visible;box-shadow:0 2px 4px rgba(0,0,0,calc(.05 * var(--header-progress, 0)));background:none;flex-shrink:0;transition:none}.sidebar-title-group{display:flex;align-items:center;gap:12px}.sidebar .section-title{font-size:var(--font-xl);font-weight:700;color:var(--text-primary)}.input-panels-wrapper{flex-grow:1;overflow-y:auto;padding:var(--space-5) var(--space-6) var(--space-6);background:none;border-top:1px solid var(--border-color)}.sidebar-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-color);background:var(--surface-color);flex-shrink:0}.sidebar-footer .btn-secondary#resetFormBtn,.sidebar-footer .btn-secondary#clearImportBtn{font-size:12px;padding:8px 12px;opacity:.8}.sidebar-footer .btn-secondary#resetFormBtn:hover,.sidebar-footer .btn-secondary#clearImportBtn:hover{opacity:1}.generation-buttons-group{display:flex;gap:8px;flex:1;justify-content:flex-end}.single-student-actions,.mass-import-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}@media (max-width: 1024px){.main-content{--content-padding-x: var(--space-6);padding:var(--space-6) var(--content-padding-x);padding-top:calc(56px + var(--space-5))}}@media (max-width: 768px){:root{--sidebar-width: 85%}.app-layout{grid-template-columns:1fr}.main-content{--content-padding-x: 16px;padding:16px var(--content-padding-x);padding-top:64px}.header{padding:0 var(--space-3);gap:6px;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border-color) transparent;flex-wrap:nowrap}.header::-webkit-scrollbar{height:4px}.header::-webkit-scrollbar-track{background:transparent}.header::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:4px}.header-center,.class-selector-wrapper,.header-context-chip,.header-actions,.header-gen-dashboard,.header-actions-pill{flex-shrink:0;min-width:max-content}.header-center{gap:4px}.header-context-chip{padding:6px 10px;gap:6px}.ai-model-chip{padding:6px 10px}.section-title{font-size:var(--font-xl)}.sub-section-title{font-size:1.1rem}.header-dropdown-menu{position:fixed!important;top:56px!important;right:12px!important;left:auto!important;width:200px;z-index:9999}}@media (max-width: 480px){.main-content{--content-padding-x: 12px;padding:12px var(--content-padding-x);padding-top:60px}.header{gap:4px;padding:0 var(--space-2)}.class-selector-wrapper,.header-context-chip,.header-actions,.header-center,.header-actions-pill{flex-shrink:0;min-width:max-content}.header-context-chip{padding:6px 8px;gap:4px}.header-actions{gap:4px}.header-center{gap:2px}.header-actions-pill{padding:3px}.pill-segment{width:36px;height:36px}.pill-segment i{font-size:var(--font-sm)}.section-title{font-size:1.1rem}.sub-section-title{font-size:1rem}.input-panels-wrapper{padding:12px 12px 0}.sidebar-footer{padding:12px}.sidebar-header{padding:calc(16px * (1 - var(--header-progress, 0))) 16px 0;margin-bottom:16px}#appLogo{height:calc(32px * (1 - var(--header-progress, 0)))}.sidebar .section-title{font-size:1.1rem}}@keyframes premium-context-switch{0%{transform:scale(1);filter:blur(0);opacity:1}30%{transform:scale(.98);filter:blur(4px);opacity:.85}50%{transform:scale(.98);filter:blur(8px);opacity:.85}70%{transform:scale(.98);filter:blur(4px);opacity:.85}to{transform:scale(1);filter:blur(0);opacity:1}}.card-refresh-animation{animation:premium-context-switch .4s cubic-bezier(.25,.46,.45,.94) forwards;will-change:transform,filter,opacity;backface-visibility:hidden}@keyframes period-slide-switch{0%{transform:translate(0) scale(1);filter:blur(0);opacity:1}40%{transform:translate(-12px) scale(.99);filter:blur(3px);opacity:.9}60%{transform:translate(12px) scale(.99);filter:blur(3px);opacity:.9}to{transform:translate(0) scale(1);filter:blur(0);opacity:1}}.period-refresh-animation{animation:period-slide-switch .35s cubic-bezier(.25,.46,.45,.94) forwards;will-change:transform,filter,opacity;backface-visibility:hidden}.btn{background:var(--primary-color);color:#fff;border:none;padding:0 20px;height:40px;border-radius:var(--radius-md);cursor:pointer;font-size:13px;font-weight:600;transition:all var(--transition-fast);display:inline-flex;justify-content:center;align-items:center;gap:8px}.btn i,.btn iconify-icon{color:inherit;font-size:1.15em;opacity:.95}.btn:hover:not(:disabled){background:var(--primary-hover)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-secondary{background:transparent;color:var(--text-primary);border:1px solid var(--border-color);box-shadow:none}.btn-secondary:hover:not(:disabled){background:var(--item-hover-bg);border-color:rgba(var(--primary-color-rgb),.3);color:var(--primary-color);box-shadow:none}[data-theme=dark] .btn-secondary:hover:not(:disabled){color:var(--text-primary)}.btn-danger{background:var(--error-color)}.btn-danger:hover:not(:disabled){background:var(--error-hover, var(--error-color))}.btn-danger-outline{background:transparent;color:var(--error-color);border:1px solid rgba(239,68,68,.3);box-shadow:none}.btn-danger-outline:hover:not(:disabled){background:#ef444414;border-color:var(--error-color);box-shadow:none}.btn-success{background-color:var(--success-color);color:#fff}.btn-success:hover:not(:disabled){background-color:var(--success-hover, var(--success-color));box-shadow:0 4px 6px -1px rgba(var(--success-rgb, 16, 185, 129),.2)}.btn-warning{background:var(--warning-color)}.btn-warning:hover:not(:disabled){background:var(--warning-hover, var(--warning-color))}.btn-purple{background:var(--primary-color);color:#fff;box-shadow:var(--shadow-sm)}.btn-purple:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--shadow-md);transform:none}.btn-purple:active:not(:disabled){transform:scale(.98);box-shadow:var(--shadow-sm)}.btn-purple.btn-validated{background:var(--success-color);color:#fff;pointer-events:none}.btn-purple.btn-needs-validation{background:var(--primary-color);color:#fff}.btn-purple.btn-needs-validation:hover:not(:disabled){background:var(--primary-hover)}.btn-primary,.btn-ai,.btn-organic{background:var(--gradient-primary);background-size:200% auto;color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff26,0 2px 8px rgba(var(--primary-color-rgb),.2);transition:transform .4s cubic-bezier(.32,.72,0,1),box-shadow .4s cubic-bezier(.32,.72,0,1),background-position .6s ease}.btn-primary:hover:not(:disabled),.btn-organic:hover:not(:disabled){background-position:right center;box-shadow:inset 0 1px #ffffff2e,0 3px 10px rgba(var(--primary-color-rgb),.2)}.btn-primary:before,.btn-organic:before{display:none}.btn-ai:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%);pointer-events:none}.btn-ai:hover:not(:disabled):before{animation:shine-sweep 1.5s ease-in-out infinite}.btn-ai:hover:not(:disabled){background-position:right center;box-shadow:inset 0 1px #fff3,0 4px 12px rgba(var(--primary-color-rgb),.25)}.btn-primary:active:not(:disabled),.btn-ai:active:not(:disabled),.btn-organic:active:not(:disabled){transform:scale(.98);box-shadow:inset 0 2px 4px #0000001a,0 2px 6px rgba(var(--primary-color-rgb),.15)}.btn-primary:disabled,.btn-ai:disabled,.btn-organic:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);box-shadow:none}.btn-ghost:hover:not(:disabled){background:var(--item-hover-bg);border-color:rgba(var(--primary-color-rgb),.25);color:var(--primary-color);box-shadow:none}[data-theme=dark] .btn-ghost:hover:not(:disabled){color:var(--text-primary)}.btn-ghost:active:not(:disabled){transform:scale(.98);background:var(--item-active-bg)}.kbd-hint{display:inline-flex;align-items:center;justify-content:center;background:#fff3;border-radius:var(--radius-xs);padding:2px 6px;font-size:11px;font-weight:500;margin-left:8px;opacity:.85;font-family:system-ui,-apple-system,sans-serif;letter-spacing:0}.btn-link{background:none;border:none;color:var(--primary-color);text-decoration:underline;padding:0;font-size:inherit;font-family:inherit;cursor:pointer;transition:all var(--transition-fast)}.btn-link:hover{color:var(--primary-hover)}.btn-small{padding:0 14px;height:32px;font-size:12px}.btn-icon{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;font-size:1.1em;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.btn-icon:hover:not(:disabled){background-color:var(--item-hover-bg);color:var(--icon-btn-hover);border-color:rgba(var(--primary-color-rgb),.3)}[data-theme=dark] .btn-icon:hover:not(:disabled){color:var(--text-primary)}.btn-icon:active:not(:disabled){transform:scale(.95);background-color:var(--item-active-bg)}.btn-icon:disabled{opacity:.5;cursor:not-allowed}.btn-icon.danger:hover:not(:disabled){background-color:var(--error-light);color:var(--error-color);border-color:var(--error-color)}.btn-icon.warning:hover:not(:disabled){background-color:var(--warning-light);color:var(--warning-color);border-color:var(--warning-color)}.icon-button{background:transparent;border:none;border-radius:var(--radius-pill);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;font-size:1.05em;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.icon-button:hover{background-color:var(--bg-secondary);color:var(--text-primary)}.icon-button:active{transform:scale(.92);background-color:var(--bg-secondary)}.icon-button:focus-visible,.btn-icon:focus-visible,.btn:focus-visible,.btn-secondary:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.15);border-color:var(--primary-color)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.sidebar-card{background:var(--surface-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:14px;overflow:visible;border:1px solid var(--glass-surface-border);transition:box-shadow var(--transition-fast),transform var(--transition-fast),border-color var(--transition-fast)}.sidebar-card:hover{box-shadow:var(--shadow-md)}.sidebar-card-header{display:flex;align-items:center;gap:10px;padding:12px 18px;background:#00000005;border-bottom:1px solid rgba(0,0,0,.04);font-weight:600;font-size:13px;color:var(--text-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0}[data-theme=dark] .sidebar-card-header{background:#ffffff08;border-bottom-color:#ffffff0d}.sidebar-card-header i{color:var(--primary-color);font-size:13px}.sidebar-card-content{padding:18px 18px 0}.sidebar-card-content:has(.drop-zone),.sidebar-card-content:has(>textarea:last-child),.sidebar-card-content:has(>.input-with-icon:last-child),.sidebar-card-content:has(>.form-group:last-child>textarea),.sidebar-card-content:has(>.form-group:last-child>.input-with-icon){padding-bottom:18px}.sidebar-card-content .form-group:last-child{margin-bottom:0}.current-period-card{border:2px solid var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.1),var(--shadow-sm)}.current-period-card .sidebar-card-header{background:rgba(var(--primary-color-rgb),.06);border-bottom-color:rgba(var(--primary-color-rgb),.15)}.period-badge{font-size:11px;font-weight:500;color:var(--primary-color);background:rgba(var(--primary-color-rgb),.1);padding:2px 8px;border-radius:var(--radius-pill);margin-left:auto}.history-accordion{border-style:dashed;border-color:var(--border-color);opacity:.9;transition:all var(--transition-fast)}.history-accordion:hover{opacity:1;border-style:solid}.accordion-trigger{width:100%;text-align:left;cursor:pointer;border:none;background:transparent;font:inherit}.accordion-trigger:hover{background:var(--item-hover-bg)}.accordion-icon{margin-left:auto;transition:transform var(--transition-fast);font-size:12px;color:var(--text-tertiary)}.history-accordion.open .accordion-icon{transform:rotate(180deg)}.accordion-content{overflow:hidden;transition:max-height .3s ease-out,padding .3s ease-out;max-height:0;padding:0 18px}.history-accordion.open .accordion-content{max-height:1000px;padding:18px;display:block!important}.history-accordion .period-section{padding:12px;margin-bottom:12px;background:var(--bg-secondary);border-radius:var(--radius-md);border-left:3px solid var(--border-color)}.history-accordion .period-section:last-child{margin-bottom:0}.history-accordion .period-label{font-weight:600;font-size:12px;color:var(--text-secondary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.student-form,.import-section{animation:fadeSlideIn .3s ease-out}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.period-main-row,.previous-period-group .form-row{grid-template-columns:140px 1fr;align-items:start}.form-group{display:flex;flex-direction:column;margin-bottom:20px}.form-group-inline{display:flex;align-items:center;gap:8px}.form-group.full-width{grid-column:1 / -1}label{font-weight:500;margin-bottom:8px;color:var(--text-secondary);font-size:13px;display:flex;align-items:center;gap:6px}.form-group>label:first-child,#loadStudentContainer label{font-weight:600;color:var(--text-primary);font-size:14px}.label-with-action{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.label-with-action>label{margin-bottom:0}input,textarea,select{padding:12.5px 14.5px;border:1px solid transparent;border-radius:var(--radius-md);font-size:14px;background-color:var(--bg-color);color:var(--text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast);font-family:inherit;width:100%;box-shadow:inset 0 1px 2px #00000005}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 16px center;background-size:1.2em 1.2em;cursor:pointer}select option:disabled{color:var(--text-tertiary);background-color:var(--bg-secondary);font-style:italic}select option{background-color:var(--surface-color);color:var(--text-primary);padding:8px 12px}select option:checked{background-color:var(--primary-color);color:#fff}select optgroup{background-color:var(--bg-secondary);color:var(--text-secondary);font-weight:600}[data-theme=dark] select{color-scheme:dark}[data-theme=dark] select option{background-color:var(--bg-secondary);color:var(--text-primary)}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{color:var(--text-primary)}[data-theme=dark] select option:checked{background:linear-gradient(0deg,var(--primary-color) 0%,var(--primary-color) 100%);color:#fff}[data-theme=dark] select optgroup{background-color:var(--bg-color);color:var(--text-secondary)}input:not([type=range]):hover:not(:disabled):not(:focus),textarea:hover:not(:disabled):not(:focus){border:1px solid transparent!important;background-image:linear-gradient(rgba(var(--primary-color-rgb),.03),rgba(var(--primary-color-rgb),.03)),linear-gradient(var(--bg-color),var(--bg-color)),linear-gradient(90deg,rgba(var(--primary-color-rgb),.5),rgba(var(--primary-color-rgb),.5));background-origin:padding-box,padding-box,border-box;background-clip:padding-box,padding-box,border-box}select:hover:not(:disabled):not(:focus){border-color:rgba(var(--primary-color-rgb),.4);box-shadow:0 1px 3px #0000000a}input:not([type=range]):focus,textarea:focus{outline:none;background-color:transparent;border:1px solid transparent!important;background-image:linear-gradient(var(--bg-color),var(--bg-color)),conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.5) 0%,rgba(var(--primary-color-rgb),.5) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.5) 32%,rgba(var(--primary-color-rgb),.5) 50%,rgba(var(--primary-color-rgb),.5) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.5) 82%,rgba(var(--primary-color-rgb),.5) 100%);background-origin:padding-box,border-box;background-clip:padding-box,border-box;animation:rotate-gradient 10s linear infinite;box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.08),0 2px 8px rgba(var(--primary-color-rgb),.1)}select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.1)}input,textarea,select{border:1px solid var(--border-color)}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}.number-input-wrapper{display:inline-flex;align-items:stretch;gap:0;width:fit-content;background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-pill);transition:all var(--transition-fast);position:relative;overflow:hidden}.number-input-wrapper:focus-within{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.1)}.number-input-wrapper input[type=number]{flex:1;min-width:40px;max-width:60px;text-align:center;padding:8px 0;font-weight:600;font-size:14px;font-variant-numeric:tabular-nums;background:transparent!important;border:none!important;box-shadow:none!important;border-radius:0!important;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield;position:relative;z-index:0}.number-input-wrapper input[type=number]:hover,.number-input-wrapper input[type=number]:focus,.number-input-wrapper input[type=number]:hover:not(:disabled):not(:focus),.number-input-wrapper input[type=number]:focus:not(:disabled){outline:none!important;background:transparent!important;background-image:none!important;border:none!important;box-shadow:none!important;animation:none!important}.number-spinner-btn{display:flex;align-items:center;justify-content:center;width:32px;min-width:32px;height:auto;background:transparent;border:none!important;color:var(--text-secondary);cursor:pointer;font-size:10px;transition:all var(--transition-fast);padding:0;margin:0;flex-shrink:0;position:relative;z-index:0;border-radius:0!important}.number-spinner-btn:hover{background:var(--item-hover-bg);color:var(--icon-btn-hover)}.number-spinner-btn:active{transform:scale(.95);background:var(--item-active-bg)}.number-spinner-btn:focus{outline:none}.number-spinner-btn:focus-visible{background:var(--item-active-bg);color:var(--icon-btn-hover)}.preferences-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.preference-mini-card{background:var(--surface-color);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:24px;display:flex;flex-direction:column;transition:all var(--transition-base);height:100%}.preference-mini-card:hover{box-shadow:var(--shadow-lg);border-color:rgba(var(--primary-color-rgb),.3)}.preference-mini-card-header{display:flex;align-items:center;gap:12px;font-weight:600;font-size:1rem;margin-bottom:20px;color:var(--text-primary)}.preference-mini-card-header i{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color);border-radius:var(--radius-md);font-size:1rem;transition:all var(--transition-fast)}.preference-mini-card-content{display:flex;flex-direction:column;align-items:center;justify-content:space-between;flex:1;gap:16px}.preference-hint{color:var(--text-tertiary);font-size:.8rem;text-align:center;margin-top:4px;font-weight:500}.evolution-thresholds-inline{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:24px;width:100%}.threshold-item-compact{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.threshold-item-compact .threshold-label{font-size:.85rem;font-weight:600;display:flex;align-items:center;gap:8px;color:var(--text-secondary)}.threshold-item-compact .threshold-label i{font-size:.9rem}#evolutionThresholdPositive{color:var(--success-color)}#evolutionThresholdNegative{color:var(--error-color)}#loadStudentSelect{background-color:var(--bg-color);border-color:var(--border-color);font-weight:500}textarea{min-height:100px;resize:vertical}#negativeInstructions{min-height:120px;border-radius:var(--radius-md);padding:14px;font-size:14px;line-height:1.5;background:transparent!important;border:2px solid transparent!important;transition:background-color var(--transition-fast),border-color var(--transition-fast)}#negativeInstructions:hover:not(:disabled):not(:focus){background:var(--item-hover-bg)!important;background-image:none!important;border:2px solid transparent!important}#negativeInstructions:focus{outline:none!important;background:var(--item-active-bg)!important;background-image:none!important;border:2px solid transparent!important;box-shadow:none!important;animation:none!important}.input-with-icon{position:relative}.icon-inside-btn{position:absolute;right:8px;bottom:8px;background:var(--surface-color);border:1px solid var(--border-color);color:var(--text-secondary);width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);z-index:5;box-shadow:0 2px 4px #0000000d}.icon-inside-btn:hover{color:var(--primary-color);border-color:var(--primary-color);transform:scale(1.05);box-shadow:0 4px 8px #0000001a}.icon-inside-btn.recording{background-color:var(--error-color);color:#fff;border-color:var(--error-color);animation:pulsing 1.5s infinite;box-shadow:0 0 0 4px #dc262633}.input-error{border-color:var(--error-color)!important;box-shadow:none!important}.input-success{border-color:var(--success-color)!important;box-shadow:none!important}.input-warning{border-color:var(--warning-color)!important;box-shadow:none!important}.error-message{color:var(--error-color);font-size:13px;margin-top:6px;display:flex;align-items:center;gap:4px}.form-separator{border:none;height:0;background-color:transparent;margin:28px 0}.input-mode-tabs{display:flex;background:var(--bg-secondary);padding:4px;margin:0 24px 24px;border-radius:var(--radius-md);position:relative;border:1px solid var(--border-color);z-index:0}.input-mode-tabs:after{display:none}.input-mode-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;cursor:pointer;font-weight:600;font-size:13px;color:var(--text-secondary);transition:color var(--transition-base);border-radius:var(--radius-sm);background:transparent;border:none;position:relative;z-index:2}.input-mode-tab:hover{color:var(--text-primary)}.input-mode-tab.active{background:var(--surface-color);color:var(--primary-color);box-shadow:0 2px 8px #00000014}.input-mode-tabs.has-glider .input-mode-tab.active{background:transparent!important;box-shadow:none!important;color:var(--primary-color)}.input-mode-tabs.has-glider .input-mode-tab:hover{background:transparent}.drop-zone{border:2px dashed rgba(0,0,0,.1);border-radius:var(--radius-lg);padding:32px;text-align:center;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:#00000005}[data-theme=dark] .drop-zone{border-color:#ffffff1a;background:#ffffff05}.drop-zone p{font-size:14px;margin-bottom:16px;font-weight:500}.drop-zone .icon{font-size:32px;display:block;margin-bottom:10px;color:var(--text-secondary);opacity:.5;transition:all var(--transition-fast)}.drop-zone:hover{border-color:var(--primary-color);border-style:solid;background:rgba(var(--primary-color-rgb),.04);color:var(--primary-color);transform:translateY(-2px);box-shadow:0 8px 24px rgba(var(--primary-color-rgb),.12)}.drop-zone.highlight{position:relative;border-color:transparent!important;background:transparent!important;color:var(--primary-color);transform:translateY(-2px);box-shadow:0 8px 24px rgba(var(--primary-color-rgb),.15);z-index:var(--z-normal)}.drop-zone.highlight:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.6) 0%,rgba(var(--primary-color-rgb),.6) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.6) 32%,rgba(var(--primary-color-rgb),.6) 50%,rgba(var(--primary-color-rgb),.6) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.6) 82%,rgba(var(--primary-color-rgb),.6) 100%);animation:rotate-gradient 8s linear infinite;opacity:1;z-index:-2;pointer-events:none}.drop-zone.highlight:after{content:"";position:absolute;top:2.5px;right:2.5px;bottom:2.5px;left:2.5px;border-radius:var(--radius-md);background:var(--surface-color);z-index:-1;pointer-events:none}.drop-zone:hover .icon,.drop-zone.highlight .icon{color:var(--primary-color);opacity:1;transform:scale(1.1)}.mass-import-textarea{min-height:180px;font-family:monospace;font-size:13px;background-color:var(--bg-color);border-color:var(--border-color);color:var(--text-primary)}.import-separator{margin:16px 0;text-align:center;display:flex;align-items:center;gap:12px}.import-separator:before,.import-separator:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--border-color),transparent)}.import-separator span{font-size:12px;font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:1px}.period-input-group{border:none;background:none;padding:0;margin-bottom:24px}.period-input-group h3,.period-input-group h4{font-size:1.1rem;font-weight:600;margin-bottom:12px}.status-pills-container{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;border:none;background:transparent;min-height:auto}.status-pills-container input[type=checkbox]{display:none}.status-pills-container label{display:inline-block;padding:6px 14px;border:1px solid var(--border-color);background-color:var(--bg-secondary);border-radius:var(--radius-pill);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);margin:0;-webkit-user-select:none;user-select:none;color:var(--text-secondary)}.status-pills-container label:hover{background-color:var(--bg-color);border-color:var(--primary-color);color:var(--primary-color)}.status-pills-container input[type=checkbox]:checked+label{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color);font-weight:600}.actions-dropdown-content{position:absolute;top:100%;right:0;background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:200px;padding:8px;z-index:var(--z-modal);visibility:hidden;opacity:0;transform:translatey(10px);transition:opacity var(--transition-fast),transform var(--transition-fast),visibility var(--transition-fast)}.btn-dropdown-item{color:var(--text-primary);padding:10px 12px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:none;cursor:pointer;font-size:14px;transition:background-color var(--transition-fast),color var(--transition-fast)}.btn-dropdown-item:hover{background-color:var(--item-hover-bg);color:var(--primary-color)}[data-theme=dark] .btn-dropdown-item:hover{color:var(--text-primary)}.btn-dropdown-item i{width:16px;text-align:center;color:var(--text-secondary)}.btn-dropdown-item.danger,.btn-dropdown-item.danger i{color:var(--error-color)}.dropdown-divider{height:1px;background-color:var(--border-color);margin:4px 0}.dropdown-header{margin:0;padding:6px 12px;font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;position:relative;border-radius:var(--radius-sm);outline:none}.detail-chip-small{font-size:.8em;font-weight:500;color:var(--text-secondary);margin-left:8px;font-style:italic;vertical-align:middle}.statut-chip{font-size:11px;font-weight:600;padding:3px 10px;border-radius:var(--radius-xs);background-color:var(--bg-secondary);color:var(--text-secondary);border:1px solid transparent;white-space:nowrap}.statut-chip.statut-nouveau{background-color:var(--success-light);color:var(--success-color);border-color:var(--success-color)}.statut-chip.statut-depart{background-color:var(--warning-light);color:var(--warning-color);border-color:var(--warning-color)}.detail-chip{background:var(--bg-secondary);color:var(--text-secondary);padding:4px 10px;border-radius:var(--radius-xs);font-weight:500;font-size:12px;white-space:nowrap}.detail-chip.over-limit{color:var(--error-color);background-color:var(--error-light);border:1px solid var(--error-color);font-weight:600}.detail-chip.over-limit:before{font-family:"Font Awesome 6 Free";content:"";font-weight:900;margin-right:4px}.generic-info-box{background:rgba(var(--primary-color-rgb),.08);border:none;color:var(--text-primary);padding:16px;border-radius:var(--radius-md);margin:12px 0;font-size:14px}.generic-info-box p{margin:0}.mass-import-actions,.single-student-actions{display:flex;justify-content:flex-end;gap:16px}.pwa-install-btn{background:linear-gradient(135deg,var(--success-color) 0%,var(--success-hover, var(--success-color)) 100%)!important;color:#fff!important;animation:pwa-install-pulse 2s ease-in-out infinite}.pwa-install-btn:hover{animation:none;background:linear-gradient(135deg,var(--success-hover, var(--success-color)) 0%,var(--success-hover, var(--success-color)) 100%)!important}@keyframes pwa-install-pulse{0%,to{box-shadow:0 0 #10b98166}50%{box-shadow:0 0 0 8px #10b98100}}body.is-offline:before{content:"Mode hors-ligne";position:fixed;top:0;left:50%;transform:translate(-50%);background:var(--warning-color);color:#fff;padding:4px 16px;font-size:12px;font-weight:600;border-radius:0 0 8px 8px;z-index:var(--z-modal)}.ui-segmented-control{--sc-padding: 3px;position:relative;display:flex;align-items:center;background:var(--bg-secondary);border-radius:var(--radius-pill);padding:var(--sc-padding);width:fit-content;height:38px;border:none;isolation:isolate;gap:0}.ui-segmented-control.header-style{background:var(--bg-secondary);border:none;backdrop-filter:blur(var(--glass-base-blur));-webkit-backdrop-filter:blur(var(--glass-base-blur))}.ui-segment{flex:1;position:relative;z-index:2;display:flex!important;align-items:center!important;justify-content:center!important;border:none;background:transparent;color:var(--icon-btn-muted);font-size:13px!important;font-weight:500!important;cursor:pointer;transition:all var(--transition-base);height:100%;padding:0 10px!important;margin:0!important;box-sizing:border-box!important;border-radius:var(--radius-pill);outline:none;-webkit-tap-highlight-color:transparent;white-space:nowrap}.ui-segment i,.ui-segment iconify-icon{font-size:16px;pointer-events:none}.ui-segmented-control input[type=radio]{display:none}.ui-segment:hover,.ui-segmented-control input[type=radio]:not(:checked)+.ui-segment:hover{color:var(--icon-btn-hover)}.ui-segment.active,.ui-segmented-control input[type=radio]:checked+.ui-segment{color:var(--text-primary)}.ui-segment:focus-visible,.ui-segmented-control input[type=radio]:focus-visible+.ui-segment{box-shadow:0 0 0 2px var(--primary-color)}.ui-glider{position:absolute;top:var(--sc-padding, 3px);bottom:var(--sc-padding, 3px);left:0;background:var(--surface-color);border-radius:var(--radius-pill);box-shadow:0 2px 8px #00000014,0 1px 2px #0000000a;z-index:1;transition:transform .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1);pointer-events:none}.ui-segmented-control.css-driven .ui-glider{left:var(--sc-padding, 3px);width:calc((100% - (var(--sc-padding, 3px) * 2)) / 3);transition:transform .35s cubic-bezier(.4,0,.2,1)}.ui-segmented-control.css-driven[data-active=light] .ui-glider,.ui-segmented-control.css-driven[data-active-index="0"] .ui-glider{transform:translate(0)}.ui-segmented-control.css-driven[data-active=system] .ui-glider,.ui-segmented-control.css-driven[data-active-index="1"] .ui-glider{transform:translate(100%)}.ui-segmented-control.css-driven[data-active=dark] .ui-glider,.ui-segmented-control.css-driven[data-active-index="2"] .ui-glider{transform:translate(200%)}[data-theme=dark] .ui-segmented-control,[data-theme=dark] .ui-segmented-control.header-style{background:#0006;box-shadow:inset 0 1px 3px #0000004d;border:1px solid var(--border-color)}[data-theme=dark] .ui-segmented-control.header-style{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}[data-theme=dark] .ui-glider{background:#ffffff1f;box-shadow:var(--shadow-sm);border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}[data-theme=dark] .ui-segment,[data-theme=dark] .ui-segmented-control input[type=radio]:not(:checked)+.ui-segment{color:var(--text-secondary)}[data-theme=dark] .ui-segment:hover,[data-theme=dark] .ui-segmented-control input[type=radio]:not(:checked)+.ui-segment:hover{color:var(--text-primary)}[data-theme=dark] .ui-segment.active,[data-theme=dark] .ui-segmented-control input[type=radio]:checked+.ui-segment{color:var(--text-primary);text-shadow:0 0 12px rgba(255,255,255,.25)}[data-theme=dark] .ui-segment.active iconify-icon,[data-theme=dark] .ui-segmented-control input[type=radio]:checked+.ui-segment iconify-icon{filter:drop-shadow(0 0 4px rgba(255,255,255,.4))}.ui-accordion{background-color:var(--card-glass-bg);backdrop-filter:blur(var(--glass-surface-blur));-webkit-backdrop-filter:blur(var(--glass-surface-blur));border:1px solid var(--card-glass-border);border-radius:var(--radius-lg);margin-bottom:16px;box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.ui-accordion:last-of-type{margin-bottom:0}.ui-accordion:hover,.ui-accordion[open]{box-shadow:var(--shadow-md)}.ui-accordion summary{cursor:pointer;padding:14px 18px;font-weight:600;list-style:none;display:flex;align-items:center;justify-content:flex-start;gap:10px;transition:background-color var(--transition-fast);border-radius:calc(var(--radius-lg) - 1px)}.ui-accordion[open]>summary{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);border-bottom-left-radius:0;border-bottom-right-radius:0}.ui-accordion summary:hover{background-color:var(--bg-secondary)}.ui-accordion summary::-webkit-details-marker{display:none}.ui-accordion summary:before{content:"";width:20px;height:20px;background-color:var(--text-secondary);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18l6-6-6-6'/%3E%3C/svg%3E") no-repeat center center / contain;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18l6-6-6-6'/%3E%3C/svg%3E") no-repeat center center / contain;transition:transform var(--transition-fast);margin-left:auto;flex-shrink:0;order:1}.ui-accordion[open]>summary:before{transform:rotate(90deg)}.ui-accordion-content{overflow:hidden;display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease-out,opacity .2s ease-out;opacity:0}.ui-accordion[open]>.ui-accordion-content{grid-template-rows:1fr;opacity:1}@starting-style{.ui-accordion[open]>.ui-accordion-content{grid-template-rows:0fr;opacity:0}}.ui-accordion-content-inner{min-height:0;padding:12px 14px;transform:translateY(0);transition:transform .25s ease-out}.ui-accordion:not([open])>.ui-accordion-content>.ui-accordion-content-inner{transform:translateY(-8px)}.ui-accordion.danger-accordion>summary{color:var(--danger-color)}.ui-accordion.danger-accordion>summary:before{background-color:var(--danger-color)}.ui-stepper{display:flex;align-items:center;justify-content:center;gap:6px;padding:0;background:transparent;border:none;margin:0 auto;height:auto;flex:2}.ui-stepper-step{background:transparent!important;box-shadow:none!important;border:none!important;padding:6px 14px!important;min-width:auto;border-radius:var(--radius-pill);transition:all .2s ease;cursor:pointer;position:relative;opacity:.5}.ui-stepper-step:hover:not(.active){background:var(--bg-secondary)!important;opacity:.8}.ui-stepper-step.active{opacity:1;background:var(--item-active-bg)!important}.ui-stepper-step.completed{opacity:1;color:var(--text-primary)}.ui-stepper-label{font-size:.9rem;font-weight:600;color:var(--text-primary);white-space:nowrap;display:block!important}.ui-stepper-step.active .ui-stepper-label{color:var(--primary-color)}.ui-stepper-step.completed .ui-stepper-label{color:var(--text-secondary);font-weight:500}.ui-stepper-separator{display:flex;align-items:center;justify-content:center;color:var(--icon-btn-muted);font-size:.75rem;padding:0 2px}@media (max-width: 800px){.ui-stepper.compact .ui-stepper-label{display:none!important}}.ui-tabs-vertical{display:flex;gap:0;flex:1 1 0;min-height:560px;align-items:stretch;overflow:hidden}.ui-tabs-sidebar{width:210px;flex-shrink:0;display:flex;flex-direction:column;gap:4px;border-right:1px solid var(--border-color);padding:24px 14px;background:var(--surface-color);height:100%;overflow-y:auto;position:relative;z-index:1}.ui-tabs-btn{display:flex;align-items:center;gap:12px;padding:11px 16px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-weight:500;font-size:.92em;cursor:pointer;transition:all var(--transition-fast);text-align:left;width:100%}.ui-tabs-btn:hover{background:var(--item-hover-bg);color:var(--icon-btn-hover)}.ui-tabs-btn.active{background:var(--item-active-bg);color:var(--icon-btn-hover);font-weight:600;position:relative;box-shadow:none}.ui-tabs-btn.active iconify-icon,.ui-tabs-btn.active i{color:inherit}.ui-tabs-btn.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);height:55%;width:3px;background:linear-gradient(180deg,var(--primary-color),rgba(var(--primary-color-rgb),.4));border-radius:0 4px 4px 0}.ui-tabs-btn iconify-icon{width:24px;text-align:center;font-size:1.2em;color:var(--icon-btn-color);transition:transform var(--transition-fast),color var(--transition-fast)}.ui-tabs-btn:hover iconify-icon,.ui-tabs-btn.active iconify-icon{transform:scale(1.1);color:var(--icon-btn-hover)}.ui-tabs-action-btn{display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:9px 14px;width:100%;border:1px solid var(--border-color);border-radius:var(--radius-md);background:transparent;color:var(--icon-btn-muted);font-size:.82em;cursor:pointer;transition:all var(--transition-fast)}.ui-tabs-action-btn:hover{background:var(--item-hover-bg);color:var(--icon-btn-hover);border-color:rgba(var(--primary-color-rgb),.3)}.ui-tabs-content{flex:1;padding:20px 32px 28px;background:var(--bg-color);overflow-y:auto;min-height:0}@media (max-width: 768px){.ui-tabs-vertical{flex-direction:column;gap:0;overflow-y:auto}.ui-tabs-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border-color);padding:10px;flex-direction:row;overflow-x:auto;height:auto}.ui-tabs-action-btn{display:none}.ui-tabs-content{padding:20px;height:auto;overflow:visible}.ui-tabs-btn{width:auto;white-space:nowrap;flex-shrink:0;padding:8px 14px}}.ui-badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;border-radius:var(--radius-pill);font-weight:600;font-size:.75rem;white-space:nowrap;border:1px solid transparent;color:var(--text-secondary);background:var(--bg-secondary)}.ui-badge-primary{background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color);border-color:rgba(var(--primary-color-rgb),.2)}.ui-badge-success{background:#10b9811a;color:var(--success-color);border-color:#10b98133}.ui-badge-danger{background:#ef44441a;color:var(--error-color);border-color:#ef444433}.ui-badge-warning{background:#f59e0b1a;color:var(--warning-color);border-color:#f59e0b33}.ui-badge-info{background:#3b82f61a;color:var(--info-color);border-color:#3b82f633}.ui-table-container{width:100%;overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border-color);background:var(--surface-color);box-shadow:var(--shadow-sm);margin-bottom:24px}.ui-table{width:100%;min-width:600px;border-collapse:separate;border-spacing:0;text-align:left}.ui-table th{padding:12px 16px;font-size:.75rem;font-weight:600;color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);text-transform:uppercase;letter-spacing:.03em}.ui-table th:first-child{border-top-left-radius:var(--radius-lg)}.ui-table th:last-child{border-top-right-radius:var(--radius-lg)}.ui-table td{padding:12px 16px;font-size:.85rem;color:var(--text-primary);border-bottom:1px solid var(--border-color);vertical-align:middle}.ui-table tbody tr:last-child td{border-bottom:none}.ui-table tbody tr td{transition:background-color var(--transition-fast)}.ui-table tbody tr:last-child td:first-child{border-bottom-left-radius:var(--radius-lg)}.ui-table tbody tr:last-child td:last-child{border-bottom-right-radius:var(--radius-lg)}.ui-table tbody tr:hover td{background:var(--item-hover-bg)}.ui-table-cell-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-secondary);font-size:1.1em}.ui-table-cell-content{display:flex;flex-direction:column;gap:4px}.ui-table-cell-title{font-weight:500;color:var(--text-primary)}.ui-table-cell-desc{font-size:.85rem;color:var(--text-secondary)}@media (max-width: 768px){.ui-table.responsive-table{display:block;min-width:unset}.ui-table.responsive-table thead{display:none}.ui-table.responsive-table tbody tr{display:grid;grid-template-columns:1fr;margin-bottom:12px;padding:12px;gap:8px;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.ui-table.responsive-table tbody tr td{padding:4px 0;display:block;width:100%!important;border-bottom:none}.ui-table.responsive-table td:last-child{margin-top:8px;padding-top:12px;border-top:1px dashed var(--border-color)}}.period-mismatch-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:linear-gradient(135deg,rgba(var(--primary-color-rgb),.08),rgba(var(--primary-color-rgb),.02));border:1px solid rgba(var(--primary-color-rgb),.2);border-radius:var(--radius-lg);margin-bottom:24px;box-shadow:var(--shadow-sm);animation:fadeInScale .4s cubic-bezier(.175,.885,.32,1.275)}.period-mismatch-content{display:flex;align-items:flex-start;gap:16px}.period-mismatch-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md);background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color);font-size:24px;flex-shrink:0}.period-mismatch-text h4{margin:0 0 4px;color:var(--text-primary);font-size:1.05rem;font-weight:600}.period-mismatch-text p{margin:0;color:var(--text-secondary);font-size:.9rem;line-height:1.4}.period-mismatch-action{flex-shrink:0}.period-mismatch-action .btn{white-space:nowrap}@keyframes fadeInScale{0%{opacity:0;transform:scale(.98) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}@media (max-width: 768px){.period-mismatch-banner{flex-direction:column;align-items:flex-start;gap:12px;padding:14px 16px}.period-mismatch-action{width:100%;margin-top:4px}.period-mismatch-action .btn{width:100%;justify-content:center}}.modal{display:none;position:fixed;z-index:var(--z-modal);top:0;right:0;bottom:0;left:0;background:#0000;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);align-items:center;justify-content:center;transition:background .4s var(--ease-spring),backdrop-filter .4s var(--ease-spring);will-change:backdrop-filter}.modal.modal-visible{background:var(--modal-backdrop-bg);backdrop-filter:blur(var(--modal-backdrop-blur));-webkit-backdrop-filter:blur(var(--modal-backdrop-blur))}.modal-content{padding:0;border-radius:var(--modal-radius);overflow:hidden;width:90%;max-width:var(--modal-width);max-height:var(--modal-max-height);box-shadow:var(--modal-shadow);border:var(--modal-border);display:flex;flex-direction:column;background:var(--modal-bg);opacity:0;transform:scale(.92) translateY(16px);filter:blur(4px);transition:opacity .45s var(--ease-spring),transform .45s var(--ease-spring),filter .35s var(--ease-spring);will-change:transform,opacity,filter;transform-style:preserve-3d;backface-visibility:hidden}.modal.modal-visible .modal-content{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}.modal.modal-visible.modal-closing .modal-content{opacity:0!important;transform:scale(.95) translateY(8px)!important;filter:blur(2px)!important;transition:opacity .25s var(--ease-spring),transform .25s var(--ease-spring),filter .2s var(--ease-spring)!important}.modal.modal-closing{background:#0000!important;backdrop-filter:blur(0px)!important;-webkit-backdrop-filter:blur(0px)!important;transition:background .25s ease-out,backdrop-filter .25s ease-out!important}.modal-content-confirm{max-width:500px}.modal-content-confirm .modal-body p{margin:0;line-height:1.6}.modal-input{width:100%;margin-top:16px}@keyframes modalslidein{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--modal-header-padding);border-bottom:var(--modal-header-border);background:var(--modal-bg);min-height:var(--modal-header-height);flex-shrink:0}.modal-title{margin:0;color:var(--text-primary);font-size:1.15rem;font-weight:600;display:flex;align-items:center;gap:8px;min-width:0}.modal-header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.modal-title-group{display:flex;align-items:center;gap:12px}.modal-title-icon,.modal-title iconify-icon,.modal-title i{display:flex;align-items:center;justify-content:center;width:auto;height:auto;background:transparent;color:var(--primary-color);font-size:26px;flex-shrink:0;padding:0;margin:0;border-radius:0}.modal-title-icon.color-accent,.modal-title .color-accent{color:var(--accent-color)}.modal-title-icon.color-success,.modal-title .color-success{color:var(--success-color)}.modal-title-icon.color-secondary,.modal-title .color-secondary{color:var(--text-secondary)}.modal-title-icon.color-primary,.modal-title .color-primary{color:var(--primary-color)}.modal-title-text-col{display:flex;flex-direction:column;gap:2px}.modal-title-main{margin:0;font-size:1.15rem;font-weight:600;color:var(--text-primary);line-height:1.2}.modal-subtitle{font-size:.85em;color:var(--text-secondary);font-weight:500}.close-button{background:transparent;border:none;font-size:var(--close-btn-icon-size);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;min-width:var(--close-btn-size);min-height:var(--close-btn-size);width:var(--close-btn-size);height:var(--close-btn-size);flex-shrink:0}.close-button i,.close-button iconify-icon{font-size:var(--close-btn-icon-size);line-height:1}.close-button:hover{background-color:var(--close-btn-hover-bg);color:var(--close-btn-hover-color);transform:none;box-shadow:none;border:none;outline:none}.close-button:active{transform:none}.modal-body{padding:var(--modal-padding);overflow-y:auto;flex-grow:1;background:var(--bg-color);contain:content;transform:translateZ(0);-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.modal-body-flex{padding:0;overflow:hidden;display:flex;flex-direction:column;flex:1;min-height:0}.modal-body-dynamic{transition:height .4s var(--ease-spring)}.modal-footer{padding:var(--modal-footer-padding);border-top:var(--modal-footer-border);display:flex;justify-content:flex-end;gap:10px;background:var(--modal-bg);min-height:var(--modal-footer-height);align-items:center;flex-shrink:0}.modal-footer.justify-between{justify-content:space-between}.modal-footer .btn,.import-wizard-footer .btn,.trombi-step-footer .btn,.analysis-actions .btn{height:var(--modal-btn-height)!important;padding:0 16px!important;font-size:13px!important;border-radius:var(--radius-pill)!important}.modal-footer-info{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--success-color);background:rgba(var(--success-rgb, 16, 185, 129),.1);padding:6px 14px;border-radius:var(--radius-pill);line-height:normal;opacity:0;transform:translateY(4px);transition:opacity .4s var(--ease-spring),transform .4s var(--ease-spring)}.modal-footer-info:not(:empty){opacity:1;transform:translateY(0)}.modal-footer-info strong{font-weight:700}.modal .nebula-card:hover,.modal .card-content-wrapper:hover,.modal .stat-card:hover,.modal .settings-card:hover,.modal .ui-accordion:hover,.modal .sidebar-card:hover{box-shadow:var(--shadow-sm)}.modal-nav-pill{display:flex;align-items:center;gap:8px;background:#0000000a;padding:4px;border-radius:100px}[data-theme=dark] .modal-nav-pill{background:#ffffff0f}.modal-nav-position{font-size:13px;font-weight:600;color:var(--text-secondary);padding:0 8px;font-variant-numeric:tabular-nums}.modal-nav-btn{width:28px;height:28px;border-radius:50%;border:none;background:var(--surface-color);color:var(--text-primary);display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;box-shadow:0 1px 3px #0000000d;transition:all var(--transition-fast)}.modal-nav-btn:hover:not(:disabled){transform:scale(1.1);box-shadow:0 3px 8px #00000014}.modal-nav-btn:active:not(:disabled){transform:scale(.92);box-shadow:none}.modal-nav-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;background:transparent}.modal-nav-pill+.close-button,.modal-header-actions .close-button{width:28px;height:28px;min-width:28px;min-height:28px;border-radius:50%;background:transparent;box-shadow:none;font-size:12px}.modal-nav-pill+.close-button:hover,.modal-header-actions .close-button:hover{transform:none;box-shadow:none;background:var(--close-btn-hover-bg);color:var(--close-btn-hover-color)}.help-code-block,.prompt-preview-block{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:16px;font-family:monospace;font-size:13px;white-space:pre-wrap;margin-top:12px;max-height:350px;overflow-y:auto;word-break:break-word;overflow-wrap:break-word;width:100%;box-sizing:border-box}[data-theme=dark] .help-code-block,[data-theme=dark] .prompt-preview-block{background:var(--bg-color);border-color:#ffffff0f}.prompt-preview-auto-height{max-height:none;overflow-y:visible;margin-top:0}.modal-help .help-intro-text{margin-top:0}.modal-help .ui-accordion summary .fas,.modal-help .ui-accordion summary iconify-icon{width:20px;text-align:center}.modal-help .ui-accordion .icon-start{color:var(--primary-color)}.modal-help .ui-accordion .icon-key{color:var(--warning-color)}.modal-help .ui-accordion .icon-format,.modal-help .ui-accordion .icon-privacy{color:var(--success-color)}.modal-help .ui-accordion .icon-customize{color:var(--purple-color)}.modal-help .ui-accordion .icon-expert{color:var(--text-secondary)}.modal-help .ui-accordion .ui-accordion-content ol{list-style:none;padding-left:0;counter-reset:help-counter;margin-top:15px;margin-bottom:15px}.modal-help .ui-accordion .ui-accordion-content ol>li{counter-increment:help-counter;display:flex;align-items:flex-start;gap:12px;margin-bottom:15px;text-align:left}.modal-help .ui-accordion .ui-accordion-content ol>li:before{content:counter(help-counter);background-color:var(--primary-color);color:#fff;font-weight:700;font-size:.8em;min-width:22px;height:22px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;line-height:1;flex-shrink:0;margin-top:2px}.modal-help .ui-accordion .ui-accordion-content li p{display:block;margin:0}.modal-help .ui-accordion-content p:has(>span.badge:only-child){text-align:center;margin-top:20px}.api-status-summary{background:var(--card-glass-bg);border:1px solid var(--card-glass-border);border-radius:var(--radius-md);padding:14px;margin-bottom:12px}.api-status-summary h4{margin:0;font-size:.95em;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.api-status-summary h4 i{color:var(--primary-color)}.api-status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.api-status-header .btn{font-size:.75em;padding:5px 10px}.api-status-active-model{font-size:.85em;color:var(--text-secondary);padding:8px 12px;background:var(--bg-secondary);border-radius:var(--radius-sm);margin-bottom:12px;display:flex;align-items:center;gap:8px}.api-status-active-model i{color:var(--primary-color)}.api-status-active-model strong{color:var(--text-primary)}.inline-model-label{margin:0;font-weight:500;white-space:nowrap}.inline-model-select{flex:1;min-width:180px;max-width:280px;padding:8px 36px 8px 12px;font-size:.9em;font-weight:600;color:var(--text-primary);background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.inline-model-select:hover:not(:focus){border-color:rgba(var(--primary-color-rgb),.4)}.inline-model-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.1)}.fallback-more-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;background:rgba(var(--primary-color-rgb),.15);color:var(--primary-color);border-radius:var(--radius-md);font-size:.85em;font-weight:600;cursor:help;transition:all var(--transition-fast)}.fallback-more-badge:hover{background:rgba(var(--primary-color-rgb),.25)}.api-status-grid{display:flex;gap:10px;flex-wrap:wrap}.api-status-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--card-item-bg);border:var(--card-item-border);border-radius:var(--radius-md);box-shadow:var(--card-item-shadow);flex:1;min-width:160px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.api-status-item:hover{border-color:var(--card-item-hover-border-color);box-shadow:var(--card-item-hover-shadow)}.api-status-icon{width:10px;height:10px;border-radius:50%;background:var(--text-secondary);flex-shrink:0;transition:all var(--transition-fast)}.api-status-item.active .api-status-icon{background:var(--success-color);box-shadow:0 0 8px var(--success-color)}.api-status-item.inactive .api-status-icon{background:var(--text-secondary);opacity:.4}.api-status-name{flex:1;font-size:.85em;font-weight:500;color:var(--text-primary)}.api-status-badge{font-size:.7em;font-weight:600;padding:3px 8px;border-radius:var(--radius-xs);text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.api-status-item.active .api-status-badge{background:#22c55e26;color:var(--success-color)}.api-status-item.warning .api-status-icon{background:rgba(var(--warning-rgb),.2);color:var(--warning-color);box-shadow:0 0 10px rgba(var(--warning-rgb),.3)}.api-status-item.warning .api-status-badge{background:rgba(var(--warning-rgb),.15);color:var(--warning-hover)}.api-status-item.inactive .api-status-badge{background:var(--bg-secondary);color:var(--text-secondary)}.api-status-item.pending{cursor:pointer}.api-status-item.pending:hover{background:rgba(var(--warning-rgb),.08)}.modal-confirm-detail-label{margin-top:12px;font-size:.9em;color:var(--text-secondary)}.modal-confirm-detail-list{margin:4px 0 8px 20px;font-size:.9em;color:var(--text-secondary)}.modal-choices-container{padding:0;display:flex;flex-direction:column;gap:12px;margin-top:12px;background:transparent;border:none}.modal-choice-item{position:relative;background:var(--card-item-bg);border:var(--card-item-border);border-radius:var(--card-item-radius);box-shadow:var(--card-item-shadow);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);cursor:pointer;overflow:hidden}.modal-choice-item:hover{border-color:var(--card-item-hover-border-color);box-shadow:var(--card-item-hover-shadow)}.modal-choice-item.checked{background:rgba(var(--primary-color-rgb),.04);border-color:rgba(var(--primary-color-rgb),.3)}.modal-danger .modal-choice-item.checked{background:rgba(var(--error-color-rgb, 239, 68, 68),.06);border-color:rgba(var(--error-color-rgb, 239, 68, 68),.4)}.modal-choice-label-wrapper{display:flex;padding:16px;gap:16px;cursor:pointer;width:100%;align-items:flex-start;margin:0}.modal-choice-checkbox-wrapper{position:relative;width:24px;height:24px;flex-shrink:0;margin-top:2px}.modal-choice-checkbox-wrapper input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.custom-checkbox-display{position:absolute;top:0;left:0;width:24px;height:24px;background-color:var(--surface-color);border:2px solid var(--text-tertiary);border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.34,1.56,.64,1)}.modal-choice-item:hover .custom-checkbox-display{border-color:var(--text-secondary);transform:scale(1.05)}.modal-choice-item.checked .custom-checkbox-display{background-color:var(--primary-color);border-color:var(--primary-color);transform:scale(1.1);box-shadow:0 2px 5px rgba(var(--primary-color-rgb),.4)}.modal-danger .modal-choice-item.checked .custom-checkbox-display{background-color:var(--error-color);border-color:var(--error-color);box-shadow:0 2px 5px rgba(var(--error-color-rgb, 239, 68, 68),.4)}.custom-checkbox-display iconify-icon{color:#fff;font-size:13px;transform:scale(0) rotate(-45deg);transition:all .3s cubic-bezier(.34,1.56,.64,1)}.modal-choice-item.checked .custom-checkbox-display iconify-icon{transform:scale(1) rotate(0)}.modal-choice-text{display:flex;flex-direction:column;gap:4px;flex:1}.modal-choice-title{font-weight:600;font-size:1.05em;color:var(--text-primary);transition:color .2s}.modal-choice-subtitle{font-size:.9em;color:var(--text-secondary);line-height:1.5;font-weight:400}.modal-choice-item.checked .modal-choice-title{color:var(--primary-color)}.modal-danger .modal-choice-item.checked .modal-choice-title{color:var(--error-color)}.modal-choice-item.disabled{background:var(--bg-secondary);border-color:transparent;opacity:.6;pointer-events:none;cursor:not-allowed}.modal-choice-item.disabled .modal-choice-label-wrapper{cursor:not-allowed}.modal-choice-item.disabled .custom-checkbox-display{background:var(--bg-secondary);border-color:var(--border-color)}.api-status-item.pending .api-status-icon{background:var(--warning-color);animation:pulse-warning 2s infinite}.api-status-item.pending .api-status-badge{background:rgba(var(--warning-rgb),.15);color:var(--warning-color)}@keyframes pulse-warning{0%,to{opacity:1;box-shadow:0 0 4px var(--warning-color)}50%{opacity:.6;box-shadow:0 0 8px var(--warning-color)}}.api-status-item.active,.api-status-item.pending{cursor:pointer;transition:all var(--transition-fast)}.api-status-item.active:hover{background:#22c55e14}.api-status-item.quota-warning{cursor:pointer}.api-status-item.quota-warning:hover{background:rgba(var(--warning-rgb),.08)}.api-status-item.quota-warning .api-status-icon{background:var(--warning-color);box-shadow:0 0 6px rgba(var(--warning-rgb),.5)}.api-status-item.quota-warning .api-status-badge{background:rgba(var(--warning-rgb),.15);color:var(--warning-color)}.api-status-item.invalid{cursor:pointer}.api-status-item.invalid:hover{background:#ef444414}.api-status-item.invalid .api-status-icon{background:var(--error-color);box-shadow:0 0 6px #ef444480}.api-status-item.invalid .api-status-badge{background:#ef444426;color:var(--error-color)}@media (max-width: 600px){.api-status-grid{flex-direction:column}.api-status-item{min-width:100%}}.subject-selection-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.subject-toggle-group{display:flex;align-items:center;gap:12px}.subject-toggle-group label{font-weight:500;color:var(--text-primary);margin:0}.generic-info-inline{display:none;font-size:.85em;color:var(--text-secondary);background:transparent;padding:0 0 0 8px;border-left:2px solid var(--border-color);margin-left:8px;white-space:nowrap;align-items:center;gap:6px;font-style:italic}.generic-info-inline i{color:var(--primary-color)}.subject-header-controls{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}.subject-header-controls select,.subject-header-controls .custom-dropdown{width:180px;min-width:180px;max-width:180px;flex-shrink:0;border-radius:var(--radius-sm)}.subject-header-controls .custom-dropdown-trigger{padding:8px 12px;font-size:13px;border-radius:var(--radius-sm);height:36px}.subject-header-controls input[type=text]{height:36px;padding:8px 12px;font-size:13px;border-radius:var(--radius-sm);min-width:100px;width:160px;max-width:160px}.subject-header-controls .btn{height:36px;min-width:36px;padding:0 12px;border-radius:var(--radius-sm);font-size:13px}.subject-header-controls .btn i:only-child{margin:0}.settings-card-full-height{height:100%;display:flex;flex-direction:column}.settings-card-full-height .settings-card-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px;margin:-8px}.missing-key-warning{display:flex;align-items:center;gap:8px;margin-top:8px;padding:10px 14px;background:rgba(var(--warning-rgb),.1);border:1px solid rgba(var(--warning-rgb),.3);border-radius:var(--radius-sm);color:var(--warning-color, #f59e0b);font-size:.9em}.missing-key-warning i{font-size:1.1em}.missing-key-warning .btn-link{margin-left:auto;font-weight:600}.api-keys-container{display:flex;flex-direction:column;gap:12px}.api-key-section{padding:14px;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.api-key-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:8px}.api-key-provider{font-weight:600;font-size:.95em;display:flex;align-items:center;gap:8px;color:var(--text-primary)}.api-key-provider i,.api-key-provider iconify-icon{font-size:1.1em;opacity:1}.api-key-header .btn-link{font-size:.85em;font-weight:500}.api-key-section .api-key-actions{margin-bottom:0;display:flex;gap:12px;align-items:center}.api-key-section .api-key-actions .api-key-input-container{flex:1;position:relative}.api-key-section .api-key-actions .api-key-input-container input{height:32px;padding-top:0;padding-bottom:0;margin:0!important;font-size:13px}.api-key-section .api-key-actions .btn{flex:0 0 auto!important;width:auto!important;height:32px;min-width:96px;padding-top:0;padding-bottom:0;margin:0!important;justify-content:center;align-items:center;font-size:13px}.api-key-section .error-message{margin-top:8px}.api-status-summary.compact-mode{padding:4px 0 0;display:flex;flex-direction:column;gap:12px;background-color:transparent;border-radius:0;border:none}.api-status-header.compact{display:flex;gap:10px;align-items:center;margin-bottom:0}.model-selector-wrapper{flex:1;position:relative;display:flex;align-items:center}.compact-model-select,.model-selector-wrapper .custom-dropdown-trigger{width:100%;height:38px;padding:0 14px;font-size:.95em;font-weight:500;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--bg-color);color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);margin:0!important}.compact-model-select:hover:not(:focus),.model-selector-wrapper .custom-dropdown-trigger:hover:not(.disabled):not(:focus){border-color:rgba(var(--primary-color-rgb),.4);background-image:none}.btn-icon-only{padding:0;width:38px;height:38px;flex:0 0 38px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);font-size:1.1rem;transition:all var(--transition-fast);margin:0!important}.btn-icon-only:hover:not(:disabled){background-color:rgba(var(--primary-color-rgb),.1);color:var(--primary-color);box-shadow:none}.api-fallback-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px;padding-top:10px;border-top:1px dashed var(--border-color);margin-bottom:-10px}.toggle-switch.small{width:32px;height:18px;margin-right:0}.toggle-switch.small .slider:before{height:14px;width:14px;left:2px;bottom:2px}.toggle-switch.small input:checked+.slider:before{transform:translate(14px)}.toggle-label-text{font-size:.8em;font-weight:500;color:var(--text-secondary);cursor:pointer;margin:0}.fallback-info{flex:1;display:flex;justify-content:flex-end}.fallback-hint{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:.75em;height:100%;background:#00000008;padding:2px 8px;border-radius:var(--radius-xs)}.missing-key-banner.compact{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.2);border-radius:var(--radius-xs);color:var(--warning-color);font-size:.8em;margin-top:4px}.missing-key-banner.compact .btn-link{font-size:inherit;text-decoration:underline;margin-left:auto;color:inherit;font-weight:600;background:none;border:none;cursor:pointer;padding:0}.missing-key-warning.banner-warning{background:#f59e0b1a;border-color:#f59e0b4d;color:var(--warning-color)}.missing-key-warning.banner-warning i{color:var(--warning-color)}.missing-key-warning.banner-error{background:#ef44441a;border-color:#ef44444d;color:var(--error-color)}.missing-key-warning.banner-error i{color:var(--error-color)}.modal-content-confirm.modal-compact{max-width:440px;padding:32px 32px 28px;gap:24px;display:flex;flex-direction:column;background:var(--surface-color);border:1px solid var(--glass-base-border);box-shadow:var(--shadow-xl);border-radius:var(--radius-lg)}.modal-compact-body{display:flex;align-items:center;gap:20px}.modal-icon-wrapper{flex-shrink:0;width:48px;height:48px;border-radius:50%;background:var(--warning-light);display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--warning-color);box-shadow:0 0 0 4px var(--surface-color),0 0 0 6px var(--warning-light)}.modal-icon-wrapper i{color:var(--warning-color)!important}.modal-text-wrapper{flex-grow:1}.modal-text-wrapper p{margin:0;font-size:1.15rem;color:var(--text-primary);font-weight:600;line-height:1.4;letter-spacing:-.01em}.modal-compact-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.modal-compact-actions .btn{padding:10px 20px;font-size:.95rem;border-radius:var(--radius-md);font-weight:500;transition:all var(--transition-fast)}.modal-compact-actions .btn-secondary{background:transparent;border:1px solid var(--border-color)}.modal-compact-actions .btn-secondary:hover{background:rgba(var(--primary-color-rgb),.06);border-color:rgba(var(--primary-color-rgb),.3);color:var(--primary-color)}.modal-compact-actions .btn-danger:hover{box-shadow:0 4px 12px #ef444440}.model-selection-content{max-width:500px;height:auto;max-height:80vh}.model-selection-content .modal-header{background:var(--surface-color);border-bottom:1px solid var(--border-color);padding:16px 20px}.model-selection-content .modal-body{padding:20px;background:var(--bg-color);display:flex;flex-direction:column;gap:16px}.modal-description{margin:0;color:var(--text-secondary);font-size:.9em}.model-list-container{display:grid;gap:12px}.model-provider-group{display:flex;flex-direction:column;gap:8px}.model-provider-title{font-size:.8em;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);padding-left:4px;margin-top:4px}.model-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--card-item-bg);border:var(--card-item-border);border-radius:var(--radius-md);box-shadow:var(--card-item-shadow);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.model-item:hover{border-color:var(--card-item-hover-border-color);background:var(--bg-secondary);box-shadow:var(--card-item-hover-shadow)}.model-item.active{border-color:var(--primary-color);background:rgba(var(--primary-color-rgb),.05);box-shadow:0 0 0 1px var(--primary-color)}.model-item-info{display:flex;flex-direction:column}.model-item-name{font-weight:600;color:var(--text-primary);font-size:.95em;display:flex;align-items:center;gap:8px}.model-item-desc{font-size:.8em;color:var(--text-secondary);margin-top:2px}.model-item-icon{color:var(--primary-color);opacity:0;transition:opacity var(--transition-fast)}.model-item.active .model-item-icon{opacity:1}.modal-footer-link{margin-top:8px;display:flex;justify-content:center;padding-top:12px;border-top:1px dashed var(--border-color)}.btn-text-link{background:none;border:none;color:var(--text-secondary);font-size:.85em;cursor:pointer;display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.btn-text-link:hover{color:var(--primary-color);background:rgba(var(--primary-color-rgb),.05)}.modal-choice-item{animation:fadeInUp .3s cubic-bezier(.34,1.56,.64,1) both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.modal-choice-item:nth-child(1){animation-delay:.05s}.modal-choice-item:nth-child(2){animation-delay:.1s}.modal-choice-item:nth-child(3){animation-delay:.15s}.modal-choice-item:nth-child(4){animation-delay:.2s}.hard-confirm-input-wrapper{display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.hard-confirm-label{font-size:var(--font-sm);color:var(--text-secondary);font-weight:500;line-height:1.5}.hard-confirm-word{color:var(--error-color);font-family:var(--font-sans);letter-spacing:.05em;-webkit-user-select:all;user-select:all}.hard-confirm-input{width:100%;padding:10px 14px;font-size:var(--font-base);font-weight:600;font-family:var(--font-sans);letter-spacing:.08em;color:var(--text-primary);background:var(--surface-color);border:2px solid var(--border-color);border-radius:var(--radius-sm);outline:none;transition:border-color .2s var(--ease-material),box-shadow .2s var(--ease-material)}.hard-confirm-input:focus{border-color:var(--error-color);box-shadow:0 0 0 3px rgba(var(--error-rgb),.15)}.hard-confirm-input.match{border-color:var(--success-color);box-shadow:0 0 0 3px rgba(var(--success-rgb),.15)}.hard-confirm-input::placeholder{font-weight:400;letter-spacing:normal;color:var(--text-tertiary);opacity:.7}.modal-tabs-content-area{flex:1;overflow-y:auto;padding:24px;background:var(--bg-color);position:relative;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.help-tab-content{display:none;animation:fadeIn .3s ease-out}.help-tab-content.active{display:block}.prompt-cell{font-family:Consolas,Monaco,monospace;font-size:.9em;line-height:1.5;color:var(--text-secondary);background:transparent}.prompt-cell strong{color:var(--primary-color);font-weight:600;background:rgba(var(--primary-color-rgb),.1);padding:2px 4px;border-radius:4px}.help-intro-text p{font-size:.95em;color:var(--text-secondary);margin:0 0 16px;line-height:1.5}.help-section-header{background:rgba(var(--primary-color-rgb),.05);border:1px solid rgba(var(--primary-color-rgb),.15);border-radius:var(--radius-md);padding:20px;margin-bottom:24px;display:flex;gap:12px;align-items:flex-start}[data-theme=dark] .help-section-header{background:rgba(var(--primary-color-rgb),.08)}.help-section-header p{margin:0;font-size:.95em;line-height:1.6;color:var(--primary-hover);flex:1;text-align:left}[data-theme=dark] .help-section-header p{color:rgba(var(--primary-color-rgb),.8)}.help-section-icon{font-size:1.25em;color:var(--primary-color);flex-shrink:0;margin-top:2px;display:flex;align-items:center;justify-content:center}.help-tip-box{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;margin-top:20px;font-size:.88em;line-height:1.5;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.help-tip-box iconify-icon,.help-tip-box i{flex-shrink:0;margin-top:2px;color:var(--text-secondary);font-size:1.1em}@media (max-width: 768px){.modal-tabs-layout{flex-direction:column}.modal-tabs-sidebar{width:100%;flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border-color);padding:8px;gap:8px}.modal-tab-btn{white-space:nowrap;padding:8px 12px;font-size:.85em}.modal-tabs-sidebar .sidebar-action-btn{display:none}}.help-action-button{margin-top:20px;width:100%;justify-content:center}.close-btn{background:var(--close-btn-bg, transparent);border:none;color:var(--close-btn-color, var(--text-secondary));cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s cubic-bezier(.32,.72,0,1);width:28px;height:28px;min-width:28px;min-height:28px;font-size:12px;flex-shrink:0}.close-btn:hover{background:var(--close-btn-hover-bg, var(--error-light));color:var(--close-btn-hover-color, var(--error-color));transform:scale(1.08)}.close-btn:active{transform:scale(.95)}.close-btn--sm{width:24px;height:24px;min-width:24px;min-height:24px;font-size:11px}.close-btn--lg{width:36px;height:36px;min-width:36px;min-height:36px;font-size:1rem}.close-btn--elevated{background:var(--surface-color);box-shadow:0 1px 3px #0000000d}.close-btn--elevated:hover{background:var(--close-btn-hover-bg, var(--error-light));box-shadow:0 3px 8px #ef444426}@keyframes stat-card-entrance{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes success-glow{0%,to{box-shadow:0 0 #10b98100}50%{box-shadow:0 0 16px 2px #10b98140}}@keyframes error-glow{0%,to{box-shadow:0 0 #ef444400}50%{box-shadow:0 0 16px 2px #ef444440}}@keyframes segment-grow{0%{transform:scaleX(0);opacity:.5}to{transform:scaleX(1);opacity:1}}.stats-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;gap:20px;padding-bottom:0;border-bottom:none}.stats-header .section-title{font-size:1.5rem;font-weight:700;color:var(--text-primary)}@keyframes empty-state-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes empty-state-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes empty-state-fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}#empty-state-card{text-align:center;padding:40px 20px 60px;background:transparent;border:none;box-shadow:none;color:var(--text-secondary);animation:empty-state-fade-in .5s ease-out;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1}#empty-state-card h3{color:var(--text-primary);font-size:1.35rem;font-weight:600;margin:0 0 12px;letter-spacing:-.01em}#empty-state-card p{color:var(--text-secondary);font-size:.95rem;margin:0 auto;line-height:1.5}#empty-state-card .empty-state-actions{display:flex;justify-content:center;gap:12px}.empty-state-hub{display:flex;gap:20px;justify-content:center;margin-top:48px;max-width:600px;margin-left:auto;margin-right:auto}.empty-state-hub-card{display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px;background:var(--surface-color);border:1px solid var(--card-glass-border);border-radius:var(--radius-xl, 20px);cursor:pointer;transition:all .4s cubic-bezier(.2,.8,.2,1);flex:1;min-width:220px;box-shadow:var(--shadow-sm)}[data-theme=dark] .empty-state-hub-card{background:#ffffff05;border-color:#ffffff0d;box-shadow:none}.empty-state-hub-card:hover{transform:translateY(-4px);border-color:var(--primary-color);background:var(--surface-color);box-shadow:0 16px 32px -8px #0000001a,0 4px 12px rgba(var(--primary-color-rgb),.08)}[data-theme=dark] .empty-state-hub-card:hover{background:#ffffff0a;box-shadow:0 16px 32px -8px #0000004d,0 4px 12px rgba(var(--primary-color-rgb),.15)}.empty-state-hub-card:active{transform:translateY(-1px) scale(.98)}.empty-state-hub-card:focus-visible{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 4px rgba(var(--primary-color-rgb),.2)}.empty-state-hub-icon{width:64px;height:64px;border-radius:20px;background:rgba(var(--primary-color-rgb),.08);display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--primary-color);transition:all .4s cubic-bezier(.2,.8,.2,1);flex-shrink:0}.empty-state-hub-card[data-action=mass] .empty-state-hub-icon{color:var(--success-color, #10b981);background:#10b98114}[data-theme=dark] .empty-state-hub-card[data-action=mass] .empty-state-hub-icon{background:#10b98126}.empty-state-hub-card:hover .empty-state-hub-icon{transform:scale(1.1) rotate(4deg);background:rgba(var(--primary-color-rgb),.15)}.empty-state-hub-card[data-action=mass]:hover .empty-state-hub-icon{background:#10b98133}.empty-state-hub-text{text-align:center}.empty-state-hub-text h4{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0 0 6px;letter-spacing:-.01em}.empty-state-hub-text p{font-size:.85rem;color:var(--text-secondary);margin:0;line-height:1.4}@media (max-width: 580px){.empty-state-hub{flex-direction:column;max-width:320px}.empty-state-hub-card{min-width:unset;flex-direction:row;padding:16px 20px;text-align:left}.empty-state-hub-card .empty-state-hub-text{text-align:left}.empty-state-hub-icon{width:48px;height:48px;font-size:1.5rem;border-radius:14px}}#activeFilterInfo{display:none;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--radius-pill);background:linear-gradient(135deg,rgba(var(--primary-color-rgb),.15),rgba(var(--primary-color-rgb),.1));border:1px solid rgba(var(--primary-color-rgb),.3);white-space:nowrap;font-size:.8rem;animation:filter-badge-appear .3s cubic-bezier(.32,.72,0,1) forwards}@keyframes filter-badge-appear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}#activeFilterInfo.show{display:inline-flex}#activeFilterInfo p{margin:0;font-size:.85rem;color:var(--text-primary);display:flex;align-items:center;gap:8px}#activeFilterInfo p i{color:var(--primary-color)}#activeFilterInfo .btn-link{font-size:.8rem;color:var(--text-secondary);display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:var(--radius-sm);transition:all var(--transition-fast)}#activeFilterInfo .btn-link:hover{background:rgba(var(--error-rgb, 239, 68, 68),.1);color:var(--error-color)}.no-results-message{display:none;text-align:center;color:var(--text-secondary);margin-top:40px;font-size:15px}.stats-container{grid-area:stats;display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:var(--space-5);margin:-24px -24px calc(var(--space-5) - 24px) -24px;padding:24px 24px 28px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.stats-container::-webkit-scrollbar{height:6px}.stats-container::-webkit-scrollbar-track{background:transparent}.stats-container::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.stats-container::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.stats-pagination{display:none}@media (max-width: 700px){.stats-container{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:calc(var(--content-padding-x) * 2);grid-template-columns:none;padding:var(--space-6) var(--content-padding-x) 28px;margin:calc(-1 * var(--space-6)) calc(-1 * var(--content-padding-x)) -12px calc(-1 * var(--content-padding-x));scrollbar-width:none;-ms-overflow-style:none}.stats-container::-webkit-scrollbar{display:none}.stats-container .stat-card{width:100%;min-width:100%;max-width:100%;box-sizing:border-box;scroll-snap-align:center;flex-shrink:0}.stats-pagination{display:flex;justify-content:center;gap:8px;margin-top:-14px;margin-bottom:14px}.stats-dot{width:6px;height:6px;border-radius:50%;background-color:var(--border-color);transition:all .3s cubic-bezier(.4,0,.2,1);opacity:.5}.stats-dot.active{background-color:var(--primary-color);width:18px;border-radius:4px;opacity:1}}.stats-container .stat-card{display:flex;flex-direction:column;min-height:auto;gap:0}.stat-card.active-filter:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary-color),var(--primary-hover));opacity:1}.stat-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.stat-card .stat-title{font-size:.7rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0}.stat-card .stat-subtitle{display:none}.performance-card .performance-overview{display:flex;align-items:baseline;gap:6px;flex-grow:1;margin-bottom:12px}.performance-card .main-average-value{font-size:2.8rem;font-weight:800;line-height:1;background:var(--gradient-brand, linear-gradient(135deg, var(--text-secondary) 0%, var(--text-primary) 100%));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.performance-card .average-denominator{font-size:1.1rem;font-weight:500;color:var(--text-tertiary);margin-left:2px}.performance-card .main-average-value.grade-range-0-4{background:linear-gradient(135deg,var(--grade-range-0-4) 0%,var(--error-color) 100%);-webkit-background-clip:text;background-clip:text}.performance-card .main-average-value.grade-range-4-8{background:linear-gradient(135deg,var(--grade-range-4-8) 0%,var(--warning-color) 100%);-webkit-background-clip:text;background-clip:text}.performance-card .main-average-value.grade-range-8-12{background:linear-gradient(135deg,var(--grade-range-8-12) 0%,var(--warning-color) 100%);-webkit-background-clip:text;background-clip:text}.performance-card .main-average-value.grade-range-12-16{background:linear-gradient(135deg,var(--grade-range-12-16) 0%,var(--grade-range-16-20) 100%);-webkit-background-clip:text;background-clip:text}.performance-card .main-average-value.grade-range-16-20{background:linear-gradient(135deg,var(--grade-range-16-20) 0%,var(--success-color) 100%);-webkit-background-clip:text;background-clip:text}.performance-card .evolution-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-pill);font-size:.7rem;font-weight:600;transition:all var(--transition-base) cubic-bezier(.4,0,.2,1);background:var(--bg-secondary);color:var(--text-secondary);white-space:nowrap}.evolution-chip.positive{background:rgba(var(--success-rgb),.1);color:var(--success-color)}.evolution-chip.positive:before{content:"↑";margin-right:2px;font-size:.85em}.evolution-chip.negative{background:rgba(var(--error-rgb),.1);color:var(--error-color)}.evolution-chip.negative:before{content:"↓";margin-right:2px;font-size:.85em}.evolution-chip.stable{background:var(--bg-secondary);color:var(--text-secondary)}.performance-card .performance-details{display:flex;gap:12px;padding-top:0;margin:0}.performance-card .detail-item{flex:1;text-align:center;padding:10px 8px;border-radius:var(--radius-md);background:var(--item-idle-bg);transition:all .25s cubic-bezier(.4,0,.2,1);position:relative}.performance-card .detail-item:not([role=button]){opacity:.7}.performance-card .detail-item[role=button]{cursor:pointer;border:1px solid transparent}.performance-card .detail-item[role=button]:not(.active-filter):hover{background:var(--item-active-bg);border-color:transparent}.performance-card .detail-item[role=button]:not(.active-filter):hover .detail-label{color:var(--text-primary)}.performance-card .detail-item[role=button]:not(.active-filter):hover .detail-value{color:var(--text-primary)}.performance-card .detail-item.active-filter{background-color:transparent;border:1px solid transparent!important;background-image:linear-gradient(var(--surface-color),var(--surface-color)),conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.5) 0%,rgba(var(--primary-color-rgb),.5) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.5) 32%,rgba(var(--primary-color-rgb),.5) 50%,rgba(var(--primary-color-rgb),.5) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.5) 82%,rgba(var(--primary-color-rgb),.5) 100%);background-origin:padding-box,border-box;background-clip:padding-box,border-box;animation:rotate-gradient 10s linear infinite;box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.08),0 4px 12px rgba(var(--primary-color-rgb),.15)}.performance-card .detail-item.active-filter .detail-label{color:var(--primary-color);font-weight:600}.performance-card .detail-item.active-filter .detail-value{color:var(--primary-color)}.performance-card .detail-item .detail-value{display:block;font-size:1.1rem;font-weight:700;color:var(--text-secondary);line-height:1.2;margin-bottom:2px;font-variant-numeric:tabular-nums;transition:color var(--transition-fast)}.performance-card .detail-item .detail-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.2px;color:var(--text-secondary);transition:color var(--transition-fast);font-weight:500}.evolution-card{display:flex;flex-direction:column}.evolution-card .view-toggle-btn{background:var(--bg-secondary);border:1px solid transparent;border-radius:var(--radius-xs);padding:4px 8px;font-size:.7rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:4px}.evolution-card .view-toggle-btn:hover{background:var(--item-hover-bg-elevated);border-color:transparent;color:var(--icon-btn-hover)}.evolution-card .view-toggle-btn i{font-size:.65rem}.evolution-card .evolution-distribution-bar{display:flex;width:100%;height:20px;border-radius:var(--radius-pill);overflow:hidden;background-color:var(--bg-secondary);margin:8px 0;box-shadow:inset 0 2px 4px #0000000a;flex-shrink:0}.evolution-card .bar-segment{height:100%;transition:width .6s cubic-bezier(.4,0,.2,1);position:relative;transform-origin:left center;cursor:pointer}.evolution-card .bar-segment:after{content:attr(data-percent);position:absolute;top:-28px;left:50%;transform:translate(-50%) scale(.9);background:var(--text-primary);color:var(--surface-color);padding:3px 8px;border-radius:var(--radius-xs);font-size:.7rem;font-weight:600;opacity:0;pointer-events:none;transition:all var(--transition-fast);white-space:nowrap}.evolution-card .bar-segment:hover:after{opacity:1;transform:translate(-50%) scale(1)}.evolution-card .bar-segment.progress{background:linear-gradient(90deg,var(--success-color) 0%,rgba(var(--success-rgb),.8) 100%);animation:segment-grow .5s ease-out .1s backwards}.evolution-card .bar-segment.stable{background:linear-gradient(90deg,var(--text-tertiary) 0%,var(--bg-tertiary) 100%);animation:segment-grow .5s ease-out .25s backwards}.evolution-card .bar-segment.regression{background:linear-gradient(90deg,var(--error-color) 0%,rgba(var(--error-rgb),.8) 100%);animation:segment-grow .5s ease-out .4s backwards}.evolution-card .evolution-legend{display:flex;gap:12px;flex-wrap:nowrap;margin:8px 0 0}.evolution-card .legend-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 8px;border-radius:var(--radius-md);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);background:var(--item-idle-bg);flex:1;min-width:unset;border:1px solid transparent;text-align:center}.evolution-card .legend-item:not(.active-filter):hover{background:var(--item-active-bg);border-color:transparent}.evolution-card .legend-item:not(.active-filter):hover .legend-label{color:var(--text-primary)}.evolution-card .legend-item.active-filter{background-color:transparent;border:1px solid transparent!important;background-image:linear-gradient(var(--surface-color),var(--surface-color)),conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.5) 0%,rgba(var(--primary-color-rgb),.5) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.5) 32%,rgba(var(--primary-color-rgb),.5) 50%,rgba(var(--primary-color-rgb),.5) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.5) 82%,rgba(var(--primary-color-rgb),.5) 100%);background-origin:padding-box,border-box;background-clip:padding-box,border-box;animation:rotate-gradient 10s linear infinite;box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.08),0 4px 12px rgba(var(--primary-color-rgb),.15)}.evolution-card .legend-item.active-filter .legend-label{color:var(--primary-color);font-weight:600}.evolution-card .legend-item.active-filter .legend-count{color:var(--primary-color)}.evolution-card .legend-dot{display:none}.evolution-card .legend-dot.progress{background:linear-gradient(135deg,var(--success-color) 0%,rgba(var(--success-rgb),.8) 100%)}.evolution-card .legend-dot.stable{background:linear-gradient(135deg,var(--text-tertiary) 0%,var(--bg-tertiary) 100%)}.evolution-card .legend-dot.regression{background:linear-gradient(135deg,var(--error-color) 0%,rgba(var(--error-rgb),.8) 100%)}.evolution-card .legend-text{display:flex;flex-direction:column-reverse;align-items:center;gap:0}.evolution-card .legend-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.2px;font-weight:500;color:var(--text-secondary);transition:color .2s ease}.evolution-card .legend-count{font-size:1.1rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2;margin-bottom:2px;color:var(--text-primary)}.evolution-card .legend-item[data-filter-id=progressCount] .legend-count{color:var(--success-color)}.evolution-card .legend-item[data-filter-id=stableCount] .legend-count{color:var(--text-tertiary)}.evolution-card .legend-item[data-filter-id=regressionCount] .legend-count{color:var(--error-color)}.evolution-card .chart-container{display:none;justify-content:center;align-items:center;padding:8px 0}.evolution-card.view-chart .evolution-distribution-bar,.evolution-card.view-chart .evolution-legend{display:none}.evolution-card.view-chart .chart-container{display:flex}.evolution-donut{width:100px;height:100px;transform:rotate(-90deg)}.evolution-donut circle{fill:none;stroke-width:12;stroke-linecap:round;transition:stroke-dasharray .6s cubic-bezier(.4,0,.2,1)}.evolution-donut .donut-progress{stroke:var(--success-color)}.evolution-donut .donut-stable{stroke:#9ca3af}.evolution-donut .donut-regression{stroke:var(--error-color)}.evolution-donut .donut-bg{stroke:var(--bg-secondary);stroke-width:12}.chart-legend-inline{display:flex;flex-direction:column;gap:6px;margin-left:16px}.chart-legend-inline .legend-item{padding:6px 10px;min-width:auto}.legend-item[role=button]:focus-visible,.detail-item[role=button]:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.25)}.dispersion-card{display:flex;flex-direction:column}.homogeneity-badge{font-size:.7rem;font-weight:600;padding:4px 10px;border-radius:var(--radius-pill);background:var(--bg-secondary);color:var(--text-secondary);transition:all var(--transition-base);white-space:nowrap}.homogeneity-badge.positive{background:rgba(var(--success-rgb),.1);color:var(--success-color)}.homogeneity-badge.warning{background:rgba(var(--warning-rgb),.1);color:var(--warning-color)}.homogeneity-badge.negative{background:rgba(var(--error-rgb),.1);color:var(--error-color)}.dispersion-card .histogram-container{flex:1;display:flex;align-items:flex-end;padding:0;min-height:90px}.chart-toggles{display:flex;gap:4px;background:var(--bg-secondary);padding:3px;border-radius:var(--radius-sm)}.chart-toggles .view-toggle-btn{background:transparent;border:none;border-radius:var(--radius-xs);width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);font-size:.85rem;padding:0}.chart-toggles .view-toggle-btn:hover{color:var(--icon-btn-hover);background:var(--item-hover-bg)}.chart-toggles .view-toggle-btn.active{background:var(--surface-color);color:var(--primary-color);box-shadow:0 1px 3px #0000001a}.histogram-container{height:85px;display:flex;align-items:flex-end;justify-content:center;padding-top:4px;width:100%;flex-grow:1}.histogram-bars{display:flex;align-items:flex-end;gap:6px;height:100%;width:100%;justify-content:space-between}.hist-bar-group{display:flex;flex-direction:column;align-items:center;flex:1;height:100%;justify-content:flex-end;position:relative}.hist-bar{width:100%;border-radius:6px 6px 0 0;transition:height .6s cubic-bezier(.34,1.56,.64,1);min-height:4px;position:relative}.hist-bar-group[data-range="0-4"] .hist-bar{background:linear-gradient(180deg,var(--grade-range-0-4) 0%,rgba(var(--error-rgb),.6) 100%)}.hist-bar-group[data-range="4-8"] .hist-bar{background:linear-gradient(180deg,var(--grade-range-4-8) 0%,rgba(249,115,22,.6) 100%)}.hist-bar-group[data-range="8-12"] .hist-bar{background:linear-gradient(180deg,var(--grade-range-8-12) 0%,rgba(234,179,8,.6) 100%)}.hist-bar-group[data-range="12-16"] .hist-bar{background:linear-gradient(180deg,var(--grade-range-12-16) 0%,rgba(20,184,166,.6) 100%)}.hist-bar-group[data-range="16-20"] .hist-bar{background:linear-gradient(180deg,var(--grade-range-16-20) 0%,rgba(34,197,94,.6) 100%)}.hist-bar-group:hover .hist-bar{opacity:1;filter:brightness(1.1)}.hist-label{font-size:.6rem;color:var(--text-secondary);margin-top:4px;font-weight:500;transition:color .2s ease}.hist-bar-group[role=button]{cursor:pointer;border-radius:var(--radius-sm);padding:4px 2px;margin:-4px -2px;transition:all .25s cubic-bezier(.4,0,.2,1);border:1px solid transparent}.hist-bar-group[role=button]:not(.active-filter):hover{background:var(--item-active-bg)}.hist-bar-group[role=button]:not(.active-filter):hover .hist-bar{filter:brightness(1.15) saturate(1.2);box-shadow:0 4px 12px #00000026}.hist-bar-group[role=button]:not(.active-filter):hover .hist-label{color:var(--text-primary);font-weight:600}.hist-bar-group[role=button].active-filter{background-color:transparent;border:1px solid transparent!important;background-image:linear-gradient(var(--surface-color),var(--surface-color)),conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.5) 0%,rgba(var(--primary-color-rgb),.5) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.5) 32%,rgba(var(--primary-color-rgb),.5) 50%,rgba(var(--primary-color-rgb),.5) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.5) 82%,rgba(var(--primary-color-rgb),.5) 100%);background-origin:padding-box,border-box;background-clip:padding-box,border-box;animation:rotate-gradient 10s linear infinite;box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.08),0 4px 12px rgba(var(--primary-color-rgb),.15)}.hist-bar-group[role=button].active-filter .hist-label{color:var(--primary-color);font-weight:700}.hist-bar-group[role=button].active-filter .hist-bar{filter:brightness(1.1) saturate(1.15)}.hist-bar-group[role=button]:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.25)}@media (max-width: 900px) and (min-width: 701px){.stats-container{gap:var(--space-3)}.stats-container>.stat-card{min-width:0;overflow:hidden}.stat-card{padding:12px 14px}.performance-card .main-average-value{font-size:2.2rem}.histogram-container{height:70px;min-height:60px}.performance-card .performance-details{gap:6px}.performance-card .detail-item{padding:8px 6px}}@media (max-width: 550px){.stat-card{padding:10px 12px}.performance-card .main-average-value{font-size:1.8rem}.histogram-container{height:60px;min-height:50px}.performance-card .detail-item{padding:6px}}.filter-close-btn{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--error-color);color:#fff;border:2px solid var(--surface-color);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.6rem;transition:all .2s cubic-bezier(.32,.72,0,1);z-index:10;box-shadow:0 2px 8px #0003;opacity:0;transform:scale(.8);animation:filter-close-btn-appear .3s cubic-bezier(.32,.72,0,1) forwards}@keyframes filter-close-btn-appear{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.filter-close-btn:hover{background:var(--error-hover, #dc2626);transform:scale(1.15);box-shadow:0 4px 12px #ef444466}.filter-close-btn:active{transform:scale(.95)}.detail-item .filter-close-btn,.legend-item .filter-close-btn{top:-4px;right:-4px;width:18px;height:18px;font-size:.55rem}.hist-bar-group .filter-close-btn{top:-4px;right:-4px;width:16px;height:16px;font-size:.5rem}.hist-bar-group .filter-close-btn:hover{transform:scale(1.15)}[data-theme=dark] .filter-close-btn{border-color:var(--bg-secondary)}.nebula-card,.card-content-wrapper,.stat-card{background:var(--card-glass-bg);backdrop-filter:blur(var(--glass-surface-blur));-webkit-backdrop-filter:blur(var(--glass-surface-blur));border:1px solid var(--card-glass-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:all var(--transition-base);position:relative;overflow:hidden;display:grid;grid-template-areas:"header" "body" "footer";gap:var(--space-6)}.nebula-card:after,.card-content-wrapper:after,.stat-card:after{content:"";position:absolute;top:0;left:0;right:0;height:40%;background:linear-gradient(180deg,#ffffff26,#fff0);pointer-events:none;z-index:-1}[data-theme=dark] .nebula-card:after,[data-theme=dark] .card-content-wrapper:after,[data-theme=dark] .stat-card:after{background:linear-gradient(180deg,#ffffff08,#fff0)}.nebula-card:hover,.card-content-wrapper:hover{box-shadow:0 4px 16px #0000000f,0 2px 4px #00000008}[data-theme=dark] .stat-card{box-shadow:none}.appreciation-result:focus-visible .card-content-wrapper{box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.4)}.appreciation-result.is-editing .card-content-wrapper{position:relative;background:transparent!important;box-shadow:0 8px 32px rgba(var(--primary-color-rgb),.15);z-index:1}.appreciation-result.is-editing .card-content-wrapper:before{content:"";position:absolute;right:0;bottom:0;width:auto;height:auto;top:0;left:0;border-radius:inherit;background:conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.6) 0%,rgba(var(--primary-color-rgb),.6) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.6) 32%,rgba(var(--primary-color-rgb),.6) 50%,rgba(var(--primary-color-rgb),.6) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.6) 82%,rgba(var(--primary-color-rgb),.6) 100%);animation:rotate-gradient 8s linear infinite;opacity:1;z-index:-2;pointer-events:none}.appreciation-result.is-editing .card-content-wrapper:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:var(--radius-lg);background:var(--surface-color);z-index:-1;pointer-events:none}.appreciation-result.has-error .appreciation-text{background:#ef444414;border-radius:var(--radius-sm);padding:12px;color:var(--error-color)}.appreciation-result.has-error .card-content-wrapper:before{background:var(--error-color)!important;opacity:1!important}.appreciation-result.is-placeholder-for-period .card-content-wrapper{opacity:.5;background-color:var(--bg-secondary)}.appreciation-result.is-generating .card-content-wrapper{opacity:1!important;background-color:var(--surface-color);box-shadow:0 0 0 2px var(--primary-color)}.student-name-container{grid-area:header;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.student-name{font-weight:700;color:var(--text-primary);font-size:var(--font-lg);display:flex;align-items:flex-start;gap:4px 6px;flex-wrap:wrap;letter-spacing:-.01em;flex:1 1 auto;min-width:0}.student-identity{flex:1 0 100%}.student-name .statut-chip{flex:0 0 auto}.student-grades-display{display:flex;align-items:center;gap:4px;flex-shrink:0;margin-top:-3px}.ai-tech-corner{position:absolute;top:6px;left:8px;font-size:.75rem;color:var(--primary-color);opacity:.9;transition:opacity var(--transition-fast),transform var(--transition-fast);cursor:help;z-index:2}.ai-tech-corner:hover{opacity:1;transform:scale(1.1)}.appreciation-text-container{grid-area:body;padding:4px 0;position:relative}.appreciation-text-container[role=button]{cursor:pointer;border-radius:var(--radius-md);padding:14px;margin:-14px;transition:background var(--transition-fast)}.appreciation-text-container[role=button]:hover,.appreciation-text-container[role=button]:focus-visible{background:rgba(var(--primary-color-rgb),.1);box-shadow:inset 0 0 0 1px rgba(var(--primary-color-rgb),.15)}.appreciation-text{line-height:1.65;color:var(--text-primary);margin:0;font-size:var(--font-base)}.appreciation-placeholder-text{font-style:italic;color:var(--text-tertiary);margin:0}.error-text{color:var(--error-color);font-size:.85em;margin-top:10px}.refine-on-hover-label{position:absolute;bottom:8px;right:10px;background:var(--gradient-ai);background-size:200% 200%;animation:gradient-shift 3s ease infinite;border:none;color:#fff;padding:6px 12px;border-radius:var(--radius-sm);font-size:var(--font-xs);font-weight:600;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .2s ease,visibility .2s ease,transform .2s ease;pointer-events:none;box-shadow:0 4px 12px rgba(var(--primary-color-rgb),.3);display:flex;align-items:center;gap:4px;overflow:hidden}.refine-on-hover-label:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%);animation:shine-sweep 2s ease-in-out infinite}@keyframes gradient-shift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.appreciation-text-container:hover .refine-on-hover-label{opacity:1;visibility:visible;transform:translateY(0)}.card-footer{grid-area:footer;display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding-top:var(--space-3);border-top:1px solid rgba(0,0,0,.04)}[data-theme=dark] .card-footer{border-top-color:#ffffff0f}.student-summary-details{font-size:var(--font-sm);color:var(--text-secondary);display:flex;gap:10px;align-items:center;flex-wrap:wrap}.grade-bubble{min-width:36px;height:26px;padding:0 8px;border-radius:var(--radius-sm);font-size:var(--font-sm);font-weight:600;background:var(--bg-secondary);border:none;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);font-variant-numeric:tabular-nums}.grade-bubble.current-period-grade{min-width:48px;height:32px;padding:0 12px;font-size:var(--font-md);font-weight:700;background:var(--text-primary);color:var(--surface-color);box-shadow:0 2px 6px #0000001f}.grade-bubble.grade-range-0-4,.grade-value.grade-range-0-4{background:#ef44441f;color:var(--grade-range-0-4)}.grade-bubble.grade-range-4-8,.grade-value.grade-range-4-8{background:#f973161f;color:var(--grade-range-4-8)}.grade-bubble.grade-range-8-12,.grade-value.grade-range-8-12{background:#eab3081f;color:var(--grade-range-8-12)}.grade-bubble.grade-range-12-16,.grade-value.grade-range-12-16{background:#14b8a61f;color:var(--grade-range-12-16)}.grade-bubble.grade-range-16-20,.grade-value.grade-range-16-20{background:#22c55e1f;color:var(--grade-range-16-20)}.grade-bubble.current-period-grade.grade-range-0-4{background:var(--grade-range-0-4);color:#fff}.grade-bubble.current-period-grade.grade-range-4-8{background:var(--grade-range-4-8);color:#fff}.grade-bubble.current-period-grade.grade-range-8-12{background:var(--grade-range-8-12);color:#fff}.grade-bubble.current-period-grade.grade-range-12-16{background:var(--grade-range-12-16);color:#fff}.grade-bubble.current-period-grade.grade-range-16-20{background:var(--grade-range-16-20);color:#fff}.grade-arrow{font-size:var(--font-xs);color:var(--text-tertiary);opacity:.6;display:inline-flex;align-items:center;justify-content:center;width:20px}.grade-arrow i,.grade-arrow iconify-icon{transition:transform var(--transition-fast),color var(--transition-fast)}.grade-arrow.evolution-positive i,.grade-arrow.evolution-positive iconify-icon,.grade-arrow.evolution-very-positive i,.grade-arrow.evolution-very-positive iconify-icon{transform:rotate(-45deg);color:var(--success-color);opacity:1}.grade-arrow.evolution-negative i,.grade-arrow.evolution-negative iconify-icon,.grade-arrow.evolution-very-negative i,.grade-arrow.evolution-very-negative iconify-icon{transform:rotate(45deg);color:var(--error-color);opacity:1}.grade-arrow.evolution-stable i,.grade-arrow.evolution-stable iconify-icon{color:var(--text-tertiary);opacity:.4;transform:rotate(0)}.appreciation-actions{display:flex;gap:4px}.icon-action-btn{background:transparent;border:none;color:var(--text-secondary);width:34px;height:34px;border-radius:var(--radius-md);cursor:pointer;font-size:14px;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.icon-action-btn:hover:not(:disabled){background:var(--bg-secondary);color:var(--text-primary)}.icon-action-btn[data-action=delete]:hover:not(:disabled){color:var(--error-color);background:#ef44441a}.icon-action-btn:disabled{opacity:.35;cursor:not-allowed}.copy-btn.copied{background:#10b9811f;color:var(--success-color)}.toggle-version-btn{color:var(--primary-color)}.toggle-version-btn:hover:not(:disabled){background:rgba(var(--primary-color-rgb),.12);color:var(--primary-color)}.toggle-version-btn.showing-original{background:#f9731626;color:#f97316}.toggle-version-btn.showing-original:hover:not(:disabled){background:#f9731640}.student-name-container[role=button]{cursor:pointer;border-radius:var(--radius-md);padding:12px;margin:-12px;position:relative;transition:background-color var(--transition-fast)}.student-name-container[role=button]:hover,.student-name-container[role=button]:focus-visible{background-color:rgba(var(--primary-color-rgb),.08);box-shadow:inset 0 0 0 1px rgba(var(--primary-color-rgb),.2),0 0 16px rgba(var(--primary-color-rgb),.25),0 0 32px rgba(var(--primary-color-rgb),.15);animation:ai-glow-pulse 2s ease-in-out infinite}@keyframes ai-glow-pulse{0%,to{box-shadow:inset 0 0 0 1px rgba(var(--primary-color-rgb),.2),0 0 16px rgba(var(--primary-color-rgb),.25),0 0 32px rgba(var(--primary-color-rgb),.15)}50%{box-shadow:inset 0 0 0 1px rgba(var(--primary-color-rgb),.35),0 0 24px rgba(var(--primary-color-rgb),.4),0 0 48px rgba(var(--primary-color-rgb),.2)}}.student-name-container .student-grades-display{transition:opacity .3s ease,filter .3s ease,transform .3s ease}.student-name-container[role=button]:hover .student-grades-display,.student-name-container[role=button]:focus-visible .student-grades-display{opacity:.15;filter:blur(4px);transform:scale(.95)}.details-on-hover-label{position:absolute;top:50%;right:10px;transform:translateY(-50%) translateY(-4px);background:var(--gradient-ai);background-size:200% 200%;animation:gradient-shift 3s ease infinite;border:none;color:#fff;padding:6px 12px;border-radius:var(--radius-sm);font-size:var(--font-xs);font-weight:600;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease,transform .2s ease;pointer-events:none;box-shadow:0 4px 12px rgba(var(--primary-color-rgb),.3);display:flex;align-items:center;gap:4px;overflow:hidden;z-index:3}.details-on-hover-label:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%);animation:shine-sweep 2s ease-in-out infinite;z-index:1}.student-name-container:hover .details-on-hover-label{opacity:1;visibility:visible;transform:translateY(-50%)}@media (max-width: 768px){.card-content-wrapper{padding:18px;border-radius:var(--radius-md)}.student-name{font-size:1rem}.appreciation-text{font-size:13px}.card-footer{flex-direction:column;align-items:flex-start;gap:12px}.appreciation-actions{width:100%;justify-content:flex-end}}.disabled-during-generation .details-on-hover-label,.disabled-during-generation .refine-on-hover-label{display:none!important}.appreciation-result.generation-complete{opacity:1!important;filter:none!important}.appreciation-result.generation-complete .icon-action-btn{opacity:1!important;cursor:pointer!important}.appreciation-result.is-pending .card-content-wrapper{border:2px dashed rgba(var(--primary-color-rgb),.4);background:var(--surface-color)}.appreciation-result.is-pending .refine-on-hover-label,.appreciation-result.is-pending [data-action=regenerate],.appreciation-result.is-pending [data-action=toggle-version]{display:none!important}.appreciation-result.is-pending [data-template=wordCount]{opacity:.3}.pending-appreciation{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px 16px;text-align:center;color:var(--text-secondary)}.pending-appreciation i{font-size:1.5rem;opacity:.5;color:var(--primary-color)}.pending-appreciation span{font-size:var(--font-sm);font-style:italic}.pending-appreciation .generate-single-btn{margin-top:4px;font-size:var(--font-sm);padding:8px 16px;gap:6px}.student-details-row{background-color:var(--bg-primary);box-shadow:inset 0 4px 6px -4px #0000001a}.student-details-cell{padding:0!important;border-bottom:1px solid var(--border-color)}.details-content-container{max-height:0;opacity:0;overflow:hidden;transition:max-height .5s cubic-bezier(.23,1,.32,1),opacity .4s ease .1s,padding .5s ease;padding:0 var(--space-4)}.details-content-container.open{max-height:1200px;opacity:1;padding:var(--space-4)}.details-content-container .nebula-card,.details-content-container .card-content-wrapper{box-shadow:none;border:1px solid var(--glass-surface-border);background:var(--surface-color);margin:0;max-width:100%;border:none!important;background:var(--surface-color)!important}.details-content-container .student-grades-display,.details-content-container .grade-bubble{display:none!important}.details-content-container .student-name-container{margin-bottom:var(--space-2);display:none!important}.details-content-container .student-header,.details-content-container .student-name-container{display:none!important}.student-tags-list{display:inline-flex;gap:4px;margin-left:8px;vertical-align:middle}.tag-badge{font-size:11px;padding:4px 8px;border-radius:var(--radius-pill);background:var(--neutral-light);color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.tag-badge.tag-warning{background:var(--warning-light);color:var(--warning-color)}.tag-badge.tag-info{background:var(--info-light);color:var(--info-color)}.tag-badge.tag-danger{background:var(--error-light);color:var(--error-color)}.tag-badge.status-badge-clickable{cursor:pointer;transition:transform .2s cubic-bezier(.32,.72,0,1),filter .2s ease,box-shadow .2s ease}.tag-badge.status-badge-clickable:hover{transform:scale(1.08);filter:brightness(1.1);box-shadow:0 2px 8px #00000026}.tag-badge.status-badge-clickable:active{transform:scale(.98)}.btn-action-edit{background:transparent;color:var(--text-tertiary);border:1px solid transparent;transition:all var(--transition-fast);box-shadow:none}.btn-action-edit:hover{background:var(--bg-surface);color:var(--primary-color);border-color:var(--primary-color)}.student-list-table{border-collapse:separate;border-spacing:0;width:100%}.student-list-table th,.student-list-table td{vertical-align:middle;padding:12px 16px}.student-list-table th{font-weight:600;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color)}.student-list-table th:nth-child(1),.student-list-table td.toggle-cell,.student-list-table th:nth-child(2),.student-list-table td.student-name-cell{text-align:left}.student-list-table th.grade-header,.student-list-table td.grade-cell,.student-list-table th:last-child,.student-list-table td.action-cell,.student-list-table th:nth-last-child(2),.student-list-table td.status-cell{text-align:center}.student-list-table td.grade-cell{position:relative;height:48px}.student-list-table td.grade-cell .grade-value{display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums;font-weight:600;min-width:48px;height:28px;border-radius:var(--radius-sm)}.student-list-table td.grade-cell{padding:12px 16px}.grade-content-wrapper{display:inline-flex;align-items:center;position:relative}.student-list-table .evolution-header,.student-list-table .evolution-cell{width:32px;min-width:32px;max-width:38px;padding:0 4px!important;text-align:center}.student-list-table td.evolution-cell .grade-evolution{display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:600}.student-name-cell{text-align:left;padding-left:var(--space-2)}.toggle-row-btn{background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:4px;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.toggle-row-btn:hover{background-color:var(--bg-secondary);color:var(--primary-color)}.toggle-row-btn i{transition:transform .3s ease}.student-row.expanded .toggle-row-btn i{transform:rotate(90deg)}.student-row.expanded{background-color:var(--bg-secondary);border-bottom-color:transparent}.fab-add-student{position:fixed;bottom:24px;right:24px;width:60px;height:60px;border-radius:50%;background:rgba(var(--primary-color-rgb),.15);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(var(--primary-color-rgb),.2);color:var(--primary-color);box-shadow:none;display:flex;align-items:center;justify-content:center;font-size:1.4rem;cursor:pointer;transition:all .4s cubic-bezier(.25,.8,.25,1);z-index:100}.fab-add-student:hover{transform:translateY(-4px) scale(1.05);background:rgba(var(--primary-color-rgb),.9);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 8px 24px rgba(var(--primary-color-rgb),.35);color:#fff;border-color:transparent;outline:none}.fab-add-student:active{transform:scale(.95);box-shadow:0 4px 12px rgba(var(--primary-color-rgb),.2)}.fab-add-student i{pointer-events:none}.preview-student-selector{margin-bottom:12px}.preview-student-selector select{width:100%;padding:8px 12px;border-radius:8px;border:1px solid var(--border-color);background-color:var(--input-background);color:var(--text-primary);font-weight:500}.student-info-card{background:var(--bg-secondary);border-radius:8px;padding:12px;border:1px solid var(--border-color);margin-bottom:12px}.student-info-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.95em}.student-name{font-weight:600;color:var(--text-primary)}.student-average{font-weight:600;color:var(--primary-color)}.history-table{width:100%;border-collapse:collapse;font-size:.85em;margin-top:8px}.history-table th{text-align:left;color:var(--text-secondary);font-weight:500;padding:4px 8px;border-bottom:1px solid var(--border-color)}.history-table td{padding:6px 8px;color:var(--text-primary);border-bottom:1px solid rgba(0,0,0,.03)}[data-theme=dark] .history-table td{border-bottom-color:#ffffff08}.history-period-badge{display:inline-block;padding:2px 6px;border-radius:var(--radius-xs);font-size:.85em;background:var(--bg-color);color:var(--text-secondary)}.history-period-badge.current{background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color);font-weight:600}.history-appreciation-preview{color:var(--text-secondary);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.privacy-description-wrapper{display:flex;flex-direction:column;gap:8px;font-size:.95em;color:var(--text-secondary);margin-top:8px}.privacy-option{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;line-height:1.5}.privacy-option .option-label{font-weight:600;color:var(--text-primary);min-width:80px}.privacy-option .option-desc{color:var(--text-secondary)}.privacy-warning-badge{display:inline-flex;align-items:center;gap:4px;font-size:.85em;background:rgba(var(--warning-rgb),.1);color:var(--warning-hover);padding:2px 8px;border-radius:4px;font-weight:500;margin-left:4px;white-space:nowrap}[data-theme=dark] .privacy-warning-badge{color:var(--warning-light-text);background:rgba(var(--warning-rgb),.15)}.privacy-footer-note{margin-top:8px;font-size:.9em;opacity:.9;color:var(--text-primary);background:rgba(var(--primary-color-rgb),.08);padding:8px 12px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:8px;border-left:3px solid var(--primary-color)}.privacy-footer-note i{color:var(--primary-color)}.help-tab-content{display:none}.help-tab-content.active{display:block;animation:helpTabSlideIn .5s cubic-bezier(.32,.72,0,1) forwards}[data-direction=down] .help-tab-content.active{animation-name:helpTabSlideUp}[data-direction=up] .help-tab-content.active{animation-name:helpTabSlideDown}.help-tab-title{margin-top:0;margin-bottom:20px;font-size:1.25rem;color:var(--text-primary);display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border-color);padding-bottom:15px}.help-intro-box{display:flex;gap:16px;align-items:flex-start;font-size:1em;color:var(--text-primary);margin-bottom:30px;background:#fffaf0;border:1px solid #FEEBC8;border-radius:var(--radius-lg);padding:20px;line-height:1.5}[data-theme=dark] .help-intro-box{background:#f59e0b1a;border-color:#f59e0b33}.help-intro-icon{color:var(--warning-color);font-size:1.2em;margin-top:2px;flex-shrink:0}.help-step-card{background:var(--surface-color);padding:18px 20px;border-radius:var(--radius-lg);margin:14px 0;border:1px solid var(--border-color);box-shadow:none}.help-step-layout{display:flex;gap:16px;align-items:flex-start}.help-step-body{flex:1;padding-top:3px}.help-step-body p{margin:4px 0 0;font-size:.95em}.help-step-body .btn{width:100%;justify-content:center;margin-top:12px}.help-provider-hero{display:flex;align-items:center;gap:16px;margin-top:16px}.help-provider-hero .provider-selector-compact{flex-shrink:0;margin:0}.help-provider-hero .provider-desc{font-size:.92em;color:var(--text-secondary);line-height:1.5;margin:0}.help-step-number{background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.95rem;flex-shrink:0;box-shadow:none;position:relative;top:-2px}.help-step-number.safety-icon{background:#10b9811a;color:var(--success-color)}.help-accordion{margin-top:24px;background:var(--bg-secondary);border:none;border-radius:var(--radius-lg)}.help-accordion summary{font-size:1em;padding:16px 20px;cursor:pointer;list-style:none;background:transparent;border:none;border-radius:var(--radius-lg);font-weight:600;display:flex;align-items:center;justify-content:space-between}.help-accordion[open] summary{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:1px solid var(--border-color)}.help-accordion .details-content{background:var(--bg-secondary);border:none;border-top:none;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);padding:0}.help-action-button.btn-secondary{background:var(--surface-color);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.help-action-button.btn-secondary:hover:not(:disabled){background:rgba(var(--primary-color-rgb),.1);border-color:rgba(var(--primary-color-rgb),.3)}@keyframes helpTabSlideIn{0%{opacity:0;transform:translateY(12px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes helpTabSlideUp{0%{opacity:0;transform:translateY(16px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes helpTabSlideDown{0%{opacity:0;transform:translateY(-16px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}.about-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px;padding-bottom:0;border-bottom:none}.about-header-main{display:flex;align-items:center;gap:12px}.about-logo{width:80px;height:auto;filter:drop-shadow(0 4px 6px rgba(var(--primary-color-rgb),.2))}.about-title-group h3{font-size:1.4rem;font-family:Outfit,sans-serif;letter-spacing:-.02em;margin:0 0 2px;background:linear-gradient(135deg,var(--text-primary) 0%,var(--text-secondary) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.about-version{display:inline-block;background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color);padding:2px 8px;border-radius:20px;font-weight:600;font-size:.75rem}.about-tagline{font-size:.95rem;color:var(--text-secondary);margin-bottom:20px;line-height:1.5;max-width:600px}.about-header .btn{margin-top:0;background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);font-weight:500;padding:6px 12px;font-size:.85em}.about-header .btn:hover{border-color:var(--primary-color);color:var(--primary-color);background:rgba(var(--primary-color-rgb),.05)}.about-actions{display:none}.support-card-premium{background:linear-gradient(135deg,#fffcf7,#fff4f6);border:1px solid rgba(255,94,91,.15);padding:16px 20px;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);position:relative;overflow:hidden;text-align:center;max-width:90%;margin:48px auto 12px}[data-theme=dark] .support-card-premium{background:linear-gradient(135deg,#6366f11f,#a855f71f,#ec489914);border:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 24px #0003,inset 0 1px #ffffff0d}[data-theme=dark] .support-card-premium:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(168,85,247,.3) 50%,transparent 100%)}.support-card-premium h4{font-size:1.1rem;margin-top:0;margin-bottom:8px;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--text-primary)}.support-card-premium p{margin-bottom:12px;color:var(--text-secondary);font-size:.9rem;line-height:1.4}.btn-kofi{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 20px;font-size:.9rem;font-weight:600;background:#fff;color:#ea580c;border:1px solid #FED7AA;border-radius:var(--radius-md);cursor:pointer;text-decoration:none;transition:all .3s cubic-bezier(.25,.8,.25,1);box-shadow:0 2px 6px #ea580c1a;position:relative;overflow:hidden}.btn-kofi:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent);transition:left .6s ease;z-index:1}.btn-kofi:hover:before{left:100%}.btn-kofi:hover{transform:translateY(-2px);background:linear-gradient(135deg,#ff9a6c,#ff6b8b)!important;color:#fff;border-color:transparent;box-shadow:0 6px 20px #ff6b8b4d}.btn-kofi:active{transform:translateY(0);box-shadow:0 2px 8px #ea580c33}[data-theme=dark] .btn-kofi{background:#ffffff0f;color:#ffffffe6;border:1px solid rgba(168,85,247,.3);box-shadow:0 2px 8px #0003,inset 0 1px #ffffff0d}[data-theme=dark] .btn-kofi:hover{background:linear-gradient(135deg,#8b5cf6,#ec4899)!important;color:#fff;border-color:transparent;box-shadow:0 8px 24px #8b5cf659,0 4px 12px #ec489940;transform:translateY(-2px)}[data-theme=dark] .btn-kofi:before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent)}.about-footer{font-size:.8rem;color:var(--text-tertiary);text-align:center;margin-top:auto;padding-top:32px}.settings-layout-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.settings-layout-grid>*:first-child{position:relative;z-index:10}.settings-layout-grid>*:last-child{position:relative;z-index:5}.personalization-modal-content{max-width:900px;width:95%;transition:max-width .3s ease}.personalization-modal-content.inspector-visible{max-width:1200px}.settings-layout-grid.personalization-grid{grid-template-columns:1fr 1fr;gap:16px}.settings-layout-grid.personalization-grid.inspector-visible{grid-template-columns:1fr 1fr 1fr}.personalization-grid>*{min-width:0}.settings-inspector-column{display:none;min-width:0;overflow:visible}.personalization-grid.inspector-visible .settings-inspector-column{display:block;animation:slideInFromRight .35s cubic-bezier(.32,.72,0,1)}@keyframes slideInFromRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.inspector-toggle-btn{width:32px;height:32px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--surface-color);color:var(--icon-btn-color);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);font-size:18px}.inspector-toggle-btn iconify-icon{font-size:1em}.inspector-toggle-btn:hover{background:var(--item-hover-bg);color:var(--icon-btn-hover);border-color:var(--primary-color)}.inspector-toggle-btn.active{background:var(--item-active-bg);color:var(--primary-color);border-color:var(--primary-color)}.modal-header-actions.spaced{display:flex;align-items:center;gap:12px}.personalization-grid{align-items:stretch}.personalization-grid .settings-card{height:100%;display:flex;flex-direction:column}.personalization-grid .settings-card-content{flex:1;display:flex;flex-direction:column}#copyPromptBtn{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--surface-color);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);font-size:14px}#copyPromptBtn:hover{background:var(--bg-secondary);color:var(--primary-color);border-color:var(--primary-color)}.settings-inspector-column .prompt-preview-block{max-height:none;min-height:200px;font-size:12px;line-height:1.5;flex:1}.settings-card{background:var(--card-glass-bg);backdrop-filter:blur(var(--glass-surface-blur));-webkit-backdrop-filter:blur(var(--glass-surface-blur));border:1px solid var(--card-glass-border);border-radius:var(--radius-lg);padding:16px;margin-bottom:16px;height:auto;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);position:relative;z-index:1}.settings-card:focus-within{z-index:100}.settings-card.has-open-dropdown{z-index:500}.settings-card-title{margin-top:0;margin-bottom:20px;font-size:1.125rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--border-color)}.settings-card-title i{color:var(--primary-color)}.settings-card-content{flex:1;transition:opacity .3s ease,filter .3s ease}.settings-card-content .form-group:last-child{margin-bottom:0;flex:1;display:flex;flex-direction:column}.settings-card-content .form-group:last-child textarea{flex:1;resize:none}.style-instructions-textarea::-webkit-scrollbar{width:6px}.style-instructions-textarea::-webkit-scrollbar-track{background:transparent;margin-block:4px}.style-instructions-textarea::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:var(--radius-pill)}.style-instructions-textarea::-webkit-scrollbar-thumb:hover{background-color:var(--text-secondary)}.settings-card .form-group{margin-bottom:24px}.settings-input{height:36px;padding:0 12px}.options-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.options-grid .form-group{margin-bottom:0}.options-grid+h3{margin-top:32px}.settings-card .form-group label:not(.ui-segment){display:block;margin-bottom:8px;color:var(--text-primary);font-weight:600;font-size:.95rem}.settings-card .form-group .generation-mode-selector label,.settings-card .form-group .toggle-switch,.settings-card .form-group .toggle-switch-label{margin-bottom:0;display:inline-block}.settings-card .form-group label small{font-weight:400;opacity:.7;font-size:.85em;margin-left:4px}.label-with-icon{display:flex;align-items:center;gap:8px}.settings-evo-icon{font-size:1em;width:20px;text-align:center}.settings-evo-icon.positive,.settings-evo-icon.very-positive{color:var(--success-color)}.settings-evo-icon.negative,.settings-evo-icon.very-negative{color:var(--error-color)}.settings-preview-panel{background-color:var(--surface-color);border-radius:var(--radius-sm);padding:16px;border:1px solid var(--border-color)}.settings-preview-panel h3{margin-top:0;font-size:1.125rem}#studentDetailsModal h3{margin:0 0 16px;font-size:1rem;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:8px}#studentDetailsModal h3 i{color:var(--primary-color);font-size:.9em}#studentDetailsModal #strengthsWeaknessesSection,#studentDetailsModal #nextStepsSection{margin-top:20px;padding-top:20px;border-top:1px solid rgba(0,0,0,.06)}[data-theme=dark] #studentDetailsModal #strengthsWeaknessesSection,[data-theme=dark] #studentDetailsModal #nextStepsSection{border-top-color:#ffffff14}#studentDetailsModal #strengthsWeaknessesSection:first-of-type,#studentDetailsModal #nextStepsSection:first-of-type{padding-top:0;border-top:none}.slider-container{position:relative;height:34px;margin-top:2px;margin-bottom:24px;border:1px solid var(--border-color);border-radius:var(--radius-pill);padding:0 4px;display:flex;align-items:center;background-color:var(--bg-secondary);transition:border-color var(--transition-fast)}.slider-container:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:var(--radius-pill);padding:1px;opacity:0;transition:opacity var(--transition-fast);pointer-events:none;z-index:1;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;background:linear-gradient(90deg,rgba(var(--primary-color-rgb),.5),rgba(var(--primary-color-rgb),.5))}.slider-container:hover:after{opacity:1}.slider-container:focus-within:after{opacity:1;background:conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.5) 0%,rgba(var(--primary-color-rgb),.5) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.5) 32%,rgba(var(--primary-color-rgb),.5) 50%,rgba(var(--primary-color-rgb),.5) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.5) 82%,rgba(var(--primary-color-rgb),.5) 100%);animation:rotate-gradient 10s linear infinite;box-shadow:0 0 0 1px rgba(var(--primary-color-rgb),.1)}.slider-container input[type=range]{z-index:5;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;background:transparent;cursor:pointer;margin:0;height:100%;padding:0;position:relative;z-index:2;pointer-events:none;border:none;outline:none}.slider-container input[type=range]:focus{outline:none}.slider-container input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:20px;width:20px;background:var(--primary-color);border-radius:50%;box-shadow:var(--shadow-sm);margin-top:-8px;pointer-events:auto;cursor:grab;border:none;transition:transform .15s ease,box-shadow .15s ease}.slider-container input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 2px 6px #0000004d}.slider-container input[type=range]::-moz-range-thumb{height:20px;width:20px;background:var(--primary-color);border-radius:50%;box-shadow:var(--shadow-sm);pointer-events:auto;cursor:grab;border:none;transition:transform .15s ease,box-shadow .15s ease}.slider-container input[type=range]::-moz-range-thumb:hover{transform:scale(1.15);box-shadow:0 2px 6px #0000004d}.slider-container input[type=range]:active::-webkit-slider-thumb{cursor:grabbing}.slider-container input[type=range]:active::-moz-range-thumb{cursor:grabbing}.slider-container:before{content:"";position:absolute;top:50%;transform:translateY(-50%);left:4px;right:4px;height:4px;background:var(--bg-tertiary);border-radius:var(--radius-xs);z-index:0}.slider-container input[type=range]::-webkit-slider-runnable-track{width:100%;height:4px;background:transparent;border-radius:2px;border:none}.slider-container input[type=range]::-moz-range-track{width:100%;height:4px;background:transparent;border-radius:2px;border:none}.slider-ticks{display:flex;justify-content:space-between;align-items:center;position:absolute;top:50%;transform:translateY(-50%);left:10px;right:10px;height:10px;z-index:1;pointer-events:none}.tick{width:3px;height:10px;background-color:var(--bg-tertiary);border-radius:2px;transition:all var(--transition-fast);position:relative;pointer-events:auto;cursor:pointer}.tick:hover{background-color:var(--primary-color);transform:scaleY(1.3)}.tick.active{background-color:var(--primary-color);height:12px;transform:translateY(-1px);opacity:1}.tick:after{content:"";position:absolute;top:-10px;left:-10px;right:-10px;bottom:-10px;background:transparent;pointer-events:auto;cursor:pointer}.slider-labels{position:absolute;bottom:-22px;left:0;right:0;display:flex;justify-content:space-between;padding:0 4px;color:var(--text-secondary);font-size:11px;font-weight:400;opacity:.8}.slider-labels span{cursor:pointer;transition:color var(--transition-fast);flex:1}.slider-labels span:first-child{text-align:left}.slider-labels span:last-child{text-align:right}.slider-labels span:not(:first-child):not(:last-child){text-align:center}.slider-labels span.active{color:var(--text-primary);font-weight:600}.slider-header-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.slider-header-row label{margin-bottom:0;color:var(--text-primary);font-weight:600;font-size:.95rem}.slider-value-display{font-size:.9em;font-weight:500;color:var(--text-primary);font-family:monospace;opacity:.9}.form-group label[for=iaLengthSlider]{display:flex;align-items:center;gap:6px}.length-slider-container{position:relative}.toggle-switch-container{display:flex;align-items:center;gap:12px}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-switch .slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:var(--bg-tertiary);transition:.3s;border-radius:var(--radius-xl)}.toggle-switch .slider:before{position:absolute;content:"";height:16px;width:16px;left:4px;bottom:4px;background:#fff;transition:.3s;border-radius:var(--radius-pill)}.toggle-switch input:checked+.slider{background:var(--primary-color)}.toggle-switch input:checked+.slider:before{transform:translate(20px)}.settings-card .toggle-switch-label{margin:0;font-weight:500;cursor:pointer;font-size:14px}.settings-subject-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;margin-bottom:24px}.subject-header-title{display:flex;align-items:center;gap:12px;font-size:1.125rem;font-weight:600}.subject-header-title label{margin:0;font-size:inherit;font-weight:inherit}.subject-header-controls{display:flex;align-items:center;gap:8px}#subject-customization-panel.disabled .settings-controls-panel,#subject-customization-panel.disabled .subject-header-controls{opacity:.5;pointer-events:none}#subject-customization-panel.disabled .subject-header-title{pointer-events:all}#settings-controls-panel.disabled{position:relative}#settings-controls-panel.disabled .settings-card-content{opacity:.45;pointer-events:none;filter:grayscale(30%);-webkit-user-select:none;user-select:none}#settings-controls-panel.disabled .settings-card-content *{cursor:not-allowed!important}#settings-controls-panel.disabled .slider-container input[type=range]::-webkit-slider-thumb{background:var(--text-secondary)}#settings-controls-panel.disabled .slider-container input[type=range]::-moz-range-thumb{background:var(--text-secondary)}#settings-controls-panel.disabled .slider-value-display{color:var(--text-secondary)}#settings-controls-panel.disabled .generation-mode-selector input[type=radio]:checked+label{background:var(--text-secondary)}#settings-controls-panel.disabled .generic-lock-icon{opacity:1;color:var(--text-secondary)}#settings-controls-panel.disabled .generic-info-card{opacity:1;filter:none;pointer-events:auto;-webkit-user-select:auto;user-select:auto;cursor:default}#vocabulaireSection.disabled{opacity:.6}#vocabulaireSection.settings-preview-panel{background:var(--card-glass-bg);border-radius:var(--radius-sm);padding:20px;border:1px solid var(--card-glass-border)}.vocab-list-container{display:flex;flex-direction:column;gap:6px;padding:12px;background:var(--card-glass-bg);border:1px solid var(--card-glass-border);border-radius:var(--radius-sm);max-height:200px;overflow-y:auto}.vocab-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--bg-secondary);border-radius:var(--radius-xs);gap:12px;transition:background var(--transition-fast)}.vocab-item:hover{background:var(--item-hover-bg-elevated)}.vocab-item-text{flex-grow:1;font-size:14px;padding:4px;border-radius:var(--radius-xs);transition:background var(--transition-fast)}.vocab-item-text:focus{outline:none;background-color:transparent;border:2px solid transparent!important;background-image:linear-gradient(var(--bg-color),var(--bg-color)),conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.5) 0%,rgba(var(--primary-color-rgb),.5) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.5) 32%,rgba(var(--primary-color-rgb),.5) 50%,rgba(var(--primary-color-rgb),.5) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.5) 82%,rgba(var(--primary-color-rgb),.5) 100%);background-origin:padding-box,border-box;background-clip:padding-box,border-box;animation:rotate-gradient 10s linear infinite;box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.08),0 2px 8px rgba(var(--primary-color-rgb),.1)}.vocab-item-actions{display:flex;gap:4px}.vocab-item-actions button{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px 8px;border-radius:var(--radius-xs);transition:all var(--transition-fast);font-size:14px}.vocab-item-actions button:hover{color:var(--error-color);background:var(--error-light)}.vocab-add-form{display:flex;gap:8px;margin-top:12px}.setting-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;gap:20px}.setting-info{flex:1}.setting-subtitle{margin:0 0 2px;font-size:.95rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px}.setting-subtitle i{color:var(--text-secondary);font-size:.9em}.setting-description{margin:0;font-size:.85rem;color:var(--text-secondary);line-height:1.4}.setting-actions-group{display:flex;gap:10px}.settings-divider{height:1px;background:var(--border-color);margin:8px 0}.version-badge{display:inline-block;background:var(--bg-secondary);color:var(--text-secondary);padding:4px 10px;border-radius:var(--radius-pill);font-size:.85rem;font-weight:600;font-family:monospace;letter-spacing:.5px;border:1px solid var(--border-color)}.danger-zone-details{margin-top:8px}.danger-accordion[open]{border-color:#ef44444d}.danger-accordion summary{color:var(--error-color)}.danger-accordion summary i{color:var(--error-color)}.danger-accordion summary:hover{background-color:#ef44440a}.danger-accordion[open] summary{background-color:#ef444414;border-bottom-color:#ef444426}.danger-accordion .details-content{background:#ef444408}.danger-action-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0}.danger-info{display:flex;flex-direction:column;gap:2px}.danger-info strong{color:var(--error-color);font-size:.9rem}.danger-info span{font-size:.8rem;color:var(--text-secondary)}.settings-card-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--gap-sm);padding-bottom:10px;border-bottom:2px solid rgba(0,0,0,.05)}[data-theme=dark] .settings-card-header-row{border-bottom-color:#ffffff14}.settings-card-header-row .settings-card-title{margin:0;border:none;padding:0}.session-cost-label{font-size:.85em;color:var(--text-secondary)}.session-cost-value{font-family:monospace;color:var(--text-primary)}.api-key-links{display:flex;gap:10px;align-items:center}.btn-link-secondary{color:var(--text-secondary);font-size:.9em}.api-key-info{margin-bottom:10px;font-size:.85em;color:var(--text-secondary)}.toggle-full-width{width:100%;margin-bottom:10px}.api-key-actions-wrap{flex-wrap:wrap}.flex-1{flex:1}.form-group-compact{margin-bottom:0}.sample-data-link{margin-left:auto;font-size:.85em}.input-sm{width:120px}.setting-row-column{flex-direction:column;align-items:stretch;gap:16px}.setting-info-full{width:100%}.settings-divider-light{height:1px;background:var(--border-color);opacity:.5;margin:12px 0}.badge-beta{display:inline-flex;align-items:center;padding:2px 8px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:linear-gradient(135deg,var(--primary-color),var(--accent-color, #8b5cf6));color:#fff;border-radius:var(--radius-pill);margin-left:8px}.sync-providers{display:flex;gap:12px;flex-wrap:wrap}.sync-provider-card{flex:1;min-width:200px;display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-base)}.sync-provider-card:hover{box-shadow:var(--shadow-sm)}.sync-provider-card.connected{border-color:var(--success-color);background:#22c55e0d}.provider-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--surface-color);border-radius:var(--radius-sm);font-size:1.25rem;color:var(--text-secondary)}.sync-provider-card[data-provider=google] .provider-icon{color:#4285f4}.sync-provider-card[data-provider=dropbox] .provider-icon{color:#0061ff}.provider-info{flex:1;display:flex;flex-direction:column;gap:2px}.provider-name{font-weight:600;font-size:.95rem;color:var(--text-primary)}.provider-status{font-size:.8rem;color:var(--text-secondary)}.provider-status.connected{color:var(--success-color)}.sync-status-bar{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-color)}.sync-status-indicator{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text-secondary)}.sync-status-indicator i,.sync-status-bar.syncing .sync-status-indicator i{color:var(--primary-color)}.sync-status-bar.error .sync-status-indicator i{color:var(--error-color)}.sync-status-bar.success .sync-status-indicator i{color:var(--success-color)}.sync-last-time{font-size:.8rem;color:var(--text-tertiary)}.sync-rgpd-warning{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:#fbbf241a;border:1px solid rgba(251,191,36,.3);border-radius:var(--radius-sm);font-size:.85rem;color:var(--text-secondary)}.sync-rgpd-warning i{color:#f59e0b;margin-top:2px}.cloud-actions-bar{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);flex-wrap:wrap}.cloud-actions-bar .btn{min-width:120px;justify-content:center}.cloud-last-save{margin-left:auto;font-size:.8rem;color:var(--text-tertiary);font-style:italic}.generic-info-card{transition:max-height .35s cubic-bezier(.32,.72,0,1),opacity .25s ease-out,margin .35s cubic-bezier(.32,.72,0,1),padding .35s cubic-bezier(.32,.72,0,1);overflow:hidden;max-height:200px;opacity:1;display:block;color:var(--primary-color);font-weight:500;background:rgba(var(--primary-color-rgb),.08);border:1px solid rgba(var(--primary-color-rgb),.2);border-radius:var(--radius-md);padding:12px 16px;margin-bottom:20px}.generic-info-card.collapsed{max-height:0;opacity:0;margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important;pointer-events:none}.style-instructions-textarea::placeholder,.settings-card-content input[type=text]::placeholder{color:var(--text-tertiary);font-style:italic;opacity:1}.settings-focus-highlight,.form-group.highlight-pulse,.form-group.settings-focus-highlight,.highlight-flash{animation:settings-focus-glow .8s cubic-bezier(.4,0,.2,1) 3;border-radius:var(--radius-md)}@keyframes settings-focus-glow{0%,to{background-color:transparent}40%{background-color:rgba(var(--primary-color-rgb),.12)}}.privacy-description-container{line-height:1.5;font-size:.95em}.privacy-option-item{margin-top:4px}.privacy-note{margin-top:6px;font-style:italic;opacity:.8;font-size:.9em}.privacy-note i{font-size:.9em}.preview-meta-container{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:8px;flex-wrap:wrap}.preview-model-badge{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#fbbf241a;border-radius:var(--radius-pill);font-size:11px;font-weight:500;color:#fbbf24e6;cursor:help;transition:all var(--transition-fast)}.preview-model-badge:hover{background:#fbbf242e;color:#fbbf24;transform:scale(1.02)}.preview-model-badge i{font-size:10px}[data-theme=dark] .preview-model-badge{background:#fbbf2426;color:#fbbf24}[data-theme=dark] .preview-model-badge:hover{background:#fbbf2440}.preview-meta-container .word-count{background:var(--bg-secondary);border:none;border-radius:var(--radius-pill);padding:4px 10px;font-size:11px;font-weight:500;color:var(--text-secondary);margin-left:auto}[data-theme=dark] .preview-meta-container .word-count{background:#ffffff0f;color:var(--text-secondary)}.refinement-group{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden;transition:all var(--transition-base);margin-bottom:20px}.refinement-content{padding:16px 16px 8px;min-height:100px;font-size:.95rem;line-height:1.6;color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.refinement-content:empty,.refinement-content.placeholder{color:var(--text-tertiary);font-style:italic;display:flex;align-items:center;justify-content:center;text-align:center}.preview-meta-container{background:transparent;border-top:1px solid rgba(0,0,0,.03);margin-top:0;padding:8px 12px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}[data-theme=dark] .refinement-group{background:#27272a66}[data-theme=dark] .preview-meta-container{border-top-color:#ffffff08}#settingsPreviewRefreshBtn.btn-regenerate{background:transparent;border:1px solid var(--primary-color);color:var(--primary-color);box-shadow:none}#settingsPreviewRefreshBtn.btn-regenerate:hover{background:var(--gradient-primary);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(var(--primary-color-rgb),.3);transform:translateY(-1px)}#settingsPreviewRefreshBtn.btn-regenerate:active{transform:translateY(0)}.generation-mode-selector input:checked+label,.segmented-control input:checked+label{color:var(--text-primary)!important}.generation-mode-selector label:hover,.segmented-control label:hover{color:var(--text-primary)}.modal-content-backup-import{max-width:520px;width:92%}.backup-meta-line{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-secondary);margin-bottom:16px;padding:8px 12px;background:var(--bg-secondary);border-radius:var(--radius-md)}.backup-meta-line iconify-icon{font-size:16px;color:var(--primary-color);flex-shrink:0}.backup-category-list{display:flex;flex-direction:column;gap:6px}.backup-category-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--surface-color);cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.backup-category-item:hover{border-color:var(--primary-color);background:var(--item-hover-bg)}.backup-category-item.sub-item{margin-left:36px;padding:10px 14px;border-style:dashed}.backup-category-item.sub-item.disabled{opacity:.4;pointer-events:none}.backup-category-check{position:relative;width:22px;height:22px;flex-shrink:0}.backup-category-check input[type=checkbox]{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer;z-index:2;margin:0}.backup-checkmark{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-sm);border:2px solid var(--border-color);background:var(--surface-color);display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.32,.72,0,1)}.backup-checkmark iconify-icon{font-size:14px;color:#fff;opacity:0;transform:scale(.5);transition:all .2s cubic-bezier(.32,.72,0,1)}.backup-category-check input:checked~.backup-checkmark{background:var(--primary-color);border-color:var(--primary-color)}.backup-category-check input:checked~.backup-checkmark iconify-icon{opacity:1;transform:scale(1)}.backup-category-icon{width:32px;height:32px;border-radius:var(--radius-sm);background:rgba(var(--primary-color-rgb),.08);display:flex;align-items:center;justify-content:center;flex-shrink:0}.backup-category-icon iconify-icon{font-size:18px;color:var(--primary-color)}.backup-category-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.backup-category-name{font-weight:600;font-size:.95rem;color:var(--text-primary)}.backup-category-desc{font-size:.8rem;color:var(--text-secondary);line-height:1.3}.backup-category-count{font-size:.8rem;font-weight:500;color:var(--text-secondary);white-space:nowrap;padding:2px 8px;background:var(--bg-secondary);border-radius:var(--radius-pill)}.backup-import-mode-row{display:flex;align-items:center;gap:10px;margin-top:16px;padding:10px 14px;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.backup-mode-label{font-size:.9rem;font-weight:500;color:var(--text-primary);-webkit-user-select:none;user-select:none;cursor:pointer}.backup-import-warning{display:flex;align-items:center;gap:10px;margin-top:10px;padding:10px 14px;background:rgba(var(--primary-color-rgb),.06);border-radius:var(--radius-md);font-size:.85rem;color:var(--text-secondary);line-height:1.4;transition:background .25s ease,color .25s ease}.backup-import-warning.warning{background:rgba(var(--warning-color-rgb, 255, 152, 0),.08)}.backup-import-warning iconify-icon{font-size:18px;flex-shrink:0}#importPreviewModal .modal-content{max-width:1000px}#importPreviewModal .modal-body{padding-top:24px}#importPreviewModal .import-strategy-container{margin-bottom:20px}#importPreviewModal .generic-info-box{margin-top:0;margin-bottom:12px}.import-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.import-preview-grid.replace-mode{grid-template-columns:1fr 1fr}.import-preview-column{background:var(--surface-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden;border-top:3px solid var(--border-color)}.import-preview-column.is-empty{opacity:.7;background:var(--bg-secondary)}.import-preview-column .column-header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-color);background-color:var(--bg-secondary)}.import-preview-column .column-header h4{margin:0;font-size:1rem;font-weight:600;display:flex;align-items:center;gap:8px}.import-preview-column.import-preview-new{border-top-color:var(--success-color)}.import-preview-column.import-preview-new .column-header{background-color:var(--success-light)}.import-preview-column.import-preview-updated{border-top-color:var(--primary-color)}.import-preview-column.import-preview-updated .column-header{background-color:rgba(var(--primary-color-rgb),.1)}.import-preview-column.import-preview-departed{border-top-color:var(--warning-color)}.import-preview-column.import-preview-departed .column-header{background-color:var(--warning-light)}.import-preview-list{list-style:none;padding:16px;margin:0;display:flex;flex-direction:column;gap:8px;flex-grow:1;overflow-y:auto;max-height:300px}.import-preview-list li{padding:8px 12px;background:var(--bg-secondary);border-radius:var(--radius-sm);font-size:14px}.import-preview-list li.empty-list-placeholder{text-align:center;color:var(--text-secondary);font-style:italic;background:transparent}.mapping-preview-table{width:100%;border-collapse:collapse;font-size:13px}.mapping-preview-table th,.mapping-preview-table td{padding:10px;text-align:left;border:1px solid var(--border-color)}.mapping-preview-table th{background:var(--bg-secondary);font-weight:600}.mapping-select{width:100%;padding:6px 10px;font-size:13px;background-color:var(--bg-color)}.mass-import-preview{background:rgba(var(--primary-color-rgb),.1);border:1px solid var(--primary-color);border-radius:var(--radius-md);padding:12px 16px;margin-top:12px;font-size:14px;color:var(--text-primary)}.mass-import-preview .strong{font-weight:600;color:var(--primary-color)}.api-key-warning{background:var(--warning-light);border:1px solid var(--warning-color);color:var(--text-primary);padding:14px 18px;border-radius:var(--radius-md);margin-bottom:16px;display:flex;align-items:flex-start;gap:12px;font-size:14px}.api-key-input-group{position:relative}.api-key-actions{display:flex;gap:8px;align-items:center}.api-key-input-container{position:relative;flex-grow:1}.api-key-validation-icon{position:absolute;right:12px;top:50%;transform:translatey(-50%);font-size:16px;opacity:0;transition:opacity var(--transition-fast)}.api-key-validation-icon.visible{opacity:1}.api-key-validation-icon.success{color:var(--success-color)}.api-key-validation-icon.error{color:var(--error-color)}#welcomeModal .modal-header{background:transparent;border-bottom:none;position:absolute;top:0;left:0;right:0;z-index:10}#welcomeModal .close-button{margin-left:auto}.welcome-step{display:none;text-align:center;padding:20px;opacity:0;transform:translate(0) scale(1)}.welcome-step.active{display:block;opacity:1;transform:translate(0) scale(1)}.welcome-step.slide-in-right{animation:welcome-slide-in-right .45s cubic-bezier(.32,.72,0,1) forwards}.welcome-step.slide-in-left{animation:welcome-slide-in-left .45s cubic-bezier(.32,.72,0,1) forwards}.welcome-step.slide-out-left,.welcome-step.slide-out-right{display:block;position:absolute;left:0;right:0;z-index:1;pointer-events:none}.welcome-step.slide-out-left{animation:welcome-slide-out-left .4s cubic-bezier(.32,.72,0,1) forwards}.welcome-step.slide-out-right{animation:welcome-slide-out-right .4s cubic-bezier(.32,.72,0,1) forwards}@keyframes welcome-slide-in-right{0%{opacity:0;transform:translate(80px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes welcome-slide-in-left{0%{opacity:0;transform:translate(-80px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes welcome-slide-out-left{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(-80px) scale(.95)}}@keyframes welcome-slide-out-right{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(80px) scale(.95)}}.welcome-nav-container{display:flex;justify-content:space-between;align-items:center;padding:var(--modal-footer-padding);min-height:var(--modal-footer-height);border-top:var(--modal-footer-border);background:var(--modal-bg);flex-shrink:0}#welcomeNextBtn,#welcomePrevBtn,#welcome-finish-options .btn{border-radius:var(--radius-pill);height:var(--modal-btn-height);padding:0 20px;font-size:13px}#welcomeNextBtn:after{content:" →";display:inline-block;margin-left:6px;transition:transform .2s ease}#welcomeNextBtn:hover:after{transform:translate(4px)}#welcome-dots{display:flex;gap:8px}#welcome-dots .dot{width:8px;height:8px;border-radius:var(--radius-pill);background:var(--border-color);transition:all .4s cubic-bezier(.32,.72,0,1)}#welcome-dots .dot.active{background:var(--primary-color);width:24px;border-radius:var(--radius-xs)}#welcome-finish-options{display:none;gap:12px}.welcome-api-key-group{display:flex;align-items:stretch;gap:0;margin:20px auto;max-width:480px;border-radius:var(--radius-lg);overflow:hidden;border:none;transition:all var(--transition-fast);background:transparent;box-shadow:none;position:relative}#welcomeModal .welcome-api-key-group input,.welcome-api-key-group input:focus,.welcome-api-key-group input:active{border:none!important;border-radius:var(--radius-lg) 0 0 var(--radius-lg)!important;outline:none!important;box-shadow:none!important;background:var(--surface-color)!important;padding:10px 18px;flex:1;font-size:.95em;height:auto;color:var(--text-primary)}.welcome-api-key-group input::placeholder{color:var(--text-secondary);opacity:.7}.welcome-api-key-group .btn-validate-key{border-radius:0 var(--radius-lg) var(--radius-lg) 0!important;margin:0;padding:0 16px;border:none;font-weight:600;font-size:13px;cursor:pointer;display:flex;align-items:center;gap:5px;white-space:nowrap;min-width:100px;justify-content:center;height:auto;align-self:stretch;background:var(--bg-secondary);color:var(--text-secondary);transition:background .25s ease,color .25s ease;transform:none!important;box-shadow:none!important}.welcome-api-key-group .btn-validate-key:hover:not(:disabled):not(.validated):not(.ready){background:rgba(var(--primary-color-rgb),.12);color:var(--primary-color)}.welcome-api-key-group .btn-validate-key.ready{background:var(--primary-color);color:#fff}.welcome-api-key-group .btn-validate-key.ready:hover:not(:disabled){background:var(--primary-hover)}.welcome-api-key-group .btn-validate-key.validated{background:var(--success-color);color:#fff;cursor:default}.welcome-divider{display:flex;align-items:center;text-align:center;color:var(--text-secondary);font-size:.8em;margin:20px 0;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.welcome-divider:before,.welcome-divider:after{content:"";flex:1;border-bottom:1px solid var(--border-color)}.welcome-divider:before{margin-right:1em}.welcome-divider:after{margin-left:1em}.btn-demo-outline{background:transparent;border:1px solid var(--border-color);color:var(--text-color);box-shadow:none;transition:all var(--transition-fast)}.btn-demo-outline:hover{background:var(--surface-color);border-color:var(--text-secondary);color:var(--text-primary);transform:translateY(-1px)}.get-key-link{display:inline-flex;align-items:center;gap:6px;color:var(--primary-color);font-weight:500;font-size:.95em;text-decoration:none;margin-bottom:24px;padding:8px 16px;background:rgba(var(--primary-color-rgb),.08);border-radius:var(--radius-pill);margin-top:8px;transition:all var(--transition-fast)}.get-key-link:hover{background:rgba(var(--primary-color-rgb),.15);text-decoration:none;transform:translateY(-1px)}#welcome-next-step-info{display:none;background:var(--success-light);color:var(--success-color);padding:12px 20px;border-radius:var(--radius-md);margin-top:20px;font-weight:500}#welcomeModal .ui-segmented-control{justify-content:center;width:max-content;margin:0 auto;border:1px solid var(--border-color);box-shadow:inset 0 1px 3px #00000005}#welcomeModal .modal-body{flex:1 1 480px;display:flex;flex-direction:column;justify-content:flex-start;padding-top:18%;position:relative;overflow-x:hidden}#welcomeModal .modal-content{max-width:800px;margin:0 auto;width:95%}.welcome-step{max-width:800px;margin:0 auto;padding:0 10px}.welcome-subtitle{font-size:.95em;color:var(--text-secondary);max-width:600px;margin:0 auto 30px;line-height:1.5}.welcome-step h3{font-size:1.8em;font-weight:800;margin-bottom:24px;background:linear-gradient(135deg,var(--primary-color),var(--purple-color));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.02em}.welcome-title-premium{font-size:2.4em!important;font-weight:700!important;line-height:1.15;margin-bottom:20px!important;letter-spacing:-.03em!important;text-align:center}.welcome-subtitle-premium{font-size:1.1em;color:var(--text-secondary);max-width:600px;margin:0 auto 32px;line-height:1.6;font-weight:400}.welcome-title-icon{-webkit-text-fill-color:initial;display:inline-block;margin-right:4px;font-size:.85em;vertical-align:baseline}.welcome-chips{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:12px}.welcome-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-pill);font-size:.9em;font-weight:500;color:var(--text-secondary);transition:border-color .2s ease,color .2s ease}.welcome-chip:hover{border-color:rgba(var(--primary-color-rgb),.3);color:var(--text-primary)}.welcome-chip__icon{display:flex;align-items:center;font-size:1.05em;color:var(--primary-color)}.welcome-chip__label{white-space:nowrap}.welcome-step.active .welcome-chip{animation:welcome-feature-enter .5s cubic-bezier(.32,.72,0,1) both}.welcome-step.active .welcome-chip:nth-child(1){animation-delay:.05s}.welcome-step.active .welcome-chip:nth-child(2){animation-delay:.15s}.welcome-step.active .welcome-chip:nth-child(3){animation-delay:.25s}@keyframes welcome-feature-enter{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.security-note{font-size:.85em;color:var(--text-secondary);opacity:.8;margin-top:5px;display:flex;align-items:center;gap:6px}.security-note i{color:var(--success-color)}.provider-pills{display:inline-flex;background:var(--bg-secondary);padding:4px;border-radius:var(--radius-pill);border:1px solid var(--border-color);gap:4px;position:relative}.provider-pill{background:transparent;border:none;padding:8px 18px;border-radius:var(--radius-pill);font-size:.9em;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:color .2s ease,font-weight .2s ease;display:flex;align-items:center;gap:6px;position:relative;z-index:1}.provider-pill:hover:not(.active):not(.disabled){color:var(--text-primary);background:rgba(var(--primary-color-rgb),.08)}.provider-pills.has-glider .provider-pill.active{background:transparent;color:var(--text-primary);font-weight:600;box-shadow:none}.provider-pills:not(.has-glider) .provider-pill.active{background:var(--surface-color);color:var(--text-primary);box-shadow:0 1px 3px #0000001a;font-weight:600}.provider-pill.disabled{opacity:.5;cursor:not-allowed}[data-theme=dark] .provider-pills{background:#0006;box-shadow:inset 0 1px 3px #0000004d;border:1px solid var(--border-color)}[data-theme=dark] .provider-pills:not(.has-glider) .provider-pill.active{background:#ffffff1f;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}[data-theme=dark] .provider-pill{color:var(--text-secondary)}[data-theme=dark] .provider-pill:hover:not(.active):not(.disabled){color:var(--text-primary);background:transparent}[data-theme=dark] .provider-pill.active{color:var(--text-primary)!important;text-shadow:0 0 12px rgba(255,255,255,.25)}.provider-tag{font-size:.75em;opacity:.7;margin-left:2px}.get-key-link-subtle{font-size:.9em;color:var(--primary-color);text-decoration:none;opacity:.9;transition:opacity .2s}.get-key-link-subtle:hover{text-decoration:underline;opacity:1}.welcome-step-footer{margin-top:30px;display:flex;flex-direction:column;align-items:center;gap:12px}.btn-text-link{background:none;border:none;color:var(--text-secondary);font-size:.9em;cursor:pointer;padding:8px;transition:color .2s}.btn-text-link:hover{color:var(--text-primary)}.security-note-mini{font-size:.8em;color:var(--text-tertiary);display:flex;align-items:center;gap:6px;opacity:.6}.welcome-split-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:40px;align-items:center;padding:0 52px;text-align:left}.welcome-title-premium+.welcome-split-layout{margin-top:44px}.welcome-split-info{display:flex;flex-direction:column}.welcome-split-desc{font-size:.95em;color:var(--text-secondary);line-height:1.5;margin-bottom:20px}.welcome-split-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.wave-animation{display:inline-block;animation:wave-effect 2.5s infinite;transform-origin:70% 70%}@keyframes wave-effect{0%{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}60%{transform:rotate(0)}to{transform:rotate(0)}}.welcome-info-pill{display:inline-flex;justify-content:center;align-items:center;gap:8px;padding:8px 16px;border-radius:20px;font-size:.85em;font-weight:500;color:var(--text-secondary);background:rgba(var(--text-secondary-rgb, 128, 128, 128),.08);border:1px solid rgba(var(--text-secondary-rgb, 128, 128, 128),.1)}.welcome-info-pill--success{color:var(--success-color);background:#10b98114;border-color:#10b98133}.provider-selector-row{display:flex;justify-content:center;margin-bottom:8px}.welcome-action-links{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:8px;font-size:.9em}.welcome-action-links .action-separator{color:var(--text-tertiary);opacity:.4;font-size:.8em}.welcome-action-links a,.welcome-action-links button{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px 0;transition:color .2s ease;font-size:inherit;font-weight:500;font-family:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:5px}.welcome-action-links a:hover,.welcome-action-links button:hover{color:var(--primary-color)}.welcome-action-links a i,.welcome-action-links button i{font-size:.9em;opacity:.8}.btn-text-link-compact{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px 0;transition:color .2s ease;font-size:inherit;font-weight:500}.btn-text-link-compact:hover{color:var(--primary-color)}.get-key-link-mini{font-size:.85em;color:var(--primary-color);text-decoration:none;font-weight:500;display:inline-flex;align-items:center;gap:4px;transition:opacity .2s}.get-key-link-mini:hover{opacity:.8}.welcome-split-action .welcome-api-key-group{margin:0;max-width:100%;box-shadow:var(--shadow-sm)}@media (max-width: 700px){.welcome-split-layout{grid-template-columns:1fr;text-align:center;gap:20px}.welcome-split-info{align-items:center}}.welcome-period-selector{display:flex;justify-content:center;margin-top:40px;margin-bottom:30px}.welcome-split-action .welcome-period-selector{margin:0}.welcome-hint{margin-top:24px;font-size:.9em;color:var(--text-secondary);opacity:.8}#welcome-step-4{margin-top:-8%}.welcome-transformation-svg{width:100%;max-width:600px;margin:0 auto;display:flex;justify-content:center;align-items:center;height:150px;padding:5px}.welcome-transformation-svg svg{width:100%;height:100%;filter:drop-shadow(0 10px 20px rgba(0,0,0,.1));overflow:visible}@media (max-width: 600px){.welcome-transformation-svg{height:200px;margin-bottom:20px}}#welcome-step-4 h3{font-size:2rem;margin-bottom:8px}.btn-cta-full{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:400px;margin:16px auto 0;padding:16px 28px;font-size:1.05em;border-radius:var(--radius-pill)}.import-wizard-stepper{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px 0;margin-bottom:16px}.wizard-step{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--radius-pill);background:var(--bg-secondary);border:1px solid transparent;color:var(--text-secondary);font-size:.85rem;font-weight:500;transition:all .4s cubic-bezier(.32,.72,0,1);cursor:default;opacity:.6}.wizard-step.active{background:rgba(var(--primary-color-rgb),.1);border-color:rgba(var(--primary-color-rgb),.3);color:var(--primary-color);opacity:1;box-shadow:0 2px 8px rgba(var(--primary-color-rgb),.15)}.wizard-step.completed{background:var(--success-light);border-color:var(--success-color);color:var(--success-color);opacity:1}.wizard-step-number{width:22px;height:22px;border-radius:50%;background:currentColor;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600}.wizard-step.completed .wizard-step-number{background:var(--success-color)}.wizard-step.completed .wizard-step-number:before{content:"✓";font-size:.7rem}.wizard-step-connector{width:24px;height:2px;background:var(--border-color);border-radius:1px;transition:background .3s ease}.wizard-step-connector.active{background:var(--primary-color)}.drop-zone-premium{position:relative;border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:32px 24px;text-align:center;background:var(--bg-secondary);cursor:pointer;transition:all .4s cubic-bezier(.32,.72,0,1);overflow:hidden}.drop-zone-premium:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:inherit;background:conic-gradient(from var(--gradient-angle, 0deg),transparent 0%,transparent 40%,rgba(var(--primary-color-rgb),.5) 50%,transparent 60%,transparent 100%);opacity:0;transition:opacity .3s ease;z-index:-1}.drop-zone-premium.dragging{border-color:transparent;background:rgba(var(--primary-color-rgb),.05);transform:scale(1.02);box-shadow:0 8px 32px rgba(var(--primary-color-rgb),.15)}.drop-zone-premium.dragging:before{opacity:1;animation:rotate-gradient 2s linear infinite}.drop-zone-premium .drop-zone-icon{font-size:2.5rem;color:var(--text-tertiary);margin-bottom:12px;transition:all .3s ease}.drop-zone-premium.dragging .drop-zone-icon{color:var(--primary-color);transform:scale(1.1) translateY(-4px)}.drop-zone-premium .drop-zone-text{color:var(--text-secondary);font-size:.9rem;line-height:1.5}.drop-zone-premium .drop-zone-text strong{color:var(--primary-color);font-weight:600}.import-data-preview{background:var(--card-glass-bg, rgba(255, 255, 255, .03));border:1px solid var(--card-glass-border, var(--border-color));border-radius:var(--radius-lg);padding:16px;margin-top:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.import-data-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.import-data-count{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--primary-color)}.import-data-count .count-number{font-size:1.5rem;font-weight:700;background:var(--gradient-ai);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.import-data-separator{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-secondary);padding:4px 10px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.mapping-pills-container{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.mapping-pill{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:500;border-radius:var(--radius-pill);background:var(--bg-secondary);border:1px solid var(--border-color);transition:all var(--transition-fast)}.mapping-pill.type-name{background:rgba(var(--primary-color-rgb),.1);border-color:rgba(var(--primary-color-rgb),.3);color:var(--primary-color)}.mapping-pill.type-grade{background:#3b82f61a;border-color:#3b82f64d;color:#3b82f6}.mapping-pill.type-context{background:#a855f71a;border-color:#a855f74d;color:#a855f7}.mapping-pill.type-eval-count{background:#f59e0b1a;border-color:#f59e0b4d;color:#d97706}.mapping-pill.type-ignored{opacity:.5}.mapping-pill-col{width:18px;height:18px;border-radius:4px;background:currentColor;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600}.btn-import-wizard{width:100%;padding:14px 24px;font-size:1rem;font-weight:600;border-radius:var(--radius-lg);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--gradient-ai);color:#fff;box-shadow:0 4px 12px rgba(var(--primary-color-rgb),.25);transition:all .3s cubic-bezier(.32,.72,0,1);position:relative;overflow:hidden}.btn-import-wizard:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px rgba(var(--primary-color-rgb),.35)}.btn-import-wizard:active:not(:disabled){transform:translateY(0)}.btn-import-wizard:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-import-wizard:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.btn-import-wizard:hover:not(:disabled):before{left:100%}.import-progress-inline{margin-top:16px;padding:16px;background:var(--card-glass-bg);border:1px solid var(--card-glass-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.import-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.import-progress-title{font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px}.import-progress-title i{color:var(--primary-color);animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.import-progress-count{font-size:.9rem;color:var(--text-secondary)}.import-progress-bar{height:8px;background:var(--bg-secondary);border-radius:var(--radius-pill);overflow:hidden}.import-progress-fill{height:100%;background:var(--gradient-ai);border-radius:var(--radius-pill);transition:width .3s ease;position:relative}.import-progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 1.5s infinite}.import-progress-detail{margin-top:8px;font-size:.85rem;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.import-progress-student{font-weight:500;color:var(--text-primary)}.btn-sample-data{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:500;color:var(--primary-color);background:rgba(var(--primary-color-rgb),.08);border:none;border-radius:var(--radius-pill);cursor:pointer;transition:all var(--transition-fast)}.btn-sample-data:hover{background:rgba(var(--primary-color-rgb),.15);transform:translateY(-1px)}.import-separator-modern{display:flex;align-items:center;justify-content:center;gap:16px;padding:16px 0;color:var(--text-tertiary);font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.import-separator-modern:before,.import-separator-modern:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--border-color),transparent)}.mass-import-textarea-premium{width:100%;min-height:120px;padding:14px 16px;font-size:.9rem;font-family:SF Mono,Fira Code,monospace;line-height:1.6;color:var(--text-primary);background:var(--bg-color);border:1px solid var(--border-color);border-radius:var(--radius-md);resize:vertical;transition:all .3s ease}.mass-import-textarea-premium:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.1)}.mass-import-textarea-premium::placeholder{color:var(--text-tertiary);font-family:inherit}.import-wizard-modal .modal-content{width:1000px;max-width:95vw;height:680px;max-height:90vh;display:flex;flex-direction:column;padding:0;overflow:hidden;border-radius:var(--modal-radius);isolation:isolate}.import-wizard-layout{display:flex;flex:1;min-height:0;overflow:hidden}.wizard-guide-panel{width:235px;min-width:235px;background:var(--surface-color);border-right:1px solid rgba(0,0,0,.04);padding:24px 20px;display:flex;flex-direction:column;gap:0;overflow-y:auto}[data-theme=dark] .wizard-guide-panel{border-right-color:#ffffff0f}.guide-header{display:flex;align-items:center;gap:8px;font-size:.78rem;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:20px;padding-bottom:0;border-bottom:none}.guide-header i{color:var(--primary-color);font-size:.85rem;opacity:.7}.guide-content{display:none;flex-direction:column;gap:0;animation:guideContentFadeIn .3s ease-out}.guide-content.active{display:flex}@keyframes guideContentFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.guide-section{padding:14px 0}.guide-section-title{display:flex;align-items:center;gap:8px;font-size:.78rem;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.guide-section-title i,.guide-section-title iconify-icon{color:var(--text-secondary);font-size:.85rem;width:16px;text-align:center;opacity:.8}.guide-period-badge{display:inline-block;padding:6px 12px;background:rgba(var(--primary-color-rgb),.15);color:var(--primary-color);border-radius:var(--radius-pill);font-size:.8rem;font-weight:600;margin-bottom:8px}.guide-text{font-size:.78rem;color:var(--text-secondary);line-height:1.5;margin:0 0 6px}.guide-hint{font-size:.72rem;color:var(--text-tertiary);font-style:italic;margin:0;line-height:1.4}.guide-hint.warning{color:var(--warning-color);font-style:normal;display:flex;align-items:center;gap:6px}.guide-hint.warning i{font-size:.7rem}.guide-divider{height:1px;background:var(--border-color);margin:2px 0;opacity:.4}.guide-format-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.guide-format-chip{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:help;transition:all .2s ease;opacity:1}[data-theme=dark] .guide-format-chip{border-color:#ffffff1a}.guide-format-chip i{font-size:.95rem}.guide-format-chip span{display:none}.guide-format-chip i,.guide-format-chip iconify-icon{color:var(--text-secondary);transition:color .2s ease;opacity:.8}.guide-format-chip:hover[data-format=pdf]{border-color:var(--error-color);background:rgba(var(--error-color-rgb, 239, 68, 68),.04)}.guide-format-chip:hover[data-format=pdf] iconify-icon{color:var(--error-color)}.guide-format-chip:hover[data-format=excel]{border-color:var(--success-color);background:rgba(var(--success-color-rgb, 16, 185, 129),.04)}.guide-format-chip:hover[data-format=excel] iconify-icon{color:var(--success-color)}.guide-format-chip:hover[data-format=csv]{border-color:var(--info-color, #3b82f6);background:#3b82f60a}.guide-format-chip:hover[data-format=csv] iconify-icon{color:var(--info-color, #3b82f6)}.guide-format-chip:hover[data-format=clipboard]{border-color:var(--text-primary);background:#0000000a}.guide-format-chip:hover[data-format=clipboard] iconify-icon{color:var(--text-primary)}.guide-format-chip:hover{opacity:1;transform:translateY(-1px)}.guide-sample-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:auto;align-self:flex-start;padding:7px 14px;min-height:30px;margin-top:10px;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-pill);color:var(--primary-color);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s ease}.guide-sample-btn:hover{background:rgba(var(--primary-color-rgb),.06);border-color:rgba(var(--primary-color-rgb),.4);color:var(--primary-color)}.guide-sample-btn i{font-size:.8rem}.import-input-container{position:relative}.textarea-clear-btn{position:absolute;top:8px;right:8px;padding:4px 8px;background:rgba(var(--danger-color-rgb, 239, 68, 68),.1);border:none;border-radius:var(--radius-sm);color:var(--danger-color, #ef4444);font-size:.75rem;cursor:pointer;opacity:.7;transition:all var(--transition-fast)}.textarea-clear-btn:hover{opacity:1;background:rgba(var(--danger-color-rgb, 239, 68, 68),.2)}.wizard-main-content{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}[data-theme=dark] .wizard-guide-panel{background:var(--bg-secondary)}@media (max-width: 768px){.wizard-guide-panel{display:none}.import-wizard-layout{flex-direction:column}}.import-wizard-header-unified{display:flex;align-items:center;justify-content:space-between;padding:var(--modal-header-padding);background:var(--modal-bg);border-bottom:var(--modal-header-border);min-height:var(--modal-header-height);overflow:visible;z-index:10;flex-shrink:0}.wizard-header-title{display:flex;align-items:center;gap:10px;flex:1}.wizard-context-pill{display:inline-flex;align-items:center;gap:6px;padding:0;background:transparent;border:none;color:var(--text-primary)}.wizard-context-class{font-size:1.1rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em;max-width:250px;overflow:hidden;text-overflow:ellipsis}.wizard-context-sep{font-size:1rem;color:var(--text-tertiary);font-weight:400;margin:0 2px}.wizard-context-period{font-size:1rem;font-weight:500;color:var(--text-secondary)}@media (max-width: 800px){.wizard-context-class{max-width:150px;font-size:1rem}.wizard-context-period,.wizard-context-sep{display:none}}.wizard-header-actions{flex:1;display:flex;justify-content:flex-end}.import-wizard-body{padding:var(--modal-padding-spacious);flex:1;display:flex;flex-direction:column;overflow:hidden!important;background:var(--bg-color)}.wizard-step-content{display:none}.import-wizard-modal .wizard-step-content.active,.wizard-step-content.active{display:flex!important;flex-direction:column;flex:1;min-height:0;animation:wizard-fade-in .25s ease}@keyframes wizard-fade-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.wizard-step-title{margin:0;font-size:1.1rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:12px}.wizard-step-header-group{display:flex;align-items:center;justify-content:space-between;padding:4px 0 15px;margin-bottom:0;flex-wrap:wrap;gap:16px}.wizard-step-controls{display:flex;align-items:center;gap:20px}.period-indicator-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 12px;background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color);font-size:.75rem;font-weight:700;border-radius:var(--radius-pill);text-transform:uppercase;letter-spacing:.5px}.step-one-layout{display:flex;flex-direction:column;gap:0;flex:1;padding-top:0}.import-drop-zone{flex:1;min-height:140px;display:flex;align-items:center;justify-content:center;background:rgba(var(--primary-color-rgb),.015);border:1px dashed rgba(var(--primary-color-rgb),.25);border-radius:var(--radius-lg);cursor:pointer;transition:all .25s ease;position:relative;overflow:hidden;margin:4px}.import-drop-zone:hover{border-color:rgba(var(--primary-color-rgb),.5);background:rgba(var(--primary-color-rgb),.04)}.import-drop-zone.dragging{border-color:var(--primary-color);background:rgba(var(--primary-color-rgb),.05)}.import-drop-zone.has-file{border-style:solid;border-width:1px;border-color:rgba(var(--primary-color-rgb),.2);background:rgba(var(--primary-color-rgb),.02)}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;z-index:1;transition:opacity .3s ease;width:100%}@keyframes premiumCardEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes premiumCardExit{0%{opacity:1}to{opacity:0}}.file-preview-card{display:flex;align-items:center;gap:16px;padding:12px 20px;background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;max-width:450px;margin:0 auto;transition:all .2s ease;animation:premiumCardEnter .3s ease forwards}.drop-zone-filled.is-exiting .file-preview-card{animation:premiumCardExit .2s ease forwards}.file-preview-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);font-size:1.5rem;background:var(--bg-secondary);color:var(--text-secondary);flex-shrink:0}.file-preview-icon.type-pdf{background:rgba(var(--error-color-rgb, 239, 68, 68),.1);color:var(--error-color, #ef4444)}.file-preview-icon.type-excel{background:rgba(var(--success-color-rgb, 16, 185, 129),.1);color:var(--success-color, #10b981)}.file-preview-info{flex:1;display:flex;flex-direction:column;gap:2px;overflow:hidden}.file-preview-name{font-size:.95rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;text-align:left}.file-remove-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:50%;color:var(--text-tertiary);cursor:pointer;transition:all .2s ease;z-index:2}.file-remove-btn:hover{background:rgba(var(--danger-color-rgb, 239, 68, 68),.1);color:var(--danger-color, #ef4444);border-color:rgba(var(--danger-color-rgb, 239, 68, 68),.2)}.import-drop-zone.loading .drop-zone-content{opacity:.15;pointer-events:none}.drop-zone-status{position:absolute;top:0;right:0;bottom:0;left:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:12px;z-index:10;background:rgba(var(--bg-color-rgb, 255, 255, 255),.6);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:var(--radius-lg)}.import-drop-zone.loading .drop-zone-status{display:flex;animation:fade-in .3s ease}.status-spinner{width:36px;height:36px;border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}.status-text{font-size:.9rem;color:var(--text-secondary);font-weight:500}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.wizard-footer-center{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:16px}.import-wizard-footer{position:relative}#wizardFormatBadgeSlot:empty{display:none}.wizard-footer-center .format-detection-badge{padding:4px 10px;font-size:.75rem;font-weight:500;margin:0;background:rgba(var(--primary-color-rgb),.08);border:1px solid rgba(var(--primary-color-rgb),.15);color:var(--primary-color)}.drop-zone-icon{width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:rgba(var(--primary-color-rgb),.08);border-radius:var(--radius-lg);color:var(--primary-color);font-size:1.3rem;transition:background .2s ease}.import-drop-zone:hover .drop-zone-icon{background:rgba(var(--primary-color-rgb),.14)}.drop-zone-text{display:flex;flex-direction:column;gap:2px}.drop-zone-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.drop-zone-hint{font-size:.85rem;color:var(--text-tertiary)}.drop-zone-hint u{color:var(--primary-color);text-decoration:none;border-bottom:1px dashed var(--primary-color)}.import-divider-horizontal{display:flex;align-items:center;justify-content:center;width:100%;margin:4px 0;position:relative}.import-divider-horizontal:before,.import-divider-horizontal:after{content:"";flex:1;height:1px;background:var(--border-color);opacity:.3}.import-divider-horizontal span{display:block;padding:0 14px;color:var(--text-tertiary);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em;background:transparent;opacity:.6}.import-input-container{flex:1;display:flex;flex-direction:column;position:relative;border:var(--input-border-width) solid var(--border-color);box-shadow:none;border-radius:var(--radius-lg);background:var(--surface-color);transform:translateZ(0);transition:border-color .15s ease;margin:4px;z-index:10}.step-actions-row{position:absolute;bottom:12px;right:12px;display:flex;gap:8px;z-index:20}.btn-text-action{background:#ffffffb3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(0,0,0,.06);color:var(--text-secondary);font-size:.78rem;font-weight:600;padding:5px 12px;border-radius:var(--radius-pill);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px}[data-theme=dark] .btn-text-action{background:#1e1e1e80;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-color:#ffffff1a;color:var(--text-primary)}.btn-text-action:hover{background:rgba(var(--primary-color-rgb),.08);color:var(--primary-color);border-color:rgba(var(--primary-color-rgb),.3)}[data-theme=dark] .btn-text-action:hover{background:rgba(var(--primary-color-rgb),.15);color:var(--primary-color);border-color:rgba(var(--primary-color-rgb),.3)}.btn-text-action i{font-size:.75rem;opacity:.8}.import-input-container:hover:not(:has(.import-textarea:focus)){border-color:rgba(var(--primary-color-rgb),.5);background-image:none!important;outline:none!important;box-shadow:none}.import-input-container:has(.import-textarea:focus){border:var(--input-border-width-focus) solid transparent;background-image:linear-gradient(var(--surface-color),var(--surface-color)),conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.5) 0%,rgba(var(--primary-color-rgb),.5) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.5) 32%,rgba(var(--primary-color-rgb),.5) 50%,rgba(var(--primary-color-rgb),.5) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.5) 82%,rgba(var(--primary-color-rgb),.5) 100%);background-origin:padding-box,border-box;background-clip:padding-box,border-box;animation:rotate-gradient 10s linear infinite;box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.08),0 2px 8px rgba(var(--primary-color-rgb),.1)}@keyframes textContentArrival{0%{border-color:var(--primary-color);box-shadow:0 0 0 4px rgba(var(--primary-color-rgb),.2),0 0 20px rgba(var(--primary-color-rgb),.1);transform:scale(1.005)}to{border-color:var(--border-color);box-shadow:none;transform:scale(1)}}.import-input-container.animate-arrival{animation:textContentArrival .8s cubic-bezier(.2,.8,.2,1) forwards;will-change:transform,box-shadow,border-color}.import-textarea{width:100%;flex:1;min-height:100px;padding:16px 18px;font-size:.8rem;font-family:SF Mono,JetBrains Mono,Consolas,monospace;color:var(--text-primary);background:transparent;border:none!important;outline:none!important;box-shadow:none!important;border-radius:var(--radius-lg);resize:none;line-height:1.6;letter-spacing:.01em}.import-textarea:hover:not(:disabled):not(:focus),.import-textarea:hover,.import-textarea:focus{border:none!important;outline:none!important;box-shadow:none!important;background-image:none!important;background-color:transparent!important;background-origin:initial!important;background-clip:initial!important}.import-textarea::-webkit-scrollbar{width:var(--scrollbar-width);height:var(--scrollbar-width)}.import-textarea::-webkit-scrollbar-track{background:transparent;margin-top:8px;margin-bottom:8px;margin-right:4px}.import-textarea::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:var(--radius-xs);border:2px solid transparent;background-clip:padding-box}.import-textarea::-webkit-scrollbar-thumb:hover{background-color:var(--text-secondary)}.import-textarea::placeholder{color:var(--text-tertiary);opacity:.7;font-style:italic}.import-wizard-modal .import-separator-row{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--text-secondary)}.import-wizard-modal .import-separator-select{padding:6px 10px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-color);color:var(--text-primary);font-size:.85rem;cursor:pointer;min-width:130px;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.import-wizard-modal .import-separator-select:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.1);outline:none}.import-wizard-modal .import-separator-select:hover:not(:focus){border-color:rgba(var(--primary-color-rgb),.4)}.import-separator-row-guide{display:flex;flex-direction:column;width:100%;margin-top:4px}.import-separator-select.full-width{width:100%;min-width:0;padding:8px 12px}#wizardAutoDetectBtn.format-applied{background:rgba(var(--primary-color-rgb),.1);border-color:var(--primary-color);color:var(--primary-color);animation:pulse-subtle 2s ease-in-out infinite}#wizardAutoDetectBtn.format-applied i{animation:sparkle 1.5s ease-in-out infinite}@keyframes pulse-subtle{0%,to{box-shadow:0 0 rgba(var(--primary-color-rgb),.2)}50%{box-shadow:0 0 0 4px rgba(var(--primary-color-rgb),.1)}}@keyframes sparkle{0%,to{opacity:1}50%{opacity:.6}}.format-detection-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;margin:4px 0 0;font-size:.73rem;font-weight:600;border-radius:var(--radius-pill);animation:badge-appear .4s cubic-bezier(.32,.72,0,1)}.format-detection-badge i{font-size:.9rem}.format-detection-badge.format-mbn{background:#8b5cf61a;color:#8b5cf6}.format-detection-badge.format-pronote{background:#3b82f61a;color:#3b82f6}.format-detection-badge.format-vertical{background:#14b8a61a;color:#14b8a6}.format-detection-badge:not(.format-mbn):not(.format-pronote):not(.format-vertical){background:var(--surface-color);border:1px solid var(--border-color);color:var(--text-primary)}@keyframes badge-appear{0%{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.import-mapping-table td.has-tooltip{cursor:help;position:relative}.import-mapping-table td.has-tooltip:after{content:"...";color:var(--text-tertiary)}.import-wizard-modal .import-mapping-table-container{position:relative;overflow:hidden!important;border-radius:var(--radius-lg);background:var(--bg-secondary);margin:4px;flex:1;display:flex;flex-direction:column;min-height:200px;transform:translateZ(0);isolation:isolate;z-index:0;padding:0;animation:table-fade-in .4s ease-out}@keyframes table-fade-in{0%{opacity:0;transform:translateY(10px) translateZ(0)}to{opacity:1;transform:translateY(0) translateZ(0)}}.import-wizard-modal .import-mapping-table-container>.table-scroll-wrapper{overflow-x:auto;overflow-y:auto;flex:1;max-height:none;border-radius:calc(var(--radius-lg) - 1px);padding-right:4px;padding-bottom:4px}.import-wizard-modal .import-mapping-table-container:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgba(0,0,0,.06);border-radius:var(--radius-lg);z-index:20;pointer-events:none}[data-theme=dark] .import-wizard-modal .import-mapping-table-container:after{border-color:#ffffff1a}.import-wizard-footer{display:none;justify-content:space-between;align-items:center;padding:var(--modal-footer-padding);background:var(--modal-bg);border-top:var(--modal-footer-border);border-radius:0 0 var(--modal-radius) var(--modal-radius);gap:16px;min-height:var(--modal-footer-height);flex-shrink:0}.import-wizard-footer .btn-primary{min-width:120px}.import-wizard-footer .btn-ghost{border:1px solid var(--border-color)}.import-wizard-modal:has(#modalStep1.active) #wizardStep1Footer{display:flex}.import-wizard-modal:has(#modalStep2.active) #wizardStep2Footer{display:flex}.import-wizard-modal:has(#modalStep3.active) #wizardStep3Footer{display:flex}.import-wizard-modal .import-mapping-table-container.horizontal-scroll{padding-bottom:0}.import-wizard-modal .table-scroll-wrapper::-webkit-scrollbar{height:var(--scrollbar-width);width:var(--scrollbar-width)}.import-wizard-modal .table-scroll-wrapper::-webkit-scrollbar-track{background:transparent}.import-wizard-modal .table-scroll-wrapper::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:var(--radius-xs)}.import-wizard-modal .table-scroll-wrapper::-webkit-scrollbar-corner{background:transparent}.import-wizard-modal .table-scroll-wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--text-secondary)}.import-wizard-modal .table-scroll-wrapper::-webkit-scrollbar-button{display:none}.import-wizard-modal .import-mapping-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.85rem;table-layout:auto;background:var(--bg-secondary)}.import-wizard-modal .import-mapping-table th,.import-wizard-modal .import-mapping-table td{padding:10px;text-align:left;border-bottom:1px solid var(--border-color);border-right:none;vertical-align:middle}.import-wizard-modal .import-mapping-table th.col-name,.import-wizard-modal .import-mapping-table td.col-name{min-width:130px;max-width:180px;font-weight:600}.import-wizard-modal .import-mapping-table th.col-status,.import-wizard-modal .import-mapping-table td.col-status{min-width:80px;max-width:110px;text-align:center}.import-wizard-modal .import-mapping-table th.col-grade,.import-wizard-modal .import-mapping-table td.col-grade{min-width:100px;max-width:120px;text-align:center;color:var(--primary-color);font-weight:600;font-variant-numeric:tabular-nums}.import-wizard-modal .import-mapping-table th.col-count,.import-wizard-modal .import-mapping-table td.col-count{min-width:80px;max-width:100px;text-align:center;color:var(--text-secondary);font-variant-numeric:tabular-nums}.import-wizard-modal .import-mapping-table th.col-appreciation,.import-wizard-modal .import-mapping-table td.col-appreciation{min-width:120px;max-width:220px;color:#b89bd4;font-style:italic}.import-wizard-modal .import-mapping-table th.col-context,.import-wizard-modal .import-mapping-table td.col-context{min-width:120px;max-width:220px;color:#70c2c2;font-style:italic}.import-wizard-modal .import-mapping-table th.col-ignore,.import-wizard-modal .import-mapping-table td.col-ignore{max-width:100px;color:var(--text-tertiary);opacity:.6}.import-wizard-modal .import-mapping-table td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-wizard-modal .import-mapping-table .mapping-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:20px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;background-size:10px;cursor:pointer}.import-wizard-modal .modal-header{border-bottom:1px solid var(--border-color);padding:16px 24px;display:flex;justify-content:space-between;align-items:center;position:relative}.import-wizard-modal .import-separator-row label{margin:0;line-height:1}.import-wizard-modal .import-mapping-table th{background:var(--surface-color);color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700;vertical-align:middle;padding:8px 10px;position:sticky;top:0;z-index:10;border-bottom:1px solid var(--border-color);box-shadow:none}.import-wizard-modal .import-mapping-table th:first-child{border-top-left-radius:0}.import-wizard-modal .import-mapping-table th:last-child{border-top-right-radius:0;border-right:none}.import-wizard-modal .import-mapping-table tr:nth-child(2n) td{background:rgba(var(--surface-color-rgb),.3)}.import-wizard-modal .import-mapping-table tr:hover td{background:rgba(var(--primary-color-rgb),.05);cursor:default}.import-wizard-modal .mapping-header-col{margin-bottom:10px;font-size:.65rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:1px;font-weight:700}.custom-select-wrapper{position:relative;width:100%;font-family:inherit}.import-wizard-modal .custom-select-trigger,.import-wizard-modal .custom-dropdown .custom-dropdown-trigger{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 16px;height:40px;font-size:.85rem;font-weight:500;color:var(--text-primary);background:#ffffff08;border:1px solid var(--border-color);border-radius:var(--radius-pill);cursor:pointer;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease;animation:none;background-image:none;transform:none;-webkit-user-select:none;user-select:none;white-space:nowrap;box-shadow:0 1px 2px #00000005}[data-theme=dark] .import-wizard-modal .custom-select-trigger,[data-theme=dark] .import-wizard-modal .custom-dropdown .custom-dropdown-trigger{background:#ffffff0d}.import-wizard-modal .custom-select-trigger span,.import-wizard-modal .custom-dropdown-trigger span{overflow:hidden;text-overflow:ellipsis;margin-right:6px;flex:1;opacity:.9}.import-wizard-modal .custom-select-trigger:hover,.import-wizard-modal .custom-dropdown .custom-dropdown-trigger:hover{background:#ffffff14;border-color:var(--text-secondary);box-shadow:0 2px 4px #0000000d;transform:none;background-image:none}.import-wizard-modal .custom-select-trigger.active,.import-wizard-modal .custom-select-wrapper.open .custom-select-trigger,.import-wizard-modal .custom-dropdown.open .custom-dropdown-trigger{border-color:var(--text-primary);background:#ffffff1a;box-shadow:0 0 0 1px #ffffff1a;animation:none;background-image:none}.import-wizard-modal .custom-select-trigger i,.import-wizard-modal .custom-dropdown .custom-dropdown-arrow{font-size:.75rem;color:var(--text-tertiary);transition:color .2s ease;flex-shrink:0;opacity:.7;transform:none}.import-wizard-modal .custom-select-trigger:hover i,.import-wizard-modal .custom-dropdown .custom-dropdown-trigger:hover .custom-dropdown-arrow{color:var(--text-primary);opacity:1}.import-wizard-modal .custom-select-wrapper.open .custom-select-trigger i,.import-wizard-modal .custom-dropdown.open .custom-dropdown-arrow{transform:none;color:var(--primary-color);opacity:1}.custom-select-options{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:0 10px 40px #0003;z-index:9999;max-height:300px;overflow-y:auto;padding:6px}@keyframes slideDownFade{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.custom-option{padding:8px 12px;font-size:.85rem;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all .1s ease}.custom-option:hover{background:rgba(var(--primary-color-rgb),.08);color:var(--primary-color)}.custom-option.selected{background:rgba(var(--primary-color-rgb),.15);color:var(--primary-color);font-weight:600}.custom-select-options::-webkit-scrollbar{width:4px}.custom-select-options::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.import-wizard-modal .import-mapping-table select{width:100%;height:34px;padding:0 26px 0 8px;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--surface-color);color:var(--text-primary);font-size:.8rem;cursor:pointer;font-family:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}[data-theme=dark] .import-wizard-modal .import-mapping-table select{background-color:#ffffff0d}.import-wizard-modal .import-mapping-table select:hover:not(:focus){border-color:rgba(var(--primary-color-rgb),.4)}.import-wizard-modal .import-mapping-table select:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.1);outline:none}.import-wizard-modal .import-mapping-table select option{background-color:var(--surface-color);color:var(--text-primary);padding:12px}#modalStep3{display:flex;flex-direction:column;padding:0;overflow:hidden;flex:1;min-height:0;height:100%}.import-wizard-modal .import-preview-grid{display:flex;gap:12px;margin-bottom:0;justify-content:center;align-items:stretch;flex:1 1 0;min-height:200px;padding:8px 0;overflow:hidden}.import-wizard-modal .import-preview-col{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:0;overflow:hidden;display:flex;flex-direction:column;flex:1 1 0;max-width:320px;min-width:200px;transition:border-color .2s ease}.import-wizard-modal .import-preview-col:hover{border-color:rgba(var(--primary-color-rgb),.2)}.import-wizard-modal .import-col-header{padding:12px 16px;display:flex;align-items:center;gap:10px;font-size:.85rem;font-weight:600;border-bottom:1px solid var(--border-color);background:var(--bg-secondary);flex-shrink:0}.import-wizard-modal .import-col-header i{font-size:1rem}.import-wizard-modal .import-col-count{margin-left:auto;padding:3px 8px;background:var(--bg-color);border-radius:var(--radius-pill);font-size:.75rem;font-weight:700;min-width:24px;text-align:center;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.import-wizard-modal .import-col-count.pop{transform:scale(1.2)}.import-wizard-modal .import-col-new .import-col-header{color:var(--success-color)}.import-wizard-modal .import-col-new .import-col-count{color:var(--success-color);background:#22c55e1a}.import-wizard-modal .import-col-updated .import-col-header{color:var(--primary-color)}.import-wizard-modal .import-col-updated .import-col-count{color:var(--primary-color);background:rgba(var(--primary-color-rgb),.1)}.import-wizard-modal .import-col-departed .import-col-header{color:var(--warning-color)}.import-wizard-modal .import-col-departed .import-col-count{color:var(--warning-color);background:#f973161a}.import-wizard-modal .import-col-list{list-style:none;padding:12px;margin:0;overflow-y:auto;flex:1;font-size:.85rem;display:flex;flex-direction:column;gap:6px}.import-wizard-modal .import-col-list li{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-color);border:1px solid transparent;border-radius:var(--radius-md);transition:background .15s ease;flex-shrink:0}.import-wizard-modal .import-col-list li:hover{background:rgba(var(--primary-color-rgb),.05)}.import-wizard-modal .li-avatar{width:26px;height:26px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;color:var(--text-secondary);flex-shrink:0}.import-col-new .li-avatar{background:#22c55e1a;color:var(--success-color)}.import-col-updated .li-avatar{background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color)}.import-col-departed .li-avatar{background:#f973161a;color:var(--warning-color)}.import-wizard-modal .li-name{font-size:.8rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-wizard-modal .empty-state-li{text-align:center;color:var(--text-tertiary);font-style:italic;padding:24px 16px;background:transparent!important;border:1px dashed var(--border-color)!important;justify-content:center;align-items:center;opacity:.6;font-size:.8rem;flex:1;min-height:100px}.import-wizard-modal .import-strategy-row{display:flex;gap:16px;justify-content:center;margin-top:0;padding:0}.import-wizard-modal .import-strategy-option{flex:1;max-width:280px;position:relative;padding:16px;background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:14px;text-align:left}.import-wizard-modal .import-strategy-option:hover{border-color:rgba(var(--primary-color-rgb),.4);background:rgba(var(--primary-color-rgb),.02)}.import-wizard-modal .import-strategy-option:has(input:checked){border-color:var(--primary-color);background:rgba(var(--primary-color-rgb),.05);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.1)}.import-wizard-modal .import-strategy-icon{width:48px;height:48px;border-radius:14px;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:var(--text-secondary);transition:all var(--transition-fast);flex-shrink:0}.import-wizard-modal .import-strategy-option:hover .import-strategy-icon{background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color)}.import-wizard-modal .import-strategy-option:has(input:checked) .import-strategy-icon{background:var(--primary-color);color:#fff}.import-wizard-modal .import-strategy-label{display:flex;flex-direction:column;gap:2px}.import-wizard-modal .import-strategy-label strong{font-size:.95rem;font-weight:600;color:var(--text-primary)}.import-wizard-modal .import-strategy-label small{font-size:.8rem;color:var(--text-secondary);line-height:1.3}.import-wizard-modal .import-strategy-option:after{content:"";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;top:10px;right:10px;width:20px;height:20px;background:var(--primary-color);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem;opacity:0;transform:scale(0);transition:all .2s cubic-bezier(.34,1.56,.64,1)}.import-wizard-modal .import-strategy-option:has(input:checked):after{opacity:1;transform:scale(1)}.import-wizard-footer #wizardBackBtn{margin-right:auto}.wizard-footer-right{display:flex;gap:10px;margin-left:auto}@media (max-width: 600px){.import-wizard-modal .import-preview-grid{grid-template-columns:1fr}.import-wizard-modal .import-strategy-row{flex-direction:column}.wizard-footer-right{flex-direction:column;width:100%}.wizard-footer-right .btn{width:100%}}.mapping-pill.type-status{background:#f59e0b1a;border-color:#f59e0b4d;color:#f59e0b}.mapping-pill.type-app{background:#10b9811a;border-color:#10b9814d;color:#10b981}.format-toggle-container{display:flex;align-items:center;margin-left:auto}.format-toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.format-toggle input{position:absolute;opacity:0;width:0;height:0}.format-toggle-slider{position:relative;width:44px;height:24px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:24px;transition:all .3s ease}.format-toggle-slider:before{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 2px 4px #00000026;transition:all .3s cubic-bezier(.4,0,.2,1)}.format-toggle input:checked+.format-toggle-slider{background:var(--primary-color);border-color:var(--primary-color)}.format-toggle input:checked+.format-toggle-slider:before{transform:translate(20px)}.format-toggle:hover .format-toggle-slider{border-color:var(--primary-color)}.format-toggle-label{font-size:.85rem;font-weight:500;color:var(--text-secondary);transition:color .2s ease;min-width:70px}.format-toggle input:checked~.format-toggle-label{color:var(--text-primary);font-weight:600}.import-drop-zone-compact{transition:all .2s ease;position:relative;overflow:hidden}.import-drop-zone-compact:hover{border-color:var(--primary-color);background:rgba(var(--primary-color-rgb),.03)}.import-drop-zone-compact.dragging{border-color:var(--primary-color);background:rgba(var(--primary-color-rgb),.05)}.mapping-pills-container{display:flex;flex-wrap:wrap;gap:8px;padding:12px 0}.mapping-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-pill);font-size:.8rem;font-weight:600;border:1px solid;transition:all var(--transition-fast);cursor:default}.mapping-pill:hover{opacity:.85}.mapping-pill-col{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#ffffff4d;font-size:.7rem;font-weight:700}.mapping-pill.type-name{background:#3b82f61a;border-color:#3b82f64d;color:#3b82f6}.mapping-pill.type-grade{background:#f973161a;border-color:#f973164d;color:#f97316}.mapping-pill.type-context{background:#8b5cf61a;border-color:#8b5cf64d;color:#8b5cf6}.mapping-pill.type-ignored{background:#6b728014;border-color:#6b728033;color:#6b7280;opacity:.7}.import-col-list li{animation:cascade-in .3s ease forwards;opacity:0;transform:translateY(10px)}.import-col-list li:nth-child(1){animation-delay:.05s}.import-col-list li:nth-child(2){animation-delay:.1s}.import-col-list li:nth-child(3){animation-delay:.15s}.import-col-list li:nth-child(4){animation-delay:.2s}.import-col-list li:nth-child(5){animation-delay:.25s}.import-col-list li:nth-child(6){animation-delay:.3s}.import-col-list li:nth-child(7){animation-delay:.35s}.import-col-list li:nth-child(8){animation-delay:.4s}@keyframes cascade-in{to{opacity:1;transform:translateY(0)}}.custom-select-trigger[data-type=name]{border-left:3px solid rgb(59,130,246)}.custom-select-trigger[data-type=grade]{border-left:3px solid rgb(249,115,22)}.custom-select-trigger[data-type=status]{border-left:3px solid rgb(245,158,11)}.custom-select-trigger[data-type=appreciation]{border-left:3px solid rgb(16,185,129)}.custom-select-trigger[data-type=context]{border-left:3px solid rgb(139,92,246)}.custom-select-trigger[data-type=ignored]{border-left:3px solid rgb(107,114,128);opacity:.7}.import-data-count .count-number{display:inline-block;font-size:1.5rem;font-weight:800;color:var(--primary-color);animation:count-pop .4s cubic-bezier(.175,.885,.32,1.275)}@keyframes count-pop{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.import-mapping-table-container:before{content:"";position:absolute;top:0;right:0;width:40px;height:100%;background:linear-gradient(to left,var(--surface-color),transparent);pointer-events:none;opacity:0;transition:opacity .2s ease;z-index:15}.import-mapping-table-container.has-scroll:before{opacity:1}.import-wizard-footer .wizard-footer-actions{display:flex;gap:10px;align-items:center}.mapping-preview-hint{display:flex;align-items:center;gap:8px;padding:10px 16px;margin-top:12px;background:rgba(var(--primary-color-rgb),.05);border-radius:var(--radius-md);font-size:.85rem;color:var(--text-secondary)}.mapping-preview-hint i{color:var(--primary-color)}.btn-import-confirm{display:inline-flex;align-items:center;gap:10px}.btn-import-confirm i{font-size:1rem}.btn-import-confirm #wizardImportCount{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;background:#ffffff40;border-radius:var(--radius-pill);font-size:.85rem;font-weight:700}.import-preview-table-container{position:relative;overflow:hidden!important;border-radius:var(--radius-lg);background:var(--bg-secondary);margin:4px;flex:1;display:flex;flex-direction:column;min-height:200px;transform:translateZ(0);isolation:isolate;z-index:0;animation:table-fade-in .4s ease-out}.import-preview-table-container>.table-scroll-wrapper{overflow-x:auto;overflow-y:auto;flex:1;max-height:none;border-radius:calc(var(--radius-lg) - 1px);padding-right:4px;padding-bottom:4px}.import-preview-table-container:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgba(0,0,0,.06);border-radius:var(--radius-lg);z-index:20;pointer-events:none}[data-theme=dark] .import-preview-table-container:after{border-color:#ffffff1a}.import-preview-table-container .import-preview-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.85rem;table-layout:auto;background:var(--bg-secondary)}.import-preview-table thead{position:sticky;top:0;z-index:10}.import-preview-table th{background:var(--surface-color);color:var(--text-secondary);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:8px 10px;height:50px;text-align:left;border-bottom:1px solid var(--border-color);box-shadow:none;white-space:nowrap;-webkit-user-select:none;user-select:none;overflow:visible;position:sticky;top:0;z-index:10;vertical-align:middle}.import-preview-table td{padding:10px;border-bottom:1px solid var(--border-color);color:var(--text-primary);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.import-preview-table tbody tr{transition:background .15s ease}.import-preview-table tbody tr:nth-child(2n) td{background:rgba(var(--surface-color-rgb),.3)}.import-preview-table tbody tr:hover td{background:rgba(var(--primary-color-rgb),.05)}.import-preview-table tbody tr:last-child td{border-bottom:none}.import-preview-table .col-grade{text-align:center;color:var(--primary-color);font-weight:600;font-variant-numeric:tabular-nums}.import-preview-table .col-count{text-align:center;color:var(--text-secondary);font-variant-numeric:tabular-nums}.import-preview-table .col-status{text-align:center}.import-preview-table .col-appreciation{color:#b89bd4;font-style:italic}.import-preview-table .col-context{color:#70c2c2;font-style:italic}.import-preview-table .col-ignore{color:var(--text-tertiary);opacity:.6}.preview-col-header{display:flex;align-items:center;gap:8px;cursor:pointer;margin:0;line-height:1}.preview-col-header input[type=checkbox]{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.preview-col-header span{display:inline-flex;align-items:center}.preview-col-header span:before{content:"";display:block;width:14px;height:14px;border:2px solid var(--text-tertiary);border-radius:4px;background:transparent;margin-right:8px;flex-shrink:0;transition:border-color .15s ease,background .15s ease}.preview-col-header:hover span:before{border-color:var(--primary-color)}.preview-col-header input[type=checkbox]:checked+span:before{background:var(--primary-color);border-color:var(--primary-color);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 6l2 2 4-4' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:10px}.preview-col-header.locked{cursor:default;opacity:.7}.preview-col-header.locked span:before{cursor:not-allowed}.import-preview-table th.col-disabled{opacity:.4}.import-preview-table td.col-disabled{opacity:.25}.preview-student-cell{display:flex;align-items:center;gap:8px}.preview-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.preview-status-dot.dot-new{background:var(--success-color);box-shadow:0 0 0 2px #22c55e33}.preview-status-dot.dot-updated{background:var(--primary-color);box-shadow:0 0 0 2px rgba(var(--primary-color-rgb),.2)}.preview-status-dot.dot-departed{background:var(--warning-color);box-shadow:0 0 0 2px #f59e0b33}.preview-student-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preview-student-name strong{font-weight:700}.preview-empty-cell{color:var(--text-tertiary);font-style:italic;font-size:.8rem}.import-preview-table tbody tr.row-departed{opacity:.45}.import-preview-table tbody tr.row-departed .preview-student-name{font-style:italic}.status-badge-cell,.preview-status-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-pill);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;background:#6b72801f;color:#6b7280}.status-badge-cell:empty{display:none}.status-badge-cell.status-ppre,.preview-status-badge.status-ppre{background:#10b9811f;color:#10b981}.status-badge-cell.status-pap,.preview-status-badge.status-pap{background:#8b5cf61f;color:#8b5cf6}.status-badge-cell.status-ulis,.preview-status-badge.status-ulis{background:#f59e0b1f;color:#f59e0b}.status-badge-cell.status-nouveau,.preview-status-badge.status-nouveau{background:#3b82f61f;color:#3b82f6}.status-badge-cell.status-depart,.preview-status-badge.status-depart{background:#f973161f;color:#f97316}.status-badge-cell.status-default,.preview-status-badge.status-default{background:#6b72801f;color:#6b7280}.guide-legend-list{display:flex;flex-direction:column;gap:8px;margin-top:4px}.guide-legend-item{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--text-secondary)}.guide-legend-count{margin-left:auto;font-size:.78rem;font-weight:700;color:var(--text-tertiary);min-width:16px;text-align:right;font-variant-numeric:tabular-nums}.guide-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.guide-legend-dot.dot-new{background:var(--success-color)}.guide-legend-dot.dot-updated{background:var(--primary-color)}.guide-legend-dot.dot-departed{background:var(--warning-color)}.guide-legend-count.count-new{color:var(--success-color)}.guide-legend-count.count-updated{color:var(--primary-color)}.guide-legend-count.count-departed{color:var(--warning-color)}.guide-legend-overwrite-hint{font-size:.7rem;font-weight:500;color:var(--text-tertiary);opacity:.75}.guide-hint-warning{font-size:.72rem;color:var(--warning-color);font-style:normal;margin-top:8px;line-height:1.5}.guide-hint-warning iconify-icon{vertical-align:middle;margin-right:3px;font-size:.8rem;position:relative;top:-1px}.guide-departed-action{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:12px;gap:8px}.guide-departed-label{display:inline;font-size:.76rem;font-weight:500;color:var(--warning-color);cursor:pointer;margin:0;line-height:1}.toggle-switch.color-warning input:checked+.slider{background:var(--warning-color)}.import-wizard-modal:has(.import-wizard-footer:not([style*="display: none"])) .import-wizard-body{border-radius:0}.import-wizard-footer .btn-ghost{display:inline-flex;align-items:center;gap:8px}@media (max-width: 768px){.import-wizard-footer{flex-direction:column;gap:12px;align-items:stretch}}.import-wizard-modal .import-separator-select{padding:6px 28px 6px 12px;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:12px}.wizard-step1-footer{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:auto;padding:16px 0}.wizard-step1-footer .btn-primary{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;font-weight:500}.wizard-step1-footer .btn-primary i{font-size:.85rem}.wizard-step1-footer .btn-primary:disabled{background:var(--bg-secondary);color:var(--text-tertiary);cursor:not-allowed;opacity:.6}.wizard-step1-footer .btn-primary:disabled:hover{background:var(--bg-secondary);transform:none;box-shadow:none}.wizard-step2-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color);flex-shrink:0}.wizard-step2-footer .btn-ghost{display:inline-flex;align-items:center;gap:8px}.wizard-step2-footer .btn-primary{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;font-weight:500}.import-wizard-modal .import-input-container{flex:1;display:flex;flex-direction:column}.import-wizard-modal .import-textarea{flex:1;min-height:150px;resize:none}@media (max-width: 600px){.import-wizard-modal .modal-content{width:100%;max-width:100%;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;border-radius:0;margin:0}.import-wizard-header-unified{padding:10px 16px;height:56px}.wizard-header-title{font-size:1rem}.import-wizard-stepper.compact .wizard-step-label{display:none}.import-wizard-stepper.compact .wizard-step{padding:4px 10px}.import-wizard-body{padding:12px 16px;overflow-y:auto!important;-webkit-overflow-scrolling:touch;flex:1;min-height:0}.import-wizard-modal .wizard-step-content.active{overflow:visible;min-height:auto}.step-one-layout{gap:10px}.import-drop-zone{min-height:100px;padding:16px}.drop-zone-icon{width:40px;height:40px;font-size:1rem}.drop-zone-title{font-size:.9rem}.import-input-container{min-height:120px}.import-textarea{min-height:100px;padding:12px 14px 44px;font-size:.8rem}.import-wizard-footer{padding:10px 16px;padding-bottom:max(10px,env(safe-area-inset-bottom));min-height:auto;flex-shrink:0}.wizard-step1-footer{padding:12px 0;flex-wrap:wrap;justify-content:center;gap:10px}.wizard-step1-footer .btn{flex:1;min-width:0;justify-content:center}.wizard-step2-footer{margin-top:12px;padding-top:12px;flex-wrap:wrap;gap:10px}.import-wizard-footer .btn,.wizard-step1-footer .btn,.wizard-step2-footer .btn{min-height:44px;padding:10px 16px}.import-wizard-modal .import-mapping-table-container{margin:4px 0}.import-wizard-modal .import-mapping-table th,.import-wizard-modal .import-mapping-table td{padding:8px 6px;font-size:.75rem}.import-wizard-modal .import-mapping-table select{font-size:.75rem;padding:4px 6px}.import-preview-table-container{min-height:150px;border-radius:var(--radius-md)}.import-preview-table th{padding:8px;font-size:.72rem}.import-preview-table td{padding:6px 8px;font-size:.78rem;max-width:140px}.preview-col-header input[type=checkbox]{width:14px;height:14px}.preview-status-dot{width:6px;height:6px}#wizardStep3Footer{flex-direction:column;gap:8px;padding:12px 16px}#wizardStep3Footer .btn{width:100%;justify-content:center}#wizardStep3FooterInfo{order:2;font-size:.75rem;justify-content:center}#wizardStep3PrevBtn{order:1}#wizardImportOnlyBtn{order:3}}@media (max-width: 375px){.import-wizard-header-unified{padding:8px 12px;height:52px}.wizard-header-title{font-size:.9rem;gap:6px}.import-wizard-body{padding:10px 12px}.import-drop-zone{min-height:80px}.drop-zone-formats{gap:4px}}.mapping-warning{display:flex;align-items:center;gap:8px;padding:10px 14px;margin-bottom:12px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:var(--radius-md);color:var(--warning-color);font-size:.85rem;font-weight:500;animation:fadeIn .3s ease}.mapping-warning i{font-size:1rem;flex-shrink:0}.mapping-select.mapping-duplicate{border-color:var(--warning-color)!important;background:#f59e0b14!important;box-shadow:0 0 0 2px #f59e0b33}.mapping-select.mapping-duplicate:focus{border-color:var(--warning-color)!important;box-shadow:0 0 0 3px #f59e0b40}.mapping-select optgroup{font-weight:600;font-style:normal;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-size:.8em;background:var(--bg-secondary);padding:8px 0 4px}.mapping-select optgroup option{font-weight:400;text-transform:none;letter-spacing:normal;font-size:.92em;color:var(--text-primary);padding:6px 12px;background:var(--bg-color)}[data-theme=dark] .mapping-select optgroup{background:var(--surface-color);border-top:1px solid var(--border-color)}[data-theme=dark] .mapping-select optgroup option{background:var(--bg-color)}.file-preview-icon.type-text{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color)}.file-preview-icon.type-sample{background:rgba(var(--info-color-rgb),.1);color:var(--info-color)}#wizardFileBadgeSlot{display:flex}#wizardFileBadgeSlot .format-detection-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);font-size:.75rem;font-weight:500;background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color)}#wizardFileBadgeSlot .format-detection-badge.format-mbn{background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color);border-color:rgba(var(--primary-color-rgb),.2)}#wizardFileBadgeSlot .format-detection-badge.format-pronote{background:#10b9811a;color:#10b981;border-color:#10b98133}.drop-zone-content.drop-zone-filled{width:100%;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.import-hub-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff6;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);z-index:9999;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s cubic-bezier(.32,.72,0,1),visibility .4s cubic-bezier(.32,.72,0,1),backdrop-filter .4s cubic-bezier(.32,.72,0,1)}[data-theme=dark] .import-hub-backdrop{background:#0009}.import-hub-backdrop.active{opacity:1;visibility:visible;pointer-events:auto}.import-hub-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);width:90vw;max-width:720px;background:#fff;border:1px solid rgba(226,232,240,.8);border-radius:32px;box-shadow:0 25px 50px -12px #00000014,0 0 0 1px #00000005;z-index:10000;opacity:0;visibility:hidden;transition:all .5s cubic-bezier(.32,.72,0,1);overflow:hidden}.import-hub-modal:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 50% 50%,rgba(248,250,252,.6),transparent 60%);pointer-events:none;z-index:-1}[data-theme=dark] .import-hub-modal{background:#18181b;border:1px solid rgba(255,255,255,.08);box-shadow:0 25px 60px -12px #0009,0 0 0 1px #ffffff0d}[data-theme=dark] .import-hub-modal:before{display:none}.import-hub-backdrop.active .import-hub-modal{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}.import-hub-close{position:absolute;top:24px;right:24px;width:36px;height:36px;border:none;background:#f1f5f980;color:var(--text-tertiary);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);z-index:10;border-radius:50%}[data-theme=dark] .import-hub-close{background:#ffffff0d;color:#fff6}.import-hub-close:hover{background:#fee2e2;color:#ef4444;transform:scale(1.05)}[data-theme=dark] .import-hub-close:hover{background:#ef444426;color:#f87171}.import-hub-header{text-align:center;padding:48px 24px 32px}.import-hub-title{font-size:1.75rem;font-weight:700;color:#1e293b;margin:0;letter-spacing:-.02em}[data-theme=dark] .import-hub-title{color:#f3f4f6}.import-hub-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:0 40px 48px}.import-hub-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px 20px;background:#fff;border:1px solid transparent;border-radius:24px;cursor:pointer;overflow:hidden;will-change:transform;transition:all .3s cubic-bezier(.25,1,.5,1),border-color .3s ease;box-shadow:0 1px 2px -1px #0000000d}[data-theme=dark] .import-hub-card{background:#27272a;border:1px solid transparent;box-shadow:0 4px 6px -1px #0000001a}.import-hub-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -6px #00000014,0 8px 12px -4px #00000008}[data-theme=dark] .import-hub-card:hover{background:#2e2e32;box-shadow:0 12px 24px -10px #00000080}.import-hub-card:active{transform:translateY(-2px) scale(.98)}.import-hub-card:focus-visible{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.15)}.import-hub-icon{width:64px;height:64px;border-radius:18px;background:#f8fafc;display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:#64748b;transition:all .3s cubic-bezier(.25,1,.5,1)}[data-theme=dark] .import-hub-icon{background:#ffffff0d;color:#9ca3af}.import-hub-icon:hover{transform:scale(1.05)}.import-hub-card[data-action=individual]{border-color:#dbeafe}[data-theme=dark] .import-hub-card[data-action=individual]{border-color:#2563eb33}.import-hub-card[data-action=individual] .import-hub-icon{background:#eff6ff;color:#2563eb}[data-theme=dark] .import-hub-card[data-action=individual] .import-hub-icon{background:#2563eb26;color:#60a5fa}.import-hub-card[data-action=individual]:hover{border-color:#2563eb}[data-theme=dark] .import-hub-card[data-action=individual]:hover{border-color:#2563eb80}.import-hub-card[data-action=mass]{border-color:#f3e8ff}[data-theme=dark] .import-hub-card[data-action=mass]{border-color:#9333ea33}.import-hub-card[data-action=mass] .import-hub-icon{background:#fdf4ff;color:#9333ea}[data-theme=dark] .import-hub-card[data-action=mass] .import-hub-icon{background:#9333ea26;color:#c084fc}.import-hub-card[data-action=mass]:hover{border-color:#9333ea}[data-theme=dark] .import-hub-card[data-action=mass]:hover{border-color:#9333ea80}.import-hub-card[data-action=photos]{border-color:#d1fae5}[data-theme=dark] .import-hub-card[data-action=photos]{border-color:#05966933}.import-hub-card[data-action=photos] .import-hub-icon{background:#ecfdf5;color:#059669}[data-theme=dark] .import-hub-card[data-action=photos] .import-hub-icon{background:#05966926;color:#34d399}.import-hub-card[data-action=photos]:hover{border-color:#059669}[data-theme=dark] .import-hub-card[data-action=photos]:hover{border-color:#05966980}.import-hub-card-title{font-size:1rem;font-weight:600;color:#1e293b;margin:0;text-align:center;transition:color .3s ease}[data-theme=dark] .import-hub-card-title{color:#e5e7eb}.import-hub-card:hover .import-hub-card-title{color:#0f172a}[data-theme=dark] .import-hub-card:hover .import-hub-card-title{color:#fff}.import-hub-card-desc{font-size:.85rem;color:#64748b;margin:0;text-align:center;line-height:1.4}[data-theme=dark] .import-hub-card-desc{color:#9ca3af}@media (max-width: 600px){.import-hub-choices{grid-template-columns:1fr;padding:0 24px 32px}.import-hub-card{flex-direction:row;padding:20px;gap:20px;text-align:left}.import-hub-card .import-hub-icon{width:52px;height:52px;border-radius:14px;font-size:1.4rem;flex-shrink:0}.import-hub-card-title,.import-hub-card-desc{text-align:left;align-items:flex-start}.import-hub-card-title{margin-bottom:2px}}.import-hub-backdrop.active .import-hub-card{animation:hub-card-fade-up .5s cubic-bezier(.25,1,.5,1) backwards}.import-hub-backdrop.active .import-hub-card:nth-child(1){animation-delay:.05s}.import-hub-backdrop.active .import-hub-card:nth-child(2){animation-delay:.1s}.import-hub-backdrop.active .import-hub-card:nth-child(3){animation-delay:.15s}@keyframes hub-card-fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}#notification-container{position:fixed;top:80px;right:24px;display:flex;flex-direction:column;gap:12px;z-index:var(--z-toast);pointer-events:none;width:340px;max-width:calc(100% - 48px)}.notification{padding:14px 18px;border-radius:var(--radius-lg);font-weight:500;transform:translate(400px);transition:transform .3s cubic-bezier(.32,.72,0,1);display:flex;align-items:center;gap:12px;pointer-events:auto;font-size:14px;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:0 8px 32px #00000014,0 2px 8px #0000000a}.notification.show{transform:translate(0)}.notification i:first-child{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:13px;flex-shrink:0}.notification.success{background:#10b9811f;border:1px solid rgba(16,185,129,.25);color:var(--success-color)}.notification.success i:first-child{background:#10b98133;color:var(--success-color)}[data-theme=dark] .notification.success{background:#10b98126;border-color:#10b9814d;color:var(--success-color)}.notification.error{background:#ef44441a;border:1px solid rgba(239,68,68,.2);color:var(--error-color)}.notification.error i:first-child{background:#ef444426;color:var(--error-color)}[data-theme=dark] .notification.error{background:#ef444426;border-color:#ef44444d;color:var(--error-color)}.notification.warning{background:rgba(var(--warning-rgb),.12);border:1px solid rgba(var(--warning-rgb),.25);color:var(--warning-color)}.notification.warning i:first-child{background:rgba(var(--warning-rgb),.2);color:var(--warning-color)}[data-theme=dark] .notification.warning{background:rgba(var(--warning-rgb),.15);border-color:rgba(var(--warning-rgb),.3);color:var(--warning-color)}.notification.info{background:rgba(var(--primary-color-rgb),.1);border:1px solid rgba(var(--primary-color-rgb),.2);color:var(--primary-color)}.notification.info i:first-child{background:rgba(var(--primary-color-rgb),.15);color:var(--primary-color)}[data-theme=dark] .notification.info{background:rgba(var(--primary-color-rgb),.12);border-color:rgba(var(--primary-color-rgb),.25)}.notification.actionable{cursor:pointer;transition:transform .3s cubic-bezier(.32,.72,0,1),box-shadow .2s ease}.notification.actionable:hover{transform:translate(-4px) scale(1.02);box-shadow:0 12px 40px #0000001f,0 4px 12px #0000000f}.notification.actionable u{text-decoration-style:dotted}.notification.notification-undo{flex-wrap:wrap;gap:8px 12px;padding-bottom:10px;min-width:320px;cursor:default}.notification-undo-message{flex:1;min-width:0}.notification-undo-btn{background:none;border:1px solid currentColor;color:inherit;font-weight:700;font-size:13px;padding:5px 14px;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease;flex-shrink:0;text-transform:uppercase;letter-spacing:.5px}.notification-undo-btn:hover{background:#ffffff26;transform:scale(1.05)}[data-theme=light] .notification-undo-btn:hover{background:#00000014}.notification-undo-btn:active{transform:scale(.95)}.notification-undo-progress{width:100%;height:3px;background:#ffffff26;border-radius:2px;overflow:hidden;order:99}[data-theme=light] .notification-undo-progress{background:#00000014}.notification-undo-progress-fill{height:100%;width:100%;background:currentColor;border-radius:2px;opacity:.6}#mass-import-progress-output-area{position:relative;background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:16px 24px;margin-bottom:24px;display:none;flex-direction:column;align-items:center;gap:8px;box-shadow:var(--shadow-sm)}#mass-import-progress-output-area h4{margin:0;font-size:.95rem;font-weight:600;color:var(--text-primary);text-align:center}.progress-cancel-btn{position:absolute;top:8px;right:8px;width:28px;height:28px;border:none;background:transparent;color:var(--text-secondary);font-size:1.4rem;font-weight:300;line-height:1;cursor:pointer;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);opacity:.6}.progress-cancel-btn:hover{background:var(--error-color);color:#fff;opacity:1;transform:scale(1.05)}.progress-cancel-btn:active{transform:scale(.95)}.progress-container{width:100%;max-width:400px}.progress-bar{width:100%;height:6px;background:var(--bg-secondary);border-radius:var(--radius-xs);overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,rgba(var(--primary-color-rgb),.8) 0%,rgba(var(--primary-color-rgb),.8) 25%,var(--glow-highlight) 50%,rgba(var(--primary-color-rgb),.8) 75%,rgba(var(--primary-color-rgb),.8) 100%);background-size:200% 100%;border-radius:var(--radius-xs);transition:width var(--transition-base);width:0%;animation:shimmer-progress 2s ease-in-out infinite}@keyframes shimmer-progress{0%{background-position:200% 0}to{background-position:-200% 0}}.progress-text{text-align:center;margin-top:8px;font-size:13px;color:var(--text-secondary);font-weight:500}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;display:none;align-items:center;justify-content:center;z-index:var(--z-modal)}#loadingOverlay{flex-direction:row;gap:12px}.loading-spinner{width:18px;height:18px;min-width:18px;min-height:18px;aspect-ratio:1;flex-shrink:0;border-radius:50%;border:2.5px solid rgba(255,255,255,.3);border-top-color:currentColor;animation:spin .8s linear infinite}[data-theme=light] .loading-spinner{border-color:#00000026;border-top-color:currentColor}#backToTopBtn{position:fixed;bottom:24px;right:24px;z-index:var(--z-modal-backdrop);opacity:0;visibility:hidden;transform:translatey(16px);transition:all var(--transition-base);background-color:var(--surface-color);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);color:var(--text-secondary)}#backToTopBtn.show{opacity:1;visibility:visible;transform:translatey(0)}.generation-status-chip{display:none;align-items:center;gap:8px;background:rgba(var(--surface-color-rgb, 30, 30, 40),.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-pill);padding:8px 14px;font-size:.875rem;font-weight:500;color:var(--text-primary);border:1px solid rgba(255,255,255,.08);box-shadow:0 2px 8px #0000001f,inset 0 1px #ffffff0d;transition:all .4s cubic-bezier(.32,.72,0,1);position:relative;overflow:hidden;margin-left:-8px}.generation-status-chip.idle-pending{padding:0;background:linear-gradient(135deg,rgba(var(--primary-color-rgb),.15),rgba(var(--primary-color-rgb),.08));border-color:rgba(var(--primary-color-rgb),.3);cursor:pointer}.generation-idle-btn{display:none;align-items:center;gap:6px;padding:8px 14px;background:transparent;border:none;color:var(--primary-color);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.32,.72,0,1);border-radius:var(--radius-pill)}.generation-status-chip.idle-pending .generation-idle-btn{display:flex}.generation-idle-btn i{font-size:.9rem;animation:sparkle-pulse 2s ease-in-out infinite}@keyframes sparkle-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.generation-idle-btn .pending-count{background:var(--primary-color);color:#fff;font-size:.75rem;font-weight:700;padding:2px 7px;border-radius:var(--radius-sm);min-width:18px;text-align:center}.generation-status-chip.idle-pending:hover{background:linear-gradient(135deg,rgba(var(--primary-color-rgb),.2),rgba(var(--primary-color-rgb),.12));box-shadow:0 0 16px rgba(var(--primary-color-rgb),.15);transform:scale(1.02)}.generation-status-chip.idle-pending:active{transform:scale(.98)}.generation-status-chip.idle-pending .generation-progress-bar,.generation-status-chip.idle-pending .generation-text,.generation-status-chip.idle-pending .generation-error-badge,.generation-status-chip.idle-pending .generation-cancel-btn,.generation-status-chip.generating .generation-idle-btn,.generation-status-chip.success .generation-idle-btn{display:none}.generation-status-chip.idle-pending.has-errors{padding:0;gap:0}.generation-status-chip.idle-pending.has-errors .generation-idle-btn,.generation-status-chip.idle-pending.has-errors .generation-error-badge{display:flex}.generation-status-chip.visible{display:flex;animation:chip-slide-in .35s cubic-bezier(.32,.72,0,1)}@keyframes chip-slide-in{0%{opacity:0;transform:translate(-12px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}.generation-status-chip.generating{background:linear-gradient(135deg,rgba(var(--primary-color-rgb),.12),rgba(var(--primary-color-rgb),.06));border-color:rgba(var(--primary-color-rgb),.25);box-shadow:0 0 20px rgba(var(--primary-color-rgb),.15),0 2px 8px #0000001f,inset 0 1px #ffffff14}.generation-status-chip.generating:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;background:linear-gradient(90deg,transparent 0%,rgba(var(--primary-color-rgb),.3) 50%,transparent 100%);background-size:200% 100%;animation:shimmer-glow 2s ease-in-out infinite;z-index:-1;opacity:.6}@keyframes shimmer-glow{0%{background-position:200% center}to{background-position:-200% center}}.generation-status-chip.has-errors{background:linear-gradient(135deg,#ef444426,#dc262614);border-color:#ef444433;box-shadow:0 0 16px #ef44441f,0 2px 8px #0000001a;animation:error-glow 3s ease-in-out infinite}@keyframes error-glow{0%,to{box-shadow:0 0 16px #ef44441a,0 2px 8px #0000001a}50%{box-shadow:0 0 24px #ef444433,0 2px 12px #0000001f}}.generation-status-chip.success{background:linear-gradient(135deg,#10b98126,#05966914);border-color:#10b9814d;animation:success-pulse .5s ease-out}@keyframes success-pulse{0%{transform:scale(1);box-shadow:0 0 #10b98166}50%{transform:scale(1.02);box-shadow:0 0 24px #10b98140}to{transform:scale(1);box-shadow:0 0 16px #10b98126}}.generation-status-chip.fade-out{animation:chip-fade-out .4s cubic-bezier(.32,.72,0,1) forwards}@keyframes chip-fade-out{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(8px) scale(.95)}}.generation-progress-bar{width:48px;height:3px;background:#ffffff1a;border-radius:2px;overflow:hidden;flex-shrink:0}.generation-progress-fill{height:100%;background:linear-gradient(90deg,var(--primary-color) 0%,var(--glow-highlight) 50%,var(--primary-color) 100%);background-size:200% 100%;border-radius:2px;transition:width .35s cubic-bezier(.32,.72,0,1);animation:progress-shimmer 1.5s ease-in-out infinite}@keyframes progress-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.generation-text{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text-primary);font-weight:600;font-size:.8rem;letter-spacing:-.01em}.generation-text .student-name{color:var(--text-secondary);font-weight:400;margin-left:6px;max-width:80px;overflow:hidden;text-overflow:ellipsis;display:inline-block;vertical-align:bottom;opacity:.8}.generation-status-chip.success .generation-text{color:#10b981}.generation-status-chip.success .generation-text:before{content:"✓ "}.generation-status-chip.has-errors:not(.generating) .generation-text{display:none}.generation-error-badge{display:none;align-items:center;gap:6px;background:transparent;color:#f87171;font-size:.8rem;font-weight:600;padding:0;border-radius:0;border:none;cursor:pointer;transition:all .25s cubic-bezier(.32,.72,0,1);letter-spacing:-.01em}.generation-error-badge.visible{display:inline-flex}.generation-error-badge i{font-size:12px;color:#ef4444;animation:icon-pulse 2s ease-in-out infinite}@keyframes icon-pulse{0%,to{opacity:1}50%{opacity:.6}}.generation-error-badge:hover{color:#fca5a5}.generation-error-badge:hover i{animation:none;transform:scale(1.1)}.generation-error-badge:active{transform:scale(.97)}.generation-error-badge span:after{content:" Erreur";font-weight:500}.generation-cancel-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:#ffffff0f;border:none;color:var(--text-tertiary);cursor:pointer;border-radius:50%;transition:all var(--transition-fast);flex-shrink:0;margin-left:4px}.generation-cancel-btn:hover{background:#ef4444e6;color:#fff;transform:scale(1.1)}.generation-cancel-btn:active{transform:scale(.92)}.generation-cancel-btn i{font-size:10px}.generation-status-chip.has-errors:not(.generating) .generation-cancel-btn{display:none}.generation-status-chip.has-errors:not(.generating) .generation-progress-bar{display:none}[data-theme=dark] .generation-status-chip{background:#14141ce6;border-color:#ffffff0f}[data-theme=dark] .generation-status-chip.has-errors{background:linear-gradient(135deg,#ef44441f,#b91c1c0f)}[data-theme=dark] .generation-cancel-btn{background:#ffffff0f}@media (max-width: 768px){.generation-status-chip{padding:6px 10px;gap:6px;margin-left:-4px}.generation-progress-bar{width:36px}.generation-text .student-name{display:none}.generation-error-badge{font-size:.75rem}.generation-error-badge span:after{content:""}}@media (max-width: 480px){.generation-status-chip{padding:5px 8px}.generation-progress-bar{width:28px}}.header-gen-dashboard{display:flex;align-items:center;gap:2px;background:transparent;border:1px solid transparent;border-radius:var(--radius-pill);padding:3px;position:relative;overflow:hidden;transition:all .2s cubic-bezier(.2,.8,.2,1);cursor:pointer;height:38px}.header-gen-dashboard:hover{background:linear-gradient(135deg,rgba(var(--surface-color-rgb, 255, 255, 255),.85),rgba(var(--surface-color-rgb, 255, 255, 255),.95));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-color:transparent;box-shadow:0 2px 5px #0000001a,0 1px 1px #0000000d;transform:translateY(-1px)}[data-theme=dark] .header-gen-dashboard:hover{background:linear-gradient(135deg,#14141ee6,#1e1e2df2);border-color:transparent;box-shadow:0 2px 8px #0006;transform:translateY(-1px)}.header-gen-dashboard:active{transform:scale(.98);box-shadow:none}.dash-model-label{display:flex;align-items:center;gap:7px;padding:0 10px;height:100%;line-height:1;border-radius:var(--radius-pill);background:transparent;border:none;font-size:.85rem;color:var(--text-primary);font-weight:500;letter-spacing:.01em;cursor:inherit;pointer-events:none;white-space:nowrap;overflow:hidden}.dash-model-label iconify-icon,.dash-model-label i,.dash-model-label svg{font-size:16px;opacity:.85}#dashModelName{display:inline-block;position:relative}#dashModelName.model-name-transition{transition:transform .2s cubic-bezier(.32,.72,0,1),opacity .2s cubic-bezier(.32,.72,0,1)}#dashModelName.exit-up{transform:translateY(-100%);opacity:0}#dashModelName.exit-down{transform:translateY(100%);opacity:0}#dashModelName.enter-from-down{transform:translateY(100%);opacity:0;transition:none}#dashModelName.enter-from-up{transform:translateY(-100%);opacity:0;transition:none}.header-gen-dashboard.fallback-active{border-color:rgba(var(--warning-rgb),.5);box-shadow:0 0 12px rgba(var(--warning-rgb),.25)}.header-gen-dashboard.fallback-active .dash-model-label{background:rgba(var(--warning-rgb),.15);color:var(--warning-color)}.header-gen-dashboard.fallback-active .dash-model-label i{color:var(--warning-color)}.dash-badge{display:flex;align-items:center;gap:4px;padding:0 10px;height:100%;border-radius:var(--radius-pill);border:none;background:transparent;color:var(--text-secondary);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.32,.72,0,1);white-space:nowrap}.dash-badge i,.dash-badge iconify-icon{font-size:14px}.dash-badge:hover{background:#ffffff14;transform:translateY(-1px)}.dash-badge:active{transform:scale(.95)}.dash-validated,.dash-pending{display:none!important}.dash-generating{display:flex;align-items:center;gap:10px;opacity:0;max-width:0;padding:4px 0;overflow:hidden;transition:opacity .4s cubic-bezier(.32,.72,0,1),max-width .5s cubic-bezier(.32,.72,0,1),padding .4s cubic-bezier(.32,.72,0,1)}.header-gen-dashboard.generating .dash-generating{opacity:1;max-width:150px;padding:4px 6px 4px 8px}.dash-badge{transition:opacity .3s cubic-bezier(.32,.72,0,1),transform .3s cubic-bezier(.32,.72,0,1)}.header-gen-dashboard.generating .dash-badge{opacity:0;transform:scale(.8);pointer-events:none;max-width:0;padding:0;margin:0;overflow:hidden}.header-gen-dashboard.generating{border:1px solid rgba(var(--primary-color-rgb),.3)!important;gap:0;background:var(--surface-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.08),0 2px 8px rgba(var(--primary-color-rgb),.1)}.header-gen-dashboard.generating:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:2px;background:conic-gradient(from var(--gradient-angle, 0deg),var(--primary-color) 0%,rgba(var(--primary-color-rgb),.3) 25%,var(--glow-highlight, rgba(255, 255, 255, .8)) 50%,rgba(var(--primary-color-rgb),.3) 75%,var(--primary-color) 100%);-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-clip:content-box,border-box;-webkit-mask-composite:xor;mask-image:linear-gradient(#fff 0,#fff 0),linear-gradient(#fff 0,#fff 0);mask-clip:content-box,border-box;mask-composite:exclude;animation:rotate-gradient 2s linear infinite;pointer-events:none;z-index:2}.header-gen-dashboard.generating .dash-model-label{background:transparent;animation:none;position:relative;z-index:1;text-shadow:0 1px 2px rgba(0,0,0,.1)}@keyframes generating-glow{0%,to{border-color:rgba(var(--primary-color-rgb),.25);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.1),0 2px 5px #0000001a,0 1px 1px #0000000d}50%{border-color:rgba(var(--primary-color-rgb),.5);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.2),0 3px 8px #00000026,0 1px 2px #0000001a}}.dash-progress-bar{display:block!important;position:absolute;top:0;left:0;width:100%;height:100%;border-radius:var(--radius-pill);background:transparent;z-index:0;pointer-events:none}.dash-progress-fill{height:100%;background:linear-gradient(90deg,rgba(var(--primary-color-rgb),.15),rgba(var(--primary-color-rgb),.25));border-right:1px solid rgba(var(--primary-color-rgb),.3);transition:width .35s cubic-bezier(.32,.72,0,1);position:relative;overflow:hidden}.dash-progress-fill:after{content:"";position:absolute;top:0;left:0;height:100%;width:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transform:skew(-20deg) translate(-150%);animation:fill-shine 2s infinite}@keyframes fill-shine{0%{transform:skew(-20deg) translate(-150%)}to{transform:skew(-20deg) translate(150%)}}.dash-progress-text,.dash-cancel-btn,.dash-model-label{position:relative;z-index:1}@keyframes progress-liquid{0%{background-position:100% 0}to{background-position:-100% 0}}.dash-progress-text{font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:600;color:var(--text-primary)}.dash-cancel-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;min-width:22px;background:#0000001a;border:none;color:var(--text-tertiary);cursor:pointer;border-radius:50%;transition:all .2s ease;margin-left:0}.dash-cancel-btn:hover{background:#ef4444e6;color:#fff;transform:scale(1.1)}[data-theme=dark] .header-gen-dashboard.generating{background:var(--surface-color)!important;border-color:#ffffff1a!important;box-shadow:0 0 0 3px #ffffff0d,0 4px 12px #0006}[data-theme=dark] .dash-progress-bar{background:transparent!important}[data-theme=dark] .dash-cancel-btn{background:#ffffff0f}@media (max-width: 480px){.header-gen-dashboard{padding:3px}.dash-badge{padding:5px 8px;font-size:.75rem}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-update{0%{box-shadow:var(--shadow-sm)}50%{box-shadow:0 0 0 8px rgba(var(--primary-color-rgb),.25),var(--shadow-md)}to{box-shadow:var(--shadow-sm)}}.card-content-wrapper.is-updating,.stat-card.pulse-update{animation:pulse-update .6s ease-out}@keyframes highlight-new{0%{box-shadow:var(--shadow-sm)}50%{box-shadow:0 0 0 4px var(--success-light),var(--shadow-md)}to{box-shadow:var(--shadow-sm)}}@keyframes flash-bg{0%{background-color:var(--surface-color)}50%{background-color:rgba(var(--primary-color-rgb),.1)}to{background-color:var(--surface-color)}}.flash-bg{animation:flash-bg .6s ease-out}@keyframes content-slide-out-left{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(-60px) scale(.96);opacity:0}}@keyframes content-slide-in-right{0%{transform:translate(60px) scale(.96);opacity:0}to{transform:translate(0) scale(1);opacity:1}}@keyframes content-slide-out-right{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(60px) scale(.96);opacity:0}}@keyframes content-slide-in-left{0%{transform:translate(-60px) scale(.96);opacity:0}to{transform:translate(0) scale(1);opacity:1}}.modal-body.content-slide-out-left,.tab-content.content-slide-out-left{animation:content-slide-out-left .35s cubic-bezier(.32,.72,0,1) forwards}.modal-body.content-slide-in-right,.tab-content.content-slide-in-right{animation:content-slide-in-right .4s cubic-bezier(.32,.72,0,1) forwards}.modal-body.content-slide-out-right,.tab-content.content-slide-out-right{animation:content-slide-out-right .35s cubic-bezier(.32,.72,0,1) forwards}.modal-body.content-slide-in-left,.tab-content.content-slide-in-left{animation:content-slide-in-left .4s cubic-bezier(.32,.72,0,1) forwards}.tab-content.content-slide-out-left,.tab-content.content-slide-out-right{position:absolute;top:0;left:0;right:0;z-index:1;pointer-events:none}@keyframes icon-swap{0%{transform:scale(1) rotate(0)}50%{transform:scale(1.2) rotate(180deg)}to{transform:scale(1) rotate(360deg)}}@keyframes pulsing{0%,to{box-shadow:0 0 5px rgba(var(--primary-color-rgb),.2)}50%{box-shadow:0 0 15px rgba(var(--primary-color-rgb),.6)}}@keyframes shine-continuous{0%{left:-100%;opacity:0}20%{opacity:1}80%{left:200%;opacity:0}to{left:200%;opacity:0}}.btn.pulsing,#refreshPreviewBtn.pulsing{position:relative;overflow:hidden;transform:none!important}.btn.pulsing:hover,#refreshPreviewBtn.pulsing:hover{transform:none!important}.btn.pulsing:before,#refreshPreviewBtn.pulsing:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shine-continuous 3s ease-in-out infinite;pointer-events:none;z-index:1}.btn.pulsing>*,#refreshPreviewBtn.pulsing>*{position:relative;z-index:2}@keyframes pulsing-dot{0%,to{opacity:.3}50%{opacity:1}}.pulsing-dot{display:inline-block;width:6px;height:6px;border-radius:var(--radius-pill);background:var(--primary-color);animation:pulsing-dot 1.5s ease-in-out infinite;margin-left:4px}@keyframes fading-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.appreciation-result.fading-out{animation:fading-out .3s ease-out forwards}@keyframes success-bounce{0%{transform:scale(1)}25%{transform:scale(1.05)}50%{transform:scale(.98)}75%{transform:scale(1.02)}to{transform:scale(1)}}.success-bounce{animation:success-bounce .4s ease-out}@keyframes error-shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}.error-shake{animation:error-shake .5s ease-out}@keyframes copy-success-pulse{0%{box-shadow:0 0 #10b98180}50%{box-shadow:0 0 0 8px #10b98100}to{box-shadow:0 0 #10b98100}}.copy-success{animation:copy-success-pulse .6s ease-out}@keyframes card-success-glow{0%{box-shadow:0 0 rgba(var(--primary-color-rgb),.6),var(--shadow-sm)}30%{box-shadow:0 0 30px 8px rgba(var(--primary-color-rgb),.4),0 0 60px 16px rgba(var(--primary-color-rgb),.15),var(--shadow-lg)}60%{box-shadow:0 0 20px 4px rgba(var(--primary-color-rgb),.25),var(--shadow-md)}to{box-shadow:var(--shadow-sm)}}.appreciation-result.just-generated .card-content-wrapper{animation:card-success-glow 1.2s ease-out}@keyframes card-error-glow{0%{box-shadow:0 0 #ef444466,var(--shadow-sm)}50%{box-shadow:0 0 20px 4px #ef444433,var(--shadow-md)}to{box-shadow:var(--shadow-sm)}}.appreciation-result.just-errored .card-content-wrapper{animation:card-error-glow 1s ease-out}.appreciation-result.just-errored{animation:error-shake .5s ease-out}@keyframes fadein{0%{opacity:0;transform:translatey(8px)}to{opacity:1;transform:translatey(0)}}@keyframes rotate-gradient{0%{--gradient-angle: 0deg}to{--gradient-angle: 360deg}}@property --gradient-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}.selected-glow{position:relative;background:var(--surface-color, #fff);border:2px solid transparent!important;border-radius:inherit}.selected-glow:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:inherit;padding:2px;background:conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.65) 0%,rgba(var(--primary-color-rgb),.65) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.65) 32%,rgba(var(--primary-color-rgb),.65) 50%,rgba(var(--primary-color-rgb),.65) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.65) 82%,rgba(var(--primary-color-rgb),.65) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;animation:rotate-gradient 7s linear infinite;opacity:.9;pointer-events:none;z-index:-1}.selected-glow-subtle:before{opacity:.5;animation-duration:16s}.selected-glow[data-radius="8"]:before,.selected-glow-subtle[data-radius="8"]:before{border-radius:var(--radius-md)}.selected-glow[data-radius="12"]:before,.selected-glow-subtle[data-radius="12"]:before{border-radius:var(--radius-md)}.selected-glow[data-radius=full]:before,.selected-glow-subtle[data-radius=full]:before{border-radius:var(--radius-pill)}@keyframes pageEnterBlur{0%{opacity:0;filter:blur(12px);transform:scale(.96)}to{opacity:1;filter:blur(0);transform:scale(1)}}body.is-transitioning-in{animation:pageEnterBlur .7s cubic-bezier(.32,.72,0,1) forwards}body.is-transitioning-in .header{animation:pageEnterBlur .6s cubic-bezier(.32,.72,0,1) .05s both}body.is-transitioning-in .main-content{animation:pageEnterBlur .7s cubic-bezier(.32,.72,0,1) .1s both}body.preload-transition{opacity:0}@keyframes text-blur-reveal{0%{opacity:.4;filter:blur(4px);clip-path:inset(0 0 100% 0);transform:translateY(10px)}to{opacity:1;filter:blur(0);clip-path:inset(0 0 0 0);transform:translateY(0)}}.text-blur-reveal{animation:text-blur-reveal 1.2s cubic-bezier(.2,.8,.2,1) forwards;will-change:transform,opacity,filter,clip-path}.focus-refinement-options{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:0 16px 16px}.refinement-options{margin-bottom:12px}.refinement-settings-container{display:flex;flex-direction:column;gap:12px;background:var(--surface-color);padding:16px;border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.refinement-section{display:flex;flex-direction:column;gap:8px}.refinement-section-label{display:flex;align-items:center;gap:12px;font-weight:600;font-size:1rem;color:var(--text-primary);margin-bottom:4px}.label-number{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--gradient-primary);color:#fff;font-size:.9rem;font-weight:700;border-radius:50%;box-shadow:0 2px 6px rgba(var(--primary-color-rgb),.3)}.input-with-button-group{display:flex;gap:12px;align-items:center}.input-with-button-group .actions-group{flex:1}.input-with-button-group textarea{height:38px;min-height:38px;padding:6px 12px;border-radius:var(--radius-sm);resize:none;font-size:.85rem;border:1px solid var(--border-color);transition:all var(--transition-fast);line-height:1.5;overflow-y:hidden}.input-with-button-group textarea:focus{background-color:transparent;border:2px solid transparent!important;background-image:linear-gradient(var(--bg-color),var(--bg-color)),conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.5) 0%,rgba(var(--primary-color-rgb),.5) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.5) 32%,rgba(var(--primary-color-rgb),.5) 50%,rgba(var(--primary-color-rgb),.5) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.5) 82%,rgba(var(--primary-color-rgb),.5) 100%);background-origin:padding-box,border-box;background-clip:padding-box,border-box;animation:rotate-gradient 10s linear infinite;box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.08),0 2px 8px rgba(var(--primary-color-rgb),.1);outline:none}.input-with-button-group>.btn{height:34px;white-space:nowrap;padding:0 16px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:.85rem;transform:translateY(-2px);transition:all var(--transition-fast)}.input-with-button-group>.btn:hover{transform:translateY(-4px)}.options-group{display:flex;flex-wrap:wrap;gap:8px}.options-group .btn{border-radius:var(--radius-sm);padding:5px 12px;font-size:.85rem;min-height:28px;transition:all var(--transition-fast)}.refinement-comparison{display:flex;gap:20px;align-items:stretch;margin-top:16px;position:relative}.refinement-column{flex:1;display:flex;flex-direction:column;min-width:0}.refinement-box-container{display:flex;flex-direction:column;gap:10px}.refinement-box{border-radius:var(--radius-lg);padding:16px;min-height:140px;font-size:.95rem;line-height:1.6;color:var(--text-primary);transition:all var(--transition-base);white-space:pre-wrap;word-break:break-word;border:1px solid transparent;flex:1;height:100%;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;max-width:100%}.refinement-box.editable{background:var(--bg-color);border:1px solid var(--border-color);box-shadow:inset 0 2px 4px #00000005}.refinement-box.editable:focus{background-color:transparent;outline:none;border:2px solid transparent!important;background-image:linear-gradient(var(--surface-color),var(--surface-color)),conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.5) 0%,rgba(var(--primary-color-rgb),.5) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.5) 32%,rgba(var(--primary-color-rgb),.5) 50%,rgba(var(--primary-color-rgb),.5) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.5) 82%,rgba(var(--primary-color-rgb),.5) 100%);background-origin:padding-box,border-box;background-clip:padding-box,border-box;animation:rotate-gradient 10s linear infinite;box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.08),0 2px 8px rgba(var(--primary-color-rgb),.1)}.refinement-box:not(.editable){background:var(--bg-secondary);border:1px solid var(--border-color);position:relative;cursor:default;-webkit-user-select:text;user-select:text}.refinement-box.is-loading{background:var(--surface-color);border-color:var(--primary-color);overflow:hidden}.refinement-box.is-loading:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(var(--primary-color-rgb),.05),transparent);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.refinement-box-header{display:flex;justify-content:space-between;align-items:center;padding:0 8px;margin-bottom:8px}.refinement-box-header h4{margin:0;font-size:.85rem;text-transform:uppercase;letter-spacing:.8px;font-weight:700;display:flex;align-items:center;gap:8px}.refinement-box-header h4:before{font-size:1.1em}.original-header h4{color:var(--text-secondary)}.original-header h4:before{content:"✏️";filter:grayscale(1);opacity:.7}.suggested-header h4{color:var(--primary-color)}.suggested-header h4:before{content:"✨"}.refinement-accept-btn{width:44px;height:44px;border-radius:50%;background:var(--surface-color);border:1px solid var(--border-color);color:var(--text-secondary);font-size:1.2rem;cursor:pointer;box-shadow:var(--shadow-md);transition:all var(--transition-bounce);display:flex;align-items:center;justify-content:center;z-index:10;flex-shrink:0;align-self:center;margin:30px -34px 0}.refinement-comparison{isolation:isolate}.refinement-accept-btn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:20px 0 0}.refinement-accept-btn:hover{transform:translate(-50%,-50%) scale(1.1);color:var(--primary-color);border-color:var(--primary-color);background:rgba(var(--surface-color-rgb),.6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 8px 24px rgba(var(--primary-color-rgb),.25)}.refinement-box-meta{font-size:.75rem;color:var(--text-tertiary);display:flex;align-items:center;gap:8px;min-width:220px}.refinement-box-meta .word-count{margin-right:auto}.refinement-box-copy-btn{background:transparent;border:none;cursor:pointer;color:var(--text-secondary);padding:6px;border-radius:var(--radius-xs);transition:background var(--transition-fast);display:flex;align-items:center;justify-content:center}.refinement-box-copy-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.refinement-box.placeholder{display:flex;align-items:center;justify-content:center;text-align:center;white-space:normal;color:var(--text-tertiary);font-style:italic;background:var(--bg-secondary);border:2px dashed var(--border-color);opacity:.7}.refinement-box.has-error{border-color:var(--error-color);background:#ef44440d;color:var(--error-color)}[data-theme=dark] .refinement-settings-container{background:var(--surface-color);border-color:var(--border-color)}[data-theme=dark] .refinement-box.suggestion-box{background:linear-gradient(145deg,#27272a99,#18181b66);border-color:var(--border-color)}[data-theme=dark] .refinement-accept-btn{background:var(--surface-color)}#applyRefinedAppreciationBtn{position:relative;overflow:hidden;font-weight:600;transition:all var(--transition-fast)}#applyRefinedAppreciationBtn:hover:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:shine-sweep .8s ease-in-out}.loading-text{font-weight:700;font-size:1.05em;background:linear-gradient(90deg,var(--primary-color) 0%,var(--primary-color) 25%,#ffffff 50%,var(--primary-color) 75%,var(--primary-color) 100%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:text-shimmer 3s linear infinite;display:inline-block}@keyframes text-shimmer{0%{background-position:200% center}to{background-position:-200% center}}@keyframes pulse-success-border{0%{border-color:var(--primary-color);box-shadow:0 0 rgba(var(--primary-color-rgb),.4)}50%{border-color:var(--primary-color);box-shadow:0 0 0 8px rgba(var(--primary-color-rgb),.25)}to{border-color:var(--border-color);box-shadow:0 0 rgba(var(--primary-color-rgb),0)}}.anim-success-pulse{animation:pulse-success-border .6s ease-out}@keyframes heart-beat-soft{0%{transform:scale(1)}15%{transform:scale(1.25);color:var(--primary-color)}30%{transform:scale(1);color:inherit}45%{transform:scale(1.25);color:var(--primary-color)}60%{transform:scale(1)}to{transform:scale(1)}}button[data-refine-type=encouraging]:hover i,button[data-refine-type=encouraging].is-generating i{animation:heart-beat-soft 1.4s ease-in-out infinite;display:inline-block}@keyframes expand-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.25)}}button[data-refine-type=detailed]:hover i,button[data-refine-type=detailed].is-generating i{animation:expand-pulse 1.2s ease-in-out infinite;color:var(--primary-color)}@keyframes compress-pulse{0%,to{transform:scale(1)}50%{transform:scale(.75)}}button[data-refine-type=concise]:hover i,button[data-refine-type=concise].is-generating i{animation:compress-pulse 1.2s ease-in-out infinite;color:var(--primary-color)}@keyframes rotate-soft{0%{transform:rotate(0)}to{transform:rotate(360deg)}}button[data-refine-type=variations]:hover i,button[data-refine-type=variations].is-generating i{animation:rotate-soft 1.5s linear infinite;display:inline-block}button[data-refine-type=polish]{padding-left:8px!important}.polish-icon-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:16px;margin-right:6px}.polish-wand{color:var(--primary-color);font-size:14px;transition:transform .3s ease}.polish-sparkle{position:absolute;color:var(--primary-color);font-size:6px;opacity:.85;transition:all .3s ease}.polish-sparkle.s1{top:-2px;right:-2px;font-size:7px}.polish-sparkle.s2{top:4px;right:-4px;font-size:5px}.polish-sparkle.s3{top:-3px;right:6px;font-size:4px}@keyframes magic-wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-12deg)}50%{transform:rotate(8deg)}75%{transform:rotate(-8deg)}}@keyframes sparkle-twinkle{0%,to{opacity:.5;transform:scale(.8)}50%{opacity:1;transform:scale(1.3)}}button[data-refine-type=polish]:hover .polish-wand,button[data-refine-type=polish].is-generating .polish-wand{animation:magic-wobble .6s ease-in-out infinite;color:var(--primary-color)}button[data-refine-type=polish]:hover .polish-sparkle,button[data-refine-type=polish].is-generating .polish-sparkle{animation:sparkle-twinkle 1s ease-in-out infinite;color:var(--primary-color)}button[data-refine-type=polish]:hover .polish-sparkle.s1,button[data-refine-type=polish].is-generating .polish-sparkle.s1{animation-delay:0s}button[data-refine-type=polish]:hover .polish-sparkle.s2,button[data-refine-type=polish].is-generating .polish-sparkle.s2{animation-delay:.33s}button[data-refine-type=polish]:hover .polish-sparkle.s3,button[data-refine-type=polish].is-generating .polish-sparkle.s3{animation-delay:.66s}.details-periods-container{display:flex;flex-direction:column;gap:16px}.details-period-block{background:var(--card-glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--card-glass-border);border-radius:20px;padding:20px;box-shadow:0 4px 16px #0000000a;transition:all .3s ease}.details-period-block.period-inactive{opacity:.6;background:#00000005}.details-period-block h4{margin:0 0 16px;color:var(--text-primary);display:flex;justify-content:space-between;align-items:center;font-size:1rem;font-weight:700}.grade-display{background:linear-gradient(135deg,rgba(var(--primary-color-rgb),.12),rgba(var(--primary-color-rgb),.08));color:var(--primary-color);padding:6px 14px;border-radius:var(--radius-md);font-weight:700;font-size:1rem;border:1px solid rgba(var(--primary-color-rgb),.15)}.appreciation-text-display{padding:16px;background:var(--bg-secondary);border-radius:var(--radius-lg);border:none;line-height:1.7;font-size:14px;color:var(--text-primary)}.appreciation-text-display.has-content{background:linear-gradient(145deg,var(--surface-color),var(--bg-secondary));border:1px solid rgba(0,0,0,.04)}.context-principal-block{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:16px;margin-bottom:16px}.context-principal-block h5{margin:0 0 8px;font-size:.85rem;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.context-principal-block p{margin:0;font-size:14px;color:var(--text-primary);line-height:1.5}.strengths-weaknesses-list h4{margin:20px 0 12px;color:var(--text-primary);font-size:.95rem;font-weight:700;display:flex;align-items:center;gap:8px}.strengths-weaknesses-list h4.strengths-title{color:var(--success-color)}.strengths-weaknesses-list h4.strengths-title:before{content:"";width:6px;height:6px;background:var(--success-color);border-radius:50%}.strengths-weaknesses-list h4.weaknesses-title{color:var(--error-color)}.strengths-weaknesses-list h4.weaknesses-title:before{content:"";width:6px;height:6px;background:var(--error-color);border-radius:50%}.strengths-list,.weaknesses-list{list-style:none;padding:0;margin:0 0 16px;display:flex;flex-direction:column;gap:8px}.strengths-list li,.weaknesses-list li{padding:12px 16px;margin-bottom:0;background:var(--bg-secondary);border-left:4px solid var(--border-color);border-radius:var(--radius-md);font-size:14px;line-height:1.5;transition:all var(--transition-fast)}.strengths-list li{border-left-color:var(--success-color);background:var(--success-light)}.weaknesses-list li{border-left-color:var(--error-color);background:var(--error-light)}.next-steps-list{list-style:none;padding:0;margin:0;counter-reset:steps-counter;display:flex;flex-direction:column;gap:10px}.next-steps-list li{padding:14px 16px 14px 44px;margin-bottom:0;background:linear-gradient(135deg,var(--surface-color),var(--bg-secondary));border:1px solid rgba(0,0,0,.04);border-radius:14px;position:relative;counter-increment:steps-counter;font-size:14px;line-height:1.5;box-shadow:0 2px 8px #00000008}.next-steps-list li:before{content:counter(steps-counter);position:absolute;left:12px;top:50%;transform:translateY(-50%);width:24px;height:24px;background:var(--gradient-primary);color:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px}.analysis-loading-state{display:flex;align-items:center;gap:12px;color:var(--text-secondary);font-style:normal;font-size:14px;padding:16px;background:var(--bg-secondary);border-radius:var(--radius-md)}.settings-preview-student-data h5{margin:0 0 12px;color:var(--text-primary);font-size:1rem}.settings-preview-student-data p{margin:8px 0;font-size:14px}.preview-student-info{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;font-size:.9em}.preview-student-info strong{font-weight:600;color:var(--text-primary)}.preview-student-info .preview-grade{color:var(--primary-color);font-weight:500}.preview-student-info .preview-statuses{background:var(--warning-light);color:var(--warning-color);padding:2px 8px;border-radius:var(--radius-xs);font-size:.85em;font-weight:500}.preview-student-info .preview-instructions{color:var(--text-secondary);font-style:italic;font-size:.85em}.demo-badge{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color, var(--purple-color)));color:#fff;padding:2px 8px;border-radius:var(--radius-xs);font-size:.75em;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.preview-student-header{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;font-size:.9em;margin-bottom:8px}.preview-student-header strong{font-weight:600;color:var(--text-primary)}.preview-result-header{display:flex;justify-content:space-between;align-items:center;margin:12px 0 8px;padding:4px 4px 12px;border-bottom:1px solid var(--border-color);overflow:visible}.preview-result-label{font-weight:600;font-size:.9em;color:var(--text-primary)}.preview-result-label i{margin-right:6px;color:var(--primary-color)}.preview-result-header .btn{flex-shrink:0}.preview-instructions-full{color:var(--text-secondary);font-style:italic;font-size:.85em;padding:6px 10px;background:var(--bg-secondary);border-radius:var(--radius-xs);margin-bottom:8px}.preview-instructions-full i{margin-right:6px;color:var(--primary-color)}.preview-history-section{margin-top:10px}.preview-history-header{font-size:.8em;color:var(--text-secondary);padding:4px 0;opacity:.8}.preview-history-header i{margin-right:6px;opacity:.7}.preview-history-table{width:100%;border-collapse:collapse;font-size:.85em;margin-top:8px}.preview-history-table th,.preview-history-table td{padding:6px 8px;text-align:left;border-bottom:1px solid var(--border-color)}.preview-history-table th{background:var(--bg-secondary);font-weight:600;color:var(--text-secondary);font-size:.9em}.preview-history-table .grade-cell{font-weight:600;color:var(--primary-color);white-space:nowrap}.preview-history-table .app-cell{color:var(--text-secondary);font-size:.9em}.preview-history-table .current-period{background:rgba(var(--primary-color-rgb),.08)}.current-badge{background:var(--primary-color);color:#fff;padding:1px 6px;border-radius:var(--radius-xs);font-size:.75em;font-weight:600;margin-left:4px;text-transform:uppercase}.to-generate{display:inline-flex;align-items:center;gap:4px;color:var(--primary-color);font-style:italic;font-weight:500;font-size:.85em;padding:2px 0;border:none;background:transparent;cursor:pointer;transition:opacity .2s ease}.to-generate:hover{opacity:.8;background:transparent;transform:none}.to-generate:before{content:"✨";font-size:.9em}.preview-unified-card{border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-color);box-shadow:var(--shadow-sm);margin-bottom:20px;overflow:hidden}.preview-card-header{display:flex;align-items:center;justify-content:space-between;background:var(--surface-secondary);padding:8px 12px;border-bottom:1px solid var(--border-color)}.header-student-name{flex:1;text-align:center;font-weight:700;color:var(--text-primary);font-size:.95em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px;-webkit-user-select:none;user-select:none}.preview-card-body{padding:16px;background:var(--bg-color)}.preview-card-body:empty{display:none}.preview-nav-pill-custom:hover{border-color:var(--primary-color);box-shadow:0 2px 8px rgba(var(--primary-color-rgb),.08)}.nav-arrow-custom{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:50%;transition:all var(--transition-fast);flex-shrink:0}.nav-arrow-custom:hover{background:var(--item-hover-bg);color:var(--icon-btn-hover);transform:scale(1.1)}.nav-arrow-custom:disabled{opacity:.2;cursor:not-allowed;transform:none}.pill-student-name{flex:1;text-align:center;font-weight:600;color:var(--text-primary);font-size:.95em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px;-webkit-user-select:none;user-select:none;cursor:pointer}.preview-nav-pill select:focus{outline:none}.preview-status{background:rgba(var(--primary-color-rgb),.1);border:1px solid var(--primary-color);color:var(--text-primary);padding:10px 16px;border-radius:var(--radius-md);margin-top:0;margin-bottom:12px;font-size:13px;text-align:center;line-height:1.5}.preview-student-selector{display:flex;gap:8px;align-items:center;padding-top:4px}.preview-student-selector label{margin:0;font-weight:500;white-space:nowrap;font-size:.9em}.preview-student-selector select{flex-grow:1;max-width:180px;min-width:120px}.preview-student-selector .btn-icon{width:36px;height:36px;font-size:.95em;flex-shrink:0}.modal-title-details{display:flex;gap:8px;align-items:center}.student-name-in-title{font-weight:600}.statut-in-title{font-size:12px;margin-left:6px}.class-analysis-source-stats h4{margin-bottom:12px;font-size:1rem}#classAnalysisStatsList{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}#classAnalysisStatsList li{background:var(--bg-secondary);padding:10px 14px;border-radius:var(--radius-xs);font-size:14px}input:disabled,textarea:disabled,select:disabled,button:disabled{opacity:.6;cursor:not-allowed}.student-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;flex-shrink:0;position:relative;cursor:pointer;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s ease;box-shadow:0 1px 3px #0000001a}.student-avatar--sm{width:32px;height:32px;font-size:12px}.student-avatar--md{width:40px;height:40px;font-size:14px}.student-avatar--lg{width:48px;height:48px;font-size:16px}.student-avatar__initials{color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.5px;-webkit-user-select:none;user-select:none;text-shadow:0 1px 2px rgba(0,0,0,.15)}.student-avatar__img{width:100%;height:100%;object-fit:cover}.student-avatar--editable:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;opacity:0;transition:opacity .2s ease;border-radius:50%}.student-avatar--editable:hover:after{opacity:1}.student-avatar--editable:before{content:"";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;color:#fff;font-size:14px;z-index:1;opacity:0;transition:opacity .2s ease}.student-avatar--editable.student-avatar--lg:before{font-size:18px}.student-avatar--editable:hover:before{opacity:1}.student-avatar--editable-pending{cursor:help;position:relative}.student-avatar--editable-pending:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px dashed var(--border-color);border-radius:50%;opacity:0;transition:opacity .2s ease}.student-avatar--editable-pending:hover:after{opacity:.6}.student-avatar--loading{background:var(--bg-secondary);animation:avatar-pulse 1.5s ease-in-out infinite}@keyframes avatar-pulse{0%,to{opacity:.6}50%{opacity:.9}}.student-avatar__input{display:none}.student-identity-wrapper{display:flex;align-items:center;gap:10px;overflow:visible;transition:flex-direction .4s cubic-bezier(.32,.72,0,1),align-items .4s cubic-bezier(.32,.72,0,1),gap .4s cubic-bezier(.32,.72,0,1)}.student-identity-wrapper .student-avatar{transition:width .5s cubic-bezier(.34,1.56,.64,1),height .5s cubic-bezier(.34,1.56,.64,1),font-size .5s cubic-bezier(.34,1.56,.64,1),transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s ease}.student-list-table tbody tr:hover .student-avatar,.student-list-table tbody tr.focus-active .student-avatar,.student-list-table tbody tr .student-avatar.is-selected{transform:scale(1.18);z-index:10}.appreciation-full-view .student-identity-wrapper{flex-direction:row;align-items:center;text-align:left;gap:16px;padding-left:8px;animation:identity-expand-reveal .5s cubic-bezier(.34,1.56,.64,1) forwards}.appreciation-full-view .student-identity-wrapper .student-avatar{width:56px;height:56px;font-size:20px;box-shadow:0 4px 12px #0000001f;animation:avatar-expand-fade .4s ease-out forwards;will-change:transform,width,height}.appreciation-full-view .student-identity-wrapper .student-nom-prenom{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;line-height:1.2;font-size:15px;font-weight:700;color:var(--text-primary)}.appreciation-full-view .student-identity-wrapper .student-nom-prenom .student-prenom{font-size:14px;font-weight:500;color:var(--text-secondary);margin-top:2px}.appreciation-full-view tbody tr:hover .student-avatar,.appreciation-full-view tbody tr.focus-active .student-avatar,.appreciation-full-view tbody tr .student-avatar.is-selected{transform:scale(1.1)!important;z-index:10;transition:transform .3s cubic-bezier(.34,1.56,.64,1)!important}@keyframes identity-expand-reveal{0%{opacity:.6;transform:translate(-10px);filter:blur(2px)}to{opacity:1;transform:translate(0);filter:blur(0)}}@keyframes avatar-expand-fade{0%{opacity:.5}to{opacity:1}}.student-identity-wrapper .student-nom-prenom{flex:1;min-width:0;transition:all .3s cubic-bezier(.34,1.56,.64,1)}.student-identity-wrapper .student-prenom{transition:all .3s cubic-bezier(.34,1.56,.64,1)}.focus-panel-avatar-container{position:relative;display:inline-flex;align-items:center;justify-content:center}.focus-panel-avatar-container .student-avatar{box-shadow:0 2px 12px #0000001f}.avatar-remove-btn{position:absolute;top:-4px;right:-4px;width:18px;height:18px;border-radius:50%;background:var(--error-color);color:#fff;border:2px solid var(--bg-color);display:flex;align-items:center;justify-content:center;font-size:10px;cursor:pointer;opacity:0;transform:scale(.8);transition:opacity .2s ease,transform .2s ease}.focus-panel-avatar-container:hover .avatar-remove-btn{opacity:1;transform:scale(1)}[data-theme=dark] .student-avatar{box-shadow:0 1px 4px #0000004d}.trombi-wizard-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:none;align-items:center;justify-content:center}.trombi-wizard-modal.visible{display:flex}.trombi-wizard-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);transition:background .4s cubic-bezier(.32,.72,0,1),backdrop-filter .4s cubic-bezier(.32,.72,0,1)}.trombi-wizard-modal.visible .trombi-wizard-backdrop{background:#00000080;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.trombi-wizard-content{position:relative;width:92%;max-width:1250px;height:90vh;max-height:95vh;background:var(--modal-bg);border-radius:var(--modal-radius);box-shadow:var(--modal-shadow);border:var(--modal-border);display:flex;flex-direction:column;overflow:hidden;z-index:1;opacity:0;transform:scale(.92) translateY(20px);filter:blur(4px);transition:opacity .5s cubic-bezier(.32,.72,0,1),transform .5s cubic-bezier(.32,.72,0,1),filter .4s cubic-bezier(.32,.72,0,1);will-change:transform,opacity,filter}.trombi-wizard-modal.visible .trombi-wizard-content{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}.trombi-wizard-modal.visible.closing .trombi-wizard-content{opacity:0!important;transform:scale(.95) translateY(8px)!important;filter:blur(2px)!important;transition:opacity .25s cubic-bezier(.32,.72,0,1),transform .25s cubic-bezier(.32,.72,0,1),filter .2s cubic-bezier(.32,.72,0,1)!important}.trombi-wizard-modal.closing .trombi-wizard-backdrop{background:#0000!important;backdrop-filter:blur(0px)!important;-webkit-backdrop-filter:blur(0px)!important;transition:background .25s ease-out,backdrop-filter .25s ease-out!important}.trombi-wizard-header{display:flex;align-items:center;justify-content:space-between;padding:var(--modal-header-padding);border-bottom:var(--modal-header-border);background:var(--modal-bg);min-height:var(--modal-header-height);border-radius:var(--modal-radius) var(--modal-radius) 0 0;flex-shrink:0}.trombi-header-title{display:flex;align-items:center}.trombi-title-pill{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;background:rgba(var(--primary-color-rgb),.1);border:1px solid rgba(var(--primary-color-rgb),.2);border-radius:var(--radius-pill);color:var(--primary-color);transition:all var(--transition-base)}.trombi-title-pill:hover{background:rgba(var(--primary-color-rgb),.15);border-color:rgba(var(--primary-color-rgb),.3)}.trombi-title-pill i,.trombi-title-pill iconify-icon{font-size:1.5rem}#trombiClassBadge{font-size:1rem;font-weight:700;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trombi-wizard-body{flex:1;overflow:hidden;padding:0;display:flex;flex-direction:column;min-height:0}.trombi-step-content{display:flex;flex-direction:column;flex:1;min-height:0}.trombi-step-padded{padding:var(--modal-padding)}.trombi-drop-zone{flex:1 1 auto;min-height:0;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px dashed rgba(var(--primary-color-rgb),.25);border-radius:var(--radius-lg);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;box-sizing:border-box}.trombi-drop-zone:hover,.trombi-drop-zone.dragover{border-color:var(--primary-color);background:rgba(var(--primary-color-rgb),.02)}.trombi-drop-zone .drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;z-index:1}.trombi-drop-zone .drop-zone-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:rgba(var(--primary-color-rgb),.1);border-radius:var(--radius-lg);color:var(--primary-color);font-size:1.5rem;transition:transform .3s ease,background .3s ease}.trombi-drop-zone:hover .drop-zone-icon{background:rgba(var(--primary-color-rgb),.15)}.trombi-drop-zone i{font-size:1.5rem;color:var(--primary-color)}.trombi-drop-zone .drop-zone-text{display:flex;flex-direction:column;gap:4px}.trombi-drop-zone .drop-zone-title{font-size:1rem;font-weight:600;color:var(--text-primary)}.trombi-drop-zone .drop-zone-hint{font-size:.85rem;color:var(--text-tertiary)}.trombi-drop-zone .drop-zone-hint u{color:var(--primary-color);text-decoration:none;border-bottom:1px dashed var(--primary-color)}.trombi-floating-sample-btn{position:absolute;bottom:16px;left:16px;z-index:10;margin:0;background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-pill);padding:6px 12px;font-size:.8rem;color:var(--text-secondary);transition:all var(--transition-fast)}.trombi-floating-sample-btn:hover{background:var(--item-hover-bg-elevated);transform:scale(1.08);box-shadow:var(--shadow-md)}@keyframes trombiImageReveal{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.drop-zone-preview{display:none;position:relative;width:100%;height:100%;align-items:center;justify-content:center;animation:trombiImageReveal .4s cubic-bezier(.32,.72,0,1) forwards}.drop-zone-image{max-width:100%;max-height:100%;object-fit:contain}.drop-zone-remove-btn{position:absolute;top:12px;right:12px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffffa6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(0,0,0,.08);border-radius:50%;color:var(--text-secondary);font-size:1rem;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .15s ease;z-index:10;box-shadow:0 2px 8px #00000014}[data-theme=dark] .drop-zone-remove-btn{background:#1e1e1e99;border-color:#ffffff1a}.drop-zone-remove-btn:hover{background:rgba(var(--danger-color-rgb, 239, 68, 68),.12);color:var(--danger-color, #ef4444);border-color:rgba(var(--danger-color-rgb, 239, 68, 68),.3);transform:scale(1.08)}.trombi-drop-zone.has-image{border-style:solid;border-color:var(--primary-color);background:var(--bg-secondary);padding:0}.trombi-drop-zone.has-image:hover{transform:none;box-shadow:0 4px 16px rgba(var(--primary-color-rgb),.2)}.trombi-image-container{position:relative;border-radius:var(--radius-md);background:var(--bg-secondary);overflow:hidden}.trombi-image-container .trombi-image{width:100%;height:auto;max-height:350px;object-fit:contain;display:block}.trombi-image-container .trombi-image-wrapper{position:relative;display:inline-block;min-width:100%}.trombi-image{width:100%;height:auto;display:block}.trombi-image-overlay,.trombi-zones-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:auto;cursor:crosshair}.trombi-zone{position:absolute;transform:translate(-50%,-50%);border-radius:50%;border:2px solid rgba(var(--primary-color-rgb),.7);background:rgba(var(--primary-color-rgb),.1);cursor:grab;transition:border-color .2s ease,border-width .15s ease,box-shadow .2s ease;box-sizing:border-box;display:flex;align-items:center;justify-content:center}.trombi-zone:hover{border-color:var(--primary-color);border-width:3px;box-shadow:0 4px 16px rgba(var(--primary-color-rgb),.3)}.trombi-zone.dragging{cursor:grabbing;border-color:var(--primary-color);border-width:3px;box-shadow:0 4px 20px rgba(var(--primary-color-rgb),.4),0 8px 24px #00000026;z-index:100}.trombi-zone.resizing{border-color:var(--warning-color);border-width:3px;box-shadow:0 4px 20px rgba(var(--warning-rgb, 243, 156, 18),.35)}.trombi-zone.focused{border-color:var(--primary-color);border-width:3px;box-shadow:0 4px 20px rgba(var(--primary-color-rgb),.4),0 8px 32px #0000001f;z-index:90}.trombi-zone .zone-label{background:var(--primary-color);color:#fff;min-width:28px;height:28px;padding:0 8px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;box-shadow:0 2px 8px #0003;pointer-events:none;white-space:nowrap;max-width:80%;overflow:hidden;text-overflow:ellipsis}.trombi-zone .zone-delete{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;border:none;background:var(--error-color);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:10px;opacity:0;transform:scale(.8);transition:all .2s cubic-bezier(.4,0,.2,1);z-index:10}.trombi-zone:hover .zone-delete{opacity:1;transform:scale(1)}.trombi-zone .zone-delete:hover{transform:scale(1.1)}.trombi-zone .zone-resize-handle{position:absolute;bottom:-4px;right:-4px;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--primary-color);cursor:nwse-resize;opacity:0;transition:opacity .2s,transform .2s;z-index:10}.trombi-zone:hover .zone-resize-handle{opacity:1}.trombi-zone .zone-resize-handle:hover{transform:scale(1.2);background:var(--primary-color)}.trombi-split-view{display:flex;flex-direction:row;align-items:stretch;gap:16px;height:100%;min-height:0;overflow:hidden}.trombi-image-panel{flex:1;min-width:0;background:var(--bg-secondary-dark);border-radius:var(--radius-md);padding:0;overflow:hidden;display:grid;grid-template-rows:minmax(0,1fr) auto;position:relative;border:1px solid var(--border-color);height:100%;min-height:0}.trombi-assignment-panel{width:320px;flex-shrink:0;display:flex;flex-direction:column;height:100%;min-height:0}.trombi-viewport{grid-row:1;min-height:0;width:100%;height:100%;position:relative;overflow:hidden;display:flex;justify-content:center;align-items:center;padding:0;background:var(--bg-secondary)}.trombi-content-wrapper{position:relative;max-width:100%;max-height:100%;display:block}.trombi-content-wrapper .trombi-image{display:block;width:100%;height:100%;object-fit:fill}.grid-control-panel{background:var(--surface-color);padding:8px 12px;margin:0;border:1px solid var(--border-color);border-top:1px solid var(--border-color);border-radius:0 0 calc(var(--radius-md) - 1px) calc(var(--radius-md) - 1px);display:flex;flex-direction:column;gap:4px;grid-row:2;z-index:20;position:relative;box-shadow:0 1px 2px #0000000d}.control-row-group{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}.control-row{display:flex;align-items:center;gap:8px;min-height:28px}.grid-reset-btn{margin-left:auto;padding:4px 10px;border:1px solid var(--border-color);border-radius:var(--radius-sm, 6px);background:var(--bg-secondary);color:var(--text-secondary);font-size:11px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:4px;white-space:nowrap;transition:background .2s ease,color .2s ease,border-color .2s ease}.grid-reset-btn:hover{background:var(--item-hover-bg);color:var(--icon-btn-hover);border-color:rgba(var(--primary-color-rgb),.3)}.control-row.full-width{grid-column:1 / -1}.control-row label{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:500;color:var(--text-secondary);min-width:60px;white-space:nowrap}.control-row label i{color:var(--text-tertiary);width:12px;text-align:center;font-size:10px}.slider-group{flex:1;display:flex;align-items:center;gap:6px}.slider-track{flex:1;position:relative;overflow:hidden;border-radius:4px;background:var(--bg-secondary);height:20px;display:flex;align-items:center}.control-slider{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer;margin:0 -7px;width:calc(100% + 14px)}.control-slider::-webkit-slider-runnable-track{height:4px;background:linear-gradient(to right,var(--primary-color) 0%,var(--border-color) 0%);border-radius:2px}.control-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:#fff;cursor:grab;border:none;box-shadow:0 1px 4px #0006;margin-top:-5px;transition:transform .15s ease,box-shadow .15s ease}.control-slider::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 2px 6px #00000073}.control-slider::-moz-range-track{height:4px;background:var(--bg-secondary);border-radius:2px}.control-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;cursor:grab;border:none;box-shadow:0 1px 4px #0006;transition:transform .15s ease,box-shadow .15s ease}.control-slider::-moz-range-thumb:hover{transform:scale(1.15);box-shadow:0 2px 6px #00000073}.slider-value{min-width:28px;text-align:center;font-size:11px;font-weight:600;color:var(--primary-color);background:var(--surface-color);padding:3px 5px;border-radius:6px;border:1px solid var(--border-color)}.sync-toggle-label{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:11px;font-weight:500;color:var(--text-secondary);-webkit-user-select:none;user-select:none;margin-top:2px}.toggle-text{display:flex;align-items:center;gap:5px;min-width:65px}.toggle-wrapper{display:flex;align-items:center;position:relative;margin-left:auto}.sync-toggle-checkbox{display:none}.sync-toggle-switch{position:relative;width:36px;height:20px;background:var(--bg-secondary);border-radius:10px;transition:background .3s cubic-bezier(.32,.72,0,1)}.sync-toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0000004d;transition:transform .3s cubic-bezier(.32,.72,0,1)}.sync-toggle-checkbox:checked+.sync-toggle-switch{background:var(--primary-color)}.sync-toggle-checkbox:checked+.sync-toggle-switch:after{transform:translate(16px)}.sync-toggle-label i{color:var(--text-tertiary);font-size:10px}.btn-auto-order{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--primary-color);color:#fff;border:none;border-radius:6px;font-size:11px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.btn-auto-order:hover{opacity:.9;transform:translateY(-1px)}.trombi-assignment-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-shrink:0}.trombi-assignment-panel h4{margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.trombi-assignment-grid{display:flex;flex-direction:column;gap:4px;flex:1;min-height:0;overflow-y:auto;padding:4px}.assignment-header{display:grid;grid-template-columns:40px 1fr 42px;gap:8px;padding:4px 8px;font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.assignment-row{display:grid;grid-template-columns:40px 40px 1fr;gap:8px;align-items:center;padding:6px 8px;background:var(--bg-secondary);border-radius:6px;transition:background .2s ease}.assignment-row:hover{background:var(--item-hover-bg-elevated)}.assignment-row.focused{background:rgba(var(--primary-color-rgb),.15)!important;border:1px solid var(--primary-color);box-shadow:0 0 0 1px var(--primary-color),var(--shadow-sm);transform:scale(1.02);z-index:5}.assignment-preview{display:flex;align-items:center;justify-content:center}.live-preview-canvas{width:40px;height:40px;border-radius:50%;border:2px solid var(--primary-color);image-rendering:-webkit-optimize-contrast}.assignment-id{font-size:13px;font-weight:700;color:var(--primary-color);text-align:center;background:rgba(var(--primary-color-rgb),.1);border-radius:4px;padding:2px 0}.assignment-avatar-placeholder{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color) 0%,var(--purple-color) 100%);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff;text-transform:uppercase}.assignment-student-select{display:flex;align-items:center;overflow:hidden;width:100%}.assignment-select{width:100%;padding:6px 8px;border:1px solid var(--border-color);border-radius:var(--radius-md);background-color:var(--surface-color);background-image:none!important;color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;text-align:left;text-align-last:left;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assignment-select:hover:not(:focus){border-color:rgba(var(--primary-color-rgb),.4)}.assignment-select:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.1);outline:none}.trombi-preview-grid{display:flex;flex-direction:column;gap:16px;flex:1;min-height:0}.preview-summary{display:flex;align-items:center;gap:12px;padding:16px;background:#00b8941a;border-radius:var(--radius-md);color:var(--success-color);font-size:15px}.preview-summary i{font-size:24px}.preview-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;align-content:start;flex:1;min-height:0;overflow-y:auto;padding:8px}.preview-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px;background:var(--bg-secondary);border-radius:10px;font-size:11px;text-align:center}.preview-item .preview-canvas{width:75px;height:75px;border-radius:50%;border:2px solid var(--primary-color);object-fit:cover}.preview-item span{font-weight:500;color:var(--text-primary);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trombi-step-footer{display:flex;justify-content:space-between;align-items:center;padding:var(--modal-footer-padding);background:var(--modal-bg);border-top:var(--modal-footer-border);border-radius:0 0 var(--modal-radius) var(--modal-radius);min-height:var(--modal-footer-height);flex-shrink:0;gap:16px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:var(--text-tertiary);text-align:center;gap:12px}.empty-state i{font-size:48px;opacity:.5}.trombi-controls{display:flex;justify-content:flex-start;gap:10px;margin-top:16px;padding:12px 16px;background:var(--bg-secondary);border-radius:var(--radius-md);align-items:center;flex-wrap:wrap}.quick-grid-group{display:flex;align-items:center;gap:8px}.control-label{font-size:13px;font-weight:500;color:var(--text-secondary);margin-right:4px}.btn-grid{padding:6px 12px;border-radius:6px;border:1px solid var(--border-color);background:var(--surface-color);color:var(--text-primary);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.btn-grid:hover{background:var(--primary-color);border-color:var(--primary-color);color:#fff;transform:translateY(-1px)}.btn-grid:active{transform:translateY(0)}.controls-separator{width:1px;height:24px;background:var(--border-color);margin:0 8px}.trombi-controls .btn-secondary{padding:8px 12px;border-radius:8px;border:1px solid var(--border-color);background:var(--surface-color);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s cubic-bezier(.4,0,.2,1)}.trombi-controls .btn-secondary:hover{background:var(--item-hover-bg-elevated);border-color:var(--primary-color);color:var(--primary-color)}.trombi-controls .btn-danger-subtle:hover{border-color:var(--error-color);color:var(--error-color)}.zone-counter{font-size:13px;font-weight:600;color:var(--text-secondary);padding:6px 12px;background:var(--bg-color);border-radius:20px;margin-left:auto}.trombi-hint{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 14px;background:rgba(var(--primary-color-rgb),.08);border-radius:8px;font-size:12px;color:var(--text-secondary)}.trombi-hint i{color:var(--primary-color);font-size:14px}.trombi-flip-ghost{position:fixed;z-index:9999;pointer-events:none;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 20px 60px #0000004d;will-change:transform,width,height,top,left}.trombi-flip-ghost img{width:100%;height:100%;object-fit:contain;background:var(--bg-secondary)}.trombi-step-content.animating-out{opacity:0;transform:translate(-30px) scale(.98);transition:opacity .3s cubic-bezier(.32,.72,0,1),transform .3s cubic-bezier(.32,.72,0,1)}.trombi-step-content.animating-in{opacity:0;transform:translate(30px) scale(.98)}.trombi-step-content.animating-in.active{opacity:1;transform:translate(0) scale(1);transition:opacity .45s cubic-bezier(.32,.72,0,1),transform .45s cubic-bezier(.32,.72,0,1)}.trombi-image-panel.morph-target{opacity:0;transform:scale(1.05);transition:opacity .5s cubic-bezier(.32,.72,0,1) .2s,transform .5s cubic-bezier(.32,.72,0,1) .2s}.trombi-image-panel.morph-target.revealed{opacity:1;transform:scale(1)}.trombi-assignment-panel.slide-in{opacity:0;transform:translate(40px);transition:opacity .5s cubic-bezier(.32,.72,0,1) .25s,transform .5s cubic-bezier(.32,.72,0,1) .25s}.trombi-assignment-panel.slide-in.revealed{opacity:1;transform:translate(0)}.trombi-preview-item.stagger-in{opacity:0;transform:translateY(20px) scale(.9)}.trombi-preview-item.stagger-in.revealed{opacity:1;transform:translateY(0) scale(1);transition:opacity .4s cubic-bezier(.32,.72,0,1),transform .4s cubic-bezier(.32,.72,0,1)}.trombi-step-footer.fade-transition{transition:opacity .25s ease}@media (max-width: 768px){.trombi-wizard-content{width:95%;max-height:90vh}.trombi-split-view{grid-template-columns:1fr}.trombi-wizard-stepper .step-label{display:none}.trombi-controls{gap:6px}.quick-grid-group{width:100%;flex-wrap:wrap}.trombi-controls .btn-secondary{padding:6px 10px;font-size:12px}.btn-grid{padding:5px 8px;font-size:11px}}#outputList{display:block;width:100%}.appreciation-result.sort-animating{animation:sortSlideIn .4s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes sortSlideIn{0%{opacity:0;transform:translateY(20px) scale(.95);filter:blur(4px)}60%{filter:blur(0px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0px)}}#outputList.sorting{pointer-events:none}#sortSelect{padding:8px 36px 8px 12px;font-size:13px}#sortSelect:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.1)}.output-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:0;gap:12px}.output-toolbar{display:none!important;gap:12px;align-items:center;flex-grow:1;justify-content:space-between}.toolbar-actions{display:flex;gap:10px;align-items:center;flex-shrink:0}.search-container{position:relative;min-width:180px;max-width:280px;flex-grow:0;flex-shrink:0}.search-input,.output-toolbar .custom-dropdown-trigger,.output-toolbar .btn-icon{height:40px!important;border-radius:var(--radius-lg)!important;font-size:14px;background-color:var(--surface-color);border:1px solid var(--card-glass-border);color:var(--text-secondary);transition:all var(--transition-fast);box-shadow:0 2px 12px #00000008,0 1px 2px #00000005}.btn-generate-all,.toolbar-actions .btn-ai{height:40px!important;border-radius:var(--radius-lg)!important;font-size:14px}.search-input{background-color:var(--surface-color)}.output-toolbar .btn-icon{background-color:#ffffff0d;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.output-toolbar select{padding-left:14px;padding-right:2.5rem;width:auto;color:var(--text-primary);font-weight:500}.search-input{padding:0 32px 0 38px;color:var(--text-primary);width:100%}.search-input::placeholder{color:var(--text-secondary);opacity:1}.output-toolbar .custom-dropdown-trigger:hover:not(.open),.output-toolbar .btn-icon:hover:not(:disabled){border-color:transparent;background-image:linear-gradient(var(--surface-color),var(--surface-color)),linear-gradient(90deg,rgba(var(--primary-color-rgb),.5),rgba(var(--primary-color-rgb),.5));background-origin:padding-box,border-box;background-clip:padding-box,border-box;color:var(--text-primary)}.search-input:hover:not(:focus){background-color:var(--bg-secondary);border-color:rgba(var(--primary-color-rgb),.25);box-shadow:0 2px 8px #0000000f,inset 0 0 0 1px rgba(var(--primary-color-rgb),.05)}.search-input:focus,.output-toolbar .custom-dropdown-trigger.open,.output-toolbar .btn-icon:focus{border-color:transparent;background-image:linear-gradient(var(--surface-color),var(--surface-color)),conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.5) 0%,rgba(var(--primary-color-rgb),.5) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.5) 32%,rgba(var(--primary-color-rgb),.5) 50%,rgba(var(--primary-color-rgb),.5) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.5) 82%,rgba(var(--primary-color-rgb),.5) 100%);background-origin:padding-box,border-box;background-clip:padding-box,border-box;animation:rotate-gradient 10s linear infinite;color:var(--text-primary);outline:none;box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.08),0 2px 8px rgba(var(--primary-color-rgb),.1)}.search-icon{position:absolute;left:12px;top:50%;transform:translatey(-50%);color:var(--text-secondary);pointer-events:none;font-size:14px;transition:color var(--transition-fast);opacity:1}.search-input:focus~.search-icon,.search-input:hover~.search-icon{color:var(--primary-color)}.search-clear-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:transparent;width:20px;height:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--bg-color);font-size:10px;transition:all var(--transition-fast);opacity:0;visibility:hidden}.search-container.has-value .search-clear-btn{opacity:1;visibility:visible}.search-clear-btn:hover{background:var(--text-secondary);color:#fff}#sortSelect{width:140px!important;min-width:140px!important}.output-toolbar .btn-icon{width:40px;height:40px;font-size:1.1em;display:flex;align-items:center;justify-content:center}.output-header .detail-chip{height:32px;display:inline-flex;align-items:center;justify-content:center;background:rgba(var(--primary-color-rgb),.08);border:1px solid rgba(var(--primary-color-rgb),.2);font-size:13px;font-weight:600;color:var(--primary-color);padding:0 12px;border-radius:var(--radius-pill);vertical-align:middle;margin-left:12px;box-shadow:var(--shadow-sm);transition:all var(--transition-base)}#avgWordsChip{right:12px;font-size:13px;font-weight:400;font-variant-numeric:tabular-nums;text-transform:none;padding:6px 12px;height:34px;margin-left:0;box-shadow:none;opacity:.8}#avgWordsChip:not(.clickable-chip):hover{color:var(--text-secondary);opacity:1;background:transparent;transform:translateY(-50%)}#avgWordsChip.clickable-chip{cursor:pointer}.output-header .detail-chip:hover{background:rgba(var(--primary-color-rgb),.15);border-color:rgba(var(--primary-color-rgb),.4);box-shadow:var(--shadow-md);transform:translateY(-1px)}.actions-dropdown{position:relative}.actions-dropdown-content{opacity:0;visibility:hidden;transform:translatey(4px);position:absolute;background-color:var(--surface-color);min-width:220px;box-shadow:var(--shadow-md);z-index:11;border-radius:var(--radius-md);border:1px solid var(--border-color);padding:4px;right:0;top:calc(100% + 8px);display:flex;flex-direction:column;gap:2px;transition:opacity var(--transition-fast),transform var(--transition-fast),visibility var(--transition-fast)}.actions-dropdown.show .actions-dropdown-content{visibility:visible;opacity:1;transform:translatey(0)}.actions-dropdown-content{max-height:400px;overflow-y:auto}.actions-group .btn-dropdown-item{padding:4px 12px}.actions-dropdown-content .dropdown-header,.suggestion-list-container .dropdown-header{margin:0;padding:6px 12px;font-size:.75em;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-top:1px solid var(--border-color);display:flex;align-items:center;gap:8px}.actions-dropdown-content .dropdown-header:first-of-type,.suggestion-list-container .dropdown-header:first-of-type{border-top:none;padding-top:4px}.actions-dropdown-content .dropdown-header i{font-size:.85em;opacity:.7}.dropdown-divider.danger-divider{border-color:#ef44444d;margin-top:4px}.actions-group{position:relative}.actions-group.show .actions-dropdown-content{opacity:1;visibility:visible;transform:translateY(0)}.actions-group .actions-dropdown-content{opacity:0;visibility:hidden;transform:translateY(-4px);position:absolute;background-color:var(--surface-color);min-width:100%;box-shadow:var(--shadow-md);z-index:12;border-radius:var(--radius-md);border:1px solid var(--border-color);padding:4px;top:calc(100% + 4px);transition:opacity var(--transition-fast),transform var(--transition-fast),visibility var(--transition-fast)}.btn-generate-all{display:flex;align-items:center;gap:8px;padding:0 16px;font-weight:600;font-size:13px;white-space:nowrap}.btn-generate-all .pending-badge{background:#ffffff40;padding:2px 8px;border-radius:var(--radius-sm);font-size:12px;font-weight:700;min-width:20px;text-align:center}@keyframes subtle-pulse{0%,to{box-shadow:0 0 rgba(var(--primary-color-rgb),.4)}50%{box-shadow:0 0 0 6px rgba(var(--primary-color-rgb),0)}}.btn-generate-all:disabled,.toolbar-actions .btn:disabled{opacity:.55;cursor:not-allowed;animation:none;box-shadow:none}.btn-generate-all:disabled .pending-badge{display:none}@media (max-width: 768px){.btn-generate-all span:not(.pending-badge){display:none}.btn-generate-all{padding:0 12px}}.btn-update{display:inline-flex;align-items:center;gap:8px;padding:0 16px;height:40px!important;border-radius:var(--radius-lg)!important;font-weight:600;font-size:13px;white-space:nowrap;background:var(--gradient-warning);color:#fff!important;border:none;transition:all var(--transition-fast);box-shadow:0 1px 2px #0000001a}.btn-update:hover:not(:disabled){background:linear-gradient(135deg,var(--warning-hover) 0%,#b45309 100%);box-shadow:0 4px 12px #d9770640}.btn-update:active:not(:disabled){transform:scale(.98);box-shadow:inset 0 1px 2px #0000001a}.btn-update .pending-badge{background:#ffffff4d;padding:2px 8px;border-radius:var(--radius-sm);font-size:12px;font-weight:700;min-width:20px;text-align:center}@media (max-width: 768px){.btn-update span:not(.pending-badge){display:none}.btn-update{padding:0 12px}}.name-header-with-search{position:relative;min-width:180px}.name-header-with-search .header-content-wrapper{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;transition:opacity .2s ease}.inline-search-trigger-btn{position:absolute;left:8px;right:auto;top:50%;transform:translateY(-50%);width:24px;height:24px;margin:0}.inline-search-trigger-btn i{font-size:.75rem}.name-header-with-search:hover .inline-search-trigger-btn{opacity:.7;color:var(--primary-color)}.inline-search-container{position:absolute;top:50%;left:4px;right:4px;transform:translateY(-50%);display:flex;align-items:center;padding:0 var(--space-3);background:var(--surface-color);border-radius:var(--radius-md);border:2px solid var(--primary-color);box-shadow:0 4px 16px #0003;z-index:50;height:38px;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-50%) scale(.95);transition:all .3s cubic-bezier(.32,.72,0,1)}.inline-search-container.active{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(-50%) scale(1)}.inline-search-container .search-icon{color:var(--primary-color);font-size:.875rem;flex-shrink:0;position:relative;left:auto;top:auto;transform:none;margin-right:8px;z-index:1}.inline-search-input{flex:1;border:none!important;background:transparent!important;box-shadow:none!important;outline:none!important;color:var(--text-primary);font-size:.875rem;font-weight:500;padding:10px 0;min-width:120px;transition:none!important}.inline-search-input:focus{outline:none!important;border:none!important;box-shadow:none!important;background:transparent!important;transition:none!important}.inline-search-input::placeholder{color:var(--text-tertiary);font-weight:400}.inline-search-clear{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:transparent;cursor:pointer;font-size:10px;transition:all var(--transition-fast);opacity:0;visibility:hidden;flex-shrink:0}.inline-search-container.has-value .inline-search-clear{opacity:1;visibility:visible}.inline-search-clear:hover{background:var(--text-secondary);transform:scale(1.1)}.inline-filter-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color);font-size:.75rem;font-weight:600;border-radius:var(--radius-pill);margin-left:var(--space-2);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.inline-filter-badge:hover{background:rgba(var(--primary-color-rgb),.2)}.inline-filter-badge .filter-remove{font-size:10px;opacity:.7;transition:opacity .15s ease}.inline-filter-badge:hover .filter-remove{opacity:1}.search-kbd-hint{display:none;font-size:.65rem;padding:2px 5px;background:#ffffff14;border-radius:var(--radius-sm);color:var(--text-tertiary);font-family:ui-monospace,monospace;margin-left:auto}.name-header-with-search:hover .search-kbd-hint{display:inline-block}.inline-search-input:-webkit-autofill,.inline-search-input:-webkit-autofill:hover,.inline-search-input:-webkit-autofill:focus,.inline-search-input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1000px var(--surface-color) inset!important;-webkit-text-fill-color:var(--text-primary)!important;transition:background-color 5000s ease-in-out 0s!important;caret-color:var(--text-primary)!important}.inline-search-input:-moz-autofill{background-color:var(--surface-color)!important;color:var(--text-primary)!important}[data-theme=dark] .inline-search-container{background:var(--surface-color);border-color:rgba(var(--primary-color-rgb),.4)}@media (max-width: 768px){.inline-search-container{left:8px;right:8px;padding:0 var(--space-3);height:44px}.inline-search-input{min-width:80px;font-size:.8rem}.search-kbd-hint{display:none!important}}.btn-analyze-inline{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:rgba(var(--primary-color-rgb),.1);border:1px solid rgba(var(--primary-color-rgb),.2);border-radius:var(--radius-sm);color:var(--primary-color);cursor:pointer;transition:all .25s cubic-bezier(.32,.72,0,1);margin-right:var(--space-2)}.btn-analyze-inline i{font-size:.8rem}.btn-analyze-inline:hover{background:rgba(var(--primary-color-rgb),.2);border-color:var(--primary-color);transform:scale(1.1)}.btn-analyze-inline:active{transform:scale(.95)}.custom-dropdown{position:relative;width:100%;font-family:inherit}.custom-dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12.5px 14.5px;background:var(--bg-color);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:14px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);width:100%;text-align:left}.custom-dropdown-trigger:hover:not(.disabled){border-color:transparent;background-image:linear-gradient(rgba(var(--primary-color-rgb),.03),rgba(var(--primary-color-rgb),.03)),linear-gradient(var(--bg-color),var(--bg-color)),linear-gradient(90deg,rgba(var(--primary-color-rgb),.5),rgba(var(--primary-color-rgb),.5));background-origin:padding-box,padding-box,border-box;background-clip:padding-box,padding-box,border-box}.custom-dropdown.open .custom-dropdown-trigger{background-color:transparent;border-color:transparent;background-image:linear-gradient(var(--bg-color),var(--bg-color)),conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.5) 0%,rgba(var(--primary-color-rgb),.5) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.5) 32%,rgba(var(--primary-color-rgb),.5) 50%,rgba(var(--primary-color-rgb),.5) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.5) 82%,rgba(var(--primary-color-rgb),.5) 100%);background-origin:padding-box,border-box;background-clip:padding-box,border-box;animation:rotate-gradient 10s linear infinite;box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.08),0 2px 8px rgba(var(--primary-color-rgb),.1)}.custom-dropdown-value{flex:1;display:flex;align-items:center;gap:10px;overflow:hidden}.custom-dropdown-value .value-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-dropdown-arrow{color:var(--text-secondary);font-size:12px;transition:transform var(--transition-fast)}.custom-dropdown.open .custom-dropdown-arrow{transform:rotate(180deg)}.custom-dropdown-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;background-color:rgba(var(--surface-color-rgb),.85);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:var(--z-dropdown);max-height:320px;overflow-y:auto;opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transition:all var(--transition-fast);padding:6px}[data-theme=dark] .custom-dropdown-menu{box-shadow:0 10px 40px #00000080,0 4px 12px #0006}.custom-dropdown.open .custom-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.custom-dropdown-group{padding:4px 0}.custom-dropdown-group:not(:first-child){border-top:1px solid var(--border-color);margin-top:4px;padding-top:8px}.custom-dropdown-group-label{padding:8px 12px 6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.provider-icon{font-size:18px;width:20px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-xs);background:transparent!important}.provider-openrouter{color:var(--success-color);transform:scale(1.3)}.provider-openrouter-paid{color:var(--purple-color);transform:scale(1.3)}.provider-ollama{color:var(--primary-color);transform:scale(1.3)}.provider-mistral{color:#ff7000;transform:scale(1.3)}.provider-suffix{font-size:9px;font-weight:600;padding:2px 6px;border-radius:var(--radius-xs);margin-left:auto;letter-spacing:.3px}.provider-suffix-gratuit,.provider-suffix-quota{background:rgba(var(--success-rgb),.15);color:var(--success-color)}.provider-suffix-payant,.provider-suffix-local{background:var(--purple-light);color:var(--purple-color)}[data-theme=dark] .provider-google{color:#8ab4f8}[data-theme=dark] .provider-openai,[data-theme=dark] .provider-anthropic{filter:brightness(0) invert(1)}.dropdown-divider{height:1px;margin:4px 0;overflow:hidden;background-color:var(--border-color)}.custom-dropdown-option{display:flex;align-items:center;gap:10px;padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;color:var(--text-primary);transition:all var(--transition-fast);margin-bottom:2px;background:transparent}.custom-dropdown-option:last-child{margin-bottom:0}.custom-dropdown-option:hover{background-color:rgba(var(--primary-color-rgb),.08);color:var(--primary-color)}.custom-dropdown-option.selected{background:rgba(var(--primary-color-rgb),.15);color:var(--primary-color);font-weight:600}.custom-dropdown-option.focused{background-color:rgba(var(--primary-color-rgb),.08);outline:none}.custom-dropdown-option-check{width:16px;color:var(--primary-color);opacity:0;transition:opacity var(--transition-fast)}.custom-dropdown-option.selected .custom-dropdown-option-check{opacity:1}.custom-dropdown-menu::-webkit-scrollbar{width:6px}.custom-dropdown-menu::-webkit-scrollbar-track{background:transparent}.custom-dropdown-menu::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-xs)}.custom-dropdown-menu::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.custom-dropdown-trigger.disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.custom-dropdown-option.disabled{opacity:.5;color:var(--text-tertiary);cursor:not-allowed;font-style:italic}.custom-dropdown-option.disabled:hover{background:none;color:var(--text-tertiary)}.custom-dropdown-option.disabled .custom-dropdown-option-check{display:none}.custom-dropdown-value.placeholder{color:var(--text-secondary)}.custom-dropdown[data-for=sortSelect] .custom-dropdown-trigger{padding:8px 12px;font-size:13px;gap:8px;min-width:120px;height:40px;border-radius:var(--radius-md)}.custom-dropdown[data-for=sortSelect] .custom-dropdown-menu{min-width:140px;padding:4px;background-color:var(--surface-color);border:1px solid var(--border-color);box-shadow:var(--shadow-md)}.custom-dropdown[data-for=sortSelect] .custom-dropdown-option{padding:6px 12px;font-size:13px;gap:0;border-radius:var(--radius-sm);color:var(--text-primary);transition:background-color var(--transition-fast)}.custom-dropdown[data-for=sortSelect] .custom-dropdown-option:hover{background-color:rgba(var(--primary-color-rgb),.08);color:var(--primary-color)}.custom-dropdown[data-for=sortSelect] .custom-dropdown-option-check{display:none}.custom-dropdown[data-for=sortSelect] .custom-dropdown-option.selected{background:rgba(var(--primary-color-rgb),.15);color:var(--primary-color);font-weight:600}.custom-dropdown[data-for=sortSelect] .custom-dropdown-option.selected:hover{background:rgba(var(--primary-color-rgb),.18)}.custom-dropdown[data-for=sortSelect] .custom-dropdown-option.focused{outline:none;background-color:rgba(var(--primary-color-rgb),.08)}.custom-dropdown[data-for=loadStudentSelect] .custom-dropdown-menu{max-height:280px}.custom-dropdown[data-for=loadStudentSelect] .custom-dropdown-option[data-value=""]{font-style:italic;color:var(--text-secondary)}.custom-dropdown[data-for=loadStudentSelect] .custom-dropdown-option[data-value=""]:hover{color:var(--primary-color);background-color:rgba(var(--primary-color-rgb),.08)}.custom-dropdown[data-for=previewStudentSelect] .custom-dropdown-menu{max-height:320px}.custom-dropdown[data-for=previewStudentSelect] .custom-dropdown-group-label{color:var(--primary-color)}.custom-dropdown[data-for=settingsSubjectSelect] .custom-dropdown-option-check{display:none}.custom-dropdown[data-for=settingsSubjectSelect] .custom-dropdown-option{padding:6px 12px;font-size:13px;gap:0}.custom-dropdown[data-for=settingsSubjectSelect] .custom-dropdown-option.selected{background:rgba(var(--primary-color-rgb),.15);font-weight:600}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:.7}}.skeleton{background:linear-gradient(90deg,var(--bg-secondary) 0%,var(--surface-color) 50%,var(--bg-secondary) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.loading-state-centered{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px 16px;color:var(--text-secondary);font-style:italic;min-height:100%;height:100%;box-sizing:border-box}.skeleton-text{height:14px;margin-bottom:8px;border-radius:var(--radius-xs)}.skeleton-text.short{width:40%}.skeleton-text.medium{width:70%}.skeleton-text.long{width:90%}.skeleton-circle{border-radius:50%}.skeleton-card{background:var(--surface-color);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm);animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-card-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.skeleton-card-header .skeleton-avatar{width:40px;height:40px}.skeleton-card-header .skeleton-info{flex:1}.skeleton-card-header .skeleton-name{height:18px;width:60%;margin-bottom:6px}.skeleton-card-header .skeleton-badge{height:12px;width:30%}.skeleton-card-body{margin-bottom:16px}.skeleton-card-body .skeleton-text{margin-bottom:10px}.skeleton-card-body .skeleton-text:last-child{margin-bottom:0}.skeleton-card-footer{display:flex;gap:8px;padding-top:12px;border-top:1px solid var(--border-color)}.skeleton-card-footer .skeleton-button{height:32px;width:80px;border-radius:var(--radius-sm)}.skeleton-stat-card{background:var(--surface-color);border-radius:var(--radius-lg);padding:16px 20px;box-shadow:var(--shadow-sm)}.skeleton-stat-card .skeleton-title{height:12px;width:50%;margin-bottom:12px}.skeleton-stat-card .skeleton-value{height:36px;width:40%;margin-bottom:8px}.skeleton-stat-card .skeleton-bar{height:20px;width:100%;border-radius:var(--radius-pill)}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:20px;width:100%}.skeleton-card:nth-child(1){animation-delay:0s}.skeleton-card:nth-child(2){animation-delay:.1s}.skeleton-card:nth-child(3){animation-delay:.2s}.skeleton-card:nth-child(4){animation-delay:.3s}.skeleton-card:nth-child(5){animation-delay:.4s}.skeleton-card:nth-child(6){animation-delay:.5s}.appreciation-result.is-generating{position:relative}.appreciation-result.is-generating [data-template=appreciation]{min-height:80px}.appreciation-skeleton{display:flex;flex-direction:column;gap:10px;padding:8px 0;background:transparent;border-radius:var(--radius-md);position:relative}.appreciation-skeleton .skeleton-line{height:14px;border-radius:var(--radius-xs);background:linear-gradient(90deg,var(--bg-secondary) 0%,rgba(var(--primary-color-rgb),.1) 50%,var(--bg-secondary) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}.generating-badge{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 14px;border-radius:var(--radius-pill);font-size:12px;font-weight:600;line-height:1;height:28px;box-sizing:border-box;transition:all var(--transition-base) ease;z-index:2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.generating-badge i{font-size:12px;width:12px;height:12px;display:flex;align-items:center;justify-content:center}.appreciation-skeleton.compact{padding:6px;min-height:auto;background:transparent;gap:8px;position:relative}.appreciation-skeleton.compact .generating-badge{display:inline-flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:4px 10px;font-size:11px;gap:5px;white-space:nowrap;box-shadow:0 2px 8px #0000001a;border:1px solid rgba(255,255,255,.1)}.appreciation-skeleton .skeleton-line{height:14px;border-radius:var(--radius-xs);background:linear-gradient(90deg,var(--bg-secondary) 0%,rgba(var(--primary-color-rgb),.1) 50%,var(--bg-secondary) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;margin-bottom:0;opacity:.6}.appreciation-skeleton .skeleton-line:nth-child(1){width:95%}.appreciation-skeleton .skeleton-line:nth-child(2){width:88%}.appreciation-skeleton .skeleton-line:nth-child(3){width:92%}.appreciation-skeleton .skeleton-line:nth-child(4){width:75%}.appreciation-skeleton.compact .skeleton-line{height:10px}.generating-badge.pending{background:linear-gradient(135deg,#94a3b81f,#64748b26);border:1px solid rgba(148,163,184,.25);color:var(--text-secondary)}.generating-badge.pending i{opacity:.7}.generating-badge.active{background:linear-gradient(135deg,rgba(var(--primary-color-rgb),.15),rgba(var(--primary-color-rgb),.2));border:1px solid rgba(var(--primary-color-rgb),.3);color:var(--primary-color);animation:badge-pulse 1.2s ease-in-out infinite}.generating-badge.active i{animation:spin .8s linear infinite}@keyframes badge-pulse{0%,to{box-shadow:0 0 rgba(var(--primary-color-rgb),.3)}50%{box-shadow:0 0 8px 2px rgba(var(--primary-color-rgb),.15)}}.progressive-reveal{display:inline;line-height:1.6}.reveal-word{display:inline;opacity:0;filter:blur(4px);animation:word-fade-in .4s cubic-bezier(.25,.1,.25,1) forwards}@keyframes word-fade-in{0%{opacity:0;filter:blur(4px);transform:translateY(2px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}.reveal-word.fast{animation-duration:.3s}.reveal-cursor{display:inline-block;width:2px;height:1em;background:var(--primary-color);margin-left:2px;vertical-align:middle;animation:cursor-pulse .8s cubic-bezier(.4,0,.6,1) infinite;border-radius:1px}@keyframes cursor-pulse{0%,to{opacity:1}50%{opacity:.3}}.typewriter-cursor:after{content:"▋";display:inline-block;margin-left:2px;color:var(--primary-color);animation:blink-cursor .6s step-end infinite;font-weight:400}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}@media (max-width: 768px){.skeleton-grid{grid-template-columns:1fr}}.class-selector-wrapper{position:relative;flex-shrink:0;min-width:max-content}.class-chip{display:flex;align-items:center;gap:8px;cursor:pointer;flex-shrink:0;min-width:max-content}.class-chip .student-count-badge{background:rgba(var(--primary-color-rgb),.15);color:var(--primary-color);padding:2px 8px;border-radius:var(--radius-pill);font-size:.8rem;font-weight:600;margin-left:2px}.class-chip .class-chevron{font-size:16px;color:var(--text-secondary);transition:transform var(--transition-fast);margin-left:2px}.class-chip.active .class-chevron{transform:rotate(180deg)}.class-dropdown{position:absolute;top:calc(100% + 12px);left:0;min-width:280px;max-width:340px;background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:0 10px 40px -10px #00000026,0 2px 10px -2px #0000001a;z-index:var(--z-dropdown);overflow:hidden;opacity:0;transform:translateY(-8px) scale(.98);transform-origin:top left;transition:opacity .2s cubic-bezier(.2,.8,.2,1),transform .2s cubic-bezier(.2,.8,.2,1);pointer-events:none}.class-dropdown.visible{display:block!important;opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.class-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary);font-weight:600;font-size:.85em;color:var(--text-secondary)}.class-dropdown-title-btn{display:flex;align-items:center;gap:6px;background:transparent;border:none;padding:6px 10px;margin:-6px -4px;border-radius:var(--radius-md);font-weight:600;font-size:inherit;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.class-dropdown-title-btn i{font-size:.85em;opacity:.6;transition:all var(--transition-fast)}.class-dropdown-title-btn:hover{background:rgba(var(--primary-color-rgb),.08);color:var(--primary-color)}.class-dropdown-title-btn:hover i{opacity:1;transform:rotate(90deg)}.btn-icon-small{width:28px;height:28px;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9em;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.btn-icon-small:hover{background:rgba(var(--primary-color-rgb),.08);color:var(--primary-color);border-color:rgba(var(--primary-color-rgb),.3)}.btn-icon-small.danger:hover{background:var(--error-light, rgba(239, 68, 68, .08));color:var(--error-color);border-color:var(--error-color)}.class-dropdown-header .btn-icon-small:hover{transform:rotate(90deg)}.class-dropdown-list{max-height:240px;overflow-y:auto;padding:8px}.class-dropdown-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);margin-bottom:2px;border:1px solid transparent}.class-dropdown-item:last-child{margin-bottom:0}.class-dropdown-item:hover{background:var(--item-hover-bg)}.class-dropdown-item.active{background:var(--item-active-bg);box-shadow:inset 4px 0 0 var(--primary-color);border-color:var(--border-color)}.class-dropdown-item .class-info{display:flex;flex-direction:column;gap:2px}.class-dropdown-item .class-name{font-weight:500;color:var(--text-primary);font-size:.9em}.class-dropdown-item .class-meta{font-size:.75em;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.class-dropdown-item .class-meta i{font-size:.9em}.class-dropdown-item .class-student-count{display:flex;align-items:center;justify-content:center;min-width:28px;height:24px;background:var(--bg-secondary);border-radius:var(--radius-sm);font-size:.8em;font-weight:600;color:var(--text-secondary)}[data-theme=dark] .class-dropdown-item .class-student-count{background:#ffffff14}.class-dropdown-item.active .class-student-count{background:var(--item-hover-bg-elevated);color:var(--text-primary)}.class-dropdown-item:hover .class-student-count{background:var(--surface-color);border:1px solid var(--border-color)}.class-progress-badge{display:flex;align-items:center;justify-content:center;min-width:28px;height:24px;cursor:default}.class-progress-badge .progress-loader{width:14px;height:14px;border:2px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}.progress-count{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:24px;padding:3px 8px;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;background:var(--bg-secondary);color:var(--text-secondary);transition:all var(--transition-fast)}[data-theme=dark] .progress-count{background:#ffffff14}.progress-count i{font-size:.65rem}.progress-count.is-complete{background:#22c55e26;color:#16a34a}[data-theme=dark] .progress-count.is-complete{background:#22c55e33;color:#4ade80}.progress-count.has-alert{background:#ef444426;color:#dc2626}[data-theme=dark] .progress-count.has-alert{background:#ef444433;color:#f87171}.class-progress-badge:hover .progress-count{transform:scale(1.05)}.class-dropdown-item.active .progress-count{background:var(--item-hover-bg-elevated);color:var(--text-primary)}.class-dropdown-item.active .progress-count.is-complete{background:#22c55e33;color:#16a34a}[data-theme=dark] .class-dropdown-item.active .progress-count.is-complete{color:#4ade80}.class-dropdown-item.active .progress-count.has-alert{background:#ef444433;color:#dc2626}[data-theme=dark] .class-dropdown-item.active .progress-count.has-alert{color:#f87171}.class-dropdown-item .class-actions{display:flex;align-items:center;gap:8px}.class-delete-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:18px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;opacity:0;transition:all var(--transition-fast)}.class-dropdown-item:hover .class-delete-btn{opacity:.6}.class-delete-btn:hover{opacity:1!important;color:var(--error-color);background:rgba(var(--error-rgb, 239, 68, 68),.1)}.class-dropdown-footer{padding:10px 14px;border-top:1px solid var(--border-color);background:var(--bg-secondary)}.class-dropdown-footer .btn-link{font-size:.85em;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.class-dropdown-footer .btn-link:hover{color:var(--primary-color)}.class-dropdown-empty{padding:20px;text-align:center;color:var(--text-secondary);font-size:.9em}.class-management-empty{padding:40px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}.class-management-empty iconify-icon{font-size:48px;color:var(--text-tertiary);margin-bottom:16px}.class-management-empty .empty-title{color:var(--text-secondary);font-size:1.1rem;margin:0 0 8px}.class-management-empty .empty-subtitle{color:var(--text-tertiary);font-size:.9rem;margin:0}.class-dropdown-empty i{font-size:2em;margin-bottom:10px;opacity:.5}#classManagementModal .modal-content{max-width:650px}.class-card{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--card-item-bg);border:var(--card-item-border);border-radius:var(--card-item-radius);box-shadow:var(--card-item-shadow);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.class-card:hover{border-color:var(--card-item-hover-border-color);box-shadow:var(--card-item-hover-shadow)}.class-card.active{border-color:var(--primary-color);background:var(--item-active-bg)}@media (max-width: 768px){.class-dropdown{position:fixed!important;top:56px!important;left:16px!important;right:16px!important;min-width:unset!important;max-width:none!important;width:auto!important;transform-origin:top center;z-index:9999;border-radius:var(--radius-xl);box-shadow:0 10px 50px -10px #0000004d}.class-dropdown.visible{transform:translateY(0) scale(1)!important}.class-dropdown-list{max-height:45vh;padding:6px}.class-dropdown-item{padding:10px 12px;border-radius:var(--radius-md)}}@media (max-width: 480px){.class-dropdown{position:fixed!important;top:56px!important;left:12px!important;right:12px!important;min-width:unset!important;max-width:none!important;width:auto!important;transform-origin:top center;z-index:9999;border-radius:var(--radius-xl);box-shadow:0 10px 50px -10px #00000059}.class-dropdown.visible{transform:translateY(0) scale(1)!important}.class-dropdown-list{max-height:50vh;padding:6px}.class-dropdown-item{padding:12px;border-radius:var(--radius-md)}.class-dropdown-item .class-name{font-size:.95em}.class-dropdown-header{padding:10px 14px}}.modal-mini .modal-mini-content{max-width:420px;border-radius:var(--radius-xl);padding:0;overflow:hidden}.modal-header-centered{flex-direction:column;align-items:center;text-align:center;padding:32px 24px 16px;border-bottom:none;gap:12px}.modal-icon-wrapper{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color, var(--primary-color)));display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(var(--primary-color-rgb),.3);animation:icon-pop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes icon-pop{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.modal-icon-wrapper i{font-size:1.5rem;color:#fff}.modal-header-centered .modal-title{margin:0;font-size:1.25rem;font-weight:600}.modal-body-compact{padding:8px 24px 24px}.premium-input-group{position:relative}.premium-input{width:100%;padding:16px 20px;font-size:1rem;border:2px solid transparent;border-radius:var(--radius-lg);background:var(--bg-color);transition:all var(--transition-fast);text-align:center}.premium-input:focus{outline:none;background-color:transparent;border:2px solid transparent!important;background-image:linear-gradient(var(--bg-color),var(--bg-color)),conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.5) 0%,rgba(var(--primary-color-rgb),.5) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.5) 32%,rgba(var(--primary-color-rgb),.5) 50%,rgba(var(--primary-color-rgb),.5) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.5) 82%,rgba(var(--primary-color-rgb),.5) 100%);background-origin:padding-box,border-box;background-clip:padding-box,border-box;animation:rotate-gradient 10s linear infinite;box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.08),0 2px 8px rgba(var(--primary-color-rgb),.1)}.premium-input::placeholder{color:var(--text-secondary);opacity:.6}.input-char-count{position:absolute;right:12px;bottom:-24px;font-size:.75rem;color:var(--text-secondary);opacity:.7}.modal-footer-buttons{padding:var(--modal-footer-padding);min-height:var(--modal-footer-height);border-top:var(--modal-footer-border);background:var(--modal-bg);display:flex;gap:10px;justify-content:center;align-items:center;flex-shrink:0}@keyframes slideInConfirm{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes slideOutRow{to{opacity:0;transform:translate(20px);height:0;padding:0;margin:0;overflow:hidden}}.delete-confirm-inline{animation:slideInConfirm .2s ease-out}#classManagementModal .add-class-modal-btn{border:1px solid var(--border-color);color:var(--text-secondary)}#classManagementModal .add-class-modal-btn iconify-icon{color:var(--primary-color)}#classManagementModal .add-class-modal-btn:hover{background:rgba(var(--primary-color-rgb),.06);border-color:rgba(var(--primary-color-rgb),.3);color:var(--primary-color)}.class-management-list{display:flex;flex-direction:column;gap:8px;padding-bottom:8px;position:relative}.class-management-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:14px 18px;background:var(--card-item-bg);border:var(--card-item-border);border-radius:var(--card-item-radius);box-shadow:var(--card-item-shadow);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);cursor:pointer;position:relative;overflow:hidden}.class-management-item:hover{border-color:var(--card-item-hover-border-color);box-shadow:var(--card-item-hover-shadow)}.class-management-item.active-switch{border-color:rgba(var(--primary-color-rgb),.4);background:rgba(var(--primary-color-rgb),.05)}[data-theme=dark] .class-management-item.active-switch{background:rgba(var(--primary-color-rgb),.1)}.class-drag-handle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--text-tertiary);cursor:grab;border-radius:var(--radius-md);transition:all .2s ease;opacity:.5;font-size:1.1rem}.class-management-item:hover .class-drag-handle{opacity:1}.class-drag-handle:hover{color:var(--text-secondary);background:#ffffff1a}.class-management-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.class-info-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:2px}.class-management-name{font-size:1.1rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em;line-height:1.2;margin:0}.class-stat-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--bg-secondary);border-radius:var(--radius-pill);font-size:.8rem;font-weight:600;border:1px solid transparent;transition:all .2s ease}.class-stat-badge.good{background:#22c55e1a;color:#16a34a;border-color:#22c55e33}[data-theme=dark] .class-stat-badge.good{background:#22c55e26;color:#4ade80;border-color:#22c55e40}.class-stat-badge.average{background:#eab3081a;color:#ca8a04;border-color:#eab30833}[data-theme=dark] .class-stat-badge.average{background:#eab30826;color:#facc15;border-color:#eab3084d}.class-stat-badge.risk{background:#ef44441a;color:#dc2626;border-color:#ef444433}[data-theme=dark] .class-stat-badge.risk{background:#ef444426;color:#f87171;border-color:#ef44444d}.stat-value{font-weight:700}.stat-suffix{opacity:.6;font-size:.85em;font-weight:500}.trend-indicator{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:4px;font-size:1em;line-height:1}.trend-indicator.positive{color:var(--success-color);transform:translateY(-1px)}.trend-indicator.negative{color:var(--error-color);transform:translateY(1px)}.trend-indicator.neutral{color:var(--text-tertiary);opacity:.5;font-size:.9em}.class-no-data{font-size:.75em;color:var(--text-tertiary);background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-style:italic}.class-stat-badge.no-data{opacity:.5;background:var(--bg-secondary)}.class-stat-badge.no-data .stat-value{font-weight:500;font-size:.8em}.class-management-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.meta-item{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;color:var(--text-secondary);font-weight:500;padding:3px 6px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.meta-item iconify-icon{font-size:1.1em;opacity:.7}.meta-separator{display:none}.class-management-meta .status-complete{color:#16a34a}[data-theme=dark] .class-management-meta .status-complete{color:#4ade80}.class-management-meta .status-error{color:#dc2626}[data-theme=dark] .class-management-meta .status-error{color:#f87171}.class-management-meta .status-partial{color:var(--primary-color)}.class-management-meta .status-pending{color:var(--text-tertiary)}.class-management-actions{display:flex;align-items:center;gap:4px;margin-left:12px;opacity:.6;transition:opacity .2s ease}.class-management-item:hover .class-management-actions{opacity:1}.manage-rename-btn,.manage-duplicate-btn,.manage-delete-btn{width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);font-size:.95em}.manage-rename-btn:hover{background:rgba(var(--primary-color-rgb),.15);color:var(--primary-color)}.manage-duplicate-btn:hover{background:#06b6d426;color:#0891b2}[data-theme=dark] .manage-duplicate-btn:hover{background:#22d3ee33;color:#22d3ee}.manage-delete-btn:hover{background:#ef444426;color:#dc2626}[data-theme=dark] .manage-delete-btn:hover{background:#ef444433;color:#f87171}.class-management-item.dragging{opacity:.6;transform:scale(.98);border:1px dashed rgba(var(--primary-color-rgb),.5);background:rgba(var(--primary-color-rgb),.05);box-shadow:var(--shadow-md);z-index:10;transition:opacity .2s ease,transform .2s ease,background .2s ease}.class-management-item:not(.dragging){transition:all var(--transition-base)}.class-management-list:has(.dragging) .class-management-item:not(.dragging):hover{background:rgba(var(--primary-color-rgb),.03)}@keyframes slideDownExpand{0%{opacity:0;max-height:0;padding-top:0;padding-bottom:0;transform:translateY(-10px)}to{opacity:1;max-height:80px;padding-top:12px;padding-bottom:12px;transform:translateY(0)}}@keyframes slideUpCollapse{0%{opacity:1;max-height:80px;transform:translateY(0)}to{opacity:0;max-height:0;padding:0;transform:translateY(-10px)}}.inline-create-form{overflow:hidden}.inline-class-input{flex:1;width:100%;padding:10px 12px;font-size:.9rem;border:2px solid transparent;border-radius:var(--radius-md);background:var(--bg-color);color:var(--text-primary);transition:all var(--transition-fast)}.inline-class-input::placeholder{color:var(--text-tertiary)}.inline-class-input:hover:not(:focus){background:var(--bg-color);border-color:transparent;background-image:linear-gradient(var(--bg-color),var(--bg-color)),linear-gradient(90deg,rgba(var(--primary-color-rgb),.5),rgba(var(--primary-color-rgb),.5));background-origin:padding-box,border-box;background-clip:padding-box,border-box}.inline-class-input:focus{outline:none;background-color:transparent;border:2px solid transparent!important;background-image:linear-gradient(var(--bg-color),var(--bg-color)),conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.5) 0%,rgba(var(--primary-color-rgb),.5) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.5) 32%,rgba(var(--primary-color-rgb),.5) 50%,rgba(var(--primary-color-rgb),.5) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.5) 82%,rgba(var(--primary-color-rgb),.5) 100%);background-origin:padding-box,border-box;background-clip:padding-box,border-box;animation:rotate-gradient 10s linear infinite;box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.08),0 2px 8px rgba(var(--primary-color-rgb),.1)}.inline-delete-btn{height:28px;min-width:80px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;font-size:.85em;font-weight:500;border-radius:var(--radius-md);transition:all .2s ease;border:1px solid transparent;cursor:pointer;box-sizing:border-box}.class-management-item.editing{cursor:default;background:#ef44440d!important;border-color:var(--error-color)!important}.class-management-item.editing:hover{transform:none!important;box-shadow:none!important}.class-management-item.editing.renaming{background:rgba(var(--primary-color-rgb),.05)!important;border-color:var(--primary-color)!important}.inline-delete-btn.cancel{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary)}.inline-delete-btn.cancel:hover{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--text-tertiary)}.inline-delete-btn.confirm{background:var(--error-color);color:#fff;gap:8px;border:none;box-shadow:0 2px 4px #ef444433}.inline-delete-btn.confirm:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 6px #ef44444d}.inline-delete-btn.confirm:active{transform:translateY(0)}.delete-confirm-inline{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 4px;animation:slideInConfirm .2s ease-out}.delete-confirm-text{display:flex;align-items:center;gap:8px;color:var(--error-color);font-weight:600;font-size:.95em}.delete-confirm-text iconify-icon{font-size:1.5em}.delete-confirm-actions{display:flex;gap:8px}.cross-class-results{margin:0 var(--space-4);padding:0;max-height:0;overflow:hidden;opacity:0;transform:translateY(-10px);transition:max-height .4s cubic-bezier(.32,.72,0,1),opacity .3s ease-out,transform .3s ease-out,margin .3s ease-out}.cross-class-results.visible{max-height:600px;opacity:1;transform:translateY(0);margin-top:var(--space-8);margin-left:var(--space-4);margin-right:var(--space-4);margin-bottom:var(--space-5);padding:var(--space-4) 0}.cross-class-header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);padding:0 var(--space-2)}.cross-class-divider-line{flex:1;height:1px;background:linear-gradient(90deg,transparent 0%,var(--border-color) 20%,var(--border-color) 80%,transparent 100%)}.cross-class-divider-text{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1.5px;white-space:nowrap;padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border-radius:var(--radius-pill)}.cross-class-divider-text i{font-size:.6rem;color:var(--primary-color);opacity:.9}.cross-class-list{display:flex;flex-direction:column;gap:var(--space-6)}.cross-class-group{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);background:var(--card-glass-bg);border:1px solid var(--card-glass-border);border-radius:var(--radius-lg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.cross-class-group-badge{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--font-xs);font-weight:700;color:var(--primary-color);padding:var(--space-1) var(--space-3);margin-bottom:var(--space-2);background:rgba(var(--primary-color-rgb),.12);border:1px solid rgba(var(--primary-color-rgb),.25);border-radius:var(--radius-pill);width:fit-content}.cross-class-group-badge i{font-size:.6rem;opacity:.9}.cross-class-result{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-color);border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;position:relative;overflow:hidden;transition:background var(--transition-fast),border-color var(--transition-fast),transform .2s cubic-bezier(.32,.72,0,1),box-shadow var(--transition-fast)}.cross-class-result:hover{background:rgba(var(--primary-color-rgb),.05);border-color:rgba(var(--primary-color-rgb),.2);transform:translate(4px)}.cross-class-result:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.cross-class-result:active{transform:translate(2px) scale(.98)}.cross-class-result .student-avatar{flex-shrink:0;z-index:1}.cross-class-name{flex:1;font-size:var(--font-base);font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;z-index:1;transition:opacity var(--transition-fast)}.cross-class-prenom{font-weight:400;color:var(--text-secondary)}.cross-class-overlay{position:absolute;right:0;top:0;bottom:0;display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-4) 0 var(--space-6);font-size:var(--font-sm);font-weight:600;color:var(--primary-color);opacity:0;transform:translate(8px);transition:opacity .2s ease-out,transform .2s ease-out;pointer-events:none}.cross-class-overlay i{font-size:.75rem;transition:transform .2s ease}.cross-class-result:hover .cross-class-overlay{opacity:1;transform:translate(0)}.cross-class-result:hover .cross-class-overlay i{transform:translate(3px)}.cross-class-results.visible .cross-class-group{animation:crossClassGroupIn .4s cubic-bezier(.32,.72,0,1) backwards}.cross-class-results.visible .cross-class-group:nth-child(2){animation-delay:.1s}.cross-class-results.visible .cross-class-group:nth-child(3){animation-delay:.2s}.cross-class-results.visible .cross-class-result{animation:crossClassSlideIn .35s cubic-bezier(.32,.72,0,1) backwards}.cross-class-results.visible .cross-class-group:nth-child(1) .cross-class-result:nth-child(2){animation-delay:.05s}.cross-class-results.visible .cross-class-group:nth-child(1) .cross-class-result:nth-child(3){animation-delay:.1s}.cross-class-results.visible .cross-class-group:nth-child(2) .cross-class-result:nth-child(2){animation-delay:.15s}@keyframes crossClassGroupIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@keyframes crossClassSlideIn{0%{opacity:0;transform:translateY(-8px) translate(-10px)}to{opacity:1;transform:translateY(0) translate(0)}}[data-theme=dark] .cross-class-group{background:var(--surface-color);border-color:var(--border-color)}[data-theme=dark] .cross-class-result{background:var(--bg-secondary)}[data-theme=dark] .cross-class-result:hover{background:rgba(var(--primary-color-rgb),.1);border-color:rgba(var(--primary-color-rgb),.3)}[data-theme=dark] .cross-class-group-badge{background:rgba(var(--primary-color-rgb),.18);border-color:rgba(var(--primary-color-rgb),.3)}[data-theme=dark] .cross-class-divider-text{background:var(--bg-tertiary)}@media (max-width: 768px){.cross-class-results{margin:0 var(--space-2)}.cross-class-results.visible{margin:var(--space-5) var(--space-2)}.cross-class-result{padding:var(--space-2) var(--space-3)}.cross-class-name{font-size:var(--font-sm)}.cross-class-overlay{opacity:.7;transform:translate(0)}}.class-dashboard-modal .modal-content{max-width:900px;width:95%;max-height:92vh;overflow:hidden;display:flex;flex-direction:column}.class-dashboard-modal .modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.dashboard-header-left{display:flex;align-items:center;gap:var(--space-4)}.dashboard-header-left .modal-title{margin:0;font-size:var(--font-xl);font-weight:600;display:flex;align-items:center;gap:var(--space-3)}.dashboard-header-left .modal-title i{color:var(--primary-color)}.dashboard-period-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:var(--primary-color);color:#fff;font-size:var(--font-sm);font-weight:600;border-radius:var(--radius-pill);box-shadow:0 2px 8px rgba(var(--primary-color-rgb),.3)}.dashboard-student-count{font-size:var(--font-sm);color:var(--text-secondary);display:flex;align-items:center;gap:6px}.dashboard-student-count strong{color:var(--text-primary)}.class-dashboard-modal .modal-body{padding:var(--space-5) var(--space-6);overflow-y:auto;flex:1}.dashboard-spread-inline{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--card-glass-bg);border:1px solid var(--card-glass-border);border-radius:var(--radius-lg);margin-bottom:var(--space-4)}.spread-inline-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1.1rem;background:var(--info-color);color:#fff;box-shadow:0 4px 12px rgba(var(--info-rgb),.25);flex-shrink:0}.spread-inline-content{display:flex;align-items:baseline;gap:var(--space-2)}.spread-inline-label{font-size:var(--font-sm);color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.spread-inline-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);line-height:1}.spread-inline-unit{font-size:var(--font-base);color:var(--text-tertiary);font-weight:500}.spread-inline-badge{margin-left:auto;padding:6px 14px;background:rgba(var(--info-rgb),.1);color:var(--info-color);font-size:var(--font-sm);font-weight:600;border-radius:var(--radius-pill);border:1px solid rgba(var(--info-rgb),.2)}@media (max-width: 480px){.dashboard-spread-inline{flex-wrap:wrap;gap:var(--space-3)}.spread-inline-badge{margin-left:0;width:100%;text-align:center}}.dashboard-kpi-card{background:var(--card-glass-bg);border:1px solid var(--card-glass-border);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);position:relative;overflow:hidden;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.dashboard-kpi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.dashboard-kpi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gradient-primary);opacity:0;transition:opacity var(--transition-fast)}.dashboard-kpi-card:hover:before{opacity:1}.kpi-header{display:flex;align-items:center;justify-content:space-between}.kpi-label{font-size:var(--font-sm);color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.kpi-icon{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:1rem;background:var(--primary-color);color:#fff;box-shadow:0 4px 12px rgba(var(--primary-color-rgb),.25)}.kpi-icon.success{background:var(--success-color);box-shadow:0 4px 12px rgba(var(--success-rgb),.25)}.kpi-icon.warning{background:var(--warning-color);box-shadow:0 4px 12px rgba(var(--warning-rgb),.25)}.kpi-icon.error{background:var(--error-color);box-shadow:0 4px 12px rgba(var(--error-rgb),.25)}.kpi-icon.purple{background:var(--purple-color);box-shadow:0 4px 12px rgba(var(--purple-rgb),.25)}.kpi-icon.info{background:var(--info-color);box-shadow:0 4px 12px rgba(var(--info-rgb),.25)}.kpi-value-row{display:flex;align-items:baseline;gap:var(--space-2)}.kpi-value{font-size:2rem;font-weight:700;color:var(--text-primary);line-height:1}.kpi-unit{font-size:var(--font-base);color:var(--text-tertiary);font-weight:500}.kpi-evolution{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-sm);font-weight:600;padding:4px 10px;border-radius:var(--radius-pill);animation:none!important;transition:background-color .2s ease,border-color .2s ease;border:1px solid transparent}.kpi-evolution.positive{background:rgba(var(--success-rgb),.1);color:var(--success-color);border-color:rgba(var(--success-rgb),.2)}.kpi-evolution.negative{background:rgba(var(--error-rgb),.1);color:var(--error-color);border-color:rgba(var(--error-rgb),.2)}.kpi-evolution.neutral{background:rgba(var(--text-tertiary-rgb),.1);color:var(--text-secondary);border-color:rgba(var(--text-tertiary-rgb),.15)}.kpi-subtitle{font-size:var(--font-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.dashboard-distribution-section{background:var(--card-glass-bg);border:1px solid var(--card-glass-border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-5)}.dashboard-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.dashboard-section-title{font-size:var(--font-md);font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:var(--space-2)}.dashboard-section-title i{color:var(--primary-color)}.distribution-bars{display:flex;flex-direction:column;gap:var(--space-3)}.distribution-row{display:grid;grid-template-columns:60px 1fr 50px;align-items:center;gap:var(--space-3)}.distribution-label{font-size:var(--font-sm);font-weight:500;color:var(--text-secondary)}.distribution-bar-track{height:24px;background:var(--bg-secondary);border-radius:var(--radius-sm);overflow:hidden;position:relative}.distribution-bar-fill{height:100%;border-radius:var(--radius-sm);transition:width .8s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:flex-end;padding-right:8px;min-width:0}.distribution-bar-fill[data-range="0-4"]{background:linear-gradient(90deg,var(--grade-range-0-4) 0%,rgba(239,68,68,.7) 100%)}.distribution-bar-fill[data-range="4-8"]{background:linear-gradient(90deg,var(--grade-range-4-8) 0%,rgba(249,115,22,.7) 100%)}.distribution-bar-fill[data-range="8-12"]{background:linear-gradient(90deg,var(--grade-range-8-12) 0%,rgba(234,179,8,.7) 100%)}.distribution-bar-fill[data-range="12-16"]{background:linear-gradient(90deg,var(--grade-range-12-16) 0%,rgba(20,184,166,.7) 100%)}.distribution-bar-fill[data-range="16-20"]{background:linear-gradient(90deg,var(--grade-range-16-20) 0%,rgba(34,197,94,.7) 100%)}.distribution-count{font-size:var(--font-sm);font-weight:600;color:var(--text-primary);text-align:right}.dashboard-highlights{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-bottom:var(--space-5)}@media (max-width: 640px){.dashboard-highlights{grid-template-columns:1fr}}.highlight-card{background:var(--card-glass-bg);border:1px solid var(--card-glass-border);border-radius:var(--radius-lg);padding:var(--space-4);overflow:hidden}.highlight-card-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-color)}.highlight-icon{width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:.85rem}.highlight-icon.success{background:var(--success-light);color:var(--success-color)}.highlight-icon.warning{background:var(--warning-light);color:var(--warning-color)}.highlight-card-title{font-size:var(--font-sm);font-weight:600;color:var(--text-primary)}.highlight-list{display:flex;flex-direction:column;gap:var(--space-2)}.highlight-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border-radius:var(--radius-sm);transition:background var(--transition-fast),transform var(--transition-fast);cursor:pointer}.highlight-item:hover{background:var(--bg-tertiary);transform:translate(4px)}.highlight-student-name{font-size:var(--font-sm);font-weight:500;color:var(--text-primary)}.highlight-evolution{font-size:var(--font-xs);font-weight:600;padding:3px 8px;border-radius:var(--radius-pill)}.highlight-evolution.positive{background:var(--success-light);color:var(--success-color)}.highlight-evolution.negative{background:var(--error-light);color:var(--error-color)}.highlight-empty{font-size:var(--font-sm);color:var(--text-tertiary);font-style:italic;text-align:center;padding:var(--space-4)}.dashboard-ai-section{background:var(--card-glass-bg);border:1px solid var(--card-glass-border);border-radius:var(--radius-lg);overflow:hidden}.ai-section-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);background:linear-gradient(135deg,rgba(var(--primary-color-rgb),.08),rgba(var(--primary-color-rgb),.02));border-bottom:1px solid var(--border-color)}.ai-section-title{font-size:var(--font-md);font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:var(--space-2)}.ai-section-title i{color:var(--primary-color)}.ai-section-actions{display:flex;gap:var(--space-2)}.ai-section-content{padding:var(--space-5);min-height:150px}.ai-synthesis-text{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4);font-size:var(--font-sm);line-height:1.6;color:var(--text-primary)}.ai-synthesis-text p{margin:0}.ai-synthesis-text br{display:none}.synthesis-section{border-radius:var(--radius-lg);background:var(--card-glass-bg);border:1px solid var(--border-color);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);position:relative;overflow:hidden;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.synthesis-section:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.synthesis-intro-card{grid-column:1 / -1;background:linear-gradient(135deg,#6366f126,#6366f10d);border-color:#6366f14d;position:relative;padding:var(--space-5) var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}.synthesis-intro-header{display:flex;align-items:center;gap:var(--space-3);color:var(--primary-color);font-size:var(--font-lg);font-weight:700}.synthesis-intro-header i{font-size:1.25rem;animation:pulse-soft 3s infinite ease-in-out}@keyframes pulse-soft{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(.95)}}.synthesis-intro-text{font-size:1.05rem;line-height:1.6;color:var(--text-primary);font-weight:500}.synthesis-section:nth-child(2){grid-column:1 / -1;display:flex;flex-direction:row;align-items:center;gap:var(--space-4)}.synthesis-section:first-child .synthesis-section-header{margin-bottom:0;flex-shrink:0}.synthesis-section-header{display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-base);font-weight:600;margin-bottom:var(--space-2);z-index:2}.synthesis-section-header i{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);font-size:1rem}.synthesis-section-content{flex:1;z-index:2}.synthesis-section-content ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}.synthesis-section-content li{font-size:var(--font-sm);color:var(--text-secondary);padding-left:0;display:flex;align-items:baseline;gap:var(--space-2)}.synthesis-section-content li:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0;transform:translateY(-2px)}.synthesis-section--primary{background:linear-gradient(135deg,rgba(var(--primary-color-rgb),.12),rgba(var(--primary-color-rgb),.04));border-color:rgba(var(--primary-color-rgb),.25)}.synthesis-section--primary .synthesis-section-header{color:var(--primary-color)}.synthesis-section--primary .synthesis-section-header i{background:rgba(var(--primary-color-rgb),.15);color:var(--primary-color)}.synthesis-section--primary .synthesis-section-content li:before{background:var(--primary-color)}.synthesis-section--success{background:linear-gradient(135deg,rgba(var(--success-rgb),.12),rgba(var(--success-rgb),.04));border-color:rgba(var(--success-rgb),.25)}.synthesis-section--success .synthesis-section-header{color:var(--success-color)}.synthesis-section--success .synthesis-section-header i{background:rgba(var(--success-rgb),.15);color:var(--success-color)}.synthesis-section--success .synthesis-section-content li:before{background:var(--success-color)}.synthesis-section--warning{background:linear-gradient(135deg,rgba(var(--warning-rgb),.12),rgba(var(--warning-rgb),.04));border-color:rgba(var(--warning-rgb),.25)}.synthesis-section--warning .synthesis-section-header{color:var(--warning-dark, #B45309)}.synthesis-section--warning .synthesis-section-header i{background:rgba(var(--warning-rgb),.15);color:var(--warning-dark, #B45309)}.synthesis-section--warning .synthesis-section-content li:before{background:var(--warning-dark, #B45309)}.synthesis-section--info{background:linear-gradient(135deg,rgba(var(--info-rgb),.12),rgba(var(--info-rgb),.04));border-color:rgba(var(--info-rgb),.25)}.synthesis-section--info .synthesis-section-header{color:var(--info-color)}.synthesis-section--info .synthesis-section-header i{background:rgba(var(--info-rgb),.15);color:var(--info-color)}.synthesis-section--info .synthesis-section-content li:before{background:var(--info-color)}@media (max-width: 768px){.ai-synthesis-text{grid-template-columns:1fr}.synthesis-section:first-child{flex-direction:column;align-items:flex-start;gap:var(--space-3)}}.ai-loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-8);color:var(--text-secondary)}.ai-loading-state .loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.ai-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);padding:var(--space-6);text-align:center}.ai-placeholder-icon{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,rgba(var(--primary-color-rgb),.15),rgba(var(--primary-color-rgb),.05));display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--primary-color)}.ai-placeholder-text{font-size:var(--font-sm);color:var(--text-secondary);max-width:300px}.class-dashboard-modal .modal-footer{padding:var(--modal-footer-padding);border-top:var(--modal-footer-border);display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);min-height:var(--modal-footer-height);flex-shrink:0}.dashboard-footer-right{display:flex;align-items:center;gap:var(--space-2)}@media (max-width: 640px){.class-dashboard-modal .modal-content{max-height:95vh;border-radius:var(--radius-lg)}.class-dashboard-modal .modal-header{padding:var(--space-4);flex-direction:column;align-items:flex-start}.dashboard-header-left{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.class-dashboard-modal .modal-body{padding:var(--space-4)}.class-dashboard-modal .modal-footer{flex-direction:column;gap:var(--space-3)}.dashboard-footer-left,.dashboard-footer-right{width:100%;justify-content:center}.dashboard-refine-pills{justify-content:center}}.class-dashboard-modal.show .dashboard-kpi-card{animation:slideUpFade .4s ease-out backwards}.class-dashboard-modal.show .dashboard-kpi-card:nth-child(1){animation-delay:50ms}.class-dashboard-modal.show .dashboard-kpi-card:nth-child(2){animation-delay:.1s}.class-dashboard-modal.show .dashboard-kpi-card:nth-child(3){animation-delay:.15s}.class-dashboard-modal.show .dashboard-distribution-section{animation:slideUpFade .4s ease-out .2s backwards}.class-dashboard-modal.show .dashboard-highlights>*{animation:slideUpFade .4s ease-out backwards}.class-dashboard-modal.show .dashboard-highlights>:nth-child(1){animation-delay:.25s}.class-dashboard-modal.show .dashboard-highlights>:nth-child(2){animation-delay:.3s}.class-dashboard-modal.show .dashboard-ai-section{animation:slideUpFade .4s ease-out .35s backwards}@keyframes slideUpFade{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.journal-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#00000005;border-bottom:1px solid var(--border-color);cursor:default;border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}[data-theme=dark] .journal-header{background:#ffffff08}.journal-header-left{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px;color:var(--text-primary)}.journal-title-group{display:flex;align-items:center;gap:10px}.journal-controls-group{display:flex;align-items:center;gap:8px}.journal-header-right{display:flex;align-items:center}.journal-header-left i{color:var(--primary-color);font-size:13px}.journal-count-badge{background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color);font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--radius-pill)}.journal-info-icon{opacity:.5;transition:opacity .2s ease,color .2s ease}.journal-info-icon:hover{opacity:1;color:var(--primary-color)!important}.journal-threshold-control{position:relative}.journal-header-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:28px;padding:0 10px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-color);color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.2,.8,.2,1)}.journal-header-btn i{font-size:12px;color:var(--text-tertiary);transition:color .2s ease}.journal-header-btn:hover{background:var(--item-hover-bg);border-color:var(--primary-color);color:var(--primary-color);transform:translateY(-1px);box-shadow:0 2px 4px #0000000d}.journal-header-btn:hover i{color:var(--primary-color)}.journal-header-btn:active{transform:translateY(0)}.journal-header-btn.icon-only{width:28px;padding:0;border-radius:50%;background:transparent;border:none;box-shadow:none}.journal-header-btn.icon-only:hover{background:var(--item-hover-bg);color:var(--icon-btn-hover);transform:scale(1.1)}.journal-header-btn span:not(.tooltip-text){font-weight:600}.journal-threshold-control.open .journal-threshold-btn{background:var(--item-hover-bg);border-color:var(--primary-color);color:var(--primary-color)}.journal-threshold-control.open .journal-threshold-btn i{color:var(--primary-color)}.journal-threshold-popover{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(-8px);min-width:200px;padding:12px;background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:150;opacity:0;visibility:hidden;transition:all .2s cubic-bezier(.32,.72,0,1)}.journal-threshold-control.open .journal-threshold-popover{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.threshold-popover-header{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.threshold-popover-desc{font-size:11px;color:var(--text-tertiary);margin-bottom:12px}.threshold-popover-controls{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:10px}.threshold-adjust-btn{width:32px;height:32px;border:1px solid var(--border-color);border-radius:50%;background:var(--surface-color);color:var(--text-secondary);font-size:16px;font-weight:600;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.threshold-adjust-btn:hover{border-color:var(--primary-color);background:var(--item-hover-bg);color:var(--icon-btn-hover)}.threshold-adjust-btn:active{transform:scale(.95)}.threshold-current{font-size:24px;font-weight:700;color:var(--primary-color);min-width:40px;text-align:center}.threshold-popover-hint{font-size:10px;color:var(--text-tertiary);text-align:center}.journal-inline-tags{display:flex;align-items:center;gap:6px}.journal-inline-tags .journal-dropdown-trigger{padding:6px 10px;font-size:12px}.journal-draft-preview{display:none;flex-direction:column;gap:0;margin-bottom:12px;padding:12px;background:color-mix(in srgb,var(--primary-color) 4%,var(--surface-color));border:1px dashed color-mix(in srgb,var(--primary-color) 30%,transparent);border-radius:var(--radius-md);position:relative;overflow:visible}.journal-draft-preview.visible{display:flex;animation:draft-appear .4s cubic-bezier(.32,.72,0,1) forwards}@keyframes draft-appear{0%{opacity:0;transform:translateY(-8px) scaleY(.95);transform-origin:top center}to{opacity:1;transform:translateY(0) scaleY(1);transform-origin:top center}}.journal-draft-preview.closing{animation:draft-disappear .3s cubic-bezier(.32,.72,0,1) forwards!important;pointer-events:none;overflow:hidden}@keyframes draft-disappear{0%{opacity:1;transform:translateY(0);max-height:300px;margin-bottom:12px;padding:12px;border:1px dashed color-mix(in srgb,var(--primary-color) 30%,transparent)}to{opacity:0;transform:translateY(-10px);max-height:0;margin-bottom:0;padding-top:0;padding-bottom:0;border:0px dashed transparent}}.journal-crossfade-wrapper{overflow:hidden}.journal-entry.crossfade-in{animation:entry-crossfade-in .35s cubic-bezier(.32,.72,0,1) forwards}@keyframes entry-crossfade-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.journal-draft-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;color:var(--primary-color);font-size:11px;font-weight:600}.journal-draft-entry-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.journal-draft-entry{display:flex;flex-direction:column;padding:0;gap:4px}.journal-draft-entry-row .journal-entry-tags:empty:after{content:"Sélectionnez un tag ci-dessus";color:var(--text-tertiary);font-size:12px;font-style:italic;opacity:.7}.journal-draft-label{display:flex;align-items:center;gap:6px}.journal-draft-actions.header-actions{display:flex;gap:8px;margin:0;padding:0;border:none}.journal-draft-actions button{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s cubic-bezier(.34,1.56,.64,1);border:none;font-size:13px}#journalDraftCancelBtn{background:transparent;color:var(--text-tertiary);border:1px solid transparent}#journalDraftCancelBtn:hover{background:var(--error-light);color:var(--error-color);border-color:rgba(var(--error-rgb),.2);transform:rotate(90deg)}#journalDraftSaveBtn{background:var(--surface-color);border:1px solid var(--border-color);color:var(--text-tertiary);cursor:not-allowed;transition:all .3s cubic-bezier(.34,1.56,.64,1)}#journalDraftSaveBtn:not([disabled]){background:var(--success-light);border-color:transparent;color:var(--success-color);cursor:pointer;box-shadow:none}#journalDraftSaveBtn:not([disabled]):hover{background:var(--success-color);color:#fff;transform:scale(1.1) rotate(-3deg);box-shadow:0 4px 12px rgba(var(--success-rgb),.3)}.journal-content{padding:12px 16px;max-height:180px;overflow-y:auto;transition:max-height .4s cubic-bezier(.32,.72,0,1)}.journal-section.collapsed .journal-content{max-height:0;padding-top:0;padding-bottom:0;opacity:0;overflow:hidden}.journal-content:has(.journal-draft-preview.visible){max-height:280px}.journal-section.collapsed .journal-header{border-bottom:none;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);transition:border-radius .2s ease,border-bottom .2s ease}.journal-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;color:var(--text-tertiary);font-size:13px}.journal-empty iconify-icon{font-size:32px;opacity:.4;color:var(--text-tertiary);margin-bottom:8px}.journal-timeline{display:flex;flex-direction:column}.journal-entry{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;margin-bottom:8px;background:#00000005;border-radius:var(--radius-md);position:relative;transition:background .2s ease,transform .2s ease}.journal-entry:last-child{margin-bottom:0}.journal-entry:hover{background:#0000000a;cursor:pointer}.journal-entry.editing-original{opacity:.3;pointer-events:none;transition:opacity .3s ease}[data-theme=dark] .journal-entry{background:#ffffff0a}[data-theme=dark] .journal-entry:hover{background:#ffffff0f}.journal-entry-date{flex-shrink:0;font-size:11px;font-weight:600;color:var(--text-tertiary);min-width:45px;padding-top:2px}.journal-entry-content{flex:1;min-width:0}.journal-entry-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:0}.journal-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-pill);font-size:11px;font-weight:500;background:color-mix(in srgb,var(--tag-color) 15%,transparent);color:var(--tag-color)}.journal-tag.below-threshold{opacity:.8;background:transparent!important;border:1px dashed var(--tag-color)!important;box-shadow:none!important}.journal-tag i{font-size:10px}.journal-entry-note{font-size:13px;color:var(--text-secondary);line-height:1.4;margin-top:8px}.journal-entry-info{position:absolute;top:50%;right:40px;transform:translateY(-50%);width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:12px;opacity:0;transition:all var(--transition-fast);cursor:help;z-index:5}.journal-entry:hover .journal-entry-info{opacity:.6}.journal-entry-info:hover{opacity:1!important;color:var(--primary-color)}.journal-entry-delete{position:absolute;top:50%;right:8px;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;opacity:0;transition:all var(--transition-fast);z-index:5}.journal-entry:hover .journal-entry-delete{opacity:1}.journal-entry-delete:hover{background:rgba(var(--error-rgb),.1);color:var(--error-color)}.journal-entry-delete.confirm-delete{opacity:1!important;background:var(--error-color);color:#fff;width:auto;padding:0 10px;border-radius:14px;transform:translateY(-50%) scale(1);aspect-ratio:auto}.journal-entry-delete.confirm-delete:after{content:"Supprimer ?";font-size:11px;font-weight:600;margin-left:4px;white-space:nowrap}.journal-entry-delete.confirm-delete i{font-size:11px}.journal-entry.isolated{opacity:.6}.journal-entry.isolated .journal-tag{background:transparent;border:1px dashed var(--tag-color);box-shadow:none;opacity:.8}.journal-entry.isolated:hover{opacity:.9}.journal-entry.isolated .journal-entry-date{cursor:help}@keyframes journal-entry-slide-in{0%{opacity:0;max-height:0;padding-top:0;padding-bottom:0;margin-bottom:0;transform:translateY(-10px) scale(.98)}to{opacity:1;max-height:200px;padding-top:10px;padding-bottom:10px;margin-bottom:8px;transform:translateY(0) scale(1)}}.journal-entry.enter{overflow:hidden;animation:journal-entry-slide-in .4s cubic-bezier(.32,.72,0,1) forwards}.journal-entry.leave{max-height:0;padding-top:0;padding-bottom:0;margin-bottom:0;opacity:0;transform:translateY(-10px) scale(.98);overflow:hidden;pointer-events:none;transition:all .4s cubic-bezier(.32,.72,0,1)}.journal-quick-add{padding:12px 16px;border-top:1px solid var(--border-color);background:#00000005;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);display:none}.journal-quick-add.open{display:block;animation:journal-slide-down .3s cubic-bezier(.32,.72,0,1)}@keyframes journal-slide-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}[data-theme=dark] .journal-quick-add{background:#ffffff08}.journal-tag-buttons{display:block;margin-bottom:12px}.journal-compact-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px}.journal-tag-dropdown{position:relative}.journal-dropdown-trigger{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--surface-color);color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.32,.72,0,1)}.journal-dropdown-trigger:hover{border-color:var(--dropdown-color);color:var(--dropdown-color);background:color-mix(in srgb,var(--dropdown-color) 8%,transparent)}.journal-dropdown-trigger i:first-child{color:var(--dropdown-color)}.journal-dropdown-arrow{font-size:10px;opacity:.5;transition:transform .2s ease}.journal-tag-dropdown.open .journal-dropdown-arrow{transform:rotate(180deg)}.journal-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:160px;background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .2s cubic-bezier(.32,.72,0,1)}.journal-tag-dropdown.open .journal-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.journal-dropdown-option{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:none;background:transparent;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .15s ease;text-align:left}.journal-dropdown-option:hover{background:color-mix(in srgb,var(--tag-color) 12%,transparent);color:var(--tag-color)}.journal-dropdown-option:first-child{border-radius:var(--radius-md) var(--radius-md) 0 0}.journal-dropdown-option:last-child{border-radius:0 0 var(--radius-md) var(--radius-md)}.journal-dropdown-option i{width:16px;text-align:center;color:var(--tag-color)}.journal-selected-tags{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-height:32px;align-items:center}.journal-selected-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:var(--radius-pill);font-size:12px;font-weight:500;background:color-mix(in srgb,var(--tag-color) 15%,transparent);color:var(--tag-color);animation:chip-appear .2s cubic-bezier(.32,.72,0,1)}@keyframes chip-appear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.journal-selected-chip i{font-size:10px}.journal-chip-remove{display:flex;align-items:center;justify-content:center;width:14px;height:14px;margin-left:2px;border:none;background:transparent;color:inherit;opacity:.6;cursor:pointer;border-radius:50%;font-size:8px;transition:all .15s ease}.journal-chip-remove:hover{opacity:1;background:#0000001a}[data-theme=dark] .journal-chip-remove:hover{background:#ffffff1a}.journal-tag-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-pill);border:1px solid var(--border-color);background:var(--surface-color);color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.32,.72,0,1)}.journal-tag-btn:hover{border-color:var(--tag-color);color:var(--tag-color);background:color-mix(in srgb,var(--tag-color) 8%,transparent)}.journal-tag-btn.selected{border-color:var(--tag-color);background:color-mix(in srgb,var(--tag-color) 15%,transparent);color:var(--tag-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--tag-color) 20%,transparent)}.journal-tag-btn i{font-size:11px}.journal-note-input{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-color);color:var(--text-primary);font-size:13px;font-family:inherit;resize:none;transition:border-color .2s ease,box-shadow .2s ease}.journal-note-input::placeholder{color:var(--text-tertiary)}.journal-note-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.1)}.journal-quick-add-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.journal-quick-add-actions .btn{padding:8px 16px;font-size:13px}.journal-add-form{display:flex;flex-direction:column;gap:12px}@media (max-width: 600px){.journal-section{margin:0}.journal-header{padding:10px 12px}.journal-header-left{font-size:14px}.journal-content{padding:10px 12px;max-height:200px}.journal-entry{padding:8px 10px;gap:8px}.journal-entry-date{min-width:40px;font-size:10px}.journal-tag{font-size:10px;padding:2px 6px}.journal-entry-note{font-size:12px}.journal-tag-buttons{grid-template-columns:1fr 1fr;gap:4px;padding-bottom:4px}.journal-tag-btn{flex-shrink:0;padding:8px 14px;font-size:13px}.journal-note-input{font-size:14px;padding:12px}}@media (pointer: coarse){.journal-add-btn{width:36px;height:36px}.journal-tag-btn{padding:10px 16px;min-height:44px}.journal-entry-delete{width:32px;height:32px;font-size:14px;opacity:.6}}.journal-draft-pills{display:flex;flex-wrap:wrap;gap:6px;flex:1;align-items:center}.journal-pill-dropdown{position:relative}.journal-pill-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-pill);border:1px solid var(--border-color);background:var(--surface-color);color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.32,.72,0,1)}.journal-pill-btn:hover{border-color:var(--pill-color);color:var(--pill-color);background:color-mix(in srgb,var(--pill-color) 10%,transparent)}.journal-pill-btn i:first-child{color:var(--pill-color);font-size:11px}.journal-pill-arrow{font-size:9px;opacity:.5;transition:transform .2s ease;margin-left:2px}.journal-pill-dropdown.open .journal-pill-arrow{transform:rotate(180deg)}.journal-pill-menu{position:absolute;top:calc(100% + 4px);left:0;min-width:160px;background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .2s cubic-bezier(.32,.72,0,1)}.journal-pill-dropdown.open .journal-pill-menu{opacity:1;visibility:visible;transform:translateY(0)}.journal-pill-menu .journal-dropdown-option{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:none;background:transparent;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .15s ease;text-align:left}.journal-pill-menu .journal-dropdown-option:hover{background:color-mix(in srgb,var(--tag-color) 12%,transparent);color:var(--tag-color)}.journal-pill-menu .journal-dropdown-option:first-child{border-radius:var(--radius-md) var(--radius-md) 0 0}.journal-pill-menu .journal-dropdown-option:last-child{border-radius:0 0 var(--radius-md) var(--radius-md)}.journal-pill-menu .journal-dropdown-option i{width:16px;text-align:center;color:var(--tag-color)}.journal-pill-direct{border-style:dashed}.journal-pill-direct:hover{border-style:solid}.student-list-view{width:100%;background:var(--surface-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--glass-surface-border);overflow:visible;margin-bottom:0}.student-list-table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}.student-list-table thead{background:var(--item-idle-bg);border-bottom:1px solid var(--border-color)}.student-list-table thead tr:first-child th:first-child{border-top-left-radius:var(--radius-lg)}.student-list-table thead tr:first-child th:last-child{border-top-right-radius:var(--radius-lg)}.student-list-table tbody tr:last-child td:first-child{border-bottom-left-radius:var(--radius-lg)}.student-list-table tbody tr:last-child td:last-child{border-bottom-right-radius:var(--radius-lg)}.student-list-table th{padding:14px 16px;text-align:center;vertical-align:middle;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.header-action-trigger{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);opacity:.5;transition:all .25s cubic-bezier(.32,.72,0,1);z-index:2}.header-action-trigger:hover{opacity:1!important;background:var(--item-hover-bg);color:var(--icon-btn-hover);transform:translateY(-50%) scale(1.15)}.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;transition:color .25s ease}.sortable-header:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--item-hover-bg);opacity:0;transition:opacity .25s ease;pointer-events:none;z-index:0;border-radius:inherit}.sortable-header:hover:after{opacity:1}.sortable-header:hover{color:var(--text-primary)}.sortable-header .header-content-wrapper{position:relative;z-index:1}.sortable-header.active-sort,.sortable-header.active-sort:focus{color:var(--primary-color);background-color:transparent!important;outline:none}.sortable-header.active-sort:hover{color:var(--primary-color);background-color:var(--item-hover-bg)!important}[data-theme=dark] .sortable-header.active-sort:hover{color:var(--text-primary)}[data-theme=dark] .sortable-header.active-sort,[data-theme=dark] .sortable-header.active-sort:focus{color:var(--text-primary)}[data-theme=dark] .sortable-header .sort-icon-placeholder iconify-icon{color:var(--text-primary)}.name-header-with-search.active-sort:has(.inline-search-trigger-btn:hover){background-color:transparent!important}.sortable-header.active-sort:after,.sortable-header.active-sort:hover:after{opacity:0!important}.header-content-wrapper{display:flex;align-items:center;justify-content:center;position:relative;width:100%}.sortable-header .sort-icon-placeholder{display:flex;align-items:center;justify-content:center;margin-left:6px;min-width:14px}.sortable-header .sort-icon-placeholder iconify-icon{font-size:15px;color:var(--primary-color);transition:color .2s ease}.sortable-header .sort-icon-placeholder:empty{display:none;margin-left:0;min-width:0}.student-list-table th[data-sort-field=name]{text-align:left;padding-left:40px!important}.student-list-table th[data-sort-field=name] .header-content-wrapper{justify-content:flex-start}.student-list-table td{padding:14px 16px;border-bottom:1px solid var(--border-color);vertical-align:middle;transition:background var(--transition-fast)}.student-list-table tbody tr{cursor:pointer}.student-list-table tbody tr:hover td{background:var(--item-hover-bg)}.student-list-table tbody tr .btn-action-menu{opacity:0;transform:scale(.9);transition:all .2s cubic-bezier(.32,.72,0,1)}.student-list-table tbody tr:hover .btn-action-menu,.student-list-table tbody tr:focus-within .btn-action-menu,.student-list-table tbody tr .btn-action-menu:focus,.student-list-table tbody tr .action-dropdown-menu.open~.btn-action-menu,.student-list-table tbody tr .action-dropdown:has(.action-dropdown-menu.open) .btn-action-menu{opacity:1;transform:scale(1);background:#fff;box-shadow:0 2px 8px #0000001a}[data-theme=dark] .student-list-table tbody tr:hover .btn-action-menu{background:var(--surface-alert-bg)}@media (hover: none){.student-list-table tbody tr .btn-action-menu{opacity:.6;transform:scale(1);background:transparent;box-shadow:none}}.student-list-table tbody tr.focus-active{background:var(--item-active-bg)}.student-list-table tbody tr:last-child td{border-bottom:none}@keyframes list-row-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.student-list-table tbody tr.row-animate-in{animation:list-row-enter .3s cubic-bezier(.32,.72,0,1) both;animation-delay:var(--row-delay, 0ms)}@keyframes row-filter-highlight{0%{background-color:transparent}30%{background-color:var(--item-active-bg)}to{background-color:transparent}}.student-list-table tbody tr.filter-highlight{animation:row-filter-highlight .6s ease-out}@keyframes list-row-exit{0%{opacity:1;transform:scale(1) translate(0)}to{opacity:0;transform:scale(.96) translate(-15px)}}.student-list-table tbody tr.row-exit{animation:list-row-exit .25s cubic-bezier(.32,.72,0,1) forwards;pointer-events:none}.student-list-table tbody tr.row-move{transition:transform .45s cubic-bezier(.32,.72,0,1)!important}.student-list-table tbody tr.row-moving{position:relative;z-index:10;background:var(--surface-color)!important;box-shadow:0 4px 20px #00000026,0 2px 6px #0000001a;border-radius:8px}.student-list-table tbody tr.row-moving td{background:var(--surface-color)}.student-list-table tbody tr.row-moving td:first-child{border-radius:8px 0 0 8px}.student-list-table tbody tr.row-moving td:last-child{border-radius:0 8px 8px 0}[data-theme=dark] .student-list-table tbody tr.row-moving{background:var(--surface-color)!important;box-shadow:0 4px 20px #0006,0 2px 6px #0000004d}[data-theme=dark] .student-list-table tbody tr.row-moving td{background:var(--surface-color)}@keyframes list-row-filter-enter{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.student-list-table tbody tr.row-filter-enter{animation:list-row-filter-enter .3s cubic-bezier(.32,.72,0,1) both;animation-delay:var(--enter-delay, .15s)}.student-name-cell{font-weight:600;color:var(--text-primary);min-width:140px;padding-right:8px!important;transition:min-width .4s cubic-bezier(.32,.72,0,1);overflow:visible;position:relative}.student-name-cell .student-prenom{font-weight:400;color:var(--text-secondary)}.grade-cell{text-align:center;font-variant-numeric:tabular-nums;min-width:60px}.grade-cell .grade-value{font-weight:600}.grade-cell .grade-empty{color:var(--text-tertiary)}.grade-header{width:70px;min-width:70px;max-width:80px;padding:14px 8px!important}.evolution-header:hover{background-color:var(--item-hover-bg)!important}.evolution-header:after{display:none}.evolution-cell{text-align:center;vertical-align:middle}.grade-cell .grade-evolution,.evolution-cell .grade-evolution{font-size:14px;font-weight:600;cursor:help;transition:transform .2s ease,opacity .2s ease;display:inline-flex;align-items:center;justify-content:center;opacity:.9}.grade-cell .grade-evolution:hover,.evolution-cell .grade-evolution:hover{transform:scale(1.3);opacity:1}.grade-cell .grade-evolution.positive,.evolution-cell .grade-evolution.positive{color:var(--success-color)}.grade-cell .grade-evolution.negative,.evolution-cell .grade-evolution.negative{color:var(--error-color)}.grade-cell .grade-evolution.stable,.evolution-cell .grade-evolution.stable{color:var(--text-tertiary);opacity:.6}.appreciation-cell{max-width:340px;min-width:280px;text-align:left;transition:padding .3s ease;position:relative}.appreciation-cell:has(.status-badge){text-align:center}.appreciation-header{text-align:center;position:relative}.appreciation-header>.detail-chip{position:absolute;right:12px;top:50%;transform:translateY(-50%)}.btn-smart-action-inline{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;height:34px;border-radius:var(--radius-pill);font-weight:600;font-size:13px;white-space:nowrap;color:#fff!important;border:none;cursor:pointer;transition:all var(--transition-fast);pointer-events:auto;position:relative;overflow:hidden}.btn-smart-action-inline.mode-generate{background:var(--gradient-ai);box-shadow:0 1px 3px rgba(var(--primary-color-rgb),.25)}.btn-smart-action-inline.mode-generate:hover{background:linear-gradient(135deg,var(--primary-hover) 0%,var(--primary-color) 100%);box-shadow:0 2px 8px rgba(var(--primary-color-rgb),.35);transform:scale(1.05)}.btn-smart-action-inline.mode-update{background:var(--gradient-warning);box-shadow:0 1px 3px rgba(var(--warning-rgb),.25)}.btn-smart-action-inline.mode-update:hover{background:linear-gradient(135deg,var(--warning-hover) 0%,#b45309 100%);box-shadow:0 2px 8px rgba(var(--warning-rgb),.35);transform:scale(1.05)}.btn-smart-action-inline:active{transform:scale(.98)}.btn-smart-action-inline.mode-generate:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%);pointer-events:none}.btn-smart-action-inline.mode-generate:hover:before{animation:shine-sweep 1.5s ease-in-out infinite}.smart-action-badge{background:#ffffff4d;padding:2px 8px;border-radius:var(--radius-sm);font-size:12px;font-weight:700;min-width:16px;text-align:center}@keyframes inline-btn-appear{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.btn-smart-action-inline.animate-in{animation:inline-btn-appear .3s cubic-bezier(.32,.72,0,1) forwards}.appreciation-header-actions{position:absolute;left:12px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:8px;z-index:10}.appreciation-header:after{pointer-events:none}.appreciation-toggle-header:has(.btn-smart-action-inline:hover):after,.appreciation-toggle-header:has(.btn-smart-action-inline:active):after,.appreciation-toggle-header:has(#mobileCompactToggleBtn:hover):after,.appreciation-toggle-header:has(#mobileCompactToggleBtn:active):after,.appreciation-toggle-header:has(#avgWordsChip:hover):after,.appreciation-toggle-header:has(#avgWordsChip:active):after,.name-header-with-search:has(.inline-search-trigger-btn:hover):after,.name-header-with-search:has(.inline-search-trigger-btn:active):after{opacity:0!important}.appreciation-toggle-header:has(.btn-smart-action-inline:hover) .appreciation-toggle-icon,.appreciation-toggle-header:has(.btn-smart-action-inline:active) .appreciation-toggle-icon,.appreciation-toggle-header:has(#mobileCompactToggleBtn:hover) .appreciation-toggle-icon,.appreciation-toggle-header:has(#mobileCompactToggleBtn:active) .appreciation-toggle-icon,.appreciation-toggle-header:has(#avgWordsChip:hover) .appreciation-toggle-icon,.appreciation-toggle-header:has(#avgWordsChip:active) .appreciation-toggle-icon{opacity:0!important}.name-header-with-search:has(.inline-search-trigger-btn:hover) .sort-icon-placeholder,.name-header-with-search:has(.inline-search-trigger-btn:hover) .name-sort-icon{opacity:0!important}.appreciation-toggle-header .header-content-wrapper{position:relative;display:inline-flex!important}.appreciation-toggle-icon{font-size:11px;opacity:0;color:var(--text-tertiary);margin-left:8px;transition:opacity .25s ease}.appreciation-toggle-header:hover .appreciation-toggle-icon{opacity:.7}.appreciation-toggle-header.expanded-view .appreciation-toggle-icon{opacity:.6;color:var(--primary-color)}.student-list-table.appreciation-full-view .appreciation-cell{width:clamp(360px,40vw,515px);min-width:360px;max-width:515px}.student-list-table.appreciation-full-view .appreciation-preview{white-space:pre-wrap;max-height:500px;overflow:visible;text-overflow:clip;background:#00000008;padding:12px 16px;border-radius:var(--radius-md);line-height:1.6;margin:4px 0;border:1px solid rgba(0,0,0,.02);text-align:left!important;animation:appreciation-expand-reveal .5s cubic-bezier(.32,.72,0,1) forwards}.student-list-table.appreciation-full-view .student-name-cell{min-width:230px;width:230px}@keyframes appreciation-expand-reveal{0%{opacity:.4;filter:blur(2px)}to{opacity:1;filter:blur(0)}}[data-theme=dark] .student-list-table.appreciation-full-view .appreciation-preview{background:#ffffff0f;border-color:#ffffff0d;color:var(--text-secondary)}.appreciation-preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;line-height:1.5;color:var(--text-secondary);cursor:pointer;padding:6px 12px;border-radius:10px;background:#00000005;max-width:100%;max-height:32px;transition:max-height .5s cubic-bezier(.32,.72,0,1),padding .4s cubic-bezier(.32,.72,0,1),background .4s cubic-bezier(.32,.72,0,1),line-height .4s cubic-bezier(.32,.72,0,1),border-radius .4s cubic-bezier(.32,.72,0,1),transform .3s cubic-bezier(.32,.72,0,1),box-shadow .3s ease,opacity .15s ease;opacity:1}.appreciation-preview.expanded{white-space:pre-wrap;max-height:300px}[data-theme=dark] .appreciation-preview{background:#ffffff0a}.appreciation-preview:hover{background:var(--item-hover-bg);color:var(--text-primary)}.student-list-table.appreciation-full-view .appreciation-preview:hover{background:var(--item-hover-bg);color:var(--text-primary);transform:scale(1.05);box-shadow:none}.appreciation-cell .status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);font-size:12px;font-weight:500}.status-badge.done{background:rgba(var(--success-rgb, 16, 185, 129),.1);color:var(--success-color)}.status-badge.pending{background:#0000000f;color:var(--text-secondary)}[data-theme=dark] .status-badge.pending{background:#ffffff1a;color:var(--text-secondary)}.status-badge.error{background:rgba(var(--error-rgb, 239, 68, 68),.1);color:var(--error-color)}.status-cell{text-align:center;vertical-align:middle;width:120px;padding:8px 4px!important}.status-cell .status-badge{margin:0 auto;width:fit-content}.action-cell{text-align:center;position:relative}.action-cell .btn{padding:6px 12px;font-size:12px}.action-dropdown{position:relative;display:inline-flex}.btn-action-menu{width:36px;height:36px;min-height:36px;flex:0 0 36px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:transparent!important;border:none!important;box-shadow:none!important;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast),opacity .2s ease;opacity:0}.student-list-table tbody tr:hover .btn-action-menu,.action-dropdown.open .btn-action-menu{opacity:1}.btn-action-menu:hover{background:var(--item-hover-bg)!important;color:var(--icon-btn-hover)}.action-dropdown-menu{display:none;position:absolute;top:100%;right:0;margin-top:4px;min-width:160px;background:var(--surface-color);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 24px #0000001f,0 4px 8px #00000014;opacity:0;pointer-events:none;transform:translateY(-8px) scale(.95);transition:opacity .2s cubic-bezier(.32,.72,0,1),transform .2s cubic-bezier(.32,.72,0,1);z-index:100;overflow:hidden;padding:6px}.action-dropdown-menu.open{display:block;opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}.action-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:none;background:transparent;font-size:13px;font-weight:500;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);text-align:left;border-radius:8px}.action-dropdown-item:hover{background:var(--item-hover-bg);color:var(--icon-btn-hover)}.action-dropdown-item i{width:16px;text-align:center;color:var(--icon-btn-color)}.action-dropdown-item.danger{color:var(--error-color)}.action-dropdown-item.danger:hover{background:rgba(var(--error-rgb),.1);color:var(--error-color)}[data-theme=dark] .action-dropdown-menu{background:#18181bf2;border-color:#ffffff1a}.global-actions-dropdown{position:relative;display:flex;justify-content:center}.btn-action-menu-header{width:32px;height:32px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;background:transparent;border:none;box-shadow:none;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);opacity:.6}.btn-action-menu-header:hover{background:var(--item-hover-bg);color:var(--icon-btn-hover);opacity:1;transform:scale(1.1)}.global-actions-dropdown-menu{position:absolute;top:100%;right:0;margin-top:8px;min-width:220px;background:var(--surface-color);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 24px #0000001f,0 4px 8px #00000014;display:block;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-20px) translateY(-8px) scale(.95);transition:opacity .2s cubic-bezier(.32,.72,0,1),visibility .2s cubic-bezier(.32,.72,0,1),transform .2s cubic-bezier(.32,.72,0,1);z-index:200;overflow:hidden;padding:6px}.global-actions-dropdown-menu.open{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-20px) translateY(0) scale(1)}.global-actions-dropdown-menu .dropdown-header,.action-dropdown-menu .dropdown-header{margin:0;padding:8px 12px 6px;font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:6px;border-top:1px solid var(--border-color)}.global-actions-dropdown-menu .dropdown-header:first-of-type,.action-dropdown-menu .dropdown-header:first-of-type{border-top:none;padding-top:4px}.global-actions-dropdown-menu .dropdown-header i,.action-dropdown-menu .dropdown-header i{font-size:10px;opacity:.6}.global-actions-dropdown-menu .dropdown-divider.danger-divider,.action-dropdown-menu .dropdown-divider{border-top:1px solid rgba(var(--error-rgb),.2);margin:4px 8px}[data-theme=dark] .global-actions-dropdown-menu,[data-theme=dark] .action-dropdown-menu{background:#18181bf2;border-color:#ffffff1a}@media (max-width: 768px){.student-list-view{background:transparent;border:none;box-shadow:none;margin-bottom:24px;overflow:visible}.student-list-table,.student-list-table tbody,.student-list-table tr,.student-list-table th,.student-list-table td{display:block;width:100%;box-sizing:border-box!important}.student-list-table thead{display:flex;background:transparent!important;border:none;margin-bottom:12px}[data-theme=dark] .student-list-table thead{background:transparent!important}.student-list-table thead tr{display:flex;flex-wrap:nowrap!important;gap:10px;align-items:flex-start;background:var(--surface-color);padding:16px;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);pointer-events:auto;position:relative;width:100%;box-sizing:border-box!important}[data-theme=dark] .student-list-table thead tr{background:var(--surface-color)}.student-list-table th{display:none!important;padding:0!important;border:none!important}.student-list-table th .header-content-wrapper{display:none!important}.student-list-table th.name-header-with-search,.student-list-table th.appreciation-toggle-header,.student-list-table th.action-header{display:flex!important;align-items:center;gap:14px;width:auto!important;pointer-events:none!important}.inline-search-trigger-btn,.inline-search-container,.appreciation-header-actions,#avgWordsChip,.global-actions-dropdown{pointer-events:auto!important}.student-list-table th.name-header-with-search{flex:0 0 40px!important;order:1;width:40px!important;min-width:0!important;padding:0!important;margin:0!important;position:static!important;justify-content:flex-start}.inline-search-trigger-btn{position:static!important;transform:none!important;width:40px;height:40px;border-radius:var(--radius-md);background:#0000000a;display:flex!important;align-items:center;justify-content:center;opacity:1!important;color:var(--text-secondary)!important}[data-theme=dark] .inline-search-trigger-btn{background:#ffffff0d}.student-list-table th.appreciation-toggle-header{flex:1 1 0%!important;min-width:0!important;order:2;flex-direction:row!important;justify-content:flex-start;flex-wrap:wrap;align-content:center;gap:10px;position:relative}#avgWordsChip{position:static!important;transform:none!important;order:2;margin:0 0 0 auto!important;right:auto!important;left:auto!important;top:auto!important;opacity:1!important;display:inline-flex!important;align-items:center;justify-content:center;background:#0000000a!important;color:var(--text-secondary)!important;padding:0 14px!important;height:40px!important;box-sizing:border-box!important;border-radius:var(--radius-pill)!important;font-weight:500!important}[data-theme=dark] #avgWordsChip{background:#ffffff0d!important}.appreciation-header-actions{position:static!important;transform:none!important;display:flex;gap:10px;flex-wrap:nowrap;align-items:center;order:1;margin-left:0!important}#mobileCompactToggleBtn{position:static!important;transform:none!important;display:flex!important;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background:#0000000a;border:none;color:var(--text-secondary);font-size:1.2rem;transition:all var(--transition-fast);pointer-events:auto!important;opacity:1!important}[data-theme=dark] #mobileCompactToggleBtn{background:#ffffff0d}#mobileCompactToggleBtn:active{background:var(--item-active-bg);color:var(--icon-btn-hover);transform:scale(.95)}.student-list-table th.action-header{flex:0 0 auto;order:3}.global-actions-dropdown .btn-action-menu-header{background:#0000000a;border-radius:var(--radius-md);width:40px;height:40px}[data-theme=dark] .global-actions-dropdown .btn-action-menu-header{background:#ffffff0d}.global-actions-dropdown-menu{right:0;left:auto;transform:translateY(8px) scale(.95)}.global-actions-dropdown-menu.open{transform:translateY(0) scale(1)}.student-list-table tbody tr{background:var(--surface-color);border-radius:var(--radius-lg);margin-bottom:10px;box-shadow:0 2px 8px #0000000d;border:1px solid var(--border-color);padding:14px;position:relative;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;transition:transform .25s cubic-bezier(.32,.72,0,1),box-shadow .25s cubic-bezier(.32,.72,0,1)}[data-theme=dark] .student-list-table tbody tr{background:var(--surface-color);border-color:#ffffff0d}.student-list-table tbody tr:active{transform:scale(.98);box-shadow:0 1px 4px #0000001a}.student-list-table td{border-bottom:none!important;padding:0!important}.student-name-cell{margin-bottom:8px;padding-right:48px!important;padding-bottom:8px!important;width:100%!important}[data-theme=dark] .student-name-cell{border-bottom-color:#ffffff0d}.student-identity-wrapper{gap:12px}.student-nom-prenom{font-size:1.1rem}.student-avatar{width:44px;height:44px;font-size:1rem}.status-cell{position:static;flex:0 0 auto!important;width:auto!important;margin-right:8px;margin-bottom:8px;display:flex!important;align-items:center}.status-cell:not(:has(.status-badges-container)){display:none!important}.student-list-table td.grade-cell,.student-list-table td.evolution-cell{flex:0 0 auto!important;width:auto!important;margin-bottom:8px;display:flex!important;align-items:center}.grade-cell{margin-right:2px;font-size:.95em;background:transparent!important;padding:0!important}.evolution-cell{margin-right:2px}.grade-cell .grade-evolution,.evolution-cell .grade-evolution{margin:0 6px}.appreciation-cell{margin-top:2px;width:100%!important;max-width:100%!important;min-width:0!important}.appreciation-preview{box-sizing:border-box!important;width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-height:48px!important;background:#00000005;padding:14px;border-radius:var(--radius-md);border:1px solid rgba(0,0,0,.02);font-size:14px;line-height:1.6}.student-list-table.appreciation-full-view .appreciation-preview{white-space:pre-wrap!important;max-height:none!important;overflow:visible!important}[data-theme=dark] .appreciation-preview{background:#ffffff08;border-color:#ffffff05}.student-list-table.appreciation-full-view .appreciation-cell{width:100%!important;max-width:100%!important;min-width:0!important}.action-cell{position:absolute;top:14px;right:14px;width:auto!important}.btn-action-menu{opacity:.7!important;background:transparent!important;box-shadow:none!important;transform:none!important;width:44px;height:44px;border:none!important;color:var(--text-tertiary)}[data-theme=dark] .btn-action-menu{background:transparent!important}.btn-action-menu:active{box-shadow:none!important;background:var(--item-active-bg)!important;color:var(--icon-btn-hover);transform:scale(.95)!important;opacity:1!important}}.focus-panel{position:fixed;top:56px;right:0;width:100%;max-width:610px;height:calc(100vh - 56px);background:#fafafabf;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);box-shadow:-10px 0 40px #0000;z-index:var(--z-focus-panel);transform:translate(100%);transition:transform .45s cubic-bezier(.32,.72,0,1),box-shadow .45s cubic-bezier(.32,.72,0,1);display:flex;flex-direction:column;overflow:hidden;will-change:transform}[data-theme=dark] .focus-panel{background:#09090bbf}.focus-panel.open{transform:translate(0);box-shadow:-20px 0 60px #0000002e}.focus-panel-backdrop{position:fixed;top:56px;left:0;width:100%;height:calc(100% - 56px);background:#0003;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:var(--z-focus-panel-backdrop);opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s ease}.focus-panel-backdrop.visible{opacity:1;visibility:visible}.focus-header{display:flex;align-items:center;gap:16px;padding:4px 16px 4px 4px;margin:15px 16px 16px;background:var(--surface-color);border-radius:100px;box-shadow:0 4px 24px #00000014;border:1px solid var(--card-glass-border);flex-shrink:0;z-index:20;position:absolute;top:0;left:0;right:0;transition:all .35s cubic-bezier(.32,.72,0,1)}[data-theme=dark] .focus-header{background:#1e1e1ef2;box-shadow:0 4px 24px #0006;border-color:#ffffff14}.focus-header.editing{border-radius:var(--radius-lg, 16px);padding:12px 16px;align-items:flex-start}.focus-header-left{position:relative;z-index:2;display:flex;align-items:center;justify-content:center}.focus-header .focus-panel-avatar-container{position:relative}.focus-header .focus-panel-avatar-container .student-avatar{width:56px!important;height:56px!important;font-size:22px!important;border:none;box-shadow:none;margin:0!important;transition:all .35s cubic-bezier(.34,1.56,.64,1)}.focus-header .focus-panel-avatar-container .avatar-selection-overlay{display:none!important}.focus-header.editing .focus-panel-avatar-container .student-avatar{width:60px!important;height:60px!important;font-size:24px!important}.focus-header.editing+.focus-pages-container .focus-content{padding-top:216px}.focus-back-btn{background:#0000000a;border:none;font-size:14px;color:var(--text-primary);cursor:pointer;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.32,.72,0,1)}.focus-back-btn i{transition:transform .2s cubic-bezier(.32,.72,0,1)}.focus-back-btn:hover{background:#00000014;transform:scale(1.1)}.focus-back-btn:hover i{transform:none}.focus-back-btn:active{transform:scale(.95)}.focus-name-tab{display:inline-flex;align-items:center;gap:4px;background:#00000008;border-radius:12px;padding-right:4px;transition:background .25s ease}[data-theme=dark] .focus-name-tab{background:#ffffff0d}.focus-name-tab:hover{background:#0000000d}[data-theme=dark] .focus-name-tab:hover{background:#ffffff14}.focus-tab-close{width:24px;height:24px;border-radius:8px;border:none;background:transparent;color:var(--text-tertiary);display:flex;align-items:center;justify-content:center;font-size:11px;cursor:pointer;opacity:.5;transition:all .2s cubic-bezier(.32,.72,0,1);flex-shrink:0}.focus-tab-close:hover{background:rgba(var(--error-rgb, 239, 68, 68),.1);color:var(--error-color);opacity:1;transform:scale(1.1)}.focus-tab-close:active{transform:scale(.95)}.focus-student-name{font-size:18px;font-weight:700;color:var(--text-primary);letter-spacing:-.015em;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:transparent;cursor:pointer;display:inline-flex;align-items:center;gap:12px;padding:6px 12px;margin:-6px -12px;border-radius:12px;transition:background .25s ease,transform .15s ease}.focus-name-details{display:flex;flex-direction:column;align-items:flex-start;gap:0}.focus-name-nom{font-size:18px;font-weight:700;line-height:1.1;color:var(--text-primary);overflow-wrap:break-word;word-break:break-word}.focus-name-prenom{font-size:15px;font-weight:500;line-height:1.2;color:var(--text-secondary)}.focus-student-name:hover,[data-theme=dark] .focus-student-name:hover{background:var(--item-hover-bg)}.focus-student-name:active{transform:scale(.98)}.focus-name-editable{cursor:pointer;display:flex;align-items:center;gap:10px;padding:6px 10px;margin:-6px -10px;border-radius:12px}.focus-name-editable:hover{background:var(--item-hover-bg)}.focus-name-edit-icon{font-size:12px;opacity:0;color:var(--primary-color);transform:translate(-5px);transition:opacity .2s ease,transform .2s ease}.focus-student-name:hover .focus-name-edit-icon,.focus-name-editable:hover .focus-name-edit-icon{opacity:1;transform:translate(0)}.focus-status-badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.focus-status-badges .tag-badge{padding:3px 8px;font-size:10px;letter-spacing:.3px;white-space:nowrap}.focus-details-toggle{width:32px;height:32px;border-radius:50%;border:none;background:rgba(var(--primary-color-rgb),.08);color:var(--primary-color);display:flex;align-items:center;justify-content:center;font-size:13px;cursor:pointer;transition:all var(--transition-fast);margin-left:auto;margin-right:8px;flex-shrink:0}.focus-details-toggle:hover{background:rgba(var(--primary-color-rgb),.15);transform:scale(1.05)}.focus-details-toggle.active{background:var(--primary-color);color:#fff;box-shadow:0 2px 8px rgba(var(--primary-color-rgb),.3)}[data-theme=dark] .focus-details-toggle{background:rgba(var(--primary-color-rgb),.15)}[data-theme=dark] .focus-details-toggle:hover{background:rgba(var(--primary-color-rgb),.25)}.focus-nav-buttons{display:flex;align-items:center;gap:4px;background:#0000000a;padding:4px;border-radius:100px;flex-shrink:0;margin-left:auto}[data-theme=dark] .focus-nav-buttons{background:#ffffff0f}.focus-nav-divider{width:1px;height:20px;background:var(--border-color);margin:0 4px;opacity:.5}.focus-position{font-size:12px;font-weight:600;color:var(--text-secondary);padding:0 6px;font-variant-numeric:tabular-nums}.focus-nav-btn{width:28px;height:28px;border-radius:50%;border:none;background:var(--surface-color);color:var(--text-primary);display:flex;align-items:center;justify-content:center;font-size:12px;cursor:pointer;box-shadow:0 1px 3px #0000000d;transition:all var(--transition-fast)}.focus-nav-btn:hover:not(:disabled){transform:scale(1.1);box-shadow:0 3px 8px #00000014}.focus-nav-btn.focus-close-btn{color:var(--close-btn-color)}.focus-nav-btn.focus-close-btn:hover{background:var(--close-btn-hover-bg);color:var(--close-btn-hover-color);transform:scale(1.1)}.focus-nav-btn.focus-save-btn{opacity:0;width:0;padding:0;margin:0;overflow:hidden;pointer-events:none;color:var(--success-color, #22c55e);transition:opacity .25s ease,width .25s ease,transform .2s ease}.focus-nav-buttons.editing .focus-save-btn{opacity:1;width:28px;pointer-events:auto}.focus-nav-buttons.editing .focus-save-btn:hover{background:#22c55e26;color:var(--success-color, #22c55e);transform:scale(1.1)}.focus-nav-buttons.editing .focus-close-btn{color:var(--error-color)}.focus-nav-buttons.editing .focus-close-btn:hover{background:rgba(var(--error-color-rgb),.15);color:var(--error-color)}.focus-nav-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;background:transparent}[data-theme=dark] .focus-nav-btn:not(:disabled){background:#ffffff1f}[data-theme=dark] .focus-nav-btn:hover:not(:disabled){background:#ffffff2e}.focus-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:100px 14px 24px;display:flex;flex-direction:column;gap:12px;position:relative}.focus-content.slide-out-left{animation:focus-slide-out-left .28s cubic-bezier(.32,.72,0,1) forwards}.focus-content.slide-in-right{animation:focus-slide-in-right .32s cubic-bezier(.32,.72,0,1) forwards}.focus-content.slide-out-right{animation:focus-slide-out-right .28s cubic-bezier(.32,.72,0,1) forwards}.focus-content.slide-in-left{animation:focus-slide-in-left .32s cubic-bezier(.32,.72,0,1) forwards}@keyframes focus-slide-out-left{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(-40px) scale(.97)}}@keyframes focus-slide-in-right{0%{opacity:0;transform:translate(40px) scale(.97)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes focus-slide-out-right{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(40px) scale(.97)}}@keyframes focus-slide-in-left{0%{opacity:0;transform:translate(-40px) scale(.97)}to{opacity:1;transform:translate(0) scale(1)}}.grades-timeline,.focus-context-group,.focus-appreciation,.journal-section{background:var(--surface-color);border-radius:var(--radius-lg);padding:0;box-shadow:var(--shadow-sm);border:1px solid var(--card-glass-border);margin:0;transition:border-color .3s ease;overflow:visible;height:auto;min-height:auto;flex-shrink:0}.grades-timeline{overflow:hidden}.grades-timeline>:first-child,.focus-context-group>:first-child,.focus-appreciation>:first-child,.journal-section>:first-child{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.grades-timeline>:last-child,.focus-context-group>:last-child,.focus-appreciation>:last-child,.journal-section>:last-child{border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.timeline-grade-input{text-align:center;caret-color:var(--primary-color)}.timeline-grade-input:focus{outline:none}.timeline-period.future{opacity:.35}.timeline-period.future .timeline-grade-display{background:transparent;border-style:dashed;border-color:var(--text-tertiary);color:var(--text-tertiary);font-size:14px}.timeline-arrow{display:flex;align-items:center;justify-content:center;width:22px;height:22px;margin-top:22px;color:var(--text-tertiary);opacity:.4;font-size:10px;flex-shrink:0;transition:all .3s ease}.timeline-arrow.positive{color:var(--success-color);opacity:1;background:rgba(var(--success-rgb),.1);border-radius:50%}.timeline-arrow.negative{color:var(--error-color);opacity:1;background:rgba(var(--error-rgb),.1);border-radius:50%}.focus-context-label{font-size:13px;font-weight:600;color:var(--text-primary);margin:0;display:flex;align-items:center;gap:10px}.focus-context-label i.fa-info-circle{color:var(--primary-color);font-size:13px}.focus-context-info-trigger{display:inline-flex;align-items:center;gap:8px;cursor:help}.focus-mic-btn{width:28px;height:28px;border-radius:50%;border:none;background:transparent;color:var(--text-tertiary);display:flex;align-items:center;justify-content:center;font-size:12px;cursor:pointer;transition:all var(--transition-fast);margin-left:-4px;flex-shrink:0}.focus-mic-btn i,.focus-mic-btn iconify-icon{font-size:16px;line-height:1}.focus-mic-btn:hover{color:var(--icon-btn-hover);background:var(--item-hover-bg);transform:scale(1.1)}.focus-mic-btn.recording{background:var(--error-color);color:#fff;border-color:var(--error-color);animation:mic-pulse 1.2s cubic-bezier(.4,0,.6,1) infinite;box-shadow:0 0 0 4px #ef444440}.focus-mic-btn.recording:hover{background:var(--error-color);transform:scale(1.05)}@keyframes mic-pulse{0%,to{box-shadow:0 0 0 4px #ef444440}50%{box-shadow:0 0 0 8px #ef444426}}[data-theme=dark] .focus-mic-btn{background:transparent;border-color:var(--border-color)}[data-theme=dark] .focus-mic-btn:hover{background:var(--item-hover-bg)}.focus-history-btn{margin-left:4px;flex-shrink:0}.focus-history-btn .history-count{color:var(--text-secondary);transition:color .2s ease}.focus-history-btn:hover .history-count{color:var(--primary-color)}.period-badge{background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color);font-size:11px;padding:4px 8px;border-radius:6px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.focus-context-textarea{width:100%;min-height:56px;max-height:200px;height:auto;padding:14px 16px;margin:0;background:transparent!important;border:2px solid transparent!important;box-shadow:none!important;border-radius:0 0 var(--radius-lg) var(--radius-lg);font-size:14px;line-height:1.6;color:var(--text-primary);resize:none;overflow-y:hidden;transition:border-color var(--transition-fast);font-family:inherit;box-sizing:border-box;display:block}.focus-context-textarea:focus{overflow-y:auto}.focus-context-textarea::placeholder{color:var(--text-tertiary);font-style:italic;opacity:1}.focus-context-textarea:hover:not(:disabled):not(:focus){background:var(--item-hover-bg)!important;background-image:none!important;border:2px solid transparent!important}.focus-context-textarea:focus{outline:none!important;background:var(--item-active-bg)!important;background-image:none!important;border:2px solid transparent!important;box-shadow:none!important;animation:none!important}.student-card-title-group{display:flex;flex-direction:column;gap:4px}.history-grades-summary{display:flex;gap:8px;margin-top:2px}.history-grade-badge{font-size:12px;background:var(--surface-color);color:var(--text-primary);padding:3px 10px;border-radius:12px;font-weight:700;border:1px solid var(--border-color);box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:6px;transition:all var(--transition-fast)}.history-grade-badge span:first-child{color:var(--text-tertiary);font-weight:600;font-size:11px;text-transform:uppercase}.history-grade-badge.editable{cursor:pointer;background:rgba(var(--primary-color-rgb),.08);color:var(--text-primary);padding:3px 10px;border:1px solid rgba(var(--primary-color-rgb),.35);border-radius:12px;box-shadow:0 1px 3px rgba(var(--primary-color-rgb),.1)}.history-grade-badge.editable span:first-child{color:var(--primary-color);opacity:.85}.history-grade-badge.editable:hover{background:rgba(var(--primary-color-rgb),.14);border-color:rgba(var(--primary-color-rgb),.55);box-shadow:0 2px 8px rgba(var(--primary-color-rgb),.18)}[data-theme=dark] .history-grade-badge.editable{background:rgba(var(--primary-color-rgb),.12);border-color:rgba(var(--primary-color-rgb),.3)}.read-prev-appreciation,.read-prev-context,#focusPrevAppreciationSection,#focusPrevContextSection{border-left:3px solid var(--primary-color)!important;padding-left:12px!important;margin-top:12px!important;background:transparent!important;border-top:none!important;border-right:none!important;border-bottom:none!important;box-shadow:none!important;border-radius:0!important}.read-prev-header{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);margin-bottom:4px}.read-prev-header i{font-size:10px;opacity:.7}.read-prev-text{font-size:13px;color:var(--text-secondary);line-height:1.4;font-style:italic}.focus-context-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:#00000005;border-bottom:1px solid var(--border-color)}[data-theme=dark] .focus-context-header{background:#ffffff08}.history-grade-input{width:30px;border:none;background:transparent;color:inherit;font:inherit;text-align:center;padding:0;margin:0}.history-grade-input:focus{outline:none}.focus-appreciation-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:#00000005;border-bottom:1px solid var(--border-color)}[data-theme=dark] .focus-appreciation-header{background:#ffffff08;border-bottom-color:#ffffff0d}.focus-appreciation-label{font-size:13px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:10px;margin:0}.focus-appreciation-label>i:first-child{color:var(--primary-color);font-size:13px}.focus-appreciation-meta{display:flex;align-items:center;gap:12px}#focusWordCount{cursor:pointer;transition:all var(--transition-fast);border-radius:6px;padding:2px 6px;margin:-2px -6px;-webkit-user-select:none;user-select:none}#focusWordCount:hover{color:var(--primary-color);background:rgba(var(--primary-color-rgb),.1)}.focus-appreciation-text{width:100%;min-height:80px;max-height:500px;height:auto;padding:14px 16px;font-size:14px;line-height:1.6;color:var(--text-primary);outline:none;overflow-y:auto;white-space:pre-wrap;position:relative;transition:border-color var(--transition-fast);background:transparent;border:2px solid transparent;border-radius:0;box-sizing:border-box}.appreciation-status-badge{height:26px;width:26px;border-radius:50%;display:none;align-items:center;justify-content:center;gap:6px;padding:0;font-size:12px;font-weight:500;transition:all .4s cubic-bezier(.2,.8,.2,1);opacity:0;transform:translateY(5px) scale(.95);pointer-events:none;background:var(--bg-secondary);color:var(--text-secondary);border:1px solid transparent;white-space:nowrap;overflow:hidden}.appreciation-status-badge.visible{display:inline-flex;opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.appreciation-status-badge.pending{background:rgba(var(--primary-color-rgb),.15);color:var(--primary-color);animation:pending-pulse 1.5s infinite;padding:0;width:26px;height:26px;border-radius:50%}.appreciation-status-badge.pending iconify-icon{font-size:18px}.appreciation-status-badge.done{background:#10b98126;color:#10b981}.appreciation-status-badge.error{background:#ef444426;color:#ef4444}.appreciation-status-badge.empty{background:transparent;color:var(--text-secondary);width:auto;height:auto;border-radius:0;padding:4px}[data-theme=dark] .appreciation-status-badge.empty{background:transparent;color:var(--text-secondary)}.appreciation-status-badge.modified{background:#f59e0b26;color:#f59e0b;width:auto;border-radius:var(--radius-pill);padding:4px 10px;gap:6px;font-size:12px;font-weight:600;animation:badge-pop-in .4s cubic-bezier(.32,.72,0,1)}.appreciation-status-badge.saved{background:#10b98126;color:#10b981;width:auto;border-radius:var(--radius-pill);padding:4px 10px;gap:6px;font-size:12px;font-weight:600;animation:saved-fade-in .3s ease,saved-fade-out .4s ease 1.6s forwards}.appreciation-status-badge.valid{background:#0000000f;color:var(--text-secondary);width:auto;border-radius:var(--radius-pill);padding:4px 10px;gap:6px;font-size:12px;font-weight:600;animation:badge-pop-in .4s cubic-bezier(.32,.72,0,1)}[data-theme=dark] .appreciation-status-badge.valid{background:#ffffff1a;color:var(--text-secondary)}@keyframes saved-fade-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes saved-fade-out{0%{opacity:1}to{opacity:0}}@keyframes pending-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.95)}}.appreciation-status-badge.generated{background:#10b98126;color:#10b981;width:auto;border-radius:var(--radius-pill);padding:4px 10px;gap:6px;font-size:12px;font-weight:600;animation:badge-pop-in .4s cubic-bezier(.32,.72,0,1)}.appreciation-status-badge.icon-only{width:26px;height:26px;min-width:26px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:width .4s cubic-bezier(.32,.72,0,1),height .4s cubic-bezier(.32,.72,0,1),padding .4s cubic-bezier(.32,.72,0,1),border-radius .3s ease}.appreciation-status-badge.icon-only .badge-text{display:none}@keyframes badge-pop-in{0%{opacity:0;transform:scale(.8)}60%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes morph-to-warning{0%{background:#10b98126;color:#10b981}to{background:#f59e0b26;color:#f59e0b}}.appreciation-status-badge.morphing-to-warning{animation:morph-to-warning .4s ease forwards}.appreciation-status-badge.is-saved{background:#10b98126;color:#10b981;width:auto;border-radius:var(--radius-pill);padding:4px 10px;gap:6px;font-size:12px;font-weight:600;animation:saved-fade-in .3s ease}.appreciation-status-badge.is-dictating{background:rgba(var(--primary-color-rgb),.15);color:var(--primary-color);width:auto;border-radius:var(--radius-pill);padding:4px 10px;gap:6px;font-size:12px;font-weight:600;animation:pending-pulse 1.5s infinite}.history-indicator{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:rgba(var(--primary-color-rgb),.12);border:1px solid rgba(var(--primary-color-rgb),.25);border-radius:12px;color:var(--primary-color);font-size:.75rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.history-indicator:hover{background:rgba(var(--primary-color-rgb),.2);transform:scale(1.02)}.history-indicator i{font-size:.7rem;opacity:.8}.history-indicator .history-count{font-weight:600}.history-popover{position:fixed;z-index:10000;background:var(--glass-overlay-bg);border:1px solid var(--glass-overlay-border);border-radius:12px;box-shadow:0 8px 32px #00000026;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);min-width:260px;max-width:360px;overflow:hidden;animation:popover-in .2s ease}@keyframes popover-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.history-popover-title{padding:12px 16px;font-size:.85rem;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border-color);background:rgba(var(--primary-color-rgb),.04)}.history-popover-list{max-height:300px;overflow-y:auto}.history-version-item{display:flex;flex-direction:column;gap:4px;padding:10px 16px 10px 24px;cursor:pointer;border-bottom:1px solid var(--border-color);transition:background .15s ease;position:relative}.history-version-item:last-child{border-bottom:none}.history-version-item:hover{background:rgba(var(--primary-color-rgb),.08)}.history-version-item.current{background:rgba(var(--primary-color-rgb),.12)}.history-version-item.current:before{content:"";position:absolute;left:10px;top:17px;transform:translateY(-50%);width:6px;height:6px;background-color:var(--primary-color);border-radius:50%;box-shadow:0 0 0 2px rgba(var(--primary-color-rgb),.25)}.history-version-label{font-size:.75rem;font-weight:600;color:var(--primary-color)}.history-version-preview{font-size:.8rem;color:var(--text-secondary);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2;overflow:hidden;text-overflow:ellipsis}.history-version-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.history-source-icon{font-size:14px;display:inline-flex;align-items:center;justify-content:center;margin-right:2px;width:20px;height:20px;border-radius:50%;background:#8080801a;flex-shrink:0}.history-source-icon.source-ai{color:var(--primary-color);background:rgba(var(--primary-color-rgb),.1)}.history-source-icon.source-manual{color:var(--text-secondary)}.history-source-icon.source-imported{color:var(--text-tertiary)}.history-time{font-size:.65rem;color:var(--text-tertiary);margin-left:auto;font-weight:400}.history-word-diff{font-size:.65rem;font-weight:600;padding:1px 5px;border-radius:4px;font-variant-numeric:tabular-nums}.history-word-diff.positive{background:#10b98126;color:#10b981}.history-word-diff.negative{background:#ef44441f;color:#ef4444}.history-source{font-size:.65rem;font-weight:500;color:var(--text-tertiary);background:rgba(var(--primary-color-rgb),.08);padding:1px 6px;border-radius:4px}.history-model{font-size:.65rem;font-weight:600;color:#6366f1;background:#6366f114;padding:0 6px;border-radius:10px;margin-right:6px;border:1px solid rgba(99,102,241,.15);display:inline-flex;align-items:center;height:16px;line-height:1}.history-version-item--original{border-top:1px dashed var(--border-color);margin-top:4px;padding-top:14px!important}.history-version-item--original .history-version-label{color:var(--text-secondary)}.history-version-item--original:before{background-color:var(--text-tertiary)!important;box-shadow:none!important}.focus-appreciation-text{transition:opacity .18s cubic-bezier(.32,.72,0,1),transform .18s cubic-bezier(.32,.72,0,1),filter .18s cubic-bezier(.32,.72,0,1);will-change:opacity,transform,filter}.focus-appreciation-text.history-animating{pointer-events:none}.focus-appreciation-text.history-exit-forward{opacity:0;transform:translate(12px) scale(.98);filter:blur(3px)}.focus-appreciation-text.history-exit-backward{opacity:0;transform:translate(-12px) scale(.98);filter:blur(3px)}.focus-appreciation-text.history-enter-backward{animation:history-enter-from-left .28s cubic-bezier(.32,.72,0,1) forwards}.focus-appreciation-text.history-enter-forward{animation:history-enter-from-right .28s cubic-bezier(.32,.72,0,1) forwards}@keyframes history-enter-from-left{0%{opacity:0;transform:translate(-12px) scale(.98);filter:blur(3px)}to{opacity:1;transform:translate(0) scale(1);filter:blur(0)}}@keyframes history-enter-from-right{0%{opacity:0;transform:translate(12px) scale(.98);filter:blur(3px)}to{opacity:1;transform:translate(0) scale(1);filter:blur(0)}}@keyframes history-flash{0%{background:transparent}25%{background:rgba(var(--primary-color-rgb),.08)}to{background:transparent}}.focus-appreciation-text:has(.appreciation-skeleton){line-height:1;min-height:auto}.focus-appreciation-text .appreciation-skeleton{padding:0}.word-count{font-size:11px;font-weight:600;color:var(--text-secondary);background:transparent;border:none;padding:3px 10px;border-radius:var(--radius-pill);font-variant-numeric:tabular-nums;transition:all var(--transition-fast);display:inline-flex;align-items:center;text-transform:none}.word-count:empty{display:none}.word-count:hover{background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color)}#focusWordCount{border:none;background:transparent;border-radius:var(--radius-pill);padding:4px 10px;font-size:12px;font-weight:500;transition:all .2s cubic-bezier(.32,.72,0,1);cursor:default;display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary)}#focusWordCount:hover{transform:scale(1.05);background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color);cursor:help}.ai-indicator{display:inline-flex;align-items:center;justify-content:center;padding:4px;background:transparent;border:none;border-radius:8px;font-size:12px;cursor:help;transition:all var(--transition-fast);color:#fbbf24cc}.ai-indicator:hover{background:#fbbf241a;transform:scale(1.15);color:#fbbf24}[data-theme=dark] .ai-indicator{color:#fbbf24e6}[data-theme=dark] .ai-indicator:hover{background:#fbbf2426;color:#fbbf24}.ai-indicator.source-manual{color:var(--text-secondary)}.ai-indicator.source-manual:hover{background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color)}[data-theme=dark] .ai-indicator.source-manual{color:var(--text-secondary)}[data-theme=dark] .ai-indicator.source-manual:hover{background:rgba(var(--primary-color-rgb),.15);color:var(--primary-color)}.ai-indicator.source-manual i{font-size:12px}.ai-indicator.source-imported{color:var(--info-color, #06b6d4)}.ai-indicator.source-imported:hover{background:#06b6d41f;color:#06b6d4;transform:scale(1.15)}[data-theme=dark] .ai-indicator.source-imported{color:#06b6d4e6}[data-theme=dark] .ai-indicator.source-imported:hover{background:#06b6d42e;color:#06b6d4}.focus-appreciation-text[contenteditable=true]{border:2px solid transparent;border-radius:0}.focus-appreciation-text[contenteditable=true]:hover:not(:focus){background:var(--item-hover-bg)!important;background-image:none!important;border:2px solid transparent!important}.focus-appreciation-text[contenteditable=true]:focus{outline:none!important;background:var(--item-active-bg)!important;background-image:none!important;border:2px solid transparent!important;box-shadow:none!important;animation:none!important}.focus-appreciation-text[contenteditable]{position:relative;color:var(--text-primary)}.focus-appreciation-text[contenteditable]:empty:before,.focus-appreciation-text[contenteditable].empty:before{content:attr(data-placeholder);color:var(--text-tertiary);font-style:italic;font-weight:400;pointer-events:none;position:absolute;top:14px;left:16px;right:16px}.focus-refinement-options{display:flex;flex-wrap:wrap;gap:6px;margin-top:0;padding:6px 16px 12px}.btn-ai-outline{background:#00000005;border:none;color:var(--text-secondary);padding:6px 11px;height:auto;border-radius:100px;font-size:12px;font-weight:600;transition:all .2s cubic-bezier(.2,.8,.2,1);display:flex;align-items:center;gap:7px;cursor:pointer;box-shadow:none;position:relative;overflow:hidden}[data-theme=dark] .btn-ai-outline{background:#ffffff08}.btn-ai-outline i{color:var(--primary-color);font-size:12px;transition:transform .2s ease}.btn-ai-outline:hover{background:var(--surface-color);color:var(--primary-color);box-shadow:0 4px 12px #00000014}.btn-ai-outline:hover i{transform:scale(1.1)}.btn-ai-outline:hover:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.6) 50%,transparent 100%);animation:shine-sweep 1.5s ease-in-out infinite}.btn-ai-outline:hover:not(:disabled){background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color);box-shadow:none}[data-theme=dark] .btn-ai-outline:hover:not(:disabled){background:rgba(var(--primary-color-rgb),.2)}.btn-ai-outline.active{background:var(--primary-color);color:#fff!important;box-shadow:0 4px 12px rgba(var(--primary-color-rgb),.25)}.btn-ai-outline.active i{color:#fff!important}.btn-ai-outline:disabled,.btn-ai-outline.disabled{opacity:.4;pointer-events:none;cursor:not-allowed;background:#00000005;color:var(--text-tertiary)}[data-theme=dark] .btn-ai-outline:disabled,[data-theme=dark] .btn-ai-outline.disabled{background:#ffffff0a}.btn-ai-outline:disabled i,.btn-ai-outline.disabled i{color:var(--text-tertiary)}.btn-ai-outline.is-generating{pointer-events:none;cursor:wait;background:rgba(var(--primary-color-rgb),.12);color:var(--primary-color);box-shadow:0 4px 12px rgba(var(--primary-color-rgb),.15)}.btn-ai-outline.is-generating i{color:var(--primary-color)}.btn-ai-outline.is-generating:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.6) 50%,transparent 100%);animation:shine-sweep 2s ease-in-out infinite}.btn-ai-outline.is-generating:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1px;background:conic-gradient(from var(--gradient-angle, 0deg),var(--primary-color) 0%,rgba(var(--primary-color-rgb),.3) 25%,var(--glow-highlight, rgba(255, 255, 255, .8)) 50%,rgba(var(--primary-color-rgb),.3) 75%,var(--primary-color) 100%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:rotate-gradient 2s linear infinite;pointer-events:none}[data-theme=dark] .btn-ai-outline.is-generating{background:rgba(var(--primary-color-rgb),.18);box-shadow:0 0 0 1px rgba(var(--primary-color-rgb),.4),0 4px 20px rgba(var(--primary-color-rgb),.25)}[data-theme=dark] .btn-ai-outline.is-generating:before{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%)}.focus-footer{padding:10px 18px;background:var(--bg-color);border-top:1px solid var(--card-glass-border);display:flex;justify-content:space-between;align-items:center;gap:10px;z-index:10;position:sticky;bottom:0}.focus-footer .btn-secondary{background:transparent;color:var(--text-secondary);font-weight:600;padding:7px 14px;border-radius:var(--radius-md);font-size:13px;transition:all .2s;border:1px solid transparent}.focus-footer .btn-secondary:disabled{opacity:.4;cursor:default}.focus-footer .btn-secondary.copied{color:var(--success-color, #10b981);background:#10b9811a}.focus-footer .btn-secondary.copied i{color:var(--success-color, #10b981)}#focusGenerateBtn{background:var(--gradient-primary);color:#fff;border:none;border-radius:var(--radius-md);padding:8px 20px;font-size:13px;font-weight:700;box-shadow:none;flex:1;max-width:320px;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .3s cubic-bezier(.34,1.56,.64,1);letter-spacing:.3px}#focusGenerateBtn:hover{box-shadow:0 6px 16px rgba(var(--primary-color-rgb),.3)}#focusGenerateBtn:active{transform:scale(.98)}#focusGenerateBtn.btn-ai-outline{background:transparent;border:2px solid var(--primary-color);color:var(--primary-color);box-shadow:none}#focusGenerateBtn.btn-ai-outline:hover{background:rgba(var(--primary-color-rgb),.1);box-shadow:0 4px 12px rgba(var(--primary-color-rgb),.2)}#focusGenerateBtn.btn-ai-outline i{color:var(--primary-color)}@keyframes pulse-orange{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}#focusGenerateBtn.btn-neutral,.btn.btn-neutral{background:var(--surface-color);border:1px solid var(--card-glass-border);color:var(--text-secondary);box-shadow:0 2px 12px #00000008,0 1px 2px #00000005;animation:none!important}#focusGenerateBtn.btn-neutral i,.btn.btn-neutral i{color:var(--text-tertiary)}#focusGenerateBtn.btn-neutral:hover,.btn.btn-neutral:hover{background:var(--surface-color);color:var(--text-primary);box-shadow:0 4px 12px #00000014}#focusGenerateBtn.btn-neutral:hover i,.btn.btn-neutral:hover i{color:var(--text-secondary)}#focusGenerateBtn.btn-neutral:active,.btn.btn-neutral:active{transform:scale(.98);box-shadow:0 2px 6px #0000000f}.dirty-indicator{position:absolute;top:6px;left:8px;z-index:5;color:var(--warning-color);font-size:14px;animation:pulse-orange 2s infinite;cursor:help;transition:opacity .25s cubic-bezier(.32,.72,0,1),transform .25s cubic-bezier(.32,.72,0,1)}.dirty-indicator:hover{transform:scale(1.15)}.dirty-indicator.dirty-indicator-enter{opacity:0;transform:scale(.6);animation:none}.dirty-indicator.dirty-indicator-leave{opacity:0;transform:scale(.6);animation:none;pointer-events:none}.focus-student-card{background:var(--card-glass-bg);backdrop-filter:blur(var(--glass-surface-blur));-webkit-backdrop-filter:blur(var(--glass-surface-blur));border-radius:20px;border:1px solid var(--card-glass-border);overflow:visible;margin:0;box-shadow:none;padding:20px}.student-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.student-card-title{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700;color:var(--text-primary)}.student-card-title i{color:var(--primary-color)}.btn-icon-edit{width:32px;height:32px;border-radius:10px;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;transition:all var(--transition-fast)}.btn-icon-edit:hover{background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color)}.btn-icon-edit.active{background:var(--primary-color);color:#fff}.student-card-edit-mode{padding:16px;opacity:1;transform:translateY(0);transition:opacity .2s ease,transform .2s ease}.student-card-read-mode.hidden,.student-card-edit-mode.hidden{display:none}.student-card-read-mode.hiding,.student-card-edit-mode.hiding{opacity:0;transform:translateY(-8px)}.student-card-read-mode.showing,.student-card-edit-mode.showing{animation:cardModeAppear .25s ease forwards}@keyframes cardModeAppear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.read-section{margin-bottom:12px}.read-section:last-child{margin-bottom:0}.read-identity{display:none}.read-name{font-size:16px;font-weight:700;color:var(--text-primary)}.read-badges{display:flex;flex-wrap:wrap;gap:6px}.read-badges .status-pill{font-size:10px;padding:4px 10px}.read-grade{display:none}.read-grade-label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text-secondary)}.read-grade-label i{color:var(--primary-color)}.read-grade-value{font-size:20px;font-weight:700;color:var(--primary-color)}.read-prev-appreciation{padding:12px 14px;background:#00000005;border-radius:12px;border:1px solid rgba(0,0,0,.04)}[data-theme=dark] .read-prev-appreciation{background:#ffffff08;border-color:#ffffff0d}.read-prev-header{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.read-prev-header i{color:var(--text-tertiary)}.read-prev-text{font-size:13px;line-height:1.5;color:var(--text-secondary);max-height:80px;overflow-y:auto}.student-card-edit-mode{padding:16px}.focus-grade-input{width:100px;text-align:center;font-size:18px;font-weight:700}.focus-identity-section{padding:0;margin:0;background:transparent;border:none;box-shadow:none}.focus-identity-content{padding:0 16px;background:var(--surface-color);border-radius:20px;box-shadow:0 2px 12px #00000008,0 1px 2px #00000005;border:1px solid rgba(0,0,0,.03);max-height:0;opacity:0;overflow:hidden;margin:0;transform:translateY(-10px);transition:max-height .35s cubic-bezier(.4,0,.2,1),opacity .35s cubic-bezier(.4,0,.2,1),transform .35s cubic-bezier(.4,0,.2,1),padding .35s cubic-bezier(.4,0,.2,1),margin .35s cubic-bezier(.4,0,.2,1)}.focus-identity-content.expanded{max-height:300px;opacity:1;transform:translateY(0);padding:16px;margin-bottom:0}.focus-identity-row{display:flex;gap:12px;margin-bottom:12px}.focus-identity-row .focus-form-group{flex:1;margin-bottom:0}.focus-form-group{margin-bottom:10px}.focus-form-group label{font-size:10px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.8px;margin-bottom:4px;display:block}.focus-input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-color);font-size:14px;transition:all .2s}.focus-input:focus{outline:none;background-color:transparent;border:2px solid transparent!important;background-image:linear-gradient(var(--bg-color),var(--bg-color)),conic-gradient(from var(--gradient-angle),rgba(var(--primary-color-rgb),.5) 0%,rgba(var(--primary-color-rgb),.5) 18%,var(--glow-highlight) 23%,var(--glow-highlight) 27%,rgba(var(--primary-color-rgb),.5) 32%,rgba(var(--primary-color-rgb),.5) 50%,rgba(var(--primary-color-rgb),.5) 68%,var(--glow-highlight) 73%,var(--glow-highlight) 77%,rgba(var(--primary-color-rgb),.5) 82%,rgba(var(--primary-color-rgb),.5) 100%);background-origin:padding-box,border-box;background-clip:padding-box,border-box;animation:rotate-gradient 10s linear infinite;box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.08),0 2px 8px rgba(var(--primary-color-rgb),.1)}.focus-status-pills{display:flex;flex-wrap:wrap;gap:6px}.focus-status-pills input[type=checkbox]{display:none}.focus-status-pills label{padding:6px 12px;background:var(--bg-color);border-radius:100px;font-size:11px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s;border:1px solid var(--border-color);-webkit-user-select:none;user-select:none}.focus-status-pills label:hover{background:rgba(var(--primary-color-rgb),.05);border-color:rgba(var(--primary-color-rgb),.2)}.focus-status-pills input:checked+label{background:rgba(var(--primary-color-rgb),.1);color:var(--primary-color);font-weight:600;border-color:var(--primary-color)}@media (max-width: 600px){.focus-content{padding:20px 16px}.focus-header{padding:16px}.grades-timeline{padding:24px 10px}.timeline-grade-input,.timeline-grade-display{width:52px;height:52px;font-size:20px}.focus-footer{padding:16px 20px}}.focus-identity-footer{display:flex;justify-content:flex-end;gap:6px;padding-top:8px;margin-top:0}.btn-icon-check,.btn-icon-cancel{width:28px;height:28px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;transition:all var(--transition-fast)}.btn-icon-check{background:var(--primary-color);color:#fff;box-shadow:0 2px 8px rgba(var(--primary-color-rgb),.25)}.btn-icon-check:hover{transform:scale(1.1);box-shadow:0 4px 12px rgba(var(--primary-color-rgb),.4)}.btn-icon-cancel{background:var(--bg-secondary);color:var(--text-tertiary);border:1px solid var(--border-color)}.btn-icon-cancel:hover{background:var(--error-color);color:#fff;border-color:var(--error-color);transform:scale(1.1)}.btn-icon-check:active,.btn-icon-cancel:active{transform:scale(.95)}.focus-name-editable.editing{background:rgba(var(--primary-color-rgb),.08);color:var(--primary-color)}.focus-name-editable.editing .focus-name-edit-icon{opacity:1;color:var(--primary-color)}[data-theme=dark] .focus-identity-section{background:transparent}[data-theme=dark] .focus-identity-content{background:#ffffff0d}[data-theme=dark] .focus-input,[data-theme=dark] .focus-status-pills label{background:#0003;border-color:#ffffff1a}.focus-pages-container{flex:1;display:flex;overflow:hidden;position:relative}.btn-sm{padding:6px 12px;font-size:13px;height:32px;min-width:auto}.focus-page{min-width:100%;width:100%;height:100%;overflow:hidden;display:flex;flex-direction:column;transition:transform .5s cubic-bezier(.32,.72,0,1);will-change:transform}.focus-main-page{transform:scale(1);opacity:1;transform-origin:center center;transition:all .5s cubic-bezier(.32,.72,0,1)}.focus-analysis-page{position:absolute;top:0;left:0;width:100%;height:100%;transform:translateY(100%);background:var(--bg-color);z-index:10;box-shadow:0 -10px 40px #0000001a;display:flex;flex-direction:column}.focus-pages-container.show-analysis .focus-main-page{transform:scale(.92);opacity:.6;border-radius:20px;overflow:hidden}.focus-pages-container.show-analysis .focus-analysis-page{transform:translateY(0)}.focus-analysis-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;background:#fafafad9;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--card-glass-border);flex-shrink:0;z-index:10;position:sticky;top:0}[data-theme=dark] .focus-analysis-header{background:#09090bd9}.focus-analysis-title{flex:1;margin:0;font-size:18px;font-weight:700;color:var(--text-primary);display:flex;align-items:center;gap:10px}.focus-analysis-title i{color:var(--primary-color)}.focus-analysis-student{font-size:14px;font-weight:500;color:var(--text-secondary);background:#0000000a;padding:6px 12px;border-radius:100px}[data-theme=dark] .focus-analysis-student{background:#ffffff14}.focus-analysis-content-area{flex:1;overflow-y:auto;padding:20px 24px 32px;display:flex;flex-direction:column;gap:16px}.analysis-card{background:var(--surface-color);border-radius:var(--radius-lg);border:1px solid rgba(0,0,0,.04);transition:all .3s ease}[data-theme=dark] .analysis-card{background:#ffffff0d;border-color:#ffffff0d;box-shadow:none}.analysis-card.analysis-forces,.analysis-card.analysis-forces.has-content{border-color:#10b9814d}.analysis-card.analysis-weaknesses,.analysis-card.analysis-weaknesses.has-content{border-color:#f59e0b4d}.analysis-card.analysis-suggestions,.analysis-card.analysis-suggestions.has-content{border-color:#6366f14d}.analysis-card-header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#00000003;border-bottom:1px solid rgba(0,0,0,.04)}[data-theme=dark] .analysis-card-header{background:#ffffff05;border-bottom-color:#ffffff0d}.analysis-card-header h4{margin:0;font-size:15px;font-weight:600;color:var(--text-primary);flex:1}.analysis-status-badge{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;transition:all .3s ease;flex-shrink:0}.analysis-status-badge.loading{background:#f59e0b26;color:#f59e0b}.analysis-status-badge.done{background:#10b98126;color:#10b981}.analysis-status-badge.error{background:#ef444426;color:#ef4444}.analysis-status-badge.modified{background:#f59e0b26;color:#f59e0b;animation:analysis-modified-pulse 2s ease-in-out infinite}@keyframes analysis-modified-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.analysis-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px}.analysis-icon.forces{background:#10b98126;color:#10b981}.analysis-icon.weaknesses{background:#f59e0b26;color:#f59e0b}.analysis-icon.suggestions{background:#6366f126;color:#6366f1}.analysis-card-body{padding:16px 18px;font-size:14px;line-height:1.7;color:var(--text-secondary);max-height:400px;overflow-y:auto}.analysis-card-body ul{margin:0;padding-left:20px}.analysis-card-body li{margin-bottom:8px}.analysis-card-body li:last-child{margin-bottom:0}.analysis-placeholder{display:flex;align-items:center;gap:12px;color:var(--text-tertiary);font-style:italic;font-size:13px;padding:8px 0}.analysis-placeholder i{opacity:.5;font-size:16px}.analysis-skeleton{display:flex;flex-direction:column;gap:10px}.analysis-skeleton-line{height:14px;background:linear-gradient(90deg,#0000000a 25%,#00000014,#0000000a 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:7px}[data-theme=dark] .analysis-skeleton-line{background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14,#ffffff0a 75%);background-size:200% 100%}.analysis-skeleton-line:nth-child(1){width:90%}.analysis-skeleton-line:nth-child(2){width:70%}.analysis-skeleton-line:nth-child(3){width:80%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.analysis-card.has-content{border-color:rgba(var(--primary-color-rgb),.2)}.analysis-card.has-content .analysis-card-body{color:var(--text-primary)}.analysis-card.has-error .analysis-card-body{color:var(--error-color)}.focus-pages-container.show-analysis .analysis-card{animation:analysis-card-slide-in .4s cubic-bezier(.32,.72,0,1) forwards;opacity:0;transform:translateY(20px)}.focus-pages-container.show-analysis .analysis-card:nth-child(1){animation-delay:.1s}.focus-pages-container.show-analysis .analysis-card:nth-child(2){animation-delay:.18s}.focus-pages-container.show-analysis .analysis-card:nth-child(3){animation-delay:.26s}@keyframes analysis-card-slide-in{to{opacity:1;transform:translateY(0)}}.focus-analysis-page .focus-footer{justify-content:space-between}@media (max-width: 600px){.focus-analysis-header{padding:14px 16px}.focus-analysis-content-area{padding:16px;gap:12px}.analysis-card-header,.analysis-card-body{padding:14px 16px}.analysis-icon{width:32px;height:32px;font-size:14px}}@keyframes shine-sweep{0%{left:-100%}50%,to{left:100%}}.focus-header-content{flex:1;display:flex;flex-direction:column;justify-content:center;min-height:40px;min-width:0;overflow:hidden}.focus-header{transition:padding .3s ease,align-items .3s ease}.focus-header.editing{padding-top:16px;padding-bottom:16px;align-items:flex-start}.focus-header.editing .focus-header-content{overflow:visible}.focus-header-left{position:relative;flex-shrink:0;display:flex;align-items:center;gap:8px;transition:all .3s cubic-bezier(.32,.72,0,1)}.focus-header-left .focus-panel-avatar-container{transition:opacity .25s ease,transform .25s ease}.focus-header.editing .focus-header-left .focus-panel-avatar-container{opacity:1;transform:scale(1);pointer-events:auto}.focus-header-read{display:flex;align-items:center;gap:16px;transition:opacity .25s ease,transform .25s ease}.focus-header-read.hidden{opacity:0;transform:translateY(-10px);position:absolute;pointer-events:none}.focus-header-edit{display:flex;flex-direction:column;gap:12px;padding:4px;width:100%;max-height:0;opacity:0;overflow:hidden;transform:translateY(-10px);transition:max-height .3s ease,opacity .3s ease,transform .3s ease;pointer-events:none}.focus-header-edit.visible{max-height:200px;opacity:1;transform:translateY(0);pointer-events:auto;overflow:visible}.focus-edit-row{display:flex;gap:8px;width:100%;align-items:center}.focus-input-header{background:var(--bg-color);border:1px solid var(--border-color);border-radius:100px;padding:7px 14px;font-size:13px;font-weight:600;color:var(--text-primary);flex:1;min-width:0;outline:none;transition:all .25s cubic-bezier(.32,.72,0,1);box-shadow:inset 0 1px 3px #00000008}.focus-header-edit #headerNomInput{flex:1.5}.focus-input-header::placeholder{color:var(--text-tertiary);font-weight:500}.focus-input-header:focus{border-color:var(--primary-color);background:var(--surface-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.12),inset 0 1px 2px #00000005;transform:scale(1.01)}.focus-status-selection{display:flex;flex-wrap:nowrap;gap:6px;padding-bottom:2px}.focus-status-selection::-webkit-scrollbar{display:none}.status-pill-check{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:var(--bg-color);border:1px solid var(--border-color);border-radius:100px;font-size:12px;font-weight:600;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s cubic-bezier(.32,.72,0,1);white-space:nowrap;flex-shrink:0}.status-pill-check input{display:none}.status-pill-check:hover{background:rgba(var(--primary-color-rgb),.08);border-color:rgba(var(--primary-color-rgb),.4);color:var(--primary-color);transform:translateY(-1px)}.status-pill-check:has(input:checked){background:rgba(var(--primary-color-rgb),.12);border-color:var(--primary-color);color:var(--primary-color);box-shadow:0 2px 8px rgba(var(--primary-color-rgb),.2)}.status-pill-check:has(input:checked):hover{background:rgba(var(--primary-color-rgb),.18)}[data-theme=dark] .focus-input-header{background:#00000040;border-color:#ffffff1f}[data-theme=dark] .focus-input-header:focus{background:#00000059}[data-theme=dark] .status-pill-check{background:#00000040;border-color:#ffffff1f}.focus-retractable-details{overflow:hidden;max-height:0;transition:max-height .4s cubic-bezier(.25,.8,.25,1),opacity .4s cubic-bezier(.25,.8,.25,1),margin .4s cubic-bezier(.25,.8,.25,1);opacity:0;margin-bottom:0}.focus-retractable-details.expanded{max-height:2000px;opacity:1;margin-bottom:16px;overflow:visible}.details-inner-content{background:var(--surface-color);border-radius:20px;padding:16px;border:1px solid var(--border-color);display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow-sm)}.details-block{display:flex;flex-direction:column;gap:12px}.details-title{margin:0;font-size:13px;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color);padding-bottom:4px}.focus-identity-row.minimal{display:flex;gap:8px}.focus-identity-row.minimal .focus-input{flex:1;height:38px}.details-timeline-compact{display:flex;flex-direction:column;gap:12px}.timeline-compact-item{display:flex;gap:12px;align-items:flex-start;padding:10px;background:var(--bg-secondary);border-radius:12px;transition:background .2s}.timeline-compact-item:hover{background:rgba(var(--primary-color-rgb),.05)}.timeline-compact-badge{padding:4px 8px;background:var(--surface-color);border:1px solid var(--border-color);color:var(--text-secondary);font-size:11px;font-weight:700;border-radius:8px;white-space:nowrap}.timeline-compact-content{flex:1;display:flex;flex-direction:column;gap:4px}.timeline-compact-header{display:flex;justify-content:space-between;font-size:13px;font-weight:600;color:var(--text-primary)}.timeline-compact-appreciation{font-size:12px;color:var(--text-secondary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-style:italic}.grades-wrapper{display:flex;align-items:center;gap:12px}.previous-grades-inline{display:flex;gap:6px}.prev-grade-badge{font-size:11px;background:rgba(var(--primary-color-rgb),.05);color:var(--text-secondary);padding:4px 8px;border-radius:var(--radius-pill);font-weight:500;display:inline-flex;align-items:center;gap:4px;transition:background var(--transition-fast)}.prev-grade-badge:hover{background:rgba(var(--primary-color-rgb),.1)}.prev-grade-badge strong{color:var(--primary-color);font-weight:700}[data-theme=dark] .prev-grade-badge{background:rgba(var(--primary-color-rgb),.1)}.previous-grade-chip{display:inline-flex;align-items:center;gap:4px;padding:0 10px;height:28px;border-radius:99px;background:var(--bg-secondary);border:1px solid transparent;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}[data-theme=dark] .previous-grade-chip{background:#ffffff0f}.context-grade-group{display:inline-flex;align-items:center;gap:4px;padding:0 10px;height:28px;border-radius:99px;background:var(--surface-color);border:1px solid var(--border-color);transition:all var(--transition-fast)}.context-grade-group:hover{background:rgba(var(--primary-color-rgb),.04);border-color:rgba(var(--primary-color-rgb),.3)}.context-grade-group:focus-within{background:var(--surface-color);border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.12),inset 0 1px 2px #00000005}.context-grade-group label{font-size:11px;font-weight:600;color:var(--primary-color);text-transform:uppercase;letter-spacing:.5px;cursor:pointer;margin:0;padding:0}input.context-grade-input{border:none!important;background:transparent!important;background-image:none!important;box-shadow:none!important;width:36px;height:auto;font-size:12px;font-weight:700;color:var(--text-primary);text-align:center;outline:none!important;padding:0;margin:0;font-family:inherit;touch-action:manipulation}.context-grade-group input.context-grade-input:hover,.context-grade-group input.context-grade-input:focus,.context-grade-group input.context-grade-input:hover:not(:disabled):not(:focus),.context-grade-group input.context-grade-input:focus:not(:disabled){outline:none!important;background:transparent!important;background-image:none!important;border:none!important;box-shadow:none!important;animation:none!important}.context-grade-input::placeholder{color:var(--text-tertiary);font-weight:500}[data-theme=dark] .context-grade-group{background:#ffffff0d;border-color:#ffffff1a}[data-theme=dark] .context-grade-group:hover{background:rgba(var(--primary-color-rgb),.15);border-color:rgba(var(--primary-color-rgb),.4)}[data-theme=dark] .context-grade-group:focus-within{background:#00000059;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb),.15)}.previous-grade-chip .prev-grade-label{font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:11px;letter-spacing:.5px}.previous-grade-chip .prev-grade-value{font-size:12px;font-weight:700;color:var(--text-primary)}[data-theme=dark] .read-prev-data-container{background:#ffffff08}.focus-identity-row{flex-direction:column;gap:12px}.focus-form-group{margin-bottom:0}.focus-status-pills{justify-content:flex-start}.focus-header-history-grades{display:flex;align-items:center;gap:8px;margin-left:16px;padding-left:16px;border-left:1px solid var(--border-color);height:24px}.focus-header-history-grades .history-grade-badge{background:transparent;border:none;box-shadow:none;padding:0;font-size:13px;color:var(--text-secondary)}.appreciation-cell{position:relative}.student-list-table .appreciation-preview.has-copy-btn{padding-right:24px!important;text-align:left!important}.btn-copy-appreciation{position:absolute;top:50%;right:8px;transform:translateY(-50%);width:23px;height:23px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:11px;opacity:0;z-index:5;transition:all .2s cubic-bezier(.32,.72,0,1);background:#ffffff40;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.9);box-shadow:0 2px 8px #0000000f;color:var(--text-tertiary)}.student-row:hover .btn-copy-appreciation,.student-row:focus-within .btn-copy-appreciation,.student-list-table.appreciation-full-view .btn-copy-appreciation{opacity:1;transform:translateY(-50%)}.student-list-table.appreciation-full-view .btn-copy-appreciation{top:auto;bottom:8px;transform:none}.btn-copy-appreciation:hover{background:rgba(var(--primary-color-rgb),.15);border-color:rgba(var(--primary-color-rgb),.3);color:var(--primary-color);box-shadow:0 4px 12px rgba(var(--primary-color-rgb),.2);transform:translateY(-50%)}.student-list-table.appreciation-full-view .btn-copy-appreciation:hover{transform:none}.btn-copy-appreciation.copy-success,.btn-copy-appreciation.was-copied{opacity:1;background:#ffffff40;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.9);color:var(--success-color);box-shadow:0 2px 8px #0000000f;transform:translateY(-50%);animation:none!important}.btn-copy-appreciation.copy-success:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;animation:copy-success-pulse .6s ease-out;z-index:-1;pointer-events:none}.btn-copy-appreciation:active{transform:translateY(-50%) scale(.92);box-shadow:0 1px 4px #0000000d;transition-duration:.1s}.student-list-table.appreciation-full-view .btn-copy-appreciation:active{transform:scale(.92)}.student-list-table.appreciation-full-view .btn-copy-appreciation.copy-success,.student-list-table.appreciation-full-view .btn-copy-appreciation.was-copied{transform:none}[data-theme=dark] .btn-copy-appreciation{background:#ffffff14;border-color:#fff3;color:var(--text-secondary)}[data-theme=dark] .btn-copy-appreciation:hover{color:var(--primary-color);background:rgba(var(--primary-color-rgb),.15);border-color:rgba(var(--primary-color-rgb),.3);box-shadow:none}[data-theme=dark] .btn-copy-appreciation.copy-success,[data-theme=dark] .btn-copy-appreciation.was-copied{background:#ffffff14;border-color:#fff3;color:var(--success-color)}#focusAnalyzeBtn{position:relative;overflow:hidden;transition:all .25s cubic-bezier(.32,.72,0,1)}#focusAnalyzeBtn:hover{background:rgba(var(--primary-color-rgb),.1);border-color:rgba(var(--primary-color-rgb),.25);color:var(--primary-color);transform:translateY(-1px);box-shadow:0 4px 12px rgba(var(--primary-color-rgb),.12)}#focusAnalyzeBtn:hover i{color:var(--primary-color)}#focusAnalyzeBtn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%);opacity:0;transition:opacity .2s ease}#focusAnalyzeBtn:hover:before{opacity:1;animation:analyze-shine-sweep 1.5s ease-in-out infinite}@keyframes analyze-shine-sweep{0%{left:-100%}50%,to{left:100%}}@media (max-width: 768px){.focus-panel{max-width:100%;width:90%}.focus-header{padding:4px 16px 4px 4px;gap:8px}.focus-nav-buttons{gap:4px;padding:4px 8px}.focus-nav-btn{width:32px;height:32px}.focus-position{font-size:12px;min-width:36px}.focus-content{padding:104px 16px 24px}.focus-footer{padding:12px 16px;gap:8px}.focus-footer .btn{padding:8px 12px;font-size:13px}.focus-refinement-options{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.focus-refinement-options .btn{flex-shrink:0;height:auto}}@media (max-width: 600px){.focus-panel{max-width:100%;width:100%;top:56px;height:calc(100vh - 56px);height:calc(100dvh - 56px);border-radius:0;border-top:none}.focus-panel-backdrop{top:56px;height:calc(100% - 56px)}.focus-header{flex-wrap:wrap}.focus-header.editing{padding:12px 16px 16px;align-items:flex-start}.focus-header-left,.focus-header.editing .focus-header-left{order:1;flex-shrink:0;display:flex;align-items:center}.focus-panel-avatar-container,.focus-header.editing .focus-panel-avatar-container{width:40px;height:40px}.focus-header-content{order:2;flex:1 1 0;min-width:0;padding:0 4px}.focus-header.editing .focus-header-content{order:3;flex-basis:100%;margin-top:8px;padding:0;overflow:visible}.focus-header.editing+.focus-pages-container .focus-content{padding-top:276px}.focus-header-read{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%}.focus-student-name{padding:0;margin:0;width:100%;gap:4px}.focus-name-nom{font-size:15px;line-height:1.15}.focus-name-prenom{font-size:15px;line-height:1.2;font-weight:500;margin-top:2px}.focus-name-edit-icon{display:none}.focus-status-badges{flex-wrap:wrap;gap:4px;max-width:100%}.focus-status-badges .tag-badge{font-size:9.5px;padding:2px 6px;line-height:1.2}.focus-nav-buttons,.focus-header.editing .focus-nav-buttons{order:3;flex-shrink:0;margin-left:auto;gap:2px;padding:4px 6px;border-radius:12px}.focus-header.editing .focus-nav-buttons{order:2}.focus-nav-btn{width:28px;height:28px;font-size:12px}.focus-position{font-size:11px;min-width:32px;text-align:center}.focus-nav-divider{display:none}.focus-header.editing .focus-header-edit{width:100%}.focus-header.editing .focus-edit-row{flex-direction:column;gap:6px}.focus-header.editing .focus-header-edit #headerNomInput{flex:1}.focus-header.editing .focus-input-header{padding:8px 14px}.focus-header.editing .focus-status-selection,.focus-header.editing .status-checkboxes{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;gap:6px}.focus-header.editing .status-pill-check{flex-shrink:0;padding:5px 10px;font-size:11px}.focus-header.editing .focus-edit-actions{gap:3px}.focus-header.editing .btn-edit-action{width:28px;height:28px;font-size:12px}.focus-content{padding:116px 16px 24px}.focus-context-group{padding:0}.focus-context-header{flex-direction:row;align-items:center;gap:12px}.grades-wrapper{width:auto;justify-content:flex-end}.focus-context-textarea{min-height:60px;font-size:14px}.focus-appreciation{padding:0}.focus-appreciation-text{min-height:100px;font-size:14px;line-height:1.5}.focus-refinement-options{margin:8px 0 0;padding:0 16px 8px;gap:6px}.focus-refinement-options .btn{font-size:11px;padding:4px 8px;height:auto}.focus-footer{padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom));gap:8px;flex-wrap:nowrap;border-radius:0}.focus-footer .btn{flex:1 1 0;min-width:0;padding:8px 10px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.focus-analysis-header{padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top))}.focus-analysis-title{font-size:16px}.analysis-card{padding:12px}.analysis-card-header h4{font-size:14px}.student-list-table{min-width:auto}.student-list-table th,.student-list-table td{padding:10px 8px;font-size:13px}.student-name-cell{min-width:120px}.grade-cell{min-width:45px}.appreciation-cell{max-width:300px;min-width:200px}.appreciation-preview{font-size:12px;padding:4px 8px}.btn-action-menu{width:28px;height:28px}}@media (max-width: 375px){.focus-header,.focus-header.editing{padding:12px!important;padding-top:max(12px,env(safe-area-inset-top))!important}.focus-header-left,.focus-header.editing .focus-header-left{height:36px}.focus-nav-buttons,.focus-header.editing .focus-nav-buttons{padding:3px 5px}.focus-panel-avatar-container,.focus-header.editing .focus-panel-avatar-container{width:36px;height:36px}.focus-name-nom{font-size:14px}.focus-name-prenom{font-size:13px;margin-top:2px}.focus-nav-btn{width:26px;height:26px;font-size:11px}.focus-content{padding:10px 12px}.focus-footer{padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom));border-radius:0}.focus-footer .btn{padding:8px 10px;font-size:13px}.student-list-table th,.student-list-table td{padding:8px 6px;font-size:12px}.student-name-cell{min-width:100px}.focus-header.editing .focus-input-header{font-size:14px;padding:8px 12px}.focus-header.editing .status-checkboxes{overflow-x:auto}.focus-header.editing .btn-edit-action{width:26px;height:26px;font-size:11px}.student-list-table .appreciation-header,.student-list-table .appreciation-cell{display:table-cell}}@media (max-width: 1200px){.student-list-table th,.student-list-table td{padding:12px 10px}.student-name-cell{min-width:140px}.grade-cell{min-width:45px;padding-left:4px!important;padding-right:4px!important}.status-cell{width:100px}}@media (max-width: 900px){.status-cell{width:auto}.student-name-cell{min-width:120px}.grade-cell{font-size:13px;font-weight:500;min-width:35px}}@media (min-width: 769px) and (max-width: 900px){.student-list-view{overflow-x:auto}}@media (pointer: coarse){.btn-action-menu,.focus-back-btn{min-width:44px;min-height:44px}.focus-nav-btn{min-width:38px;min-height:38px}.focus-nav-btn.focus-save-btn{min-width:0!important}.focus-nav-buttons.editing .focus-save-btn{width:38px}.focus-footer .btn{min-height:44px}.fab-add-student{width:56px;height:56px;font-size:20px}}.history-navigation-group{display:inline-flex;align-items:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:2px;margin-left:10px}.history-nav-btn,.history-indicator-btn{display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;height:24px;padding:0 8px;border-radius:var(--radius-xs);font-size:.85rem}.history-nav-btn{width:24px;padding:0}.history-nav-btn:hover:not(:disabled){background:var(--item-hover-bg);color:var(--primary-color)}.history-nav-btn:disabled{opacity:.3;pointer-events:none;cursor:default}.history-indicator-btn{gap:6px;font-weight:500;color:var(--text-primary);padding:0 8px;margin:0 2px;position:relative;min-width:unset}.history-indicator-btn:hover{background:var(--item-hover-bg);color:var(--primary-color)}.history-indicator-btn .history-count{background:var(--bg-secondary);color:var(--text-primary);font-size:.75rem;padding:1px 6px;border-radius:12px;min-width:18px;text-align:center;font-weight:600}.history-indicator-btn.active{background:var(--primary-color-light);color:var(--primary-color)}@media (min-width: 1201px){.sidebar-header{justify-content:center}#sidebarCloseBtn{display:none}}@media (max-width: 1200px){.sidebar .section-title{display:block}.close-sidebar-btn{display:flex}}@media (max-width: 1024px){.results-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}@media (max-width: 900px){.main-content{--content-padding-x: var(--space-5);padding:calc(56px + var(--content-padding-x)) var(--content-padding-x) 80px}.output-header,.output-toolbar{flex-direction:column;align-items:stretch}.search-container{max-width:none}.form-row{grid-template-columns:1fr}.refinement-comparison{flex-direction:column}.refinement-accept-btn{transform:rotate(90deg);margin:12px 0}.settings-layout-grid{grid-template-columns:1fr;gap:24px}.settings-layout-grid.personalization-grid,.settings-layout-grid.personalization-grid.inspector-visible{grid-template-columns:1fr}.settings-layout-grid.personalization-grid .settings-inspector-column{display:block}.inspector-toggle-btn{display:none}}@media (max-width: 768px){.modal-content{width:95%;max-width:none;max-height:95vh;margin:0 auto}.modal-header{padding:10px 14px}.modal-body{padding:14px}.modal-footer{padding:10px 14px}.modal-title{font-size:1.1rem}.appreciation-result{padding:16px}.appreciation-result .card-footer{flex-direction:column;align-items:flex-start;gap:12px}.appreciation-result .card-actions{width:100%;justify-content:flex-start}.results-grid{grid-template-columns:1fr;gap:16px}#empty-state-card{padding:40px 20px}.output-toolbar{flex-wrap:wrap;gap:12px}.search-wrapper{width:100%;min-width:unset}.import-preview-grid{grid-template-columns:1fr!important;gap:16px}.import-preview-grid>div{min-height:auto}.settings-tabs{flex-wrap:wrap}.settings-tab-btn{flex:1 1 auto;min-width:100px}}@media (max-width: 600px){.sidebar{width:100%;max-width:100%}.stats-header{flex-direction:column;align-items:flex-start;gap:12px}.stats-header .section-title{font-size:1.35rem}.stats-header .btn{width:100%}.input-mode-tabs{flex-direction:column}.input-mode-tab{width:100%;border-radius:var(--radius-xs)}}@media (max-width: 480px){.main-content{--content-padding-x: var(--space-4);padding:calc(56px + var(--content-padding-x)) var(--content-padding-x) 80px}.modal-content{width:100%;height:100%;max-height:100%;border-radius:0}.modal-header{padding:8px 12px}.modal-body{padding:12px}.modal-footer{padding:8px 12px;flex-direction:column;gap:8px}.modal-footer .btn{width:100%}.modal-title{font-size:1rem}.stat-card,.appreciation-result{padding:12px}.appreciation-result .card-actions .btn-icon{padding:8px}#empty-state-card{padding:30px 16px}#empty-state-card .icon{font-size:2.5rem}#empty-state-card h3{font-size:1.2rem}.header-center{flex-grow:0}.ui-segmented-control.header-style{gap:2px;padding:3px}.ui-segmented-control.header-style .ui-segment{padding:6px 10px;font-size:11px}.output-toolbar{gap:8px}.search-container{width:100%;max-width:none}.toolbar-actions{display:flex;gap:8px;width:100%}.toolbar-actions .btn{flex:1;justify-content:center}.fab-add-student{bottom:max(20px,env(safe-area-inset-bottom) + 12px);right:16px}}@media print{body{background:#fff;color:#000}.app-layout,.sidebar,.header,.output-toolbar,.stats-container,.stats-header,.appreciation-actions,#backToTopBtn{display:none!important}.main-content-wrapper,.main-content{overflow:visible;height:auto;padding:0}#results{display:block;page-break-inside:avoid}.appreciation-result{page-break-inside:avoid;margin-bottom:20px;box-shadow:none;border:1px solid #ccc}.card-content-wrapper{box-shadow:none}}.theme-control-wrapper{width:100%;padding:.25rem .5rem;box-sizing:border-box;margin-bottom:0;display:flex;justify-content:center}.selection-toolbar{position:fixed;bottom:var(--space-6);left:0;right:0;margin-inline:auto;width:fit-content;transform:translateY(150px);z-index:var(--z-modal-backdrop, 500);background:linear-gradient(#00000005,#00000005),rgba(var(--surface-color-rgb),.8);backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:1px solid var(--card-glass-border);border-radius:var(--radius-pill, 50px);opacity:0;transition:transform .5s cubic-bezier(.34,1.56,.64,1),opacity .3s ease;box-shadow:0 8px 24px -6px #00000014;pointer-events:none;max-width:calc(100vw - var(--space-8))}[data-theme=dark] .selection-toolbar{background:linear-gradient(#ffffff08,#ffffff08),rgba(var(--surface-color-rgb),.8);border-color:#ffffff1a;box-shadow:0 10px 30px -5px #00000059}[data-theme=dark] .btn-selection-action:hover{background:rgba(var(--primary-color-rgb),.25);color:var(--primary-color);box-shadow:none}.selection-toolbar.active{transform:translateY(0);opacity:1;pointer-events:auto}.selection-toolbar-content{display:flex;align-items:center;gap:6px;height:48px;padding:0 12px 0 16px}.selection-info{display:flex;align-items:center;gap:12px;color:var(--text-primary);font-weight:600;font-size:14px;white-space:nowrap;padding-right:4px}.btn-select-all-link{background:none;border:none;color:var(--primary-color);font-size:12px;font-weight:500;cursor:pointer;padding:3px 8px;border-radius:var(--radius-sm);opacity:.7;transition:all .2s ease;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.btn-select-all-link:hover{opacity:1;background:rgba(var(--primary-color-rgb),.08)}.btn-deselect{width:28px;height:28px;border:none;background:transparent;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0;border-radius:50%;margin-right:4px}.btn-deselect:hover{background:var(--neutral-light);color:var(--text-primary);transform:scale(1.1)}.selection-info:after{content:"";width:1px;height:28px;background:var(--border-color);margin-left:4px;flex-shrink:0}.selection-actions{display:flex;align-items:center;gap:4px}.btn-selection-action{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius-pill);border:1px solid transparent;background:transparent;color:var(--text-primary);font-size:12.5px;font-weight:600;cursor:pointer;transition:all .25s cubic-bezier(.32,.72,0,1);white-space:nowrap}.btn-selection-action:hover{background:rgba(var(--primary-color-rgb),.12);color:var(--primary-color)}.btn-selection-action:active{transform:scale(.95)}.btn-selection-action.danger{color:var(--error-color)}.btn-selection-action.danger:hover{background:rgba(var(--error-rgb, 239, 68, 68),.12);color:var(--error-color)}.selection-action-separator{width:1px;height:24px;background:var(--border-color);margin:0 4px;flex-shrink:0}.student-avatar{position:relative;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.student-avatar:hover{transform:scale(1.05)}.avatar-selection-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(var(--primary-color-rgb),.85);display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.5em;border-radius:inherit;opacity:0;transform:scale(.5);transition:all .3s cubic-bezier(.32,.72,0,1);pointer-events:none;z-index:2}.student-avatar:not(.is-selected):hover .avatar-selection-overlay{opacity:.6;transform:scale(1);cursor:pointer}.student-avatar.is-selected .avatar-selection-overlay{opacity:1;transform:scale(1)}.student-avatar.is-selected{transform:scale(1.18);z-index:5;box-shadow:0 8px 16px rgba(var(--primary-color-rgb),.25)}.student-row:focus{outline:none}.student-row.selected{background:rgba(var(--primary-color-rgb),.05)!important}.student-row.selected td{border-bottom-color:rgba(var(--primary-color-rgb),.1)}.student-identity-wrapper.selected .student-nom-prenom{color:var(--primary-color)}@media (max-width: 768px){.selection-toolbar{bottom:var(--space-4);border-radius:var(--radius-lg)}.selection-toolbar-content{padding:0 10px;height:50px;gap:4px}.btn-selection-action span{display:none}.btn-selection-action{padding:8px;width:36px;height:36px;justify-content:center;border-radius:50%}.selection-info{font-size:13px;gap:8px}.btn-select-all-link{display:none}.selection-info:after{height:24px}}@media (max-width: 480px){.selection-toolbar-content{padding:0 8px;height:48px}#selectionCount{display:none}.selection-info:after{display:none}}.pwa-install-banner{position:fixed;bottom:0;left:0;right:0;z-index:var(--z-modal-content, 1001);display:none;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);margin:var(--spacing-md);margin-bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom,0px));background:linear-gradient(135deg,#3b82f6f2,#9333eae6);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:var(--radius-xl, 16px);box-shadow:0 -4px 30px #3b82f640,0 0 0 1px #fff3 inset;transform:translateY(120%);opacity:0;transition:transform .5s cubic-bezier(.34,1.56,.64,1),opacity .4s ease}.pwa-install-banner.visible{transform:translateY(0);opacity:1}.pwa-install-banner.hiding{transform:translateY(120%);opacity:0;transition:transform .4s cubic-bezier(.55,0,1,.45),opacity .3s ease}.pwa-banner-content{display:flex;align-items:center;gap:var(--spacing-md)}.pwa-banner-icon{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#fff3;border-radius:var(--radius-lg, 12px);box-shadow:0 2px 8px #0000001a}.pwa-banner-icon img{width:32px;height:32px;border-radius:var(--radius-sm, 6px)}.pwa-banner-icon i{font-size:1.5rem;color:#fff}.pwa-banner-text{flex:1;min-width:0}.pwa-banner-title{margin:0;font-size:1rem;font-weight:600;color:#fff;line-height:1.3}.pwa-banner-subtitle{margin:2px 0 0;font-size:.85rem;color:#ffffffd9;line-height:1.3}.pwa-banner-actions{display:flex;align-items:center;gap:var(--spacing-md);flex-shrink:0}.pwa-install-banner .btn-install{padding:var(--spacing-sm) var(--spacing-md);background:#fff;color:var(--primary-color);font-weight:600;font-size:.9rem;border:none;border-radius:var(--radius-md, 8px);cursor:pointer;transition:all var(--transition-fast)}.pwa-install-banner .btn-install:hover{background:#ffffffe6;transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.pwa-install-banner .btn-install:active{transform:translateY(0)}.pwa-install-banner .btn-dismiss{padding:var(--spacing-xs);background:transparent;color:#ffffffb3;border:none;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast)}.pwa-install-banner .btn-dismiss:hover{color:#fff;background:#ffffff26}.pwa-ios-guide{display:none;flex-direction:column;gap:var(--spacing-xs);padding-top:var(--spacing-sm);border-top:1px solid rgba(255,255,255,.2)}.pwa-ios-step{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.85rem;color:#ffffffe6}.pwa-ios-step i{width:20px;text-align:center;color:#fff}.pwa-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal, 1000);display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:all .3s ease}.pwa-modal-overlay.visible{opacity:1;visibility:visible}.pwa-modal{width:100%;max-width:360px;background:var(--bg-card);border-radius:var(--radius-xl, 16px);box-shadow:var(--shadow-xl);overflow:hidden;transform:scale(.9) translateY(20px);transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.pwa-modal-overlay.visible .pwa-modal{transform:scale(1) translateY(0)}.pwa-modal-header{padding:var(--spacing-xl) var(--spacing-lg) var(--spacing-lg);text-align:center;background:linear-gradient(180deg,rgba(var(--primary-rgb, 108, 92, 231),.1) 0%,transparent 100%)}.pwa-modal-icon{width:72px;height:72px;margin:0 auto var(--spacing-md);background:var(--bg-elevated);border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-lg);display:flex;align-items:center;justify-content:center;overflow:hidden}.pwa-modal-icon img{width:56px;height:56px}.pwa-modal-header h3{margin:0;font-size:1.25rem;font-weight:700;color:var(--text-primary)}.pwa-modal-header p{margin:var(--spacing-xs) 0 0;font-size:.9rem;color:var(--text-secondary)}.pwa-modal-steps{padding:var(--spacing-md) var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm)}.pwa-step{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-subtle);border-radius:var(--radius-md, 8px)}.pwa-step-number{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--primary-color);color:#fff;font-size:.85rem;font-weight:700;border-radius:var(--radius-full)}.pwa-step-content{display:flex;align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;font-size:.95rem;color:var(--text-primary)}.pwa-step-text{color:var(--text-secondary)}.pwa-step-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--bg-elevated);border-radius:var(--radius-sm, 6px);box-shadow:var(--shadow-sm);color:var(--primary-color);font-size:.9rem}.pwa-step-label{font-weight:600}.pwa-step-highlight{padding:2px 10px;background:var(--primary-color);color:#fff;font-weight:600;border-radius:var(--radius-sm, 6px)}.pwa-modal-footer{padding:var(--spacing-md) var(--spacing-lg) var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm);border-top:1px solid var(--border-subtle)}.pwa-modal-footer .btn-primary{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-weight:600}.pwa-modal-footer .btn-text{padding:var(--spacing-xs);background:transparent;border:none;color:var(--text-tertiary);font-size:.85rem;cursor:pointer;transition:color var(--transition-fast)}.pwa-modal-footer .btn-text:hover{color:var(--text-secondary)}#installPwaBtn{position:relative}#installPwaBtn:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:0;background:var(--primary-color);border-radius:var(--radius-full);transition:height .3s ease}#installPwaBtn:hover:before{height:60%}#installPwaBtn i{color:var(--primary-color)}@keyframes pwa-pulse{0%,to{box-shadow:0 0 rgba(var(--primary-rgb, 108, 92, 231),.4)}50%{box-shadow:0 0 0 8px rgba(var(--primary-rgb, 108, 92, 231),0)}}.pwa-install-banner.attention{animation:pwa-pulse 2s ease-in-out 3}@media (min-width: 769px){.pwa-install-banner{display:none!important}}@media (min-width: 481px) and (max-width: 768px){.pwa-install-banner{margin:var(--spacing-md);margin-bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom,0px));max-width:500px;left:50%;right:auto;transform:translate(-50%) translateY(120%)}.pwa-install-banner.visible{transform:translate(-50%) translateY(0)}.pwa-install-banner.hiding{transform:translate(-50%) translateY(120%)}}@media (max-width: 480px){.pwa-install-banner{margin:var(--spacing-sm);margin-bottom:calc(var(--spacing-sm) + env(safe-area-inset-bottom,0px));padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg, 12px)}.pwa-banner-content{flex-wrap:wrap}.pwa-banner-actions{width:100%;justify-content:flex-end;margin-top:var(--spacing-xs)}.pwa-banner-icon{width:40px;height:40px}.pwa-banner-icon img{width:28px;height:28px}.pwa-banner-title{font-size:.95rem}.pwa-banner-subtitle,.pwa-ios-step{font-size:.8rem}.pwa-ios-step i{width:18px;font-size:.85rem}}@media (max-width: 360px){.pwa-install-banner{margin:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm)}.pwa-banner-icon{width:36px;height:36px}.pwa-banner-icon img{width:24px;height:24px}.pwa-banner-title{font-size:.9rem}.pwa-banner-subtitle{font-size:.75rem}.btn-dismiss{padding:4px}.btn-dismiss i{font-size:.85rem}}[data-theme=dark] .pwa-install-banner{background:linear-gradient(135deg,#6c5ce7d9,#a29bfebf);box-shadow:0 -4px 30px #6c5ce740,0 0 0 1px #ffffff1a inset}[data-theme=dark] .pwa-modal{box-shadow:0 25px 50px -12px #00000080,0 0 0 1px #ffffff0d}[data-theme=dark] .pwa-step{background:var(--bg-elevated)}.pwa-update-banner{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%) translateY(100px);z-index:var(--z-toast);display:flex;flex-direction:column;padding:0;background:var(--card-glass-bg);backdrop-filter:blur(var(--glass-surface-blur, 20px)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-surface-blur, 20px)) saturate(180%);border:1px solid var(--card-glass-border);border-radius:var(--radius-lg);box-shadow:0 10px 40px -10px #0000001a,0 0 0 1px #ffffff1a;animation:pwa-toast-enter .5s cubic-bezier(.16,1,.3,1) forwards;width:fit-content;max-width:min(540px,92vw);overflow:hidden}[data-theme=dark] .pwa-update-banner{background:linear-gradient(#ffffff08,#ffffff08),rgba(var(--surface-color-rgb),.8);border-color:#ffffff1a;box-shadow:0 10px 30px -5px #00000059}@keyframes pwa-toast-enter{to{transform:translate(-50%) translateY(0)}}.pwa-update-banner .pwa-banner-main{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);gap:var(--space-4);width:100%}.pwa-update-banner .pwa-banner-text{display:flex;align-items:center;gap:var(--space-3);min-width:0;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius-md);transition:background-color .2s ease;padding:var(--space-2) var(--space-3);margin:calc(var(--space-2) * -1) calc(var(--space-3) * -1)}.pwa-update-banner .pwa-banner-text:hover{background-color:#00000008}[data-theme=dark] .pwa-update-banner .pwa-banner-text:hover{background-color:#ffffff0d}@keyframes gift-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}.pwa-update-banner .pwa-gift-icon{font-size:2rem;color:var(--primary-color);filter:drop-shadow(0 2px 8px rgba(var(--primary-color-rgb),.25));flex-shrink:0;animation:gift-wiggle 2s ease-in-out infinite;animation-delay:1s}.pwa-update-banner .pwa-banner-text:hover .pwa-gift-icon{animation:gift-wiggle .5s ease-in-out}.pwa-update-banner .pwa-text-col{display:flex;flex-direction:column;justify-content:center;min-width:0}.pwa-update-banner .pwa-title{font-weight:600;color:var(--text-primary);font-size:.9rem;line-height:1.3;margin-bottom:2px}.pwa-update-banner .pwa-subtitle{font-size:.75rem;color:var(--text-secondary);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.pwa-update-banner .pwa-banner-actions{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.pwa-update-banner .pwa-banner-details{max-height:0;overflow:hidden;background:var(--bg-secondary);border-top:1px solid transparent;transition:max-height .4s cubic-bezier(.16,1,.3,1),border-color .3s ease}.pwa-update-banner .pwa-banner-details.expanded{max-height:200px;border-top-color:var(--border-color)}.pwa-update-banner .pwa-details-content{padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--font-sm)}.pwa-update-banner .pwa-detail-row{display:flex;align-items:flex-start;gap:8px;color:var(--text-secondary)}.pwa-update-banner .pwa-detail-label{font-weight:600;min-width:70px;color:var(--text-primary)}.pwa-update-banner .pwa-detail-value{color:var(--text-secondary);line-height:1.4}.pwa-update-banner .pwa-detail-code{font-family:JetBrains Mono,Menlo,monospace;background:var(--bg-tertiary);color:var(--text-primary);padding:1px 6px;border-radius:4px;font-size:.7rem;letter-spacing:.5px;border:1px solid var(--border-color)}.pwa-update-banner .pwa-info-btn{width:28px;height:28px;border-radius:50%;background:transparent;color:var(--text-tertiary);border:1px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.pwa-update-banner .pwa-info-btn:hover,.pwa-update-banner .pwa-info-btn.active{background:var(--item-hover-bg);color:var(--text-primary)}.pwa-update-banner .pwa-info-btn iconify-icon{font-size:var(--font-sm);transition:transform .3s ease}.pwa-update-banner .pwa-info-btn.active iconify-icon{transform:rotate(180deg)}.pwa-update-banner .btn-primary{padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);font-size:var(--font-sm)}.pwa-update-banner .pwa-close-btn{width:var(--close-btn-size);height:var(--close-btn-size);display:flex;align-items:center;justify-content:center;background:var(--close-btn-bg);border:none;color:var(--close-btn-color);font-size:var(--close-btn-icon-size);cursor:pointer;transition:all var(--transition-fast);margin-left:2px;border-radius:50%;opacity:.8}.pwa-update-banner .pwa-close-btn:hover{background:var(--close-btn-hover-bg);color:var(--close-btn-hover-color);transform:none;opacity:1}@media (max-width: 480px){.pwa-update-banner{width:calc(100vw - var(--space-6));bottom:var(--space-4);transform:translate(-50%) translateY(120px)}.pwa-update-banner .pwa-banner-main{flex-direction:column;align-items:stretch;padding:var(--space-4);gap:var(--space-4)}.pwa-update-banner .pwa-banner-text{width:100%;justify-content:center;text-align:center;flex-direction:column;gap:var(--space-2)}.pwa-update-banner .pwa-gift-icon{font-size:2rem;margin-bottom:4px}.pwa-update-banner .pwa-subtitle{white-space:normal;margin-top:2px}.pwa-update-banner .pwa-banner-actions{width:100%;justify-content:space-between;padding-top:4px;gap:var(--space-3)}.pwa-update-banner .btn-primary{flex-grow:1;justify-content:center;display:flex;height:40px;align-items:center;font-size:var(--font-base)}.pwa-update-banner .pwa-info-btn,.pwa-update-banner .pwa-close-btn{width:40px;height:40px;background:var(--bg-secondary);border-radius:var(--radius-md)}}.tippy-box{font-family:inherit;font-size:13px;font-weight:500;line-height:1.5}.tippy-box[data-theme~=custom-theme]{background-color:#fffffff2;color:var(--text-primary);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:none;border-radius:8px;box-shadow:0 4px 20px #00000026,0 2px 8px #0000001a;font-size:13px;font-weight:500;text-align:center}.tippy-box[data-theme~=custom-theme] .tippy-arrow{display:none!important}[data-theme=dark] .tippy-box[data-theme~=custom-theme]{background-color:#27272af2;color:var(--text-primary);border:1px solid rgba(255,255,255,.08);box-shadow:0 4px 20px #00000080}.tippy-box[data-theme~=custom-theme][data-placement^=top]>.tippy-arrow:before,.tippy-box[data-theme~=custom-theme][data-placement^=bottom]>.tippy-arrow:before{left:50%;transform:translate(-50%)}.tippy-box[data-theme~=custom-theme][data-placement^=left]>.tippy-arrow:before,.tippy-box[data-theme~=custom-theme][data-placement^=right]>.tippy-arrow:before{top:50%;transform:translateY(-50%)}.tippy-box[data-theme~=custom-theme][data-placement^=top]>.tippy-arrow:before{bottom:-7px;border-width:7px 7px 0;border-top-color:#27272af2}.tippy-box[data-theme~=custom-theme][data-placement^=bottom]>.tippy-arrow:before{top:-7px;border-width:0 7px 7px;border-bottom-color:#27272af2}.tippy-box[data-theme~=custom-theme][data-placement^=left]>.tippy-arrow:before{right:-7px;border-width:7px 0 7px 7px;border-left-color:#27272af2}.tippy-box[data-theme~=custom-theme][data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:7px 7px 7px 0;border-right-color:#27272af2}.tippy-content{padding:8px 12px}body.modal-open,body.side-panel-open{overflow:hidden}@media (max-width: 1024px){:root{--sidebar-width: 380px}}@media (max-width: 768px){.form-row,.period-main-row,.previous-period-group .form-row{grid-template-columns:1fr}}@media print{.sidebar,.header{display:none!important}.app-layout{display:block;height:auto}.main-content-wrapper{height:auto;overflow:visible}.main-content{padding:0;max-width:none}.appreciation-result{break-inside:avoid;border:1px solid var(--border-color);box-shadow:none}}.tippy-box .kbd-hint{margin-left:0;margin-top:4px;display:inline-block}.tippy-box[data-animation=organic-scale]{transform-origin:bottom center;transition-timing-function:cubic-bezier(.16,1,.3,1)}.tippy-box[data-animation=organic-scale][data-placement^=top]{transform-origin:bottom center}.tippy-box[data-animation=organic-scale][data-placement^=bottom]{transform-origin:top center}.tippy-box[data-animation=organic-scale][data-placement^=left]{transform-origin:right center}.tippy-box[data-animation=organic-scale][data-placement^=right]{transform-origin:left center}.tippy-box[data-animation=organic-scale][data-state=hidden]{opacity:0;transform:scale(.92) translateY(4px)}.tippy-box[data-animation=organic-scale][data-state=visible]{opacity:1;transform:scale(1) translateY(0)}.skip-link{position:absolute;top:-100%;left:50%;transform:translate(-50%);background:var(--primary-color);color:#fff;padding:12px 24px;border-radius:0 0 8px 8px;z-index:var(--z-skip-link);font-weight:600;text-decoration:none;box-shadow:var(--shadow-lg);transition:top var(--transition-fast)}.skip-link:focus{top:0;outline:none}:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}button:focus-visible,.btn:focus-visible,.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-icon:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px;box-shadow:0 0 0 4px rgba(var(--primary-color-rgb),.25)}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none}.focus-appreciation-text:focus-visible{outline:none}a:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px;border-radius:2px}.appreciation-result:focus-visible,.student-card:focus-visible,.stat-card:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px;box-shadow:var(--shadow-md),0 0 0 4px rgba(var(--primary-color-rgb),.15)}input[type=checkbox]:focus-visible+label:before,input[type=radio]:focus-visible+label:before{outline:2px solid var(--primary-color);outline-offset:2px}.tab-btn:focus-visible,.settings-tab-btn:focus-visible{outline:2px solid var(--primary-color);outline-offset:-2px}.close-modal-btn:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px;border-radius:50%}:focus:not(:focus-visible){outline:none}@media (prefers-contrast: high){:focus-visible{outline-width:3px}.btn-primary{border:2px solid currentColor}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:focus,.sr-only-focusable:active{position:static;width:auto;height:auto;padding:inherit;margin:inherit;overflow:visible;clip:auto;white-space:normal}
