html{background-color:var(--bg-page)}#app{min-height:100vh;min-height:100dvh;background-color:var(--bg-page)}:root{--primary-color: #6b4eff;--primary-hover: #5a3de6;--bg-page: #f8f9fb;--bg-card: #ffffff;--text-main: #2d3748;--text-muted: #718096;--border-color: #e2e8f0;--modal-surface: #ffffff;--grade-badge-bg: #fab1a0;--grade-badge-fg: #d63031;--teacher-answer-bg: #e8f8f5;--teacher-answer-fg: #15803d;--status-ok-color: #15803d;--status-ok-bg: rgba(34, 197, 94, .12);--status-bad-color: #b91c1c;--status-bad-bg: rgba(239, 68, 68, .1)}[data-theme=dark]{--primary-color: #7c6bff;--primary-hover: #9b87ff;--bg-page: #111827;--bg-card: #1f2937;--text-main: #f9fafb;--text-muted: #9ca3af;--border-color: #374151;--modal-surface: #243044;--grade-badge-bg: color-mix(in srgb, #fb7185 26%, var(--bg-card));--grade-badge-fg: #fecaca;--teacher-answer-bg: color-mix(in srgb, #34d399 16%, var(--bg-card));--teacher-answer-fg: #a7f3d0;--status-ok-color: #86efac;--status-ok-bg: rgba(34, 197, 94, .18);--status-bad-color: #fca5a5;--status-bad-bg: rgba(248, 113, 113, .16)}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6;background:var(--bg-page);color:var(--text-main);transition:background-color .3s ease,color .3s ease}.filter-pill-group{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.filter-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-muted);border-radius:20px;padding:10px 20px;cursor:pointer;font-weight:600;font-size:.95rem;font-family:inherit;line-height:1.25;transition:background .2s,color .2s,border-color .2s,box-shadow .2s}.filter-pill:hover{color:var(--text-main)}.filter-pill.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color);box-shadow:0 4px 6px #6b4eff33}.filter-pill.active:hover{color:#fff}.katex{font-size:1.2em!important}[data-theme=dark] .katex{color:var(--text-main)}.markdown-body img,.spoiler-content img,.callout-body img{max-width:100%;height:auto;display:block;border-radius:6px;margin:.5em 0}.markdown-body table,.spoiler-content table,.callout-body table{border-collapse:collapse!important;width:100%;margin:1.2em 0;font-size:.95em;border:1px solid #ccc}.markdown-body th,.markdown-body td,.spoiler-content th,.spoiler-content td,.callout-body th,.callout-body td{border:1px solid #ccc!important;padding:8px 14px!important;text-align:left;vertical-align:top}.markdown-body th,.spoiler-content th,.callout-body th{background:#f5f3ff;color:#5a4fcf;font-weight:700;font-size:.88em;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.markdown-body tr:nth-child(2n) td,.spoiler-content tr:nth-child(2n) td,.callout-body tr:nth-child(2n) td{background:#fafbfc}.markdown-body tr:hover td,.spoiler-content tr:hover td,.callout-body tr:hover td{background:#f0effe}.callout{border-left:4px solid #ccc;border-radius:8px;padding:14px 18px;margin:1.2em 0;line-height:1.6;background-color:#f9f9f9}.callout-title{font-weight:700;font-size:.82em;text-transform:uppercase;letter-spacing:.06em;margin-top:0;margin-bottom:8px}.callout>*:first-child{margin-top:0!important}.callout>*:last-child{margin-bottom:0!important}.callout p:first-child{margin-top:0}.callout p:last-child{margin-bottom:0}.callout-info{border-left-color:#0984e3!important;background-color:#e8f4fd!important;color:#1a3a52}.callout-info .callout-title{color:#0984e3}.callout-warning{border-left-color:#e17055!important;background-color:#fff4ee!important;color:#4a2010}.callout-warning .callout-title{color:#d45c3b}.callout-success{border-left-color:#27ae60!important;background-color:#edfbf2!important;color:#14402a}.callout-success .callout-title{color:#27ae60}.callout-danger{border-left-color:#e74c3c!important;background-color:#fdf2f2!important;color:#44191a}.callout-danger .callout-title{color:#e74c3c}.callout-tip{border-left-color:#a29bfe!important;background-color:#f5f3ff!important;color:#2d2563}.callout-tip .callout-title{color:#6c5ce7}.custom-spoiler{border:1px solid #dfe6e9;border-radius:10px;margin:1.2em 0;overflow:hidden;background:#fff}.custom-spoiler summary{list-style:none;cursor:pointer;padding:12px 18px;font-weight:600;font-size:.95em;color:#6c5ce7;background:#f5f3ff;display:flex;align-items:center;gap:10px;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .15s}.custom-spoiler summary::-webkit-details-marker{display:none}.custom-spoiler summary:before{content:"▶";font-size:.65em;transition:transform .2s ease;flex-shrink:0}.custom-spoiler[open] summary:before{transform:rotate(90deg)}.custom-spoiler summary:hover{background:#ede9fe}.spoiler-content{padding:12px 16px;border-top:1px solid #dfe6e9;animation:spoilerReveal .18s ease}.spoiler-content>*:first-child{margin-top:0}.spoiler-content>*:last-child{margin-bottom:0}[data-theme=dark] .markdown-body{color:var(--text-main)}[data-theme=dark] .markdown-body a{color:var(--primary-color)}[data-theme=dark] .markdown-body table,[data-theme=dark] .spoiler-content table,[data-theme=dark] .callout-body table{border-color:var(--border-color)}[data-theme=dark] .markdown-body th,[data-theme=dark] .markdown-body td,[data-theme=dark] .spoiler-content th,[data-theme=dark] .spoiler-content td,[data-theme=dark] .callout-body th,[data-theme=dark] .callout-body td{border-color:var(--border-color)!important}[data-theme=dark] .markdown-body th,[data-theme=dark] .spoiler-content th,[data-theme=dark] .callout-body th{background:color-mix(in srgb,var(--primary-color) 20%,var(--bg-card));color:var(--text-main)}[data-theme=dark] .markdown-body tr:nth-child(2n) td,[data-theme=dark] .spoiler-content tr:nth-child(2n) td,[data-theme=dark] .callout-body tr:nth-child(2n) td{background:color-mix(in srgb,var(--text-main) 4%,var(--bg-card))}[data-theme=dark] .markdown-body tr:hover td,[data-theme=dark] .spoiler-content tr:hover td,[data-theme=dark] .callout-body tr:hover td{background:color-mix(in srgb,var(--primary-color) 10%,var(--bg-card))}[data-theme=dark] .callout{background-color:var(--bg-card);border-left-color:var(--border-color);color:var(--text-main)}[data-theme=dark] .callout-info{border-left-color:#38bdf8!important;background-color:color-mix(in srgb,#0ea5e9 16%,var(--bg-card))!important;color:#e0f2fe!important}[data-theme=dark] .callout-info .callout-title{color:#7dd3fc}[data-theme=dark] .callout-warning{border-left-color:#fb923c!important;background-color:color-mix(in srgb,#ea580c 14%,var(--bg-card))!important;color:#ffedd5!important}[data-theme=dark] .callout-warning .callout-title{color:#fdba74}[data-theme=dark] .callout-success{border-left-color:#4ade80!important;background-color:color-mix(in srgb,#22c55e 14%,var(--bg-card))!important;color:#dcfce7!important}[data-theme=dark] .callout-success .callout-title{color:#86efac}[data-theme=dark] .callout-danger{border-left-color:#f87171!important;background-color:color-mix(in srgb,#ef4444 14%,var(--bg-card))!important;color:#fee2e2!important}[data-theme=dark] .callout-danger .callout-title{color:#fca5a5}[data-theme=dark] .callout-tip{border-left-color:var(--primary-color)!important;background-color:color-mix(in srgb,var(--primary-color) 14%,var(--bg-card))!important;color:var(--text-main)!important}[data-theme=dark] .callout-tip .callout-title{color:#c4b5fd}[data-theme=dark] .custom-spoiler{border-color:var(--border-color);background:var(--bg-card)}[data-theme=dark] .custom-spoiler summary{color:var(--primary-color);background:color-mix(in srgb,var(--primary-color) 12%,var(--bg-card))}[data-theme=dark] .custom-spoiler summary:hover{background:color-mix(in srgb,var(--primary-color) 18%,var(--bg-card))}[data-theme=dark] .spoiler-content{border-top-color:var(--border-color)}@keyframes spoilerReveal{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.base-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;padding:20px;box-shadow:0 2px 5px #0000000d;transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}.base-card:hover{box-shadow:0 4px 10px #0000001a}.form-panel{background:#fbfaff;padding:20px;border-radius:10px;border:1px solid #e1e1e1;margin-bottom:30px;width:100%;box-sizing:border-box}.empty-state{text-align:center;padding:40px;color:#aaa;font-style:italic;border:2px dashed #dfe6e9;border-radius:10px;margin-top:20px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.left-3{left:.75rem}.top-1\/2{top:50%}.z-\[3000\]{z-index:3000}.z-\[3001\]{z-index:3001}.m-0{margin:0}.\!mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.\!block{display:block!important}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-14{height:3.5rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.max-h-52{max-height:13rem}.w-10{width:2.5rem}.w-14{width:3.5rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.min-w-0{min-width:0px}.flex-1{flex:1 1 0%}.flex-\[2\]{flex:2}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.list-none{list-style-type:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-dashed{border-style:dashed}.border-\[var\(--border-color\)\]{border-color:var(--border-color)}.border-\[var\(--primary-color\)\]{border-color:var(--primary-color)}.bg-\[color-mix\(in_srgb\,var\(--primary-color\)_20\%\,var\(--bg-page\)\)\]{background-color:color-mix(in srgb,var(--primary-color) 20%,var(--bg-page))}.bg-\[color-mix\(in_srgb\,var\(--primary-color\)_8\%\,transparent\)\]{background-color:color-mix(in srgb,var(--primary-color) 8%,transparent)}.bg-\[var\(--bg-card\)\]{background-color:var(--bg-card)}.bg-\[var\(--bg-page\)\]{background-color:var(--bg-page)}.bg-\[var\(--primary-color\)\]{background-color:var(--primary-color)}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-black\/50{background-color:#00000080}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.p-0{padding:0}.p-1{padding:.25rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pl-10{padding-left:2.5rem}.pr-3{padding-right:.75rem}.pt-4{padding-top:1rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tracking-wide{letter-spacing:.025em}.text-\[var\(--primary-color\)\]{color:var(--primary-color)}.text-\[var\(--text-main\)\]{color:var(--text-main)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.accent-\[var\(--primary-color\)\]{accent-color:var(--primary-color)}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-70{opacity:.7}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);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)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));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)}.grayscale{--tw-grayscale: grayscale(100%);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)}.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)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.placeholder\:text-\[var\(--text-muted\)\]::-moz-placeholder{color:var(--text-muted)}.placeholder\:text-\[var\(--text-muted\)\]::placeholder{color:var(--text-muted)}.last\:border-b-0:last-child{border-bottom-width:0px}.hover\:bg-\[color-mix\(in_srgb\,var\(--primary-color\)_16\%\,transparent\)\]:hover{background-color:color-mix(in srgb,var(--primary-color) 16%,transparent)}.hover\:bg-\[var\(--primary-hover\)\]:hover{background-color:var(--primary-hover)}.hover\:bg-amber-200:hover{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.hover\:bg-green-200:hover{--tw-bg-opacity: 1;background-color:rgb(187 247 208 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:text-\[var\(--text-main\)\]:hover{color:var(--text-main)}.focus\:border-\[var\(--primary-color\)\]:focus{border-color:var(--primary-color)}.focus\:opacity-100:focus{opacity:1}.disabled\:opacity-60:disabled{opacity:.6}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:bg-amber-500\/20:where([data-theme=dark],[data-theme=dark] *){background-color:#f59e0b33}.dark\:bg-green-500\/20:where([data-theme=dark],[data-theme=dark] *){background-color:#22c55e33}.dark\:text-amber-300:where([data-theme=dark],[data-theme=dark] *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.dark\:text-amber-400:where([data-theme=dark],[data-theme=dark] *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-gray-500:where([data-theme=dark],[data-theme=dark] *){--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.dark\:text-green-300:where([data-theme=dark],[data-theme=dark] *){--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.dark\:text-slate-300:where([data-theme=dark],[data-theme=dark] *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.toast-container[data-v-e32a19ad]{position:fixed;bottom:30px;left:50%;transform:translate(-50%);z-index:100050;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:400px;padding:0 15px;box-sizing:border-box}.toast-wrapper[data-v-e32a19ad]{display:flex;flex-direction:column;gap:10px;width:100%}.toast-item[data-v-e32a19ad]{pointer-events:auto;display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;background:var(--bg-card, #fff);box-shadow:0 10px 30px #00000026;cursor:pointer;transition:all .3s ease;overflow:hidden;position:relative}.toast-success[data-v-e32a19ad]{border-left:5px solid #00b894}.toast-error[data-v-e32a19ad]{border-left:5px solid #d63031}.toast-warning[data-v-e32a19ad]{border-left:5px solid #fdcb6e}.toast-info[data-v-e32a19ad]{border-left:5px solid #0984e3}.toast-icon[data-v-e32a19ad]{display:flex;align-items:center;flex-shrink:0}.toast-ico--success[data-v-e32a19ad]{color:#16a34a}.toast-ico--error[data-v-e32a19ad]{color:#dc2626}.toast-ico--warn[data-v-e32a19ad]{color:#d97706}.toast-ico--info[data-v-e32a19ad]{color:#2563eb}.toast-content[data-v-e32a19ad]{flex:1;font-size:.95rem;color:var(--text-main, #2d3748);font-weight:500}.toast-close[data-v-e32a19ad]{background:none;border:none;color:var(--text-muted, #94a3b8);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:6px;line-height:0}.toast-item:hover .toast-close[data-v-e32a19ad]{color:var(--text-main, #2d3748)}.toast-list-enter-active[data-v-e32a19ad],.toast-list-leave-active[data-v-e32a19ad]{transition:all .4s cubic-bezier(.175,.885,.32,1.275)}.toast-list-enter-from[data-v-e32a19ad]{opacity:0;transform:translateY(30px) scale(.9)}.toast-list-leave-to[data-v-e32a19ad]{opacity:0;transform:translateY(-30px) scale(.9)}.widget[data-v-7fe258d4]{display:flex;align-items:center;gap:10px;padding:4px 6px 4px 2px;border-radius:24px;background:transparent;border:none;text-decoration:none;color:inherit;transition:opacity .2s}.widget[data-v-7fe258d4]:hover{opacity:.92}.info[data-v-7fe258d4]{text-align:right;display:flex;flex-direction:column;justify-content:center;min-width:0}.name[data-v-7fe258d4]{font-weight:600;font-size:.875rem;color:var(--text-main);line-height:1.2}.level-row[data-v-7fe258d4]{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:3px}.lvl-badge[data-v-7fe258d4]{background:var(--primary-color);color:#fff;font-size:.65rem;padding:2px 6px;border-radius:6px;font-weight:700;letter-spacing:.02em}.xp-bar[data-v-7fe258d4]{width:56px;height:5px;background:var(--border-color);border-radius:999px;overflow:hidden}.xp-fill[data-v-7fe258d4]{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary-color),#9b87ff)}.avatar[data-v-7fe258d4]{width:36px;height:36px;border-radius:50%;background:var(--bg-page);border:1px solid var(--border-color);-o-object-fit:cover;object-fit:cover;flex-shrink:0}.fab-cart[data-v-77aba65b]{position:fixed;bottom:100px;right:30px;width:65px;height:65px;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);border-radius:50%;border:none;cursor:pointer;box-shadow:0 10px 25px color-mix(in srgb,var(--primary-color) 45%,transparent);display:flex;align-items:center;justify-content:center;z-index:1500;transition:.3s cubic-bezier(.175,.885,.32,1.275);animation:popIn-77aba65b .4s ease}.fab-cart[data-v-77aba65b]:hover{transform:scale(1.1) translateY(-5px);box-shadow:0 15px 35px color-mix(in srgb,var(--primary-color) 52%,transparent)}.fab-icon[data-v-77aba65b]{color:#fff}.cart-modal-title[data-v-77aba65b]{display:flex;align-items:center;gap:10px;margin:0;font-size:1.5rem;color:var(--text-main)}.cart-modal-title-ico[data-v-77aba65b]{flex-shrink:0;color:var(--primary-color)}.fab-badge[data-v-77aba65b]{position:absolute;top:-2px;right:-2px;background:#ef4444;color:#fff;font-weight:700;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;border:3px solid var(--bg-card);box-shadow:0 2px 8px color-mix(in srgb,#000 25%,transparent)}@keyframes popIn-77aba65b{0%{transform:scale(0)}80%{transform:scale(1.1)}to{transform:scale(1)}}.modal-overlay[data-v-77aba65b]{position:fixed;top:0;left:0;width:100%;height:100%;background:#0f172a94;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:2000;padding:15px;box-sizing:border-box}.modern-modal[data-v-77aba65b]{background:var(--modal-surface);color:var(--text-main);width:100%;max-width:480px;border-radius:20px;display:flex;flex-direction:column;max-height:90vh;box-shadow:0 20px 48px color-mix(in srgb,#000 38%,transparent);border:1px solid var(--border-color);animation:modalFadeIn-77aba65b .3s cubic-bezier(.16,1,.3,1);overflow:hidden}@keyframes modalFadeIn-77aba65b{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header[data-v-77aba65b]{display:flex;justify-content:space-between;align-items:center;padding:25px 30px;background:var(--modal-surface);border-bottom:1px solid var(--border-color);z-index:10;box-shadow:0 4px 12px color-mix(in srgb,var(--text-main) 4%,transparent)}.modal-header h2[data-v-77aba65b]{margin:0;font-size:1.5rem;color:var(--text-main)}.close-btn[data-v-77aba65b]{background:var(--bg-page);border:1px solid var(--border-color);width:32px;height:32px;border-radius:50%;color:var(--text-muted);font-size:1rem;cursor:pointer;transition:.2s;display:flex;align-items:center;justify-content:center}.close-btn[data-v-77aba65b]:hover{background:color-mix(in srgb,var(--text-main) 8%,var(--bg-page));color:var(--text-main)}.cart-body[data-v-77aba65b]{padding:20px 30px;overflow-y:auto;flex:1;background:var(--bg-page);transition:background-color .3s ease}.modern-scroll[data-v-77aba65b]::-webkit-scrollbar{width:6px}.modern-scroll[data-v-77aba65b]::-webkit-scrollbar-track{background:transparent}.modern-scroll[data-v-77aba65b]::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:10px}.empty-state[data-v-77aba65b]{text-align:center;color:var(--text-muted);padding:40px 0;display:flex;flex-direction:column;gap:10px;align-items:center}.empty-icon[data-v-77aba65b]{font-size:3rem;opacity:.55;color:var(--text-muted)}.empty-state p[data-v-77aba65b]{margin:0;font-size:1rem}.tasks-list[data-v-77aba65b]{display:flex;flex-direction:column;gap:12px}.cart-item[data-v-77aba65b]{display:flex;justify-content:space-between;align-items:center;background:var(--bg-card);padding:15px 20px;border-radius:12px;border:1px solid var(--border-color);box-shadow:0 2px 8px color-mix(in srgb,var(--text-main) 5%,transparent);transition:border-color .2s,background-color .3s ease,box-shadow .2s,transform .2s}.cart-item[data-v-77aba65b]:hover{border-color:color-mix(in srgb,var(--primary-color) 35%,var(--border-color));transform:translateY(-1px);box-shadow:0 4px 12px color-mix(in srgb,var(--text-main) 7%,transparent)}.item-info[data-v-77aba65b]{display:flex;flex-direction:column;gap:6px}.item-info strong[data-v-77aba65b]{color:var(--text-main);font-family:Courier New,Courier,monospace;font-size:1.05rem;letter-spacing:.5px}.item-diff[data-v-77aba65b]{font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:5px}.item-diff .dot[data-v-77aba65b]{font-size:.6rem}.item-diff.easy[data-v-77aba65b]{color:#34d399}.item-diff.medium[data-v-77aba65b]{color:#fbbf24}.item-diff.hard[data-v-77aba65b]{color:#f87171}.btn-remove-item[data-v-77aba65b]{background:var(--bg-page);color:var(--text-muted);border:1px solid var(--border-color);width:30px;height:30px;border-radius:50%;cursor:pointer;transition:.2s;display:flex;align-items:center;justify-content:center;font-size:.8rem}.btn-remove-item[data-v-77aba65b]:hover{background:color-mix(in srgb,#ef4444 14%,var(--bg-page));color:#ef4444;border-color:color-mix(in srgb,#ef4444 35%,var(--border-color))}.cart-footer[data-v-77aba65b]{padding:25px 30px;background:var(--modal-surface);border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:20px;box-shadow:0 -4px 12px color-mix(in srgb,var(--text-main) 4%,transparent);z-index:10}.form-group[data-v-77aba65b]{display:flex;flex-direction:column;gap:8px}.form-group label[data-v-77aba65b]{font-weight:600;font-size:.9rem;color:var(--text-main)}.required[data-v-77aba65b]{color:#f87171}.modern-input[data-v-77aba65b]{width:100%;box-sizing:border-box;padding:12px 15px;border-radius:12px;border:1px solid var(--border-color);font-size:.95rem;outline:none;transition:.2s;font-family:inherit;background:var(--bg-page);color:var(--text-main)}.modern-input[data-v-77aba65b]:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary-color) 22%,transparent)}.search-wrapper[data-v-77aba65b]{position:relative}.search-icon[data-v-77aba65b]{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.search-wrapper .modern-input[data-v-77aba65b]{padding-left:38px}.student-select-list[data-v-77aba65b]{max-height:180px;overflow-y:auto;border:1px solid var(--border-color);border-radius:12px;background:var(--bg-page);display:flex;flex-direction:column;margin-top:5px}.empty-list-msg[data-v-77aba65b]{padding:20px;text-align:center;color:var(--text-muted);font-size:.9rem}.student-option[data-v-77aba65b]{padding:12px 15px;border-bottom:1px solid var(--border-color);cursor:pointer;display:flex;align-items:center;gap:12px;transition:.2s;margin:0;background:var(--bg-card)}.student-option[data-v-77aba65b]:last-child{border-bottom:none}.student-option[data-v-77aba65b]:hover{background:color-mix(in srgb,var(--text-main) 4%,var(--bg-card))}.student-option.selected[data-v-77aba65b]{background:color-mix(in srgb,var(--primary-color) 14%,var(--bg-card))}.student-avatar[data-v-77aba65b]{width:36px;height:36px;border-radius:50%;background:color-mix(in srgb,var(--primary-color) 22%,var(--bg-page));color:var(--primary-color);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;text-transform:uppercase;flex-shrink:0;border:1px solid color-mix(in srgb,var(--primary-color) 28%,transparent)}.student-info[data-v-77aba65b]{display:flex;flex-direction:column;flex:1}.student-name[data-v-77aba65b]{font-weight:600;color:var(--text-main);font-size:.95rem}.student-login[data-v-77aba65b]{font-size:.8rem;color:var(--text-muted)}.check-mark[data-v-77aba65b]{color:var(--primary-color);font-weight:700;font-size:1.1rem}.btn-submit-modern[data-v-77aba65b]{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);color:#fff;border:none;padding:15px 24px;border-radius:12px;cursor:pointer;font-weight:600;font-size:1.05rem;transition:.2s;box-shadow:0 4px 14px color-mix(in srgb,var(--primary-color) 38%,transparent);width:100%;display:flex;justify-content:center;align-items:center;gap:10px;margin-top:5px;font-family:inherit}.btn-submit-ico[data-v-77aba65b]{flex-shrink:0}.btn-submit-ico--spin[data-v-77aba65b]{animation:cart-spin-77aba65b .75s linear infinite}@keyframes cart-spin-77aba65b{to{transform:rotate(360deg)}}.btn-submit-modern[data-v-77aba65b]:hover{transform:translateY(-2px);box-shadow:0 6px 18px color-mix(in srgb,var(--primary-color) 45%,transparent);filter:brightness(1.03)}.btn-submit-modern[data-v-77aba65b]:disabled{background:var(--text-muted);cursor:not-allowed;transform:none;box-shadow:none;filter:none;opacity:.65}@media(max-width:768px){.fab-cart[data-v-77aba65b]{bottom:90px;right:20px}.cart-modal[data-v-77aba65b]{height:100%;max-height:100vh;border-radius:0}.modal-overlay[data-v-77aba65b]{padding:0}}.schedule-panel[data-v-e7b81a30]{top:0;right:0;bottom:0;width:580px;max-width:100vw;border-left:1px solid var(--border-color)}.close-btn[data-v-e7b81a30]:hover{background:color-mix(in srgb,var(--text-main) 6%,transparent)}.tab-active[data-v-e7b81a30]{background:var(--bg-card);color:var(--primary-color);box-shadow:0 1px 4px color-mix(in srgb,var(--text-main) 10%,transparent)}.student-option[data-v-e7b81a30]{background:var(--bg-card);transition:background .15s}.student-option[data-v-e7b81a30]:hover{background:color-mix(in srgb,var(--text-main) 4%,var(--bg-card))}.student-option.is-selected[data-v-e7b81a30]{background:color-mix(in srgb,var(--primary-color) 14%,var(--bg-card))}.edit-btn[data-v-e7b81a30]:hover{background:color-mix(in srgb,var(--primary-color) 12%,transparent);color:var(--primary-color)}.delete-btn[data-v-e7b81a30]:hover{background:color-mix(in srgb,#ef4444 12%,transparent);color:#ef4444}.sched-scroll[data-v-e7b81a30]::-webkit-scrollbar{width:6px}.sched-scroll[data-v-e7b81a30]::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:10px}.schedule-calendar[data-v-e7b81a30] .vc-container{width:100%;border:1px solid var(--border-color);border-radius:16px;background:var(--bg-page);font-size:17px}.schedule-calendar[data-v-e7b81a30] .vc-day-content{width:46px;height:46px;font-size:1.05rem}.schedule-calendar[data-v-e7b81a30] .vc-weekday{font-size:.95rem}.schedule-calendar[data-v-e7b81a30] .vc-title{font-size:1.15rem;font-weight:700}.schedule-calendar[data-v-e7b81a30] .vc-dots{margin-top:2px}.schedule-calendar.is-dark-theme[data-v-e7b81a30] .vc-container{--vc-color: var(--text-main);--vc-header-title-color: color-mix(in srgb, var(--primary-hover) 82%, var(--text-main));--vc-header-arrow-color: var(--text-muted);--vc-header-arrow-hover-bg: color-mix(in srgb, var(--primary-color) 22%, var(--bg-page));--vc-weekday-color: color-mix(in srgb, var(--primary-hover) 45%, var(--text-muted));--vc-border: var(--border-color)}.schedule-calendar.is-dark-theme[data-v-e7b81a30] .vc-title{color:color-mix(in srgb,var(--primary-hover) 82%,var(--text-main))}.schedule-calendar.is-dark-theme[data-v-e7b81a30] .vc-title:hover{color:var(--primary-hover);opacity:1}.schedule-calendar.is-dark-theme[data-v-e7b81a30] .vc-arrow{color:var(--text-muted);border-radius:8px;transition:color .2s ease,background .2s ease}.schedule-calendar.is-dark-theme[data-v-e7b81a30] .vc-arrow:hover{color:var(--primary-hover);background:color-mix(in srgb,var(--primary-color) 22%,var(--bg-page))}.schedule-calendar.is-dark-theme[data-v-e7b81a30] .vc-base-icon{stroke:currentColor}.schedule-fade-enter-active[data-v-e7b81a30],.schedule-fade-leave-active[data-v-e7b81a30]{transition:opacity .25s ease}.schedule-fade-enter-from[data-v-e7b81a30],.schedule-fade-leave-to[data-v-e7b81a30]{opacity:0}.schedule-slide-enter-active[data-v-e7b81a30],.schedule-slide-leave-active[data-v-e7b81a30]{transition:transform .3s cubic-bezier(.16,1,.3,1)}.schedule-slide-enter-from[data-v-e7b81a30],.schedule-slide-leave-to[data-v-e7b81a30]{transform:translate(100%)}@media(max-width:768px){.schedule-panel[data-v-e7b81a30]{inset:auto 0 0;width:100%;height:88vh;border-left:none;border-top:1px solid var(--border-color);border-top-left-radius:20px;border-top-right-radius:20px}.schedule-slide-enter-from[data-v-e7b81a30],.schedule-slide-leave-to[data-v-e7b81a30]{transform:translateY(100%)}}*,*:before,*:after{box-sizing:border-box}body{overflow-x:hidden;margin:0;padding:0;-webkit-tap-highlight-color:transparent}.app-wrapper{min-height:100vh;min-height:100dvh;padding-bottom:env(safe-area-inset-bottom,20px);background:var(--bg-page);color:var(--text-main);display:flex;flex-direction:column;transition:background-color .3s ease,color .3s ease}.navbar{background:var(--bg-card);padding:10px 30px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 10px #0000000d;margin-bottom:20px;border-bottom:1px solid var(--border-color)}.logo{font-size:1.5rem;font-weight:700;color:var(--text-main);text-decoration:none;transition:opacity .2s;display:inline-flex;align-items:center;gap:8px}.logo-icon{color:var(--primary-color);flex-shrink:0}.logo:hover{opacity:.8}.nav-links{display:flex;align-items:center;gap:20px}.nav-links a{text-decoration:none;color:var(--text-main);font-weight:500}.nav-link-with-icon{display:inline-flex;align-items:center;gap:8px}.nav-link-icon{color:var(--text-muted);flex-shrink:0}.nav-links a.router-link-active,.nav-links a.router-link-active .nav-link-icon{color:var(--primary-color)}.nav-link-with-badge{position:relative;padding-right:4px}.nav-hw-badge{position:absolute;top:-7px;right:-12px;min-width:1.15rem;padding:2px 6px;border-radius:10px;background:var(--primary-color);color:#fff;font-size:.68rem;font-weight:900;line-height:1.2;text-align:center;box-shadow:0 1px 4px color-mix(in srgb,var(--primary-color) 45%,transparent)}.nav-right{display:flex;align-items:center;gap:12px}.account-pill-cluster{display:inline-flex;align-items:center;gap:10px}.account-pill{display:inline-flex;align-items:center;padding:3px 3px 3px 10px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:30px;box-shadow:0 1px 2px #0000000a}.btn-login{background:var(--primary-color);color:#fff!important;padding:8px 15px;border-radius:8px;text-decoration:none;display:inline-flex;align-items:center;gap:8px}.btn-login-icon{flex-shrink:0}.btn-login:hover{background:var(--primary-hover)}.btn-theme-toggle{width:40px;height:40px;flex-shrink:0;border-radius:50%;border:1px solid var(--border-color);background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,border-color .2s,transform .2s}.btn-theme-toggle:hover{background:color-mix(in srgb,var(--text-main) 6%,transparent);color:var(--text-main);border-color:color-mix(in srgb,var(--border-color) 70%,var(--text-muted));transform:scale(1.05)}.btn-theme-toggle:active{transform:scale(.96)}.btn-logout-circle{width:40px;height:40px;flex-shrink:0;border-radius:50%;border:1px solid var(--border-color);background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,border-color .2s,transform .2s}.btn-logout-circle:hover{background:#dc26260f;border-color:#dc262659;color:#dc2626;transform:scale(1.05)}.btn-logout-circle:active{transform:scale(.96)}.main-content{flex:1 0 auto;padding:0 20px;width:100%;max-width:100vw;min-height:0}.schedule-fab{position:fixed;bottom:40px;right:40px;width:56px;height:56px;border-radius:50%;border:none;cursor:pointer;background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-hover) 100%);color:#fff;display:flex;align-items:center;justify-content:center;z-index:1400;box-shadow:0 12px 28px color-mix(in srgb,var(--primary-color) 45%,transparent);transition:transform .25s cubic-bezier(.175,.885,.32,1.275),box-shadow .25s}.schedule-fab:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 16px 34px color-mix(in srgb,var(--primary-color) 52%,transparent)}.schedule-fab:active{transform:scale(.96)}@media(max-width:768px){.schedule-fab{bottom:calc(90px + env(safe-area-inset-bottom,0px));left:20px;right:auto;width:52px;height:52px}}.mobile-only{display:none!important}@media(max-width:768px){.desktop-only{display:none!important}.mobile-only{display:flex!important}.app-wrapper{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}.navbar{padding:10px 15px}.logo{font-size:1.2rem}.main-content{padding:0 10px}.nav-right{gap:8px;flex-shrink:0}}.bottom-nav{position:fixed;bottom:0;left:0;width:100%;background:var(--bg-card);border-top:1px solid var(--border-color);justify-content:space-around;padding:10px 0 calc(10px + env(safe-area-inset-bottom,0px)) 0;box-shadow:0 -2px 10px #0000000d;z-index:1000}.nav-item{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--text-muted);font-size:.7rem;font-weight:700;width:20%;gap:4px}.nav-item-icon{color:var(--text-muted)}.nav-item.router-link-active{color:var(--primary-color)}.nav-item.router-link-active .nav-item-icon{color:var(--primary-color);transform:scale(1.08);transition:transform .2s}.nav-item-with-badge{position:relative}.nav-item-icon-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center}.bottom-nav-hw-badge{position:absolute;top:-6px;right:-10px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--primary-color);color:#fff;font-size:.6rem;font-weight:900;line-height:16px;text-align:center;box-shadow:0 1px 3px color-mix(in srgb,#000 25%,transparent)}div.driver-popover.custom-tutorial-popover{border-radius:20px!important;border:3px solid #6c5ce7!important;padding:30px 25px!important;background-color:#fff!important;box-shadow:0 20px 50px #6c5ce740!important;width:100%!important;max-width:90vw!important}@media(min-width:768px){div.driver-popover.custom-tutorial-popover{min-width:550px!important;max-width:600px!important}}div.driver-popover.custom-tutorial-popover .driver-popover-title{font-size:1.6rem!important;font-weight:800!important;color:#2d3436!important;margin-bottom:15px!important}div.driver-popover.custom-tutorial-popover .driver-popover-description{color:#2d3436!important}div.driver-popover.custom-tutorial-popover .driver-popover-footer button{border-radius:8px!important;padding:10px 18px!important;font-weight:700!important;text-shadow:none!important;border:none!important;transition:all .2s ease!important;font-size:.95rem!important}div.driver-popover.custom-tutorial-popover .driver-popover-next-btn{background-color:#6c5ce7!important;color:#fff!important}div.driver-popover.custom-tutorial-popover .driver-popover-next-btn:hover{background-color:#5649c0!important;transform:translateY(-2px)!important}div.driver-popover.custom-tutorial-popover .driver-popover-prev-btn{background-color:#f1f2f6!important;color:#636e72!important}div.driver-popover.custom-tutorial-popover .driver-popover-prev-btn:hover{background-color:#dfe6e9!important}div.driver-popover.custom-tutorial-popover .driver-popover-close-btn{color:#b2bec3!important}div.driver-popover.custom-tutorial-popover .driver-popover-close-btn:hover{color:#e74c3c!important}
