@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/JetBrainsMono-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/JetBrainsMono-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Pretendard Variable;font-weight:45 920;font-style:normal;font-display:swap;src:url(/fonts/PretendardVariable.woff2)format("woff2-variations")}:root{--indigo-50:#eef0ff;--indigo-100:#e0e3ff;--indigo-200:#c6cbff;--indigo-300:#a5a8fb;--indigo-400:#8285f6;--indigo-500:#6366f1;--indigo-600:#4f46e5;--indigo-700:#4338ca;--indigo-800:#3730a3;--indigo-900:#282462;--slate-50:#f8fafc;--slate-100:#f1f3f9;--slate-200:#e7e9f2;--slate-300:#cdd2e1;--slate-400:#97a0b6;--slate-500:#677089;--slate-600:#495168;--slate-700:#333a4d;--slate-800:#1f2433;--slate-900:#11151f;--green-50:#e7f7ee;--green-500:#16a34a;--green-600:#15803d;--amber-50:#fef3c7;--amber-500:#f59e0b;--amber-600:#b45309;--red-50:#fdeaea;--red-500:#ef4444;--red-600:#b91c1c;--brand:var(--indigo-600);--brand-hover:var(--indigo-700);--brand-active:var(--indigo-800);--brand-soft:var(--indigo-50);--brand-soft-text:var(--indigo-700);--on-brand:#fff;--grad-brand:linear-gradient(135deg, var(--indigo-500) 0%, var(--indigo-600) 55%, var(--indigo-700) 100%);--grad-brand-deep:linear-gradient(150deg, var(--indigo-600) 0%, var(--indigo-800) 100%);--grad-ink:linear-gradient(160deg, var(--slate-800) 0%, var(--slate-900) 100%);--grad-sheen:linear-gradient(135deg, #ffffff29 0%, #fff0 60%);--surface-app:#f5f6fb;--surface-card:#fff;--surface-sunken:var(--slate-100);--surface-hover:var(--slate-50);--text-strong:var(--slate-900);--text-body:var(--slate-700);--text-muted:var(--slate-500);--text-faint:var(--slate-400);--text-on-grad:#ffffffeb;--border:var(--slate-200);--border-strong:var(--slate-300);--divider:var(--slate-100);--grade-a:var(--green-500);--grade-a-soft:var(--green-50);--grade-b:var(--amber-500);--grade-b-soft:var(--amber-50);--grade-c:var(--red-500);--grade-c-soft:var(--red-50);--grade-none:var(--slate-400);--trend-up:var(--green-500);--trend-down:var(--red-500);--trend-flat:var(--slate-400);--ring:0 0 0 3px #4f46e547;--font-sans:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", system-ui, "Segoe UI", "Malgun Gothic", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--fs-display:28px;--fs-h1:22px;--fs-h2:18px;--fs-h3:15px;--fs-body:14px;--fs-sm:13px;--fs-xs:12px;--fs-micro:11px;--fs-stat:26px;--fs-stat-lg:32px;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extra:800;--lh-tight:1.2;--lh-snug:1.35;--lh-normal:1.55;--ls-label:.04em;--ls-tight:-.01em;--num-feat:"tnum" 1, "lnum" 1;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--pad-card:16px;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:999px;--control-sm:30px;--control-md:38px;--control-lg:46px;--shadow-xs:0 1px 2px #11151f0f;--shadow-sm:0 1px 3px #11151f17;--shadow-md:0 4px 14px #11151f1a;--shadow-lg:0 10px 28px #11151f29;--shadow-xl:0 20px 48px #11151f38;--shadow-brand:0 6px 18px #4f46e54d;--shadow-brand-sm:0 2px 8px #4f46e53d;--shadow-inset:inset 0 1px 2px #11151f14;--dur-fast:.14s;--dur:.22s;--dur-slow:.36s;--dur-xslow:.56s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--ease-emph:cubic-bezier(.16, 1, .3, 1)}@keyframes um-fade-in{0%{opacity:0}to{opacity:1}}@keyframes um-rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes um-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes um-pop{0%{opacity:0;transform:scale(.8)}60%{transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes um-spin{to{transform:rotate(360deg)}}.um-anim-rise{animation:um-rise-in var(--dur-slow) var(--ease-out) both}.um-anim-fade{animation:um-fade-in var(--dur) var(--ease-out) both}.um-anim-scale{animation:um-scale-in var(--dur) var(--ease-emph) both}.um-anim-pop{animation:um-pop var(--dur-slow) var(--ease-spring) both}.um-stagger>*{animation:um-rise-in var(--dur-slow) var(--ease-out) both}.um-stagger>:first-child{animation-delay:0s}.um-stagger>:nth-child(2){animation-delay:40ms}.um-stagger>:nth-child(3){animation-delay:80ms}.um-stagger>:nth-child(4){animation-delay:.12s}.um-stagger>:nth-child(5){animation-delay:.16s}.um-stagger>:nth-child(6){animation-delay:.2s}.um-stagger>:nth-child(7){animation-delay:.24s}.um-stagger>:nth-child(8){animation-delay:.28s}@media (prefers-reduced-motion:reduce){.um-anim-rise,.um-anim-fade,.um-anim-scale,.um-anim-pop,.um-stagger>*{animation:none!important}}.um-num{font-variant-numeric:tabular-nums lining-nums;font-feature-settings:var(--num-feat)}.um-mono{font-family:var(--font-mono)}.um-eyebrow{font-size:var(--fs-micro);font-weight:var(--fw-semibold);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--text-muted)}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_AMS-Regular.BQhdFMY1.woff2)format("woff2"),url(/_astro/KaTeX_AMS-Regular.DMm9YOAa.woff)format("woff"),url(/_astro/KaTeX_AMS-Regular.DRggAlZN.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Caligraphic-Bold.Dq_IR9rO.woff2)format("woff2"),url(/_astro/KaTeX_Caligraphic-Bold.BEiXGLvX.woff)format("woff"),url(/_astro/KaTeX_Caligraphic-Bold.ATXxdsX0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Caligraphic-Regular.Di6jR-x-.woff2)format("woff2"),url(/_astro/KaTeX_Caligraphic-Regular.CTRA-rTL.woff)format("woff"),url(/_astro/KaTeX_Caligraphic-Regular.wX97UBjC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Fraktur-Bold.CL6g_b3V.woff2)format("woff2"),url(/_astro/KaTeX_Fraktur-Bold.BsDP51OF.woff)format("woff"),url(/_astro/KaTeX_Fraktur-Bold.BdnERNNW.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Fraktur-Regular.CTYiF6lA.woff2)format("woff2"),url(/_astro/KaTeX_Fraktur-Regular.Dxdc4cR9.woff)format("woff"),url(/_astro/KaTeX_Fraktur-Regular.CB_wures.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_Main-Bold.Cx986IdX.woff2)format("woff2"),url(/_astro/KaTeX_Main-Bold.Jm3AIy58.woff)format("woff"),url(/_astro/KaTeX_Main-Bold.waoOVXN0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/_astro/KaTeX_Main-BoldItalic.DxDJ3AOS.woff2)format("woff2"),url(/_astro/KaTeX_Main-BoldItalic.SpSLRI95.woff)format("woff"),url(/_astro/KaTeX_Main-BoldItalic.DzxPMmG6.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_Main-Italic.NWA7e6Wa.woff2)format("woff2"),url(/_astro/KaTeX_Main-Italic.BMLOBm91.woff)format("woff"),url(/_astro/KaTeX_Main-Italic.3WenGoN9.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Main-Regular.B22Nviop.woff2)format("woff2"),url(/_astro/KaTeX_Main-Regular.Dr94JaBh.woff)format("woff"),url(/_astro/KaTeX_Main-Regular.ypZvNtVU.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/_astro/KaTeX_Math-BoldItalic.CZnvNsCZ.woff2)format("woff2"),url(/_astro/KaTeX_Math-BoldItalic.iY-2wyZ7.woff)format("woff"),url(/_astro/KaTeX_Math-BoldItalic.B3XSjfu4.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_Math-Italic.t53AETM-.woff2)format("woff2"),url(/_astro/KaTeX_Math-Italic.DA0__PXp.woff)format("woff"),url(/_astro/KaTeX_Math-Italic.flOr_0UB.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/_astro/KaTeX_SansSerif-Bold.D1sUS0GD.woff2)format("woff2"),url(/_astro/KaTeX_SansSerif-Bold.DbIhKOiC.woff)format("woff"),url(/_astro/KaTeX_SansSerif-Bold.CFMepnvq.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/_astro/KaTeX_SansSerif-Italic.C3H0VqGB.woff2)format("woff2"),url(/_astro/KaTeX_SansSerif-Italic.DN2j7dab.woff)format("woff"),url(/_astro/KaTeX_SansSerif-Italic.YYjJ1zSn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_SansSerif-Regular.DDBCnlJ7.woff2)format("woff2"),url(/_astro/KaTeX_SansSerif-Regular.CS6fqUqJ.woff)format("woff"),url(/_astro/KaTeX_SansSerif-Regular.BNo7hRIc.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Script-Regular.D3wIWfF6.woff2)format("woff2"),url(/_astro/KaTeX_Script-Regular.D5yQViql.woff)format("woff"),url(/_astro/KaTeX_Script-Regular.C5JkGWo-.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size1-Regular.mCD8mA8B.woff2)format("woff2"),url(/_astro/KaTeX_Size1-Regular.C195tn64.woff)format("woff"),url(/_astro/KaTeX_Size1-Regular.Dbsnue_I.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size2-Regular.Dy4dx90m.woff2)format("woff2"),url(/_astro/KaTeX_Size2-Regular.oD1tc_U0.woff)format("woff"),url(/_astro/KaTeX_Size2-Regular.B7gKUWhC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,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)format("woff2"),url(/_astro/KaTeX_Size3-Regular.CTq5MqoE.woff)format("woff"),url(/_astro/KaTeX_Size3-Regular.DgpXs0kz.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Size4-Regular.Dl5lxZxV.woff2)format("woff2"),url(/_astro/KaTeX_Size4-Regular.BF-4gkZK.woff)format("woff"),url(/_astro/KaTeX_Size4-Regular.DWFBv043.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/_astro/KaTeX_Typewriter-Regular.CO6r4hn1.woff2)format("woff2"),url(/_astro/KaTeX_Typewriter-Regular.C0xS9mPB.woff)format("woff"),url(/_astro/KaTeX_Typewriter-Regular.D3Ib7_Hf.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.17.0"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{white-space:nowrap;width:min-content;position:relative}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{flex-direction:row;display:inline-flex}.katex .thinbox{width:0;max-width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}:root{--g-0:#fff;--g-25:#fbfcfe;--g-50:var(--surface-app);--g-100:var(--slate-100);--g-150:#e9ecf4;--g-200:var(--slate-200);--g-300:var(--slate-300);--g-400:var(--slate-400);--g-500:var(--slate-500);--g-600:var(--slate-600);--g-700:var(--slate-700);--g-800:var(--slate-800);--g-900:var(--slate-900);--accent:var(--indigo-600);--accent-2:var(--indigo-500);--accent-700:var(--indigo-700);--accent-50:var(--indigo-50);--accent-100:var(--indigo-100);--accent-ink:var(--indigo-800);--good:var(--green-500);--good-50:var(--green-50);--good-100:#d1fadf;--good-ink:var(--green-600);--warn:var(--amber-500);--warn-50:var(--amber-50);--warn-100:#fde68a;--warn-ink:var(--amber-600);--bad:var(--red-500);--bad-50:var(--red-50);--bad-100:#fbd5d5;--bad-ink:var(--red-600);--bg:var(--surface-app);--card:var(--surface-card);--line:var(--border);--ink:var(--slate-800);--mut:var(--text-muted);--grad-accent:var(--grad-brand);--grad-head:var(--grad-brand-deep);--grad-tint:linear-gradient(180deg, var(--g-25), var(--g-0));--sh-1:var(--shadow-sm);--sh-2:var(--shadow-md);--sh-3:var(--shadow-lg);--r-sm:7px;--r-md:10px;--r-lg:12px;--r-xl:16px;--ring-focus:var(--ring)}*{box-sizing:border-box}body{font-family:var(--font-sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}a{color:inherit}.card .v,.tri-kpi .v,.ring>span,.tri-delta,.tri-stable-rate{font-variant-numeric:tabular-nums lining-nums}.topbar{backdrop-filter:saturate(140%)blur(8px);border-bottom:1px solid var(--line);z-index:5;background:#ffffffd9;align-items:center;gap:18px;padding:16px 24px;display:flex;position:sticky;top:0;box-shadow:0 1px #11151f08}.brand{letter-spacing:-.02em;color:var(--text-strong);align-items:center;gap:10px;font-size:17px;font-weight:800;text-decoration:none;display:inline-flex}.brand-logo{background:var(--grad-brand);width:34px;height:34px;box-shadow:var(--shadow-brand-sm);border-radius:9px;flex:none;place-items:center;display:inline-grid;position:relative;overflow:hidden}.brand-logo>span{z-index:1;color:#fff;letter-spacing:-.04em;font-size:17px;font-weight:800;position:relative}.brand-logo:after{content:"";background:var(--grad-sheen);position:absolute;inset:0}.brand-accent{color:var(--brand)}main{max-width:1080px;margin:0 auto;padding:13px}footer{max-width:1080px;margin:0 auto;padding:13px 13px 28px;font-size:12px}.muted{color:var(--mut)}h1{letter-spacing:-.02em;margin:4px 0 2px;font-size:21px}h2{letter-spacing:-.01em;color:var(--g-700);margin:24px 0 11px;font-size:14px}.sub{color:var(--mut);margin-bottom:16px;font-size:13px}.cards{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:12px 0;display:grid}.card,.box{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1)}.card{padding:13px 15px}.box{padding:16px 18px}.card .v{letter-spacing:-.02em;font-size:23px;font-weight:700}.card .l{color:var(--mut);margin-top:1px;font-size:12px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border-bottom:1px solid var(--line);text-align:center;padding:8px 9px}th{color:var(--mut);cursor:pointer;user-select:none;font-weight:600}td.l,th.l{text-align:left}td.nw,th.nw{white-space:nowrap}tr.row:hover{background:var(--accent-50)}.tablewrap{-webkit-overflow-scrolling:touch;overflow-x:auto}#tbl th[data-k]{white-space:nowrap;position:relative}#tbl th[data-k]:after{content:"⇅";opacity:.3;margin-left:3px;font-size:10px}#tbl th.sorted-asc:after{content:"↑";opacity:.85}#tbl th.sorted-desc:after{content:"↓";opacity:.85}a.name{color:var(--accent);font-weight:600;text-decoration:none}.up{color:var(--good)}.dn{color:var(--bad)}.flat{color:var(--mut)}.pill{letter-spacing:-.01em;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700;display:inline-block}.g-good{background:var(--good-50);color:var(--good-ink)}.g-warn{background:var(--warn-50);color:var(--warn-ink)}.g-bad{background:var(--bad-50);color:var(--bad-ink)}.grid{gap:14px;display:grid}@media (width>=760px){.grid.cols2{grid-template-columns:1fr 1fr}}.ans{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.ans .correct{color:var(--good)}.ans .stu{color:var(--bad)}details>summary{cursor:pointer;color:var(--accent);margin-top:6px;font-size:12px}.hw-svg{width:100%;height:auto;display:block}.ox{flex-wrap:wrap;gap:3px;display:flex}.ox span{color:#fff;border-radius:3px;place-items:center;width:16px;height:16px;font-size:10px;display:grid}.meta{color:var(--mut);margin-top:4px;font-size:11px}.back{color:var(--accent);font-size:13px;text-decoration:none}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:2px;display:flex}.page-head h1{margin:4px 0}.weekpick{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-1);align-items:center;gap:2px;padding:3px;font-size:13px;display:inline-flex}.weekpick .wp-ico{padding:0 2px 0 5px;font-size:13px}.weekpick .wp-nav{width:26px;height:28px;color:var(--mut);border-radius:7px;place-items:center;font-size:19px;font-weight:700;line-height:1;text-decoration:none;display:inline-grid}.weekpick .wp-nav:hover{background:var(--g-100);color:var(--accent)}.weekpick .wp-nav.off{opacity:.28;pointer-events:none}.weekpick .wp-sel-wrap{align-items:center;display:flex;position:relative}.weekpick select{appearance:none;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:5px 23px 5px 8px;font-size:13px;font-weight:600}.weekpick select:hover{background:var(--g-50)}.weekpick select:focus{box-shadow:var(--ring-focus);outline:none}.weekpick .wp-sel-wrap:after{content:"▾";pointer-events:none;color:var(--mut);font-size:10px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.nav{gap:2px;display:flex}.nav a{color:var(--g-500);border-radius:var(--r-sm);padding:6px 12px;font-size:13px;font-weight:600;text-decoration:none;transition:background .12s,color .12s}.nav a:hover{background:var(--g-100);color:var(--g-800)}.nav a.active{background:var(--accent-50);color:var(--accent-700)}.sol{margin-top:10px}.sol>summary.sol-btn{cursor:pointer;background:var(--accent-50);border:1px solid var(--accent-100);color:var(--accent-700);border-radius:var(--r-md);flex-wrap:wrap;align-items:center;gap:8px;padding:11px 14px;font-size:14px;font-weight:700;list-style:none;display:flex}.sol>summary.sol-btn::-webkit-details-marker{display:none}.sol>summary.sol-btn:hover{background:var(--accent-100)}.sol-btn-main{font-size:14px}.sol-btn .sol-ch{color:var(--accent);font-size:12px;font-weight:500}.sol-btn .sol-arrow{margin-left:auto;transition:transform .15s}.sol[open]>summary.sol-btn .sol-arrow{transform:rotate(180deg)}.sol-body{background:var(--g-25);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);margin-top:8px;padding:14px 16px;font-size:13.5px;line-height:1.7}.sol-row{margin:6px 0}.sol-label{color:var(--accent);margin-right:6px;font-weight:700;display:inline-block}.sol-steps{flex-direction:column;gap:7px;margin:6px 0 8px;padding-left:22px;display:flex}.sol-steps li{line-height:1.65}.sol-sec{color:var(--accent);margin:12px 0 2px;font-size:13.5px;font-weight:700}.sol-row.sol-bridge{background:var(--accent-50);border-left:3px solid var(--accent-2);border-radius:6px;padding:7px 11px}.sol-row.concept{border-top:1px dashed var(--g-200);margin-top:12px;padding-top:9px}.sol-row.concept .sol-label{color:var(--accent-700)}.sol-row.ans-row{font-size:14px}.sol-ans{color:var(--good-ink);font-size:15px}.sol-row.diag{border-top:1px dashed var(--g-200);color:var(--bad-ink);margin-top:10px;padding-top:8px}.sol-row.diag .sol-label{color:var(--bad-ink)}.sol-row.note{border-top:1px dashed var(--g-200);color:var(--good-ink);margin-top:10px;padding-top:8px}.sol-row.note .sol-label{color:var(--good-ink)}.sol-row.caution{background:var(--warn-50);border-left:3px solid var(--warn);color:var(--warn-ink);border-radius:6px;margin-top:10px;padding:7px 11px}.sol-row.caution .sol-label{color:var(--warn-ink)}.sol-res{border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700}.sol-res.ok{background:var(--good-50);color:var(--good-ink)}.sol-res.no{background:var(--bad-50);color:var(--bad-ink)}.daystrip{flex-direction:column;gap:10px;display:flex}.daycard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:0}.daycard>summary{color:var(--ink);align-items:center;gap:12px;margin:0;padding:10px 14px;font-size:14px;list-style:none;display:flex}.daycard>summary::-webkit-details-marker{display:none}.daycard>summary:before{content:"▸";color:var(--mut);font-size:12px}.daycard[open]>summary:before{content:"▾"}.dc-top{font-size:15px}.dc-mid{color:var(--mut);flex:1;font-size:12px}.card-list{flex-direction:column;gap:8px;padding:0 14px 14px;display:flex}.mcard{background:var(--g-50);border:1px solid var(--line);border-radius:var(--r-md)}.mcard>summary.mc-head{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;margin:0;padding:9px 12px;list-style:none;display:flex}.mcard>summary.mc-head::-webkit-details-marker{display:none}.mc-name{flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.mc-tag{background:var(--accent-50);color:var(--accent-ink);border-radius:999px;padding:1px 7px;font-size:10px;font-weight:600}.mc-course{font-size:11px;font-weight:400}.mc-stat{flex:none;align-items:center;gap:8px;display:flex}.oxmini{font-size:11px;font-weight:600}.oxmini.ok{color:var(--good)}.oxmini.no{color:var(--bad)}.an-dir{margin:4px 0 10px;font-size:13px;line-height:1.65}.an-h{margin:12px 0 6px;font-size:13px;font-weight:700}.an-list{flex-direction:column;gap:7px;margin:0 0 4px;padding-left:18px;font-size:13px;display:flex}.an-list li{line-height:1.5}.an-ch{font-weight:600}.an-tip{color:var(--ink);margin-top:2px;font-size:12px;line-height:1.55}.an-list.detail{gap:8px;padding-left:0}.an-chapter{border:1px solid var(--line);background:#f8fafc;border-radius:10px;list-style:none;overflow:hidden}.an-csum{cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px;padding:9px 12px;font-size:13px;list-style:none;display:flex}.an-csum::-webkit-details-marker{display:none}.an-csub{font-size:11px}.an-arrow{color:var(--mut);margin-left:auto;font-size:11px;transition:transform .15s}.an-chapter[open] .an-arrow{transform:rotate(180deg)}.an-csum:hover{background:#f1f5f9}.an-cbody{border-top:1px solid var(--line);padding:8px 12px 11px}.an-chapter .an-tip{margin-top:5px}.an-chapter .an-tip:first-child{margin-top:0}.an-label{color:var(--accent);margin-right:5px;font-weight:700;display:inline-block}.an-tip.an-tip-think{background:var(--accent-50);border-left:3px solid var(--accent-2);border-radius:6px;padding:5px 10px}.an-tip.an-tip-think .an-label{color:var(--accent-700)}.prob-nm{flex:1;min-width:0}.trail{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:3px;max-width:60%;display:inline-flex}.trk{white-space:nowrap;border-radius:5px;padding:1px 6px;font-size:10px;font-weight:700}.trk-o{background:var(--good-50);color:var(--good-ink)}.trk-x{background:var(--bad-50);color:var(--bad-ink)}.trk-k{background:var(--warn-50);color:var(--warn-ink)}.trk-lec{background:var(--accent-50);color:var(--accent-ink)}.trk-u{background:var(--g-100);color:var(--g-500)}.trsep{color:#cbd5e1;font-size:10px}.day-list{flex-direction:column;padding:2px 12px 10px;font-size:12.5px;display:flex}.day-row{align-items:center;gap:9px;display:flex}.oxdot{color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:19px;height:19px;font-size:11px;font-weight:800;display:inline-flex}.oxdot.ok{background:var(--good)}.oxdot.no{background:var(--bad)}.oxdot.na{background:var(--g-300)}.prob-t{flex:0 0 36px;font-size:11px}.prob-dur{color:#475569;white-space:nowrap;background:#eef2f7;border-radius:5px;flex:none;padding:1px 6px;font-size:10px;font-weight:700}.prob{border-top:1px solid var(--line)}.prob:first-child{border-top:none}.prob>summary{cursor:pointer;border-radius:6px;padding:9px 4px;list-style:none}.prob>summary::-webkit-details-marker{display:none}.prob>summary:hover,.prob[open]>summary{background:#f8fafc}.prob>summary .day-row:after{content:"🔍";opacity:.35;margin-left:4px;font-size:10px}.prob[open]>summary .day-row:after{opacity:.7}.prob-x>summary .prob-nm{color:var(--bad-ink)}.prob-detail{flex-direction:column;gap:11px;padding:8px 6px 16px 20px;display:flex}.prob-panel{border:1px solid var(--line);background:#fff;border-radius:10px;max-width:560px;overflow:hidden}.pp-label{color:var(--mut);border-bottom:1px solid var(--line);background:#f8fafc;padding:5px 10px;font-size:11px;font-weight:700}.prob-img{background:#fff;width:100%;margin:0;display:block}.ans-compare{grid-template-columns:1fr 1fr;gap:8px;max-width:560px;display:grid}.ac-cell{border:1px solid var(--line);border-radius:10px;padding:8px 11px}.ac-h{margin-bottom:3px;font-size:11px;font-weight:700}.ac-stage{color:inherit;background:#0000000f;border-radius:5px;margin-left:3px;padding:0 5px;font-size:9.5px;font-weight:700}.ac-v{word-break:break-word;font-size:15px;font-weight:600;line-height:1.35}.ac-correct{background:#f0fdf4;border-color:#bbf7d0}.ac-correct .ac-h{color:#15803d}.ac-correct .ac-v{color:#166534}.ac-stu{background:#fef2f2;border-color:#fecaca}.ac-stu .ac-h,.ac-stu .ac-v{color:#b91c1c}.ac-ok{background:#f0fdf4;border-color:#bbf7d0}.ac-ok .ac-h,.ac-ok .ac-v{color:#166534}.ans-ok{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;align-self:flex-start;padding:7px 11px;font-size:13px;font-weight:600}.prob-meta{color:var(--mut);flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:12px;display:flex}.prob-meta .pm-warn{color:var(--warn);font-weight:600}.prob-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.wd-grid{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;align-items:stretch;gap:8px;margin-bottom:12px;padding-bottom:6px;display:flex;overflow-x:auto}.wd-card{background:var(--card);border:1px solid var(--line);border-radius:12px;flex-direction:column;flex:1 0 134px;min-width:134px;padding:0;display:flex;overflow:hidden;box-shadow:0 1px 2px #1018280a}.wd-card.empty{opacity:.5}.wd-day{background:var(--g-50);border-bottom:1px solid var(--line);white-space:nowrap;justify-content:space-between;align-items:center;gap:6px;padding:7px 11px;display:flex}.wd-name{font-size:13px;font-weight:700}.wd-cnt{background:var(--g-150);min-width:20px;height:19px;color:var(--g-600);border-radius:999px;place-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-grid}.wd-card.sat .wd-day{background:var(--accent-50)}.wd-card.sat .wd-cnt{background:var(--accent-100);color:var(--accent-ink)}.wd-card.sun .wd-day{background:var(--bad-50)}.wd-card.sun .wd-cnt{background:var(--bad-100);color:var(--bad-ink)}.wd-students{flex-wrap:wrap;align-content:flex-start;gap:5px;padding:9px 10px;display:flex}.wd-chip{background:var(--g-100);color:var(--g-700);white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:500;text-decoration:none;transition:background .12s,color .12s}.wd-chip:hover{background:var(--accent);color:#fff}.wd-none{color:var(--mut);font-size:12px}.daybadges{gap:3px;display:inline-flex}.db{border-radius:var(--r-sm);background:var(--g-100);width:19px;height:19px;color:var(--g-600);place-items:center;font-size:11px;font-weight:700;display:inline-grid}.db.sat{background:var(--accent-50);color:var(--accent-ink)}.db.sun{background:var(--bad-50);color:var(--bad-ink)}.grade-tag{border-radius:var(--r-sm);background:var(--g-100);color:var(--g-600);border-left:2.5px solid var(--g-300);vertical-align:middle;margin-right:5px;padding:1px 6px 1px 7px;font-size:10px;font-weight:700;display:inline-block}.grade-tag.gt-e{border-left-color:var(--good);color:var(--g-700)}.grade-tag.gt-m{border-left-color:var(--accent);color:var(--g-700)}.grade-tag.gt-h{color:var(--g-700);border-left-color:#7c3aed}.filterbar{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px;display:flex}.fbtn{color:var(--g-600);background:var(--g-0);border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:5px 13px;font-size:12px;font-weight:600;transition:background .12s,color .12s,border-color .12s}.fbtn:hover{background:var(--g-50);color:var(--g-800);border-color:var(--g-200)}.fbtn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.fbtn .fcnt{opacity:.65;margin-left:2px;font-weight:700}.ranklist{flex-direction:column;gap:6px;display:flex}.rankrow{align-items:center;gap:8px;font-size:13px;display:flex}.rankrow .rk-n{flex:1}.rankrow .rk-x{font-size:11px}.chap-list{flex-direction:column;gap:8px;display:flex}.chap{padding:0}.chap>summary{color:var(--ink);align-items:center;gap:10px;margin:0;padding:12px 16px;font-size:14px;list-style:none;display:flex}.chap>summary::-webkit-details-marker{display:none}.chap>summary:before{content:"▸";color:var(--mut);font-size:12px}.chap[open]>summary:before{content:"▾"}.chap .ch-name{flex:1;font-weight:600}.chap .ch-grade,.chap .ch-meta{font-size:12px}.chap .ch-sem{color:var(--mut);white-space:nowrap;background:#f1f5f9;border-radius:5px;padding:1px 7px;font-size:11px;font-weight:600}.chap-body{padding:0 16px 16px}.ring{--p:0;--c:var(--g-300);background:conic-gradient(var(--c) calc(var(--p) * 1%), var(--g-150) 0);border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid;position:relative}.ring:before{content:"";background:var(--g-0);border-radius:50%;position:absolute;inset:4px}.ring>span{z-index:1;color:var(--g-700);letter-spacing:-.02em;font-size:11px;font-weight:800;position:relative}.ring.lg{width:54px;height:54px}.ring.lg>span{font-size:12.5px}.ring.sm{width:40px;height:40px}.ring.sm>span{font-size:10.5px}.ring.empty{background:var(--g-100)}.ring.empty>span{color:var(--g-400)}.gsec{border:1px solid var(--line);border-radius:var(--r-xl);background:var(--card);box-shadow:var(--sh-1);margin:12px 0;overflow:hidden}.gsec-head{cursor:pointer;color:#fff;background:var(--grad-head);align-items:center;gap:13px;padding:13px 17px;list-style:none;display:flex;position:relative}.gsec-head::-webkit-details-marker{display:none}.gsec-e .gsec-head{background:linear-gradient(105deg,#14532d 0%,#166534 55%,#15803d 100%)}.gsec-h .gsec-head{background:linear-gradient(105deg,#4c1d95 0%,#6d28d9 60%,#7c3aed 100%)}.gsec-badge{letter-spacing:-.01em;border-radius:var(--r-md);background:#ffffff29;border:1px solid #ffffff52;padding:4px 12px;font-size:15px;font-weight:800}.gsec-meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.gsec-title{letter-spacing:-.01em;font-size:15px;font-weight:700}.gsec-stats{opacity:.85;font-size:11.5px}.gsec-head .ring{box-shadow:0 0 0 3px #ffffff47}.gsec-head .ring:before{background:var(--g-0)}.gsec-arrow{opacity:.9;font-size:13px;transition:transform .18s}.gsec[open] .gsec-arrow{transform:rotate(180deg)}.gsec-body{padding:12px 14px 16px}.subsec+.subsec{margin-top:14px}.sub-tag{color:var(--g-700);background:var(--g-100);border-radius:999px;margin-bottom:9px;padding:3px 12px;font-size:11.5px;font-weight:700;display:inline-block}.ucard-grid{grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:10px;display:grid}.ucard{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);padding:11px 13px;transition:box-shadow .15s,transform .15s,border-color .15s}details.ucard>summary{cursor:pointer;padding:11px 13px;list-style:none}details.ucard>summary::-webkit-details-marker{display:none}.ucard:hover{box-shadow:var(--sh-2);border-color:var(--g-200);transform:translateY(-1px)}.ucard.empty{background:var(--g-25);border-style:dashed;padding:11px 13px}.ucard.range{background:var(--g-25)}.uc-guide-btn{cursor:pointer;color:var(--accent-700);background:var(--accent-50);border:1px solid var(--accent-100);border-radius:var(--r-sm);align-items:center;gap:5px;margin-top:9px;padding:5px 10px;font-size:11.5px;font-weight:700;transition:background .12s;display:inline-flex}.uc-guide-btn:hover{background:var(--accent-100)}.uc-top{align-items:center;gap:9px;display:flex}.uc-name{flex:1;min-width:0;font-size:13.5px;font-weight:700;line-height:1.3}.ucard.empty .uc-name{color:#94a3b8;font-weight:600}.uc-sub{color:var(--mut);margin-top:7px;font-size:11.5px}.uc-dist{background:#eef1f4;border-radius:999px;gap:2px;height:9px;margin-top:8px;display:flex;overflow:hidden}.uc-dist .seg{min-width:3px}.uc-expand{color:var(--accent);margin-top:9px;font-size:11px;font-weight:700;display:inline-block}details.ucard[open]>summary .uc-expand:after{content:" (접기)";color:var(--mut);font-weight:400}.uc-body{border-top:1px dashed var(--line);margin-top:2px;padding:9px 13px 13px}.sec-label{color:var(--mut);margin:8px 0 6px;font-size:12px;font-weight:600}table.types td{text-align:left;border-bottom:1px solid var(--line);font-size:12px}.bar{background:var(--g-100);border-radius:999px;height:8px;overflow:hidden}.bar-fill{border-radius:999px;height:100%}.weak-students{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.ws-pill{background:var(--bad-50);color:var(--bad-ink);border-radius:999px;padding:2px 8px;font-size:11px;text-decoration:none}.hwm-stages{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.hwm-stage-btn{border:1px solid var(--line);color:var(--mut);cursor:pointer;background:#fff;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:5px 13px;font-size:12px;font-weight:600;line-height:1.15;display:inline-flex}.hwm-stage-btn .hsb-lbl{font-size:12px;font-weight:700}.hwm-stage-btn .hsb-t{opacity:.72;white-space:nowrap;font-size:9.5px;font-weight:600}.hwm-stage-btn:hover:not([disabled]){border-color:var(--accent)}.hwm-stage-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.hwm-stage-btn.active .hsb-t{opacity:.85}.hwm-stage-btn[disabled]{opacity:.38;cursor:not-allowed;background:#f8fafc}.ptable{flex-direction:column;gap:7px;padding:8px 10px 12px;display:flex}.prow{border-radius:var(--r-md);border:1px solid var(--line);background:var(--g-0);cursor:pointer;box-shadow:var(--sh-1);grid-template-columns:auto 1fr auto auto 18px;align-items:center;gap:14px;padding:13px 15px;transition:box-shadow .15s,transform .12s,border-color .15s;display:grid}.prow.r-o{border-color:var(--good-100)}.prow.r-x{border-color:var(--bad-100)}.prow.r-k{border-color:var(--warn-100)}.prow:hover{box-shadow:var(--sh-2);transform:translateY(-1px)}.prow:focus-visible{box-shadow:var(--ring-focus);outline:none}.oxbadge{white-space:nowrap;color:#fff;letter-spacing:.03em;border-radius:999px;padding:4px 11px;font-size:11px;font-weight:800}.oxbadge.ok{background:var(--good)}.oxbadge.no{background:var(--bad)}.oxbadge.na{background:var(--warn)}.prow-nm{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13.5px;overflow:hidden}.prow-ch{font-weight:700}.prow-name{font-weight:400}.prow-trail{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:3px;display:inline-flex}.prow-dur{color:var(--g-600);background:var(--g-50);border:1px solid var(--line);white-space:nowrap;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700}.prow-dur.empty{display:none}.prow-go{color:var(--g-300);text-align:center;font-size:17px;font-weight:800;transition:transform .12s,color .12s}.prow:hover .prow-go{color:var(--accent);transform:translate(3px)}.pmodal{z-index:60;justify-content:center;align-items:flex-start;padding:3vh 14px;display:flex;position:fixed;inset:0;overflow-y:auto}.pmodal[hidden]{display:none}.pmodal-back{background:#0f172a94;position:fixed;inset:0}.pmodal-box{background:#fff;border-radius:16px;width:100%;max-width:1280px;max-height:94vh;position:relative;overflow:auto;box-shadow:0 18px 60px #0000005c}.pmodal-head{z-index:5;border-bottom:1px solid var(--line);background:#fff;flex-wrap:nowrap;align-items:center;gap:11px;padding:13px 16px;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #0f172a0a}.pmodal-head #pmGrade{flex:none}.pmodal-title{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:14.5px;font-weight:700;overflow:hidden}.pmodal-headmeta{color:var(--mut);white-space:nowrap;flex:none;align-items:center;gap:10px;font-size:12px;display:inline-flex}.pmodal-headmeta .pm-time{color:var(--accent);font-weight:700}.pmodal-headmeta .pm-warn{color:var(--warn);font-weight:700}.pmodal-x{cursor:pointer;width:30px;height:30px;color:var(--ink);background:#f1f5f9;border:none;border-radius:8px;flex:none;font-size:14px}.pmodal-x:hover{background:#e2e8f0}.pmodal-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px;padding:16px;display:grid}@media (width<=820px){.pmodal-grid{grid-template-columns:1fr}}.pmodal-left{flex-direction:column;align-items:center;gap:11px;min-width:0;display:flex}.pmodal-hwbar{flex-wrap:wrap;align-items:center;gap:8px 14px;width:100%;max-width:560px;display:flex}.pmodal-hwbar .hwm-stages{margin-bottom:0}.pmodal-ans{width:100%;max-width:560px}.pmc-wrap{border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;max-width:560px;overflow:hidden}.pmc-canvas{width:100%;position:relative}.pmc-canvas img{width:100%;display:block;position:static}.pmodal-right{min-width:0}.pmodal-soltitle{margin-bottom:8px;font-size:13px;font-weight:800}.pmodal-sol{min-width:0}.pmodal-sol .sol-btn{display:none}.pm-nosol{border:1px dashed var(--line);border-radius:10px;padding:12px;font-size:12.5px}.tri-kpis .tri-kpi{text-align:left;cursor:pointer;font:inherit;color:inherit;transition:border-color .12s,box-shadow .12s,transform .12s}.tri-kpi:hover{box-shadow:var(--sh-2);transform:translateY(-1px)}.tri-kpi.active{border-color:var(--accent);box-shadow:var(--ring-focus)}.tri-kpi .v{font-size:22px;font-weight:700;line-height:1.1}.tri-kpi.k-high .v{color:var(--bad)}.tri-kpi.k-med .v{color:var(--warn)}.tri-kpi.k-ok .v{color:var(--good)}.tri-list{flex-direction:column;gap:9px;margin:4px 0 18px;display:flex}.tri-list.is-empty-filtered:after{content:"조건에 맞는 학생이 없습니다";text-align:center;color:var(--mut);padding:26px 0;font-size:13px;display:block}.tri-item{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-1);transition:box-shadow .15s,border-color .15s,transform .12s;position:relative;overflow:hidden}.tri-item:not([open]):hover{box-shadow:var(--sh-2);border-color:var(--g-200);transform:translateY(-1px)}.tri-item[open]{box-shadow:var(--sh-2);border-color:var(--g-200)}.tri-item:focus-within{box-shadow:var(--sh-2), var(--ring-focus);outline:none}.tri-row{cursor:pointer;grid-template-columns:minmax(0,1fr) auto 26px;align-items:center;gap:16px;padding:13px 15px;list-style:none;display:grid}.tri-row::-webkit-details-marker{display:none}.tri-row:hover{background:var(--g-25)}.sev-high{border-color:var(--bad-100)}.sev-med{border-color:var(--warn-100)}.tri-status{flex:none;align-items:center;gap:6px;display:inline-flex}.tri-dot{border-radius:50%;flex:none;width:8px;height:8px}.sev-high .tri-dot{background:var(--bad);box-shadow:0 0 0 3px var(--bad-50)}.sev-med .tri-dot{background:var(--warn);box-shadow:0 0 0 3px var(--warn-50)}.tri-sevlabel{letter-spacing:.02em;font-size:10.5px;font-weight:800}.sev-high .tri-sevlabel{color:var(--bad-ink)}.sev-med .tri-sevlabel{color:var(--warn-ink)}.tri-id{align-items:center;gap:13px;min-width:0;display:flex}.tri-idmain{min-width:0}.tri-nameline{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.tri-name{letter-spacing:-.01em;font-size:15px;font-weight:700}.tri-delta{font-size:12px;font-weight:700}.tri-meta{color:var(--mut);flex-wrap:wrap;align-items:center;gap:6px;margin-top:3px;font-size:12px;display:flex}.tri-meta .grade-tag{margin-right:2px}.tri-sep{color:var(--g-300)}.tri-weak{color:var(--warn-ink)}.tri-days{gap:3px;margin-top:6px;display:inline-flex}.tri-flags{flex-wrap:wrap;place-content:center flex-start;gap:6px;min-width:0;display:flex}.tri-chip{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;padding:3px 9px 3px 7px;font-size:11.5px;font-weight:600;line-height:1.3;display:inline-flex}.tri-chip-ico{color:var(--g-400);font-size:10px}.f-drop,.f-low,.f-inactive,.f-weak,.f-notknow,.f-anomaly{background:var(--g-100);color:var(--g-600)}.tri-chip.f-high{font-weight:800}.f-drop.f-high{background:var(--bad-50);color:var(--bad-ink);border-color:var(--bad-100)}.f-low.f-high,.f-weak.f-high{background:var(--warn-50);color:var(--warn-ink);border-color:var(--warn-100)}.f-notknow.f-high,.f-anomaly.f-high{background:var(--accent-50);color:var(--accent-ink);border-color:var(--accent-100)}.f-inactive.f-high{background:var(--g-200);color:var(--g-700);border-color:var(--g-300)}.f-high .tri-chip-ico{color:currentColor;opacity:.8}.tri-go{color:#b9c1cd;justify-self:end;font-size:14px;font-weight:800;line-height:1;transition:transform .15s,color .12s}.tri-row:hover .tri-go{color:var(--accent)}.tri-item[open] .tri-go{color:var(--accent);transform:rotate(180deg)}.tri-detail{border-top:1px solid var(--line);padding:2px 16px 15px 18px}.tri-d-grid{grid-template-columns:1fr 1fr;gap:10px;margin:11px 0;display:grid}@media (width<=560px){.tri-d-grid{grid-template-columns:1fr}}.tri-d-col{border:1px solid var(--line);border-radius:10px;padding:9px 11px}.tri-d-good{background:var(--good-50);border-color:var(--good-100)}.tri-d-bad{background:var(--bad-50);border-color:var(--bad-100)}.tri-d-h{margin-bottom:5px;font-size:12px;font-weight:800}.tri-d-good .tri-d-h{color:var(--good-ink)}.tri-d-bad .tri-d-h{color:var(--bad-ink)}.tri-d-item{font-size:12.5px;line-height:1.5}.tri-d-item b{font-weight:700}.tri-d-item.muted{color:var(--mut);margin-top:2px;font-size:11.5px}.tri-d-none{color:var(--mut);font-size:11.5px;line-height:1.5}.tri-d-tip{background:var(--g-50);border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-size:12.5px;line-height:1.6}.tri-d-tiprow{margin:2px 0}.tri-d-tiprow.tri-d-think{background:var(--accent-50);border-left:3px solid var(--accent-2);border-radius:6px;margin-top:5px;padding:4px 9px}.tri-d-lbl{color:var(--accent);margin-right:5px;font-weight:800;display:inline-block}.tri-d-think .tri-d-lbl{color:var(--accent-700)}.tri-d-link{color:var(--accent);margin-top:11px;font-size:12.5px;font-weight:700;text-decoration:none;display:inline-block}.tri-d-link:hover{text-decoration:underline}.tri-empty{text-align:center;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:40px 16px;box-shadow:0 1px 2px #1018280a}.tri-empty-ico{width:52px;height:52px;color:var(--good);background:var(--good-100);border-radius:50%;place-items:center;margin:0 auto 10px;font-size:26px;font-weight:800;display:grid}.tri-empty-t{font-size:15px;font-weight:700}.tri-empty-s{margin-top:4px;font-size:13px}.tri-stable{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 1px 2px #1018280a}.tri-stable>summary{cursor:pointer;align-items:center;gap:8px;padding:12px 15px;font-size:13px;font-weight:600;list-style:none;display:flex}.tri-stable>summary::-webkit-details-marker{display:none}.tri-stable>summary:after{content:"▾";color:var(--mut);margin-left:auto;font-size:11px;transition:transform .15s}.tri-stable[open]>summary:after{transform:rotate(180deg)}.tri-stable-dot{background:var(--good-100);width:19px;height:19px;color:var(--good-ink);border-radius:50%;place-items:center;font-size:11px;font-weight:800;display:inline-grid}.tri-stable-hint{font-size:12px;font-weight:400}.tri-stable-body{border-top:1px solid var(--line);flex-wrap:wrap;gap:6px;padding:12px 15px 15px;display:flex}.tri-stable-chip{background:var(--good-50);color:var(--good-ink);border:1px solid var(--good-100);border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12.5px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:inline-flex}.tri-stable-chip:hover{background:var(--good);color:#fff;border-color:var(--good)}.tri-stable-chip:hover .tri-stable-rate{color:#eafff0}.tri-stable-rate{opacity:.8;font-size:11px;font-weight:700}@media (width<=680px){.tri-row{grid-template-columns:1fr 22px;grid-template-areas:"id go""flags flags";gap:10px 12px;padding-left:16px}.tri-id{grid-area:id}.tri-flags{grid-area:flags}.tri-go{grid-area:go;align-self:start}.tri-name{font-size:14.5px}}.umodal{z-index:60;justify-content:center;align-items:flex-start;padding:6vh 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.umodal[hidden]{display:none}.umodal-back{backdrop-filter:blur(2px);background:#161b228c;position:fixed;inset:0}.umodal-box{background:var(--card);border-radius:var(--r-xl);width:100%;max-width:640px;max-height:88vh;box-shadow:var(--sh-3);border:1px solid var(--line);position:relative;overflow:auto}.umodal-head{z-index:2;background:var(--grad-head);color:#fff;align-items:center;gap:10px;padding:14px 18px;display:flex;position:sticky;top:0}.umodal-head .grade-tag{color:#fff;background:#ffffff2e;border-left-color:#fff9}.umodal-title{letter-spacing:-.01em;flex:auto;min-width:0;font-size:16px;font-weight:700}.umodal-x{cursor:pointer;border-radius:var(--r-sm);color:#fff;background:#ffffff26;border:none;flex:none;width:30px;height:30px;font-size:13px}.umodal-x:hover{background:#ffffff47}.umodal-body{flex-direction:column;gap:18px;padding:18px;display:flex}.um-sec[hidden]{display:none}.um-h{color:var(--g-800);letter-spacing:-.01em;align-items:center;gap:7px;margin-bottom:8px;font-size:13px;font-weight:800;display:flex}.um-ico{font-size:14px}.um-body{color:var(--g-700);margin:0;font-size:13.5px;line-height:1.72}.um-types{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.um-types li{color:var(--g-700);background:var(--g-50);border:1px solid var(--line);border-radius:var(--r-md);padding:9px 12px 9px 30px;font-size:13px;line-height:1.55;position:relative}.um-types li:before{content:"";background:var(--accent);border-radius:50%;width:7px;height:7px;position:absolute;top:15px;left:12px}.um-high{background:var(--accent-50);border:1px solid var(--accent-100);border-radius:var(--r-md);padding:13px 15px}.um-high .um-h{color:var(--accent-700)}@media (width<=560px){.umodal{padding:3vh 12px}.umodal-box{max-height:92vh}.umodal-title{font-size:15px}}:root{--mo-ease:cubic-bezier(.2, .7, .3, 1);--mo-ease-io:cubic-bezier(.4, 0, .2, 1);--mo-dur:.22s;--mo-rise:8px}@property --p{syntax:"<number>";inherits:false;initial-value:0}.reveal{opacity:0;transform:translate3d(0, var(--mo-rise), 0);transition:opacity var(--mo-dur) var(--mo-ease), transform var(--mo-dur) var(--mo-ease);transition-delay:calc(min(var(--i,0), 12) * 34ms)}.reveal.in{opacity:1;transform:translate(0,0)}.reveal-soft{opacity:0;transition:opacity .2s var(--mo-ease), transform .2s var(--mo-ease);transform:translateY(6px)}.reveal-soft.in,.no-js .reveal,.no-js .reveal-soft{opacity:1;transform:none}.ring{transition:--p .9s var(--mo-ease)}.ring.ring-anim{--p:0}.tri-item[open]>.tri-detail,details.ucard[open]>.uc-body{animation:detailOpen var(--mo-dur) var(--mo-ease) both}@keyframes detailOpen{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.card,.tri-kpi,.wd-card{transition:transform .14s var(--mo-ease-io), box-shadow .14s var(--mo-ease-io), border-color .14s var(--mo-ease-io)}.card:hover,.wd-card:hover{box-shadow:var(--sh-2);transform:translateY(-2px)}.card:active,.wd-card:active,.tri-item:active,.ucard:active,.prow:active{transition-duration:90ms;transform:translateY(0)scale(.995)}.tri-kpi:active{transition-duration:90ms;transform:translateY(0)scale(.97)}.fbtn,.uc-guide-btn,.ws-pill,.wd-chip,.tri-stable-chip{transition:background .12s var(--mo-ease-io), color .12s var(--mo-ease-io), border-color .12s var(--mo-ease-io), transform .12s var(--mo-ease-io)}.fbtn:hover,.uc-guide-btn:hover{transform:translateY(-1px)}.fbtn:active,.uc-guide-btn:active,.ws-pill:active,.wd-chip:active,.tri-stable-chip:active{transition-duration:80ms;transform:scale(.95)}.nav a{position:relative}.nav a:after{content:"";background:var(--accent);transform-origin:0;opacity:0;height:2px;transition:transform .2s var(--mo-ease), opacity .2s var(--mo-ease);border-radius:2px;position:absolute;bottom:2px;left:10px;right:10px;transform:scaleX(0)}.nav a.active:after{opacity:1;transform:scaleX(1)}.nav a:hover:after{opacity:.4;transform:scaleX(1)}.tri-item.is-showing,#tbl tbody tr.row.is-showing{animation:filterIn .18s var(--mo-ease) both}@keyframes filterIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.umodal:not([hidden]) .umodal-back{animation:umFade .18s var(--mo-ease-io) both}.umodal:not([hidden]) .umodal-box{animation:umRise .2s var(--mo-ease) both;transform-origin:top}@keyframes umFade{0%{opacity:0}to{opacity:1}}@keyframes umRise{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.reveal,.reveal-soft{opacity:1!important;transition:none!important;transform:none!important}.ring{transition:none!important}.tri-item[open]>.tri-detail,details.ucard[open]>.uc-body{animation:none!important}.card,.tri-kpi,.wd-card,.tri-item,.ucard,.prow,.fbtn,.uc-guide-btn,.ws-pill,.wd-chip,.tri-stable-chip,.nav a,.nav a:after{transition:none!important;animation:none!important}.card:hover,.wd-card:hover,.fbtn:hover,.uc-guide-btn:hover,.card:active,.wd-card:active,.tri-item:active,.ucard:active,.prow:active,.tri-kpi:active,.fbtn:active{transform:none!important}.tri-item.is-showing,#tbl tbody tr.row.is-showing{animation:none!important}.umodal-back,.umodal-box{opacity:1!important;transition:none!important;animation:none!important;transform:none!important}}
