@import "https://fonts.googleapis.com/css2?family=Quicksand:wght@400;500;600;700&family=Nunito:wght@400;600;700;800&display=swap";
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--radius-xs:.125rem;--radius-sm:.25rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.w-40{width:calc(var(--spacing) * 40)}.w-60{width:calc(var(--spacing) * 60)}.w-80{width:calc(var(--spacing) * 80)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-display:"Nunito", sans-serif;--font-body:"Quicksand", sans-serif;--primary:#7c5ce7;--primary-light:#b8a9f0;--primary-dark:#6236c7;--primary-bg:#ede8ff;--primary-glow:#7c5ce726;--coral:#ff7675;--coral-light:#fab1a0;--teal:#00cec9;--teal-light:#81ecec;--yellow:#fdcb6e;--yellow-light:#ffeaa7;--pink:#fd79a8;--blue:#74b9ff;--green:#55efc4;--orange:#e17055;--bg:#eef0fa;--bg-warm:#ede8ff;--surface:#fff;--surface-hover:#f0ecff;--border:#c8cedf;--border-light:#d8ddf0;--text:#2b2d42;--text-muted:#737a8c;--text-light:#a0a7b8;--radius:16px;--radius-sm:10px;--radius-xs:6px;--shadow-sm:0 2px 6px #2b2d4214, 0 1px 3px #2b2d420d;--shadow:0 4px 16px #2b2d421a, 0 2px 6px #2b2d420f;--shadow-lg:0 12px 40px #2b2d4224, 0 4px 12px #2b2d4214;--transition-fast:.15s cubic-bezier(.4,0,.2,1);--transition:.25s cubic-bezier(.4,0,.2,1);--sidebar-width:280px;--sidebar-collapsed-width:64px;--header-height:60px}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--primary:#9b7ef8;--primary-light:#c4b5fd;--primary-dark:#7c5ce7;--primary-bg:#1f1a3d;--primary-glow:#9b7ef833;--coral:#ff8080;--coral-light:#ffb3b3;--teal:#00d6d1;--yellow:#ffd166;--orange:#f4845f;--green:#5bf5ce;--bg:#0e0e1a;--bg-warm:#16152a;--surface:#1a1a2e;--surface-hover:#22223c;--border:#303052;--border-light:#252542;--text:#e4e6f2;--text-muted:#8890a8;--text-light:#525a72;--shadow-sm:0 2px 6px #0006, 0 1px 2px #0000004d;--shadow:0 4px 16px #00000080, 0 1px 4px #0000004d;--shadow-lg:0 12px 40px #000000a6, 0 4px 12px #0006}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:focus-visible{outline:2px solid var(--primary-light);outline-offset:2px}html{-webkit-font-smoothing:antialiased;font-size:16px}body{font-family:var(--font-body);color:var(--text);background:var(--bg);line-height:1.6}a{color:inherit;text-decoration:none}button{font-family:var(--font-body);cursor:pointer}input,select,textarea{font-family:var(--font-body);background:var(--surface);color:var(--text);font-size:.95rem}.auth-page{background:linear-gradient(135deg,#f3f0ff 0%,#f8f9fc 50%,#fdf2f8 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex;position:relative;overflow:hidden}.auth-decoration{pointer-events:none;position:absolute;inset:0}.deco-circle{opacity:.15;border-radius:50%;position:absolute}.deco-circle.c1{background:var(--coral);width:400px;height:400px;animation:8s ease-in-out infinite float;top:-100px;right:-80px}.deco-circle.c2{background:var(--teal);width:300px;height:300px;animation:10s ease-in-out infinite reverse float;bottom:-80px;left:-60px}.deco-circle.c3{background:var(--yellow);width:200px;height:200px;animation:12s ease-in-out infinite float;top:30%;left:10%}.deco-circle.c4{background:var(--primary);width:150px;height:150px;animation:9s ease-in-out infinite reverse float;bottom:20%;right:15%}@keyframes float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-20px)rotate(5deg)}}.auth-card{background:var(--surface);width:100%;max-width:440px;box-shadow:var(--shadow-lg);z-index:1;border-radius:24px;padding:48px 40px;position:relative}.auth-header{text-align:center;margin-bottom:32px}.auth-logo{background:linear-gradient(135deg, var(--primary), var(--coral));color:#fff;border-radius:24px;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:20px;display:inline-flex;position:relative}.auth-logo .sparkle{color:var(--yellow);animation:2s ease-in-out infinite sparkle;position:absolute;top:-4px;right:-4px}@keyframes sparkle{0%,to{opacity:1;transform:scale(1)rotate(0)}50%{opacity:.7;transform:scale(1.2)rotate(15deg)}}.auth-header h1{font-family:var(--font-display);color:var(--text);margin-bottom:4px;font-size:1.8rem;font-weight:800}.auth-header p{color:var(--text-muted);font-size:1rem}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-error{color:#dc2626;border-radius:var(--radius-sm);background:#fef2f2;border:1px solid #fecaca;padding:12px 16px;font-size:.9rem}.input-group{background:var(--bg);border:2px solid var(--border-light);border-radius:var(--radius-sm);align-items:center;gap:12px;padding:0 16px;transition:border-color .2s,box-shadow .2s;display:flex}.input-group:focus-within{border-color:var(--primary-light);box-shadow:0 0 0 4px #7c5ce714}.input-group svg{color:var(--text-muted);flex-shrink:0}.input-group input{background:0 0;border:none;outline:none;width:100%;padding:14px 0;font-size:1rem}.auth-btn{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;border-radius:var(--radius-sm);transition:transform var(--transition-fast), box-shadow var(--transition-fast);border:none;justify-content:center;align-items:center;gap:8px;margin-top:8px;padding:14px 24px;font-size:1.05rem;font-weight:700;display:flex}.auth-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px #7c5ce74d}.auth-btn:active{transform:translateY(0)scale(.98)}.auth-btn:disabled{opacity:.6;transform:none}.auth-switch{text-align:center;color:var(--text-muted);margin-top:24px;font-size:.95rem}.auth-switch a{color:var(--primary);font-weight:600}.auth-switch a:hover{color:var(--primary-dark)}.app-layout{min-height:100vh;display:flex}.mobile-header{height:var(--header-height);background:var(--surface);border-bottom:1px solid var(--border-light);z-index:100;align-items:center;gap:12px;padding:0 16px;display:none;position:fixed;top:0;left:0;right:0}.header-logo{font-family:var(--font-display);color:var(--primary);align-items:center;gap:8px;font-size:1.1rem;font-weight:800;display:flex}.menu-btn{color:var(--text);background:0 0;border:none;padding:8px}.sidebar{width:var(--sidebar-width);background:linear-gradient(180deg, var(--surface), #f0ecff);z-index:200;flex-direction:column;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;left:0;box-shadow:2px 0 16px #2b2d4214}[data-theme=dark] .sidebar{background:linear-gradient(180deg, var(--surface), #13122a);box-shadow:2px 0 20px #00000080}.sidebar-logo{color:var(--primary);align-items:center;gap:12px;padding:24px 20px;display:flex}.sidebar-logo h1{font-family:var(--font-display);background:linear-gradient(135deg, var(--primary), var(--coral));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.3rem;font-weight:800}.sidebar-subtitle{color:var(--text-muted);margin-top:-2px;font-size:.75rem}.sidebar-nav{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:4px;padding:12px 14px;display:flex;overflow-y:auto}.nav-item{border-radius:var(--radius-sm);color:var(--text-muted);transition:all var(--transition);align-items:center;gap:12px;padding:13px 18px;font-size:1rem;font-weight:600;display:flex}.nav-item:hover{background:var(--primary-bg);color:var(--primary);transform:translate(2px)}.nav-item.active{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;box-shadow:0 4px 12px #7c5ce740}.nav-arrow{opacity:.5;margin-left:auto}.nav-extra-toggle{border-radius:var(--radius-sm);cursor:pointer;text-align:left;width:100%;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;transition:color var(--transition);background:0 0;border:none;align-items:center;gap:10px;margin-top:4px;padding:7px 18px;font-size:.75rem;font-weight:700;display:flex}.nav-extra-toggle:hover{color:var(--primary)}.nav-extra-toggle.open{color:var(--text)}.nav-extra-chevron{flex-shrink:0;transition:transform .2s}.nav-extra-toggle.open .nav-extra-chevron{transform:rotate(0)}.nav-extra-toggle:not(.open) .nav-extra-chevron{transform:rotate(-90deg)}.nav-item-extra{padding-left:26px;font-size:.95rem}.sidebar-footer{border-top:1px solid var(--border-light);padding:16px}.theme-select-wrap{align-items:center;margin-bottom:8px;display:flex;position:relative}.theme-select-icon{color:var(--text-muted);pointer-events:none;flex-shrink:0;position:absolute;left:10px}.theme-select{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);width:100%;color:var(--text);font-family:var(--font-body);cursor:pointer;appearance:none;padding:9px 12px 9px 30px;font-size:.85rem;font-weight:600;transition:border-color .2s,box-shadow .2s}.theme-select:hover{border-color:var(--primary-light)}.theme-select:focus{border-color:var(--primary-light);box-shadow:0 0 0 3px var(--primary-glow);outline:none}.user-info{align-items:center;gap:12px;margin-bottom:12px;display:flex}.user-avatar{background:linear-gradient(135deg, var(--teal), var(--blue));color:#fff;width:40px;height:40px;font-weight:800;font-family:var(--font-display);border-radius:12px;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.user-details{flex-direction:column;display:flex;overflow:hidden}.user-name{white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:700;overflow:hidden}.user-email{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.logout-btn{border:1px solid var(--border);border-radius:var(--radius-xs);width:100%;color:var(--text-muted);background:0 0;align-items:center;gap:8px;padding:10px 12px;font-size:.85rem;font-weight:600;transition:all .2s;display:flex}.logout-btn:hover{color:var(--coral);border-color:var(--coral-light);background:#fef2f2}.sidebar-overlay{z-index:150;background:#0000004d;display:none;position:fixed;inset:0}.main-content{margin-left:var(--sidebar-width);flex:1;min-height:100vh;transition:margin-left .3s cubic-bezier(.4,0,.2,1)}.sidebar-collapse-btn{background:var(--surface);border:1px solid var(--border-light);width:28px;height:28px;color:var(--text-muted);cursor:pointer;z-index:10;box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:none;position:absolute;top:28px;right:-14px}.sidebar-collapse-btn:hover{color:var(--primary);border-color:var(--primary-light)}@media (min-width:769px){.sidebar-collapse-btn{display:flex}}.sidebar{transition:width .3s cubic-bezier(.4,0,.2,1)}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.sidebar.collapsed .sidebar-logo-text{display:none}.sidebar.collapsed .sidebar-logo{justify-content:center;padding:24px 8px}.sidebar.collapsed .sidebar-collapse-btn{top:28px;right:-14px}.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-arrow{display:none}.sidebar.collapsed .nav-item{justify-content:center;padding:12px}.sidebar.collapsed .nav-item.active{justify-content:center}.sidebar.collapsed .nav-item-extra{padding-left:12px}.sidebar.collapsed .nav-extra-toggle{justify-content:center;padding:7px 12px}.sidebar.collapsed .nav-extra-toggle .nav-extra-chevron{margin:0}.sidebar.collapsed .sidebar-nav{padding:12px 8px}.sidebar.collapsed .user-info .user-details{display:none}.sidebar.collapsed .user-info{justify-content:center}.sidebar.collapsed .theme-select-wrap{display:none}.sidebar.collapsed .logout-btn{justify-content:center;padding:10px}.sidebar.collapsed~.main-content{margin-left:var(--sidebar-collapsed-width)}.page{max-width:1200px;padding:36px 44px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:32px;display:flex}.page-title{font-family:var(--font-display);color:var(--text);align-items:center;gap:12px;font-size:1.85rem;font-weight:800;display:flex}.page-subtitle{color:var(--text-muted);margin-top:2px;font-size:1rem;font-weight:500}.wave{transform-origin:70% 70%;animation:2.5s ease-in-out infinite wave;display:inline-block}@keyframes wave{0%,to{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}60%,to{transform:rotate(0)}}.btn{border-radius:var(--radius-sm);transition:all var(--transition-fast);white-space:nowrap;border:none;align-items:center;gap:8px;padding:11px 22px;font-size:.95rem;font-weight:700;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff;box-shadow:0 2px 8px #7c5ce733}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px #7c5ce74d}.btn-primary:active{transform:translateY(0)scale(.98)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-loading{pointer-events:none;opacity:.7}.btn-loading .spinner{border-width:2px;width:16px;height:16px}.btn-secondary{background:var(--surface);color:var(--text);border:2px solid var(--border)}.btn-secondary:hover{border-color:var(--primary-light);color:var(--primary)}.btn-ghost{color:var(--text-muted);background:0 0;border:none}.btn-ghost:hover{background:var(--bg);color:var(--text)}.btn-ghost.danger:hover{color:var(--coral);background:#fef2f2}.btn-sm{padding:6px 12px;font-size:.8rem}.icon-btn{border-radius:var(--radius-xs);width:38px;height:38px;color:var(--text-muted);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--bg);color:var(--text)}.icon-btn.danger:hover{color:var(--coral);background:#fef2f2}.loading-state,.empty-state{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;padding:72px 20px;display:flex}.empty-state.small{padding:48px 20px}.empty-state h2{font-family:var(--font-display);color:var(--text);margin:16px 0 8px;font-size:1.2rem}.empty-state p{margin-bottom:20px;font-size:.95rem}.empty-state svg{color:var(--primary-light)}.spinner{border:4px solid var(--border-light);border-top-color:var(--primary);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}.spinner-sm{border-width:2px;width:16px;height:16px}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:var(--border-light);border-radius:var(--radius-xs);position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffff4d,#0000);animation:1.5s infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:14px;margin-bottom:8px}.skeleton-text.w-60{width:60%}.skeleton-text.w-40{width:40%}.skeleton-text.w-80{width:80%}.skeleton-title{width:50%;height:20px;margin-bottom:12px}.skeleton-card{background:var(--surface);border:2px solid var(--border-light);border-radius:var(--radius);align-items:center;gap:16px;padding:24px;display:flex}.skeleton-avatar{border-radius:16px;flex-shrink:0;width:56px;height:56px}.skeleton-card-body{flex-direction:column;flex:1;gap:6px;display:flex}.skeleton-row{border-bottom:1px solid var(--border-light);align-items:center;gap:12px;padding:12px 16px;display:flex}.skeleton-circle{border-radius:50%;flex-shrink:0;width:32px;height:32px}.skeleton-row-body{flex-direction:column;flex:1;gap:4px;display:flex}.skeleton-badge{border-radius:12px;width:48px;height:24px}.class-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;display:grid}.class-card{background:var(--surface);border:2px solid var(--border-light);border-radius:var(--radius);transition:all var(--transition);align-items:center;gap:16px;padding:24px;animation:.3s backwards cardEnter;display:flex}.class-card:hover{border-color:var(--primary-light);box-shadow:var(--shadow), 0 0 0 4px var(--primary-glow);transform:translateY(-3px)}.class-card-emoji{background:var(--bg-warm);border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;font-size:2.2rem;display:flex}.class-card-content{flex:1;min-width:0}.class-card-content h3{font-family:var(--font-display);font-size:1.15rem;font-weight:800}.class-year{background:var(--primary-bg);color:var(--primary);border-radius:20px;margin-top:4px;padding:2px 10px;font-size:.75rem;font-weight:700;display:inline-block}.class-card-stats{color:var(--text-muted);gap:16px;margin-top:8px;font-size:.85rem;display:flex}.class-card-stats span{align-items:center;gap:4px;display:flex}.class-card-arrow{color:var(--text-light);flex-shrink:0}.tabs{background:var(--bg);border-radius:var(--radius-sm);gap:6px;margin-bottom:24px;padding:4px;display:flex}.tab{border-radius:var(--radius-xs);color:var(--text-muted);transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:8px;padding:11px 22px;font-size:.95rem;font-weight:600;display:flex}.tab:hover{color:var(--text)}.tab.active{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}.tab-content{animation:.2s fadeIn}.tab-actions{margin-bottom:20px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.student-list{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);overflow:hidden}.student-row{border-bottom:1px solid var(--border-light);align-items:center;gap:12px;padding:16px 22px;transition:background .15s;display:flex}.student-row:last-child{border-bottom:none}.student-row:hover{background:var(--surface-hover)}.student-number{background:var(--bg);width:28px;height:28px;color:var(--text-muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex}.student-info{flex:1;min-width:0}.student-info strong{font-weight:700;display:block}.student-meta{color:var(--text-muted);font-size:.8rem}.student-actions{gap:4px;display:flex}.subject-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;display:grid}.subject-card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);transition:all var(--transition);border-left:5px solid;padding:24px}.subject-card:hover{box-shadow:var(--shadow), 0 0 0 4px var(--primary-glow);transform:translateY(-3px)}.subject-card-header{align-items:center;gap:10px;margin-bottom:12px;display:flex}.subject-color-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.subject-card-header h3{font-family:var(--font-display);flex:1;font-weight:700}.subject-card-actions{gap:2px;display:flex}.subject-weights{color:var(--text-muted);gap:12px;margin-bottom:16px;font-size:.8rem;display:flex}.subject-open-btn{background:var(--bg);border-radius:var(--radius-xs);width:100%;color:var(--primary);justify-content:center;align-items:center;gap:6px;padding:8px;font-size:.85rem;font-weight:600;transition:all .2s;display:flex}.subject-open-btn:hover{background:var(--primary-bg)}.subject-dot-lg{border-radius:50%;width:16px;height:16px;display:inline-block}.grades-table-wrap{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);overflow-x:auto}.grades-table{border-collapse:collapse;width:100%}.grades-table th,.grades-table td{text-align:left;border-bottom:1px solid var(--border-light);padding:14px 18px;font-size:.95rem}.grades-table th{background:var(--bg);text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:.82rem;font-weight:700}.grades-table tr:nth-child(2n){background:#f3f0ff4d}.student-name-cell{white-space:nowrap;font-weight:600}.grade-badge{color:#fff;text-shadow:0 1px 1px #0000001a;border-radius:20px;align-items:center;gap:2px;margin:2px;padding:5px 12px;font-size:.85rem;font-weight:700;display:inline-flex;position:relative;box-shadow:0 1px 3px #2b2d421f}.grade-delete{color:#ffffffb3;cursor:pointer;background:0 0;border:none;padding:0 0 0 4px;font-size:1rem;line-height:1;display:none}.grade-badge:hover .grade-delete{display:inline}.grade-avg{font-size:1.05rem;font-weight:800;font-family:var(--font-display)}.plan-list{flex-direction:column;gap:16px;display:flex}.plan-card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);transition:box-shadow var(--transition);padding:24px}.plan-card:hover{box-shadow:var(--shadow-sm)}.plan-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.plan-card-actions{gap:4px;display:flex}.plan-date{background:var(--primary-bg);color:var(--primary);border-radius:20px;margin-bottom:6px;padding:3px 10px;font-size:.75rem;font-weight:700;display:inline-block}.plan-topic{font-family:var(--font-display);font-size:1.1rem;font-weight:700}.plan-phases{flex-direction:column;gap:12px;display:flex}.plan-phase{border-left:3px solid var(--border);padding-left:16px}.phase-label{color:var(--text-muted);margin-bottom:2px;font-size:.8rem;font-weight:700;display:block}.plan-phase p{color:var(--text);font-size:.9rem}.plan-materials{border-top:1px solid var(--border-light);margin-top:16px;padding-top:16px}.plan-materials-header{color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.85rem;font-weight:600;display:flex}.material-list{flex-direction:column;gap:8px;display:flex}.material-card,.material-row{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-sm);align-items:center;gap:12px;padding:12px 16px;transition:background .15s;display:flex}.material-card:hover,.material-row:hover{background:var(--surface-hover)}.material-row{padding:8px 12px;font-size:.85rem}.material-row span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.material-info{flex:1;min-width:0}.material-info strong{text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.material-info span{color:var(--text-muted);font-size:.8rem;display:block}.material-linked{color:var(--primary)!important;font-weight:600!important}.material-actions{gap:4px;display:flex}.timetable-wrap{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);overflow-x:auto}.timetable{border-collapse:collapse;width:100%;min-width:700px}.timetable th,.timetable td{text-align:center;border:1px solid var(--border-light);padding:0}.timetable th{background:var(--bg);color:var(--text-muted);padding:14px 8px;font-size:.85rem;font-weight:700}.tt-time-col{width:120px}.tt-time-cell{background:var(--bg);text-align:left!important;padding:8px 12px!important}.tt-slot-label{color:var(--text);font-size:.8rem;font-weight:700;display:block}.tt-slot-time{color:var(--text-muted);font-size:.75rem;display:block}.tt-break-row{background:var(--bg-warm)}.tt-break-cell{color:var(--text-muted);font-size:.8rem;font-weight:600;padding:8px!important}.tt-cell{cursor:pointer;vertical-align:middle;min-height:60px;transition:background .15s;padding:10px 8px!important}.tt-cell:hover{background:var(--primary-bg)}.tt-filled{border-left:4px solid var(--primary)!important}.tt-free{background:#f5f3ff}.tt-subject{color:var(--text);font-size:.85rem;font-weight:700;display:block}.tt-class{color:var(--primary);font-size:.75rem;font-weight:600;display:block}.tt-room{color:var(--text-muted);margin-top:2px;font-size:.7rem;display:block}.tt-free-label{color:var(--orange);font-size:.85rem;font-weight:600}.tt-empty{color:var(--text-light);font-size:1.2rem}.config-slots{flex-direction:column;gap:10px;max-height:60vh;padding:16px 24px;display:flex;overflow-y:auto}.config-slot-row{background:var(--bg);border-radius:var(--radius-xs);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.config-slot-row.is-break{background:var(--bg-warm)}.config-slot-num{background:var(--surface);width:28px;height:28px;color:var(--text-muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex}.config-label{flex:1;min-width:100px}.config-slot-row input[type=time]{width:110px}.config-slot-row input,.config-slot-row select{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);padding:8px 10px;font-size:.85rem}.config-break-toggle{color:var(--text-muted);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;font-size:.85rem;font-weight:600;display:flex}.config-break-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#2b2d4259;justify-content:center;align-items:center;padding:20px;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--surface);width:100%;max-width:500px;max-height:90vh;box-shadow:var(--shadow-lg);border-radius:24px;animation:.2s modalIn;overflow-y:auto}.modal-lg{max-width:650px}@keyframes modalIn{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{justify-content:space-between;align-items:center;padding:28px 28px 0;display:flex}.modal-header h2{font-family:var(--font-display);align-items:center;gap:8px;font-size:1.2rem;font-weight:800;display:flex}.modal-form{flex-direction:column;gap:16px;padding:24px 28px 28px;display:flex}.modal-form label{flex-direction:column;gap:5px;display:flex}.modal-form label>span{color:var(--text-muted);font-size:.85rem;font-weight:600}.modal-form input,.modal-form select,.modal-form textarea{border:2px solid var(--border-light);border-radius:var(--radius-xs);background:var(--surface);padding:10px 14px;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.modal-form input:focus,.modal-form select:focus,.modal-form textarea:focus{border-color:var(--primary-light);outline:none;box-shadow:0 0 0 4px #7c5ce714}.modal-form textarea{resize:vertical}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-row.thirds{grid-template-columns:1fr 1fr 1fr}.form-section-title{color:var(--primary);border-top:1px solid var(--border-light);margin-top:4px;padding-top:8px;font-size:.85rem;font-weight:700}.form-warning{color:#b45309;border-radius:var(--radius-xs);background:#fffbeb;padding:8px 12px;font-size:.85rem;font-weight:600}.modal-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.color-picker{flex-wrap:wrap;gap:8px;display:flex}.color-swatch{cursor:pointer;width:36px;height:36px;transition:all var(--transition-fast);border:3px solid #0000;border-radius:10px}.color-swatch:hover{transform:scale(1.1)}.color-swatch.active{border-color:var(--text);box-shadow:0 0 0 2px white, 0 0 0 4px var(--text)}.wv-nav-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.wv-filter-select{border-radius:var(--radius-xs);border:2px solid var(--border-light);background:var(--surface);color:var(--text);padding:8px 12px;font-size:.9rem;font-weight:600}.wv-wrap{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);overflow-x:auto}.wv-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:700px}.wv-table th,.wv-table td{text-align:center;border:1px solid var(--border-light);padding:0}.wv-time-col{background:var(--bg);width:10%;min-width:90px}.wv-day-col{background:var(--bg);width:18%}.wv-day-col.wv-today{background:#7c3aed0f}.wv-day-col.wv-past{opacity:.75}.wv-day-label{color:var(--text-muted);padding-top:10px;font-size:.9rem;font-weight:700;display:block}.wv-day-date{color:var(--text);padding-bottom:8px;font-size:.8rem;display:block}.wv-time-cell{background:var(--bg);vertical-align:middle;text-align:left!important;padding:8px 12px!important}.wv-slot-label{color:var(--text);font-size:.8rem;font-weight:700;display:block}.wv-slot-time{color:var(--text-muted);font-size:.75rem;display:block}.wv-break-row{background:var(--bg-warm)}.wv-break-cell{color:var(--text-muted);font-size:.8rem;font-weight:600;padding:6px 8px!important}.wv-cell{cursor:pointer;vertical-align:top;min-height:56px;transition:background .15s;padding:8px 6px!important}.wv-cell:hover{background:var(--primary-bg)}.wv-cell.wv-today{background:#7c3aed0a}.wv-cell.wv-today:hover{background:#7c3aed1a}.wv-cell.wv-past{opacity:.85}.wv-cell.wv-filtered{cursor:default}.wv-lesson-card{text-align:left;border-radius:var(--radius-xs);border-left:4px solid var(--primary);background:var(--surface);padding:6px 8px;position:relative}.wv-subject{color:var(--text);font-size:.85rem;font-weight:700;display:block}.wv-class{color:var(--primary);font-size:.75rem;font-weight:600;display:block}.wv-room{color:var(--text-muted);margin-top:2px;font-size:.7rem;display:block}.wv-free{color:var(--orange);font-size:.9rem;font-weight:600}.wv-empty{color:var(--text-light);font-size:1rem}.wv-instance-badge{color:var(--teal);background:#00cec91a;border-radius:4px;padding:2px;display:inline-flex;position:absolute;top:4px;right:4px}.wv-break-clickable{cursor:pointer;text-align:center;transition:background .15s}.wv-break-clickable:hover{background:#e0f2fe}.wv-break-label{color:var(--text-light);align-items:center;display:inline-flex}.wv-break-duty{background:#fef3c7!important}.wv-break-duty:hover{background:#fde68a!important}.wv-duty-badge{color:#b45309;align-items:center;gap:4px;font-size:.75rem;font-weight:700;display:inline-flex}.ld-time-range{color:var(--text-muted);font-size:1rem;font-weight:400}.ld-subject-badge{vertical-align:middle;border-radius:20px;padding:2px 12px;font-size:.8rem;font-weight:700;display:inline-block}.ld-hint{color:var(--text-muted);margin-bottom:16px;font-size:.85rem}.ld-form{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);flex-direction:column;gap:16px;padding:24px;display:flex}.ld-form-group{flex-direction:column;gap:5px;display:flex}.ld-form-group>span{color:var(--text-muted);font-size:.85rem;font-weight:600}.ld-form-group input,.ld-form-group textarea{border:2px solid var(--border-light);border-radius:var(--radius-xs);background:var(--surface);resize:vertical;font-size:.95rem;font-family:var(--font-body);padding:10px 14px;transition:border-color .2s,box-shadow .2s}.ld-form-group input:focus,.ld-form-group textarea:focus{border-color:var(--primary-light);outline:none;box-shadow:0 0 0 4px #7c5ce714}.ld-form-actions{justify-content:flex-end;padding-top:8px;display:flex}.ld-seating-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.ld-seating-grid{border-radius:var(--radius);background:#f1f5f9;border:1px solid #e2e8f0;grid-template-columns:repeat(9,minmax(88px,1fr));gap:6px;min-width:830px;padding:20px;display:grid}.ld-cell-empty{min-height:72px}.ld-desk{border:2px solid var(--teal);background:#fff;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:72px;padding:6px 4px;transition:border-color .3s,background-color .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 3px #0f172a14}.ld-desk.vacant{opacity:.4;background:#f8fafc;border-color:#cbd5e1}.ld-desk.rated-low{background:#fef2f2;border-color:#ef4444}.ld-desk.rated-mid{background:#fefce8;border-color:#eab308}.ld-desk.rated-high{background:#f0fdf4;border-color:#22c55e}.ld-desk-name{text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:0 2px;font-size:.72rem;font-weight:700;line-height:1.2;overflow:hidden}.ld-desk-vacant-label{color:var(--text-light);font-size:.7rem}.ld-conn-right{background:var(--teal);z-index:1;width:10px;height:2px;position:absolute;top:50%;right:-5px;transform:translateY(-50%)}.ld-conn-bottom{background:var(--teal);z-index:1;width:2px;height:10px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)}.ld-stars{justify-content:center;gap:1px;display:flex}.ld-star{color:#c8cdd8;cursor:pointer;background:0 0;border:none;padding:0 1px;font-size:1.3rem;line-height:1;transition:color .15s,transform .15s}.ld-star:hover{color:#fbbf24;transform:scale(1.25)}.ld-star.active{color:#fbbf24;filter:drop-shadow(0 1px 2px #fbbf2466)}.ld-star.pulse{animation:.35s ld-star-pulse}@keyframes ld-star-pulse{0%{transform:scale(1)}40%{transform:scale(1.5)}to{transform:scale(1)}}.ld-desk .ld-stars{gap:0}.ld-desk .ld-star{padding:0;font-size:.95rem}.ld-desk .ld-star:hover{transform:scale(1.15)}.ld-desk .ld-star-clear{padding:0 2px;font-size:.85rem}.ld-student-list{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);overflow:hidden}.ld-student-row{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:12px 20px;transition:background .2s;display:flex}.ld-student-row:last-child{border-bottom:none}.ld-student-row:hover{background:var(--surface-hover)}.ld-student-row.rated-low{border-left:4px solid #ef4444}.ld-student-row.rated-mid{border-left:4px solid #eab308}.ld-student-row.rated-high{border-left:4px solid #22c55e}.ld-student-row-name{font-size:.9rem;font-weight:600}.sd-participation-header{white-space:nowrap}.sd-participation-cell{cursor:pointer;white-space:nowrap;transition:background .15s}.sd-participation-cell:hover{background:var(--primary-bg)}.sd-stars-display{align-items:center;gap:2px;display:inline-flex}.sd-star-static{color:#c8cdd8;font-size:1.3rem;line-height:1}.sd-star-static.active{color:#fbbf24}.sd-stars-value{color:var(--text);font-size:.85rem;font-weight:700;font-family:var(--font-display);margin-left:6px}.sd-no-rating{color:var(--text-light);font-size:1rem}.sd-info-box{border-radius:var(--radius-sm);color:#92400e;background:#fffbeb;border:1px solid #fde68a;margin-top:16px;padding:12px 16px;font-size:.85rem;font-weight:600;line-height:1.5}.sd-history-list{flex-direction:column;gap:8px;display:flex}.sd-history-entry{background:var(--bg);border-radius:var(--radius-xs);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;display:flex}.sd-history-date{color:var(--text);min-width:140px;font-size:.85rem;font-weight:600}.sd-history-slot{color:var(--text-muted);font-size:.75rem;font-weight:400;display:block}.sd-history-stars{gap:1px;display:flex}.sd-history-comment{color:var(--text-muted);flex-basis:100%;padding-left:2px;font-size:.8rem;font-style:italic}.tt-timer-section{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);text-align:center;padding:24px}.tt-timer-active{flex-direction:column;align-items:center;gap:16px;display:flex}.tt-timer-display{align-items:center;gap:12px;display:flex}.tt-rec-dot{background:var(--coral);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:1.4s ease-in-out infinite tt-pulse}@keyframes tt-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.tt-timer-digits{letter-spacing:2px;color:var(--text);font-family:Courier New,monospace;font-size:3.2rem;font-weight:700}.tt-timer-meta{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.tt-cat-badge{color:#fff;border-radius:20px;align-items:center;gap:4px;padding:5px 14px;font-size:.9rem;font-weight:700;display:inline-flex;box-shadow:0 1px 3px #2b2d421f}.tt-timer-desc{color:var(--text-muted);font-size:.9rem}.tt-timer-break{color:var(--text-muted);align-items:center;gap:4px;font-size:.8rem;display:inline-flex}.tt-timer-actions{gap:10px;margin-top:4px;display:flex}.tt-stop-btn{background:linear-gradient(135deg, var(--coral), #dc2626);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:8px;padding:12px 32px;font-size:1rem;font-weight:700;transition:transform .15s,box-shadow .15s;display:inline-flex}.tt-stop-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #f9706866}.tt-timer-stopped{color:var(--green);justify-content:center;align-items:center;gap:8px;padding:20px;font-size:1.1rem;font-weight:700;animation:.3s fadeIn;display:flex}.tt-timer-idle{flex-direction:column;align-items:center;gap:16px;display:flex}.tt-cat-chips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.tt-cat-chip{border:2px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:20px;align-items:center;gap:4px;padding:6px 14px;font-size:.8rem;font-weight:600;transition:all .2s;display:inline-flex}.tt-cat-chip:hover{border-color:var(--primary-light);color:var(--text)}.tt-cat-chip.active{border-color:#0000}.tt-timer-form{flex-direction:column;gap:8px;width:100%;max-width:500px;display:flex}.tt-desc-input{border:2px solid var(--border-light);border-radius:var(--radius-xs);text-align:center;padding:10px 14px;font-size:.95rem;transition:border-color .2s}.tt-desc-input:focus{border-color:var(--primary-light);outline:none}.tt-timer-selects{gap:8px;display:flex}.tt-timer-selects select{border:2px solid var(--border-light);border-radius:var(--radius-xs);background:var(--surface);flex:1;padding:8px 10px;font-size:.85rem}.tt-start-btn{background:linear-gradient(135deg, var(--green), #16a34a);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:8px;padding:14px 40px;font-size:1.05rem;font-weight:700;transition:transform .15s,box-shadow .15s;display:inline-flex}.tt-start-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #22c55e59}.tt-day-view{animation:.2s fadeIn}.tt-day-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.tt-day-label{font-family:var(--font-display);font-size:1rem;font-weight:700}.tt-day-progress{margin-bottom:20px}.tt-progress-bar{background:var(--bg);border:1px solid var(--border-light);border-radius:7px;height:14px;position:relative;overflow:visible}.tt-progress-fill{background-image:linear-gradient(90deg, var(--primary), var(--primary-light));border-radius:7px;height:100%;transition:width .5s}.tt-progress-over{background:var(--coral);opacity:.3;border-radius:0 6px 6px 0;height:100%;position:absolute;top:0}.tt-progress-label{color:var(--text-muted);text-align:right;margin-top:6px;font-size:.85rem;font-weight:600;display:block}.tt-entries-list{flex-direction:column;gap:10px;display:flex}.tt-entry-card{background:var(--surface);border:1px solid var(--border-light);border-left:4px solid var(--primary);border-radius:var(--radius-sm);padding:14px 16px;transition:box-shadow .2s;position:relative}.tt-entry-card:hover{box-shadow:var(--shadow-sm)}.tt-entry-card.running{border-left-style:dashed;animation:2s ease-in-out infinite tt-pulse-border}@keyframes tt-pulse-border{0%,to{opacity:1}50%{opacity:.6}}.tt-entry-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.tt-entry-cat{font-size:.85rem;font-weight:700}.tt-entry-time{color:var(--text-muted);font-size:.85rem;font-weight:600}.tt-running-label{color:var(--coral);font-weight:700}.tt-entry-bottom{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;font-size:.8rem;display:flex}.tt-entry-dur{color:var(--text);font-size:.85rem;font-weight:700}.tt-entry-break{color:var(--orange)}.tt-entry-desc{flex-basis:100%}.tt-entry-manual{background:var(--bg);color:var(--text-muted);border-radius:10px;padding:1px 8px;font-size:.7rem;font-weight:700;display:inline-block}.tt-entry-actions{gap:2px;display:none;position:absolute;top:10px;right:10px}.tt-entry-card:hover .tt-entry-actions{display:flex}.tt-week-view{animation:.2s fadeIn}.tt-week-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.tt-week-label{font-family:var(--font-display);font-size:1rem;font-weight:700}.tt-week-content{grid-template-columns:1fr 240px;align-items:start;gap:20px;display:grid}.tt-week-chart{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);padding:20px}.tt-chart-bars{align-items:flex-end;gap:8px;height:200px;padding-top:20px;display:flex;position:relative}.tt-bar-col{flex-direction:column;flex:1;align-items:center;gap:4px;min-width:0;display:flex}.tt-bar-wrap{justify-content:center;align-items:flex-end;width:100%;height:160px;display:flex}.tt-bar{border-radius:6px 6px 0 0;width:70%;min-width:20px;min-height:2px;transition:height .4s}.tt-bar:hover{opacity:.85}.tt-bar-label{color:var(--text-muted);font-size:.75rem;font-weight:700}.tt-bar-hours{color:var(--text-muted);font-size:.7rem}.tt-target-line{border-top:2px dashed var(--text-light);pointer-events:none;position:absolute;left:0;right:0}.tt-target-text{color:var(--text-muted);font-size:.65rem;font-weight:600;position:absolute;top:-16px;right:0}.tt-week-summary{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);flex-direction:column;gap:12px;padding:20px;display:flex}.tt-summary-row{justify-content:space-between;align-items:center;font-size:.9rem;display:flex}.tt-summary-row span{color:var(--text-muted)}.tt-summary-row strong{font-family:var(--font-display)}.tt-month-view{animation:.2s fadeIn}.tt-month-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.tt-month-label{font-family:var(--font-display);font-size:1rem;font-weight:700}.tt-month-content{grid-template-columns:1fr 280px;align-items:start;gap:20px;display:grid}.tt-cal{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);padding:16px}.tt-cal-header{text-align:center;grid-template-columns:repeat(7,1fr);margin-bottom:8px;display:grid}.tt-cal-hd{color:var(--text-muted);padding:4px;font-size:.75rem;font-weight:700}.tt-cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.tt-cal-cell{aspect-ratio:1;border-radius:var(--radius-xs);background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:.8rem;display:flex;position:relative}.tt-cal-cell.empty{background:0 0}.tt-cal-cell.weekend{opacity:.35}.tt-cal-cell.met{background:#f0fdf4}.tt-cal-cell.over{background:#fef2f2}.tt-cal-day{color:var(--text);font-size:.75rem;font-weight:700}.tt-cal-hrs{color:var(--text-muted);font-size:.65rem;font-weight:600}.tt-month-summary{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);flex-direction:column;gap:12px;padding:20px;display:flex}.tt-breakdown{border-top:1px solid var(--border-light);margin-top:8px;padding-top:12px}.tt-breakdown-title{color:var(--text-muted);margin-bottom:8px;font-size:.8rem;font-weight:700;display:block}.tt-breakdown-bar{border-radius:5px;gap:1px;height:10px;display:flex;overflow:hidden}.tt-breakdown-seg{min-width:4px;transition:width .3s}.tt-breakdown-legend{flex-direction:column;gap:4px;margin-top:10px;display:flex}.tt-legend-item{color:var(--text-muted);align-items:center;gap:6px;font-size:.75rem;display:flex}.tt-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tt-toggle-row{align-items:center;flex-direction:row!important;gap:10px!important}.tt-toggle-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.tt-manual-modal{max-width:460px}.tt-date-field input[type=date]{font-size:1.1rem;font-weight:700;font-family:var(--font-display);padding:12px 14px}.tt-time-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.tt-time-field{flex-direction:column;gap:6px;display:flex}.tt-time-label{color:var(--text-muted);font-size:.85rem;font-weight:700}.tt-time-stepper{align-items:center;gap:6px;display:flex}.tt-time-stepper input[type=time]{text-align:center;font-size:1.35rem;font-weight:800;font-family:var(--font-display);border:2px solid var(--border-light);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);flex:1;min-width:0;padding:10px 8px;transition:border-color .2s,box-shadow .2s}.tt-time-stepper input[type=time]:focus{border-color:var(--primary-light);outline:none;box-shadow:0 0 0 4px #7c5ce714}.tt-step-btn{border:2px solid var(--border-light);border-radius:var(--radius-xs);background:var(--bg);width:40px;height:40px;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;transition:all .15s;display:flex}.tt-step-btn:hover{border-color:var(--primary-light);color:var(--primary);background:var(--primary-bg)}.tt-step-btn:active{transform:scale(.93)}.tt-pause-row{background:var(--bg);border-radius:var(--radius-xs);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.tt-pause-row .tt-time-label{margin:0}.tt-time-stepper.compact{gap:8px}.tt-pause-display{text-align:center;min-width:60px;font-size:1rem;font-weight:700;font-family:var(--font-display);color:var(--text)}.tt-preview{text-align:center;border-radius:var(--radius-xs);color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;padding:10px 14px;font-size:.9rem;font-weight:600}[data-theme=dark] .tt-preview{color:#86efac;background:#16a34a1a;border-color:#16a34a40}@media (max-width:480px){.tt-time-row{grid-template-columns:1fr;gap:12px}.tt-step-btn{width:36px;height:36px;font-size:.75rem}.tt-time-stepper input[type=time]{font-size:1.1rem}}@media (max-width:1024px) and (min-width:769px){.page{padding:28px 24px}.dash-bento-grid{grid-template-columns:1fr 1fr}.dash-bento-span-2{grid-column:span 1}.dash-stats{grid-template-columns:repeat(2,1fr);gap:14px}.dash-stat-card{padding:16px}.timetable{min-width:600px}.timetable-wrap{-webkit-overflow-scrolling:touch}.wv-table{min-width:600px}.wv-wrap{-webkit-overflow-scrolling:touch}.timetable th,.timetable td,.wv-table th,.wv-table td{font-size:.82rem}.tt-cell{padding:8px 6px!important}.wv-cell{padding:6px 4px!important}.modal{max-width:90vw}.form-row.thirds{grid-template-columns:1fr 1fr}.ld-seating-grid{grid-template-columns:repeat(9,minmax(76px,1fr));min-width:720px}.ld-seating-scroll{-webkit-overflow-scrolling:touch}.quiz-host-topbar{flex-wrap:wrap;gap:10px}.class-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.attendance-table-wrap,.grades-table-wrap{-webkit-overflow-scrolling:touch}.grades-table th,.grades-table td{padding:10px 12px;font-size:.88rem}}@media (max-width:768px){.mobile-header{display:flex}.sidebar{width:var(--sidebar-width);transform:translate(-100%)}.sidebar.collapsed{width:var(--sidebar-width)}.sidebar.open{transform:translate(0)}.sidebar.open .nav-label{display:inline}.sidebar.open .nav-arrow{display:block}.sidebar.open .user-details,.sidebar.open .theme-select-wrap{display:flex}.sidebar.open .sidebar-logo-text{display:block}.sidebar-collapse-btn{display:none!important}.sidebar-overlay{display:block}.main-content,.sidebar.collapsed~.main-content{padding-top:var(--header-height);margin-left:0}.page{padding:20px 16px}.page-header{flex-direction:column;align-items:flex-start}.class-grid,.form-row,.form-row.thirds{grid-template-columns:1fr}.tabs{overflow-x:auto}.modal{max-width:none;margin:10px}.wv-table{min-width:600px}.wv-wrap{-webkit-overflow-scrolling:touch}.ld-seating-grid{grid-template-columns:repeat(9,80px);min-width:750px}.ld-form{padding:16px}.tt-timer-digits{font-size:2.2rem}.tt-week-content,.tt-month-content{grid-template-columns:1fr}.tt-timer-selects{flex-direction:column}}.material-preview{border:1px solid var(--border-light);background:var(--bg);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.material-preview.small{width:60px;height:80px}.material-preview.medium{width:200px;min-height:200px}.material-preview img{object-fit:cover;width:100%;height:100%}.material-preview-text{color:var(--text-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;padding:8px;font-size:.75rem;display:-webkit-box;overflow:hidden}.solution-badge{color:#16a34a;white-space:nowrap;vertical-align:middle;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;align-items:center;gap:3px;margin-left:8px;padding:3px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.file-type-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:2px 8px;font-size:.7rem;font-weight:800}.file-type-badge.pdf{color:#dc2626;background:#fef2f2}.file-type-badge.docx{color:#2563eb;background:#eff6ff}.file-type-badge.img{color:#16a34a;background:#f0fdf4}.file-type-badge.pptx{color:#c2410c;background:#fff7ed}.file-type-badge.other{background:var(--bg);color:var(--text-muted)}.page-count-badge{color:#fff;background:#0009;border-radius:4px;padding:1px 6px;font-size:.65rem;font-weight:700;position:absolute;top:4px;right:4px}.preview-skeleton{background:linear-gradient(90deg, var(--border-light) 25%, var(--bg) 50%, var(--border-light) 75%);background-size:200% 100%;width:100%;height:100%;animation:1.5s ease-in-out infinite shimmer}.ws-chip-group{flex-wrap:wrap;gap:6px;display:flex}.ws-chip{border:2px solid var(--border-light);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:20px;padding:5px 12px;font-size:.8rem;font-weight:600;transition:all .2s}.ws-chip:hover{border-color:var(--primary-light);color:var(--primary)}.ws-chip.active{background:var(--primary-bg);border-color:var(--primary);color:var(--primary)}.ws-difficulty-group{gap:8px;display:flex}.ws-difficulty-btn{border-radius:var(--radius-xs);border:2px solid var(--border-light);background:var(--surface);cursor:pointer;text-align:center;flex:1;padding:8px 16px;font-size:.85rem;font-weight:600;transition:all .2s}.ws-difficulty-btn:hover{border-color:var(--border)}.ws-difficulty-btn.active.leicht{color:#16a34a;background:#f0fdf4;border-color:#22c55e}.ws-difficulty-btn.active.mittel{color:#a16207;background:#fefce8;border-color:#eab308}.ws-difficulty-btn.active.schwer{color:#dc2626;background:#fef2f2;border-color:#ef4444}.material-actions-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.solution-sheet{padding:4px 0}.solution-header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.solution-meta{color:var(--text-muted);font-size:.8rem}.solution-content{font-size:.95rem;line-height:1.8}.solution-content h1{font-family:var(--font-display);border-bottom:2px solid var(--primary-light);margin:20px 0 12px;padding-bottom:8px;font-size:1.4rem;font-weight:800}.solution-content h2{font-family:var(--font-display);color:var(--primary);margin:16px 0 8px;font-size:1.15rem;font-weight:700}.solution-content h3{margin:12px 0 6px;font-size:1rem;font-weight:700}.solution-content ul,.solution-content ol{margin:8px 0;padding-left:24px}.solution-content li{margin:4px 0}.solution-content pre{background:var(--bg);border-radius:var(--radius-xs);margin:8px 0;padding:12px 16px;font-size:.85rem;overflow-x:auto}.solution-content p{margin:8px 0}.solution-content strong{color:var(--primary-dark)}.solution-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.generating-phase{background:var(--primary-bg);border-radius:var(--radius);align-items:center;gap:12px;margin:16px 0;padding:24px;display:flex}.generating-spinner{border:3px solid var(--border-light);border-top-color:var(--primary);border-radius:50%;flex-shrink:0;width:24px;height:24px;animation:.8s linear infinite spin}.generating-text{color:var(--primary);font-weight:600}.generating-phase-text{animation:2s ease-in-out infinite fadeInOut}@keyframes fadeInOut{0%,to{opacity:.6}50%{opacity:1}}.context-input{margin:12px 0}.context-input textarea{border:2px solid var(--border-light);border-radius:var(--radius-xs);width:100%;font-size:.9rem;font-family:var(--font-body);resize:vertical;padding:10px 14px}.context-input textarea:focus{border-color:var(--primary-light);outline:none;box-shadow:0 0 0 4px #7c5ce714}.btn-ai{color:#fff;border-radius:var(--radius-xs);cursor:pointer;background:linear-gradient(135deg,#8b5cf6,#ec4899);border:none;align-items:center;gap:6px;padding:8px 16px;font-size:.85rem;font-weight:700;transition:all .2s;display:inline-flex}.btn-ai:hover{transform:translateY(-1px);box-shadow:0 4px 16px #8b5cf64d}.btn-ai:disabled{opacity:.5;cursor:default;transform:none}.btn-ai.btn-sm{padding:4px 10px;font-size:.8rem}.material-detail-layout{grid-template-columns:2fr 3fr;gap:24px;padding:20px 24px 24px;display:grid}.material-detail-preview{flex-direction:column;align-items:center;gap:12px;display:flex}.material-detail-solution{min-height:200px}@media (max-width:768px){.material-detail-layout{grid-template-columns:1fr}}@media print{body *{visibility:hidden}.solution-print-area,.solution-print-area *{visibility:visible}.solution-print-area{width:100%;padding:20mm;font-size:12pt;line-height:1.6;position:absolute;top:0;left:0}.solution-print-area h1{border-bottom:1pt solid #333;font-size:18pt}.solution-print-area h2{font-size:14pt}.solution-actions,.btn-ai,.modal-header .icon-btn{display:none!important}}.help-page{max-width:800px;margin:0 auto}.help-header{text-align:center;margin-bottom:32px}.help-header h1{font-family:var(--font-display);font-size:2rem;font-weight:800}.help-header p{color:var(--text-muted);margin-top:8px;font-size:1rem}.help-search{border:2px solid var(--border-light);border-radius:var(--radius);width:100%;font-size:1rem;font-family:var(--font-body);background:var(--surface);padding:12px 16px 12px 44px;transition:all .2s}.help-search:focus{border-color:var(--primary-light);outline:none;box-shadow:0 0 0 4px #7c5ce714}.help-search-wrapper{margin-bottom:24px;position:relative}.help-search-icon{color:var(--text-muted);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.quickstart-row{-webkit-overflow-scrolling:touch;gap:12px;margin-bottom:32px;padding-bottom:8px;display:flex;overflow-x:auto}.quickstart-card{background:var(--surface);border:2px solid var(--border-light);border-radius:var(--radius);text-align:center;cursor:pointer;min-width:260px;color:inherit;flex-shrink:0;padding:28px 32px;text-decoration:none;transition:all .2s}.quickstart-card:hover{border-color:var(--primary-light);box-shadow:var(--shadow), 0 0 0 4px var(--primary-glow);transform:translateY(-3px)}.quickstart-emoji{margin-bottom:12px;font-size:3.5rem;display:block}.quickstart-label{color:var(--text-primary);font-size:1.1rem;font-weight:700}.help-section{margin-bottom:8px}.help-section-header{background:var(--surface);border:2px solid var(--border-light);border-radius:var(--radius);cursor:pointer;text-align:left;width:100%;font-family:var(--font-body);align-items:center;gap:12px;padding:16px 20px;transition:all .2s;display:flex}.help-section-header:hover{border-color:var(--primary-light);background:var(--bg)}.help-section-header.open{border-color:var(--primary-light);background:var(--primary-bg);border-bottom-right-radius:0;border-bottom-left-radius:0}.help-section-emoji{flex-shrink:0;font-size:1.4rem}.help-section-title{flex:1;font-size:1rem;font-weight:700}.help-section-subtitle{color:var(--text-muted);font-size:.8rem;font-weight:400}.help-section-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .2s}.help-section-chevron.open{transform:rotate(180deg)}.help-section-body{border:2px solid var(--primary-light);border-bottom-left-radius:var(--radius);border-bottom-right-radius:var(--radius);background:var(--surface);border-top:none;padding:20px 24px;animation:.2s slideDown}@keyframes slideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.help-section-body p{color:var(--text-secondary);margin:0 0 12px;line-height:1.6}.help-section-body ol{margin:12px 0;padding-left:20px}.help-section-body li{margin:6px 0;line-height:1.5}.help-tip{border-radius:var(--radius-xs);color:#a16207;background:#fefce8;border-left:4px solid #eab308;margin-top:16px;padding:12px 16px;font-size:.9rem}.help-faq{margin-top:40px}.help-faq h2{font-family:var(--font-display);margin-bottom:16px;font-size:1.3rem;font-weight:800}.faq-item{margin-bottom:16px}.faq-question{color:var(--primary);margin-bottom:4px;font-size:.95rem;font-weight:700}.faq-answer{color:var(--text-secondary);font-size:.9rem;line-height:1.6}.help-no-results{text-align:center;color:var(--text-muted);padding:40px 20px}.help-no-results-emoji{margin-bottom:12px;font-size:3rem;display:block}.help-fab{background:var(--primary);color:#fff;cursor:pointer;z-index:800;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .2s,box-shadow .2s;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 14px #0003}.help-fab:hover{transform:scale(1.1);box-shadow:0 6px 20px #0000004d}.help-drawer-overlay{z-index:850;background:#00000059;animation:.2s fadeIn;position:fixed;inset:0}.help-drawer{background:var(--bg);z-index:900;flex-direction:column;width:400px;max-width:100vw;animation:.25s slideInRight;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 24px #00000026}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.help-drawer-header{border-bottom:1px solid var(--border-light);background:var(--surface);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.help-drawer-header h3{font-size:1.1rem;font-weight:700;font-family:var(--font-display);margin:0}.help-drawer-close{cursor:pointer;color:var(--text-muted);border-radius:var(--radius-xs);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex}.help-drawer-close:hover{color:var(--text);background:var(--border-light)}.help-drawer-body{flex:1;padding:20px;overflow-y:auto}.help-drawer-desc{color:var(--text-secondary);margin:16px 0 12px;font-size:.92rem;line-height:1.6}.help-drawer-label{margin:12px 0 4px;font-size:.92rem;font-weight:700}.help-drawer-steps{margin:8px 0 16px;padding-left:8px;list-style:none}.help-drawer-steps li{align-items:flex-start;gap:8px;margin:6px 0;font-size:.88rem;line-height:1.5;display:flex}.help-drawer-footer{border-top:1px solid var(--border-light);text-align:center;background:var(--surface);padding:12px 20px}.help-drawer-footer a{color:var(--primary);font-size:.9rem;font-weight:600;text-decoration:none}.help-drawer-footer a:hover{text-decoration:underline}@media (max-width:480px){.help-drawer{width:100vw}.help-fab{width:46px;height:46px;bottom:16px;right:16px}}.hm-page{border:2px solid var(--border-light);border-radius:var(--radius);background:var(--surface);margin-bottom:12px;font-size:10px;line-height:1.3;position:relative;overflow:hidden}.hm-topbar{background:var(--primary-bg,#7c5ce714);border-bottom:1px solid var(--border-light);align-items:center;gap:6px;padding:6px 10px;font-size:11px;font-weight:700;display:flex;position:relative}.hm-cards{flex-wrap:nowrap;gap:4px;padding:6px 8px;display:flex;position:relative;overflow-x:auto}.hm-card{background:var(--bg);border:1px solid var(--border-light);text-align:center;border-radius:4px;flex:1;min-width:44px;padding:6px 4px;font-size:10px;font-weight:600;position:relative}.hm-card-accent{border-color:var(--primary);background:var(--primary-bg,#7c5ce714);color:var(--primary)}.hm-widget{border-top:1px solid var(--border-light);padding:6px 10px;position:relative}.hm-widget-title{align-items:center;margin-bottom:4px;font-size:10px;font-weight:700;display:flex}.hm-list-row{border-bottom:1px solid var(--border-light);align-items:center;gap:4px;padding:3px 0;font-size:9px;display:flex}.hm-list-row:last-child{border-bottom:none}.hm-check{border:1.5px solid var(--border);border-radius:2px;flex-shrink:0;width:10px;height:10px;display:inline-block}.hm-check.checked{background:var(--primary);border-color:var(--primary)}.hm-tabs{gap:2px;padding:4px 8px;display:flex;position:relative}.hm-tab{background:var(--bg);color:var(--text-muted);border-radius:3px;padding:3px 6px;font-size:8px;font-weight:600}.hm-tab.active{background:var(--primary);color:#fff}.hm-chart{align-items:flex-end;gap:3px;height:32px;padding:4px 0;display:flex}.hm-bar{background:var(--primary);opacity:.7;border-radius:2px 2px 0 0;flex:1;min-width:8px}.hm-table{padding:4px 8px;position:relative}.hm-table-row{grid-template-columns:20px repeat(5,1fr);gap:2px;margin-bottom:2px;display:grid}.hm-table-header span{text-align:center;font-size:8px;font-weight:700}.hm-table-row span{text-align:center;padding:2px;font-size:8px}.hm-cell-filled{background:var(--primary-bg,#7c5ce714);border-radius:2px;font-weight:600}.hm-cell-empty{background:var(--bg);border-radius:2px}.hm-cell-accent{background:var(--primary);color:#fff;border-radius:2px;font-weight:700}.hm-btn{background:var(--primary);color:#fff;white-space:nowrap;border-radius:3px;padding:3px 8px;font-size:8px;font-weight:600;display:inline-block}.hm-desk-grid{grid-template-columns:repeat(3,1fr);gap:4px;padding:6px;display:grid}.hm-desk{background:var(--bg);border:1px solid var(--border-light);border-radius:3px;justify-content:center;align-items:center;height:20px;font-size:7px;font-weight:600;display:flex}.hm-desk-double{grid-column:span 2}.hm-desk-rated-good{background:#dcfce7;border-color:#86efac}.hm-desk-rated-ok{background:#fef9c3;border-color:#fde047}.hm-desk-rated-low{background:#fee2e2;border-color:#fca5a5}.hm-qr-placeholder{border:2px solid var(--border);width:36px;height:36px;color:var(--text-muted);border-radius:3px;justify-content:center;align-items:center;margin:4px auto;font-size:10px;font-weight:700;display:flex}.hm-dice{border:2px solid var(--border);width:40px;height:40px;color:var(--primary);background:var(--bg);border-radius:6px;justify-content:center;align-items:center;margin:8px auto;font-size:18px;font-weight:700;display:flex}.hm-marker{color:#fff;z-index:2;background:#ef4444;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;font-size:9px;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:-4px;right:-4px}.hm-marker-inline{width:18px;height:18px;font-size:10px;position:static}.classlist-import-modal{max-width:720px}.drop-zone{border:2px dashed var(--border-light);border-radius:var(--radius);text-align:center;cursor:pointer;background:var(--surface);padding:40px 20px;transition:all .2s}.drop-zone:hover,.drop-zone.dragover{border-color:var(--primary);background:var(--primary-bg)}.drop-zone-icon{color:var(--text-muted);margin-bottom:12px}.drop-zone.dragover .drop-zone-icon{color:var(--primary);transition:transform .2s;transform:scale(1.1)}.drop-zone-text{color:var(--text-primary);margin-bottom:4px;font-size:1rem;font-weight:700}.drop-zone-hint{color:var(--text-muted);font-size:.8rem}.import-file-preview{background:var(--bg);border-radius:var(--radius-xs);align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;display:flex}.import-file-preview img{border:1px solid var(--border-light);border-radius:6px;max-height:80px}.import-file-info{font-size:.85rem}.import-file-name{font-weight:700}.import-file-size{color:var(--text-muted);font-size:.8rem}.import-summary{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.import-summary-header{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.import-summary-header h3{font-family:var(--font-display);margin:0;font-size:1.15rem;font-weight:800}.confidence-badge{border-radius:12px;padding:3px 10px;font-size:.78rem;font-weight:700}.confidence-badge.high{color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0}.confidence-badge.medium{color:#a16207;background:#fefce8;border:1px solid #fde68a}.confidence-badge.low{color:#dc2626;background:#fef2f2;border:1px solid #fecaca}.field-badges{flex-wrap:wrap;gap:6px;margin:4px 0;display:flex}.field-badge{border-radius:10px;padding:2px 8px;font-size:.7rem;font-weight:700}.field-badge.found{color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0}.field-badge.missing{background:var(--bg);color:var(--text-muted);border:1px solid var(--border-light)}.import-table-wrapper{border:1px solid var(--border-light);border-radius:var(--radius-xs);max-height:400px;margin:12px 0;overflow:auto}.import-table{border-collapse:collapse;width:100%;min-width:600px;font-size:.85rem}.import-table th{background:var(--bg);z-index:1;text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:2px solid var(--border-light);padding:10px 12px;font-size:.75rem;font-weight:700;position:sticky;top:0}.import-table td{border-bottom:1px solid var(--border-light);vertical-align:middle;padding:8px 12px}.import-table tr:hover{background:var(--bg)}.import-table tr.duplicate{background:#fffbeb}.import-table .editable-cell{cursor:text;min-width:60px;font-family:var(--font-body);background:0 0;border:1px solid #0000;border-radius:4px;width:100%;padding:4px 8px;font-size:.85rem;transition:border-color .2s}.import-table .editable-cell:hover{border-color:var(--border-light)}.import-table .editable-cell:focus{border-color:var(--primary-light);outline:none;box-shadow:0 0 0 3px #7c5ce714}.import-table .editable-cell.needs-review{color:#dc2626;background:#fef2f2;font-weight:700}.import-table select.inline-select{cursor:pointer;font-size:.85rem;font-family:var(--font-body);background:0 0;border:1px solid #0000;border-radius:4px;padding:4px 6px}.import-table select.inline-select:hover{border-color:var(--border-light)}.import-table select.inline-select:focus{border-color:var(--primary-light);outline:none}.status-badge{white-space:nowrap;font-size:.75rem;font-weight:700}.status-badge.new{color:#16a34a}.status-badge.duplicate{color:#d97706}.status-badge.review{color:#eab308}.import-toolbar{justify-content:space-between;align-items:center;padding:8px 0;font-size:.85rem;display:flex}.import-toolbar label{cursor:pointer;align-items:center;gap:6px;font-weight:600;display:flex}.import-count{color:var(--text-muted);font-weight:600}.import-actions{border-top:1px solid var(--border-light);justify-content:space-between;align-items:center;margin-top:8px;padding-top:16px;display:flex}.import-success{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 24px;display:flex}.import-success-icon{font-size:3.5rem}.import-success h3{font-family:var(--font-display);margin:0;font-size:1.3rem;font-weight:800}.import-success p{color:var(--text-muted);font-size:.95rem}.import-tip{border-radius:var(--radius-xs);color:#7c5ce7;background:#f5f3ff;align-items:flex-start;gap:8px;margin-top:16px;padding:12px 16px;font-size:.85rem;line-height:1.5;display:flex}.import-error{border-radius:var(--radius-xs);color:#dc2626;text-align:center;background:#fef2f2;padding:16px}.import-error p{margin:0 0 12px;font-weight:600}.semester-overview{-webkit-overflow-scrolling:touch;gap:12px;margin-bottom:24px;padding-bottom:4px;display:flex;overflow-x:auto}.semester-card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border-light);flex-shrink:0;min-width:200px;padding:16px 20px;transition:all .2s}.semester-card:hover{box-shadow:0 2px 8px #0000000f}.semester-card.hj1{border-left:4px solid #3b82f6}.semester-card.hj2{border-left:4px solid #8b5cf6}.semester-card.year{border-left:4px solid #eab308}.semester-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:4px;font-size:.75rem;font-weight:700}.semester-title{margin-bottom:8px;font-size:.95rem;font-weight:800}.semester-grade{font-size:1.8rem;font-weight:800;font-family:var(--font-display);margin-bottom:4px}.semester-grade.good{color:#16a34a}.semester-grade.ok{color:#eab308}.semester-grade.warn{color:#f97316}.semester-grade.bad{color:#dc2626}.semester-status{border-radius:10px;padding:3px 10px;font-size:.82rem;font-weight:600;display:inline-block}.semester-status.done{color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0}.semester-status.active{color:#7c5ce7;border:1px solid var(--primary-light);background:#f5f3ff}.semester-status.empty{background:var(--bg);color:var(--text-muted);border:1px solid var(--border-light)}.semester-action{margin-top:10px}.bulk-grade-modal{max-width:600px}.semester-grade-modal{max-width:650px}.grade-type-group{gap:8px;margin-bottom:12px;display:flex}.grade-type-btn{border-radius:var(--radius-xs);border:2px solid var(--border-light);background:var(--surface);cursor:pointer;text-align:center;flex:1;padding:12px;font-size:.9rem;font-weight:700;transition:all .2s}.grade-type-btn:hover{border-color:var(--primary-light)}.grade-type-btn.active.written{color:#2563eb;background:#eff6ff;border-color:#3b82f6}.grade-type-btn.active.oral{color:#16a34a;background:#f0fdf4;border-color:#22c55e}.grade-type-btn.active.test{color:#a16207;background:#fefce8;border-color:#eab308}.bulk-grade-header{background:var(--bg);border-radius:var(--radius-xs);flex-direction:column;gap:12px;margin-bottom:16px;padding:16px 20px;display:flex}.bulk-grade-list{border:1px solid var(--border-light);border-radius:var(--radius-xs);max-height:420px;overflow-y:auto}.bulk-grade-item{border-bottom:1px solid var(--border-light);align-items:center;gap:12px;padding:8px 14px;transition:background .15s;display:flex}.bulk-grade-item:last-child{border-bottom:none}.bulk-grade-item:hover{background:var(--bg)}.bulk-grade-item.absent{opacity:.45}.bulk-grade-number{width:24px;color:var(--text-muted);text-align:right;flex-shrink:0;font-size:.8rem;font-weight:600}.bulk-grade-name{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.9rem;font-weight:600;overflow:hidden}.bulk-grade-input{text-align:center;border:2px solid var(--border-light);border-radius:var(--radius-xs);width:90px;font-size:1rem;font-weight:700;font-family:var(--font-display);flex-shrink:0;padding:6px 10px;transition:all .2s}.bulk-grade-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #7c5ce71a}.bulk-grade-input:disabled{background:var(--bg);opacity:.4}.bulk-grade-input::-webkit-inner-spin-button{display:none}.bulk-grade-input::-webkit-outer-spin-button{display:none}.semester-grade-input::-webkit-inner-spin-button{display:none}.semester-grade-input::-webkit-outer-spin-button{display:none}.bulk-grade-input.grade-good{background:#f0fdf4;border-color:#86efac}.bulk-grade-input.grade-ok{background:#fefce8;border-color:#fde047}.bulk-grade-input.grade-warn{background:#fff7ed;border-color:#fdba74}.bulk-grade-input.grade-bad{background:#fef2f2;border-color:#fca5a5}[data-theme=dark] .bulk-grade-input.grade-good{background:#22c55e1f;border-color:#22c55e66}[data-theme=dark] .bulk-grade-input.grade-ok{background:#eab3081f;border-color:#eab30866}[data-theme=dark] .bulk-grade-input.grade-warn{background:#f973161f;border-color:#f9731666}[data-theme=dark] .bulk-grade-input.grade-bad{background:#ef44441f;border-color:#ef444466}.bulk-grade-absent{color:var(--text-muted);white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;font-size:.75rem;display:flex}.bulk-grade-absent input{cursor:pointer}.bulk-grade-toolbar{background:var(--bg);border-bottom:2px solid var(--border-light);justify-content:space-between;align-items:center;padding:8px 14px;font-size:.8rem;display:flex}.bulk-grade-counter{color:var(--text-muted);font-weight:600}.quick-fill{color:var(--text-muted);align-items:center;gap:6px;font-size:.8rem;display:flex}.quick-fill input{text-align:center;border:1px solid var(--border-light);border-radius:4px;width:55px;padding:3px 6px;font-size:.85rem;font-weight:700}.quick-fill button{background:var(--primary-bg);color:var(--primary);border:1px solid var(--primary-light);cursor:pointer;border-radius:4px;padding:3px 8px;font-size:.75rem;font-weight:700}.grade-details-row{background:var(--bg);animation:.2s slideDown}.grade-details-row td{padding:0!important}.grade-detail-list{padding:8px 16px 12px 48px}.grade-detail-item{border-bottom:1px dashed var(--border-light);align-items:center;gap:10px;padding:6px 0;font-size:.85rem;display:flex}.grade-detail-item:last-child{border-bottom:none}.grade-detail-type{text-align:center;flex-shrink:0;width:24px}.grade-detail-title{flex:1;font-weight:600}.grade-detail-date{color:var(--text-muted);flex-shrink:0;font-size:.75rem}.grade-detail-value{text-align:center;width:40px;font-weight:800;font-family:var(--font-display);flex-shrink:0}.grade-detail-actions{opacity:0;flex-shrink:0;gap:4px;transition:opacity .15s;display:flex}.grade-detail-item:hover .grade-detail-actions{opacity:1}.grade-detail-add{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:6px 12px;font-size:.8rem;font-weight:700}.grade-detail-add:hover{text-decoration:underline}.semester-grade-item{border-bottom:1px solid var(--border-light);align-items:center;gap:12px;padding:8px 14px;display:flex}.semester-grade-item:hover{background:var(--bg)}.semester-grade-number{width:24px;color:var(--text-muted);text-align:right;flex-shrink:0;font-size:.8rem;font-weight:600}.semester-grade-name{flex:1;font-size:.9rem;font-weight:600}.semester-grade-input{text-align:center;border:2px solid var(--border-light);border-radius:var(--radius-xs);width:90px;padding:6px 10px;font-size:1rem;font-weight:700}.semester-grade-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #7c5ce71a}.semester-grade-input.grade-good{background:#f0fdf4;border-color:#86efac}.semester-grade-input.grade-ok{background:#fefce8;border-color:#fde047}.semester-grade-input.grade-warn{background:#fff7ed;border-color:#fdba74}.semester-grade-input.grade-bad{background:#fef2f2;border-color:#fca5a5}[data-theme=dark] .semester-grade-input.grade-good{background:#22c55e1f;border-color:#22c55e66}[data-theme=dark] .semester-grade-input.grade-ok{background:#eab3081f;border-color:#eab30866}[data-theme=dark] .semester-grade-input.grade-warn{background:#f973161f;border-color:#f9731666}[data-theme=dark] .semester-grade-input.grade-bad{background:#ef44441f;border-color:#ef444466}.semester-comment-input{border:1px solid var(--border-light);border-radius:var(--radius-xs);width:140px;padding:6px 10px;font-size:.8rem}.grades-table tr.expanded-parent{background:var(--bg)}.tab.dragging{opacity:.4}.tab[draggable]{cursor:grab}.tab[draggable]:active{cursor:grabbing}.ep-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.ep-month-label{font-family:var(--font-display);text-align:center;min-width:180px;font-size:1.1rem;font-weight:800}.ep-calendar{background:var(--border-light);border:1px solid var(--border-light);border-radius:var(--radius);grid-template-columns:repeat(7,1fr);gap:1px;margin-bottom:24px;display:grid;overflow:hidden}.ep-day-header{background:var(--bg);text-align:center;color:var(--text-muted);padding:8px;font-size:.8rem;font-weight:700}.ep-day{background:var(--surface);cursor:pointer;flex-direction:column;gap:3px;min-height:96px;padding:6px;transition:background .15s;display:flex}.ep-day:hover{background:var(--bg)}.ep-day.ep-other{opacity:.35;cursor:default}.ep-day.ep-today{background:#7c3aed0a}.ep-day.ep-weekend{background:var(--bg)}.ep-day-number{color:var(--text-muted);margin-bottom:2px;font-size:.85rem;font-weight:700}.ep-today .ep-day-number{color:var(--primary);background:#7c5ce71a;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.ep-exam-card{border-radius:var(--radius-xs);border-left:3px solid var(--primary);background:var(--surface);cursor:pointer;padding:4px 8px;font-size:.8rem;transition:all .15s;box-shadow:0 1px 2px #2b2d420f}.ep-exam-card:hover{background:var(--primary-bg);transform:translateY(-1px)}.ep-exam-title{white-space:nowrap;text-overflow:ellipsis;font-weight:700;display:block;overflow:hidden}.ep-exam-meta{color:var(--text-muted);align-items:center;gap:4px;font-size:.68rem;display:flex}.ep-exam-status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.ep-status-completed .ep-exam-title{color:#f97316}.ep-status-graded .ep-exam-title{color:#22c55e}.ep-upcoming{margin-top:8px}.ep-upcoming-title{font-size:.95rem;font-weight:800;font-family:var(--font-display);margin-bottom:10px}.ep-upcoming-list{flex-direction:column;gap:6px;display:flex}.ep-upcoming-item{background:var(--surface);border:1px solid var(--border-light);border-left:4px solid var(--primary);border-radius:var(--radius-xs);cursor:pointer;align-items:center;gap:12px;padding:10px 14px;transition:all .15s;display:flex}.ep-upcoming-item:hover{box-shadow:0 2px 6px #0000000f}.ep-upcoming-date{color:var(--text-muted);flex-shrink:0;min-width:70px;font-size:.8rem;font-weight:700}.ep-upcoming-info{flex-direction:column;flex:1;gap:2px;display:flex}.ep-upcoming-info strong{font-size:.9rem}.ep-upcoming-info span{color:var(--text-muted);font-size:.78rem}.ep-upcoming-status{white-space:nowrap;border-radius:10px;flex-shrink:0;padding:4px 12px;font-size:.8rem;font-weight:700}.wv-exam-badge{color:#fff;letter-spacing:.5px;background:#ef4444;border-radius:4px;padding:2px 6px;font-size:.7rem;font-weight:800;line-height:1.3;animation:2s ease-in-out infinite subtle-pulse;position:absolute;top:4px;right:4px;box-shadow:0 1px 3px #ef44444d}.dash-bento-grid{grid-template-columns:1fr 1fr;align-items:start;gap:20px;display:grid}.dash-bento-span-2{grid-column:span 2}.dash-bento-span-1{grid-column:span 1}.dash-bento-cell{min-width:0}.dash-stats{grid-template-columns:repeat(4,1fr);gap:18px;display:grid}.dash-stat-card{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);cursor:pointer;transition:all var(--transition);flex-direction:column;gap:6px;padding:20px;animation:.3s backwards cardEnter;display:flex}.dash-stat-card:hover{box-shadow:var(--shadow), 0 0 0 4px var(--primary-glow);transform:translateY(-3px)}.dash-stat-icon{color:#fff;border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.dash-stat-red .dash-stat-icon{background:#ef4444}.dash-stat-purple .dash-stat-icon{background:#8b5cf6}.dash-stat-blue .dash-stat-icon{background:#3b82f6}.dash-stat-orange .dash-stat-icon{background:#f97316}.dash-stat-green .dash-stat-icon{background:#22c55e}.dash-stat-red{border-left:4px solid #ef4444}.dash-stat-purple{border-left:4px solid #8b5cf6}.dash-stat-blue{border-left:4px solid #3b82f6}.dash-stat-orange{border-left:4px solid #f97316}.dash-stat-green{border-left:4px solid #22c55e}.dash-stat-value{font-family:var(--font-display);color:var(--text);margin-top:4px;font-size:1.5rem;font-weight:800}.dash-stat-label{color:var(--text-muted);font-size:.88rem;font-weight:600}.dash-section{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);overflow:hidden}.dash-section-header{border-bottom:1px solid var(--border-light);cursor:pointer;justify-content:space-between;align-items:center;padding:16px 20px;transition:background .15s;display:flex}.dash-section-header:hover{background:var(--bg)}.dash-section-header h2{font-family:var(--font-display);align-items:center;gap:8px;margin:0;font-size:1rem;font-weight:800;display:flex}.dash-section-header svg:last-child{color:var(--text-muted)}.dash-empty{text-align:center;color:var(--text-muted);padding:24px 20px;font-size:.9rem}.dash-event-list{flex-direction:column;display:flex}.dash-event-item{border-bottom:1px solid var(--border-light);cursor:pointer;flex-wrap:wrap;align-items:center;gap:14px;padding:14px 20px;transition:background .15s;display:flex}.dash-event-item:last-child{border-bottom:none}.dash-event-item:hover{background:var(--surface-hover)}.dash-event-date{color:var(--text-muted);flex-shrink:0;min-width:70px;font-size:.82rem;font-weight:700}.dash-event-slot{color:var(--text-muted);flex-shrink:0;min-width:46px;font-size:.78rem;font-weight:600}.dash-event-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.9rem;font-weight:700;overflow:hidden}.dash-event-badge{border-radius:20px;flex-shrink:0;padding:3px 12px;font-size:.8rem;font-weight:700}.dash-event-class{color:var(--primary);flex-shrink:0;font-size:.8rem;font-weight:600}.dash-event-status{border-radius:10px;flex-shrink:0;padding:3px 10px;font-size:.78rem;font-weight:700}.dash-time-chart{padding:20px}.dash-time-bars{align-items:flex-end;gap:10px;height:160px;padding-bottom:4px;display:flex}.dash-time-bar-col{flex-direction:column;flex:1;align-items:center;gap:4px;min-width:0;display:flex}.dash-time-bar-wrap{justify-content:center;align-items:flex-end;width:100%;height:120px;display:flex}.dash-time-bar{background:linear-gradient(180deg, var(--primary), var(--primary-light));border-radius:6px 6px 0 0;width:60%;min-width:16px;min-height:2px;transition:height .4s}.dash-time-bar-label{color:var(--text-muted);font-size:.75rem;font-weight:700}.dash-time-bar-hours{color:var(--text-muted);font-size:.7rem}.dash-time-total{border-top:1px solid var(--border-light);color:var(--text-muted);justify-content:flex-end;align-items:center;gap:8px;margin-top:12px;padding-top:12px;font-size:.9rem;display:flex}.dash-time-total strong{color:var(--text);font-family:var(--font-display)}.dash-stat-total{color:var(--text-muted);font-size:1rem;font-weight:600}.dash-empty-success{color:var(--green);font-weight:700}.dash-event-unprepared{border-left:3px solid var(--orange)}.dash-event-missing{color:var(--orange);background:#fff7ed;border:1px solid #fdba74;border-radius:10px;flex-shrink:0;padding:3px 10px;font-size:.8rem;font-weight:700}.dash-settings-order-btns{gap:2px;margin-left:auto;margin-right:8px;display:flex}.dash-settings-order-btn{border:1px solid var(--border);background:var(--surface);width:26px;height:26px;color:var(--text-muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:all .15s;display:flex}.dash-settings-order-btn:hover:not(:disabled){background:var(--primary-bg);border-color:var(--primary-light);color:var(--primary)}.dash-settings-order-btn:disabled{opacity:.25;cursor:not-allowed}.dash-todo-check{cursor:pointer;color:var(--text-light);background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;padding:2px;transition:color .15s,transform .15s;display:flex}.dash-todo-check:hover{color:var(--primary);transform:scale(1.15)}.dash-settings-list{flex-direction:column;gap:6px;padding:12px 24px 24px;display:flex}.dash-settings-item{border-radius:var(--radius-xs);background:var(--bg);cursor:default;align-items:center;gap:12px;padding:12px 14px;display:flex}.dash-settings-emoji{text-align:center;flex-shrink:0;width:28px;font-size:1.3rem}.todo-list{flex-direction:column;gap:6px;display:flex}.todo-item{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-sm);transition:box-shadow var(--transition-fast), border-color var(--transition-fast);cursor:default;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.todo-item:hover{box-shadow:var(--shadow-sm);border-color:var(--border)}.todo-item--done{opacity:.55;background:var(--bg)}.todo-item--overdue{border-left:4px solid var(--coral)}.todo-item--soon{border-left:4px solid var(--orange)}.todo-checkbox{color:var(--text-muted);transition:color var(--transition-fast), transform var(--transition-fast);background:0 0;border:none;flex-shrink:0;margin-top:1px;padding:0}.todo-checkbox:hover{color:var(--primary);transform:scale(1.1)}.todo-item--done .todo-checkbox{color:var(--primary)}.todo-item-body{cursor:pointer;flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.todo-title{color:var(--text);font-size:.95rem;font-weight:600;line-height:1.4}.todo-title--done{color:var(--text-muted);text-decoration:line-through}.todo-note{color:var(--text-muted);white-space:pre-wrap;word-break:break-word;font-size:.82rem}.todo-due-badge{border-radius:20px;align-items:center;gap:4px;width:fit-content;margin-top:2px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.todo-due--normal{background:var(--bg);color:var(--text-muted);border:1px solid var(--border-light)}.todo-due--soon{color:var(--orange);background:#fff7ed;border:1px solid #fdba74}.todo-due--overdue{color:var(--coral);background:#fef2f2;border:1px solid #fecaca}.collapse-toolbar{justify-content:flex-end;padding:0 0 4px;display:flex}.collapse-all-btn{color:var(--text-muted);gap:4px;font-size:.78rem!important}.todo-expand-btn{border-radius:var(--radius-xs);width:28px;height:28px;color:var(--text-light);cursor:pointer;transition:transform var(--transition), color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.todo-expand-btn:hover{background:var(--primary-bg);color:var(--primary)}.todo-expand-btn.expanded{color:var(--primary);transform:rotate(180deg)}.todo-expand-btn--sm{width:22px;height:22px}.todo-note-collapse{transition:grid-template-rows var(--transition) ease;grid-template-rows:0fr;display:grid}.todo-note-collapse>.todo-note{overflow:hidden}.todo-note-collapse.expanded{grid-template-rows:1fr}.todo-note--dash{padding-top:4px;font-size:.78rem}.dash-todo-collapsible{flex-wrap:wrap}.dash-todo-body{cursor:pointer;flex:1;min-width:0}.todo-item-actions{opacity:0;transition:opacity var(--transition-fast);flex-shrink:0;align-items:center;gap:4px;display:flex}.todo-item:hover .todo-item-actions{opacity:1}.todo-tab-count{background:var(--primary-bg);min-width:20px;height:20px;color:var(--primary);border-radius:10px;justify-content:center;align-items:center;margin-left:6px;padding:0 6px;font-size:.72rem;font-weight:700;display:inline-flex}.tab.active .todo-tab-count{color:#fff;background:#ffffff4d}.dash-todo-soon{border-left:3px solid var(--yellow);background:#fffbeb}.dash-todo-overdue{border-left:3px solid var(--coral);background:#fff5f5}.dash-settings-label{flex:1;font-size:.9rem;font-weight:700}.dash-settings-toggle{border:2px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:20px;align-items:center;gap:6px;padding:5px 12px;font-size:.78rem;font-weight:700;transition:all .2s;display:inline-flex}.dash-settings-toggle:hover{border-color:var(--primary-light)}.dash-settings-toggle.active{background:var(--primary-bg);border-color:var(--primary-light);color:var(--primary)}.dash-quicklinks{flex-wrap:wrap;gap:14px;display:flex}.dash-ql-card{border-radius:var(--radius,12px);background:var(--surface);border:2px solid var(--border-light);cursor:pointer;align-items:center;gap:14px;padding:20px 32px;font-size:1.1rem;font-weight:600;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.dash-ql-card:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.dash-ql-dot{border-radius:50%;flex-shrink:0;width:16px;height:16px}.dash-ql-remove{opacity:0;background:var(--surface);border:1px solid var(--border);cursor:pointer;width:20px;height:20px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;transition:opacity .15s;display:flex;position:absolute;top:-6px;right:-6px}.dash-ql-card:hover .dash-ql-remove{opacity:1}.dash-ql-remove:hover{color:#ef4444;background:#fef2f2;border-color:#fca5a5}.dash-ql-empty{color:var(--text-muted);padding:8px 0;font-size:.85rem}.icon-btn.pinned{color:#fbbf24}@media (max-width:768px){.dash-bento-grid{grid-template-columns:1fr}.dash-bento-span-2,.dash-bento-span-1{grid-column:span 1}.dash-stats{grid-template-columns:repeat(2,1fr)}.dash-event-item{gap:8px}.dash-event-date{min-width:60px}}@keyframes cardEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes subtle-pulse{0%,to{opacity:1}50%{opacity:.7}}.class-grid>:first-child{animation-delay:0s}.class-grid>:nth-child(2){animation-delay:50ms}.class-grid>:nth-child(3){animation-delay:.1s}.class-grid>:nth-child(4){animation-delay:.15s}.class-grid>:nth-child(5){animation-delay:.2s}.class-grid>:nth-child(6){animation-delay:.25s}.dash-stats>:first-child{animation-delay:0s}.dash-stats>:nth-child(2){animation-delay:50ms}.dash-stats>:nth-child(3){animation-delay:.1s}.dash-stats>:nth-child(4){animation-delay:.15s}[data-theme=candy]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--primary:#f50057;--primary-light:#ff80ab;--primary-dark:#c51162;--primary-bg:#fce4ec;--primary-glow:#f5005738;--coral:#ff3d00;--coral-light:#ff6e40;--teal:#1de9b6;--teal-light:#64ffda;--yellow:#ffd600;--yellow-light:#ffff8d;--pink:#f50057;--blue:#2979ff;--green:#00e676;--orange:#ff6d00;--bg:#ede7f6;--bg-warm:#fce4ec;--surface:#fff;--surface-hover:#fff0fb;--border:#b39ddb;--border-light:#d1c4e9;--text:#1a0033;--text-muted:#6a1b9a;--text-light:#ab47bc;--shadow-sm:0 2px 8px #7c4dff26, 0 1px 3px #f500571a;--shadow:0 4px 20px #7c4dff33, 0 2px 8px #f5005726;--shadow-lg:0 12px 40px #7c4dff47, 0 4px 16px #f5005733}[data-theme=candy] body{background:linear-gradient(160deg,#ffe0ec,#ede7f6,#e3f2fd,#e8f5e9,#fffde7,#fce4ec) 0 0/400% 400%;animation:14s infinite candyBg}@keyframes candyBg{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}[data-theme=candy] .sidebar{background:linear-gradient(#fffffffa 0%,#fce4ecf2 100%);border-right:1px solid #f8bbd0;box-shadow:2px 0 20px #f500571f}[data-theme=candy] .sidebar-logo h1{-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#f50057,#7c4dff,#2979ff);-webkit-background-clip:text;background-clip:text}[data-theme=candy] .nav-item:hover{color:#f50057;background:linear-gradient(135deg,#f5005714,#7c4dff14)}[data-theme=candy] .nav-item.active{background:linear-gradient(135deg,#f50057,#7c4dff);box-shadow:0 4px 16px #f5005759}[data-theme=candy] .user-avatar{background:linear-gradient(135deg,#f50057,#7c4dff)}[data-theme=candy] .btn-primary{background:linear-gradient(135deg,#f50057,#7c4dff);box-shadow:0 2px 12px #f500574d}[data-theme=candy] .btn-primary:hover{box-shadow:0 4px 22px #f5005773}[data-theme=candy] .auth-btn{background:linear-gradient(135deg,#f50057,#7c4dff)}[data-theme=candy] .btn-secondary:hover{color:#f50057;border-color:#f50057}[data-theme=candy] .page-title{-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#f50057 0%,#7c4dff 50%,#2979ff 100%);-webkit-background-clip:text;background-clip:text;display:inline-block}[data-theme=candy] .dash-stat-red{border-left-color:#f50057}[data-theme=candy] .dash-stat-red .dash-stat-icon{background:linear-gradient(135deg,#f50057,#ff6d00)}[data-theme=candy] .dash-stat-purple{border-left-color:#7c4dff}[data-theme=candy] .dash-stat-purple .dash-stat-icon{background:linear-gradient(135deg,#7c4dff,#e040fb)}[data-theme=candy] .dash-stat-blue{border-left-color:#2979ff}[data-theme=candy] .dash-stat-blue .dash-stat-icon{background:linear-gradient(135deg,#2979ff,#1de9b6)}[data-theme=candy] .dash-stat-orange{border-left-color:#ff6d00}[data-theme=candy] .dash-stat-orange .dash-stat-icon{background:linear-gradient(135deg,#ff6d00,#ffd600)}[data-theme=candy] .dash-stat-card:hover{box-shadow:var(--shadow), 0 0 0 4px #f500571f}[data-theme=candy] .dash-section-header:hover{background:#fce4ec}[data-theme=candy] .auth-page{background:linear-gradient(135deg,#ffe0ec 0%,#ede7f6 33%,#e3f2fd 66%,#e8f5e9 100%)}[data-theme=candy] .auth-logo{background:linear-gradient(135deg,#f50057,#7c4dff)}[data-theme=candy] .mobile-header{background:#fffffff2;border-color:#f8bbd0}[data-theme=candy] .header-logo{color:#f50057}[data-theme=candy] .tab.active{background:var(--surface);color:#f50057;box-shadow:0 2px 8px #f5005726}[data-theme=candy] .spinner{border-top-color:#f50057}[data-theme=candy] :focus-visible{outline-color:#f50057}[data-theme=dark] .auth-page{background:linear-gradient(135deg,#1a1528 0%,#0e0e1a 50%,#1a1228 100%)}[data-theme=dark] .auth-error{color:#ff8080;background:#2a1010;border-color:#6a2020}[data-theme=dark] .form-warning{color:#f4a030;background:#2a2010}[data-theme=dark] .tt-free{background:#1c1c30}[data-theme=dark] .grades-table tr:nth-child(2n){background:#9b7ef80d}[data-theme=dark] .dash-todo-soon{background:#2a2010}[data-theme=dark] .dash-todo-overdue{background:#2a1010}[data-theme=dark] .dash-event-missing{background:#2a1c08;border-color:#7a4828}[data-theme=dark] .todo-due--soon{background:#2a2010;border-color:#7a5020}[data-theme=dark] .todo-due--overdue{background:#2a1010;border-color:#6a2020}[data-theme=dark] .todo-due--normal{background:var(--bg);border-color:var(--border-light)}[data-theme=dark] .btn-ghost.danger:hover,[data-theme=dark] .icon-btn.danger:hover{background:#2a1010}[data-theme=dark] .logout-btn:hover{border-color:var(--coral);color:var(--coral);background:#2a1010}[data-theme=dark] .mobile-header{background:var(--surface);border-color:var(--border-light)}[data-theme=dark] .modal-overlay{background:#0009}[data-theme=dark] .color-swatch.active{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--text)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-light)}.sp-search{border-radius:var(--radius);border:1px solid var(--border-light);background:var(--surface);width:100%;max-width:320px;margin-top:8px;padding:8px 12px;font-size:.9rem}.sp-search:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 2px #14b8a626}.sp-chip{border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:.8rem;font-weight:500;line-height:1.4;display:inline-flex}.sp-chip-wish{background:var(--teal);color:#fff}.sp-chip-exclude{color:#fff;background:#e74c3c}.sp-chip-remove{color:inherit;cursor:pointer;opacity:.8;background:0 0;border:none;padding:0 2px;font-size:1rem;line-height:1}.sp-chip-remove:hover{opacity:1}.sp-fixed-search{border:1px solid var(--border-light);border-radius:6px;width:100%;margin-bottom:4px;padding:4px 6px;font-size:.75rem}.sp-fixed-search:focus{border-color:var(--teal);outline:none}.sp-dropdown{max-height:150px;overflow-y:auto}.sp-dropdown-item{cursor:pointer;border-radius:4px;padding:4px 6px;font-size:.75rem}.sp-dropdown-item:hover{background:var(--bg)}.sp-dropdown-item.active{background:var(--teal-light);font-weight:600}.attendance-list{flex-direction:column;gap:6px;display:flex}.attendance-row{background:var(--surface);border-radius:var(--radius-sm);border-left:4px solid var(--border);box-shadow:var(--shadow-sm);align-items:center;gap:10px;padding:8px 12px;display:flex}.attendance-name{flex:1;font-size:.9rem;font-weight:600}.att-btns{gap:6px;display:flex}.att-btn{border-radius:var(--radius-xs);border:2px solid var(--border);background:var(--bg);cursor:pointer;width:32px;height:32px;transition:var(--transition-fast);justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex}.att-btn:hover{opacity:.85;transform:scale(1.08)}.att-btn-absent{color:#ef4444;border-color:#fca5a5}.att-btn-late{color:#f97316;border-color:#fdba74}.att-btn-excused{color:#22c55e;border-color:#86efac}.att-btn.active{border-width:2px;font-weight:800}.attendance-summary{background:var(--surface);border-radius:var(--radius-sm);flex-wrap:wrap;align-items:center;gap:16px;margin-top:8px;padding:10px 14px;font-size:.9rem;font-weight:600;display:flex}.att-hint{color:var(--text-muted);margin-left:8px;font-size:.8rem}.attendance-month-nav{align-items:center;gap:10px;margin-bottom:16px;display:flex}.attendance-month-label{text-align:center;min-width:160px;font-size:1rem;font-weight:700}.attendance-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.attendance-table{border-collapse:collapse;background:var(--surface);border-radius:var(--radius-sm);min-width:100%;box-shadow:var(--shadow-sm);font-size:.82rem;overflow:hidden}.attendance-table th,.attendance-table td{border:1px solid var(--border-light);text-align:center;white-space:nowrap;padding:4px 8px}.att-th-name,.att-td-name{background:var(--surface);z-index:1;min-width:140px;font-weight:600;position:sticky;left:0;text-align:left!important;padding:6px 10px!important}.att-th-col{background:var(--bg);min-width:40px;font-weight:700}.att-td-cell{min-width:36px;font-size:.8rem}.exam-results-maxpts{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.exam-results-maxpts label{align-items:center;gap:8px;display:flex}.exam-results-maxpts span{color:var(--text-muted);font-size:.85rem;font-weight:600}.notenspiegel-stats{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px;display:grid}@media (max-width:480px){.notenspiegel-stats{grid-template-columns:repeat(2,1fr)}}.ns-stat{background:var(--bg);border-radius:var(--radius-sm);text-align:center;flex-direction:column;gap:4px;padding:12px;display:flex}.ns-stat-val{color:var(--primary);font-size:1.4rem;font-weight:800}.ns-stat-label{color:var(--text-muted);font-size:.75rem;font-weight:600}.notenspiegel-bars{align-items:flex-end;gap:8px;height:120px;margin-bottom:16px;padding:0 4px;display:flex}.notenspiegel-bar-col{flex-direction:column;flex:1;align-items:center;gap:2px;height:100%;display:flex}.ns-bar-count{min-height:16px;font-size:.75rem;font-weight:700}.ns-bar-track{background:var(--bg);border-radius:4px 4px 0 0;flex:1;align-items:flex-end;width:100%;display:flex;overflow:hidden}.ns-bar-fill{border-radius:4px 4px 0 0;width:100%;min-height:2px;transition:height .3s}.ns-bar-label{color:var(--text-muted);font-size:.8rem;font-weight:700}.notenspiegel-table{border-collapse:collapse;background:var(--surface);border-radius:var(--radius-sm);width:100%;box-shadow:var(--shadow-sm);margin-bottom:16px;font-size:.9rem;overflow:hidden}.notenspiegel-table th,.notenspiegel-table td{border:1px solid var(--border-light);text-align:center;padding:8px;font-weight:700}.notenspiegel-table th{background:var(--bg)}.als-note-checkbox{border-top:1px solid var(--border-light);margin-top:8px;padding:10px 0}.als-note-checkbox label{cursor:pointer;color:var(--text-muted);align-items:center;gap:8px;font-size:.85rem;font-weight:600;display:flex}.ep-results-btn{border-radius:var(--radius-xs);border:1px solid var(--primary);background:var(--primary-bg);color:var(--primary);cursor:pointer;white-space:nowrap;transition:var(--transition-fast);flex-shrink:0;align-items:center;gap:4px;padding:4px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.ep-results-btn:hover{background:var(--primary);color:#fff}.ep-exam-type-badge{color:#fff;letter-spacing:.02em;border-radius:4px;flex-shrink:0;align-items:center;margin-right:4px;padding:0 5px;font-size:.68rem;font-weight:800;line-height:1.6;display:inline-flex}.exam-type-toggle{border-radius:var(--radius-sm);border:1.5px solid var(--border);display:flex;overflow:hidden}.exam-type-btn{background:var(--bg);cursor:pointer;font-family:var(--font-body);color:var(--text-muted);transition:var(--transition-fast);border:none;flex:1;padding:9px 12px;font-size:.9rem;font-weight:600}.exam-type-btn:first-child{border-right:1.5px solid var(--border)}.exam-type-btn.active{color:#fff;font-weight:700}.exam-type-btn:hover:not(.active){background:var(--surface-hover);color:var(--text)}.exam-type-badge{vertical-align:middle;border-radius:999px;align-items:center;margin-left:6px;padding:1px 7px;font-size:.75rem;font-weight:700;display:inline-flex}.kl-setup{background:var(--surface);border-radius:var(--radius);text-align:center;max-width:400px;box-shadow:var(--shadow);flex-direction:column;align-items:center;gap:16px;margin:80px auto;padding:40px;display:flex}.kl-setup-icon{color:var(--primary)}.kl-setup h2{color:var(--text);margin:0;font-size:1.4rem;font-weight:800}.kl-setup p{color:var(--text-muted);margin:0;font-size:.9rem}.kl-setup select{border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--bg);width:100%;font-size:.95rem;font-family:var(--font-body);padding:10px 12px}.kl-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.kl-header-left{align-items:center;gap:12px;display:flex}.kl-header-icon{color:var(--primary);flex-shrink:0}.kl-stats{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;display:grid}@media (max-width:640px){.kl-stats{grid-template-columns:repeat(2,1fr)}}.kl-stat-card{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);text-align:center;border-left:4px solid var(--primary-light);padding:16px}.kl-stat-value{color:var(--primary);font-size:1.6rem;font-weight:800;line-height:1.2}.kl-stat-label{color:var(--text-muted);margin-top:4px;font-size:.75rem;font-weight:600}.kl-alert-banner{border-radius:var(--radius-sm);background:#fff7ed;border:1px solid #fdba74;margin-bottom:16px;padding:14px 16px}[data-theme=dark] .kl-alert-banner{background:#2a1c08;border-color:#7a4828}.kl-alert-title{color:#c2410c;margin-bottom:8px;font-weight:700}[data-theme=dark] .kl-alert-title{color:#fb923c}.kl-alert-list{flex-direction:column;gap:4px;display:flex}.kl-alert-item{border-radius:var(--radius-xs);background:#ffffff80;justify-content:space-between;padding:4px 8px;font-size:.9rem;display:flex}[data-theme=dark] .kl-alert-item{background:#ffffff0d}.kl-quick-access{border-top:1px solid var(--border-light);margin-top:8px;padding-top:16px}.kl-quick-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-size:.82rem;font-weight:700}.kl-quick-links{flex-wrap:wrap;gap:10px;display:flex}.kl-section-title{color:var(--text);margin-bottom:12px;font-size:.95rem;font-weight:700}.kl-grades-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.kl-grades-table{border-collapse:collapse;background:var(--surface);border-radius:var(--radius-sm);min-width:100%;box-shadow:var(--shadow-sm);font-size:.82rem;overflow:hidden}.kl-grades-table th,.kl-grades-table td{border:1px solid var(--border-light);text-align:center;white-space:nowrap;padding:6px 8px}.kl-grades-th-name,.kl-grades-td-name{background:var(--surface);z-index:1;min-width:140px;font-weight:600;position:sticky;left:0;text-align:left!important;padding:6px 10px!important}.kl-grades-th-sub{background:var(--bg);min-width:70px;font-size:.78rem;font-weight:700}.kl-grades-th-total{min-width:55px;font-size:1rem}.kl-grade-cell{cursor:pointer;transition:var(--transition-fast);font-size:.85rem}.kl-grade-cell:hover{filter:brightness(.88)}.kl-grade-total{cursor:default}.kl-grade-total:hover{filter:none}.kl-notes-layout{align-items:flex-start;gap:20px;display:flex}@media (max-width:768px){.kl-notes-layout{flex-direction:column}}.kl-notes-sidebar{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);flex:0 0 220px;padding:16px;position:sticky;top:16px}.kl-notes-sidebar-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-size:.78rem;font-weight:700}.kl-student-pills{flex-direction:column;gap:4px;display:flex}.kl-student-pill{border-radius:var(--radius-xs);border:1px solid var(--border-light);background:var(--bg);cursor:pointer;transition:var(--transition-fast);text-align:left;color:var(--text);font-size:.82rem;font-family:var(--font-body);justify-content:space-between;align-items:center;padding:6px 10px;display:flex}.kl-student-pill:hover{background:var(--primary-bg);border-color:var(--primary-light)}.kl-student-pill.active{background:var(--primary-bg);border-color:var(--primary);color:var(--primary);font-weight:700}.kl-pill-badge{background:var(--primary);color:#fff;text-align:center;border-radius:999px;flex-shrink:0;min-width:18px;padding:1px 5px;font-size:.7rem;font-weight:700}.kl-add-note-form{background:var(--bg);border-radius:var(--radius-sm);border:1px solid var(--border-light);flex-direction:column;gap:8px;padding:12px;display:flex}.kl-add-note-title{color:var(--text);font-size:.85rem;font-weight:700}.kl-notes-feed{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.kl-note-card{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);border-left:4px solid var(--border);transition:var(--transition-fast);padding:14px}.kl-note-card:hover{box-shadow:var(--shadow)}.kl-note-card-header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.kl-note-cat-badge{border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:700;display:inline-flex}.kl-note-student-name{flex:1;font-size:.88rem;font-weight:700}.kl-note-time{color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:.75rem}.kl-note-actions{gap:4px;display:flex}.kl-note-text{color:var(--text);white-space:pre-wrap;font-size:.9rem;line-height:1.5}.kl-bday-banner{border-radius:var(--radius-sm);color:#92400e;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #fbbf24;margin-bottom:16px;padding:14px 18px;font-size:.95rem}[data-theme=dark] .kl-bday-banner{color:#fcd34d;background:#2d1e06;border-color:#92400e}.kl-bday-week-cards{flex-wrap:wrap;gap:12px;display:flex}.kl-bday-week-card{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);text-align:center;border-top:3px solid var(--primary);min-width:130px;padding:14px 18px}.kl-bday-week-emoji{margin-bottom:4px;font-size:1.4rem}.kl-bday-week-name{margin-bottom:2px;font-size:.88rem;font-weight:700}.kl-bday-week-date{color:var(--text-muted);margin-bottom:4px;font-size:.8rem}.kl-bday-week-days{color:var(--primary);font-size:.78rem;font-weight:700}.kl-bday-table{border-collapse:collapse;background:var(--surface);border-radius:var(--radius-sm);min-width:100%;box-shadow:var(--shadow-sm);font-size:.9rem;overflow:hidden}.kl-bday-table th,.kl-bday-table td{border:1px solid var(--border-light);text-align:left;white-space:nowrap;padding:8px 12px}.kl-bday-table th{background:var(--bg);font-size:.82rem;font-weight:700}[data-theme=dark] .kl-bday-table tr:nth-child(2n){background:#9b7ef80d}.quiz-session-list{flex-direction:column;gap:12px;display:flex}.quiz-session-card{background:var(--surface);border:1px solid var(--border-light);cursor:pointer;border-radius:12px;align-items:center;gap:14px;padding:14px 16px;transition:transform .15s,box-shadow .15s;display:flex}.quiz-session-card:hover{box-shadow:0 4px 16px var(--shadow);transform:translateY(-2px)}.quiz-session-icon{background:var(--primary-light);width:44px;height:44px;color:var(--primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.quiz-session-info{flex:1;min-width:0}.quiz-session-info strong{font-size:1rem;font-weight:700;display:block}.quiz-session-meta{color:var(--text-muted);font-size:.8rem}.quiz-session-meta code{background:var(--bg);border-radius:4px;padding:1px 5px;font-family:monospace;font-size:.85em}.quiz-session-status{border-radius:20px;padding:4px 10px;font-size:.75rem;font-weight:600}.quiz-session-play{white-space:nowrap;padding:6px 14px;font-size:.82rem}.qcm-modal{flex-direction:column;width:96vw;max-width:780px;max-height:92vh;display:flex;overflow:hidden}.qcm-body{scroll-behavior:smooth;flex-direction:column;flex:1;gap:16px;padding:20px 24px;display:flex;overflow-y:auto}.qcm-top-fields{grid-template-columns:1fr 1.5fr;gap:14px;display:grid}@media (max-width:580px){.qcm-top-fields{grid-template-columns:1fr}}.qcm-field-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:5px;margin-bottom:6px;font-size:.78rem;font-weight:700;display:flex}.qcm-class-row{align-items:center;gap:8px;display:flex}.qcm-select{border:1.5px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:10px;flex:1;padding:9px 12px;font-size:.9rem}.qcm-select:focus{border-color:var(--primary);outline:none}.qcm-student-badge{white-space:nowrap;background:var(--primary-light);color:var(--primary);border-radius:20px;padding:4px 10px;font-size:.78rem;font-weight:600}.qcm-title-input{border:1.5px solid var(--border);background:var(--bg);width:100%;color:var(--text);border-radius:10px;padding:9px 12px;font-size:1rem;font-weight:600}.qcm-title-input:focus{border-color:var(--primary);outline:none}.qcm-ai-section{flex-direction:column;gap:8px;display:flex}.qcm-ai-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.qcm-ai-input{border:1.5px solid var(--border);background:var(--surface);min-width:180px;color:var(--text);border-radius:8px;flex:1;padding:8px 12px;font-size:.9rem}.qcm-ai-input:focus{border-color:var(--primary);outline:none}.qcm-ai-select{border:1.5px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:8px 10px;font-size:.85rem}.qcm-ai-select:focus{border-color:var(--primary);outline:none}.qcm-ai-btn{white-space:nowrap}.qcm-ai-hint{color:var(--text-muted);margin:0;font-size:.76rem}.qcm-ai-error{color:#ef4444;background:#ef44440f;border-left:3px solid #ef4444;border-radius:8px;margin:0;padding:8px 12px;font-size:.82rem}.qcm-import-area{flex-direction:column;gap:10px;display:flex}.qcm-import-textarea{resize:vertical;border:1.5px solid var(--border);background:var(--surface);width:100%;min-height:110px;color:var(--text);box-sizing:border-box;border-radius:8px;padding:10px 12px;font-family:inherit;font-size:.86rem}.qcm-import-textarea:focus{border-color:var(--primary);outline:none}.qcm-import-file-btn{border:1.5px dashed var(--border);color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border-radius:8px;align-items:center;gap:8px;padding:8px 14px;font-size:.84rem;transition:border-color .15s,color .15s;display:flex}.qcm-import-file-btn:hover{border-color:var(--primary);color:var(--primary)}.qcm-import-file-name{color:var(--text-muted);align-items:center;font-size:.8rem;display:flex}.qcm-stepper{flex-shrink:0;align-items:center;gap:0;padding:14px 24px 0;display:flex}.qcm-step{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;font-size:.82rem;font-weight:600;transition:color .2s;display:flex}.qcm-step-num{background:var(--border);width:24px;height:24px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;font-weight:800;transition:background .2s,color .2s;display:flex}.qcm-step.active{color:var(--primary);font-weight:700}.qcm-step.active .qcm-step-num{background:var(--primary);color:#fff}.qcm-step.done{color:#22c55e}.qcm-step.done .qcm-step-num{color:#fff;background:#22c55e}.qcm-step-line{background:var(--border);flex:1;min-width:20px;height:2px;margin:0 10px}.qcm-step-line.done{background:#22c55e}.qcm-basics{flex-direction:column;gap:20px;width:100%;max-width:440px;margin:0 auto;padding-top:10px;display:flex}.qcm-basics-desc{color:var(--text-muted);text-align:center;margin:0;font-size:.88rem}.qcm-method-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}@media (max-width:600px){.qcm-method-grid{grid-template-columns:1fr}}.qcm-method-card{border:1.5px solid var(--border);cursor:pointer;text-align:center;background:var(--surface);border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:20px 16px;transition:border-color .2s,box-shadow .2s,background .2s;display:flex}.qcm-method-card:hover{border-color:var(--primary);box-shadow:0 2px 12px #7c5ce71a}.qcm-method-card.primary{background:linear-gradient(135deg,#7c3aed0a,#a855f70f);border-color:#7c3aed4d}.qcm-method-card.selected{border-color:var(--primary);background:var(--primary-light);box-shadow:0 2px 12px #7c5ce726}.qcm-method-icon{font-size:2rem}.qcm-method-title{color:var(--text);font-size:.95rem;font-weight:700}.qcm-method-desc{color:var(--text-muted);font-size:.78rem;line-height:1.4}.qcm-method-expand{background:linear-gradient(135deg,#7c3aed0a,#a855f70a);border:1px solid #7c3aed26;border-radius:12px;flex-direction:column;grid-column:1/-1;gap:10px;padding:16px;display:flex}.qcm-accordion{flex-direction:column;gap:0;display:flex}.qcm-accordion-item{border:1.5px solid var(--border);background:var(--surface);border-radius:0;margin-top:-1.5px}.qcm-accordion-item:first-child{border-radius:12px 12px 0 0;margin-top:0}.qcm-accordion-item:last-of-type{border-radius:0 0 12px 12px}.qcm-accordion-item:only-of-type{border-radius:12px}.qcm-accordion-item.expanded{border-color:var(--primary);z-index:1;position:relative;box-shadow:0 2px 8px #7c5ce71a}.qcm-accordion-header{cursor:pointer;width:100%;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:12px 16px;font-size:.88rem;font-weight:600;transition:background .15s;display:flex}.qcm-accordion-header:hover{background:var(--bg)}.qcm-acc-indicator{background:var(--border);width:20px;height:20px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;font-weight:800;display:flex}.qcm-accordion-header.valid .qcm-acc-indicator{color:#fff;background:#22c55e}.qcm-accordion-header.invalid .qcm-acc-indicator{color:#fff;background:#f97316}.qcm-acc-num{color:var(--text-muted);flex-shrink:0;font-weight:700}.qcm-acc-icon{flex-shrink:0}.qcm-acc-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.qcm-acc-chevron{color:var(--text-muted);flex-shrink:0}.qcm-answer-preview{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;padding:0 16px 10px 60px;font-size:.78rem;overflow:hidden}.qcm-accordion-body{border-top:1px solid var(--border-light);flex-direction:column;gap:14px;padding:4px 16px 16px;display:flex}.qcm-add-question-btn{border:1.5px dashed var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:12px;justify-content:center;align-items:center;gap:6px;margin-top:8px;padding:12px;font-size:.88rem;font-weight:600;transition:all .15s;display:flex}.qcm-add-question-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.qcm-editor{background:var(--bg);border:1.5px solid var(--border);border-radius:14px;flex-direction:column;gap:14px;padding:18px;display:flex}.qcm-editor-topbar{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.qcm-type-seg{background:var(--surface);border:1px solid var(--border-light);border-radius:10px;flex-shrink:0;gap:3px;max-width:100%;padding:3px;display:flex;overflow-x:auto}.qcm-type-btn{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;flex-shrink:0;align-items:center;gap:4px;padding:5px 9px;font-size:.78rem;font-weight:600;transition:all .15s;display:flex}.qcm-type-btn:hover{color:var(--text);background:var(--bg)}.qcm-type-btn.active{background:var(--primary);color:#fff;box-shadow:0 2px 6px #7c5ce740}.qcm-type-label{display:none}@media (min-width:520px){.qcm-type-label{display:inline}}.qcm-editor-settings{align-items:center;gap:8px;margin-left:auto;display:flex}.qcm-setting{color:var(--text-muted);cursor:pointer;align-items:center;gap:5px;font-size:.82rem;display:flex}.qcm-setting select{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:5px 8px;font-size:.82rem}.qcm-setting select:focus{border-color:var(--primary);outline:none}.qcm-question-input{resize:vertical;border:1.5px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:10px;min-height:80px;padding:12px 14px;font-family:inherit;font-size:1rem;line-height:1.5}.qcm-question-input:focus{border-color:var(--primary);outline:none}.qcm-mc-options{flex-direction:column;gap:8px;display:flex}.qcm-mc-option{border:1.5px solid var(--border);background:var(--surface);border-radius:10px;align-items:center;gap:10px;padding:8px 12px;transition:border-color .15s;display:flex}.qcm-mc-option.correct{background:#22c55e0d;border-color:#22c55e}.qcm-mc-badge{color:#fff;cursor:pointer;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:.85rem;font-weight:800;transition:filter .15s;display:flex}.qcm-mc-badge:hover{filter:brightness(1.15)}.qcm-mc-input{color:var(--text);cursor:text;background:0 0;border:none;outline:none;flex:1;font-size:.92rem}.qcm-mc-input::placeholder{color:var(--text-light)}.qcm-correct-check{color:#22c55e;flex-shrink:0;font-size:1.1rem;font-weight:800}.qcm-tf-options{gap:12px;display:flex}.qcm-tf-option{border:2.5px solid var(--tf-color,var(--border));background:var(--surface);color:var(--text);cursor:pointer;border-radius:12px;flex:1;align-items:center;gap:10px;padding:14px 16px;font-weight:600;transition:all .15s;display:flex}.qcm-tf-option:hover{background:var(--tf-color)}@supports (color:color-mix(in lab, red, red)){.qcm-tf-option:hover{background:color-mix(in srgb, var(--tf-color) 8%, var(--surface))}}.qcm-tf-option.correct{background:var(--tf-color)}@supports (color:color-mix(in lab, red, red)){.qcm-tf-option.correct{background:color-mix(in srgb, var(--tf-color) 12%, var(--surface))}}.qcm-tf-icon{flex-shrink:0;font-size:1.4rem}.qcm-tf-label{flex:1;font-size:.95rem}.qcm-tf-selected{color:var(--text-muted);white-space:nowrap;font-size:.75rem}.qcm-est-editor{flex-direction:column;gap:10px;display:flex}.qcm-est-field-wrap{align-items:center;gap:12px;display:flex}.qcm-est-label{white-space:nowrap;font-size:.9rem;font-weight:600}.qcm-est-input{border:1.5px solid var(--border);background:var(--surface);width:160px;color:var(--text);text-align:center;cursor:text;border-radius:10px;padding:10px 12px;font-size:1.1rem;font-weight:700}.qcm-est-input:focus{border-color:var(--primary);outline:none}.qcm-hint{color:var(--text-muted);margin:2px 0 0;font-size:.76rem}.qcm-doc-toggle{border:1.5px dashed var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;align-self:flex-start;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:600;transition:all .15s;display:inline-flex}.qcm-doc-toggle:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.qcm-doc-toggle.open{border-style:solid;border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.qcm-doc-toggle.has-docs{color:#22c55e;background:#22c55e14;border-style:solid;border-color:#22c55e}.qcm-doc-toggle.has-docs.open{background:#22c55e1f}.qcm-doc-panel{border:1.5px solid var(--border);background:var(--surface);border-radius:12px;overflow:hidden}.qcm-doc-tabs{border-bottom:1.5px solid var(--border);display:flex}.qcm-doc-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:1;padding:9px 14px;font-size:.8rem;font-weight:600;transition:all .15s}.qcm-doc-tab:hover{color:var(--text);background:var(--bg-hover)}.qcm-doc-tab.active{color:var(--primary);background:var(--primary-light);border-bottom:2px solid var(--primary)}.qcm-doc-existing{flex-direction:column;gap:8px;padding:10px;display:flex}.qcm-doc-search{border:1.5px solid var(--border);background:var(--bg);width:100%;color:var(--text);border-radius:8px;padding:7px 11px;font-size:.85rem}.qcm-doc-search:focus{border-color:var(--primary);outline:none}.qcm-doc-list{flex-direction:column;gap:2px;max-height:200px;display:flex;overflow-y:auto}.qcm-doc-loading{color:var(--text-muted);align-items:center;gap:8px;padding:12px;font-size:.82rem;display:flex}.qcm-doc-empty{color:var(--text-muted);margin:0;padding:10px;font-size:.82rem}.qcm-doc-item{color:var(--text);cursor:pointer;text-align:left;background:0 0;border:1.5px solid #0000;border-radius:8px;align-items:center;gap:8px;width:100%;padding:7px 10px;font-size:.83rem;transition:all .12s;display:flex}.qcm-doc-item:hover{background:var(--bg);border-color:var(--border)}.qcm-doc-item.selected{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.qcm-doc-emoji{flex-shrink:0;font-size:1rem}.qcm-doc-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.qcm-doc-subject{background:var(--bg);color:var(--text-muted);white-space:nowrap;border-radius:20px;flex-shrink:0;padding:2px 7px;font-size:.72rem}.qcm-doc-check{color:var(--primary);flex-shrink:0;width:16px;font-weight:800}.qcm-doc-upload{flex-direction:column;gap:10px;padding:12px;display:flex}.qcm-doc-upload-btn{border:2px dashed var(--border);width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:20px;transition:all .15s;display:flex}.qcm-doc-upload-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.qcm-doc-upload-btn span:first-of-type{font-size:.92rem;font-weight:600}.qcm-doc-upload-hint{color:var(--text-muted);font-size:.72rem}.qcm-doc-new-files{flex-direction:column;gap:4px;max-height:100px;display:flex;overflow-y:auto}.qcm-doc-new-item{background:var(--bg);border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;padding:6px 10px;font-size:.83rem;display:flex}.qcm-doc-new-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.qcm-doc-new-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:1.1rem;line-height:1;transition:color .1s}.qcm-doc-new-remove:hover{color:#ef4444}.qcm-doc-chips{flex-wrap:wrap;gap:6px;display:flex}.qcm-doc-chip{color:#16a34a;background:#22c55e1a;border:1.5px solid #22c55e59;border-radius:20px;align-items:center;gap:5px;max-width:220px;padding:4px 8px 4px 10px;font-size:.78rem;font-weight:600;display:inline-flex}.qcm-chip-name{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.qcm-doc-chip button{color:#16a34a;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 0 0 2px;font-size:1rem;line-height:1;transition:color .1s}.qcm-doc-chip button:hover{color:#ef4444}.qcm-footer{padding:12px 24px}.qcm-footer-info{color:var(--text-muted);font-size:.82rem}.qr-section{flex-direction:column;gap:12px;margin-bottom:8px;display:flex}.qr-section-header{color:var(--text);align-items:center;gap:8px;display:flex}.qr-section-header h3{margin:0;font-size:1rem;font-weight:700}.qr-badge{background:var(--primary-light);color:var(--primary);border-radius:20px;padding:2px 9px;font-size:.72rem;font-weight:700}.qr-empty{color:var(--text-muted);margin:0;padding:8px 0;font-size:.85rem}.qr-ranking-table-wrap{border:1px solid var(--border);border-radius:12px;overflow-x:auto}.qr-ranking-table{border-collapse:collapse;width:100%;font-size:.85rem}.qr-ranking-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface);border-bottom:1px solid var(--border);padding:10px 14px;font-size:.72rem;font-weight:700}.qr-ranking-table td{border-bottom:1px solid var(--border-light);padding:9px 14px}.qr-ranking-table tr:last-child td{border-bottom:none}.qr-ranking-table tr.qr-top-row{background:var(--primary-light)}.qr-ranking-table tr:not(.qr-top-row):hover{background:var(--bg-hover)}.qr-rank-cell{text-align:center;width:48px;font-size:1rem}.qr-rank-num{color:var(--text-muted);font-size:.78rem;font-weight:700}.qr-name-cell{font-weight:600}.qr-num-col{text-align:right!important}.qr-num-cell{text-align:right;font-variant-numeric:tabular-nums}.qr-pts-total{color:var(--primary);font-weight:800}.qr-accuracy{font-size:.85rem;font-weight:700}.qr-sessions{flex-direction:column;gap:6px;display:flex}.qr-session-item{border:1.5px solid var(--border);border-radius:12px;overflow:hidden}.qr-session-header{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:12px 16px;transition:background .15s;display:flex}.qr-session-header:hover{background:var(--bg-hover)}.qr-session-icon{color:var(--primary);flex-shrink:0}.qr-session-title{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.9rem;font-weight:700;overflow:hidden}.qr-session-meta{color:var(--text-muted);white-space:nowrap;font-size:.75rem}.qr-session-detail{border-top:1px solid var(--border);background:var(--surface);padding:0}.qr-mini-table{border-collapse:collapse;width:100%;font-size:.83rem}.qr-mini-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border);padding:7px 14px;font-size:.7rem;font-weight:700}.qr-mini-table td{border-bottom:1px solid var(--border-light);padding:7px 14px}.qr-mini-table tr:last-child td{border-bottom:none}.qr-mini-table tr.qr-top-row{background:var(--primary-light)}.spinner-sm{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.6s linear infinite spin;display:inline-block}.quiz-create-layout{flex:1;gap:16px;min-height:360px;display:flex}.quiz-question-list{flex-direction:column;flex-shrink:0;gap:4px;width:200px;display:flex;overflow-y:auto}.quiz-question-list-item{cursor:pointer;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:.85rem;transition:background .15s;display:flex}.quiz-question-list-item:hover{background:var(--bg)}.quiz-question-list-item.active{background:var(--primary-light);border-color:var(--primary)}.quiz-q-num{color:var(--text-muted);min-width:20px;font-size:.8rem;font-weight:700}.quiz-q-preview{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.quiz-add-question-btn{border:1px dashed var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:6px;margin-top:4px;padding:8px 10px;font-size:.82rem;transition:background .15s;display:flex}.quiz-add-question-btn:hover{background:var(--bg);color:var(--primary);border-color:var(--primary)}.quiz-question-editor{border:1px solid var(--border);background:var(--bg);border-radius:10px;flex-direction:column;flex:1;gap:12px;padding:14px;display:flex;overflow-y:auto}.quiz-editor-header{justify-content:space-between;align-items:center;font-size:.9rem;font-weight:600;display:flex}.quiz-question-textarea{resize:vertical;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:8px;padding:10px;font-family:inherit;font-size:1rem}.quiz-question-textarea:focus{border-color:var(--primary);outline:none}.quiz-options-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.quiz-option-editor{border:2px solid var(--border);border-radius:8px;align-items:center;gap:8px;padding:6px 8px;transition:border-color .15s;display:flex}.quiz-option-editor.correct{background:#22c55e0f;border-color:#22c55e}.quiz-opt-label{color:#fff;cursor:pointer;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-weight:700;transition:filter .15s;display:flex}.quiz-opt-label:hover{filter:brightness(1.15)}.quiz-option-editor input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:.88rem}.quiz-correct-mark{color:#22c55e;font-size:1rem;font-weight:700}.quiz-opt-hint{color:var(--text-muted);margin:0;font-size:.75rem}.quiz-host-page{color:#fff;background:#1a1a2e;flex-direction:column;min-height:100vh;font-family:Nunito,Quicksand,sans-serif;display:flex}.quiz-host-topbar{background:#0000004d;border-bottom:1px solid #ffffff1a;align-items:center;gap:16px;padding:12px 20px;display:flex}.quiz-host-title{flex:1;font-size:1.1rem;font-weight:700}.quiz-host-meta{opacity:.8;align-items:center;gap:8px;font-size:.9rem;display:flex}.quiz-host-progress{background:#ffffff26;border-radius:20px;padding:2px 10px;font-size:.82rem}.quiz-lobby{flex-wrap:wrap;flex:1;justify-content:center;align-items:stretch;gap:32px;min-height:0;padding:28px 40px;display:flex}.quiz-lobby-left{flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:16px;display:flex}.quiz-code-display{text-align:center}.quiz-code-label{opacity:.7;margin-bottom:4px;font-size:.9rem;display:block}.quiz-code-value{letter-spacing:.12em;color:#fbbf24;text-shadow:0 0 30px #fbbf2480;font-size:4rem;font-weight:900;display:block}.quiz-qr-wrap{background:#fff;border-radius:16px;padding:16px;box-shadow:0 8px 32px #0006}.quiz-join-url{opacity:.5;margin:0;font-size:.78rem}.quiz-lobby-right{background:#ffffff12;border:1px solid #ffffff1f;border-radius:20px;flex-direction:column;flex:1;gap:14px;min-width:320px;max-width:700px;min-height:0;padding:24px 28px;display:flex}.quiz-lobby-heading{flex-shrink:0;align-items:center;gap:8px;margin:0;font-size:1.1rem;display:flex}.quiz-player-list{flex-wrap:wrap;flex:1;align-content:flex-start;gap:8px;min-height:120px;padding:4px 2px;display:flex;overflow-y:auto}.quiz-player-chip{background:#ffffff1f;border:1px solid #fff3;border-radius:20px;align-items:center;gap:6px;padding:4px 6px 4px 12px;font-size:.85rem;display:flex}.quiz-player-chip-name{line-height:1}.quiz-player-kick{color:#ef4444d9;cursor:pointer;background:#ef444440;border:1px solid #ef444466;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;padding:0;font-size:.75rem;font-weight:700;line-height:1;transition:background .15s,border-color .15s;display:flex}.quiz-player-kick:hover{color:#fff;background:#ef44448c;border-color:#ef4444b3}.quiz-waiting-hint{color:#fff6;font-size:.88rem}.quiz-lobby-footer{border-top:1px solid #ffffff1a;flex-shrink:0;justify-content:space-between;align-items:center;padding-top:14px;display:flex}.quiz-start-btn{background:#22c55e;border-color:#22c55e;padding:10px 24px;font-size:1rem}.quiz-start-btn:hover{background:#16a34a}.quiz-qr-toggle{letter-spacing:.06em;border-radius:20px;align-items:center;gap:6px;padding:5px 12px;font-size:.82rem;font-weight:700;transition:background .15s;display:inline-flex;color:#ffffffbf!important;background:#ffffff14!important;border:1px solid #ffffff40!important}.quiz-qr-toggle:hover{background:#ffffff29!important}.quiz-qr-toggle.active{color:#fbbf24!important;background:#fbbf2433!important;border-color:#fbbf2480!important}.quiz-qr-toggle-label{letter-spacing:.1em;font-size:.85rem;font-weight:900}.quiz-qr-overlay{z-index:200;background:#0000008c;justify-content:flex-end;align-items:flex-start;padding-top:56px;padding-right:16px;display:flex;position:fixed;inset:0}.quiz-qr-panel{background:#1e1e3a;border:1px solid #ffffff26;border-radius:20px;flex-direction:column;align-items:center;gap:14px;min-width:240px;padding:24px;animation:.2s slideDown;display:flex;box-shadow:0 16px 48px #0009}.quiz-qr-code-big{letter-spacing:.15em;color:#fbbf24;text-shadow:0 0 20px #fbbf2466;font-size:2.8rem;font-weight:900}.quiz-qr-inner{background:#fff;border-radius:12px;padding:12px;box-shadow:0 4px 16px #0006}.quiz-qr-url{opacity:.45;text-align:center;word-break:break-all;max-width:220px;margin:0;font-size:.72rem}.quiz-qr-hint{opacity:.3;margin:0;font-size:.68rem}.quiz-question-view{flex-direction:column;flex:1;align-items:center;gap:20px;padding:24px 32px;display:flex}.quiz-timer-row{align-items:center;gap:16px;width:100%;max-width:900px;display:flex}.quiz-timer{background:#ffffff1f;border-radius:12px;align-items:center;gap:8px;min-width:80px;padding:8px 16px;font-size:1.5rem;font-weight:900;display:flex}.quiz-answer-count{opacity:.7;margin-left:auto;font-size:.9rem}.quiz-skip-btn{font-size:.82rem;color:#ffffffb3!important;border-color:#ffffff4d!important}.quiz-question-text{text-align:center;text-shadow:0 2px 8px #0000004d;max-width:800px;font-size:2rem;font-weight:800;line-height:1.3}.quiz-host-options{grid-template-columns:1fr 1fr;gap:14px;width:100%;max-width:900px;display:grid}.quiz-host-option{border-radius:14px;align-items:center;gap:14px;min-height:80px;padding:16px 20px;font-size:1.1rem;font-weight:600;display:flex}.quiz-opt-letter{background:#0003;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-weight:900;display:flex}.quiz-opt-text{flex:1}.quiz-results-view{flex-direction:column;flex:1;gap:16px;padding:24px 32px;display:flex;overflow-y:auto}.quiz-results-question{text-align:center;margin-bottom:4px;font-size:1.4rem;font-weight:800}.quiz-results-options{flex-direction:column;gap:10px;width:100%;max-width:700px;margin:0 auto;display:flex}.quiz-results-option{background:#ffffff12;border:2px solid #ffffff1a;border-radius:12px;align-items:center;gap:12px;padding:10px 14px;transition:border-color .2s;display:flex}.quiz-results-option.correct{background:#22c55e1f;border-color:#22c55e}.quiz-res-label{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.9rem;font-weight:700;display:flex}.quiz-res-text{flex:1;font-size:.95rem}.quiz-res-bar{background:#ffffff26;border-radius:4px;flex:2;height:8px;overflow:hidden}.quiz-res-bar-fill{border-radius:4px;height:100%;transition:width .4s}.quiz-res-count{text-align:right;min-width:24px;font-size:.9rem;font-weight:700}.quiz-correct-icon{color:#22c55e;font-size:1.1rem}.quiz-mini-leaderboard{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:14px;width:100%;max-width:400px;margin:0 auto;padding:16px}.quiz-mini-leaderboard h3{opacity:.7;align-items:center;gap:6px;margin:0 0 10px;font-size:.9rem;display:flex}.quiz-lb-row{border-bottom:1px solid #ffffff0f;align-items:center;gap:10px;padding:6px 0;display:flex}.quiz-lb-row:last-child{border-bottom:none}.quiz-lb-rank{color:#fbbf24;width:24px;font-weight:700}.quiz-lb-name{flex:1;font-size:.9rem}.quiz-lb-pts{color:#22c55e;font-weight:700}.quiz-results-footer{justify-content:center;padding:10px 0;display:flex}.quiz-next-btn{background:#22c55e;border-color:#22c55e;padding:12px 28px;font-size:1rem}.quiz-next-btn:hover{background:#16a34a}.quiz-finished-view{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:20px;padding:40px;display:flex}.quiz-finished-trophy{color:#fbbf24;filter:drop-shadow(0 0 20px #fbbf2499)}.quiz-finished-title{margin:0;font-size:2.5rem;font-weight:900}.quiz-final-leaderboard{flex-direction:column;gap:6px;width:100%;max-width:500px;display:flex}.quiz-final-row{background:#ffffff12;border-radius:12px;align-items:center;gap:14px;padding:10px 16px;display:flex}.quiz-final-row.top{background:#fbbf241f;border:1px solid #fbbf244d}.quiz-final-rank{min-width:36px;font-size:1.3rem}.quiz-final-name{flex:1;font-size:1rem;font-weight:600}.quiz-final-pts{color:#22c55e;font-weight:700}.quiz-reconnect-banner{z-index:9999;color:#fff;background:#dc2626;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:.85rem;font-weight:700;animation:.25s slideDown;display:flex;position:fixed;top:0;left:0;right:0}.quiz-player-page{color:#fff;min-height:100vh;padding-bottom:env(safe-area-inset-bottom,20px);background:#1a1a2e;flex-direction:column;font-family:Nunito,Quicksand,sans-serif;display:flex}.quiz-player-logo{opacity:.6;align-items:center;gap:8px;padding:12px 16px;font-size:.9rem;font-weight:700;display:flex}.quiz-player-center{flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.quiz-error-card,.quiz-join-card,.quiz-lobby-card,.quiz-answered-card,.quiz-result-card{text-align:center;background:#ffffff12;border:1px solid #ffffff1f;border-radius:20px;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:400px;padding:32px 28px;display:flex}.quiz-join-icon{color:#fbbf24}.quiz-join-card h2{margin:0;font-size:1.4rem}.quiz-join-code{color:#fff9;margin:0}.quiz-name-input{color:#fff;text-align:center;background:#ffffff14;border:2px solid #fff3;border-radius:12px;width:100%;padding:12px 16px;font-family:inherit;font-size:1.1rem}.quiz-name-input:focus{border-color:#fbbf24;outline:none}.quiz-name-input::placeholder{color:#ffffff4d}.quiz-join-btn{background:#3b82f6;border-color:#3b82f6;width:100%;padding:12px;font-size:1rem}.quiz-join-btn:hover{background:#2563eb}.quiz-lobby-pulse{color:#fbbf24;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.5}}.quiz-lobby-card h2{margin:0;font-size:1.3rem}.quiz-lobby-name{color:#fffc;margin:0}.quiz-lobby-waiting{color:#ffffff80;margin:0;font-size:.9rem}.quiz-lobby-count{background:#ffffff1a;border-radius:20px;margin:0;padding:4px 12px;font-size:.82rem}.quiz-player-question{flex-direction:column;flex:1;gap:16px;padding:12px 16px 20px;display:flex}.quiz-player-timer-bar{background:#ffffff1a;border-radius:4px;height:8px;overflow:hidden}.quiz-player-timer-fill{border-radius:4px;height:100%;transition:width .3s linear,background .3s}.quiz-player-timer-num{text-align:center;color:#fbbf24;font-size:1.5rem;font-weight:900}.quiz-player-question-text{text-align:center;padding:12px;font-size:1.3rem;font-weight:700;line-height:1.4}.quiz-answer-grid{flex:1;grid-template-columns:1fr 1fr;gap:12px;display:grid}.quiz-answer-btn{color:#fff;cursor:pointer;text-align:center;border:none;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:100px;padding:16px;font-family:inherit;font-size:.95rem;font-weight:700;transition:transform .15s,filter .15s;display:flex}.quiz-answer-btn:active{transform:scale(.96)}.quiz-answer-btn:hover{filter:brightness(1.12)}.quiz-answer-letter{background:#0003;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.4rem;font-weight:900;display:flex}.quiz-answer-text{font-size:.88rem;line-height:1.3}.quiz-result-card.correct{background:#22c55e1a;border-color:#22c55e}.quiz-result-card.wrong{background:#ef44441a;border-color:#ef4444}.quiz-result-icon{font-size:3.5rem}.quiz-result-card h2{margin:0;font-size:1.8rem;font-weight:900}.quiz-result-points{color:#22c55e;margin:0;font-size:1.2rem;font-weight:700}.quiz-result-score{opacity:.7;margin:0}.quiz-result-hint{opacity:.5;margin:0;font-size:.82rem}.quiz-player-finished{flex-direction:column;flex:1;align-items:center;gap:14px;padding:32px 20px;display:flex;overflow-y:auto}.quiz-finished-icon{color:#fbbf24}.quiz-player-finished h2{margin:0;font-size:2rem;font-weight:900}.quiz-your-score{color:#22c55e;margin:0;font-size:2.5rem;font-weight:900}.quiz-your-rank{margin:0;font-size:1.8rem}.quiz-final-lb-player{flex-direction:column;gap:6px;width:100%;max-width:360px;display:flex}.quiz-plb-row{background:#ffffff12;border-radius:10px;align-items:center;gap:12px;padding:8px 14px;font-size:.9rem;display:flex}.quiz-plb-row.me{background:#fbbf2426;border:1px solid #fbbf244d}.quiz-plb-row span:first-child{opacity:.6;width:24px}.quiz-plb-row span:nth-child(2){flex:1;font-weight:600}.quiz-plb-row span:nth-child(3){color:#22c55e;font-weight:700}@media (max-width:600px){.quiz-host-options{grid-template-columns:1fr}.quiz-question-text{font-size:1.4rem}.quiz-lobby{gap:24px;padding:20px}.quiz-code-value{font-size:2.8rem}.quiz-create-layout{flex-direction:column}.quiz-question-list{width:100%;max-height:180px}.quiz-options-grid{grid-template-columns:1fr}}.quiz-class-row{background:var(--primary-light);border:1px solid var(--primary);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:flex}.quiz-class-label{color:var(--primary);white-space:nowrap;align-items:center;gap:6px;font-size:.9rem;font-weight:700;display:flex}.quiz-class-select{border:1px solid var(--border);background:var(--bg);min-width:140px;color:var(--text);border-radius:8px;flex:1;padding:6px 10px;font-size:.9rem}.quiz-student-count{color:var(--text-muted);white-space:nowrap;font-size:.8rem}.quiz-join-hint{color:#ffffffa6;margin:0;font-size:.85rem}.quiz-student-select{color:#fff;background:#ffffff14;border:2px solid #fff3;border-radius:12px;width:100%;padding:12px 14px;font-family:inherit;font-size:1rem}.quiz-student-select:focus{border-color:#fbbf24;outline:none}.quiz-student-select option{color:#fff;background:#1a1a2e}.quiz-q-type-icon{flex-shrink:0;font-size:.85rem}.quiz-qtype-row{flex-wrap:wrap;gap:6px;display:flex}.quiz-qtype-btn{border:2px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:20px;align-items:center;gap:5px;padding:6px 12px;font-size:.8rem;font-weight:600;transition:all .15s;display:flex}.quiz-qtype-btn:hover{border-color:var(--primary);color:var(--primary)}.quiz-qtype-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.quiz-tf-options{gap:10px;display:flex}.quiz-tf-btn{background:var(--bg);color:var(--text);cursor:pointer;border:3px solid;border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;min-height:80px;padding:16px 12px;font-size:.9rem;font-weight:600;transition:all .15s;display:flex}.quiz-tf-btn.active{color:#fff}.quiz-tf-btn:first-child.active{background:#22c55e}.quiz-tf-btn:nth-child(2).active{background:#ef4444}.quiz-estimation-editor{flex-direction:column;gap:10px;display:flex}.quiz-est-label{align-items:center;gap:10px;font-size:.9rem;font-weight:600;display:flex}.quiz-correct-answer-input{border:2px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;width:140px;padding:8px 12px;font-size:1rem;font-weight:700}.quiz-correct-answer-input:focus{border-color:var(--primary);outline:none}.quiz-ai-hint{color:var(--text-muted);margin:0;font-size:.78rem}.quiz-tf-host{grid-template-columns:1fr 1fr!important}.quiz-est-waiting{opacity:.7;text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px;display:flex}.quiz-est-hint{opacity:.6;margin:0;font-size:.85rem}.quiz-est-results{flex-direction:column;gap:12px;width:100%;max-width:640px;margin:0 auto;display:flex}.quiz-est-correct-banner{text-align:center;background:#22c55e26;border:2px solid #22c55e;border-radius:12px;padding:12px 18px;font-size:1.2rem}.quiz-est-ranking{flex-direction:column;gap:6px;display:flex}.quiz-est-row{background:#ffffff12;border:1px solid #ffffff1a;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:.9rem;display:flex}.quiz-est-row.top{background:#fbbf241a;border-color:#fbbf244d}.quiz-est-medal{min-width:28px;font-size:1.1rem}.quiz-est-name{flex:1;font-weight:600}.quiz-est-guess{color:#fbbf24;min-width:60px;font-weight:700}.quiz-est-diff{opacity:.6;min-width:60px;font-size:.8rem}.quiz-est-pts{color:#22c55e;text-align:right;min-width:50px;font-weight:700}.quiz-tf-player{flex-direction:column;flex:1;gap:14px;padding:0 4px;display:flex}.quiz-tf-player-btn{color:#fff;cursor:pointer;border:none;border-radius:18px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;min-height:100px;font-family:inherit;font-size:1.3rem;font-weight:800;transition:transform .15s,filter .15s;display:flex}.quiz-tf-player-btn:active{transform:scale(.96)}.quiz-tf-player-btn:hover{filter:brightness(1.1)}.correct-btn{background:linear-gradient(135deg,#22c55e,#16a34a)}.wrong-btn{background:linear-gradient(135deg,#ef4444,#b91c1c)}.quiz-estimation-zone{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:16px;display:flex}.quiz-est-instruction{opacity:.8;margin:0;font-size:1rem}.quiz-est-controls{align-items:center;gap:10px;display:flex}.quiz-est-adj{color:#fff;cursor:pointer;background:#ffffff26;border:2px solid #ffffff40;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.5rem;font-weight:700;transition:background .15s;display:flex}.quiz-est-adj:hover:not(:disabled){background:#ffffff40}.quiz-est-adj:disabled{opacity:.4;cursor:default}.quiz-est-field{color:#fff;text-align:center;background:#ffffff1a;border:3px solid #ffffff4d;border-radius:14px;width:160px;padding:14px 12px;font-family:inherit;font-size:1.6rem;font-weight:800}.quiz-est-field:focus{border-color:#fbbf24;outline:none}.quiz-est-field::placeholder{color:#ffffff40;font-size:1rem}.quiz-est-field:disabled{opacity:.6}.quiz-est-submit{min-width:180px;padding:12px 32px;font-size:1rem}.quiz-est-result-detail{margin:0;font-size:.95rem;line-height:1.8}.quiz-est-result-detail p{margin:0}.quiz-result-correct{opacity:.7;margin:0;font-size:.85rem}.quiz-answered-hint{opacity:.65;margin:0;font-size:.88rem}.quiz-session-entry{flex-direction:column;display:flex}.quiz-results-toggle{white-space:nowrap;align-items:center;gap:5px;padding:6px 12px;font-size:.8rem;display:flex;color:var(--text-muted)!important;border-color:var(--border-light)!important}.quiz-results-toggle:hover{color:var(--primary)!important;border-color:var(--primary)!important}.quiz-results-collapse{border:1px solid var(--border-light);background:var(--bg);border-top:none;border-radius:0 0 12px 12px;animation:.2s slideDown}.quiz-results-panel{flex-direction:column;gap:12px;padding:16px;display:flex}.quiz-results-panel-header{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:.85rem;display:flex}.quiz-results-tab-btns{gap:6px;display:flex}.quiz-res-tab{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:20px;align-items:center;gap:4px;padding:6px 12px;font-size:.8rem;font-weight:600;transition:all .15s;display:flex}.quiz-res-tab:hover{color:var(--primary);border-color:var(--primary)}.quiz-res-tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.quiz-res-lb{flex-direction:column;gap:4px;display:flex}.quiz-res-lb-row{background:var(--surface);border:1px solid var(--border-light);border-radius:8px;align-items:center;gap:10px;padding:8px 12px;font-size:.9rem;display:flex}.quiz-res-lb-row.top{background:var(--primary-light);border-color:var(--primary)}.quiz-res-lb-rank{min-width:30px;font-size:1.1rem}.quiz-res-lb-name{flex:1;font-weight:600}.quiz-res-lb-pts{color:var(--primary);font-weight:700}.quiz-res-questions{flex-direction:column;gap:8px;display:flex}.quiz-res-q-row{background:var(--surface);border:1px solid var(--border-light);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.quiz-res-q-header{align-items:center;gap:8px;font-size:.85rem;display:flex}.quiz-res-q-num{color:var(--text-muted);min-width:22px;font-weight:700}.quiz-res-q-type{font-size:.9rem}.quiz-res-q-text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.quiz-res-q-stat{white-space:nowrap;color:var(--text-muted);font-size:.82rem;font-weight:700}.quiz-res-q-bar{background:var(--border-light);border-radius:3px;height:6px;overflow:hidden}.quiz-res-q-bar-fill{border-radius:3px;height:100%;transition:width .4s}.quiz-res-est-answer{color:var(--text-muted);font-size:.8rem}.quiz-res-empty{color:var(--text-muted);text-align:center;margin:0;padding:12px;font-size:.85rem}.quiz-pause-btn{border-radius:8px;align-items:center;gap:5px;padding:6px 12px;font-size:.82rem;transition:background .15s;display:inline-flex;color:#fffc!important;background:#ffffff14!important;border:1px solid #ffffff4d!important}.quiz-pause-btn:hover{background:#ffffff29!important}.quiz-pause-btn.resumed{color:#22c55e!important;background:#22c55e1f!important;border-color:#22c55e80!important}.quiz-pause-btn.resumed:hover{background:#22c55e38!important}.quiz-timer.paused{color:#f97316;background:#f9731633;border-color:#f9731680;animation:none}.quiz-scale-waiting{text-align:center;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:16px;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:500px;margin:0 auto;padding:32px 24px;display:flex}.quiz-scale-waiting p{opacity:.8;margin:0;font-size:1rem}.quiz-ordering-host-display{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:16px;flex-direction:column;gap:12px;width:100%;max-width:600px;margin:0 auto;padding:24px;display:flex}.quiz-ordering-host-label{opacity:.6;margin:0;font-size:.85rem}.quiz-ordering-host-items{flex-direction:column;gap:8px;display:flex}.quiz-ordering-host-item{background:#ffffff14;border-radius:10px;align-items:center;gap:12px;padding:10px 14px;font-size:.95rem;display:flex}.quiz-ordering-num{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:.8rem;font-weight:800;display:flex}.quiz-ordering-correct-seq{background:#22c55e1f;border:1px solid #22c55e4d;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;font-size:.88rem;display:flex}.quiz-ord-correct-item{white-space:nowrap;background:#22c55e33;border:1px solid #22c55e66;border-radius:6px;padding:3px 8px;font-size:.82rem}.quiz-player-timer-num.paused{color:#f97316}.quiz-player-timer-fill.paused{transition:none}.quiz-pause-msg{text-align:center;color:#f97316;opacity:.85;margin:8px 0 0;font-size:.88rem}.quiz-scale-zone{flex-direction:column;align-items:center;gap:14px;width:100%;padding:16px 0;display:flex}.quiz-scale-labels{opacity:.6;justify-content:space-between;width:100%;padding:0 4px;font-size:.88rem;display:flex}.quiz-scale-slider{appearance:none;cursor:pointer;background:linear-gradient(to right, var(--primary) 0%, var(--primary) var(--thumb-pct,50%), #fff3 var(--thumb-pct,50%), #fff3 100%);border-radius:4px;outline:none;width:100%;height:8px}.quiz-scale-slider::-webkit-slider-thumb{appearance:none;cursor:pointer;border:3px solid var(--primary);background:#fff;border-radius:50%;width:28px;height:28px;box-shadow:0 2px 8px #0006}.quiz-scale-slider::-moz-range-thumb{cursor:pointer;border:3px solid var(--primary);background:#fff;border-radius:50%;width:28px;height:28px;box-shadow:0 2px 8px #0006}.quiz-scale-slider:disabled{opacity:.5;cursor:default}.quiz-scale-display{color:var(--primary);text-align:center;min-width:80px;font-size:2.4rem;font-weight:900}.quiz-scale-submit{min-width:180px;padding:12px 32px;font-size:1rem}.quiz-ordering-zone{flex-direction:column;align-items:center;gap:12px;width:100%;padding:12px 0;display:flex}.quiz-ordering-instruction{opacity:.75;text-align:center;margin:0;font-size:.9rem}.quiz-ordering-selected{flex-direction:column;gap:6px;width:100%;display:flex}.quiz-ordering-available{flex-wrap:wrap;justify-content:center;gap:8px;width:100%;display:flex}.quiz-ordering-item{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:10px;font-size:.9rem;transition:transform .1s,opacity .15s;display:flex}.quiz-ordering-item.placed{background:#7c5ce733;border:1px solid #7c5ce780;width:100%;padding:10px 14px}.quiz-ordering-item.placed:active{transform:scale(.97)}.quiz-ordering-item.empty{opacity:.5;cursor:default;background:#ffffff0a;border:1px dashed #fff3;width:100%;padding:10px 14px}.quiz-ordering-item.available{background:#ffffff1a;border:1px solid #fff3;padding:10px 18px}.quiz-ordering-item.available:hover{background:#ffffff2e;transform:scale(1.02)}.quiz-ordering-item.available:active{transform:scale(.97)}.quiz-ordering-pos{color:#ffffffb3;background:#ffffff26;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.75rem;font-weight:700;display:flex}.quiz-ordering-item.placed .quiz-ordering-pos{background:var(--primary);color:#fff}.quiz-ordering-text{flex:1}.quiz-ordering-placeholder{color:#ffffff4d;font-style:italic}.quiz-ordering-submit{padding:12px 24px;font-size:.95rem}.quiz-result-card.partial{background:#f973161a;border-color:#f97316}.quiz-ordering-result-detail{text-align:center}.quiz-ord-score{margin:0 0 8px;font-size:1.1rem;font-weight:700}.quiz-ordering-correct-list{opacity:.7;font-size:.82rem}.quiz-ordering-correct-list p{margin:0 0 4px;font-weight:600}.quiz-ord-result-item{margin:2px 0;display:block}.qcm-scale-editor{flex-direction:column;gap:12px;display:flex}.qcm-scale-config-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.qcm-scale-config-row label{white-space:nowrap;font-size:.85rem;font-weight:600}.qcm-scale-config-row input[type=number]{border:1px solid var(--border-light);background:var(--bg);width:90px;color:var(--text);border-radius:8px;padding:6px 10px;font-size:.9rem}.qcm-scale-config-row input[type=number]:focus{border-color:var(--primary);outline:none}.qcm-scale-preview{background:linear-gradient(to right, var(--primary), #22c55e);border-radius:4px;height:8px;margin:4px 0;position:relative}.qcm-scale-thumb{background:var(--primary);border:2px solid #fff;border-radius:50%;width:18px;height:18px;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 1px 4px #0000004d}.qcm-ordering-editor{flex-direction:column;gap:8px;display:flex}.qcm-ordering-item{align-items:center;gap:8px;display:flex}.qcm-ordering-badge{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:.75rem;font-weight:800;display:flex}.student-sort-toggle{border:1px solid var(--border);border-radius:var(--radius-xs);flex-shrink:0;display:inline-flex;overflow:hidden}.sst-btn{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:4px 11px;font-size:.78rem;font-weight:700;transition:background .15s,color .15s}.sst-btn.active{background:var(--primary);color:#fff}.sst-btn:hover:not(.active){background:var(--surface-hover)}.input-group input{background:0 0!important}[data-theme=dark] .modal-form input,[data-theme=dark] .modal-form select,[data-theme=dark] .modal-form textarea{color:var(--text)}.nw-layout{grid-template-columns:1fr 340px;align-items:start;gap:24px;display:grid}@media (max-width:820px){.nw-layout{grid-template-columns:1fr}}.nw-dice-panel{flex-direction:column;align-items:center;gap:20px;display:flex}.nw-modes{grid-template-columns:repeat(4,1fr);gap:8px;width:100%;display:grid}@media (max-width:560px){.nw-modes{grid-template-columns:repeat(2,1fr)}}.nw-mode-btn{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:3px;padding:10px 8px;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.nw-mode-btn:hover{border-color:var(--primary);background:var(--surface-hover)}.nw-mode-btn.active{border-color:var(--primary);background:var(--surface-hover);box-shadow:0 0 0 3px var(--shadow-color)}.nw-mode-emoji{font-size:1.3rem;line-height:1}.nw-mode-label{color:var(--text);white-space:nowrap;font-size:.82rem;font-weight:800}.nw-mode-desc{color:var(--text-muted);font-size:.68rem;line-height:1.3}.nw-die-area{flex-direction:column;align-items:center;gap:14px;padding:10px;display:flex}.nw-die{background:var(--surface);border:4px solid var(--die-color,var(--border));border-radius:28px;flex-shrink:0;justify-content:center;align-items:center;width:168px;height:168px;transition:border-color 80ms;display:flex;box-shadow:0 10px 40px #00000021,0 2px 10px #00000014,inset 0 1px #ffffff1f}.nw-die.nw-rolling{animation:.95s ease-in-out nwDiceRoll}@keyframes nwDiceRoll{0%{transform:rotate(0)scale(1)}12%{transform:rotate(-18deg)scale(1.06)}28%{transform:rotate(16deg)scale(.96)}44%{transform:rotate(-12deg)scale(1.04)}60%{transform:rotate(8deg)scale(.98)}76%{transform:rotate(-4deg)scale(1.01)}90%{transform:rotate(2deg)scale(1)}to{transform:rotate(0)scale(1)}}.nw-die-blank{border-color:var(--border);color:var(--text-muted);opacity:.5}.nw-die-grid{box-sizing:border-box;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:10px;width:100%;height:100%;padding:20px;display:grid}.nw-pip{aspect-ratio:1;background:0 0;border-radius:50%;transition:background 60ms}.nw-pip.active{background:var(--die-color,var(--text))}.nw-die-number{color:var(--die-color,var(--text));font-variant-numeric:tabular-nums;font-size:3.2rem;font-weight:900;line-height:1;transition:color 60ms}.nw-suggestion{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);align-items:center;gap:8px;padding:6px 14px;font-size:.82rem;animation:.3s fadeIn;display:flex}.nw-suggestion strong{font-size:1rem}.nw-roll-btn{border-radius:var(--radius);background:var(--primary);color:#fff;cursor:pointer;letter-spacing:.01em;border:none;align-items:center;gap:10px;padding:13px 44px;font-size:1.08rem;font-weight:800;transition:transform .15s,box-shadow .15s,opacity .15s;display:flex}.nw-roll-btn:hover:not(:disabled){box-shadow:0 8px 24px rgba(var(--primary-rgb,59,130,246), .35);transform:translateY(-2px)}.nw-roll-btn:active:not(:disabled){transform:translateY(0)}.nw-roll-btn:disabled,.nw-roll-btn.rolling{opacity:.65;cursor:default}.nw-result-badge{flex-direction:column;align-items:center;gap:2px;animation:.4s cubic-bezier(.175,.885,.32,1.275) nwResultPop;display:flex}@keyframes nwResultPop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.nw-result-val{font-size:2.8rem;font-weight:900;line-height:1}.nw-result-label{color:var(--text-muted);font-size:.82rem;font-weight:600}.nw-disclaimer{color:var(--text-muted);background:var(--surface);border-radius:var(--radius-xs);text-align:center;border:1px solid #f97316;margin-top:8px;padding:6px 14px;font-size:.75rem}.nw-student-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;padding:18px;display:flex}.nw-panel-title{align-items:center;gap:7px;margin:0;font-size:.92rem;font-weight:700;display:flex}.nw-optional{color:var(--text-muted);font-size:.82rem;font-weight:400}.nw-search-wrap{position:relative}.nw-search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.nw-search-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:100%;color:var(--text);box-sizing:border-box;padding:8px 34px;font-size:.88rem}.nw-search-clear{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:3px;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.nw-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);z-index:100;position:absolute;top:100%;left:0;right:0;overflow:hidden}.nw-dropdown-item{cursor:pointer;text-align:left;width:100%;color:var(--text);background:0 0;border:none;justify-content:space-between;align-items:center;padding:8px 12px;font-size:.86rem;transition:background .1s;display:flex}.nw-dropdown-item:hover{background:var(--surface-hover)}.nw-dd-name{font-weight:600}.nw-dd-class{color:var(--text-muted);font-size:.75rem}.nw-student-card{border:1px solid var(--border-light);border-radius:var(--radius-sm);flex-direction:column;gap:12px;padding:14px;display:flex}.nw-student-header{align-items:center;gap:10px;display:flex}.nw-student-avatar{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:.88rem;font-weight:800;display:flex}.nw-student-name{font-size:.93rem;font-weight:700}.nw-student-meta{color:var(--text-muted);font-size:.77rem}.nw-student-avg{background:var(--bg);border-radius:var(--radius-xs);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.nw-avg-label{color:var(--text-muted);font-size:.83rem}.nw-avg-val{font-size:1.4rem;font-weight:900}.nw-no-grades{color:var(--text-muted);text-align:center;padding:8px;font-size:.82rem}.nw-grade-counts{flex-wrap:wrap;gap:8px;display:flex}.nw-gc-item{background:var(--bg);border-radius:var(--radius-xs);flex-direction:column;align-items:center;gap:1px;min-width:52px;padding:4px 10px;display:flex}.nw-gc-val{font-size:1.05rem;font-weight:800}.nw-gc-label{color:var(--text-muted);font-size:.68rem}.nw-subj-avgs{flex-direction:column;gap:5px;display:flex}.nw-subj-row{align-items:center;gap:8px;font-size:.84rem;display:flex}.nw-subj-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.nw-subj-name{color:var(--text);flex:1}.nw-subj-avg{font-weight:700}.nw-empty-hint{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:28px 16px;display:flex}.nw-empty-hint p{margin:0;font-size:.83rem;line-height:1.5}.ma-tile{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:20px;padding:20px 24px}.ma-tile-title{align-items:center;gap:8px;margin:0 0 14px;font-size:1rem;font-weight:700;display:flex}.ma-live-info{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.ma-live-subject{font-size:1.1rem;font-weight:700}.ma-live-class{background:var(--primary-light);color:var(--primary);border-radius:6px;padding:2px 8px;font-size:.85rem;font-weight:600}.ma-live-time{color:var(--text-muted);font-size:.85rem}.ma-no-lesson{color:var(--text-muted);margin:0;font-size:.9rem}.ma-day-nav{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.ma-day-label{text-align:center;min-width:180px;font-weight:600}.ma-lesson-list{flex-direction:column;gap:8px;display:flex}.ma-lesson-card{border:1.5px solid var(--border);background:var(--bg);cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:14px;width:100%;padding:10px 14px;transition:border-color .15s,background .15s;display:flex}.ma-lesson-card:hover{border-color:var(--primary);background:var(--primary-light)}.ma-lesson-time{color:var(--text-muted);min-width:100px;font-size:.82rem}.ma-lesson-subject{flex:1;font-weight:700}.ma-lesson-class{color:var(--text-muted);font-size:.85rem}.ld-star-clear{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0 3px;font-size:1.1rem;line-height:1;transition:color .15s}.ld-star-clear:hover{color:#ef4444}.grades-avg-row td{border-top:2px solid var(--border);background:var(--surface)}.grades-avg-label{color:var(--text-muted);letter-spacing:.02em;white-space:nowrap;font-size:.85rem;font-weight:700}.sr-desk{cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .12s,outline-color .12s,box-shadow .12s;position:relative}.sr-desk:hover{transform:scale(1.03);box-shadow:0 2px 8px #00000014}.sr-desk.selected{outline:3px solid var(--primary);outline-offset:-1px}.sr-desk.drop-target{outline:2px dashed var(--primary);background:var(--primary-bg)!important}.sr-remove-btn{color:#fff;cursor:pointer;opacity:0;z-index:2;background:#e74c3c;border:none;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;padding:0;font-size:.7rem;line-height:1;transition:opacity .15s;display:flex;position:absolute;top:2px;right:4px}.sr-desk:hover .sr-remove-btn{opacity:1}.sr-unassigned-bar{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px;min-height:44px;margin-bottom:12px;padding:12px 16px;display:flex}.sr-unassigned-label{color:var(--text-muted);margin-right:4px;font-size:.8rem;font-weight:600}.sr-unassigned-chip{background:var(--primary-bg);border:1.5px solid var(--primary-light);color:var(--text);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:20px;align-items:center;gap:4px;padding:4px 12px;font-size:.8rem;font-weight:600;transition:border-color .12s,background .12s;display:inline-flex}.sr-unassigned-chip:hover{background:var(--primary-light)}.sr-unassigned-chip.selected{border-color:var(--primary);background:var(--primary-light)}.sr-unassigned-chip:active{cursor:grabbing}.wsw-stepper{flex-shrink:0;align-items:center;gap:0;padding:14px 24px 0;display:flex}.wsw-step{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;font-size:.82rem;font-weight:600;transition:color .2s;display:flex}.wsw-step-num{background:var(--border);width:24px;height:24px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;font-weight:800;transition:background .2s,color .2s;display:flex}.wsw-step.active{color:var(--primary);font-weight:700}.wsw-step.active .wsw-step-num{background:var(--primary);color:#fff}.wsw-step.done{color:#22c55e}.wsw-step.done .wsw-step-num{color:#fff;background:#22c55e}.wsw-step-line{background:var(--border);flex:1;min-width:20px;height:2px;margin:0 10px}.wsw-step-line.done{background:#22c55e}.wsw-class-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;padding:4px 0;display:grid}.wsw-class-card{border:2px solid var(--border);cursor:pointer;text-align:center;background:var(--surface);border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:16px 14px;transition:border-color .2s,box-shadow .2s,background .2s;display:flex}.wsw-class-card:hover{border-color:var(--primary-light);box-shadow:0 2px 12px #7c5ce71a}.wsw-class-card.selected{border-color:var(--primary);background:var(--primary-bg);box-shadow:0 2px 12px #7c5ce726}.wsw-class-emoji{font-size:1.8rem}.wsw-class-name{color:var(--text);font-size:.95rem;font-weight:700}.wsw-class-count{color:var(--text-muted);font-size:.78rem}.wsw-timetable{grid-template-columns:auto repeat(5,1fr);gap:2px;font-size:.8rem;display:grid}.wsw-tt-day-header{text-align:center;background:var(--bg);border-radius:var(--radius-xs);color:var(--text-muted);text-transform:uppercase;padding:6px 4px;font-size:.75rem;font-weight:700}.wsw-tt-day-header.today{color:var(--primary);background:var(--primary-bg)}.wsw-tt-slot-label{color:var(--text-muted);white-space:nowrap;align-items:center;padding:6px 8px 6px 2px;font-size:.72rem;font-weight:600;display:flex}.wsw-tt-cell{border-radius:var(--radius-xs);background:var(--surface);border:1.5px solid var(--border-light);cursor:pointer;flex-direction:column;gap:1px;min-height:40px;padding:6px 8px;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.wsw-tt-cell:hover{border-color:var(--primary-light);box-shadow:0 1px 6px #7c5ce71a}.wsw-tt-cell.past{opacity:.45;pointer-events:none}.wsw-tt-cell.selected{border-color:var(--primary);background:var(--primary-bg);box-shadow:0 2px 8px #7c5ce726}.wsw-tt-cell.empty{background:var(--bg);pointer-events:none;border-color:#0000}.wsw-tt-subject{white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;font-weight:700;overflow:hidden}.wsw-tt-time{color:var(--text-muted);font-size:.68rem}.wsw-fallback{background:var(--bg);border-radius:var(--radius);flex-direction:column;align-items:center;gap:12px;margin-top:12px;padding:16px;display:flex}.wsw-fallback-text{color:var(--text-muted);text-align:center;font-size:.85rem}.wsw-form{flex-direction:column;gap:16px;display:flex}.wsw-form label{flex-direction:column;gap:5px;display:flex}.wsw-form label>span{color:var(--text-muted);font-size:.85rem;font-weight:600}.wsw-form input,.wsw-form select,.wsw-form textarea{border:2px solid var(--border-light);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);padding:10px 14px;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.wsw-form input:focus,.wsw-form select:focus,.wsw-form textarea:focus{border-color:var(--primary-light);outline:none;box-shadow:0 0 0 4px #7c5ce714}.wsw-form textarea{resize:vertical}.wsw-summary-card{background:var(--bg);border-radius:var(--radius);flex-direction:column;padding:4px 0;display:flex}.wsw-summary-row{border-bottom:1px solid var(--border-light);cursor:pointer;align-items:center;gap:12px;padding:10px 16px;transition:background .15s;display:flex}.wsw-summary-row:last-child{border-bottom:none}.wsw-summary-row:hover{background:var(--surface-hover)}.wsw-summary-label{color:var(--text-muted);flex-shrink:0;min-width:100px;font-size:.82rem;font-weight:600}.wsw-summary-value{color:var(--text);flex:1;font-size:.9rem;font-weight:600}.wsw-summary-edit{color:var(--primary);opacity:0;font-size:.75rem;transition:opacity .15s}.wsw-summary-row:hover .wsw-summary-edit{opacity:1}.wsw-loading{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:48px 24px;display:flex}.wsw-loading-spinner{border:4px solid var(--border-light);border-top-color:var(--primary);border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}.wsw-loading-text{color:var(--text);font-size:1rem;font-weight:600;animation:2s ease-in-out infinite fadeInOut}.wsw-loading-hint{color:var(--text-muted);font-size:.85rem}.wsw-success-header{flex-direction:column;align-items:center;gap:8px;padding:16px 0 8px;display:flex}.wsw-success-icon{font-size:2.5rem}.wsw-success-title{font-family:var(--font-display);font-size:1.1rem;font-weight:800}.wsw-preview-frame{border:1px solid var(--border-light);border-radius:var(--radius-sm);background:#f9f9f9;width:100%;height:400px;overflow:hidden}.wsw-preview-frame embed,.wsw-preview-frame iframe{border:none;width:100%;height:100%}.wsw-download-row{justify-content:center;gap:10px;padding:8px 0;display:flex}.wsw-breadcrumb{flex-wrap:wrap;justify-content:center;align-items:center;gap:0;padding:16px 0;display:flex}.wsw-breadcrumb-step{background:var(--surface);border:1.5px solid var(--border);color:var(--text);white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:8px 14px;font-size:.85rem;font-weight:600;animation:.3s backwards fadeInUp;display:inline-flex}.wsw-breadcrumb-step:nth-child(2){animation-delay:80ms}.wsw-breadcrumb-step:nth-child(4){animation-delay:.16s}.wsw-breadcrumb-step:nth-child(6){animation-delay:.24s}.wsw-breadcrumb-step:nth-child(8){animation-delay:.32s}.wsw-breadcrumb-step:nth-child(10){animation-delay:.4s}.wsw-breadcrumb-arrow{color:var(--text-muted);margin:0 4px;font-size:1rem;animation:.3s backwards fadeInUp}.wsw-breadcrumb-arrow:nth-child(3){animation-delay:40ms}.wsw-breadcrumb-arrow:nth-child(5){animation-delay:.12s}.wsw-breadcrumb-arrow:nth-child(7){animation-delay:.2s}.wsw-breadcrumb-arrow:nth-child(9){animation-delay:.28s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.wsw-location-text{text-align:center;color:var(--text-muted);padding:8px 16px;font-size:.9rem;line-height:1.6}.wsw-location-actions{justify-content:center;gap:10px;padding:8px 0;display:flex}.wsw-footer{justify-content:space-between;align-items:center;gap:10px;padding:16px 28px 24px;display:flex}.wsw-error{border-radius:var(--radius-sm);color:#dc2626;text-align:center;background:#fef2f2;border:1px solid #fecaca;padding:12px 16px;font-size:.88rem;font-weight:600}.wsw-body{flex-direction:column;flex:1;gap:16px;padding:20px 28px;display:flex;overflow-y:auto}.modal.wsw-modal{flex-direction:column;max-width:680px;max-height:90vh;display:flex}.sr-swap-hint{background:var(--primary-bg);border:1px solid var(--primary-light);border-radius:var(--radius);color:var(--text);align-items:center;gap:8px;margin-bottom:12px;padding:10px 16px;font-size:.85rem;display:flex}.sr-swap-hint button{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0 4px;font-size:1rem}.sr-load-banner{background:var(--primary-bg);border:1.5px solid var(--primary-light);border-radius:var(--radius);color:var(--text);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;padding:14px 18px;font-size:.9rem;display:flex}.sr-load-banner strong{font-weight:700}.sr-load-banner .btn{flex-shrink:0}.bgv-overlay{z-index:1000;background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.bgv-header{border-bottom:2px solid var(--border-light);background:var(--surface);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.bgv-header h2{font-size:1.2rem;font-family:var(--font-display);margin:0}.bgv-header-subtitle{color:var(--text-muted);margin-top:2px;font-size:.85rem}.bgv-config{background:var(--surface);border-bottom:1px solid var(--border-light);flex-wrap:wrap;flex-shrink:0;align-items:flex-end;gap:16px;padding:14px 24px;display:flex}.bgv-config .grade-type-group{margin-bottom:0}.bgv-config label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:.8rem;font-weight:600;display:flex}.bgv-config label input{border:1.5px solid var(--border-light);border-radius:var(--radius-xs);padding:6px 10px;font-size:.9rem}.bgv-layout{flex:1;grid-template-columns:300px 1fr;min-height:0;display:grid;overflow:hidden}.bgv-ai-panel{border-right:1px solid var(--border-light);background:var(--surface);flex-direction:column;gap:12px;padding:16px;display:flex;overflow-y:auto}.bgv-ai-title{font-size:.9rem;font-weight:700;font-family:var(--font-display)}.bgv-dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;color:var(--text-muted);flex-direction:column;align-items:center;gap:8px;padding:24px 16px;font-size:.85rem;transition:all .2s;display:flex}.bgv-dropzone:hover,.bgv-dropzone.dragover{border-color:var(--primary);background:var(--primary-bg);color:var(--primary)}.bgv-dropzone-icon{font-size:2rem}.bgv-ai-status{border-radius:var(--radius-xs);align-items:center;gap:8px;padding:12px;font-size:.85rem;display:flex}.bgv-ai-status.converting,.bgv-ai-status.recognizing{color:#2563eb;background:#eff6ff}.bgv-ai-status.done{color:#16a34a;background:#f0fdf4}.bgv-ai-status.error{color:#dc2626;background:#fef2f2}[data-theme=dark] .bgv-ai-status.converting,[data-theme=dark] .bgv-ai-status.recognizing{background:#2563eb1f}[data-theme=dark] .bgv-ai-status.done{background:#16a34a1f}[data-theme=dark] .bgv-ai-status.error{background:#dc26261f}.bgv-ai-preview{border-radius:var(--radius-xs);object-fit:contain;max-width:100%;max-height:160px}.bgv-unmatched{border-radius:var(--radius-xs);background:#fefce8;border:1px solid #fde047;padding:0;font-size:.8rem}.bgv-unmatched summary{cursor:pointer;color:#a16207;padding:8px 12px;font-weight:600}.bgv-unmatched ul{margin:0;padding:4px 12px 8px 28px}.bgv-unmatched li{color:#92400e;margin-bottom:2px}[data-theme=dark] .bgv-unmatched{background:#eab3081a;border-color:#eab3084d}[data-theme=dark] .bgv-unmatched summary{color:#fde047}[data-theme=dark] .bgv-unmatched li{color:#fcd34d}.bgv-uncertain{border-radius:var(--radius-xs);background:#fff7ed;border:1px solid #fdba74;flex-direction:column;gap:6px;padding:10px 12px;font-size:.8rem;display:flex}.bgv-uncertain-title{color:#c2410c;font-weight:600}.bgv-uncertain-item{border-top:1px solid #fdba7466;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;display:flex}.bgv-uncertain-item:first-of-type{border-top:none}.bgv-uncertain-info{color:#9a3412;flex:1;min-width:0}.bgv-uncertain-reason{color:#c2410c;font-style:italic}.bgv-uncertain-actions{flex-shrink:0;gap:4px;display:flex}.bgv-uncertain-btn{cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;transition:all .15s;display:flex}.bgv-uncertain-btn.confirm{color:#16a34a;background:#dcfce7}.bgv-uncertain-btn.confirm:hover{background:#bbf7d0}.bgv-uncertain-btn.reject{color:#dc2626;background:#fee2e2}.bgv-uncertain-btn.reject:hover{background:#fecaca}[data-theme=dark] .bgv-uncertain{background:#f973161a;border-color:#f973164d}[data-theme=dark] .bgv-uncertain-title{color:#fdba74}[data-theme=dark] .bgv-uncertain-info{color:#fb923c}[data-theme=dark] .bgv-uncertain-reason{color:#fdba74}[data-theme=dark] .bgv-uncertain-btn.confirm{color:#4ade80;background:#22c55e26}[data-theme=dark] .bgv-uncertain-btn.confirm:hover{background:#22c55e40}[data-theme=dark] .bgv-uncertain-btn.reject{color:#f87171;background:#ef444426}[data-theme=dark] .bgv-uncertain-btn.reject:hover{background:#ef444440}.bgv-legend{background:var(--bg);border-radius:var(--radius-xs);color:var(--text-muted);flex-direction:column;gap:4px;padding:10px 12px;font-size:.75rem;display:flex}.bgv-legend-title{color:var(--text);margin-bottom:2px;font-size:.8rem;font-weight:700}.bgv-legend-item{align-items:center;gap:6px;display:flex}.bgv-legend-swatch{border:1.5px solid;border-radius:3px;flex-shrink:0;width:14px;height:14px}.bgv-legend-swatch.grade-good{background:#f0fdf4;border-color:#86efac}.bgv-legend-swatch.grade-ok{background:#fefce8;border-color:#fde047}.bgv-legend-swatch.grade-warn{background:#fff7ed;border-color:#fdba74}.bgv-legend-swatch.grade-bad{background:#fef2f2;border-color:#fca5a5}.bgv-legend-icon{text-align:center;flex-shrink:0;width:14px}.bgv-ai-tip{color:var(--text-muted);font-size:.75rem;line-height:1.4}.bgv-ai-reset{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;text-decoration:underline}.bgv-right{flex-direction:column;min-height:0;display:flex;overflow:hidden}.bgv-toolbar{background:var(--surface);border-bottom:1px solid var(--border-light);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;display:flex}.bgv-counter{color:var(--text-muted);white-space:nowrap;font-size:.85rem;font-weight:600}.bgv-list{flex:1;padding:0;overflow-y:auto}.bgv-item{border-bottom:1px solid var(--border-light);align-items:center;gap:12px;padding:7px 16px;transition:background .15s;display:flex}.bgv-item:last-child{border-bottom:none}.bgv-item:hover{background:var(--bg)}.bgv-item.absent{opacity:.45}.bgv-number{width:28px;color:var(--text-muted);text-align:right;flex-shrink:0;font-size:.8rem;font-weight:600}.bgv-name{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.9rem;font-weight:600;overflow:hidden}.bgv-input{text-align:center;border:2px solid var(--border-light);border-radius:var(--radius-xs);width:90px;font-size:1rem;font-weight:700;font-family:var(--font-display);flex-shrink:0;padding:6px 10px;transition:all .2s}.bgv-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #7c5ce71a}.bgv-input:disabled{background:var(--bg);opacity:.4}.bgv-input::-webkit-inner-spin-button{display:none}.bgv-input::-webkit-outer-spin-button{display:none}.bgv-input.grade-good{background:#f0fdf4;border-color:#86efac}.bgv-input.grade-ok{background:#fefce8;border-color:#fde047}.bgv-input.grade-warn{background:#fff7ed;border-color:#fdba74}.bgv-input.grade-bad{background:#fef2f2;border-color:#fca5a5}[data-theme=dark] .bgv-input.grade-good{background:#22c55e1f;border-color:#22c55e66}[data-theme=dark] .bgv-input.grade-ok{background:#eab3081f;border-color:#eab30866}[data-theme=dark] .bgv-input.grade-warn{background:#f973161f;border-color:#f9731666}[data-theme=dark] .bgv-input.grade-bad{background:#ef44441f;border-color:#ef444466}.bgv-input.ai-filled{box-shadow:0 0 0 2px #3b82f640}.bgv-input.ai-low{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b40}.bgv-ai-indicator{text-align:center;flex-shrink:0;width:20px;font-size:.75rem}.bgv-absent{color:var(--text-muted);white-space:nowrap;flex-shrink:0;align-items:center;gap:4px;font-size:.75rem;display:flex}.bgv-absent input{cursor:pointer}.bgv-footer{border-top:2px solid var(--border-light);background:var(--surface);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 24px;display:flex}@media (max-width:768px){.bgv-layout{grid-template-rows:auto 1fr;grid-template-columns:1fr}.bgv-ai-panel{border-right:none;border-bottom:1px solid var(--border-light);max-height:200px;overflow-y:auto}.bgv-header{padding:12px 16px}.bgv-config{padding:10px 16px}.bgv-toolbar{padding:8px 12px}.bgv-item{padding:7px 12px}.bgv-footer{padding:12px 16px}}.nav-item,.btn,.btn-primary,.btn-secondary,.btn-ghost,.btn-ai,.icon-btn,.tab,.logout-btn,.menu-btn,.sidebar-collapse-btn,.nav-extra-toggle,.auth-btn,.color-swatch,.ws-chip,.ws-difficulty-btn{touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media (max-width:1024px){.nav-item,.btn,.btn-primary,.btn-secondary,.btn-ghost{min-height:44px}.icon-btn{min-width:44px;min-height:44px}.tab,.logout-btn{min-height:44px}.menu-btn{min-width:44px;min-height:44px}}@media (hover:hover) and (pointer:fine){.nav-item:hover{background:var(--primary-bg);color:var(--primary);transform:translate(2px)}.class-card:hover{border-color:var(--primary-light);box-shadow:var(--shadow), 0 0 0 4px var(--primary-glow);transform:translateY(-3px)}.subject-card:hover{box-shadow:var(--shadow), 0 0 0 4px var(--primary-glow);transform:translateY(-3px)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px #7c5ce74d}}@media (hover:none){.nav-item:hover{color:var(--text-muted);background:0 0;transform:none}.nav-item.active:hover{background:linear-gradient(135deg, var(--primary), var(--primary-dark));color:#fff}.class-card:hover,.subject-card:hover,.btn-primary:hover{transform:none}}.sidebar-nav,.nav-item,.nav-extra-toggle,.tabs,.tab{-webkit-user-select:none;user-select:none}.sidebar{padding-bottom:env(safe-area-inset-bottom)}.mobile-header{padding-top:env(safe-area-inset-top)}@supports (padding:env(safe-area-inset-bottom)){.main-content{padding-bottom:env(safe-area-inset-bottom)}}.confirm-dialog{text-align:center;max-width:420px;padding:32px;animation:.2s modalIn}.confirm-dialog-icon{border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:16px;display:inline-flex}.confirm-default .confirm-dialog-icon{background:var(--primary-bg);color:var(--primary)}.confirm-warning .confirm-dialog-icon{color:#b45309;background:#fef9c3}.confirm-danger .confirm-dialog-icon{color:#dc2626;background:#fef2f2}[data-theme=dark] .confirm-warning .confirm-dialog-icon{color:#fbbf24;background:#b4530926}[data-theme=dark] .confirm-danger .confirm-dialog-icon{color:#f87171;background:#dc262626}.confirm-dialog-title{font-family:var(--font-display);color:var(--text);margin-bottom:8px;font-size:1.15rem;font-weight:800}.confirm-dialog-message{color:var(--text-muted);white-space:pre-line;margin-bottom:24px;font-size:.92rem;line-height:1.5}.confirm-dialog-actions{justify-content:center;gap:10px;display:flex}.confirm-dialog-actions .btn{min-width:110px;padding:10px 20px;font-weight:700}.btn-danger{color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition-fast);background:linear-gradient(135deg,#ef4444,#dc2626);border:none}.btn-danger:hover{transform:translateY(-1px);box-shadow:0 4px 16px #dc26264d}.btn-danger:active{transform:translateY(0)scale(.98)}.toast-container{z-index:2000;pointer-events:none;flex-direction:column;gap:8px;width:100%;max-width:380px;display:flex;position:fixed;top:20px;right:20px}.toast{border-radius:var(--radius-sm);background:var(--surface);border:1.5px solid var(--border);box-shadow:var(--shadow-lg);pointer-events:auto;color:var(--text);align-items:center;gap:10px;padding:12px 16px;font-size:.9rem;font-weight:600;animation:.25s toastIn;display:flex}.toast-exit{animation:.25s forwards toastOut}.toast-icon{flex-shrink:0;align-items:center;display:flex}.toast-message{flex:1;line-height:1.4}.toast-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:4px;transition:color .15s;display:flex}.toast-close:hover{color:var(--text)}.toast-error{color:#991b1b;background:#fef2f2;border-color:#fca5a5}.toast-error .toast-icon{color:#dc2626}.toast-warning{color:#854d0e;background:#fefce8;border-color:#fde047}.toast-warning .toast-icon{color:#d97706}.toast-success{color:#166534;background:#f0fdf4;border-color:#86efac}.toast-success .toast-icon{color:#16a34a}.toast-info{border-color:var(--primary-light);background:var(--primary-bg);color:var(--primary-dark)}.toast-info .toast-icon{color:var(--primary)}[data-theme=dark] .toast-error{color:#fca5a5;background:#dc26261f;border-color:#dc26264d}[data-theme=dark] .toast-warning{color:#fde047;background:#d977061f;border-color:#d977064d}[data-theme=dark] .toast-success{color:#86efac;background:#16a34a1f;border-color:#16a34a4d}[data-theme=dark] .toast-info{color:var(--primary-light);background:#7c5ce71f;border-color:#7c5ce74d}@keyframes toastIn{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes toastOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(40px)}}@media (max-width:480px){.toast-container{max-width:none;top:12px;left:12px;right:12px}}.lock-overlay{z-index:9999;background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0}.lock-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:14px 24px;display:flex}.lock-header h2{margin:0;font-size:1.05rem;font-weight:700}.lock-body{flex:1;padding:20px;overflow:auto}.lock-footer{background:var(--surface);border-top:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;justify-content:center;align-items:center;gap:10px;padding:12px 24px;display:flex}.lock-input{border:1.5px solid var(--border);border-radius:var(--radius-xs);background:var(--bg);width:130px;color:var(--text);outline:none;padding:6px 30px 6px 10px;font-size:.9rem;transition:border-color .15s}.lock-input:focus{border-color:var(--primary)}.lock-input.lock-error{border-color:#ef4444;animation:.3s lockShake}.lock-eye-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;align-items:center;padding:2px;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.lock-eye-btn:hover{color:var(--text)}.lock-hint-btn{cursor:pointer;color:var(--primary);background:0 0;border:none;padding:4px;font-size:.82rem;font-weight:600;text-decoration:underline}.lock-hint{color:var(--text-muted);font-size:.82rem;font-style:italic;font-weight:600}@keyframes lockShake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.review-overlay{z-index:10000;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.review-modal{background:var(--surface);border-radius:var(--radius);width:100%;max-width:600px;max-height:80vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.review-header{border-bottom:1px solid var(--border-light);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.review-header h2{margin:0;font-size:1.05rem;font-weight:700}.review-count{color:var(--text-muted);font-size:.82rem;font-weight:600}.review-body{flex:1;overflow-y:auto}.review-row{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:10px 20px;display:flex}.review-row:last-child{border-bottom:none}.review-name{font-size:.9rem;font-weight:600}.review-actions{border-top:1px solid var(--border-light);flex-shrink:0;justify-content:flex-end;gap:12px;padding:14px 20px;display:flex}@media (max-width:600px){.lock-footer{gap:8px;padding:10px 12px}.lock-body{padding:12px}.review-overlay{padding:10px}}.enrich-overlay{z-index:9999;background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0}.enrich-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 24px;display:flex}.enrich-header h2{font-size:1.1rem;font-family:var(--font-display);margin:0}.enrich-body{flex:1;grid-template-columns:280px 1fr;min-height:0;display:grid;overflow:hidden}.enrich-info-panel{border-right:1px solid var(--border-light);background:var(--surface);flex-direction:column;gap:16px;padding:16px;display:flex;overflow-y:auto}.enrich-info-block{flex-direction:column;gap:4px;display:flex}.enrich-info-title{color:var(--text);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px;font-size:.8rem;font-weight:700}.enrich-info-text{color:var(--text-muted);font-size:.8rem;line-height:1.4}.enrich-note-list{flex-direction:column;gap:6px;display:flex}.enrich-info-note{color:var(--text-muted);background:var(--bg);border-radius:var(--radius-xs);border-left:3px solid var(--primary);padding:8px 10px;font-size:.8rem;line-height:1.4}.enrich-badge-list{flex-wrap:wrap;gap:4px;display:flex}.enrich-badge{white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:.7rem;font-weight:600}.enrich-badge.found{color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0}.enrich-badge.missing{background:var(--bg);color:var(--text-muted);border:1px solid var(--border-light)}[data-theme=dark] .enrich-badge.found{color:#4ade80;background:#16a34a1f;border-color:#16a34a4d}.enrich-card-list{flex-direction:column;gap:12px;padding:20px 24px;display:flex;overflow-y:auto}.enrich-section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:8px 0 4px;font-size:.85rem;font-weight:700}.enrich-card{background:var(--surface);border:1px solid var(--border-light);border-radius:8px;transition:opacity .2s}.enrich-card-header{background:var(--bg);-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:10px 16px;display:flex}.enrich-card-header.expanded{border-bottom:1px solid var(--border-light);border-radius:8px 8px 0 0}.enrich-card-header:hover{background:var(--primary-light)}.enrich-card-count{color:var(--text-muted);white-space:nowrap;font-size:.8rem;font-weight:500}.enrich-change-row{border-bottom:1px solid var(--border-light);align-items:center;gap:10px;padding:8px 16px;font-size:.85rem;display:flex}.enrich-change-row:last-child{border-bottom:none}.enrich-field-label{width:110px;color:var(--text-muted);flex-shrink:0;font-weight:600}.enrich-old-val{color:var(--text-muted);min-width:60px;font-size:.8rem;text-decoration:line-through}.enrich-arrow{color:var(--text-muted);flex-shrink:0}.enrich-new-val{flex:1;min-width:0}.enrich-new-val input{border:1px solid var(--border-light);background:var(--bg);width:100%;color:var(--text);border-radius:4px;padding:4px 8px;font-size:.85rem}.enrich-new-val input:focus{border-color:var(--primary);outline:none}.confidence-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.confidence-dot.high{background:#22c55e}.confidence-dot.medium{background:#eab308}.confidence-dot.low{background:#ef4444}.enrich-footer{background:var(--surface);border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;align-items:center;gap:10px;padding:12px 24px;display:flex}.enrich-empty{text-align:center;color:var(--text-muted);padding:40px 20px}@media (max-width:768px){.enrich-header{padding:12px 16px}.enrich-body{grid-template-rows:auto 1fr;grid-template-columns:1fr}.enrich-info-panel{border-right:none;border-bottom:1px solid var(--border-light);max-height:200px;overflow-y:auto}.enrich-card-list{padding:12px 16px}.enrich-card-header{padding:8px 12px}.enrich-change-row{flex-wrap:wrap;padding:6px 12px}.enrich-field-label{width:100%}.enrich-footer{padding:10px 16px}}.brief-class-grid{flex-wrap:wrap;gap:8px;display:flex}.brief-class-tile{border:2px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:10px;padding:8px 16px;font-size:.9rem;font-weight:600;transition:all .15s}.brief-class-tile:hover{border-color:var(--primary);background:var(--primary-light)}.brief-class-tile.active{border-color:var(--primary);background:var(--primary);color:#fff}.brief-form-grid{flex-direction:column;gap:12px;display:flex}.brief-kategorien-section{flex-direction:column;gap:8px;margin-top:20px;display:flex}.brief-kategorien-row{flex-wrap:wrap;gap:12px;display:flex}.brief-kategorie-card{background:var(--bg);border:1px solid var(--border-light);border-radius:8px;flex-direction:column;flex:280px;gap:8px;padding:12px;display:flex}.brief-preview{color:#000;border:1px solid var(--border);background:#fff;border-radius:4px;max-height:65vh;padding:50px;font-family:Arial,sans-serif;overflow-y:auto;box-shadow:0 2px 8px #00000014}.brief-preview:focus{outline:2px solid var(--primary);outline-offset:-2px}.brief-preview p{margin:0}.brief-p-school{font-size:8pt}.brief-dot{vertical-align:sub;font-size:6pt}.brief-p-addr{font-size:12pt;line-height:1.4}.brief-p-date{text-align:right;font-size:12pt}.brief-p-body{font-size:13pt;line-height:1}.brief-p-body-ls{font-size:13pt;line-height:1.15}.brief-p-strich{padding-left:3.5cm;font-size:13pt;line-height:1.15}.brief-p-tearoff{font-size:12pt;line-height:1.4}.brief-hr{border:none;border-top:1.5pt solid #000;margin:0}.brief-spacer-sm{height:13pt}.brief-spacer-lg{height:26pt}.brief-spacer-xl{height:52pt}.brief-sig-row{justify-content:space-between;padding:0 20px;font-size:12pt;display:flex}.brief-sig-field{text-align:center}.brief-sig-line{border-bottom:1px solid #000;width:140px;height:1px;margin-bottom:6px}.brief-logo{max-height:80px;margin:0 auto 8px;display:block}.brief-footer{text-align:center;color:#333;border-top:1px solid #000;margin-top:30pt;padding-top:8pt;font-size:8pt;line-height:1.6}.pwa-install-banner{background:linear-gradient(135deg, var(--primary,#7c5ce7) 0%, #6c4fd8 100%);color:#fff;border-radius:12px;margin-bottom:20px;padding:16px 20px;position:relative;box-shadow:0 4px 16px #7c5ce740}.pwa-banner-close{cursor:pointer;color:#fff;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;transition:background .2s;display:flex;position:absolute;top:8px;right:8px}.pwa-banner-close:hover{background:#ffffff59}.pwa-banner-content{align-items:center;gap:16px;display:flex}.pwa-banner-icon{background:#fff3;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.pwa-banner-text{flex:1;min-width:0}.pwa-banner-text strong{margin-bottom:6px;font-size:15px;display:block}.pwa-banner-benefits{opacity:.9;flex-wrap:wrap;gap:12px;font-size:13px;display:flex}.pwa-banner-benefits span{align-items:center;gap:4px;display:flex}.pwa-banner-btn{color:var(--primary,#7c5ce7);cursor:pointer;background:#fff;border:none;border-radius:8px;flex-shrink:0;padding:10px 20px;font-size:14px;font-weight:700;transition:transform .15s,box-shadow .15s}.pwa-banner-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000026}@media (max-width:600px){.pwa-banner-content{text-align:center;flex-direction:column}.pwa-banner-benefits{justify-content:center}}.pwa-sidebar-install{width:100%;color:var(--primary,#7c5ce7);cursor:pointer;background:#7c5ce71a;border:1px dashed #7c5ce766;border-radius:8px;align-items:center;gap:10px;margin-bottom:8px;padding:10px 16px;font-size:13px;font-weight:600;transition:background .2s,border-color .2s;display:flex}.pwa-sidebar-install:hover{border-color:var(--primary,#7c5ce7);background:#7c5ce72e}.sidebar.collapsed .pwa-sidebar-install{justify-content:center;padding:10px 0}.pwa-guide-overlay{z-index:9999;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.pwa-guide-modal{background:var(--bg-card,#fff);color:var(--text-primary,#2d3436);border-radius:16px;width:100%;max-width:420px;padding:32px;position:relative;box-shadow:0 20px 60px #0000004d}.pwa-guide-close{cursor:pointer;color:var(--text-secondary,#636e72);background:0 0;border:none;padding:4px;position:absolute;top:12px;right:12px}.pwa-guide-title{margin:0 0 8px;font-size:20px;font-weight:700}.pwa-guide-subtitle{color:var(--text-secondary,#636e72);margin:0 0 24px;font-size:14px}.pwa-guide-steps{flex-direction:column;gap:20px;margin:0 0 24px;padding:0;list-style:none;display:flex}.pwa-guide-steps li{align-items:flex-start;gap:14px;display:flex}.pwa-guide-step-icon{width:40px;height:40px;color:var(--primary,#7c5ce7);background:#7c5ce71a;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.pwa-guide-step-number{font-size:16px;font-weight:700}.pwa-guide-steps li strong{margin-bottom:2px;font-size:14px;display:block}.pwa-guide-steps li p{color:var(--text-secondary,#636e72);margin:0;font-size:13px}.pwa-guide-done{background:var(--primary,#7c5ce7);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:12px;font-size:15px;font-weight:700;transition:opacity .2s}.pwa-guide-done:hover{opacity:.9}[data-theme=dark] .pwa-install-banner{background:linear-gradient(135deg,#9b7ef8 0%,#7c5ce7 100%)}[data-theme=dark] .pwa-sidebar-install{color:#b8a4f8;background:#9b7ef826;border-color:#9b7ef866}[data-theme=dark] .pwa-sidebar-install:hover{background:#9b7ef840}[data-theme=candy] .pwa-install-banner{background:linear-gradient(135deg,#ff6b9d 0%,#c44dff 100%);box-shadow:0 4px 16px #ff6b9d4d}[data-theme=candy] .pwa-sidebar-install{color:#ff6b9d;background:#ff6b9d1a;border-color:#ff6b9d66}[data-theme=candy] .pwa-sidebar-install:hover{background:#ff6b9d33}[data-theme=candy] .pwa-banner-btn{color:#ff6b9d}.ge-controls{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border-light);flex-direction:column;gap:16px;margin-bottom:28px;padding:20px 24px;display:flex}.ge-control-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.ge-label{color:var(--text-muted);min-width:110px;font-size:.88rem;font-weight:600}.ge-select{border-radius:var(--radius-sm);border:1px solid var(--border-light);background:var(--bg);color:var(--text);font-size:.92rem;font-family:var(--font-body);min-width:200px;padding:8px 14px}.ge-size-buttons{align-items:center;gap:6px;display:flex}.ge-size-btn{border-radius:var(--radius-xs);border:1px solid var(--border-light);background:var(--bg);color:var(--text);cursor:pointer;padding:6px 16px;font-size:.88rem;font-weight:600;transition:all .15s}.ge-size-btn:hover{border-color:var(--primary);color:var(--primary)}.ge-size-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.ge-size-input{border-radius:var(--radius-xs);border:1px solid var(--border-light);background:var(--bg);width:80px;color:var(--text);font-size:.88rem;font-family:var(--font-body);text-align:center;padding:6px 10px}.ge-actions{gap:8px}.ge-info{color:var(--text-muted);align-items:center;gap:6px;font-size:.82rem;display:flex}.ge-groups-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.ge-group-card{background:var(--surface);border-radius:var(--radius);border:2px solid var(--border-light);transition:border-color .2s,box-shadow .2s;overflow:hidden}.ge-group-card.ge-drag-over{border-color:var(--ge-card-color);box-shadow:0 0 0 3px var(--ge-card-color)}@supports (color:color-mix(in lab, red, red)){.ge-group-card.ge-drag-over{box-shadow:0 0 0 3px color-mix(in srgb, var(--ge-card-color) 20%, transparent)}}.ge-group-header{background:var(--ge-card-color);color:#fff;align-items:center;gap:8px;padding:12px 16px;font-size:1rem;font-weight:700;display:flex}.ge-group-number{font-family:var(--font-display);flex:1;font-size:1.05rem}.ge-group-count{background:#ffffff40;border-radius:10px;padding:2px 8px;font-size:.78rem;font-weight:600}.ge-group-remove{color:#fff;cursor:pointer;opacity:.6;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;transition:opacity .15s;display:flex}.ge-group-remove:hover{opacity:1;background:#ffffff59}.ge-group-members{flex-direction:column;gap:4px;min-height:50px;padding:10px;display:flex}.ge-student-card{border-radius:var(--radius-xs);background:var(--bg);border:1px solid var(--border-light);cursor:grab;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:8px 10px;transition:background .15s,box-shadow .15s;display:flex}.ge-student-card:hover{background:var(--surface-hover,var(--bg));box-shadow:var(--shadow-sm)}.ge-student-card:active{cursor:grabbing}.ge-drag-handle{color:var(--text-light);flex-shrink:0}.ge-student-name{color:var(--text);flex:1;font-size:1.05rem;font-weight:500}.ge-student-remove{color:var(--text-light);cursor:pointer;border-radius:var(--radius-xs);opacity:0;background:0 0;border:none;align-items:center;padding:2px;transition:opacity .15s,color .15s;display:flex}.ge-student-card:hover .ge-student-remove{opacity:1}.ge-student-remove:hover{color:var(--coral)}.ge-empty-group{text-align:center;color:var(--text-light);border:2px dashed var(--border-light);border-radius:var(--radius-xs);padding:16px;font-size:.85rem;font-style:italic}.ge-add-group{border:2px dashed var(--border-light);min-height:120px;color:var(--text-muted);cursor:pointer;background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:.9rem;font-weight:600;transition:border-color .2s,color .2s;display:flex}.ge-add-group:hover{border-color:var(--primary);color:var(--primary)}.ge-save-row{background:var(--bg);border-radius:var(--radius-sm);border:1px solid var(--border-light);align-items:center;gap:8px;padding:12px 16px;display:flex}.ge-save-input{border-radius:var(--radius-xs);border:1px solid var(--border-light);background:var(--surface);color:var(--text);font-size:.9rem;font-family:var(--font-body);flex:1;padding:7px 12px}.ge-save-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #7c5ce71f}.ge-history{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border-light);margin-bottom:24px;overflow:hidden}.ge-history-title{font-size:.95rem;font-weight:700;font-family:var(--font-display);color:var(--text);border-bottom:1px solid var(--border-light);align-items:center;gap:8px;margin:0;padding:14px 20px;display:flex}.ge-history-list{flex-direction:column;display:flex}.ge-history-item{border-bottom:1px solid var(--border-light);align-items:center;gap:12px;padding:12px 20px;transition:background .15s;display:flex}.ge-history-item:last-child{border-bottom:none}.ge-history-item:hover{background:var(--bg)}.ge-history-info{flex-direction:column;flex:1;gap:2px;display:flex}.ge-history-name{color:var(--text);font-size:.92rem;font-weight:600}.ge-history-meta{color:var(--text-muted);font-size:.78rem}.ge-history-actions{align-items:center;gap:6px;display:flex}.ge-history-delete{color:var(--text-light);transition:color .15s}.ge-history-delete:hover{color:var(--coral)}@media (max-width:768px){.ge-control-row{flex-direction:column;align-items:stretch}.ge-label{min-width:unset}.ge-select{min-width:unset;width:100%}.ge-groups-grid{grid-template-columns:1fr}.ge-actions{flex-direction:column}.ge-actions .btn{justify-content:center;width:100%}}@media (min-width:769px) and (max-width:1024px){.ge-groups-grid{grid-template-columns:repeat(2,1fr)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
