@import "https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&display=swap";@import "https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&display=swap";@import "https://fonts.googleapis.com/css2?family=Nunito:wght@600;700;800;900&display=swap";@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&display=swap";@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&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-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--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;--tw-ease: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;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--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}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.break-all{word-break:break-all}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:left;box-sizing:border-box;flex-direction:column;width:100%;max-width:100%;min-height:100svh;margin:0;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.ts-lesson-editor input::placeholder,.ts-lesson-editor textarea::placeholder{color:#9ca3af;opacity:1;font-style:italic}.ts-lesson-editor input:focus::placeholder,.ts-lesson-editor textarea:focus::placeholder{color:#0000}.ts-lesson-editor :is(input,textarea):placeholder-shown:not(:focus)[data-ph-dir=rtl]{text-align:right!important;direction:rtl!important}.ts-lesson-editor :is(input,textarea):placeholder-shown:not(:focus)[data-ph-dir=ltr]{text-align:left!important;direction:ltr!important}@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-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@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}@property --tw-ease{syntax:"*";inherits:false}.fpc-overlay{z-index:9999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0f28bf;justify-content:center;align-items:center;padding:1rem;font-family:Nunito,Inter,system-ui,sans-serif;animation:.3s fpc-fade-in;display:flex;position:fixed;inset:0}@keyframes fpc-fade-in{0%{opacity:0}to{opacity:1}}.fpc-modal{background:#fff;border-radius:24px;width:100%;max-width:480px;padding:2rem 2rem 1.75rem;animation:.35s cubic-bezier(.34,1.56,.64,1) fpc-slide-up;position:relative;overflow:hidden;box-shadow:0 32px 80px #00000059,0 0 0 1px #ffffff14}.fpc-modal:before{content:"";background:linear-gradient(90deg,#6366f1,#a855f7,#ec4899);height:5px;position:absolute;top:0;left:0;right:0}@keyframes fpc-slide-up{0%{opacity:0;transform:translateY(40px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.fpc-header{align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.fpc-header-icon{flex-shrink:0;font-size:2.4rem;line-height:1;animation:2.5s ease-in-out infinite fpc-pulse}@keyframes fpc-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.fpc-title{color:#0f172a;margin:0 0 .3rem;font-size:1.35rem;font-weight:800;line-height:1.2}.fpc-subtitle{color:#64748b;margin:0;font-size:.875rem;font-weight:600;line-height:1.5}.fpc-lock-banner{color:#92400e;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1.5px solid #fbbf24;border-radius:10px;align-items:center;gap:.5rem;margin-bottom:1.25rem;padding:.6rem .9rem;font-size:.8rem;font-weight:700;display:flex}.fpc-error{color:#b91c1c;background:#fef2f2;border:1.5px solid #fecaca;border-radius:10px;align-items:center;gap:.45rem;margin-bottom:1.1rem;padding:.6rem .9rem;font-size:.85rem;font-weight:700;animation:.4s fpc-shake;display:flex}@keyframes fpc-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.fpc-form{flex-direction:column;gap:.6rem;margin-bottom:1.5rem;display:flex}.fpc-label{color:#374151;letter-spacing:.02em;flex-direction:column;gap:.2rem;font-size:.82rem;font-weight:800;display:flex}.fpc-label-hint{color:#94a3b8;font-size:.74rem;font-weight:600}.fpc-input-wrap{margin-bottom:.4rem;position:relative}.fpc-input{color:#0f172a;box-sizing:border-box;background:#f8fafc;border:2px solid #e2e8f0;border-radius:10px;outline:none;width:100%;padding:.7rem 2.8rem .7rem .9rem;font-family:inherit;font-size:.9rem;transition:border-color .2s,box-shadow .2s}.fpc-input:focus{background:#fff;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}.fpc-eye-btn{cursor:pointer;color:#94a3b8;background:0 0;border:none;align-items:center;padding:.2rem;transition:color .15s;display:flex;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.fpc-eye-btn:hover{color:#6366f1}.fpc-eye-btn svg{width:18px;height:18px}.fpc-strength{align-items:center;gap:.75rem;margin:-.2rem 0 .2rem;display:flex}.fpc-strength-bar{flex:1;gap:4px;display:flex}.fpc-strength-seg{border-radius:999px;flex:1;height:5px;transition:background .3s}.fpc-strength-label{white-space:nowrap;text-align:right;min-width:70px;font-size:.75rem;font-weight:800;transition:color .3s}.fpc-match{margin:-.2rem 0 0;font-size:.8rem;font-weight:700}.fpc-match--ok{color:#16a34a}.fpc-match--err{color:#dc2626}.fpc-actions{flex-direction:column;gap:.6rem;display:flex}.fpc-btn{cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family:inherit;font-size:.95rem;font-weight:800;transition:all .18s;display:flex}.fpc-btn--primary{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 4px 15px #6366f166}.fpc-btn--primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 25px #6366f180}.fpc-btn--primary:active:not(:disabled){transform:translateY(0)}.fpc-btn--primary:disabled{opacity:.65;cursor:not-allowed}.fpc-btn--ghost{color:#94a3b8;background:0 0;padding:.4rem;font-size:.82rem;font-weight:700}.fpc-btn--ghost:hover{color:#ef4444}.fpc-spinner{border:2.5px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.65s linear infinite fpc-spin;display:inline-block}@keyframes fpc-spin{to{transform:rotate(360deg)}}.fpc-modal--success{text-align:center;padding:3rem 2rem}.fpc-modal--success:before{background:linear-gradient(90deg,#22c55e,#10b981,#06b6d4)}.fpc-success-icon{margin-bottom:1rem;font-size:4rem;animation:.6s cubic-bezier(.34,1.56,.64,1) fpc-bounce}@keyframes fpc-bounce{0%{transform:scale(0)rotate(-15deg)}to{transform:scale(1)rotate(0)}}.fpc-success-title{color:#0f172a;margin:0 0 .5rem;font-size:1.5rem;font-weight:900}.fpc-success-sub{color:#64748b;margin:0 0 1.5rem;font-size:.9rem;font-weight:600}.fpc-success-dots{justify-content:center;gap:.4rem;display:flex}.fpc-success-dots span{background:#6366f1;border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite fpc-dot-pulse;display:inline-block}.fpc-success-dots span:nth-child(2){background:#a855f7;animation-delay:.2s}.fpc-success-dots span:nth-child(3){background:#ec4899;animation-delay:.4s}@keyframes fpc-dot-pulse{0%,80%,to{opacity:.4;transform:scale(.6)}40%{opacity:1;transform:scale(1.2)}}@media (width<=500px){.fpc-modal{border-radius:18px;padding:1.5rem 1.25rem 1.25rem}.fpc-title{font-size:1.15rem}}.navbar{box-sizing:border-box;color:#f8fafc;z-index:100;background-color:#1e293b;justify-content:space-between;align-items:center;width:100%;height:60px;padding:0 2rem;font-family:Inter,system-ui,sans-serif;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #0000004d}.navbar-brand{color:#f8fafc;letter-spacing:.5px;flex-shrink:0;font-size:1.25rem;font-weight:700;text-decoration:none}.navbar-links{gap:1.5rem;margin:0;padding:0;list-style:none;display:flex}.navbar-links a{color:#94a3b8;font-size:.95rem;text-decoration:none;transition:color .2s}.navbar-links a:hover,.navbar-links a.active{color:#f8fafc}.navbar-user{flex-shrink:0;align-items:center;gap:10px;display:flex}.navbar-user-name{color:#cbd5e1;text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:.88rem;font-weight:500;overflow:hidden}.navbar-logout-btn{color:#f87171;cursor:pointer;background:#ef44441f;border:1px solid #ef444440;border-radius:8px;justify-content:center;align-items:center;padding:6px 8px;transition:background .2s,color .2s,transform .15s;display:flex}.navbar-logout-btn svg{width:16px;height:16px}.navbar-logout-btn:hover{color:#fca5a5;background:#ef444438;transform:translate(2px)}.dash{max-width:1100px;margin:0 auto;padding:0 1.5rem 5rem;font-family:Nunito,Inter,system-ui,sans-serif;overflow-x:hidden}.dash-section-title{color:#1e293b;letter-spacing:-.01em;margin:0 0 1.1rem;font-size:1.15rem;font-weight:800}.dash-hero{background:linear-gradient(135deg,#667eea 0%,#764ba2 40%,#f093fb 100%);border-radius:24px;justify-content:space-between;align-items:center;gap:1.5rem;margin:2rem 0 2.5rem;padding:3rem 2.5rem;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 60px #667eea59}.dash-hero__bubbles{pointer-events:none;position:absolute;inset:0;overflow:hidden}.bubble{opacity:.18;animation:6s ease-in-out infinite float-bubble;animation-delay:calc(var(--i) * .75s);left:calc(var(--i) * 12% + 2%);top:calc(10% + var(--i) * 8%);font-size:1.4rem;position:absolute}@keyframes float-bubble{0%,to{opacity:.18;transform:translateY(0)rotate(0)}50%{opacity:.28;transform:translateY(-18px)rotate(10deg)}}.dash-hero__content{z-index:1;flex:1;position:relative}.dash-hero__emoji{transform-origin:100% 100%;margin-bottom:.4rem;font-size:2.2rem;animation:2.2s ease-in-out infinite wave;display:block}@keyframes wave{0%,to{transform:rotate(0)}20%{transform:rotate(-15deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-5deg)}80%{transform:rotate(5deg)}}.dash-hero__title{color:#fff;text-shadow:0 2px 12px #00000026;letter-spacing:-.02em;margin:0 0 .5rem;font-size:clamp(1.6rem,3.5vw,2.4rem);font-weight:900;line-height:1.15}.dash-hero__sub{color:#ffffffd9;margin:0 0 1.5rem;font-size:1rem;font-weight:600}.dash-hero__ctas{flex-wrap:wrap;gap:.75rem;display:flex}.dash-cta{cursor:pointer;border:none;border-radius:50px;align-items:center;gap:.45rem;padding:.65rem 1.35rem;font-family:inherit;font-size:.92rem;font-weight:800;transition:transform .15s,box-shadow .15s;display:inline-flex}.dash-cta:hover{transform:translateY(-2px)}.dash-cta:active{transform:translateY(0)}.dash-cta--primary{color:#6366f1;background:#fff;box-shadow:0 4px 20px #0000002e}.dash-cta--primary:hover{box-shadow:0 8px 30px #00000038}.dash-cta--secondary{color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff2e;border:2px solid #ffffff73}.dash-cta--secondary:hover{background:#ffffff47}.dash-hero__mascot{z-index:1;filter:drop-shadow(0 8px 20px #0003);-webkit-user-select:none;user-select:none;flex-shrink:0;font-size:clamp(4rem,8vw,7rem);animation:3s ease-in-out infinite mascot-bounce;position:relative}@keyframes mascot-bounce{0%,to{transform:translateY(0)rotate(-3deg)}50%{transform:translateY(-10px)rotate(3deg)}}.dash-stats-section{margin-bottom:2.5rem}.dash-stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;display:grid}.dash-stat{text-align:center;cursor:default;background:#fff;border:2px solid #f1f5f9;border-radius:20px;flex-direction:column;align-items:center;gap:.3rem;padding:1.5rem 1rem;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 8px #0000000d}.dash-stat:before{content:"";background:var(--stat-color,#6366f1);border-radius:4px 4px 0 0;height:4px;position:absolute;top:0;left:0;right:0}.dash-stat:hover{transform:translateY(-4px);box-shadow:0 12px 30px #0000001a}.dash-stat__icon{font-size:2rem;line-height:1}.dash-stat__value{color:var(--stat-color,#1e293b);font-size:2.2rem;font-weight:900;line-height:1}.dash-stat__label{text-transform:uppercase;letter-spacing:.07em;color:#94a3b8;font-size:.78rem;font-weight:700}.dash-stat--tip .dash-stat__value{font-size:2.2rem}.dash-actions-section{margin-bottom:2.5rem}.dash-actions-grid{flex-direction:column;gap:.85rem;display:flex}.dash-action-card{border:2px solid #0000;border-radius:16px;align-items:center;gap:1rem;padding:1.1rem 1.4rem;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;box-shadow:0 2px 8px #0000000f}.dash-action-card:hover{border-color:var(--action-color);transform:translate(6px);box-shadow:0 8px 24px #0000001a}.dash-action-card__icon{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffb3;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:2rem;display:flex;box-shadow:0 2px 8px #0000000f}.dash-action-card__body{flex-direction:column;flex:1;gap:.18rem;display:flex}.dash-action-card__label{color:#0f172a;font-size:1rem;font-weight:800;line-height:1}.dash-action-card__desc{color:#64748b;font-size:.82rem;font-weight:600}.dash-action-card__arrow{font-size:1.8rem;font-weight:900;line-height:1;transition:transform .18s}.dash-action-card:hover .dash-action-card__arrow{transform:translate(4px)}.dash-activity-section{grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:3rem;display:grid}.dash-feature-list{background:#fff;border:2px solid #f1f5f9;border-radius:20px;flex-direction:column;gap:.7rem;margin:0;padding:1.5rem;list-style:none;display:flex;box-shadow:0 2px 8px #0000000d}.dash-feature-list li{color:#334155;align-items:flex-start;gap:.6rem;font-size:.9rem;font-weight:600;line-height:1.45;display:flex}.dash-feature-list li span{flex-shrink:0;margin-top:.05rem;font-size:1.15rem}.dash-tip-card{background:linear-gradient(145deg,#fef3c7,#fde68a);border:2px solid #fbbf24;border-radius:20px;flex-direction:column;gap:1rem;min-height:180px;padding:1.5rem;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 12px #fbbf2433}.dash-tip-card:before{content:"💡";opacity:.08;pointer-events:none;font-size:6rem;position:absolute;bottom:-10px;right:-10px}.dash-tip-card__header{text-transform:uppercase;letter-spacing:.08em;color:#92400e;align-items:center;gap:.4rem;font-size:.82rem;font-weight:800;display:flex}.dash-tip-card__body{flex:1;position:relative}.dash-tip-text{color:#78350f;opacity:0;pointer-events:none;align-items:flex-start;gap:.4rem;margin:0;font-size:.92rem;font-weight:700;line-height:1.55;transition:opacity .5s,transform .5s;display:flex;position:absolute;inset:0;transform:translateY(8px)}.dash-tip-text.active{opacity:1;pointer-events:auto;transform:translateY(0)}.dash-tip-dots{align-items:center;gap:.4rem;display:flex}.dash-tip-dot{cursor:pointer;background:#78350f33;border:none;border-radius:50%;width:7px;height:7px;padding:0;transition:background .25s,transform .2s}.dash-tip-dot.active{background:#92400e;transform:scale(1.4)}.dash-footer-band{border-top:2px dashed #e2e8f0;flex-wrap:wrap;justify-content:center;gap:1.2rem;padding:1.5rem 0;display:flex}.dash-footer-emoji{animation:3s ease-in-out infinite footer-dance;animation-delay:calc(var(--i,0) * .3s);-webkit-user-select:none;user-select:none;font-size:1.6rem;display:inline-block}.dash-footer-band span:first-child{animation-delay:0s}.dash-footer-band span:nth-child(2){animation-delay:.3s}.dash-footer-band span:nth-child(3){animation-delay:.6s}.dash-footer-band span:nth-child(4){animation-delay:.9s}.dash-footer-band span:nth-child(5){animation-delay:1.2s}.dash-footer-band span:nth-child(6){animation-delay:1.5s}.dash-footer-band span:nth-child(7){animation-delay:1.8s}.dash-footer-band span:nth-child(8){animation-delay:2.1s}.dash-footer-band span:nth-child(9){animation-delay:2.4s}.dash-footer-band span:nth-child(10){animation-delay:2.7s}@keyframes footer-dance{0%,to{transform:translateY(0)scale(1)}40%{transform:translateY(-8px)scale(1.15)}70%{transform:translateY(3px)scale(.95)}}@media (width<=768px){.dash-hero{text-align:center;flex-direction:column;padding:2rem 1.5rem}.dash-hero__ctas{justify-content:center}.dash-hero__mascot{font-size:4rem}.dash-activity-section{grid-template-columns:1fr}.dash-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.dash{padding:0 1rem 4rem}.dash-hero{border-radius:18px;padding:1.75rem 1.25rem}.dash-stats-grid{grid-template-columns:1fr 1fr}.dash-footer-band{gap:.7rem}.dash-footer-emoji{font-size:1.2rem}}.btn-primary{color:#fff;background:#6366f1;border-radius:50px;padding:.65rem 1.5rem;font-family:inherit;font-weight:800;text-decoration:none;transition:background .2s,transform .15s;display:inline-block}.btn-primary:hover{background:#4f46e5;transform:translateY(-1px)}.qz-page{box-sizing:border-box;width:100%;max-width:1280px;margin:0 auto;padding:2rem 2rem 4rem;font-family:Nunito,Segoe UI,system-ui,sans-serif}.qz-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:1.4rem;display:flex}.qz-topbar-left{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.qz-title{color:#1e293b;letter-spacing:-.5px;align-items:center;gap:10px;margin:0;font-size:2rem;font-weight:900;display:flex}.qz-title-icon{font-size:1.9rem}.qz-pill{color:#64748b;background:#f1f5f9;border:1.5px solid #e2e8f0;border-radius:999px;padding:.3rem .75rem;font-size:.82rem;font-weight:800}.qz-back-btn{color:#475569;cursor:pointer;white-space:nowrap;background:#f8fafc;border:2px solid #e2e8f0;border-bottom:3px solid #cbd5e1;border-radius:12px;align-items:center;gap:6px;padding:.55rem 1.1rem;font-family:inherit;font-size:.88rem;font-weight:800;transition:background .12s,border-color .12s,transform 80ms;display:inline-flex}.qz-back-btn:hover{background:#f1f5f9;border-color:#94a3b8}.qz-back-btn:active{border-bottom-width:1px;transform:translateY(2px)}.qz-add-btn{color:#fff;cursor:pointer;letter-spacing:.2px;white-space:nowrap;background:#58cc02;border:none;border-bottom:4px solid #3ea302;border-radius:14px;padding:.7rem 1.5rem;font-family:inherit;font-size:.95rem;font-weight:800;transition:transform 80ms,border-bottom-width 80ms;box-shadow:0 2px #3ea302}.qz-add-btn:hover{opacity:.92}.qz-add-btn:active{box-shadow:none;border-bottom-width:1px;transform:translateY(3px)}.qz-breadcrumb{background:#f8fafc;border:2px solid #e2e8f0;border-radius:14px;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:1.8rem;padding:.6rem 1rem;display:flex}.qz-crumb-wrap{align-items:center;display:flex}.qz-crumb-arrow{color:#94a3b8;-webkit-user-select:none;user-select:none;padding:0 4px;font-size:1.2rem}.qz-crumb{color:#3b82f6;cursor:pointer;word-break:break-word;direction:rtl;unicode-bidi:embed;background:0 0;border:none;border-radius:8px;padding:.28rem .6rem;font-family:inherit;font-size:.9rem;font-weight:800;transition:background .15s}.qz-crumb:hover{background:#eff6ff}.qz-crumb--active{color:#1e293b;cursor:default;pointer-events:none}.qz-center{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:4rem 1rem;display:flex}.qz-center-text{color:#64748b;margin:0;font-size:1.05rem;font-weight:700}.qz-loader{gap:8px;display:flex}.qz-loader div{background:#58cc02;border-radius:50%;width:14px;height:14px;animation:.7s ease-in-out infinite alternate qzBounce}.qz-loader div:nth-child(2){background:#1cb0f6;animation-delay:.15s}.qz-loader div:nth-child(3){background:#ff4b4b;animation-delay:.3s}@keyframes qzBounce{0%{transform:translateY(0)}to{transform:translateY(-14px)}}.qz-retry-btn{color:#2563eb;cursor:pointer;background:#eff6ff;border:2px solid #bfdbfe;border-radius:12px;padding:.6rem 1.4rem;font-family:inherit;font-size:.9rem;font-weight:800;transition:background .15s}.qz-retry-btn:hover{background:#dbeafe}.qz-node-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(140px,auto);align-items:stretch;gap:1.4rem;display:grid}.qz-node-card{background-color:var(--card-bg);border:2.5px solid color-mix(in srgb, var(--card-accent) 25%, transparent);cursor:pointer;text-align:right;box-sizing:border-box;direction:rtl;border-radius:22px;align-items:flex-start;gap:16px;width:100%;height:100%;min-height:140px;padding:1.5rem 1.4rem;font-family:inherit;transition:background-color .15s,border-color .15s,box-shadow .15s,transform .1s;display:flex;box-shadow:0 2px 8px #00000014}.qz-node-card:hover{background-color:color-mix(in srgb, var(--card-accent) 8%, var(--card-bg));border-color:color-mix(in srgb, var(--card-accent) 50%, transparent);box-shadow:0 12px 40px color-mix(in srgb, var(--card-accent) 55%, transparent);transform:translateY(-2px)}.qz-node-card--pressed,.qz-node-card:active{opacity:.85;transform:translateY(0)}.qz-node-card--draft{background-image:repeating-linear-gradient(135deg,#0000 0 10px,#8b5cf60f 10px 20px);border-style:dashed}.qz-card-icon{flex-shrink:0;order:2;margin-top:2px;font-size:2.8rem;line-height:1}.qz-card-body{flex-direction:column;flex:1;order:1;gap:8px;min-width:0;display:flex}.qz-card-name{color:var(--card-text);word-break:break-word;overflow-wrap:break-word;letter-spacing:-.2px;direction:rtl;unicode-bidi:embed;font-size:1.25rem;font-weight:900;line-height:1.35;display:block}.qz-card-badges{flex-wrap:wrap;gap:5px;display:flex}.qz-card-badge{background:color-mix(in srgb, var(--card-accent) 14%, white);color:var(--card-text);border:1.5px solid color-mix(in srgb, var(--card-accent) 30%, transparent);white-space:nowrap;border-radius:999px;padding:.22rem .65rem;font-size:.82rem;font-weight:800}.qz-card-chevron{color:var(--card-accent);flex-shrink:0;order:0;align-self:center;font-size:2rem;font-weight:900;transition:transform .15s}.qz-node-card:hover .qz-card-chevron{transform:translate(-4px)}.qz-leaf-header{color:#64748b;text-transform:uppercase;letter-spacing:.6px;margin:0 0 1rem;font-size:.9rem;font-weight:800}.qz-quiz-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(160px,auto);align-items:stretch;gap:1.2rem;display:grid}.qz-quiz-card{border:2.5px solid color-mix(in srgb, var(--card-accent) 25%, #e2e8f0);border-bottom:7px solid var(--card-border);width:100%;height:100%;min-height:160px;box-shadow:0 5px 0 color-mix(in srgb, var(--card-border) 50%, transparent);box-sizing:border-box;background:#fff;border-radius:20px;flex-direction:column;gap:12px;padding:1.4rem 1.3rem 1.2rem;transition:transform .1s,box-shadow .1s;display:flex}.qz-quiz-card:hover{box-shadow:0 8px 0 color-mix(in srgb, var(--card-border) 50%, transparent);transform:translateY(-2px)}.qz-quiz-card-top{flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.qz-quiz-num{color:#94a3b8;background:#f1f5f9;border-radius:6px;padding:.18rem .5rem;font-size:.78rem;font-weight:900}.qz-quiz-card-title{color:#1e293b;word-break:break-word;overflow-wrap:break-word;flex:1;margin:0;font-size:1rem;font-weight:800;line-height:1.4}.qz-quiz-card-id{color:#94a3b8;word-break:break-all;overflow-wrap:break-word;opacity:.8;margin:0;font-family:Courier New,monospace;font-size:.72rem;font-weight:600;line-height:1.3}.qz-quiz-card-actions{flex-shrink:0;gap:6px;margin-top:auto;display:flex}.qz-quiz-btn{cursor:pointer;border:2px solid #0000;border-radius:10px;flex:1;padding:.6rem .5rem;font-family:inherit;font-size:.9rem;font-weight:800;transition:transform 80ms,border-bottom-width 80ms}.qz-quiz-btn:active{transform:translateY(2px);border-bottom-width:0!important}.qz-quiz-btn--edit{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe #bfdbfe #93c5fd;border-bottom-style:solid;border-bottom-width:3px}.qz-quiz-btn--edit:hover{background:#dbeafe}.qz-quiz-btn--preview{color:#7c3aed;background:#f5f3ff;border-color:#ddd6fe #ddd6fe #c4b5fd;border-bottom-style:solid;border-bottom-width:3px}.qz-quiz-btn--preview:hover{background:#ede9fe}.qz-status{text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;border-radius:999px;padding:.18rem .55rem;font-size:.68rem;font-weight:900}.qz-status--active{color:#15803d;background:#dcfce7;border:1.5px solid #86efac}.qz-status--pending{color:#a16207;background:#fef9c3;border:1.5px solid #fde047}.qz-status--deleted{color:#b91c1c;background:#fee2e2;border:1.5px solid #fca5a5}.qz-status--rejected{color:#be123c;background:#ffe4e6;border:1.5px solid #fda4af}.qz-status--draft{color:#6d28d9;background:#ede9fe;border:1.5px solid #ddd6fe}.qz-quiz-card--draft{background:repeating-linear-gradient(135deg,#fff 0 10px,#faf5ff 10px 20px);border-style:dashed}.qz-draft-locked-note{text-align:center;color:#a1a1aa;flex:1;padding:.6rem .5rem;font-size:.85rem;font-weight:700}@media (width<=1024px){.qz-node-grid,.qz-quiz-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.qz-page{padding:1.2rem 1rem 3rem}.qz-node-grid,.qz-quiz-grid{grid-template-columns:repeat(2,1fr);gap:1rem}.qz-title{font-size:1.55rem}.qz-card-name{font-size:1.1rem}}@media (width<=480px){.qz-node-grid{grid-template-columns:1fr}.qz-quiz-grid{grid-template-columns:1fr 1fr}.qz-card-name{font-size:1rem}}.tm-page{max-width:1000px;margin:0 auto;padding:2rem 1.5rem 4rem;font-family:Inter,system-ui,sans-serif}.tm-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem;display:flex}.tm-title{color:#0f172a;align-items:center;gap:.6rem;margin:0 0 .25rem;font-size:1.75rem;font-weight:700;display:flex}.tm-title-icon{color:#6366f1;flex-shrink:0;width:28px;height:28px}.tm-subtitle{color:#64748b;margin:0;font-size:.9rem}.tm-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1.75rem;display:grid}.tm-stat{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:.2rem;padding:1rem 1.25rem;display:flex;box-shadow:0 1px 3px #0000000d}.tm-stat__value{color:#6366f1;font-size:1.75rem;font-weight:700;line-height:1}.tm-stat__label{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;font-size:.78rem}.tm-filters{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.tm-search-wrap{flex:1;min-width:200px;position:relative}.tm-search-icon{color:#94a3b8;pointer-events:none;width:16px;height:16px;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.tm-search{box-sizing:border-box;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;width:100%;padding:.55rem .9rem .55rem 2.4rem;font-size:.9rem;transition:border-color .2s}.tm-search:focus{border-color:#6366f1}.tm-role-filter{flex-wrap:wrap;gap:.4rem;display:flex}.tm-filter-pill{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:.35rem .85rem;font-size:.8rem;transition:all .15s}.tm-filter-pill:hover{color:#6366f1;border-color:#6366f1}.tm-filter-pill.active{color:#fff;background:#6366f1;border-color:#6366f1}.tm-table-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;box-shadow:0 1px 4px #0000000f}.tm-table{border-collapse:collapse;width:100%}.tm-table thead tr{background:#f8fafc;border-bottom:1px solid #e2e8f0}.tm-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:#64748b;padding:.85rem 1.25rem;font-size:.75rem;font-weight:600}.tm-th--actions{text-align:right}.tm-row{border-bottom:1px solid #f1f5f9;transition:background .15s}.tm-row:last-child{border-bottom:none}.tm-row:hover{background:#f8fafc}.tm-table td{color:#1e293b;vertical-align:middle;padding:.9rem 1.25rem;font-size:.88rem}.tm-cell-name{align-items:center;gap:.75rem;font-weight:500;display:flex}.tm-avatar{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:.85rem;font-weight:600;display:flex}.tm-cell-email{color:#64748b}.tm-cell-actions{text-align:right;justify-content:flex-end;gap:.4rem;display:flex}.tm-badge{letter-spacing:.03em;border-radius:999px;padding:.25rem .7rem;font-size:.73rem;font-weight:600;display:inline-block}.tm-badge--teacher{color:#0369a1;background:#e0f2fe}.tm-badge--superTeacher{color:#6d28d9;background:#ede9fe}.tm-badge--admin{color:#be185d;background:#fce7f3}.tm-icon-btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:background .15s,transform .1s;display:flex}.tm-icon-btn:hover{transform:scale(1.1)}.tm-icon-btn--edit{color:#6d28d9;background:#ede9fe}.tm-icon-btn--edit:hover{background:#ddd6fe}.tm-icon-btn--delete{color:#b91c1c;background:#fee2e2}.tm-icon-btn--delete:hover{background:#fecaca}.tm-view-only{color:#94a3b8;white-space:nowrap;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;align-items:center;gap:.25rem;padding:.2rem .5rem;font-size:.72rem;font-weight:700;display:flex}.tm-btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.4rem;padding:.55rem 1.2rem;font-size:.88rem;font-weight:600;transition:all .15s;display:inline-flex}.tm-btn--primary{color:#fff;background:#6366f1}.tm-btn--primary:hover{background:#4f46e5}.tm-btn--secondary{color:#475569;background:#f1f5f9}.tm-btn--secondary:hover{background:#e2e8f0}.tm-btn--danger{color:#fff;background:#ef4444}.tm-btn--danger:hover{background:#dc2626}.tm-btn:disabled{opacity:.55;cursor:not-allowed}.tm-state{color:#94a3b8;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem 1rem;font-size:.9rem;display:flex}.tm-state--error{color:#ef4444}.tm-spinner{border:3px solid #e2e8f0;border-top-color:#6366f1;border-radius:50%;width:36px;height:36px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.tm-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a73;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.tm-modal{background:#fff;border-radius:16px;width:100%;max-width:460px;padding:1.75rem;animation:.2s slideUp;box-shadow:0 20px 60px #0003}.tm-modal--sm{max-width:380px}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.tm-modal-header{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.tm-modal-header h2{color:#0f172a;margin:0;font-size:1.15rem;font-weight:700}.tm-modal-close{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.2rem .4rem;font-size:1.1rem;transition:background .15s}.tm-modal-close:hover{color:#475569;background:#f1f5f9}.tm-form-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:1rem;padding:.6rem .9rem;font-size:.85rem}.tm-form{flex-direction:column;gap:1rem;display:flex}.tm-label{color:#374151;flex-direction:column;gap:.35rem;font-size:.82rem;font-weight:600;display:flex}.tm-input{color:#0f172a;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;padding:.6rem .85rem;font-size:.9rem;transition:border-color .2s}.tm-input:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.tm-select{appearance:auto;cursor:pointer}.tm-modal-footer{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.tm-delete-msg{color:#374151;margin:0 0 .5rem;font-size:.9rem;line-height:1.55}@media (width<=640px){.tm-table th:nth-child(2),.tm-table td:nth-child(2){display:none}.tm-filters{flex-direction:column;align-items:stretch}}:root{--auth-primary:#6c63ff;--auth-primary-dark:#4f46e5;--auth-bg:#0d0d1a;--auth-card-bg:#ffffff0a;--auth-card-border:#ffffff14;--auth-text:#e8e8f0;--auth-text-muted:#8b8ba8;--auth-input-bg:#ffffff0f;--auth-input-border:#ffffff1a;--auth-input-focus:#6c63ff80;--auth-error-bg:#ef44441f;--auth-error-border:#ef444459;--auth-error-text:#f87171;--auth-radius:16px;--auth-font:"Inter", system-ui, sans-serif}.auth-page{background:var(--auth-bg);min-height:100vh;font-family:var(--auth-font);justify-content:center;align-items:center;padding:24px;display:flex;position:relative;overflow:hidden}.auth-bg{pointer-events:none;z-index:0;position:fixed;inset:0}.auth-orb{filter:blur(90px);opacity:.35;border-radius:50%;animation:12s ease-in-out infinite alternate orbFloat;position:absolute}.auth-orb-1{background:radial-gradient(circle,#6c63ff,#0000 70%);width:520px;height:520px;animation-delay:0s;top:-160px;left:-160px}.auth-orb-2{background:radial-gradient(circle,#4f46e5,#0000 70%);width:400px;height:400px;animation-delay:3s;bottom:-120px;right:-80px}.auth-orb-3{background:radial-gradient(circle,#a78bfa,#0000 70%);width:280px;height:280px;animation-delay:6s;top:50%;left:55%}@keyframes orbFloat{0%{transform:translateY(0)scale(1)}to{transform:translateY(40px)scale(1.08)}}.auth-card{z-index:1;background:var(--auth-card-bg);border:1px solid var(--auth-card-border);border-radius:var(--auth-radius);-webkit-backdrop-filter:blur(24px);width:100%;max-width:440px;padding:48px 40px 40px;animation:.5s cubic-bezier(.16,1,.3,1) both cardIn;position:relative;box-shadow:0 8px 32px #0006,inset 0 0 0 1px #ffffff0a}@keyframes cardIn{0%{opacity:0;transform:translateY(24px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.auth-brand{text-align:center;margin-bottom:36px}.auth-logo{width:56px;height:56px;margin:0 auto 16px;animation:3s ease-in-out infinite alternate logoGlow}.auth-logo svg{border-radius:14px;width:100%;height:100%;box-shadow:0 0 24px #6c63ff73}@keyframes logoGlow{0%{box-shadow:0 0 24px #6c63ff66}to{box-shadow:0 0 42px #6c63ffbf}}.auth-title{color:var(--auth-text);letter-spacing:-.02em;margin:0 0 6px;font-size:1.6rem;font-weight:700}.auth-subtitle{color:var(--auth-text-muted);margin:0;font-size:.9rem}.auth-form{flex-direction:column;gap:20px;display:flex}.auth-error{background:var(--auth-error-bg);border:1px solid var(--auth-error-border);color:var(--auth-error-text);border-radius:10px;align-items:center;gap:10px;padding:12px 16px;font-size:.875rem;animation:.35s shake;display:flex}.auth-error svg{flex-shrink:0;width:18px;height:18px}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}60%{transform:translate(6px)}}.auth-field{flex-direction:column;gap:8px;display:flex}.auth-label{color:var(--auth-text-muted);letter-spacing:.03em;text-transform:uppercase;font-size:.82rem;font-weight:500}.auth-input-wrap{align-items:center;display:flex;position:relative}.auth-input-icon{width:18px;height:18px;color:var(--auth-text-muted);pointer-events:none;transition:color .2s;position:absolute;left:14px}.auth-input{background:var(--auth-input-bg);border:1px solid var(--auth-input-border);width:100%;color:var(--auth-text);font-size:.95rem;font-family:var(--auth-font);box-sizing:border-box;border-radius:10px;outline:none;padding:12px 14px 12px 42px;transition:border-color .2s,box-shadow .2s,background .2s}.auth-input::placeholder{color:#8b8ba880}.auth-input:focus{border-color:var(--auth-primary);box-shadow:0 0 0 3px var(--auth-input-focus);background:#ffffff14}.auth-input:focus+.auth-input-icon,.auth-input-wrap:focus-within .auth-input-icon{color:var(--auth-primary)}.auth-input-pw{padding-right:44px}.auth-toggle-pw{cursor:pointer;color:var(--auth-text-muted);background:0 0;border:none;align-items:center;padding:4px;transition:color .2s;display:flex;position:absolute;right:12px}.auth-toggle-pw:hover{color:var(--auth-text)}.auth-toggle-pw svg{width:18px;height:18px}.auth-btn{background:linear-gradient(135deg, var(--auth-primary), var(--auth-primary-dark));color:#fff;width:100%;font-size:.95rem;font-weight:600;font-family:var(--auth-font);cursor:pointer;letter-spacing:.01em;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-top:4px;padding:13px;transition:opacity .2s,transform .15s,box-shadow .2s;display:flex;box-shadow:0 4px 20px #6c63ff59}.auth-btn:hover:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 6px 28px #6c63ff80}.auth-btn:active:not(:disabled){transform:translateY(0)}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}.auth-switch{text-align:center;color:var(--auth-text-muted);margin-top:24px;font-size:.875rem}.auth-link{color:var(--auth-primary);font-weight:600;text-decoration:none;transition:color .2s}.auth-link:hover{color:#a78bfa}.auth-select{background:var(--auth-input-bg);border:1px solid var(--auth-input-border);width:100%;color:var(--auth-text);font-size:.95rem;font-family:var(--auth-font);cursor:pointer;appearance:none;box-sizing:border-box;border-radius:10px;outline:none;padding:12px 14px 12px 42px;transition:border-color .2s,box-shadow .2s}.auth-select:focus{border-color:var(--auth-primary);box-shadow:0 0 0 3px var(--auth-input-focus)}.auth-select option{color:var(--auth-text);background:#1a1a2e}.role-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;align-items:center;padding:3px 10px;font-size:.72rem;font-weight:600;display:inline-flex}.role-badge.teacher{color:#a78bfa;background:#6c63ff2e}.role-badge.superTeacher{color:#34d399;background:#10b98126}.role-badge.admin{color:#fbbf24;background:#f59e0b26}.auth-loading{background:var(--auth-bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-loading-spinner{border:3px solid #6c63ff40;border-top-color:var(--auth-primary);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}.unauth-page{background:var(--auth-bg);min-height:100vh;color:var(--auth-text);font-family:var(--auth-font);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex}.unauth-icon{font-size:4rem;animation:1.6s ease-in-out infinite bounce}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.unauth-title{margin:0;font-size:2rem;font-weight:700}.unauth-desc{color:var(--auth-text-muted);max-width:360px;margin:0;line-height:1.6}.unauth-btn{background:linear-gradient(135deg, var(--auth-primary), var(--auth-primary-dark));color:#fff;font-size:.95rem;font-weight:600;font-family:var(--auth-font);cursor:pointer;border:none;border-radius:10px;margin-top:8px;padding:12px 28px;text-decoration:none;transition:opacity .2s,transform .15s;box-shadow:0 4px 20px #6c63ff59}.unauth-btn:hover{opacity:.9;transform:translateY(-1px)}.auth-switch{text-align:center;color:var(--auth-text-muted);margin:1.25rem 0 0;font-size:.82rem}.auth-switch--info{color:var(--auth-text-muted);letter-spacing:.01em;background:#ffffff0a;border:1px solid #ffffff14;border-radius:10px;justify-content:center;align-items:center;gap:.35rem;padding:.6rem 1rem;font-size:.8rem;display:flex}.ov{--ink:#0f172a;--muted:#64748b;--line:#e9edf3;--card:#fff;max-width:1200px;color:var(--ink);margin:0 auto;padding:1.25rem 1.5rem 5rem;font-family:Nunito,Inter,system-ui,sans-serif}.ov *{box-sizing:border-box}@keyframes ov-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes ov-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes ov-grow-y{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes ov-spin{to{transform:rotate(360deg)}}.ov-hero{color:#fff;background:linear-gradient(120deg,#4f46e5 0%,#7c3aed 45%,#db2777 100%);border-radius:22px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;padding:1.9rem 2rem;animation:.5s both ov-rise;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 45px -18px #4f46e599}.ov-hero__glow{pointer-events:none;background:radial-gradient(circle,#ffffff59,#0000 65%);width:380px;height:380px;position:absolute;inset:-40% -10% auto auto}.ov-hero__eyebrow{letter-spacing:.14em;text-transform:uppercase;opacity:.9;align-items:center;gap:7px;font-size:.7rem;font-weight:800;display:inline-flex}.ov-hero__eyebrow:before{content:"";background:#4ade80;border-radius:50%;width:7px;height:7px;animation:2s infinite ov-pulse;box-shadow:0 0 #4ade80b3}@keyframes ov-pulse{70%{box-shadow:0 0 0 8px #4ade8000}to{box-shadow:0 0 #4ade8000}}.ov-hero h1{letter-spacing:-.02em;margin:.35rem 0 0;font-size:1.85rem;font-weight:900}.ov-hero p{opacity:.92;max-width:46ch;margin:.35rem 0 0;font-weight:600}.ov-hero__pills{flex-wrap:wrap;gap:.5rem;display:flex;position:relative}.ov-hero__pills span{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff29;border:1px solid #ffffff40;border-radius:999px;padding:6px 12px;font-size:.78rem;font-weight:700}.ov-hero__pills b{font-weight:900}.ov-toolbar{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);background:#ffffffd9;border-radius:14px;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;margin-bottom:1.6rem;padding:.55rem .8rem;display:flex;position:sticky;top:8px;box-shadow:0 8px 24px -14px #0f172a40}.ov-presets{background:#f1f5f9;border-radius:10px;gap:3px;padding:3px;display:flex}.ov-presets button{font:inherit;color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 14px;font-size:.8rem;font-weight:800;transition:all .15s}.ov-presets button:hover{color:#4338ca}.ov-presets button.is-active{color:#fff;background:#4f46e5;box-shadow:0 4px 12px -4px #4f46e599}.ov-dates{gap:.5rem;display:flex}.ov-dates label{color:var(--muted);align-items:center;gap:5px;font-size:.74rem;font-weight:800;display:flex}.ov-dates input[type=date]{font:inherit;border:1.5px solid var(--line);color:var(--ink);background:#fff;border-radius:9px;padding:6px 9px;font-weight:700}.ov-toolbar__meta{color:#94a3b8;margin-left:auto;font-size:.74rem;font-weight:700}.ov-state{text-align:center;color:var(--muted);padding:4rem 1rem;font-weight:700}.ov-state--err{color:#b91c1c}.ov-state button{color:#fff;font:inherit;cursor:pointer;background:#6366f1;border:0;border-radius:10px;margin-top:.75rem;padding:8px 18px;font-weight:800}.ov-spinner{border:5px solid #e2e8f0;border-top-color:#6366f1;border-radius:50%;width:44px;height:44px;margin:0 auto 1rem;animation:.8s linear infinite ov-spin}.ov-err-text{color:#b91c1c}.ov-kpis{grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:.85rem;margin-bottom:2rem;display:grid}.ov-kpi{background:var(--card);border-radius:16px;align-items:center;gap:.75rem;padding:1rem 1.05rem;transition:transform .18s,box-shadow .18s;animation:.5s both ov-rise;display:flex;position:relative;overflow:hidden;box-shadow:0 6px 20px -12px #0f172a33}.ov-kpi:before{content:"";background:var(--tone);width:5px;position:absolute;inset:0 auto 0 0}.ov-kpi:hover{transform:translateY(-3px);box-shadow:0 16px 34px -16px #0f172a4d}.ov-kpi__icon{background:color-mix(in srgb, var(--tone) 14%, #fff);border-radius:12px;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:1.25rem;display:grid}.ov-kpi__body{flex-direction:column;min-width:0;display:flex}.ov-kpi__value{letter-spacing:-.02em;font-size:1.55rem;font-weight:900;line-height:1.1}.ov-kpi__label{color:#475569;font-size:.8rem;font-weight:800}.ov-kpi__sub{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;font-size:.7rem;font-weight:700;overflow:hidden}.ov-section{margin-bottom:2.25rem;animation:.5s both ov-rise}.ov-section__head{align-items:center;gap:.7rem;margin-bottom:1rem;display:flex}.ov-section__icon{color:#fff;background:var(--accent);width:34px;height:34px;box-shadow:0 8px 18px -8px var(--accent);border-radius:10px;flex-shrink:0;place-items:center;font-size:1.05rem;display:grid}.ov-section__head h2{letter-spacing:-.01em;color:var(--ink);margin:0;font-size:1.15rem;font-weight:900}.ov-section__rule{background:linear-gradient(90deg, var(--accent), transparent);border-radius:999px;flex:1;height:3px}.ov-card{background:var(--card);border-top:3px solid var(--accent,#6366f1);border-radius:16px;padding:1.2rem 1.3rem;transition:transform .18s,box-shadow .18s;box-shadow:0 8px 24px -16px #0f172a38}.ov-card:hover{transform:translateY(-2px);box-shadow:0 18px 36px -20px #0f172a47}.ov-card+.ov-card,.ov-card--wide+.ov-grid,.ov-grid+.ov-card{margin-top:1rem}.ov-card--wide{margin-bottom:1rem}.ov-card h3{letter-spacing:-.01em;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin:0 0 1rem;font-size:.98rem;font-weight:900;display:flex}.ov-grid{gap:1rem;display:grid}.ov-grid+.ov-grid{margin-top:1rem}.ov-grid--2{grid-template-columns:1fr 1fr}.ov-grid--3{grid-template-columns:repeat(3,1fr)}@media (width<=900px){.ov-grid--3{grid-template-columns:1fr}}@media (width<=680px){.ov-grid--2{grid-template-columns:1fr}}.ov-muted{color:#94a3b8;font-size:.85rem;font-weight:700}.ov-strong{color:var(--ink);font-weight:800}.ov-sub{color:#94a3b8;font-size:.72rem;font-weight:600;display:block}.ov-inline-sub{color:#94a3b8;font-style:normal;font-weight:700}.ov-barlist{flex-direction:column;gap:.6rem;display:flex}.ov-barlist__row{grid-template-columns:minmax(72px,96px) 1fr auto;align-items:center;gap:.6rem;display:grid}.ov-barlist__label{color:#475569;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:800;overflow:hidden}.ov-barlist__track{background:#eef2f7;border-radius:999px;height:11px;overflow:hidden}.ov-barlist__track>span{transform-origin:0;background:linear-gradient(90deg,#818cf8,#6366f1);border-radius:999px;height:100%;animation:.7s cubic-bezier(.2,.8,.2,1) both ov-grow;display:block}.ov-barlist__val{color:var(--ink);white-space:nowrap;font-size:.8rem;font-weight:800}.ov-barlist__val em{color:#94a3b8;font-style:normal;font-weight:700}.ov-qstat{--accent:var(--tone);flex-direction:column;gap:.5rem;animation:.5s both ov-rise;display:flex}.ov-qstat__top{align-items:center;gap:.55rem;display:flex}.ov-qstat__icon{background:color-mix(in srgb, var(--tone) 15%, #fff);border-radius:10px;place-items:center;width:34px;height:34px;font-size:1rem;display:grid}.ov-qstat__label{color:#475569;font-size:.85rem;font-weight:800}.ov-qstat__value{letter-spacing:-.02em;color:var(--ink);font-size:2rem;font-weight:900;line-height:1}.ov-qstat__bar{background:#eef2f7;border-radius:999px;height:8px;overflow:hidden}.ov-qstat__bar>span{background:var(--tone);transform-origin:0;border-radius:999px;height:100%;animation:.7s cubic-bezier(.2,.8,.2,1) both ov-grow;display:block}.ov-qstat__sub{color:#94a3b8;font-size:.72rem;font-weight:700}.ov-chart{padding:.4rem 0 0 2.4rem;position:relative}.ov-chart__grid{pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:.4rem 0 20px}.ov-chart__grid span{border-top:1px dashed #eef2f7;position:relative}.ov-chart__grid em{color:#cbd5e1;font-size:.62rem;font-style:normal;font-weight:700;position:absolute;top:-.55em;left:-2.4rem}.ov-chart__bars{align-items:flex-end;gap:3px;height:180px;display:flex;overflow-x:auto}.ov-chart__col{flex-direction:column;flex:1 0 12px;align-items:center;height:100%;display:flex}.ov-chart__stack{flex:1;align-items:flex-end;width:100%;min-height:0;display:flex}.ov-chart__bar-total{transform-origin:bottom;background:#d9def7;border-radius:5px 5px 0 0;align-items:flex-end;width:100%;min-height:3px;transition:filter .15s;animation:.6s cubic-bezier(.2,.8,.2,1) both ov-grow-y;display:flex}.ov-chart__bar-done{background:linear-gradient(#7c3aed,#4f46e5);border-radius:5px 5px 0 0;width:100%}.ov-chart__col:hover .ov-chart__bar-total{filter:brightness(.94)}.ov-chart__col.is-peak .ov-chart__bar-total{outline-offset:1px;outline:2px solid #7c3aed}.ov-chart__x{color:#94a3b8;white-space:nowrap;margin-top:5px;font-size:.6rem;font-weight:700}.ov-legend{color:#94a3b8;align-items:center;font-size:.72rem;font-weight:700;display:inline-flex}.ov-legend i{border-radius:3px;width:10px;height:10px;margin-right:4px;display:inline-block}.ov-legend__total{background:#d9def7}.ov-legend__done{background:#4f46e5}.ov-statline{border-top:1px solid var(--line);flex-wrap:wrap;gap:.5rem 1.4rem;margin-top:1rem;padding-top:.9rem;display:flex}.ov-statline span{color:var(--muted);font-size:.78rem;font-weight:700}.ov-statline b{color:var(--ink);font-weight:900}.ov-table-scroll{overflow-x:auto}.ov-table{border-collapse:collapse;width:100%;font-size:.85rem}.ov-table th,.ov-table td{text-align:left;padding:8px 10px}.ov-table th{color:#94a3b8;text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid var(--line);font-size:.68rem;font-weight:900}.ov-table td{border-bottom:1px solid #f3f5f9;font-weight:700}.ov-table tbody tr{transition:background .12s}.ov-table tbody tr:hover{background:#f8fafc}.ov-rank{background:color-mix(in srgb, var(--accent) 16%, #fff);width:18px;height:18px;color:var(--accent);border-radius:6px;place-items:center;margin-right:7px;font-size:.68rem;font-weight:900;display:inline-grid}.ov-role{text-transform:capitalize;border-radius:999px;padding:2px 8px;font-size:.68rem;font-weight:800}.ov-role--teacher{color:#0369a1;background:#e0f2fe}.ov-role--superTeacher{color:#6d28d9;background:#ede9fe}.ov-role--admin{color:#b91c1c;background:#fee2e2}.ov-select{font:inherit;border:1.5px solid var(--line);color:var(--ink);background:#fff;border-radius:10px;max-width:340px;padding:7px 11px;font-size:.82rem;font-weight:700}.ov-select:focus{outline:2px solid var(--accent);outline-offset:1px}.ov-teacher-hint{flex-direction:column;gap:.7rem;display:flex}.ov-teacher-chips{flex-wrap:wrap;gap:.45rem;display:flex}.ov-teacher-chip{border:1.5px solid var(--line);font:inherit;color:#475569;cursor:pointer;background:#fff;border-radius:999px;padding:5px 12px;font-size:.78rem;font-weight:800;transition:all .15s}.ov-teacher-chip:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.ov-teacher-chip b{color:var(--accent);margin-left:4px}.ov-chips{flex-wrap:wrap;gap:.4rem;margin-bottom:.9rem;display:flex}.ov-status{text-transform:capitalize;color:#475569;background:#f1f5f9;border-radius:999px;padding:3px 9px;font-size:.68rem;font-weight:800}.ov-status--active{color:#15803d;background:#dcfce7}.ov-status--pending{color:#b45309;background:#fef3c7}.ov-status--rejected{color:#b91c1c;background:#fee2e2}.ov-status--deleted{color:#6b7280;background:#e5e7eb}.ov-status--draft{color:#4338ca;background:#e0e7ff}.ov-generated{text-align:center;color:#cbd5e1;margin-top:1.5rem;font-size:.72rem;font-weight:700}@media (prefers-reduced-motion:reduce){.ov *,.ov :before,.ov :after{transition:none!important;animation:none!important}}@font-face{font-family:Readex;src:url(/sim-assets/readex-regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Readex;src:url(/sim-assets/readex-bold.ttf)format("truetype");font-weight:700;font-display:swap}.ns-app{--ns-blue:#2f6fdb;--ns-blue-deep:#1d4fb8;--ns-ink:#1f3b7a;--ns-muted:#9aa5b5;--ns-grey-line:#cfd6df;--ns-green:#4fae2c;--ns-icon:clamp(42px, min(10.5vw, 19vh), 84px);--ns-btn:clamp(40px, 12vh, 54px);--ns-tile:clamp(96px, 52vh, 220px);--ns-board:clamp(160px, min(32vw, 60vh), 300px);--ns-gutter:max(16px, env(safe-area-inset-left), env(safe-area-inset-right));min-width:0;min-height:100dvh;color:var(--ns-ink);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:#9fdcf7 url(/assets/bg-small-C2XMss8-.webp) bottom/cover no-repeat;flex-direction:column;font-family:Readex,Tahoma,sans-serif;display:flex;position:relative}.ns-app *,.ns-app :before,.ns-app :after{box-sizing:border-box}.ns-app button{font:inherit;cursor:pointer}.ns-topbar{padding:clamp(8px, 2.6vh, 14px) var(--ns-gutter);padding-top:max(clamp(8px, 2.6vh, 14px), env(safe-area-inset-top));align-items:center;gap:clamp(8px,2vw,16px);display:flex}.ns-topbar-title{color:#fff;text-shadow:0 2px 6px #14326e73,0 1px 1px #14326e59;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0;padding-bottom:.1em;font-size:clamp(16px,5vh,26px);font-weight:700;line-height:1.7;overflow:hidden}.ns-topbar-tools{align-items:flex-start;gap:clamp(8px,1.6vw,14px);display:flex}.ns-round{width:var(--ns-btn);aspect-ratio:1;color:#fff;box-shadow:0 calc(var(--ns-btn) / 16) 0 #2649ca;background:#3278e3;border:0;border-radius:50%;flex:none;place-items:center;padding:0;transition:transform .12s;display:grid}.ns-round svg{filter:drop-shadow(0 2px #244c7780);width:52%;height:52%}.ns-round:active{box-shadow:0 calc(var(--ns-btn) / 32) 0 #2649ca;transform:translateY(2px)}.ns-round-art{aspect-ratio:160/170;box-shadow:none;background:0 0;border-radius:0}.ns-round-art img{width:100%;height:100%;display:block}.ns-round-art:active{box-shadow:none}.ns-round:focus-visible,.ns-continue:focus-visible,.ns-picker button:focus-visible{outline-offset:2px;outline:3px solid #ffd23f}.ns-sheet{min-width:0;min-height:0;padding:clamp(14px, 4vh, 28px) var(--ns-gutter) max(clamp(12px, 3vh, 24px), env(safe-area-inset-bottom));background:#fff;border-radius:clamp(22px,6vh,36px) clamp(22px,6vh,36px) 0 0;flex-direction:column;flex:1;display:flex;overflow-y:auto;box-shadow:0 -2px 12px #143c781f}.ns-stage{min-width:0;min-height:0;padding:clamp(4px, 2vh, 16px) var(--ns-gutter) max(clamp(12px, 5vh, 32px), env(safe-area-inset-bottom));flex-direction:column;flex:1;display:flex;overflow-y:auto}.ns-stage .ns-state{color:#fff;text-shadow:0 2px 6px #14326e80}.ns-state{color:var(--ns-muted);text-align:center;flex-direction:column;align-items:center;gap:10px;margin:auto;font-weight:700;display:flex}.ns-state small{font-size:13px;font-weight:400}.ns-spinner{border:4px solid #dbe6f7;border-top-color:var(--ns-blue);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite ns-spin}@keyframes ns-spin{to{transform:rotate(360deg)}}.ns-lesson{flex-direction:column;flex:1;justify-content:space-evenly;gap:clamp(12px,4vh,28px);min-width:0;display:flex}.ns-lesson-title{color:var(--ns-blue);margin:0;font-size:clamp(16px,5vh,26px);font-weight:700;line-height:1.4}.ns-lesson-num{color:var(--ns-muted);margin-inline-end:.5em}.ns-path{scrollbar-width:none;margin:0;padding:4px 0;list-style:none;display:flex;overflow-x:auto}.ns-path::-webkit-scrollbar{display:none}.ns-stop{--stop-line:var(--ns-grey-line);min-width:calc(var(--ns-icon) + 18px);flex-direction:column;flex:1 0 auto;align-items:center;gap:clamp(4px,1.6vh,10px);padding-inline:6px;display:flex;position:relative}.ns-stop:not(:last-child):after{content:"";top:calc(var(--ns-icon) / 2 - 2px);border-top:4px dotted var(--stop-line);position:absolute;inset-inline-start:calc(50% + var(--ns-icon) / 2 + 3px);inset-inline-end:calc(-50% + var(--ns-icon) / 2 + 3px)}.ns-stop.is-done{--stop-line:#3d7fe0}.ns-medallion{width:var(--ns-icon);aspect-ratio:1;filter:drop-shadow(0 3px 4px #1e325a38);border-radius:50%;transition:transform .2s,filter .2s}.ns-medallion img{width:100%;height:100%;display:block}.ns-stop.is-current .ns-medallion{transform:scale(1.08)}.ns-stop.is-upcoming .ns-medallion{filter:grayscale()brightness(1.08)opacity(.7)}.ns-stop-label{white-space:nowrap;color:var(--stop-color);font-size:clamp(12px,3.8vh,17px);font-weight:700;line-height:1.3}.ns-stop.is-upcoming .ns-stop-label{color:#b5bdc8}.ns-progress{align-items:center;height:clamp(38px,11vh,50px);font-size:clamp(14px,4.2vh,18px);font-weight:700;display:flex}.ns-progress-done,.ns-progress-left{border:2px dashed;flex-basis:0;place-items:center;min-width:0;height:100%;display:grid;overflow:hidden}.ns-progress-done[data-empty],.ns-progress-left[data-empty]{display:none}.ns-progress-done{color:var(--ns-green);border-color:#b4e3a1;background:linear-gradient(270deg,#e2f7d6,#f3fcee);border-inline-end:0;border-start-start-radius:999px;border-end-start-radius:999px}.ns-progress-left{color:#aab3bf;border-color:#d7dde5;background:#f2f4f7;border-inline-start:0;border-start-end-radius:999px;border-end-end-radius:999px}.ns-continue{color:#fff;background:linear-gradient(180deg, #4d95f3, var(--ns-blue));border:0;border-radius:999px;flex:none;align-items:center;gap:6px;height:calc(100% + 6px);padding:0 clamp(18px,4vw,30px);font-weight:700;display:inline-flex;box-shadow:inset 0 -4px #1a46a3,0 4px 10px #2f6fdb59}.ns-continue:active{transform:translateY(2px);box-shadow:inset 0 -2px #1a46a3}.ns-tiles,.ns-boards{flex-wrap:wrap;place-content:center;gap:clamp(8px,2.5vh,20px) clamp(8px,2vw,24px);margin:auto 0 clamp(4px,7vh,80px);padding:0;list-style:none;display:flex}.ns-tiles>li,.ns-boards>li{animation:.55s cubic-bezier(.22,1,.36,1) both ns-rise;animation-delay:calc(var(--i,0) * 80ms)}@keyframes ns-rise{0%{opacity:0;transform:translateY(28px)scale(.92)}to{opacity:1;transform:none}}.ns-tile,.ns-board{background:0 0;border:0;padding:0;transition:transform .2s cubic-bezier(.34,1.56,.64,1);display:block}.ns-tile:active,.ns-board:active{transition-duration:80ms;transform:scale(.95)}.ns-tile:focus-visible,.ns-board:focus-visible{outline-offset:4px;border-radius:24px;outline:3px solid #ffd23f}.ns-tiles,.ns-boards:not(.is-many){flex-wrap:nowrap}.ns-tiles>li{flex:0 1 var(--ns-tile);min-width:0}.ns-boards>li{flex:0 1 var(--ns-board);min-width:0}.ns-boards.is-many>li{flex-basis:calc(var(--ns-board) * .72)}.ns-tile,.ns-board{width:100%;container-type:inline-size}.ns-tile img{filter:drop-shadow(0 4px 6px #1e325a26);width:100%;height:auto;display:block}.ns-tile-plain{aspect-ratio:480/462;padding:16% 9% 9%;display:grid}.ns-tile-plain>span{background:linear-gradient(160deg, #6aa8f7, var(--ns-blue));color:#fff;text-align:center;border-radius:22%/24%;place-items:center;padding:8%;font-size:11cqw;font-weight:700;line-height:1.35;display:grid;box-shadow:0 3cqw #2649ca}.ns-board{isolation:isolate;position:relative}.ns-board img{filter:drop-shadow(0 4px 4px #3c1e0040);width:100%;height:auto;display:block}.ns-board:before{content:"";z-index:-1;background:radial-gradient(closest-side,#46280a66,#46280a2e 55%,#0000);height:12%;transition:transform .25s,opacity .25s;position:absolute;inset:auto 4% -5%}.ns-board-text{color:#fff;text-align:center;text-shadow:0 0 1px #ffffff80,0 2px 3px #0000004d;place-items:center;font-size:7.2cqw;font-weight:700;line-height:1.6;display:grid;position:absolute;inset:10% 12% 38%;overflow:hidden}.ns-board-count{top:66%;color:#fff;opacity:.92;font-size:5cqw;font-weight:700;position:absolute;inset-inline-end:13%}.ns-board.is-premium:after{content:"";background:linear-gradient(90deg,#ffffff26,#fff9 30%,#ffffff73 80%,#ffffff1a);border-radius:2px;height:2px;position:absolute;top:63%;left:13%;right:13%}.ns-premium-badge{filter:drop-shadow(0 3px 3px #3c145a59);transform-origin:40% 60%;width:42%;animation:3.2s ease-in-out infinite ns-badge;position:absolute;top:-7%;left:-9%;overflow:visible}@keyframes ns-badge{0%,to{transform:rotate(-6deg)translateY(0)}50%{transform:rotate(-1deg)translateY(-4%)}}.ns-sparkle{transform-box:fill-box;transform-origin:50%;animation:1.8s ease-in-out infinite ns-twinkle}.ns-sparkle-2{animation-delay:.9s}@keyframes ns-twinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.6)}}.ns-picker{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.ns-picker button{text-align:start;width:100%;height:100%;color:var(--ns-ink);background:#f7faff;border:2px solid #e3e9f2;border-radius:16px;flex-direction:column;gap:4px;padding:12px 14px;display:flex;box-shadow:0 6px 14px #14326e26}.ns-picker small{color:var(--ns-muted);font-size:12px}.ns-picker b{color:var(--ns-blue);font-size:15px}@media (width>=900px) and (height>=560px){.ns-app{--ns-gutter:max(32px, 3vw);--ns-btn:clamp(56px, 7.5vh, 88px);--ns-tile:clamp(200px, 34vh, 380px);--ns-board:clamp(260px, 44vh, 500px);--ns-icon:clamp(76px, 10vh, 128px);background-image:url(/assets/bg-large-vQuZXgwS.webp)}.ns-topbar{padding:3vh var(--ns-gutter) 2vh;gap:1.5vw}.ns-topbar-title{font-size:clamp(26px,4.4vh,46px)}.ns-topbar-tools{gap:clamp(12px,1.2vw,22px)}.ns-stage{padding:1vh var(--ns-gutter) 3vh}.ns-tiles,.ns-boards{gap:4vh 2.5vw;margin-bottom:8vh}.ns-sheet{width:min(1500px, 100% - 2 * var(--ns-gutter));border-radius:clamp(32px,4.5vh,48px);flex:0 auto;align-self:center;margin-block:auto 6vh;padding:5vh 4vw;overflow:visible;box-shadow:0 2.5vh 6vh #143c7838}.ns-lesson{justify-content:flex-start;gap:6vh}.ns-lesson-title{font-size:clamp(28px,4vh,44px)}.ns-path{padding:8px 0}.ns-stop{gap:1.6vh}.ns-stop:not(:last-child):after{border-top-width:5px}.ns-stop-label{font-size:clamp(17px,2.3vh,26px)}.ns-progress{height:clamp(58px,7vh,80px);font-size:clamp(19px,2.5vh,28px)}.ns-continue{gap:10px;padding:0 3vw}.ns-picker{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.ns-picker button{border-radius:20px;padding:18px 20px}.ns-picker small{font-size:13px}.ns-picker b{font-size:18px}}@media (hover:hover){.ns-round,.ns-continue,.ns-picker button{transition:transform .15s,filter .15s,border-color .15s}.ns-round:hover,.ns-continue:hover{filter:brightness(1.08);transform:translateY(-2px)}.ns-picker button:hover{border-color:#b9cff2;transform:translateY(-2px)}.ns-stop:not(.is-upcoming) .ns-medallion:hover{transform:scale(1.1)}.ns-tile:hover,.ns-board:hover{transform:translateY(-6px)scale(1.03)}.ns-board:hover:before{opacity:.6;transform:translateY(6px)scaleX(.82)}}@media (prefers-reduced-motion:reduce){.ns-app *,.ns-app :before,.ns-app :after{transition:none!important;animation:none!important}}.pd-app{--sky:#2563eb;--sky-dark:#1d4ed8;--ink:#15233b;--ink-2:#3d4d66;--green:#10b981;--purple:#8b5cf6;--yellow:#f59e0b;--red:#ef4444;--series:#3b82f6;--series-soft:#3b82f633;--good:#10b981;--warn:#f59e0b;--crit:#ef4444;--idle:#7b8aa0;--muted:#6b7c93;--hair:#15233b1f;--surface:#fff;--surface-hover:#f5f9ff;--tint:#eef3fb;--font-arabic:"Inter", "IBM Plex Sans Arabic", "Noto Naskh Arabic", sans-serif;z-index:9999;color:var(--ink);font-family:var(--font-arabic);font-variant-numeric:lining tabular-nums;font-feature-settings:"locl" 0;background:#fff;font-size:17px;line-height:1.7;transition:all .3s;position:fixed;inset:0;overflow:auto}.pd-app *{box-sizing:border-box}.pd-app button{font:inherit;cursor:pointer;border:0}.pd-app h1,.pd-app h2,.pd-app h3,.pd-app h4,.pd-app p{margin:0}.pd-wrap{flex-direction:column;gap:40px;max-width:1200px;margin:0 auto;padding:44px 22px 96px;display:flex}.pd-wrap>*{min-width:0}.pd-header{background:var(--surface);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--hair);color:var(--ink);border-radius:24px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:28px 34px;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 28px #15233b14}.pd-header-text h1{background:linear-gradient(135deg,#2563eb,#7c3aed);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:clamp(28px,3.2vw,40px);font-weight:900}.pd-header-text p{opacity:.9;color:var(--muted);margin-top:10px;font-size:clamp(16px,1.6vw,19px);font-weight:600}.pd-sec{color:var(--ink);text-transform:uppercase;letter-spacing:1.2px;align-items:center;gap:12px;margin:16px 2px 4px;font-size:17px;font-weight:800;display:flex}.pd-sec span{font-size:22px}.pd-sec-hint{color:var(--muted);font-size:15px;font-weight:600}.pd-sec:after{content:"";background:linear-gradient(to right, var(--hair), transparent);flex:1;height:1px}.pd-header-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pd-range{background:var(--tint);border:1px solid var(--hair);border-radius:12px;padding:4px;display:flex}.pd-range button{color:var(--muted);background:0 0;border-radius:10px;padding:10px 18px;font-size:15px;font-weight:700;transition:all .2s}.pd-range button.active{background:var(--series);color:#fff;box-shadow:0 4px 12px #3b82f64d}.pd-center{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:16px;padding:70px 20px;font-size:18px;display:flex}.pd-center h2{color:var(--ink);font-size:28px;font-weight:900}.pd-hero,.pd-card,.pd-stat,.pd-advice,.pd-run{background:var(--surface);border:1px solid var(--hair);-webkit-backdrop-filter:blur(16px);border-radius:24px;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s,border-color .3s;box-shadow:0 8px 24px #15233b12}.pd-hero:hover,.pd-card:hover,.pd-stat:hover{border-color:#2563eb4d;transform:translateY(-4px);box-shadow:0 14px 36px #15233b21}.pd-hero{grid-template-columns:auto 1fr auto;align-items:center;gap:32px;padding:32px;display:grid}.pd-ring{text-align:center;border-inline-end:1px solid var(--hair);width:160px;padding-inline-end:24px;position:relative}.pd-ring svg{filter:drop-shadow(0 0 8px #3b82f666);width:140px;height:140px;overflow:visible;transform:rotate(-90deg)}.pd-ring circle{fill:none;stroke-width:12px;stroke-linecap:round}.pd-ring-track{stroke:#e4ebf6}.pd-ring-fill{stroke:url(#ring-gradient);transition:stroke-dashoffset 1.5s cubic-bezier(.4,0,.2,1)}.pd-ring.is-good .pd-ring-fill{stroke:var(--good);filter:drop-shadow(0 0 8px #10b98166)}.pd-ring.is-warn .pd-ring-fill{stroke:var(--warn);filter:drop-shadow(0 0 8px #f59e0b66)}.pd-ring-mid{top:0;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;width:140px;height:140px;display:flex;position:absolute;inset-inline-start:0}.pd-ring-num{color:var(--ink);direction:ltr;font-size:46px;font-weight:900;line-height:1}.pd-ring-outof{color:var(--muted);margin-top:4px;font-size:13px;font-weight:700}.pd-ring-cap{color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-top:12px;font-size:14px;font-weight:800;display:block}.pd-hero-top{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;display:flex}.pd-hero-name{color:var(--ink-2);font-size:clamp(18px,2.1vw,23px);font-weight:800}.pd-hero-name b{color:var(--ink);font-weight:900}.pd-badge{color:var(--sky);background:#2563eb1f;border:1px solid #2563eb47;border-radius:999px;padding:7px 15px;font-size:14px;font-weight:800}.pd-badge.is-fire{color:var(--warn);background:#f59e0b26;border-color:#f59e0b4d}.pd-spark{width:100%;max-width:300px;height:40px}.pd-spark-area{fill:url(#spark-gradient);opacity:.3}.pd-spark-line{stroke:var(--sky);stroke-width:3px}.pd-spark-dot{fill:var(--sky);stroke:#fff;stroke-width:3px}.pd-stats{grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:18px;display:grid}.pd-stat{text-align:center;flex-direction:column;gap:6px;padding:22px;display:flex}.pd-stat-icon{margin-bottom:4px;font-size:28px}.pd-stat-value{color:var(--ink);font-size:clamp(28px,2.6vw,38px);font-weight:900;line-height:1.1}.pd-stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;font-size:15px;font-weight:800}.pd-stat-hint{color:var(--muted);font-size:14px}.pd-card{padding:28px}.pd-card h3{color:var(--ink);margin-bottom:6px;font-size:clamp(21px,2.2vw,27px);font-weight:900}.pd-card-head{justify-content:space-between;gap:16px;margin-bottom:26px;display:flex}.pd-card-figs b{color:var(--ink);font-size:18px;font-weight:900}.pd-chart{margin-top:26px}.pd-days{border-bottom:1px solid var(--hair);gap:4px}.pd-day-track{background:var(--tint);border-radius:12px;max-width:28px}.pd-day-bar{background:linear-gradient(to top, var(--sky-dark), var(--sky));border-radius:12px}.pd-day.is-peak .pd-day-bar{background:linear-gradient(to top, #6d28d9, var(--purple))}.pd-day:hover .pd-day-bar{filter:drop-shadow(0 0 8px #15233b47);background:#15233b}.pd-lessons{gap:18px}.pd-lesson{border:1px solid var(--hair);background:#f8faff;border-radius:20px;padding:20px 24px}.pd-lesson:hover{background:var(--surface-hover);border-color:var(--sky)}.pd-lesson-top strong{color:var(--ink);font-size:19px}.pd-lesson-meta,.pd-lesson-side,.pd-sub,.pd-muted,.pd-col-hint,.pd-run-meta,.pd-run-dates{font-size:15px}.pd-meta-chip{background:var(--tint);color:var(--ink-2);font-size:14px}.pd-table{font-size:16px}.pd-table th,.pd-table td{padding:12px 14px}.pd-prog-track{background:#e4ebf6}.pd-prog-track>div{background:linear-gradient(to right, var(--sky-dark), var(--sky))}.pd-prog-track>div.is-done{background:linear-gradient(90deg,#059669,#10b981)}.pd-sec{text-transform:none;letter-spacing:0}.pd-sec>span:first-child{background:var(--tint);border-radius:14px;flex:0 0 42px;place-items:center;width:42px;height:42px;font-size:22px;display:grid}.pd-hero{border-width:2px}.pd-hero-body{min-width:0}.pd-hero-badges{flex-wrap:wrap;gap:8px;display:flex}.pd-sum{gap:10px;margin:0;padding:0;list-style:none;display:grid}.pd-sum li{border:1px solid var(--hair);background:#f8faff;border-radius:16px;align-items:flex-start;gap:10px;padding:12px 16px;font-size:17px;display:flex}.pd-sum b{color:var(--ink)}.pd-hero-spark{gap:6px;margin-top:16px;display:grid}.pd-spark-cap{color:var(--muted);font-size:14px;font-weight:700}.pd-hero-note{color:var(--muted);margin-top:14px;font-size:15px}.pd-hero-side{flex-direction:column;gap:14px;display:flex}.pd-hero-fact{text-align:center;border:2px solid var(--hair);background:linear-gradient(#eef3fb,#fff);border-radius:22px;min-width:128px;padding:18px 20px}.pd-hero-fact b{color:var(--sky);font-size:34px;font-weight:900;line-height:1.1;display:block}.pd-hero-fact span{color:var(--muted);font-size:14px;font-weight:800}.pd-hero.is-good .pd-hero-fact b{color:var(--good)}.pd-hero.is-warn .pd-hero-fact b{color:#b45309}.pd-hero.is-crit .pd-hero-fact b{color:var(--crit)}.pd-advice{border-width:2px;padding:26px 28px}.pd-advice h3{margin-bottom:16px;font-size:clamp(20px,2.1vw,25px);font-weight:900}.pd-advice ul{gap:12px;margin:0;padding:0;list-style:none;display:grid}.pd-advice li{background:var(--tint);border:1px solid var(--hair);border-radius:18px;align-items:flex-start;gap:12px;padding:14px 18px;font-size:17px;font-weight:600;display:flex}.pd-advice li>span:first-child{font-size:22px;line-height:1.2}.pd-advice li.is-good{background:#e9fbf3;border-color:#10b98159}.pd-advice li.is-warn{background:#fff6e5;border-color:#f59e0b59}.pd-advice li.is-crit{background:#ffecec;border-color:#ef444459}.pd-stat{border-width:2px;animation:.5s both pdRise}.pd-stats>.pd-stat:nth-child(4n+1){background:linear-gradient(#eaf1ff,#fff)}.pd-stats>.pd-stat:nth-child(4n+2){background:linear-gradient(#f3edff,#fff)}.pd-stats>.pd-stat:nth-child(4n+3){background:linear-gradient(#e8faf1,#fff)}.pd-stats>.pd-stat:nth-child(4n+4){background:linear-gradient(#fff6e3,#fff)}.pd-stat.is-good .pd-stat-value{color:#0b7a55}.pd-stat.is-warn .pd-stat-value{color:#b45309}.pd-stat.is-crit .pd-stat-value{color:#b42318}.pd-stat-label{text-transform:none;letter-spacing:0}.pd-stats--compact{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px}.pd-stats--compact .pd-stat{border-radius:18px;padding:16px}.pd-stats--compact .pd-stat-value{font-size:26px}.pd-chart{position:relative}.pd-chart-max{color:var(--muted);font-size:14px;font-weight:800}.pd-days{align-items:flex-end;height:200px;padding-top:10px;display:flex}.pd-day{cursor:pointer;flex-direction:column;flex:1 1 0;justify-content:flex-end;align-items:center;gap:6px;min-width:0;height:100%;display:flex}.pd-day-track{flex:1;align-items:flex-end;width:100%;display:flex}.pd-day-bar{width:100%;min-height:6px}.pd-day-x{color:var(--muted);white-space:nowrap;font-size:12px}.pd-tip{inset-inline-start:50%;text-align:center;pointer-events:none;background:var(--ink);color:#fff;opacity:0;border-radius:14px;gap:2px;padding:8px 14px;font-size:14px;transition:opacity .2s;display:grid;position:absolute;top:-4px;transform:translate(-50%)}.pd-tip.is-on{opacity:1}.pd-chart-note{color:var(--muted);margin-top:14px;font-size:15px}.pd-lesson{width:100%;text-align:inherit;color:inherit;cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;transition:transform .2s,background .2s,border-color .2s;display:grid}.pd-lesson:hover{transform:translateY(-2px)}.pd-lesson-main{gap:10px;min-width:0;display:grid}.pd-lesson-top{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pd-lesson-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pd-meta-chip{border-radius:999px;padding:5px 12px;font-weight:700}.pd-lesson-side{justify-items:center;gap:8px;min-width:170px;display:grid}.pd-lesson-cta{color:var(--sky);font-size:14px;font-weight:800}.pd-chip{background:var(--tint);color:var(--ink-2);border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-size:14px;font-weight:800;display:inline-flex}.pd-chip-dot{background:var(--idle);border-radius:50%;width:10px;height:10px}.pd-chip.is-completed{color:#0b7a55;background:#e9fbf3}.pd-chip.is-completed .pd-chip-dot{background:#0ca30c}.pd-chip.is-in_progress{color:#17518f;background:#eaf1ff}.pd-chip.is-in_progress .pd-chip-dot{background:#128fce}.pd-chip.is-failed{color:#b42318;background:#ffecec}.pd-chip.is-failed .pd-chip-dot{background:#d03b3b}.pd-chip.is-aborted,.pd-chip.is-timeout{color:#8a5200;background:#fff6e3}.pd-chip.is-aborted .pd-chip-dot,.pd-chip.is-timeout .pd-chip-dot{background:#fab219}.pd-prog{width:100%;color:var(--muted);align-items:center;gap:10px;font-size:15px;font-weight:800;display:flex}.pd-prog-track{border-radius:999px;flex:1;height:12px;overflow:hidden}.pd-prog-track>div{border-radius:999px;height:100%;transition:width .6s}.pd-prog--lg .pd-prog-track{height:16px}.pd-two-col{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:32px;display:grid}.pd-two-col h4{margin:0 0 4px;font-size:19px;font-weight:900}.pd-bar-row{gap:8px;margin-top:18px;display:grid}.pd-bar-head{justify-content:space-between;gap:12px;font-weight:800;display:flex}.pd-bar-name{min-width:0}.pd-bar-frac{color:var(--muted);white-space:nowrap;font-size:15px}.pd-bar-track{background:#e4ebf6;border-radius:999px;height:16px;overflow:hidden}.pd-bar-track>div{background:linear-gradient(to right, var(--sky-dark), #60a5fa);border-radius:999px;height:100%;transition:width .6s}.pd-bar-row.is-weak .pd-bar-track>div{background:linear-gradient(to right, #b45309, var(--warn))}.pd-bar-flag{color:#8a5200;font-size:14px;font-weight:800}.pd-timeline{gap:12px;margin:18px 0 0;padding:0;list-style:none;display:grid}.pd-timeline>li{border:1px solid var(--hair);background:#f8faff;border-radius:18px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 18px;transition:transform .2s,border-color .2s,background .2s;display:grid}.pd-row-click{cursor:pointer}.pd-row-click:hover{background:var(--surface-hover);border-color:var(--sky);transform:translateY(-2px)}.pd-dot{border-radius:50%;width:14px;height:14px;box-shadow:0 0 0 4px #15233b0f}.pd-tl-main{gap:4px;min-width:0;display:grid}.pd-tl-main strong{font-size:18px}.pd-tl-score{color:var(--sky);font-size:20px;font-weight:900}.pd-lb-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;display:flex}.pd-myrank{background:var(--tint);border-radius:16px;margin-bottom:16px;padding:12px 16px;font-size:17px;font-weight:700}.pd-myrank strong{color:var(--sky);font-size:19px}.pd-table-scroll{border:1px solid var(--hair);border-radius:18px;overflow-x:auto}.pd-table{border-collapse:collapse;width:100%}.pd-table th{background:var(--tint);text-align:inherit;white-space:nowrap;font-weight:900}.pd-table tbody tr+tr{border-top:1px solid var(--hair)}.pd-table tbody tr:nth-child(2n){background:#fbfdff}.pd-table td:first-child{font-size:20px;font-weight:900}.pd-me{background:#fff8e1!important}.pd-strong{color:var(--ink);font-weight:900}.pd-tag{background:var(--tint);color:var(--muted);border-radius:999px;margin-inline-start:8px;padding:3px 10px;font-size:13px;font-weight:800;display:inline-block}.pd-tag-me{background:var(--warn);color:#3b2600}.pd-table--tight{font-size:15px}.pd-table--tight th,.pd-table--tight td{padding:9px 12px}.pd-q-dim{opacity:.55}.pd-q-text{text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}.pd-qdot{color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:13px;font-weight:900;display:inline-grid}.pd-modal{z-index:60;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#15233b73;place-items:center;padding:20px;animation:.2s both pdFade;display:grid;position:fixed;inset:0}.pd-modal-panel{border:2px solid var(--hair);background:#fff;border-radius:28px;width:min(900px,100%);max-height:92vh;animation:.3s both pdRise;overflow:auto;box-shadow:0 24px 60px #15233b47}.pd-modal-head{z-index:1;border-bottom:1px solid var(--hair);background:linear-gradient(#eef3fb,#fff);justify-content:space-between;align-items:flex-start;gap:16px;padding:24px 28px;display:flex;position:sticky;top:0}.pd-modal-eyebrow{color:var(--sky);font-size:14px;font-weight:800}.pd-modal-head h2{margin:4px 0;font-size:clamp(21px,2.3vw,28px);font-weight:900}.pd-modal-x{background:var(--tint);width:44px;height:44px;color:var(--ink);border-radius:50%;flex:0 0 44px;font-size:18px;font-weight:900}.pd-modal-x:hover{background:#e1e9f6}.pd-modal-body{gap:26px;padding:24px 28px 30px;display:grid}.pd-fiche-block{gap:14px;display:grid}.pd-fiche-block h4{margin:0;font-size:19px;font-weight:900}.pd-run{padding:0;overflow:hidden}.pd-run-head{width:100%;color:inherit;text-align:inherit;background:#f8faff;flex-wrap:wrap;align-items:center;gap:12px;padding:16px 20px;font-weight:800;display:flex}.pd-run-head:hover{background:var(--surface-hover)}.pd-run-caret{color:var(--sky)}.pd-run-no{font-size:18px;font-weight:900}.pd-run-dates,.pd-run-meta{color:var(--muted);font-weight:600}.pd-run-meta{margin-inline-start:auto}.pd-run-body{border-top:1px solid var(--hair);gap:18px;padding:18px 20px 22px;display:grid}.pd-run-bar{gap:8px;display:grid}.pd-tag,.pd-tl-score,.pd-bar-frac,.pd-myrank strong,.pd-prog>span,.pd-day-x,.pd-run-no{direction:ltr;unicode-bidi:isolate}.pd-lang{background:var(--tint);color:var(--ink);border-radius:999px;padding:10px 20px;font-size:16px;font-weight:900}.pd-lang:hover{background:#e1e9f6}.pd-retry{background:var(--sky);color:#fff;box-shadow:0 5px 0 var(--sky-dark);border-radius:999px;padding:12px 26px;font-size:17px;font-weight:900}.pd-retry:active{box-shadow:0 3px 0 var(--sky-dark);transform:translateY(2px)}.pd-empty{text-align:center;padding:40px 24px;font-size:20px;font-weight:800}.pd-muted,.pd-sub{color:var(--muted)}.pd-spinner{border:5px solid var(--tint);border-top-color:var(--sky);border-radius:50%;width:46px;height:46px;animation:.9s linear infinite pdSpin}@keyframes pdSpin{to{transform:rotate(360deg)}}@keyframes pdFade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.pd-app *,.pd-app :before,.pd-app :after{transition:none!important;animation:none!important}}@media (width<=860px){.pd-lesson{grid-template-columns:1fr}.pd-lesson-side{justify-items:stretch;min-width:0}.pd-timeline>li{grid-template-columns:auto minmax(0,1fr)}.pd-tl-score{grid-column:2;justify-self:start}.pd-modal-head,.pd-modal-body{padding-inline:18px}.pd-hero{text-align:center;grid-template-columns:1fr;gap:24px;padding:24px}.pd-ring{border-inline-end:none;border-bottom:1px solid var(--hair);padding-bottom:24px;justify-content:center;width:100%;padding-inline-end:0;display:flex}.pd-ring-mid{left:50%;transform:translate(-50%)}.pd-hero-side{flex-flow:wrap;justify-content:center}}@keyframes pdRise{0%{opacity:0;filter:blur(4px);transform:translateY(20px)}to{opacity:1;filter:blur();transform:none}}[dir=rtl]{text-align:right;direction:rtl;line-height:1.8}[dir=rtl] .pd-ring-mid{left:auto;right:50%;transform:translate(50%)}[dir=rtl] .pd-card-head{flex-direction:row-reverse}[dir=rtl] .pd-stat{text-align:center;padding:24px 20px}[dir=rtl] .pd-hero{text-align:right;padding:36px 32px}[dir=rtl] .pd-card{padding:28px 24px}[dir=rtl] .pd-header-actions{flex-direction:row-reverse}[dir=rtl] .pd-header{text-align:right;padding:28px 36px}[dir=rtl] .pd-header-text p,[dir=rtl] .pd-sec{padding-right:4px}[dir=rtl] .pd-lesson{padding:20px 24px}.counter{color:var(--accent);background:var(--accent-bg);border:2px solid #0000;border-radius:5px;margin-bottom:24px;padding:5px 10px;font-size:16px;transition:border-color .3s}.counter:hover{border-color:var(--accent-border)}.counter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero{position:relative}.hero .base,.hero .framework,.hero .vite{margin:0 auto;inset-inline:0}.hero .base{z-index:0;width:170px;position:relative}.hero .framework,.hero .vite{position:absolute}.hero .framework{z-index:1;height:28px;top:34px;transform:perspective(2000px)rotate(300deg)rotateX(44deg)rotateY(39deg)scale(1.4)}.hero .vite{z-index:0;width:auto;height:26px;top:107px;transform:perspective(2000px)rotate(300deg)rotateX(40deg)rotateY(39deg)scale(.8)}#center{flex-direction:column;flex-grow:1;place-content:center;place-items:center;gap:25px;display:flex}@media (width<=1024px){#center{gap:18px;padding:32px 20px 24px}}#next-steps{border-top:1px solid var(--border);text-align:left;display:flex}#next-steps>div{flex:1 1 0;padding:32px}@media (width<=1024px){#next-steps>div{padding:24px 20px}}#next-steps .icon{width:22px;height:22px;margin-bottom:16px}@media (width<=1024px){#next-steps{text-align:center;flex-direction:column}}#docs{border-right:1px solid var(--border)}@media (width<=1024px){#docs{border-right:none;border-bottom:1px solid var(--border)}}#next-steps ul{gap:8px;margin:32px 0 0;padding:0;list-style:none;display:flex}#next-steps ul .logo{height:18px}#next-steps ul a{color:var(--text-h);background:var(--social-bg);border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-size:16px;text-decoration:none;transition:box-shadow .3s;display:flex}#next-steps ul a:hover{box-shadow:var(--shadow)}#next-steps ul a .button-icon{width:18px;height:18px}@media (width<=1024px){#next-steps ul{flex-wrap:wrap;justify-content:center;margin-top:20px}#next-steps ul li{flex:calc(50% - 8px)}#next-steps ul a{box-sizing:border-box;justify-content:center;width:100%}}#spacer{border-top:1px solid var(--border);height:88px}@media (width<=1024px){#spacer{height:48px}}.ticks{width:100%;position:relative}.ticks:before,.ticks:after{content:"";border:5px solid #0000;position:absolute;top:-4.5px}.ticks:before{border-left-color:var(--border);left:0}.ticks:after{border-right-color:var(--border);right:0}
