@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.04o39dzmj.ey..woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e629b5bc06499d58-s.p.0b_~8bw~gzh90.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1a099d89ee94ee96-s.0_qb~~5cn13jl.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:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.0eehd8tgys7nv.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:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.04o39dzmj.ey..woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e629b5bc06499d58-s.p.0b_~8bw~gzh90.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1a099d89ee94ee96-s.0_qb~~5cn13jl.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:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.0eehd8tgys7nv.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:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.04o39dzmj.ey..woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e629b5bc06499d58-s.p.0b_~8bw~gzh90.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1a099d89ee94ee96-s.0_qb~~5cn13jl.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:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.0eehd8tgys7nv.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:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.04o39dzmj.ey..woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/e629b5bc06499d58-s.p.0b_~8bw~gzh90.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1a099d89ee94ee96-s.0_qb~~5cn13jl.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:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.0eehd8tgys7nv.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:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.04o39dzmj.ey..woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/e629b5bc06499d58-s.p.0b_~8bw~gzh90.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/1a099d89ee94ee96-s.0_qb~~5cn13jl.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:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.0eehd8tgys7nv.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:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.plus_jakarta_sans_ed68794b-module__raLn_a__className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.plus_jakarta_sans_ed68794b-module__raLn_a__variable{--font-display:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(../media/5f841e19a104a2f1-s.p.0kyb12by50ral.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(../media/6d62c74c8e468ef4-s.04flsppc416nl.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:Be Vietnam Pro;font-style:normal;font-weight:300;font-display:swap;src:url(../media/9d978ba009f47915-s.p.0lydepa~d1qv1.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:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/53e45098eac42afb-s.p.0l2qk94b1u89y.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/85ea1b3aadcead52-s.01rdcbu-77uoy.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:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/3c285486269019b7-s.p.0sn2213rkw2e_.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:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/625a092f804baad3-s.p.0mrp_qm_8jqq_.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6afabefbb32d7517-s.05-22z7vt.jl1.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:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a4f4f75ad654963f-s.p.0h6jagi-ln9qy.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:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a3bcb02a0e9e5d11-s.p.0p40-daftjh_g.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b35fd19aef91b293-s.07en.a1_ufzzv.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:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/8f46d218c8f79e34-s.p.0xhl7b6zs4.~j.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:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/8ffc259da9d23054-s.p.0b_.2~bprftx..woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9e486ba39c38fb8a-s.0qxf2_hlpbci0.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:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6f42e0a3b0519c4d-s.p.0czffigx~77c..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:Be Vietnam Pro Fallback;src:local(Arial);ascent-override:90.61%;descent-override:24.01%;line-gap-override:0.0%;size-adjust:110.36%}.be_vietnam_pro_2811acdb-module__1_Jvaq__className{font-family:Be Vietnam Pro,Be Vietnam Pro Fallback;font-style:normal}.be_vietnam_pro_2811acdb-module__1_Jvaq__variable{--font-sans:"Be Vietnam Pro", "Be Vietnam Pro Fallback"}
:root{--color-primary:#006a2c;--color-primary-light:#16a34a;--color-primary-dark:#004d20;--color-primary-50:#f0fdf4;--color-primary-100:#dcfce7;--color-primary-200:#bbf7d0;--color-primary-container:#82ff99;--color-on-primary-container:#006127;--color-primary-glow:#16a34a4d;--color-tertiary:#994100;--color-tertiary-dim:#863800;--color-tertiary-container:#ff955a;--color-streak:#f97316;--color-streak-bg:#fff7ed;--color-accent:#ef4444;--color-accent-light:#f87171;--color-accent-dark:#dc2626;--color-error:#b02500;--color-error-container:#f95630;--color-neutral-50:#f9fafb;--color-neutral-100:#f3f4f6;--color-neutral-200:#e5e7eb;--color-neutral-300:#d1d5db;--color-neutral-400:#9ca3af;--color-neutral-500:#6b7280;--color-neutral-600:#4b5563;--color-neutral-700:#374151;--color-neutral-800:#1f2937;--color-neutral-900:#111827;--color-bg:#f6f6f7;--color-bg-subtle:#f0f1f2;--color-bg-muted:#e7e8e9;--color-surface:#fff;--color-surface-container-low:#f0f1f2;--color-surface-container:#e7e8e9;--color-surface-container-high:#e1e2e4;--color-surface-container-highest:#dbddde;--color-border:#e1e2e4;--color-border-muted:#f0f1f2;--color-text:#2d2f30;--color-text-muted:#5a5c5d;--color-text-subtle:#acadae;--color-text-inverse:#fff;--color-outline:#767778;--color-outline-variant:#acadae;--color-success:#16a34a;--color-warning:#d97706;--color-info:#2563eb;--font-display:var(--font-display,"Plus Jakarta Sans", sans-serif);--font-sans:var(--font-sans,"Be Vietnam Pro", sans-serif);--font-mono:"Fira Code", "Cascadia Code", Consolas, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;--text-7xl:4.5rem;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--font-extrabold:800;--leading-none:1;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--leading-loose:2;--leading-vi:1.7;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-14:3.5rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-3xl:2rem;--radius-full:9999px;--shadow-xs:0 1px 2px 0 #2d2f300f;--shadow-sm:0 2px 4px 0 #2d2f300f;--shadow-md:0 4px 12px #2d2f3014;--shadow-lg:0 8px 32px #2d2f3014, 0 2px 8px #2d2f300a;--shadow-xl:0 20px 48px #2d2f301f, 0 4px 16px #2d2f300f;--shadow-float:0 32px 64px #2d2f301a, 0 8px 24px #2d2f300f;--shadow-3d:0 4px 0 0 var(--color-primary-dark);--shadow-3d-sm:0 2px 0 0 var(--color-primary-dark);--shadow-primary:0 4px 16px #006a2c59;--shadow-amber:0 4px 16px #9941004d;--shadow-inset:inset 0 2px 4px #0000000f;--duration-instant:80ms;--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.4s;--duration-slower:.6s;--duration-slowest:.8s;--ease-default:cubic-bezier(.4, 0, .2, 1);--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--ease-spring:cubic-bezier(.175, .885, .32, 1.275);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-elastic:cubic-bezier(.68, -.55, .265, 1.55);--z-base:0;--z-raised:10;--z-overlay:100;--z-modal:200;--z-toast:300;--z-tooltip:400;--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1280px;--container-2xl:1440px;--sidebar-width:240px;--sidebar-width-mini:72px;--header-height:64px;--content-max:1200px;--primary:var(--color-primary);--primary-light:var(--color-primary-light);--primary-dark:var(--color-primary-dark);--primary-foreground:#fff;--secondary:var(--color-surface-container-highest);--secondary-foreground:var(--color-text);--accent:var(--color-accent);--destructive:var(--color-error);--destructive-foreground:#fff;--warning:var(--color-warning);--info:var(--color-info);--success:var(--color-success);--background:var(--color-bg);--foreground:var(--color-text);--muted:var(--color-bg-muted);--muted-foreground:var(--color-text-muted);--border:var(--color-border);--ring:var(--color-primary);--surface:var(--color-surface);--weight-normal:var(--font-normal);--weight-medium:var(--font-medium);--weight-semibold:var(--font-semibold);--weight-bold:var(--font-bold);--radius:var(--radius-xl)}.dark{--color-bg:#0f1512;--color-bg-subtle:#151c18;--color-bg-muted:#1c2620;--color-surface:#1a2320;--color-surface-container-low:#1e2924;--color-surface-container:#242f2a;--color-surface-container-high:#2a3530;--color-surface-container-highest:#313d38;--color-border:#2d3f38;--color-border-muted:#1e2924;--color-text:#e8f0eb;--color-text-muted:#8fa99a;--color-text-subtle:#4d6358;--color-text-inverse:#0f1512;--color-outline:#5a7468;--color-outline-variant:#2d3f38;--color-primary:#4ade80;--color-primary-light:#86efac;--color-primary-dark:#22c55e;--color-primary-50:#052e16;--color-primary-100:#14532d;--color-primary-200:#166534;--color-primary-container:#1a4a2e;--color-on-primary-container:#82ff99;--color-primary-glow:#4ade8040;--color-streak:#fb923c;--color-streak-bg:#1c1208;--color-tertiary-container:#4a2000;--color-error:#f87171;--color-error-container:#7f1d1d;--shadow-xs:0 1px 2px 0 #0000004d;--shadow-sm:0 2px 4px 0 #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-xl:0 20px 48px #00000080;--shadow-primary:0 4px 16px #4ade8033;--background:var(--color-bg);--foreground:var(--color-text);--muted:var(--color-bg-muted);--muted-foreground:var(--color-text-muted);--border:var(--color-border);--surface:var(--color-surface);--primary:var(--color-primary);--primary-dark:var(--color-primary-dark)}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;tab-size:4;font-size:16px}body{min-height:100vh;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{list-style:none}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none}table{border-collapse:collapse;border-spacing:0}#root,#__next{isolation:isolate}
html{scroll-behavior:smooth;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-sans,"Be Vietnam Pro"), "Segoe UI", system-ui, -apple-system, sans-serif;font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);transition:background-color var(--duration-normal) var(--ease-default), color var(--duration-normal) var(--ease-default)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-display,"Plus Jakarta Sans"), sans-serif;letter-spacing:-.02em;color:var(--color-text)}h1{font-size:var(--text-4xl);font-weight:var(--font-extrabold);line-height:var(--leading-tight)}h2{font-size:var(--text-3xl);font-weight:var(--font-bold);line-height:var(--leading-tight)}h3{font-size:var(--text-2xl);font-weight:var(--font-semibold);line-height:var(--leading-snug)}h4{font-size:var(--text-xl);font-weight:var(--font-semibold);line-height:var(--leading-snug)}h5{font-size:var(--text-lg);font-weight:var(--font-medium)}h6{font-size:var(--text-base);font-weight:var(--font-medium)}p{line-height:var(--leading-vi)}a{color:var(--color-primary);transition:color var(--duration-fast) var(--ease-default);text-decoration:none}a:hover{color:var(--color-primary-dark)}strong,b{font-weight:var(--font-bold)}em,i{font-style:italic}small{font-size:var(--text-sm)}code{font-family:var(--font-mono);background:var(--color-surface-container-high);border-radius:var(--radius-md);color:var(--color-accent);padding:.125em .4em;font-size:.875em}pre{font-family:var(--font-mono);font-size:var(--text-sm);padding:var(--space-4);background:var(--color-text);color:var(--color-surface);border-radius:var(--radius-xl);line-height:1.6;overflow-x:auto}pre code{color:inherit;font-size:inherit;background:0 0;padding:0}blockquote{border-left:4px solid var(--color-primary);padding-left:var(--space-4);color:var(--color-text-muted);margin:var(--space-6) 0;font-style:italic}hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-8) 0}ul,ol{padding-left:var(--space-6);line-height:var(--leading-vi)}li{margin-bottom:var(--space-1)}button,input,select,textarea{font-family:var(--font-sans), sans-serif}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-bg-subtle)}::-webkit-scrollbar-thumb{background:var(--color-surface-container-highest);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-outline-variant)}::selection{background-color:var(--color-primary-200);color:var(--color-primary-dark)}.dark ::-webkit-scrollbar-track{background:var(--color-bg)}.dark ::-webkit-scrollbar-thumb{background:var(--color-surface-container-high)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.prose{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-vi);color:var(--color-text);max-width:70ch}.prose p{margin-bottom:var(--space-4)}.prose h2{margin-top:var(--space-8);margin-bottom:var(--space-4)}.prose h3{margin-top:var(--space-6);margin-bottom:var(--space-3)}.prose ul{margin-bottom:var(--space-4)}.prose code{font-size:var(--text-sm)}.prose .de-word{font-family:var(--font-display);font-weight:var(--font-semibold);color:var(--color-primary);cursor:pointer;border-bottom:1px dashed var(--color-primary-200);transition:color var(--duration-fast) var(--ease-default)}.prose .de-word:hover{color:var(--color-primary-dark)}
.container{max-width:var(--container-xl);padding:0 var(--space-4);margin:0 auto}.container-sm{max-width:var(--container-sm);padding:0 var(--space-4);margin:0 auto}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.grid{display:grid}.hidden{display:none}.block{display:block}.inline{display:inline}.inline-flex{display:inline-flex}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.flex-wrap{flex-wrap:wrap}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.p-0{padding:0}.p-2{padding:var(--space-2)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.m-0{margin:0}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-8{margin-top:var(--space-8)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mb-8{margin-bottom:var(--space-8)}.ml-1{margin-left:var(--space-1)}.ml-auto{margin-left:auto}.mx-auto{margin-left:auto;margin-right:auto}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.min-w-0{min-width:0}.max-w-xs{max-width:20rem}.max-w-sm{max-width:24rem}.max-w-lg{max-width:32rem}.max-w-2xl{max-width:42rem}.space-y-1>*+*{margin-top:var(--space-1)}.space-y-2>*+*{margin-top:var(--space-2)}.space-y-3>*+*{margin-top:var(--space-3)}.space-y-4>*+*{margin-top:var(--space-4)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.font-mono{font-family:var(--font-mono)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.text-primary{color:var(--color-primary)}.text-muted,.text-muted-foreground{color:var(--color-text-muted)}.text-subtle{color:var(--color-text-subtle)}.text-error,.text-destructive{color:var(--color-error)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-inverse{color:var(--color-text-inverse)}.bg-primary{background-color:var(--color-primary)}.bg-background{background-color:var(--color-bg)}.bg-subtle{background-color:var(--color-bg-subtle)}.bg-muted{background-color:var(--color-bg-muted)}.border{border:1px solid var(--color-border)}.border-top{border-top:1px solid var(--color-border)}.border-bottom{border-bottom:1px solid var(--color-border)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}.relative{position:relative}.absolute{position:absolute}.sticky{position:sticky}.fixed{position:fixed}.inset-0{inset:0}.cursor-pointer{cursor:pointer}.pointer-events-none{pointer-events:none}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideInUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes scaleInBounce{0%{opacity:0;transform:scale(.7)}70%{transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes bounceLarge{0%,to{transform:translateY(0)}50%{transform:translateY(-16px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes pulseSlow{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.04)}}@keyframes ping{75%,to{opacity:0;transform:scale(1.8)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0)rotate(0)}33%{transform:translateY(-12px)rotate(1deg)}66%{transform:translateY(-6px)rotate(-1deg)}}@keyframes floatSlow{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes floatDelayed{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-15px)rotate(2deg)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes skeletonLoading{0%{background-color:var(--color-surface-container-high)}50%{background-color:var(--color-surface-container)}to{background-color:var(--color-surface-container-high)}}@keyframes spinnerRing{0%{stroke-dashoffset:220px}to{stroke-dashoffset:0}}@keyframes correctAnswer{0%{background-color:inherit;transform:scale(1)}30%{background-color:var(--color-primary-100);transform:scale(1.08)}to{transform:scale(1)}}@keyframes wrongAnswer{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-7px)}80%{transform:translate(7px)}}@keyframes streakFlame{0%,to{transform:scale(1)rotate(-2deg)}50%{transform:scale(1.15)rotate(2deg)}}@keyframes levelUp{0%{opacity:1;transform:scale(1)rotate(0)}50%{opacity:1;transform:scale(1.3)rotate(10deg)}to{opacity:.8;transform:scale(.9)rotate(-5deg)}}@keyframes confettiFall{0%{opacity:1;transform:translateY(-20px)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}@keyframes xpCounter{0%{opacity:0;transform:translateY(8px)}20%{opacity:1;transform:translateY(0)}80%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@keyframes heroWordFloat{0%{opacity:0;transform:translateY(20px)rotate(-2deg)}15%{opacity:.18;transform:translateY(0)rotate(0)}85%{opacity:.18;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(-20px)rotate(2deg)}}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes morphBlob{0%,to{border-radius:60% 40% 70% 30%/60% 50% 50% 40%}25%{border-radius:40% 60% 30% 70%/40% 50% 50% 60%}50%{border-radius:70% 30% 60% 40%/50% 60% 40% 50%}75%{border-radius:30% 70% 40% 60%/60% 40%}}@keyframes underlineGrow{0%{width:0}to{width:100%}}@keyframes countUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes cardFlipFront{0%{transform:perspective(800px)rotateY(0)}to{transform:perspective(800px)rotateY(-90deg)}}@keyframes cardFlipBack{0%{transform:perspective(800px)rotateY(90deg)}to{transform:perspective(800px)rotateY(0)}}.animate-fade-in{animation:fadeIn var(--duration-normal) var(--ease-out) both}.animate-fade-in-up{animation:fadeInUp var(--duration-normal) var(--ease-out) both}.animate-fade-in-down{animation:fadeInDown var(--duration-normal) var(--ease-out) both}.animate-scale-in{animation:scaleIn var(--duration-normal) var(--ease-bounce) both}.animate-scale-bounce{animation:scaleInBounce var(--duration-slow) var(--ease-bounce) both}.animate-bounce{animation:bounce 1.2s var(--ease-default) infinite}.animate-float{animation:4s ease-in-out infinite float}.animate-float-slow{animation:6s ease-in-out infinite floatSlow}.animate-pulse{animation:2s ease-in-out infinite pulse}.animate-pulse-slow{animation:3s ease-in-out infinite pulseSlow}.animate-shake{animation:shake var(--duration-slow) ease both}.animate-wiggle{animation:.5s ease-in-out wiggle}.animate-spin{animation:1s linear infinite spin}.animate-ping{animation:1s cubic-bezier(0,0,.2,1) infinite ping}.animate-streak-flame{animation:.8s ease-in-out infinite streakFlame}.animate-gradient{background-size:200% 200%;animation:4s infinite gradientShift}.animate-blob{animation:8s ease-in-out infinite morphBlob}.animate-correct{animation:correctAnswer var(--duration-slow) var(--ease-bounce)}.animate-wrong{animation:wrongAnswer var(--duration-slow) var(--ease-default)}.animate-level-up{animation:levelUp .6s var(--ease-bounce)}.delay-75{animation-delay:75ms}.delay-100{animation-delay:.1s}.delay-150{animation-delay:.15s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-500{animation-delay:.5s}.delay-700{animation-delay:.7s}.delay-1000{animation-delay:1s}.delay-1500{animation-delay:1.5s}.delay-2000{animation-delay:2s}.hover-float:hover{animation:2s ease-in-out infinite float}.hover-bounce:hover{animation:.6s bounce}.hover-wiggle:hover{animation:.4s wiggle}.hover-scale:hover{transition:transform var(--duration-fast) var(--ease-bounce);transform:scale(1.03)}.hover-lift:hover{transition:transform var(--duration-fast) var(--ease-out);transform:translateY(-4px)}.hover-lift-sm:hover{transition:transform var(--duration-fast) var(--ease-out);transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);font-size:var(--text-sm);font-weight:var(--font-semibold);font-family:var(--font-sans);border-radius:var(--radius-xl);cursor:pointer;transition:all var(--duration-fast) var(--ease-default);white-space:nowrap;-webkit-user-select:none;user-select:none;border:2px solid #0000;outline:none;line-height:1;text-decoration:none;display:inline-flex;position:relative}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn--default{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary-dark);box-shadow:0 4px 0 0 var(--color-primary-dark)}.btn--default:hover{background-color:var(--color-primary-dark);box-shadow:0 5px 0 0 var(--color-primary-dark);transform:translateY(-1px)}.btn--default:active{box-shadow:none;transform:translateY(2px)}.btn--outline{color:var(--color-primary);border-color:var(--color-primary);background-color:#0000}.btn--outline:hover{background-color:var(--color-primary-50);transform:translateY(-1px)}.btn--outline:active{transform:translateY(1px)}.btn--secondary{background-color:var(--color-neutral-100);color:var(--color-neutral-700);border-color:var(--color-neutral-200);box-shadow:0 2px 0 0 var(--color-neutral-300)}.btn--secondary:hover{background-color:var(--color-neutral-200);transform:translateY(-1px)}.btn--secondary:active{box-shadow:none;transform:translateY(1px)}.btn--ghost{color:var(--color-text-muted);background-color:#0000;border-color:#0000}.btn--ghost:hover{background-color:var(--color-bg-muted);color:var(--color-text)}.btn--destructive{background-color:var(--color-error);color:#fff;border-color:#b91c1c;box-shadow:0 4px #b91c1c}.btn--destructive:hover{background-color:var(--color-accent-dark);transform:translateY(-1px)}.btn--destructive:active{box-shadow:none;transform:translateY(2px)}.btn--link{color:var(--color-primary);background-color:#0000;border-color:#0000;padding:0;text-decoration:underline}.btn--link:hover{color:var(--color-primary-dark)}.btn--xs{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);border-radius:var(--radius-md)}.btn--sm{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);border-radius:var(--radius-lg)}.btn--md{padding:var(--space-3) var(--space-5);font-size:var(--text-sm)}.btn--lg{padding:var(--space-4) var(--space-8);font-size:var(--text-base);border-radius:var(--radius-2xl)}.btn--icon{padding:var(--space-2);border-radius:var(--radius-lg);flex-shrink:0;width:40px;height:40px}.btn--icon-sm{padding:var(--space-1);border-radius:var(--radius-md);flex-shrink:0;width:32px;height:32px}.btn--full{width:100%}.btn--primary{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary-dark);box-shadow:0 4px 0 0 var(--color-primary-dark)}.btn--primary:hover{background-color:var(--color-primary-dark);transform:translateY(-1px)}.btn--primary:active{box-shadow:none;transform:translateY(2px)}.btn--danger{background-color:var(--color-error);color:#fff;border-color:#b91c1c;box-shadow:0 4px #b91c1c}.btn--danger:hover{background-color:var(--color-accent-dark);transform:translateY(-1px)}.btn--danger:active{box-shadow:none;transform:translateY(2px)}
.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}.card--elevated{box-shadow:var(--shadow-md)}.card--hoverable{cursor:pointer;transition:transform var(--duration-fast) var(--ease-default), box-shadow var(--duration-fast) var(--ease-default), border-color var(--duration-fast) var(--ease-default)}.card--hoverable:hover{box-shadow:var(--shadow-lg);border-color:var(--color-primary-200);transform:translateY(-2px)}.card--hoverable:active{box-shadow:var(--shadow-sm);transform:translateY(0)}.card--bordered{border:2px solid var(--color-border);box-shadow:none}.card--no-border{box-shadow:none;border:none}.card--sm .card__header,.card--sm .card__content{padding:var(--space-4)}.card--sm .card__footer{padding:var(--space-3) var(--space-4)}.card__header{padding:var(--space-6);border-bottom:1px solid var(--color-border-muted);gap:var(--space-1);flex-direction:column;display:flex}.card__title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text);line-height:var(--leading-snug)}.card__description{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-relaxed)}.card__content,.card__body{padding:var(--space-6)}.card__content--padded{padding:var(--space-5) var(--space-6)}.card__footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border-muted);background-color:var(--color-bg-subtle);align-items:center;display:flex}.card__subtitle{font-size:var(--text-sm);color:var(--color-text-muted)}
.input{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--duration-fast) var(--ease-default), box-shadow var(--duration-fast) var(--ease-default);line-height:var(--leading-normal);outline:none}.input::placeholder{color:var(--color-text-subtle)}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-100)}.input:disabled{opacity:.6;cursor:not-allowed;background-color:var(--color-bg-muted)}.input--error{border-color:var(--color-error)}.input--error:focus{box-shadow:0 0 0 3px #dc26261f}.textarea{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);resize:vertical;min-height:100px;line-height:var(--leading-relaxed);transition:border-color var(--duration-fast) var(--ease-default), box-shadow var(--duration-fast) var(--ease-default);outline:none}.textarea::placeholder{color:var(--color-text-subtle)}.textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-100)}.select{width:100%;padding:var(--space-3) var(--space-10) var(--space-3) var(--space-4);font-size:var(--text-sm);font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;transition:border-color var(--duration-fast) var(--ease-default), box-shadow var(--duration-fast) var(--ease-default);outline:none}.select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-100)}.select:disabled{opacity:.6;cursor:not-allowed;background-color:var(--color-bg-muted)}.label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);margin-bottom:var(--space-2);line-height:var(--leading-normal);display:block}.field-error{font-size:var(--text-xs);color:var(--color-error);margin-top:var(--space-1);align-items:center;gap:var(--space-1);display:flex}.field-hint{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-row{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}@media (max-width:640px){.form-row{grid-template-columns:1fr}}
.badge{align-items:center;gap:var(--space-1);padding:2px var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);border-radius:var(--radius-full);white-space:nowrap;border:1px solid #0000;line-height:1.6;display:inline-flex}.badge--default{background-color:var(--color-primary);color:#fff}.badge--secondary{background-color:var(--color-neutral-100);color:var(--color-neutral-700);border-color:var(--color-neutral-200)}.badge--destructive{color:var(--color-error);background-color:#fee2e2;border-color:#fecaca}.badge--outline{color:var(--color-text);border-color:var(--color-border);background-color:#0000}.badge--ghost{color:var(--color-text-muted);background-color:#0000}.badge--success{color:#15803d;background-color:#dcfce7;border-color:#bbf7d0}.badge--warning{color:#d97706;background-color:#fef3c7;border-color:#fde68a}.badge--info{color:#1d4ed8;background-color:#dbeafe;border-color:#bfdbfe}.badge--a0,.badge--a1,.badge--a2{color:#15803d;background-color:#dcfce7;border-color:#bbf7d0}.badge--b1,.badge--b2{color:#1d4ed8;background-color:#dbeafe;border-color:#bfdbfe}.badge--c1,.badge--c2{color:#7c3aed;background-color:#f3e8ff;border-color:#e9d5ff}.badge--sm{padding:1px var(--space-2);font-size:10px}.badge--lg{font-size:var(--text-sm);padding:var(--space-1) var(--space-4)}
.table-wrapper{border-radius:var(--radius-xl);border:1px solid var(--color-border);width:100%;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table thead,.table .table__head{background-color:var(--color-bg-subtle)}.table th{padding:var(--space-3) var(--space-4);text-align:left;font-weight:var(--font-semibold);color:var(--color-text-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);white-space:nowrap}.table td{padding:var(--space-3) var(--space-4);color:var(--color-text);border-bottom:1px solid var(--color-border-muted);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr{transition:background-color var(--duration-fast) var(--ease-default)}.table tbody tr:hover,.table__head{background-color:var(--color-bg-subtle)}.table__footer{background-color:var(--color-bg-subtle);border-top:1px solid var(--color-border)}.table--striped tbody tr:nth-child(2n){background-color:var(--color-bg-subtle)}
.dialog-overlay{z-index:var(--z-modal);animation:fadeIn var(--duration-fast) var(--ease-out);background-color:#00000080;position:fixed;inset:0}.dialog{z-index:calc(var(--z-modal) + 1);background-color:var(--color-surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);width:calc(100vw - var(--space-8));max-width:520px;max-height:90vh;animation:scaleIn var(--duration-normal) var(--ease-bounce);outline:none;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.dialog__close{top:var(--space-4);right:var(--space-4);border-radius:var(--radius-full);width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:absolute}.dialog__close:hover{background-color:var(--color-bg-muted);color:var(--color-text)}.dialog__header{padding:var(--space-6) var(--space-6) var(--space-4);padding-right:var(--space-12);gap:var(--space-2);flex-direction:column;display:flex}.dialog__title{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-text);line-height:var(--leading-snug)}.dialog__description{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-relaxed)}.dialog__body{padding:0 var(--space-6) var(--space-6)}.dialog__footer{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border-muted);display:flex}.dialog--sm{max-width:380px}.dialog--lg{max-width:720px}.dialog--xl{max-width:900px}.cw-trigger{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-xl);border:1px solid var(--color-border);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text);cursor:pointer;transition:all var(--duration-fast) var(--ease-default);white-space:nowrap;background:0 0;display:inline-flex}.cw-trigger:hover{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in oklch, var(--color-primary) 6%, transparent)}.cw-dialog{max-width:540px}.cw-form{gap:var(--space-4);padding:0 var(--space-6) var(--space-6);flex-direction:column;display:flex}.cw-row{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.cw-field{gap:var(--space-1-5,6px);flex-direction:column;display:flex}.cw-label{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;text-align:left}.cw-required{color:var(--color-error)}.cw-input{width:100%;height:40px;padding:0 var(--space-3);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface-container-low);font-size:var(--text-sm);color:var(--color-text);transition:all var(--duration-fast) var(--ease-default);outline:none}.cw-input::placeholder{color:var(--color-text-subtle,color-mix(in oklch, var(--color-text-muted) 60%, transparent))}.cw-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in oklch, var(--color-primary) 12%, transparent);background:var(--color-surface)}.cw-select{width:100%;height:40px;padding:0 var(--space-3);padding-right:var(--space-8);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface-container-low);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;appearance:none;transition:all var(--duration-fast) var(--ease-default);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;outline:none}.cw-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in oklch, var(--color-primary) 12%, transparent);background-color:var(--color-surface)}.cw-textarea{width:100%;padding:var(--space-2-5,10px) var(--space-3);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface-container-low);font-size:var(--text-sm);color:var(--color-text);resize:none;transition:all var(--duration-fast) var(--ease-default);outline:none;font-family:inherit}.cw-textarea::placeholder{color:var(--color-text-subtle,color-mix(in oklch, var(--color-text-muted) 60%, transparent))}.cw-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in oklch, var(--color-primary) 12%, transparent);background:var(--color-surface)}.cw-error{font-size:var(--text-sm);color:var(--color-error);background:color-mix(in oklch, var(--color-error) 8%, transparent);padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);border:1px solid color-mix(in oklch, var(--color-error) 20%, transparent)}.cw-toggle-advanced{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;transition:color var(--duration-fast) var(--ease-default);background:0 0;border:none;padding:0;display:inline-flex}.cw-toggle-advanced:hover{color:var(--color-text)}.cw-advanced{gap:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border-muted,var(--color-border));flex-direction:column;display:flex}.cw-submit{justify-content:center;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-xl);background:linear-gradient(135deg, var(--color-primary), var(--color-primary-dark,var(--color-primary)));color:var(--primary-foreground,#fff);font-size:var(--text-sm);font-weight:var(--font-bold);cursor:pointer;transition:all var(--duration-fast) var(--ease-bounce);box-shadow:0 2px 0 var(--color-primary-dark,color-mix(in oklch, var(--color-primary) 80%, #000));border:none;display:inline-flex}.cw-submit:hover{box-shadow:0 4px 0 var(--color-primary-dark,color-mix(in oklch, var(--color-primary) 80%, #000)), 0 4px 12px color-mix(in oklch, var(--color-primary) 25%, transparent);transform:translateY(-1px)}.cw-submit:active{box-shadow:0 1px 0 var(--color-primary-dark,color-mix(in oklch, var(--color-primary) 80%, #000));transform:translateY(1px)}.cw-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}@media (max-width:480px){.cw-row{grid-template-columns:1fr}.cw-dialog{max-width:calc(100vw - var(--space-4))}}
.dropdown{display:inline-flex;position:relative}.dropdown__content{z-index:9999;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);min-width:200px;box-shadow:var(--shadow-lg);padding:var(--space-2) 0;animation:fadeInDown var(--duration-fast) var(--ease-out);outline:none;position:absolute;overflow:visible}.dropdown__menu{top:calc(100% + var(--space-2));z-index:var(--z-overlay);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);min-width:180px;box-shadow:var(--shadow-lg);padding:var(--space-2) 0;animation:fadeInDown var(--duration-fast) var(--ease-out);position:absolute;right:0}.dropdown__item{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-family:var(--font-sans);color:var(--color-text);cursor:pointer;text-align:left;transition:background-color var(--duration-fast) var(--ease-default);background:0 0;border:none;border-radius:0;display:flex}.dropdown__item:hover{background-color:var(--color-bg-subtle)}.dropdown__item--destructive,.dropdown__item--danger{color:var(--color-error)}.dropdown__item--destructive:hover,.dropdown__item--danger:hover{color:var(--color-error);background-color:#fee2e2}.dropdown__separator{background-color:var(--color-border-muted);height:1px;margin:var(--space-2) 0}.dropdown__label{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-normal);color:var(--color-text);text-transform:none;letter-spacing:normal;cursor:default}
.avatar{border-radius:var(--radius-full);font-weight:var(--font-semibold);background-color:var(--color-primary-100);color:var(--color-primary-700);-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.avatar--sm{width:32px;height:32px;font-size:var(--text-xs)}.avatar--md{width:40px;height:40px;font-size:var(--text-sm)}.avatar--lg{width:56px;height:56px;font-size:var(--text-base)}.avatar--xl{width:80px;height:80px;font-size:var(--text-xl)}.avatar img{object-fit:cover;width:100%;height:100%}.avatar__fallback{width:100%;height:100%;font-weight:var(--font-bold);justify-content:center;align-items:center;display:flex}.progress{background-color:var(--color-neutral-200);border-radius:var(--radius-full);width:100%;height:8px;overflow:hidden}.progress__fill{background-color:var(--color-primary);border-radius:var(--radius-full);height:100%;transition:width var(--duration-slow) var(--ease-out)}.progress--sm{height:4px}.progress--lg{height:12px}.tooltip{display:inline-flex;position:relative}.tooltip__content{bottom:calc(100% + var(--space-2));z-index:var(--z-tooltip);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-medium);color:#fff;background-color:var(--color-neutral-900);border-radius:var(--radius-md);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--duration-fast) var(--ease-default);position:absolute;left:50%;transform:translate(-50%)}.tooltip:hover .tooltip__content{opacity:1}.separator{background-color:var(--color-border);border:none;height:1px;margin:0}.separator--vertical{align-self:stretch;width:1px;height:auto}.divider{align-items:center;gap:var(--space-4);color:var(--color-text-subtle);font-size:var(--text-sm);display:flex}.divider:before,.divider:after{content:"";background-color:var(--color-border);flex:1;height:1px}.alert{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);border:1px solid #0000;display:flex}.alert--success{color:#15803d;background-color:#f0fdf4;border-color:#bbf7d0}.alert--error{color:#dc2626;background-color:#fef2f2;border-color:#fecaca}.alert--warning{color:#d97706;background-color:#fffbeb;border-color:#fde68a}.alert--info{color:#1d4ed8;background-color:#eff6ff;border-color:#bfdbfe}.skeleton{background:linear-gradient(90deg, var(--color-neutral-200) 25%, var(--color-neutral-100) 50%, var(--color-neutral-200) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s infinite shimmer}.chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background-color:var(--color-bg-muted);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--text-sm);color:var(--color-text);cursor:default;transition:all var(--duration-fast) var(--ease-default);display:inline-flex}.chip--active{background-color:var(--color-primary-100);border-color:var(--color-primary);color:var(--color-primary-dark)}.chip--clickable:hover{background-color:var(--color-bg-subtle);border-color:var(--color-neutral-300);cursor:pointer}.sheet-overlay{z-index:var(--z-modal);animation:fadeIn var(--duration-fast) var(--ease-out);background-color:#00000080;position:fixed;inset:0}.sheet{background-color:var(--color-surface);width:min(320px,85vw);box-shadow:var(--shadow-xl);z-index:calc(var(--z-modal) + 1);animation:slideInLeft var(--duration-normal) var(--ease-out);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sheet--right{animation:slideInRight var(--duration-normal) var(--ease-out);left:auto;right:0}.sheet__header{padding:var(--space-6);border-bottom:1px solid var(--color-border)}.sheet__content{padding:var(--space-6);flex:1;overflow-y:auto}.select-wrapper{width:100%;display:inline-flex;position:relative}.select-trigger{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-default);justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.select-trigger:focus,.select-trigger[data-open=true]{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-100);outline:none}.select-content{z-index:var(--z-overlay);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:var(--space-2) 0;animation:fadeInDown var(--duration-fast) var(--ease-out);max-height:260px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.select-item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default);display:flex}.select-item:hover,.select-item[data-highlighted]{background-color:var(--color-bg-subtle)}.select-item[data-selected]{color:var(--color-primary);font-weight:var(--font-medium)}.input-group{gap:var(--space-2);flex-direction:column;display:flex}.input-group--row{flex-direction:row;align-items:center}
.app-layout{background-color:var(--color-bg);min-height:100vh;display:flex}.app-main{margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left var(--duration-normal) var(--ease-default);background-color:var(--color-bg);flex-direction:column;flex:1;display:flex}.app-content{padding:var(--space-8);flex:1;max-width:100%}.app-header{height:var(--header-height);padding:0 var(--space-6);background-color:var(--color-surface);justify-content:flex-end;align-items:center;gap:var(--space-3);z-index:var(--z-raised);box-shadow:0 1px 0 var(--color-border);display:flex;position:sticky;top:0;overflow:visible}.dark .app-header{background-color:var(--color-surface);box-shadow:0 1px 0 var(--color-border)}.app-header__spacer{flex:1}.app-header__user-trigger{cursor:pointer;border-radius:var(--radius-full);transition:box-shadow var(--duration-fast) var(--ease-default);background:0 0;border:none;justify-content:center;align-items:center;padding:2px;display:flex}.app-header__user-trigger:hover{box-shadow:0 0 0 3px var(--color-primary-glow)}.theme-toggle{border-radius:var(--radius-full);border:1.5px solid var(--color-border);background:var(--color-surface-container-high);cursor:pointer;width:36px;height:36px;font-size:var(--text-base);transition:all var(--duration-fast) var(--ease-bounce);justify-content:center;align-items:center;display:flex}.theme-toggle:hover{background:var(--color-surface-container-highest);transform:rotate(15deg)scale(1.1)}.header-streak{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);background:var(--color-streak-bg);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-bold);color:var(--color-streak);font-family:var(--font-display);display:flex}.header-streak__flame{animation:.8s ease-in-out infinite streakFlame}.sidebar{width:var(--sidebar-width);background-color:var(--color-surface-container-low);height:100vh;z-index:var(--z-raised);box-shadow:1px 0 0 var(--color-border);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden auto}.dark .sidebar{background-color:var(--color-surface);box-shadow:1px 0 0 var(--color-border)}.sidebar__logo{padding:var(--space-5) var(--space-5) var(--space-4);border-bottom:1px solid var(--color-border);flex-shrink:0}.sidebar__logo-text{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-extrabold);letter-spacing:-.03em;align-items:baseline;gap:2px;display:inline-flex}.sidebar__logo-primary{color:var(--color-primary)}.sidebar__logo-muted{color:var(--color-text-muted)}.sidebar__user-card{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin:var(--space-2) var(--space-3);border-radius:var(--radius-xl);transition:background-color var(--duration-fast) var(--ease-default);cursor:pointer;color:inherit;display:flex}.sidebar__user-card:hover{background-color:var(--color-surface-container)}.dark .sidebar__user-card:hover{background-color:var(--color-surface-container-high)}.sidebar__user-avatar{border-radius:var(--radius-full);background:var(--color-primary-container);border:2px solid var(--color-primary-200);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;overflow:hidden}.sidebar__user-avatar-img{object-fit:cover;width:100%;height:100%}.sidebar__user-avatar-fallback{font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--font-bold);color:var(--color-primary)}.sidebar__user-info{flex-direction:column;gap:1px;min-width:0;display:flex;overflow:hidden}.sidebar__user-name{font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.sidebar__user-meta{font-size:var(--text-xs);color:var(--color-text-muted);margin:0}.sidebar__nav{padding:var(--space-3);flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.sidebar__section-label{font-size:10px;font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-subtle);padding:var(--space-4) var(--space-3) var(--space-2)}.sidebar__banner-area{padding:var(--space-3)}.sidebar__banner{background:linear-gradient(135deg, var(--color-primary-50), var(--color-primary-100));border:1px solid var(--color-primary-200);border-radius:var(--radius-xl);padding:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.dark .sidebar__banner{background:var(--color-surface-container);border-color:var(--color-border)}.sidebar__banner-title{font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--font-bold);color:var(--color-primary)}.sidebar__banner-text{font-size:var(--text-xs);color:var(--color-text-muted);line-height:var(--leading-relaxed)}.sidebar__banner-btn{text-align:center;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-bold);font-family:var(--font-display);color:var(--primary-foreground);background:var(--color-primary);border-radius:var(--radius-lg);transition:all var(--duration-fast) var(--ease-bounce);box-shadow:0 2px 0 var(--color-primary-dark);text-decoration:none;display:block}.sidebar__banner-btn:hover{box-shadow:0 4px 0 var(--color-primary-dark);color:#fff;transform:translateY(-1px)}.sidebar__banner-btn:active{box-shadow:none;transform:translateY(1px)}.sidebar__bottom{padding:var(--space-3);border-top:1px solid var(--color-border);flex-direction:column;flex-shrink:0;gap:2px;display:flex}.sidebar__theme-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);color:var(--color-text-muted);display:flex}.sidebar__theme-label{font-size:var(--text-sm);font-weight:var(--font-medium)}.sidebar__badge{margin-left:auto}.sidebar__link--logout{color:var(--color-error);cursor:pointer;width:100%;font-size:var(--text-sm);font-weight:var(--font-medium);text-align:left;background:0 0;border:none;font-family:inherit}.sidebar__link--logout:hover{color:var(--color-error);background-color:#b0250014}.dark .sidebar__link--logout:hover{background-color:#f871711a}.sidebar__link{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-xl);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted);transition:all var(--duration-fast) var(--ease-default);white-space:nowrap;min-height:44px;text-decoration:none;display:flex;position:relative}.sidebar__link:hover{background-color:var(--color-surface-container);color:var(--color-text)}.dark .sidebar__link:hover{background-color:var(--color-surface-container-high)}.sidebar__link--active{background-color:var(--color-primary-container);color:var(--color-on-primary-container);font-weight:var(--font-semibold);font-family:var(--font-display)}.dark .sidebar__link--active{color:var(--color-primary);background-color:#4ade8026}.sidebar__link--active:hover{background-color:var(--color-primary-container);color:var(--color-on-primary-container)}.sidebar__link-icon{flex-shrink:0;width:20px;height:20px}.page-header{gap:var(--space-1);padding-bottom:var(--space-2);flex-direction:column;display:flex}.page-header__title{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--font-extrabold);color:var(--color-text);line-height:var(--leading-tight);letter-spacing:-.02em}.page-header__description{font-size:var(--text-base);color:var(--color-text-muted);line-height:var(--leading-vi)}.stats-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.stat-card{background-color:var(--color-surface);border-radius:var(--radius-2xl);padding:var(--space-5) var(--space-5);gap:var(--space-3);transition:all var(--duration-fast) var(--ease-default);flex-direction:column;display:flex}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card__header{justify-content:space-between;align-items:center;display:flex}.stat-card__icon{border-radius:var(--radius-xl);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.35rem;display:flex}.stat-card__trend{font-size:var(--text-xs);font-weight:var(--font-semibold);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full)}.stat-card__trend--up{color:var(--color-success);background:var(--color-primary-50)}.stat-card__trend--down{color:var(--color-error);background:#b025000f}.stat-card__value{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--font-extrabold);color:var(--color-text);letter-spacing:-.03em;line-height:1}.stat-card__label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-muted)}.stat-card--streak .stat-card__icon{background:var(--color-streak-bg);animation:.8s ease-in-out infinite streakFlame}.stat-card--streak .stat-card__value{color:var(--color-streak)}.quick-actions{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}.quick-action-card{background:var(--color-surface);border-radius:var(--radius-2xl);padding:var(--space-5) var(--space-4);align-items:center;gap:var(--space-3);cursor:pointer;transition:all var(--duration-fast) var(--ease-bounce);text-align:center;border:none;flex-direction:column;text-decoration:none;display:flex}.quick-action-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}.quick-action-card:active{box-shadow:none;transform:translateY(0)}.quick-action-card__icon{border-radius:var(--radius-2xl);width:56px;height:56px;transition:transform var(--duration-fast) var(--ease-bounce);justify-content:center;align-items:center;font-size:1.75rem;display:flex}.quick-action-card:hover .quick-action-card__icon{transform:scale(1.1)rotate(-5deg)}.quick-action-card__label{font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text)}.quick-action-card__sub{font-size:var(--text-xs);color:var(--color-text-muted)}.skeleton-page{gap:var(--space-6);animation:fadeIn var(--duration-fast) var(--ease-out);flex-direction:column;display:flex}.skeleton-page__header{gap:var(--space-2);flex-direction:column;display:flex}.skeleton-page__grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.skeleton-page__card{background-color:var(--color-surface);border-radius:var(--radius-2xl);padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.skeleton-page__card-row{align-items:center;gap:var(--space-3);display:flex}.admin-sidebar{width:var(--sidebar-width);height:100vh;color:var(--color-text-inverse);z-index:var(--z-raised);background-color:#0f2d1a;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden auto;box-shadow:1px 0 #ffffff0f}.admin-sidebar__logo{padding:var(--space-5) var(--space-5) var(--space-4);font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-bold);color:#4ade80;align-items:center;gap:var(--space-3);border-bottom:1px solid #ffffff14;flex-shrink:0;display:flex}.admin-sidebar__nav{padding:var(--space-3);flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.admin-nav-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-xl);font-size:var(--text-sm);font-weight:var(--font-medium);color:#fff9;cursor:pointer;transition:all var(--duration-fast) var(--ease-default);text-align:left;background:0 0;border:none;width:100%;min-height:44px;text-decoration:none;display:flex}.admin-nav-item:hover{color:#fffffff2;background-color:#ffffff14}.admin-nav-item--active{color:#4ade80;font-weight:var(--font-semibold);background-color:#4ade8026}.admin-nav-item--logout{color:#f87171;font-family:inherit}.admin-nav-item--logout:hover{color:#fca5a5;background-color:#f871711f}.admin-sidebar__bottom{padding:var(--space-3);border-top:1px solid #ffffff14;flex-direction:column;flex-shrink:0;gap:2px;display:flex}.admin-sidebar__theme-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);color:#ffffff80;display:flex}.admin-sidebar__theme-label{font-size:var(--text-sm);font-weight:var(--font-medium)}.sidebar-overlay{z-index:calc(var(--z-raised) - 1);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;display:none;position:fixed;inset:0}.mobile-menu-btn{background:var(--color-surface-container-high);border-radius:var(--radius-lg);cursor:pointer;width:40px;height:40px;font-size:var(--text-lg);transition:all var(--duration-fast) var(--ease-default);border:none;justify-content:center;align-items:center;display:none}.mobile-menu-btn:hover{background:var(--color-surface-container-highest)}.admin-mobile-menu-btn{color:var(--color-text);background:#ffffff14}.admin-mobile-menu-btn:hover{background:#ffffff1f}@media (min-width:1025px){.app-main,.admin-main{margin-left:var(--sidebar-width)}.sidebar,.admin-sidebar{position:fixed;transform:translate(0)!important}.sidebar-overlay,.mobile-menu-btn{display:none!important}}@media (max-width:1024px){.app-main,.admin-main{width:100%;margin-left:0}.sidebar{transition:transform var(--duration-normal) var(--ease-default);will-change:transform;z-index:var(--z-raised);transform:translate(-100%)}.sidebar--open{box-shadow:var(--shadow-xl);transform:translate(0)}.admin-sidebar{transition:transform var(--duration-normal) var(--ease-default);will-change:transform;z-index:var(--z-raised);transform:translate(-100%)}.admin-sidebar--open{transform:translate(0);box-shadow:8px 0 32px #00000080}.sidebar-overlay{-webkit-backdrop-filter:blur(3px);z-index:calc(var(--z-raised) - 1);background:#0000008c;animation:none;display:none;position:fixed;inset:0}.sidebar-overlay--visible{animation:.2s ease-out fadeIn;display:block}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mobile-menu-btn{background:var(--color-surface-container-high);border-radius:var(--radius-lg);cursor:pointer;width:40px;height:40px;color:var(--color-text);transition:background var(--duration-fast) var(--ease-default);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.mobile-menu-btn:hover{background:var(--color-surface-container-highest)}.app-content,.admin-content{padding:var(--space-4)}}@media (max-width:480px){.app-content,.admin-content{padding:var(--space-3)}}
