@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/static/media/inter-cyrillic-ext-400-normal.39fbf8d2c4abc46f721f.woff2) format("woff2"),url(/static/media/inter-cyrillic-ext-400-normal.818b84180553acc613f3.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/static/media/inter-cyrillic-400-normal.89455522650c3fb3654c.woff2) format("woff2"),url(/static/media/inter-cyrillic-400-normal.dd21c71421d58232ef03.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/static/media/inter-greek-ext-400-normal.f2ef63e732b18d636044.woff2) format("woff2"),url(/static/media/inter-greek-ext-400-normal.fc80974ec6969ee03fd2.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/static/media/inter-greek-400-normal.e685387f69602567b1da.woff2) format("woff2"),url(/static/media/inter-greek-400-normal.b412faded087fbcfa4ff.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/static/media/inter-vietnamese-400-normal.44c9df135eec470b0ab6.woff2) format("woff2"),url(/static/media/inter-vietnamese-400-normal.aaa15d735e3826061950.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/static/media/inter-latin-ext-400-normal.210fb826cb25acbd4094.woff2) format("woff2"),url(/static/media/inter-latin-ext-400-normal.c616205185f0d3677df9.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(/static/media/inter-latin-400-normal.eca1e21531598d5db58f.woff2) format("woff2"),url(/static/media/inter-latin-400-normal.2ea1079c0069eb040a52.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/static/media/inter-cyrillic-ext-500-normal.b2740f247d3be4a05ca0.woff2) format("woff2"),url(/static/media/inter-cyrillic-ext-500-normal.e9974e820735012b025b.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/static/media/inter-cyrillic-500-normal.33a76a7cbcfcb7076534.woff2) format("woff2"),url(/static/media/inter-cyrillic-500-normal.72f7a9db87626ca30c76.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/static/media/inter-greek-ext-500-normal.4c6d520b97e3bb4ef613.woff2) format("woff2"),url(/static/media/inter-greek-ext-500-normal.47cc2391a7edf82cf4e1.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/static/media/inter-greek-500-normal.e7cec4ef4f6780e90a52.woff2) format("woff2"),url(/static/media/inter-greek-500-normal.6d34bacda2be54829b97.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/static/media/inter-vietnamese-500-normal.63d02ea896a7406849b6.woff2) format("woff2"),url(/static/media/inter-vietnamese-500-normal.296d66c0bba9086788b9.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/static/media/inter-latin-ext-500-normal.cdb4dd5dc508fe6e7398.woff2) format("woff2"),url(/static/media/inter-latin-ext-500-normal.2f93aaa35e870cec4704.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:Inter;font-style:normal;font-weight:500;src:url(/static/media/inter-latin-500-normal.b7c27c60f848f2083f45.woff2) format("woff2"),url(/static/media/inter-latin-500-normal.5014db633e71a7741bf5.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/static/media/inter-cyrillic-ext-600-normal.8c6413cdd8004fde0a19.woff2) format("woff2"),url(/static/media/inter-cyrillic-ext-600-normal.d6d44e8705a633436dfe.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/static/media/inter-cyrillic-600-normal.fdee7b66c2d88216b75f.woff2) format("woff2"),url(/static/media/inter-cyrillic-600-normal.8609e1b95284125f21cb.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/static/media/inter-greek-ext-600-normal.c3c138d889b8c929822c.woff2) format("woff2"),url(/static/media/inter-greek-ext-600-normal.c7983dac0ad6a359aef0.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/static/media/inter-greek-600-normal.984050ecee12eabe9366.woff2) format("woff2"),url(/static/media/inter-greek-600-normal.d8b0044cf6afdd52b07b.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/static/media/inter-vietnamese-600-normal.6984cf5e8583fac83be3.woff2) format("woff2"),url(/static/media/inter-vietnamese-600-normal.04bb56ffa463ab55708d.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/static/media/inter-latin-ext-600-normal.8148c3ae14dfaefc62ca.woff2) format("woff2"),url(/static/media/inter-latin-ext-600-normal.4d0d5017d71ea1750fc1.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:Inter;font-style:normal;font-weight:600;src:url(/static/media/inter-latin-600-normal.69a8d1d484967aba2389.woff2) format("woff2"),url(/static/media/inter-latin-600-normal.f10265da6bd8d66999ac.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/static/media/inter-cyrillic-ext-700-normal.b0c28c6752a13fa5abaf.woff2) format("woff2"),url(/static/media/inter-cyrillic-ext-700-normal.43f6f7e8a4205f05e58c.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/static/media/inter-cyrillic-700-normal.533055ff3700190d8dfa.woff2) format("woff2"),url(/static/media/inter-cyrillic-700-normal.9f2de06ca9a7c8458434.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/static/media/inter-greek-ext-700-normal.c9429f4b77b1f85e999d.woff2) format("woff2"),url(/static/media/inter-greek-ext-700-normal.0f8675bdd7f3fe3a3dba.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/static/media/inter-greek-700-normal.3f04511ca7c0cea0cc2f.woff2) format("woff2"),url(/static/media/inter-greek-700-normal.8b95c1e2b193d0541864.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/static/media/inter-vietnamese-700-normal.d1c85cabbe96efcaeb68.woff2) format("woff2"),url(/static/media/inter-vietnamese-700-normal.05b640f829d1ac5ff29d.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/static/media/inter-latin-ext-700-normal.bc59219ed344909a4f53.woff2) format("woff2"),url(/static/media/inter-latin-ext-700-normal.d4a91814dd3f1e022ab1.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(/static/media/inter-latin-700-normal.1104236696a5d2d1f236.woff2) format("woff2"),url(/static/media/inter-latin-700-normal.c73ae7252669254d2588.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:800;src:url(/static/media/inter-cyrillic-ext-800-normal.e6e43b7a04f9a0ee40ab.woff2) format("woff2"),url(/static/media/inter-cyrillic-ext-800-normal.6b3d976237d00cddf2c9.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:800;src:url(/static/media/inter-cyrillic-800-normal.9db8aee669b5bb33882d.woff2) format("woff2"),url(/static/media/inter-cyrillic-800-normal.a0cb8f734a73e8bf5059.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:800;src:url(/static/media/inter-greek-ext-800-normal.06cacdee737ce03b4adb.woff2) format("woff2"),url(/static/media/inter-greek-ext-800-normal.d3fb89b9b7f3b4c6eb52.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:800;src:url(/static/media/inter-greek-800-normal.e9b5d2d4f24060cc1f25.woff2) format("woff2"),url(/static/media/inter-greek-800-normal.af02bb9b1bd7a5e0d73a.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:800;src:url(/static/media/inter-vietnamese-800-normal.344e8bb59f4fe38591db.woff2) format("woff2"),url(/static/media/inter-vietnamese-800-normal.247535ebe16af19afc86.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:800;src:url(/static/media/inter-latin-ext-800-normal.295090dc5792a0e7b9c6.woff2) format("woff2"),url(/static/media/inter-latin-ext-800-normal.581b38b1c40557386b4c.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:Inter;font-style:normal;font-weight:800;src:url(/static/media/inter-latin-800-normal.d2cf8417dfce77f8f2be.woff2) format("woff2"),url(/static/media/inter-latin-800-normal.e25d8fa1cf6e38254bbe.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:900;src:url(/static/media/inter-cyrillic-ext-900-normal.bff6a81631f76735fba2.woff2) format("woff2"),url(/static/media/inter-cyrillic-ext-900-normal.1428b48ddb53cc864666.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:900;src:url(/static/media/inter-cyrillic-900-normal.c5c4df448d7389d85c94.woff2) format("woff2"),url(/static/media/inter-cyrillic-900-normal.d3290970be81bb43b907.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:900;src:url(/static/media/inter-greek-ext-900-normal.f894dda67584dce70909.woff2) format("woff2"),url(/static/media/inter-greek-ext-900-normal.f49273f1431cd8ac0fe9.woff) format("woff");unicode-range:u+1f??}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:900;src:url(/static/media/inter-greek-900-normal.7eb937cb911d6f796574.woff2) format("woff2"),url(/static/media/inter-greek-900-normal.fc8b90b2cbcf3e3328a7.woff) format("woff");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:900;src:url(/static/media/inter-vietnamese-900-normal.30ffccb6afda69cc2d6e.woff2) format("woff2"),url(/static/media/inter-vietnamese-900-normal.8cd735c68101ea9d81cb.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:900;src:url(/static/media/inter-latin-ext-900-normal.7fd8c8e69004ecbbd634.woff2) format("woff2"),url(/static/media/inter-latin-ext-900-normal.f6e016c8cf583b395f89.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:Inter;font-style:normal;font-weight:900;src:url(/static/media/inter-latin-900-normal.111844ddb503252b7554.woff2) format("woff2"),url(/static/media/inter-latin-900-normal.06954c913fa69c107e01.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--green-50:#ecfdf3;--green-100:#d1fadf;--green-200:#a6f0c6;--green-300:#6ce9a6;--green-400:#38d68a;--green-500:#22b573;--green-600:#17945c;--green-700:#0f7a48;--green-800:#0b5e38;--teal-50:#ecfeff;--teal-100:#cff9fb;--teal-200:#a3eef3;--teal-300:#67dde7;--teal-400:#26c3d4;--teal-500:#0ea5b7;--teal-600:#0b8a9a;--teal-700:#0c6f7c;--gray-0:#fff;--gray-50:#f7f9fb;--gray-100:#eef1f5;--gray-200:#e2e6ec;--gray-300:#cbd2db;--gray-400:#9aa4b2;--gray-500:#6b7684;--gray-600:#4b5563;--gray-700:#333c49;--gray-800:#1c2434;--gray-900:#0f141d;--color-primary:var(--green-500);--color-primary-hover:var(--green-600);--color-secondary:var(--teal-500);--color-secondary-hover:var(--teal-600);--accent:var(--color-primary);--bg-app:var(--gray-50);--bg-surface:var(--gray-0);--border:var(--gray-200);--border-strong:var(--gray-300);--text:var(--gray-800);--text-muted:var(--gray-500);--text-subtle:var(--gray-400);--text-on-accent:#fff;--success:#16a34a;--warning:#d97706;--danger:#ef4444;--info:var(--teal-500);--primary-wash:#22b5731a;--secondary-wash:#0ea5b71a;--success-wash:#16a34a1a;--warning-wash:#f59e0b1a;--danger-wash:#ef44441a;--chart-1:var(--green-500);--chart-2:var(--teal-500);--chart-3:#f59e0b;--chart-4:#6366f1;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--text-display:clamp(2.1rem,5vw,3.4rem);--leading-tight:1.15;--leading-normal:1.5;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--shadow-sm:0 1px 2px #1018280d;--shadow-md:0 4px 12px #10182814;--shadow-lg:0 12px 32px #1018281f;--transition:0.15s ease;--container-max:1240px;--z-nav:50;--z-modal:100}[data-theme=dark]{--bg-app:#080b0d;--bg-surface:#0e1417;--border:#ffffff0f;--border-strong:#ffffff1f;--text:#f4f7fa;--text-muted:#8a94a0;--text-subtle:#5a6470;--color-primary:var(--green-400);--color-primary-hover:var(--green-300);--primary-wash:#38d68a2e;--success:#4ade80;--warning:#fbbf24;--danger:#f87171;--success-wash:#4ade8026;--warning-wash:#fbbf2426;--danger-wash:#f8717126}*,:after,:before{box-sizing:border-box}body,html{margin:0}body{-webkit-font-smoothing:antialiased;background:var(--bg-app);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);text-rendering:optimizeLegibility}body,h1,h2,h3{color:var(--text)}h1,h2,h3{line-height:var(--leading-tight);margin:0 0 var(--space-4)}h1{font-size:var(--text-3xl);font-weight:var(--fw-extrabold);letter-spacing:-.01em}h2{font-size:var(--text-2xl);font-weight:var(--fw-bold)}h3{font-size:var(--text-xl);font-weight:var(--fw-semibold)}p{margin:0 0 var(--space-4)}a{color:var(--color-secondary);text-decoration:none}a:hover{text-decoration:underline}.btn{align-items:center;border:1.5px solid #0000;border-radius:var(--radius-pill);cursor:pointer;display:inline-flex;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--fw-semibold);gap:var(--space-2);justify-content:center;min-height:40px;padding:10px 20px;transition:background var(--transition),border-color var(--transition),color var(--transition)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-secondary);color:#fff}.btn-secondary:hover{background:var(--color-secondary-hover)}.btn-outline{background:#0000;border-color:var(--color-primary);color:var(--color-primary)}.btn-outline:hover{background:var(--primary-wash)}.btn-ghost{background:#0000;color:var(--text-muted)}.btn-ghost:hover{background:var(--gray-100);color:var(--text)}.btn-lg{font-size:var(--text-base);min-height:48px;padding:14px 30px}.btn-sm{font-size:var(--text-xs);min-height:34px;padding:7px 14px}.btn:disabled{cursor:not-allowed;opacity:.5}@media (max-width:600px){.btn{min-height:44px}}.card{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6)}.card,.input,.textarea{background:var(--bg-surface)}.input,.textarea{border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);padding:10px 12px;transition:border-color var(--transition),box-shadow var(--transition);width:100%}.input:focus,.textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--primary-wash);outline:none}.badge{align-items:center;border-radius:var(--radius-pill);display:inline-flex;font-size:var(--text-xs);font-weight:var(--fw-medium);padding:2px 10px}.badge-primary{background:var(--primary-wash);color:var(--green-700)}.badge-secondary{background:var(--secondary-wash);color:var(--teal-700)}.badge-warning{background:#f59e0b1f;color:#b45309}.badge-danger{background:#ef44441f;color:#b91c1c}.badge-success{background:#16a34a1f;color:#15803d}.modal-overlay{align-items:center;background:#141c288c;display:flex;inset:0;justify-content:center;padding:var(--space-5);position:fixed;z-index:var(--z-modal)}.modal-card{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:90vh;max-width:420px;overflow-y:auto;padding:var(--space-8);position:relative;width:100%}.modal-card:focus{outline:none}.modal-card-md{max-width:560px}.modal-card-lg{max-width:720px}.modal-header{align-items:flex-start;display:flex;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-4)}.modal-title{color:var(--text);font-size:var(--text-xl);font-weight:var(--fw-semibold);margin:0}.modal-close{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;height:32px;justify-content:center;transition:background var(--transition),color var(--transition);width:32px}.modal-close:hover{background:var(--gray-100);color:var(--text)}.modal-body{color:var(--text)}.modal-footer{align-items:center;display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-6)}@media (max-width:640px){.modal-overlay{align-items:stretch;padding:0}.modal-card,.modal-card-lg,.modal-card-md{border-radius:0;height:100%;max-height:100%;max-width:100%;padding:var(--space-6) var(--space-5);padding-bottom:calc(var(--space-5) + env(safe-area-inset-bottom, 0px));width:100%}.modal-close{height:44px;width:44px}}.page-header{align-items:flex-start;display:flex;gap:var(--space-6);justify-content:space-between;margin-bottom:var(--space-6)}.page-header-text{min-width:0}.page-header-title{color:var(--text);font-size:var(--text-2xl);font-weight:var(--fw-bold);margin:0}.page-header-subtitle{color:var(--text-muted);font-size:var(--text-sm);margin:var(--space-1) 0 0}.page-header-actions{align-items:center;display:flex;flex-shrink:0;gap:var(--space-3)}*{margin:0;padding:0}#root,body,html{height:100%}body{-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.editor-panel{background-color:#1e1e2e;display:flex;flex-direction:column;height:100%;position:relative}.editor-tabs{background:#16161f;border-bottom:1px solid #ffffff0f;display:flex;flex-shrink:0}.tab-button{background:#0000;border:none;border-bottom:2px solid #0000;color:#6b7280;cursor:pointer;font-size:12px;font-weight:500;letter-spacing:.6px;padding:10px 16px;text-transform:uppercase;transition:color .15s ease}.tab-button:hover{color:#d1d5db}.tab-button.active{border-bottom-color:var(--green-400);color:var(--green-400)}.mode-menu-wrap{margin-left:auto;position:relative}.mode-btn,.mode-menu-wrap{align-items:center;align-self:center;display:flex}.mode-btn{background:#0000;border:1px solid #ffffff1a;border-radius:4px;color:#6b7280;cursor:pointer;font-family:inherit;font-size:11px;font-weight:500;gap:5px;height:24px;margin-right:4px;padding:0 8px;transition:color .15s ease,border-color .15s ease,background .15s ease;white-space:nowrap}.mode-btn.active,.mode-btn:hover{background:#38d68a14;border-color:#38d68a66;color:var(--green-400)}.mode-menu{left:auto;min-width:280px;right:0}.mode-menu-item-active{background:#38d68a1a!important;color:var(--green-400)!important}.mode-menu .download-menu-item{display:flex;flex-direction:column;gap:1px;padding:7px 12px}.mode-menu-item-label{color:inherit;font-size:.75rem;font-weight:600}.mode-menu-item-detail{color:#6b7280;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.68rem}.upload-btn{align-items:center;align-self:center;background:#0000;border:1px solid #ffffff1a;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;height:24px;margin-left:0;margin-right:4px;padding:0 8px;transition:color .15s ease,border-color .15s ease,background .15s ease}.upload-btn.active,.upload-btn:hover{background:#38d68a14;border-color:#38d68a66;color:var(--green-400)}.download-menu-wrap,.upload-menu-wrap{align-items:center;align-self:center;display:flex;position:relative}.download-menu{background:#1e1e2e;border:1px solid #ffffff1f;border-radius:6px;box-shadow:0 4px 12px #0006;min-width:130px;overflow:hidden;position:absolute;right:0;top:calc(100% + 6px);z-index:100}.download-menu-item{background:#0000;border:none;color:#d1d5db;cursor:pointer;display:block;font-family:inherit;font-size:12px;padding:8px 12px;text-align:left;transition:background .12s ease,color .12s ease;white-space:nowrap;width:100%}.download-menu-item:hover{background:#38d68a26;color:var(--green-400)}.download-btn{align-items:center;align-self:center;background:#0000;border:1px solid #ffffff1a;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;height:24px;margin-left:0;margin-right:4px;padding:0 8px;transition:color .15s ease,border-color .15s ease,background .15s ease}.download-btn.active,.download-btn:hover{background:#38d68a14;border-color:#38d68a66;color:var(--green-400)}.reset-btn{align-items:center;align-self:center;background:#0000;border:1px solid #ffffff1a;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;font-family:inherit;font-size:11px;height:24px;margin-left:0;margin-right:8px;padding:0 8px;transition:color .15s ease,border-color .15s ease,background .15s ease;white-space:nowrap}.reset-btn:hover{background:#ffffff0d;border-color:#fff3;color:#d1d5db}.reset-btn-confirm{background:#f8717114;border-color:#f8717166;color:#f87171}.reset-btn-confirm:hover{background:#f8717126;border-color:#f8717199;color:#fca5a5}.panel-maximize-btn{align-items:center;align-self:center;background:#0000;border:1px solid #ffffff1a;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;height:24px;margin-left:4px;padding:0 6px;transition:color .15s ease,border-color .15s ease,background .15s ease}.panel-maximize-btn:hover{background:#38d68a14;border-color:#38d68a66;color:var(--green-400)}.editor-wrapper{flex:1 1;min-height:0;overflow:hidden}.save-btn{align-items:center;align-self:center;background:#0000;border:1px solid #38d68a59;border-radius:4px;color:var(--green-400);cursor:pointer;display:flex;font-family:inherit;font-size:11px;gap:4px;height:24px;margin-left:0;margin-right:4px;padding:0 8px;transition:color .15s ease,border-color .15s ease,background .15s ease;white-space:nowrap}.save-btn:hover:not(:disabled){background:#38d68a14;border-color:#38d68a99;color:var(--green-400)}.save-btn:disabled{cursor:default;opacity:.5}.save-btn-saved{border-color:#34d39973;color:#34d399}.revert-btn{align-items:center;align-self:center;background:#0000;border:1px solid #fbbf244d;border-radius:4px;color:#fbbf24;cursor:pointer;display:flex;font-family:inherit;font-size:11px;gap:4px;height:24px;margin-left:0;margin-right:4px;padding:0 8px;transition:color .15s ease,border-color .15s ease,background .15s ease;white-space:nowrap}.revert-btn:hover{background:#fbbf2414;border-color:#fbbf248c;color:#fcd34d}.drop-overlay{align-items:center;background:#38d68a1f;border:2px dashed var(--green-400);display:flex;inset:0;justify-content:center;pointer-events:none;position:absolute;z-index:50}.drop-overlay-content{align-items:center;color:var(--green-400);display:flex;flex-direction:column;font-size:.9375rem;font-weight:600;gap:12px}.drop-confirm-overlay{align-items:center;background:#000000a6;display:flex;inset:0;justify-content:center;position:absolute;z-index:100}.drop-confirm-modal{background:#1e1e2e;border:1px solid #ffffff1f;border-radius:10px;box-shadow:0 8px 32px #0009;max-width:340px;padding:24px;width:90%}.drop-confirm-title{color:#e5e7eb;font-size:1rem;font-weight:600;margin:0 0 10px}.drop-confirm-body{color:#9ca3af;font-size:.875rem;margin:0 0 10px}.drop-confirm-tags{display:flex;gap:6px;margin-bottom:12px}.drop-confirm-tag{background:#38d68a2e;border:1px solid #38d68a59;border-radius:4px;color:var(--green-400);font-size:.78rem;font-weight:600;padding:2px 8px}.drop-confirm-note{color:#6b7280;font-size:.8125rem;font-style:italic;margin:0 0 20px}.drop-confirm-actions{display:flex;gap:8px;justify-content:flex-end}.drop-confirm-cancel{background:#0000;border:1px solid #ffffff1f;border-radius:6px;color:#9ca3af;cursor:pointer;font-family:inherit;font-size:.875rem;padding:6px 14px;transition:background .12s ease,color .12s ease}.drop-confirm-cancel:hover{background:#ffffff0f;color:#d1d5db}.drop-confirm-apply{background:var(--green-500);border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:inherit;font-size:.875rem;font-weight:600;padding:6px 14px;transition:background .12s ease}.drop-confirm-apply:hover{background:var(--green-600)}.browser-preview{background:#fff;display:flex;flex-direction:column;height:100%}.tab-strip{align-items:stretch;background:#dee1e6;display:flex;flex-shrink:0;height:38px;padding-left:8px}.tab-row{align-items:flex-end;flex:1 1;gap:0}.browser-tab,.tab-row{display:flex;min-width:0}.browser-tab{align-items:center;align-self:flex-end;background:#fff;border-radius:8px 8px 0 0;box-shadow:0 1px 3px #0000001f;color:#3c4043;font-size:.78rem;font-weight:500;gap:7px;height:30px;max-width:220px;padding:0 14px 0 12px;white-space:nowrap}.tab-favicon{color:#5f6368;flex-shrink:0}.tab-favicon-img{flex-shrink:0;height:14px;object-fit:contain;width:14px}.tab-title{overflow:hidden;text-overflow:ellipsis}.new-tab-btn{align-items:center;align-self:flex-end;background:#0000;border:none;border-radius:50%;color:#5f6368;cursor:default;display:flex;flex-shrink:0;height:28px;justify-content:center;margin-bottom:1px;opacity:.45;width:28px}.window-controls{align-items:stretch;margin-left:auto}.wc-btn,.window-controls{display:flex;flex-shrink:0}.wc-btn{align-items:center;background:#0000;border:none;color:#3c4043;cursor:pointer;height:38px;justify-content:center;transition:background .1s ease;width:46px}.wc-max:hover,.wc-min:hover{background:#0000001a}.wc-close:hover{background:#c42b1c;color:#fff}.chrome-toolbar{background:#f1f3f4;border-bottom:1px solid #dadce0;gap:2px;height:44px;padding:5px 10px}.chrome-icon-btn,.chrome-toolbar{align-items:center;display:flex;flex-shrink:0}.chrome-icon-btn{background:#0000;border:none;border-radius:50%;color:#3c4043;cursor:pointer;height:32px;justify-content:center;transition:background .1s ease;width:32px}.nav-btn{cursor:default;opacity:.3}.refresh-btn{color:#3c4043;margin-right:4px;opacity:1}.refresh-btn:hover{background:#3c40431f;color:#1a73e8}.refresh-btn:active{background:#1a73e829;color:#1a73e8}.side-btn{cursor:default;opacity:.5}.omnibox{align-items:center;background:#fff;border:1.5px solid #dadce0;border-radius:16px;cursor:default;display:flex;flex:1 1;gap:7px;height:30px;padding:0 14px;-webkit-user-select:none;user-select:none}.omnibox-lock{color:#188038;flex-shrink:0}.omnibox-url{color:#202124;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.8125rem;letter-spacing:.01em}.console-toggle-btn{opacity:.75;position:relative}.console-toggle-btn:hover{background:#3c40431f;opacity:1}.console-toggle-btn.active{background:#1a73e81a;color:#1a73e8;opacity:1}.console-toggle-btn.has-errors svg{transform:scale(1.4);transform-origin:center}.browser-content{display:flex;flex:1 1;min-height:0;overflow:hidden;position:relative}.syntax-error-banner{align-items:center;background:#7f1d1d;border-top:1px solid #991b1b;color:#fecaca;display:flex;flex-shrink:0;font-family:Consolas,Menlo,monospace;font-size:.78rem;gap:8px;padding:7px 14px}.syntax-error-banner strong{color:#fca5a5;font-weight:700}.syntax-error-dismiss{background:#0000;border:none;color:#fca5a5;cursor:pointer;font-size:1rem;line-height:1;margin-left:auto;opacity:.75;padding:0 4px;transition:opacity .1s}.syntax-error-dismiss:hover{opacity:1}.console-panel{background:#1e1e1e;border-left:1px solid #333;display:flex;flex-direction:column;flex-shrink:0;font-family:Consolas,Menlo,Monaco,monospace;font-size:.78rem;overflow:hidden;position:relative}.console-resize-handle{bottom:0;cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='16'%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' d='M11 1v14'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' fill='none' d='M4 8H0'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none' d='M2 5 0 8l2 3'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' fill='none' d='M18 8h4'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none' d='m20 5 2 3-2 3'/%3E%3C/svg%3E") 11 8,col-resize;left:0;position:absolute;top:0;transition:background .15s ease;width:5px;z-index:10}.console-resize-handle:hover{background:#6366f159}.resize-overlay{cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='16'%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' d='M11 1v14'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' fill='none' d='M4 8H0'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none' d='M2 5 0 8l2 3'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' fill='none' d='M18 8h4'/%3E%3Cpath stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none' d='m20 5 2 3-2 3'/%3E%3C/svg%3E") 11 8,col-resize;inset:0;position:absolute;z-index:100}.console-panel-header{align-items:center;background:#2d2d2d;border-bottom:1px solid #444;display:flex;flex-shrink:0;gap:6px;justify-content:space-between;min-height:32px;padding:2px 8px 2px 12px}.console-tabs{display:flex;gap:2px}.console-tab-btn{background:none;border:none;border-radius:3px;color:#6b7280;cursor:pointer;font-family:inherit;font-size:.7rem;font-weight:600;letter-spacing:.05em;padding:3px 8px;text-transform:uppercase;transition:color .1s,background .1s}.console-tab-btn:hover{background:#ffffff0f;color:#d1d5db}.console-tab-btn.active{background:#ffffff1a;color:#e5e7eb}.console-header-right{align-items:center;display:flex;gap:6px;margin-left:auto}.console-filter-chips{display:flex;gap:3px}.console-filter-chip{background:#ffffff0d;border:1px solid #ffffff14;border-radius:3px;color:#4b5563;cursor:pointer;font-family:inherit;font-size:.62rem;font-weight:700;letter-spacing:.04em;padding:1px 5px;transition:background .12s,color .12s,border-color .12s}.console-filter-chip.filter-error.active{background:#ef444426;border-color:#ef444466;color:#ef4444}.console-filter-chip.filter-warn.active{background:#fbbf241f;border-color:#fbbf2466;color:#fbbf24}.console-filter-chip.filter-log.active{background:#6b728026;border-color:#ffffff1f;color:#9ca3af}.console-filter-chip:hover{opacity:.85}.console-clear-btn{background:none;border:none;border-radius:3px;color:#6b7280;cursor:pointer;font-family:inherit;font-size:.72rem;padding:2px 6px;transition:background .1s,color .1s}.console-clear-btn:hover{background:#ffffff14;color:#d1d5db}.console-tab-body{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.console-entries{flex:1 1;min-height:0;overflow-y:auto;padding:4px 0}.console-empty{color:#6b7280;font-size:.75rem;font-style:italic;padding:8px 12px}.console-entry{border-bottom:1px solid #ffffff08;cursor:default;display:flex;flex-direction:column;line-height:1.4;padding:3px 12px}.console-entry:last-child{border-bottom:none}.console-entry-linked{cursor:pointer}.console-entry-linked:hover{background:#ffffff0a}.console-entry-main{align-items:baseline;display:flex;flex-wrap:wrap;gap:8px}.console-level{flex-shrink:0;font-size:.68rem;font-weight:700;letter-spacing:.04em;padding-top:1px;text-transform:uppercase;width:34px}.console-message{color:#e5e7eb;flex:1 1;white-space:pre-wrap;word-break:break-all}.console-line-link{color:#6b7280;flex-shrink:0;font-size:.7rem;margin-left:4px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.console-stack-btn{background:none;border:none;color:#6b7280;cursor:pointer;flex-shrink:0;font-family:inherit;font-size:.68rem;padding:0 4px;transition:color .1s}.console-stack-btn:hover{color:#9ca3af}.console-entry-source-line{padding:3px 8px 3px 42px}.console-entry-source-line code{background:#ffffff0d;border-radius:3px;color:#9ca3af;display:block;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.7rem;max-width:100%;overflow:hidden;padding:1px 5px;text-overflow:ellipsis;white-space:pre}.console-stack{border-left:2px solid #333;margin-left:2px;margin-top:3px;padding-left:42px}.console-stack-frame{color:#6b7280;font-size:.7rem;line-height:1.5;white-space:pre-wrap;word-break:break-all}.console-log .console-level{color:#6b7280}.console-info .console-level{color:#60a5fa}.console-info .console-message{color:#93c5fd}.console-warn{background:#fbbf2412}.console-warn .console-level{color:#fbbf24}.console-warn .console-message{color:#fde68a}.console-error{background:#ef44441a}.console-error .console-level{color:#ef4444}.console-error .console-message{color:#fca5a5}.console-arg{display:inline}.obj-node{display:inline-block;vertical-align:top}.obj-toggle{background:none;border:none;color:#a5b4fc;cursor:pointer;font-family:inherit;font-size:.75rem;padding:0;transition:color .1s;white-space:nowrap}.obj-toggle:hover{color:#818cf8}.obj-children{border-left:1px solid #333;margin-left:4px;padding-left:14px}.obj-row{display:flex;flex-wrap:wrap;line-height:1.5}.obj-key{color:#a5b4fc;font-size:.73rem}.obj-primitive{color:#86efac;font-size:.73rem}.obj-ellipsis{color:#6b7280;font-size:.73rem}.console-repl{background:#181818;border-top:1px solid #333;flex-shrink:0}.console-repl-history{max-height:120px;overflow-y:auto;padding:4px 0}.console-repl-entry{padding:2px 10px}.console-repl-expr{color:#d1d5db;display:flex;font-size:.73rem;gap:6px}.console-repl-prompt{color:#6366f1;flex-shrink:0;font-weight:700}.console-repl-expr-text{color:#e5e7eb}.console-repl-result{color:#86efac;display:flex;font-size:.73rem;gap:6px;padding-left:2px}.console-repl-error{color:#fca5a5}.console-repl-arrow{color:#6b7280;flex-shrink:0}.console-repl-pending{color:#4b5563;font-size:.73rem;padding-left:12px}.console-repl-input-row{align-items:center;border-top:1px solid #2a2a2a;display:flex;gap:6px;padding:5px 8px 5px 10px}.console-repl-input{background:#0000;border:none;caret-color:#a5b4fc;color:#e5e7eb;flex:1 1;font-family:Consolas,Menlo,monospace;font-size:.75rem;outline:none}.console-repl-input::placeholder{color:#4b5563}.console-repl-run{background:#6366f126;border:1px solid #6366f14d;border-radius:3px;color:#a5b4fc;cursor:pointer;flex-shrink:0;font-family:inherit;font-size:.68rem;padding:2px 7px;transition:background .1s,color .1s}.console-repl-run:hover{background:#6366f147;color:#c7d2fe}.console-source{background:#1e1e1e;flex:1 1;min-height:0;overflow-x:auto;overflow-y:auto}.console-source-info{background:#2d2d2d;border-bottom:1px solid #444;color:#fbbf24;font-size:.7rem;padding:5px 12px;position:sticky;top:0;white-space:nowrap;z-index:5}.console-source-body{display:flex;min-width:max-content;position:relative}.console-source-line-highlight{background:#ef44442e;border-left:3px solid #ef4444;height:18px;left:0;pointer-events:none;position:absolute;right:0;z-index:1}.console-source-gutter{background:#1e1e1e;border-right:1px solid #333;flex-shrink:0;left:0;padding-right:0;position:sticky;-webkit-user-select:none;user-select:none;z-index:2}.console-source-linenum{align-items:center;color:#4b5563;display:flex;font-size:.73rem;height:18px;justify-content:flex-end;line-height:18px;min-width:42px;padding-right:10px}.console-source-linenum.line-highlighted{background:#ef444426;color:#fca5a5}.console-source-pre{background:#0000!important;color:#d4d4d4;font-family:Consolas,Menlo,Monaco,monospace!important;font-size:.73rem!important;line-height:18px!important;margin:0;padding:0 14px;tab-size:2;white-space:pre!important}.console-source-pre .token.tag{color:#569cd6}.console-source-pre .token.attr-name{color:#9cdcfe}.console-source-pre .token.attr-value,.console-source-pre .token.string{color:#ce9178}.console-source-pre .token.comment{color:#6a9955}.console-source-pre .token.keyword{color:#569cd6}.console-source-pre .token.number{color:#b5cea8}.console-source-pre .token.function{color:#dcdcaa}.console-source-pre .token.operator,.console-source-pre .token.punctuation{color:#d4d4d4}.console-source-pre .token.cdata,.console-source-pre .token.doctype,.console-source-pre .token.prolog{color:grey}.browser-iframe{background:#fff;border:none;display:block;flex:1 1;min-width:0}.client-panel{background:var(--bg-app);border-left:3px solid var(--accent);box-sizing:border-box;color:var(--text);display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}[data-theme=dark] .client-panel{box-shadow:inset 15px 0 30px -15px var(--accent-glow)}.chat-modal-header{align-items:center;background:var(--bg-surface);border-bottom:1px solid var(--border);display:flex;flex-shrink:0;justify-content:space-between;padding:14px 16px}.chat-modal-header-left{align-items:center;display:flex;gap:10px}.modal-avatar{align-items:center;background:var(--secondary-wash);border-radius:50%;color:var(--color-secondary);display:flex;flex-shrink:0;height:32px;justify-content:center;width:32px}.chat-modal-header h2{color:var(--text);font-size:.9375rem;font-weight:600;line-height:1.2;margin:0}.modal-status{align-items:center;color:var(--text-muted);display:flex;font-size:.75rem;gap:5px;margin-top:1px}.modal-status:before{background:var(--accent);border-radius:50%;content:"";display:inline-block;flex-shrink:0;height:6px;width:6px}.chat-modal-header-right{align-items:center;display:flex;flex-shrink:0;gap:4px}.chat-maximize-btn,.close-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;height:30px;justify-content:center;transition:color .12s ease,background .12s ease;width:30px}.chat-maximize-btn:hover,.close-btn:hover{background:var(--surface-hi);color:var(--text)}.close-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chat-modal-body{background:var(--bg-app);flex:1 1;min-height:0;overflow:hidden}.chat-modal-body,.session-picker{display:flex;flex-direction:column}.session-picker{gap:12px;padding:4px 0}.session-picker-header h3{color:var(--text);font-size:.9375rem;font-weight:600;margin:0 0 4px}.session-picker-header p{color:var(--text-muted);font-size:.8rem;margin:0}.session-picker-loading{color:var(--text-subtle);font-size:.8rem;padding:8px 0}.session-picker-list{display:flex;flex-direction:column;gap:7px}.session-picker-item{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;font-family:inherit;gap:4px;padding:12px 14px;text-align:left;transition:border-color .13s,box-shadow .13s,background .13s}.session-picker-item:hover{background:var(--surface-hi);border-color:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}.spi-meta{align-items:center;display:flex;gap:8px;justify-content:space-between}.spi-unit{color:var(--text);font-size:.8125rem;font-weight:600}.spi-status{border-radius:10px;flex-shrink:0;font-size:.7rem;font-weight:500;padding:2px 7px;text-transform:capitalize}.spi-status-active{background:var(--primary-wash);color:var(--color-primary)}.spi-status-complete{background:var(--surface-hi);color:var(--text-subtle)}.spi-topics{color:var(--text-muted);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spi-date{color:var(--text-subtle);font-size:.7rem}.session-picker-new{background:#0000;border:1.5px dashed var(--border);border-radius:8px;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:.8125rem;padding:10px;transition:border-color .13s,color .13s;width:100%}.session-picker-new:hover{border-color:var(--accent);color:var(--accent)}.setup-screen{background:var(--bg-app);display:flex;flex:1 1;flex-direction:column;gap:18px;overflow-y:auto;padding:18px}.helper-blurb{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;padding:16px}.helper-blurb h3{color:var(--text);font-size:.9375rem;font-weight:600;margin:0 0 10px}.helper-blurb p{color:var(--text-muted);font-size:.8rem;line-height:1.6;margin:0 0 10px}.blurb-list{display:flex;flex-direction:column;gap:6px;margin:0 0 10px;padding-left:16px}.blurb-list li{color:var(--text-muted);font-size:.8rem;line-height:1.5}.blurb-footer{color:var(--text-subtle)!important;font-size:.8rem!important;font-style:italic;margin:0!important}.setup-form{gap:14px}.form-group,.setup-form{display:flex;flex-direction:column}.form-group{gap:4px}.form-group label{color:var(--text);font-size:.8125rem;font-weight:500}.required-star{color:#ef4444;margin-left:1px}.optional-label{margin-left:3px}.setup-input{background:var(--surface-hi);border:1px solid var(--border);border-radius:7px;color:var(--text);font-family:inherit;font-size:.875rem;padding:9px 12px;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.setup-input::placeholder{color:var(--text-subtle)}.setup-input:focus{background:var(--bg-surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field-hint{color:var(--text-subtle);font-size:.75rem}.setup-input-disabled{cursor:not-allowed;opacity:.45}.setup-textarea{font-family:inherit;min-height:56px;resize:vertical}.form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.checkbox-label{align-items:center;color:var(--text-muted);cursor:pointer;display:flex;font-size:.8rem;gap:7px;margin-top:2px;-webkit-user-select:none;user-select:none}.checkbox-label input[type=checkbox]{accent-color:var(--accent);cursor:pointer;flex-shrink:0;height:14px;width:14px}.btn-start{background:var(--accent);border:none;border-radius:8px;color:var(--bg-app);cursor:pointer;font-size:.875rem;font-weight:500;letter-spacing:.1px;padding:10px 16px;transition:opacity .15s ease;width:100%}.btn-start:hover:not(:disabled){opacity:.88}.btn-start:disabled{background:var(--accent-soft);color:var(--text-subtle);cursor:not-allowed}.btn-start:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.setup-context-block{background:var(--surface-hi);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;gap:6px;padding:10px 12px}.setup-context-row{align-items:flex-start;display:flex;gap:8px}.setup-context-label{color:var(--text-subtle);flex-shrink:0;font-size:.75rem;font-weight:600;letter-spacing:.04em;min-width:52px;padding-top:1px;text-transform:uppercase}.setup-context-value{color:var(--text-muted);font-size:.8125rem;line-height:1.45}.error-message{background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;font-size:.875rem;margin:16px;padding:12px 14px}.error{color:#b91c1c;font-size:.8125rem;margin:4px 0 0}.chat-section{position:relative}.chat-section,.messages-list{background:var(--bg-app);display:flex;flex:1 1;flex-direction:column;min-height:0}.messages-list{gap:var(--space-5);min-width:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-6) var(--space-5);scroll-padding-bottom:var(--space-6)}.messages-list>.lecture-autostart .message,.messages-list>.message{margin-left:auto;margin-right:auto;max-width:720px;min-width:0;width:100%}.messages-list::-webkit-scrollbar{width:4px}.messages-list::-webkit-scrollbar-track{background:var(--bg-app)}.messages-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:10px}.messages-list::-webkit-scrollbar-thumb:hover{background:var(--text-subtle)}.message{align-items:flex-end;display:flex;gap:10px;max-width:100%;min-width:0}.msg-user{flex-direction:row-reverse}.msg-assistant{align-items:flex-start;flex-direction:row}.msg-avatar{align-items:center;background:var(--color-secondary);border-radius:50%;color:var(--bg-app);display:flex;flex-shrink:0;font-size:.6875rem;font-weight:600;height:26px;justify-content:center;margin-bottom:2px;width:26px}.bubble-wrap{align-items:flex-start;display:flex;flex-direction:column;gap:4px;max-width:85%;min-width:0}.msg-user .bubble-wrap{align-items:flex-end}.msg-assistant .bubble-wrap{max-width:calc(100% - 36px)}.bubble-actions{align-items:center;align-self:flex-start;display:flex;gap:2px}.msg-user .bubble-actions{align-self:flex-end}.bubble-copy-btn,.bubble-retry-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:flex;justify-content:center;opacity:0;padding:4px 6px;pointer-events:none;transition:opacity .12s ease,color .12s ease,background .12s ease}.bubble-wrap:hover .bubble-copy-btn,.bubble-wrap:hover .bubble-retry-btn{opacity:1;pointer-events:auto}.bubble-copy-btn:hover,.bubble-retry-btn:hover{background:var(--gray-100);color:var(--text)}.message-bubble{word-wrap:break-word;box-sizing:border-box;max-width:100%;min-width:0;overflow:hidden;overflow-wrap:anywhere}.msg-user .message-bubble{background:var(--accent-soft);border-radius:var(--radius-lg);color:var(--text);padding:10px 15px}.msg-assistant .message-bubble{background:#0000;border:none;color:var(--text);line-height:1.7;padding:2px 0 0}.message-bubble p{color:var(--text);font-size:.875rem;line-height:1.5;margin:0}.msg-assistant .message-bubble p{line-height:1.7}.message-bubble .md{color:var(--text);font-size:.875rem;line-height:1.55;max-width:100%;min-width:0;overflow-wrap:anywhere}.message-bubble .md a{overflow-wrap:anywhere;word-break:break-word}.msg-assistant .message-bubble .md{line-height:1.7}.message-bubble .md>*+*{margin-top:6px}.message-bubble .md p{color:var(--text);margin:0}.message-bubble .md p+p{margin-top:6px}.message-bubble .md ol,.message-bubble .md ul{color:var(--text);margin:4px 0;padding-left:18px}.message-bubble .md li{margin:2px 0}.message-bubble .md strong{color:var(--text);font-weight:600}.message-bubble .md em{font-style:italic}.message-bubble .md h1,.message-bubble .md h2,.message-bubble .md h3{color:var(--text);font-size:.9375rem;font-weight:600;margin:4px 0 2px}.message-bubble .md table{border-collapse:collapse;font-size:.8rem;margin:6px 0;width:100%}.message-bubble .md td,.message-bubble .md th{border:1px solid var(--border);line-height:1.45;padding:5px 8px;text-align:left;vertical-align:top}.message-bubble .md th{background:var(--surface-hi);color:var(--text);font-weight:600;white-space:nowrap}.message-bubble .md tr:nth-child(2n) td{background:var(--bg-surface)}.code-block-wrapper{border-radius:6px;margin:6px 0;max-width:100%;min-width:0;overflow:hidden}.code-block-header{align-items:center;background:#2d2d2d;border-bottom:1px solid #ffffff12;display:flex;justify-content:space-between;padding:6px 10px 6px 12px}.code-block-lang{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.75rem;gap:6px;-webkit-user-select:none;user-select:none}.code-block-lang,.code-copy-btn{align-items:center;color:#9ca3af;display:flex}.code-copy-btn{background:#0000;border:none;border-radius:3px;cursor:pointer;justify-content:center;line-height:1;padding:3px 5px;transition:color .12s ease,background .12s ease}.code-copy-btn:hover{background:#ffffff1a;color:#e5e7eb}.message-bubble .md pre{background:#2d2d2d;border-radius:0;box-sizing:border-box;color:#d4d4d4;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.78rem;line-height:1.5;margin:0;max-width:100%;min-width:0;overflow-x:auto;padding:10px 12px;white-space:pre}.message-bubble .md pre code{background:none;border-radius:0;color:inherit;font-size:inherit;padding:0}.message-bubble .md code{background:var(--surface-hi);border:1px solid var(--border);border-radius:4px;color:var(--text);font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:.8rem;padding:1px 5px}.typing-bubble{align-items:center;display:flex;gap:4px;min-width:52px;padding:12px 14px}.dot{animation:bounce 1.2s ease-in-out infinite;background:var(--text-muted);border-radius:50%;display:block;height:6px;width:6px}.dot:first-child{animation-delay:0s}.dot:nth-child(2){animation-delay:.18s}.dot:nth-child(3){animation-delay:.36s}@keyframes bounce{0%,60%,to{opacity:.6;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}.chat-footer{background:var(--bg-surface);border-top:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;gap:8px;padding:12px 14px}.chat-error{margin:0}.csv-block{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;margin:6px 0;max-width:100%;min-width:0;overflow:hidden}.csv-block-header{align-items:center;background:var(--surface-hi);border-bottom:1px solid var(--border);display:flex;gap:8px;justify-content:space-between;padding:8px 11px}.csv-block-info{align-items:center;color:var(--text-muted);display:flex;gap:7px;min-width:0}.csv-filename{color:var(--text);font-size:.8125rem;font-weight:600}.csv-rowcount{color:var(--text-subtle);font-size:.75rem}.csv-download-btn{align-items:center;background:var(--accent);border:none;border-radius:5px;color:var(--bg-app);cursor:pointer;display:flex;flex-shrink:0;font-family:inherit;font-size:.75rem;font-weight:500;gap:5px;padding:4px 10px;transition:opacity .12s ease}.csv-download-btn:hover{opacity:.88}.csv-download-btn:active{opacity:.75}.csv-block-preview{box-sizing:border-box;color:var(--text-muted);font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.72rem;line-height:1.6;max-width:100%;min-width:0;overflow-x:auto;padding:8px 11px}.csv-row{white-space:pre}.csv-row-header{border-bottom:1px solid var(--border);color:var(--text);font-weight:600;margin-bottom:3px;padding-bottom:3px}.csv-row-more{color:var(--text-subtle);font-size:.7rem;margin-top:3px}.pasted-preview{align-self:flex-start;display:inline-flex;position:relative}.pasted-thumb{border:1px solid var(--border);border-radius:8px;display:block;max-height:80px;max-width:100%;object-fit:contain}.pasted-remove{align-items:center;background:var(--text);border:none;border-radius:50%;color:var(--bg-app);cursor:pointer;display:flex;height:18px;justify-content:center;padding:0;position:absolute;right:-6px;top:-6px;transition:opacity .12s;width:18px}.pasted-remove:hover{opacity:.8}.msg-image-badge{align-items:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;color:var(--text-muted);display:inline-flex;font-size:.75rem;gap:5px;margin-bottom:4px;padding:3px 7px}.composer{background:var(--surface-hi);border:.5px solid var(--border);border-radius:var(--radius-lg);box-sizing:border-box;display:flex;flex-direction:column;gap:8px;max-width:100%;min-width:0;padding:7px 7px 7px 6px;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.composer:focus-within{background:var(--bg-surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.chat-input-form{align-items:flex-end;display:flex;gap:4px;min-width:0}.chat-input{background:#0000;border:none;border-radius:0;color:var(--text);flex:1 1;font-family:inherit;font-size:.875rem;line-height:1.5;max-height:140px;min-height:22px;min-width:0;overflow:hidden;overflow-y:auto;padding:8px 6px;resize:none}.chat-input::placeholder{color:var(--text-subtle)}.chat-input:focus{outline:none}.chat-input:disabled{cursor:not-allowed;opacity:.55}.chat-input-listening{color:#ef4444}.btn-attach,.btn-mic{align-items:center;background:#0000;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;height:34px;justify-content:center;transition:background .15s ease,color .15s ease;width:34px}.btn-attach:hover:not(:disabled),.btn-mic:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.btn-attach:disabled,.btn-mic:disabled{cursor:not-allowed;opacity:.4}.btn-attach:focus-visible,.btn-mic:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-mic-active{animation:mic-pulse 1.4s ease-in-out infinite;background:#fef2f2;color:#ef4444}.btn-mic-active:hover:not(:disabled){background:#fee2e2;color:#dc2626}@keyframes mic-pulse{0%,to{box-shadow:0 0 0 0 #ef444440}50%{box-shadow:0 0 0 5px #ef444400}}.visually-hidden{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.btn-send{align-items:center;background:var(--accent);border:none;border-radius:50%;color:var(--bg-app);cursor:pointer;display:flex;flex-shrink:0;height:34px;justify-content:center;transition:opacity .15s ease,transform .1s ease;width:34px}.btn-send:hover:not(:disabled){opacity:.88}.btn-send:active:not(:disabled){transform:scale(.93)}.btn-send:disabled{background:var(--surface-hi);color:var(--text-subtle);cursor:not-allowed}.btn-send:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.send-spinner{animation:spin .7s linear infinite;border:2px solid #ffffff59;border-radius:50%;border-top:2px solid var(--bg-app);display:block;height:13px;width:13px}[data-theme=dark] .send-spinner{border-color:#00000040;border-top-color:var(--bg-app)}.chat-footer:has(.completion-bar){background:#0000;border-top:none;padding:0}.completion-bar{align-items:center;background:var(--surface-hi);border-top:.5px solid var(--border);display:flex;gap:var(--space-4);justify-content:space-between;padding:var(--space-4) var(--space-5)}.completion-summary{align-items:center;display:flex;gap:var(--space-3);min-width:0}.completion-score{align-items:baseline;display:flex;flex-shrink:0;gap:2px}.completion-score-value{color:var(--color-primary);font-size:var(--text-xl);font-weight:var(--fw-extrabold);line-height:1}.completion-score-max{color:var(--text-muted);font-size:var(--text-sm);font-weight:var(--fw-medium)}.completion-summary-body{display:flex;flex-direction:column;gap:4px;min-width:0}.completion-summary-label{color:var(--text);font-size:var(--text-sm);font-weight:var(--fw-semibold);white-space:nowrap}.completion-progress-track{background:var(--gray-100);border-radius:var(--radius-pill);height:5px;max-width:100%;overflow:hidden;width:100px}.completion-progress-fill{background:var(--color-primary);border-radius:var(--radius-pill);height:100%;transition:width .3s ease}.completion-actions{align-items:center;display:flex;flex-direction:row-reverse;flex-shrink:0;flex-wrap:nowrap;gap:var(--space-3);justify-content:flex-start}.completion-actions .btn{border-radius:var(--radius-md);min-height:36px;padding:8px 16px}.lecture-split-bar{align-items:stretch;display:flex;gap:var(--space-3)}.lecture-split-bar .btn{flex:1 1;min-width:0;white-space:nowrap}.lecture-split-tap{background:var(--surface-hi);border:1.5px solid var(--border);border-radius:var(--radius-pill);caret-color:#0000;cursor:pointer;flex:1 1;font-family:inherit;font-size:.875rem;min-height:40px;min-width:0;padding:0 var(--space-4);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.lecture-split-tap,.lecture-split-tap::placeholder{color:var(--text-subtle)}.lecture-split-tap:focus{background:var(--bg-surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.btn-collapse-lecture{align-items:center;background:#0000;border:none;border-radius:50%;color:var(--accent);cursor:pointer;display:flex;flex-shrink:0;height:34px;justify-content:center;transition:background .15s ease;width:34px}.btn-collapse-lecture:hover{background:var(--accent-soft)}.btn-collapse-lecture:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.report-download{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);box-sizing:border-box;flex-wrap:wrap;gap:8px 10px;justify-content:space-between;margin:10px 0 2px;max-width:100%;padding:var(--space-4) var(--space-5)}.report-download,.report-download-info{align-items:center;display:flex;min-width:0}.report-download-info{color:var(--icon-accent);gap:9px}.report-download-title{color:var(--text);font-size:.8125rem;font-weight:600;line-height:1.3}.report-download-subtitle{color:var(--text-muted);font-size:.75rem;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.save-prompt-banner{align-items:center;background:var(--surface-hi);border-bottom:1px solid var(--border);display:flex;flex-shrink:0;gap:10px;justify-content:space-between;padding:10px 14px}.save-prompt-text{align-items:center;color:var(--text);display:flex;font-size:.8125rem;font-weight:500;gap:8px;min-width:0}.save-prompt-actions{display:flex;flex-shrink:0;gap:6px}.save-prompt-btn-primary{background:var(--accent);border:none;border-radius:5px;color:var(--bg-app);cursor:pointer;font-family:inherit;font-size:.75rem;font-weight:500;padding:4px 12px;transition:opacity .12s ease}.save-prompt-btn-primary:hover{opacity:.88}.save-prompt-btn-dismiss{background:#0000;border:1px solid var(--accent-soft);border-radius:5px;color:var(--accent);cursor:pointer;font-family:inherit;font-size:.75rem;font-weight:500;padding:4px 10px;transition:background .12s ease}.save-prompt-btn-dismiss:hover{background:var(--accent-soft)}.mode-select-screen{display:flex;flex-direction:column;gap:20px;padding:8px 0}.mode-select-heading{color:var(--text);font-size:17px;font-weight:700;margin:0}.mode-select-sub{color:var(--text-muted);font-size:13px;margin:-12px 0 0}.mode-cards{gap:10px}.mode-card,.mode-cards{display:flex;flex-direction:column}.mode-card{background:var(--surface-hi);border:1.5px solid var(--border);border-radius:10px;cursor:pointer;font-family:inherit;gap:6px;padding:16px 18px;text-align:left;transition:border-color .15s,background .15s,box-shadow .15s}.mode-card:hover{background:var(--bg-surface);border-color:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}.mode-card-icon{align-items:center;color:var(--icon-accent);display:flex;margin-bottom:2px}.mode-card-title{color:var(--text);font-size:14px;font-weight:600}.mode-card-desc{color:var(--text-muted);font-size:12px;line-height:1.5}.mode-back-btn{align-items:center;background:none;border:none;color:var(--color-primary);cursor:pointer;display:inline-flex;font-family:inherit;font-size:12px;gap:5px;margin-bottom:12px;padding:0;transition:opacity .15s}.mode-back-btn:hover{opacity:.75}@media (max-width:640px){.client-panel{border-left:none;border-radius:0;border-top:3px solid var(--accent);height:100%;padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0);transition:border-top-color .2s ease}[data-theme=dark] .client-panel{box-shadow:none}.topbar-hidden~.workspace .client-panel{border-top-color:#0000}.chat-modal-header-left{display:none}.chat-modal-header{padding:6px 10px}.chat-modal-header:has(.chat-modal-header-right:empty){border-bottom:none;padding:0}.chat-footer{padding-bottom:calc(12px + env(safe-area-inset-bottom, 0px))}.messages-list{-webkit-overflow-scrolling:touch;gap:var(--space-3);min-height:120px;padding:var(--space-4) var(--space-3)}.chat-input,.setup-input{font-size:16px}.btn-attach,.btn-mic,.btn-send,.chat-maximize-btn,.close-btn{height:44px;width:44px}.code-copy-btn{min-height:44px;min-width:44px;padding:10px}.bubble-copy-btn,.bubble-retry-btn{min-height:44px;min-width:44px;opacity:1;padding:12px;pointer-events:auto}.bubble-wrap{max-width:92%}.msg-assistant .bubble-wrap{max-width:calc(100% - 36px)}.messages-list>.lecture-autostart .message,.messages-list>.message{max-width:100%}.message-bubble{word-break:break-word}.code-block-wrapper,.csv-block-preview{overflow-x:auto}.lecture-split-bar .btn,.lecture-split-tap{min-height:44px}.btn-collapse-lecture{height:44px;width:44px}.save-prompt-banner{flex-wrap:wrap;gap:8px}.save-prompt-actions{flex-wrap:wrap;width:100%}.save-prompt-btn-dismiss,.save-prompt-btn-primary{flex:1 1;padding:8px 12px;text-align:center}.form-row{grid-template-columns:1fr}.completion-bar{gap:var(--space-3);padding:var(--space-3) var(--space-4);padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom, 0px))}.completion-actions,.completion-bar{align-items:stretch;flex-direction:column}.completion-actions{gap:var(--space-2)}.completion-actions .btn{min-height:44px;width:100%}}.welcome-header{margin-bottom:18px;text-align:center}.welcome-logo{height:32px;margin-bottom:8px;object-fit:contain;width:32px}.welcome-title{color:var(--text);font-size:var(--text-xl);font-weight:var(--fw-bold);letter-spacing:-.01em;margin:0 0 6px}.welcome-subtitle{color:var(--text-muted);font-size:var(--text-sm);line-height:1.55;margin:0}.welcome-steps{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.welcome-group-title{color:var(--text-subtle);font-size:var(--text-xs);font-weight:var(--fw-bold);letter-spacing:.05em;margin:0 0 10px;text-transform:uppercase}.welcome-step{align-items:flex-start;display:flex;gap:12px}.step-icon{align-items:center;border-radius:var(--radius-sm);display:flex;flex-shrink:0;height:28px;justify-content:center;margin-top:1px;width:28px}.step-icon-editor{background:#eff6ff;color:#3b82f6}.step-icon-preview{background:#f0fdf4;color:#22c55e}.step-icon-chat{background:#faf5ff;color:#a855f7}.step-icon-sm{background:#fff7ed;color:#f97316}.step-icon-lecture{background:#fdf4ff;color:#a21caf}.step-icon-pa{background:#f0fdf4;color:#16a34a}.step-icon-report{background:#eff6ff;color:#3b82f6}.step-icon-study{background:#fff7ed;color:#f97316}.step-icon-grades{background:#f0fdf4;color:#16a34a}.step-icon-usage{background:#faf5ff;color:#a855f7}.step-icon-units{background:#f0fdfa;color:#0d9488}.step-icon-accounts{background:#eef2ff;color:#6366f1}.step-icon-requests{background:#fdf2f8;color:#db2777}.step-text{color:var(--text-muted);font-size:var(--text-sm);line-height:1.5}.step-text strong{color:var(--text)}.welcome-file-modes{margin-bottom:18px}.welcome-file-modes-label{color:var(--text-muted);font-size:.8125rem;font-weight:var(--fw-semibold);margin:0 0 10px}.welcome-mode-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.welcome-mode-option{align-items:flex-start;background:var(--bg-app);border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;display:flex;flex-direction:column;font-family:inherit;gap:2px;padding:8px 10px;text-align:left;transition:border-color .12s ease,background .12s ease;width:100%}.welcome-mode-option.selected,.welcome-mode-option:hover{background:var(--primary-wash);border-color:var(--color-primary)}.welcome-mode-count{color:var(--text-subtle);font-size:.7rem;font-weight:var(--fw-bold);letter-spacing:.05em;text-transform:uppercase}.welcome-mode-option.selected .welcome-mode-count{color:var(--color-primary)}.welcome-mode-files{align-items:center;display:flex;flex-wrap:wrap;gap:1px;line-height:1.4}.welcome-mode-filename{color:var(--text);font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:var(--text-xs)}.welcome-mode-sep{color:var(--text-subtle);font-size:var(--text-xs)}.welcome-mode-desc{color:var(--text-subtle);font-size:.72rem;line-height:1.4}.welcome-more{margin-bottom:18px}.welcome-more summary{color:var(--text-muted);cursor:pointer;font-size:var(--text-sm);font-weight:var(--fw-semibold);list-style:none;padding:2px 0}.welcome-more summary::-webkit-details-marker{display:none}.welcome-more summary:before{content:"▸";display:inline-block;transition:transform .15s ease;width:12px}.welcome-more[open] summary:before{transform:rotate(90deg)}.welcome-more-body{display:flex;flex-direction:column;gap:10px;padding:10px 0 2px 12px}.welcome-faq-q{color:var(--text);font-size:var(--text-sm);font-weight:var(--fw-medium);margin:0 0 2px}.welcome-faq-a{color:var(--text-muted);font-size:var(--text-sm);line-height:1.5;margin:0}.welcome-cta{width:100%}.welcome-footer-actions{display:flex;flex-direction:column;gap:var(--space-3);width:100%}.avatar-menu{position:relative}.avatar-menu-trigger{align-items:center;background:var(--primary-wash);border:1px solid var(--primary-wash);border-radius:50%;color:var(--color-primary);cursor:pointer;display:flex;flex-shrink:0;font-family:inherit;font-size:12px;font-weight:700;height:32px;justify-content:center;transition:border-color .15s,box-shadow .15s;width:32px}.avatar-menu-trigger:hover{border-color:var(--color-primary)}.avatar-menu-dropdown{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-md);min-width:200px;padding:5px;position:absolute;right:0;top:calc(100% + 8px);z-index:500}.avatar-menu-name{color:var(--text-muted);font-size:12px;font-weight:600;overflow:hidden;padding:8px 10px 6px;text-overflow:ellipsis;white-space:nowrap}.avatar-menu-divider{background:var(--border);height:1px;margin:4px 0}.avatar-menu-item{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--text);cursor:pointer;display:flex;font-family:inherit;font-size:13px;gap:8px;justify-content:space-between;padding:8px 10px;text-align:left;transition:background .12s;width:100%}.avatar-menu-item:hover{background:var(--gray-100)}.avatar-menu-theme-icon{font-size:14px;line-height:1}@media (max-width:640px){.avatar-menu-trigger{height:44px;width:44px}.avatar-menu-item{min-height:44px}}.bug-report-instructions{background:var(--surface-hi);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:16px;padding:12px 14px}.bug-report-instructions p{color:var(--text-muted);font-size:13px;line-height:1.5;margin:0 0 8px}.bug-report-instructions p:last-child{margin:8px 0 0}.bug-report-instructions ul{display:flex;flex-direction:column;gap:4px;margin:0;padding:0 0 0 18px}.bug-report-instructions li{color:var(--text-muted);font-size:13px;line-height:1.5}.bug-report-label{color:var(--text);display:block;font-size:13px;font-weight:600;margin-bottom:6px}.bug-report-textarea{margin-bottom:16px;min-height:100px;resize:vertical}.bug-report-screenshots-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:8px}.bug-report-screenshots-header>span{color:var(--text);font-size:13px;font-weight:600}.bug-report-optional{color:var(--text-subtle);font-weight:400}.bug-report-thumbs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}.bug-report-thumb{border:1px solid var(--border);border-radius:var(--radius-sm);flex-shrink:0;height:72px;overflow:hidden;position:relative;width:72px}.bug-report-thumb img{display:block;height:100%;object-fit:cover;width:100%}.bug-report-thumb-remove{align-items:center;background:#141c28a6;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:14px;height:20px;justify-content:center;line-height:1;padding:0;position:absolute;right:2px;top:2px;width:20px}.bug-report-thumb-remove:hover{background:var(--danger)}.bug-report-paste-hint{color:var(--text-subtle);font-size:12px;margin:0}.bug-report-done{color:var(--success);font-size:15px;font-weight:600;margin:0;padding:24px 0;text-align:center}@media (max-width:600px){.bug-report-thumb-remove{font-size:16px;height:28px;width:28px}}.topbar{background:var(--bg-surface);border-bottom:1px solid var(--border);gap:12px;height:56px;justify-content:space-between;padding:0 20px;position:relative;transition:transform .2s ease,margin-bottom .2s ease;z-index:50}.topbar,.topbar-left,.topbar-right{align-items:center;display:flex;flex-shrink:0}.topbar-left,.topbar-right{gap:10px;min-width:0}.topbar-logo-btn{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);cursor:pointer;display:flex;font-family:inherit;gap:8px;padding:4px 2px;transition:background .12s}.topbar-logo-btn:hover{background:var(--gray-100)}.topbar-logo-static{cursor:default}.topbar-logo-static:hover{background:#0000}.topbar-logo{flex-shrink:0;height:22px;width:22px}.topbar-brand{color:var(--text);font-size:16px;font-weight:700;letter-spacing:-.2px;white-space:nowrap}.topbar-center{display:flex;flex:1 1;justify-content:center;min-width:0;overflow:hidden}.topbar-breadcrumb{color:var(--text-muted);font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-help-btn{align-items:center;background:#0000;border:none;border-radius:7px;color:var(--text-subtle);cursor:pointer;display:flex;flex-shrink:0;font-size:13px;font-weight:700;height:30px;justify-content:center;transition:color .15s,background .15s;width:30px}.topbar-help-btn:hover{background:var(--gray-100);color:var(--text)}.topbar-help-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.topbar-sidebar-toggle{align-items:center;background:#0000;border:1px solid var(--border);border-radius:7px;color:var(--text);cursor:pointer;display:none;flex-shrink:0;height:32px;justify-content:center;width:32px}@media (max-width:720px){.topbar{gap:8px;padding:0 12px}.topbar-sidebar-toggle{display:flex}.topbar-brand{display:none}.topbar-breadcrumb{font-size:12px}.topbar-help-btn,.topbar-sidebar-toggle{height:44px;width:44px}}@media (max-width:640px){.topbar{gap:6px;height:48px;padding:0 10px}.topbar-hidden{margin-bottom:-48px;transform:translateY(-100%)}}.video-modal-player{aspect-ratio:16/9;background:#000;border-radius:var(--radius-md);display:block;height:auto;max-width:100%;object-fit:contain;width:100%}@media (max-width:640px){.video-modal .modal-body{align-items:center;display:flex}.video-modal-player{aspect-ratio:16/9}}:root{--surface-hi:#ebeef2;--accent-soft:var(--primary-wash);--accent-glow:#22b57340;--icon-accent:var(--color-secondary);--icon-bg:var(--secondary-wash);--locked:var(--text-subtle);--glow-accent:0 0 14px var(--accent-glow),0 0 1px var(--accent-soft);--glow-card:0 0 0 1px var(--accent-soft),0 4px 20px #00000012;--wm-color:rgba(0,0,0,.035);--check-fg:var(--bg-surface);--badge-lock-bg:#0000000d;--pill-hover-border:#00000024;--ring-track:#00000014;--logout-hover-border:#0000002e}[data-theme=dark]{--surface-hi:#12191d;--accent-glow:#38d68a73;--icon-accent:var(--color-secondary);--icon-bg:var(--secondary-wash);--glow-accent:0 0 24px var(--accent-glow),0 0 1px var(--accent-soft);--glow-card:0 0 0 1px var(--accent-soft),0 8px 40px #00000080;--wm-color:hsla(0,0%,100%,.025);--check-fg:var(--bg-app);--badge-lock-bg:#ffffff0d;--pill-hover-border:#ffffff1f;--ring-track:#ffffff14;--logout-hover-border:#fff3}.landing-root{background:var(--bg-app);color:var(--text);display:flex;flex-direction:column;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh;overflow-x:hidden;position:relative}.landing-watermarks{inset:0;overflow:hidden;pointer-events:none;position:fixed;-webkit-user-select:none;user-select:none;z-index:0}.wm-x{color:rgba(0,0,0,.035);color:var(--wm-color);font-family:Inter,-apple-system,sans-serif;font-size:420px;font-weight:900;line-height:1;position:absolute}.wm-1{left:-80px;top:-100px}.wm-2{font-size:320px;right:-120px;top:30%}.wm-3{bottom:-140px;font-size:500px;left:30%}.landing-main{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:36px;margin:0 auto;max-width:1020px;padding:44px 24px 40px;position:relative;width:100%;z-index:1}.landing-empty,.landing-loading{color:var(--text-muted);font-size:13px;padding:6px 0}.landing-roadmap-section{width:100%}.roadmap-section-label{color:var(--text-subtle);font-size:11px;font-weight:600;letter-spacing:.08em;margin-bottom:16px;text-transform:uppercase}.roadmap-scroll-wrap{align-items:center;display:flex;gap:6px;width:100%}.roadmap-scroll{-ms-overflow-style:none;align-items:flex-start;display:flex;flex:1 1;min-width:0;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}.roadmap-scroll::-webkit-scrollbar{display:none}.roadmap-track{align-items:flex-start;display:flex;flex-shrink:0}.roadmap-arrow{align-items:center;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:50%;color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;font-family:inherit;font-size:20px;height:32px;justify-content:center;line-height:1;margin-bottom:6px;transition:border-color .15s,color .15s,background .15s;width:32px}.roadmap-arrow:hover{background:#3ee8b50f;border-color:var(--accent);color:var(--accent)}.roadmap-arrow-hidden{pointer-events:none;visibility:hidden}.roadmap-node-group{align-items:center;display:flex;flex-direction:column;flex-shrink:0;gap:5px}.roadmap-pill{align-items:center;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--radius-pill);color:var(--text-subtle);cursor:pointer;display:flex;font-family:inherit;font-size:14px;font-weight:500;gap:6px;height:40px;padding:0 16px;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;white-space:nowrap}.pill-icon,.pill-right-check{align-items:center;display:flex;flex-shrink:0}.pill-right-check{margin-left:4px}.roadmap-pill-active{background:#3ee8b50f;border:1.5px solid var(--accent);box-shadow:0 0 14px #22b57340,0 0 1px var(--primary-wash);box-shadow:var(--glow-accent);color:var(--accent)}.roadmap-pill-completed{background:#3ee8b50d;border-color:var(--accent-soft);color:var(--accent)}.roadmap-pill-unlocked{color:var(--text-subtle)}.roadmap-pill:hover:not(.roadmap-pill-active){background:#ebeef2;background:var(--surface-hi);border-color:#00000024;border-color:var(--pill-hover-border);color:var(--text-muted)}.node-sublabel{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.node-sublabel-completed{color:var(--accent)}.node-sublabel-locked,.node-sublabel-unlocked,.roadmap-pill-locked{color:var(--text-subtle)}.roadmap-pill-locked{cursor:pointer;opacity:.6}.roadmap-pill-locked:hover{background:#ebeef2;background:var(--surface-hi);border-color:#00000024;border-color:var(--pill-hover-border);color:var(--text-muted);opacity:.8}.roadmap-connector{background:var(--border);flex-shrink:0;height:2px;margin-top:19px;width:44px}.roadmap-connector.connector-lit{background:var(--accent);box-shadow:0 0 8px #22b57340;box-shadow:0 0 8px var(--accent-glow)}.landing-page-header{display:block;margin-bottom:0;text-align:center;width:100%}.landing-page-header .page-header-title{font-size:36px;letter-spacing:-.5px;line-height:1.15}.landing-page-header .page-header-subtitle{font-size:16px;margin-top:8px}.cards-scene{align-items:center;display:flex;position:relative;width:100%}.cards-connector-line{background:var(--accent);height:2px;left:0;position:absolute;right:29px;top:50%;transform:translateY(-50%);z-index:0}[data-theme=dark] .cards-connector-line{box-shadow:0 0 10px #22b57340;box-shadow:0 0 10px var(--accent-glow)}.cards-row{grid-gap:14px;display:grid;flex:1 1;gap:14px;grid-template-columns:repeat(3,1fr)}.cards-end-node,.cards-row{position:relative;z-index:1}.cards-end-node{align-self:stretch;flex-shrink:0;width:58px}.end-node-circle{align-items:center;background:var(--accent);border-radius:50%;box-shadow:0 0 10px #22b57340;box-shadow:0 0 10px var(--accent-glow);color:var(--bg-surface);color:var(--check-fg);display:flex;height:18px;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:18px}.end-node-pending{background:#ebeef2;background:var(--surface-hi);border:2px solid var(--border);box-shadow:none}.end-node-label{color:var(--accent);font-size:10px;font-weight:600;left:50%;position:absolute;text-align:center;top:calc(50% + 13px);transform:translateX(-50%);white-space:nowrap}.activity-card,.card-outer{display:flex;flex-direction:column;gap:8px}.activity-card{align-items:flex-start;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);box-sizing:border-box;color:var(--text);cursor:default;font-family:inherit;min-height:220px;padding:20px 18px 18px;position:relative;text-align:left;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s;width:100%}button.activity-card:not([disabled]):hover{background:#ebeef2;background:var(--surface-hi);transform:translateY(-2px)}.activity-card-in-progress,button.activity-card:not([disabled]):hover{border-color:var(--accent-soft);box-shadow:0 0 0 1px var(--primary-wash),0 4px 20px #00000012;box-shadow:var(--glow-card)}.activity-card-coming-soon .card-desc,.activity-card-coming-soon .card-icon,.activity-card-coming-soon .card-title,.activity-card-locked .card-desc,.activity-card-locked .card-icon,.activity-card-locked .card-title{opacity:.45}.card-check-badge{background:var(--accent);border-radius:50%;box-shadow:0 0 8px #22b57340;box-shadow:0 0 8px var(--accent-glow);color:var(--bg-surface);color:var(--check-fg);height:18px;position:absolute;right:-9px;top:-9px;width:18px;z-index:2}.card-check-badge,.card-icon{align-items:center;display:flex;justify-content:center}.card-icon{background:var(--secondary-wash);background:var(--icon-bg);border-radius:12px;color:var(--color-secondary);color:var(--icon-accent);flex-shrink:0;height:42px;margin-bottom:2px;width:42px}.card-title{color:var(--text);font-size:16px;font-weight:600;line-height:1.3}.card-desc{color:var(--text-muted);flex:1 1;font-size:13px;line-height:1.5}.card-due-date{color:var(--text-subtle);font-size:11px;font-weight:600;margin-top:4px}.card-due-date-past{color:var(--warning)}.card-footer{margin-top:auto;width:100%}.card-badge{align-items:center;border-radius:var(--radius-sm);display:inline-flex;font-size:11px;font-weight:600;gap:5px;padding:4px 10px}.card-badge-soon{background:#ebeef2;background:var(--surface-hi);color:var(--text-subtle);letter-spacing:.06em;text-transform:uppercase}.card-badge-lock{background:#0000000d;background:var(--badge-lock-bg);color:var(--text-subtle);color:var(--locked)}.card-badge-progress{background:var(--primary-wash);background:var(--accent-soft);color:var(--accent)}.card-lock-block{display:flex;flex-direction:column;gap:6px}.card-lock-reason{color:var(--text-subtle);font-size:12px;line-height:1.4;margin:0}.card-ring-block{align-items:flex-start;gap:4px}.card-hw-block,.card-ring-block{display:flex;flex-direction:column}.card-hw-block{gap:6px}.card-hw-project{color:var(--text-muted);font-size:12px;margin:0}.card-hw-project strong{color:var(--text);font-weight:600}.card-start-link{color:var(--accent);font-size:13px;font-weight:600}.card-completed-label{color:var(--accent);font-size:12px;font-weight:600}.card-footnote{color:var(--text-subtle);font-size:11px;margin:0;text-align:center}.progress-ring{display:block}.progress-ring-track{fill:none;stroke:#00000014;stroke:var(--ring-track);stroke-width:6}.progress-ring-fill{fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .6s ease}.progress-ring-text{fill:var(--accent);font-family:inherit;font-size:13px;font-weight:600}.landing-practice{display:flex;justify-content:center;width:100%}.landing-practice-link{background:none;border:none;color:var(--text-subtle);cursor:pointer;font-family:inherit;font-size:13px;padding:4px 6px;transition:color .15s}.landing-practice-link:hover{color:var(--text-muted)}@media (max-width:700px){.cards-row{grid-template-columns:1fr}.card-check-badge,.cards-connector-line,.cards-end-node{display:none}.landing-page-header .page-header-title{font-size:26px}}.login-logo{align-items:center;display:flex;gap:10px;margin-bottom:6px}.login-logo img{height:32px;width:32px}.login-logo h1{color:var(--text);font-size:20px;font-weight:700;margin:0}.login-subtitle{color:var(--text-muted);font-size:13px;margin:0 0 24px}.login-form{gap:16px}.login-field,.login-form{display:flex;flex-direction:column}.login-field{gap:6px}.login-field label{color:var(--text-muted);font-size:12px;font-weight:500;letter-spacing:.03em}.login-field input{background:var(--bg-app);border:1px solid var(--border);border-radius:7px;box-sizing:border-box;color:var(--text);font-size:16px;min-height:44px;outline:none;padding:12px 14px;transition:border-color .15s}.login-field input:focus{border-color:var(--color-primary)}.login-field input::placeholder{color:var(--text-subtle)}.login-error{background:var(--danger-wash);border:1px solid var(--danger-wash);border-radius:6px;color:var(--danger);font-size:12px;margin:0;padding:8px 10px}.login-btn{align-items:center;background:var(--color-primary);border:none;border-radius:7px;color:var(--text-on-accent);cursor:pointer;display:flex;font-size:15px;font-weight:600;justify-content:center;margin-top:4px;min-height:44px;padding:12px;transition:background .15s}.login-btn:hover:not(:disabled){background:var(--color-primary-hover)}.login-btn:disabled{cursor:not-allowed;opacity:.6}.login-spinner{animation:spin .7s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:16px;width:16px}@keyframes spin{to{transform:rotate(1turn)}}.login-link{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:12px;padding:4px 0;text-align:center;transition:color .15s}.login-link:hover{color:var(--color-primary-hover)}.login-form-row-2{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;min-width:0}.login-form-row-2 .login-field{min-width:0}.login-textarea{background:var(--bg-app);border:1px solid var(--border);border-radius:7px;box-sizing:border-box;color:var(--text);font-family:inherit;font-size:16px;outline:none;padding:12px 14px;resize:vertical;transition:border-color .15s}.login-textarea:focus{border-color:var(--color-primary)}.login-optional,.login-textarea::placeholder{color:var(--text-subtle)}.login-optional{font-weight:400}.request-sent{align-items:center;display:flex;flex-direction:column;gap:10px;padding:16px 0;text-align:center}.request-sent-icon{align-items:center;background:var(--success-wash);border-radius:50%;color:var(--success);display:flex;font-size:20px;font-weight:700;height:40px;justify-content:center;width:40px}.request-sent h3{color:var(--text);font-size:15px;font-weight:600;margin:0}.request-sent p{color:var(--text-muted);font-size:13px;margin:0}:root{--landing-bg:var(--bg-app);--grid-line:var(--border);--ink:var(--text);--ink-soft:var(--text-muted)}.pl-landing{background-color:var(--bg-app);background-color:var(--landing-bg);background-image:linear-gradient(var(--border) 1px,#0000 1px),linear-gradient(90deg,var(--border) 1px,#0000 1px);background-image:linear-gradient(var(--grid-line) 1px,#0000 1px),linear-gradient(90deg,var(--grid-line) 1px,#0000 1px);background-size:44px 44px;display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;overflow-x:hidden}.pl-nav{justify-content:space-between;padding:20px clamp(20px,5vw,64px)}.pl-logo,.pl-nav{align-items:center;display:flex}.pl-logo{color:var(--text);color:var(--ink);font-size:1.4rem;font-weight:700;gap:10px}.pl-logo img{height:34px;width:auto}.pl-nav-actions{align-items:center;display:flex;gap:12px}.pl-hero{grid-gap:clamp(24px,4vw,56px);align-items:center;display:grid;flex:1 1;gap:clamp(24px,4vw,56px);grid-template-columns:.9fr 1.1fr;margin:0 auto;max-width:1240px;padding:clamp(24px,6vh,72px) clamp(20px,5vw,64px);position:relative;width:100%}.pl-hero-text{position:relative;z-index:1}.pl-title{color:var(--text);color:var(--ink);font-size:clamp(2.1rem,5vw,3.4rem);font-weight:800;letter-spacing:-.01em;line-height:1.08;margin:0 0 18px}.pl-subtitle{color:var(--text-muted);color:var(--ink-soft);font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.5;margin:0 0 28px;max-width:34ch}.pl-hero-ctas{align-items:center;display:flex;flex-wrap:wrap;gap:14px}.pl-hero-text .btn-lg{transition:transform .12s ease,background var(--transition)}.pl-hero-text .btn-lg:hover{transform:translateY(-1px)}.pl-hero-art{position:relative;z-index:1}.pl-hero-art img{display:block;height:auto;width:100%}.pl-watermark{color:var(--gray-100);left:-6%;opacity:.9;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);width:min(46vw,620px);z-index:0}.pl-watermark img,.pl-watermark svg{height:auto;width:100%}@media (max-width:900px){.pl-hero{gap:32px;grid-template-columns:1fr;padding-top:40px;text-align:center}.pl-subtitle{margin-left:auto;margin-right:auto}.pl-hero-art{margin:0 auto;max-width:560px}.pl-watermark{left:50%;opacity:.5;transform:translate(-50%,-50%);width:80vw}}@media (max-width:640px){.pl-nav{flex-wrap:wrap;gap:10px;padding:16px 18px}.pl-logo{font-size:1.2rem}.pl-title{font-size:clamp(1.8rem,8vw,2.4rem)}.pl-hero-text .btn-lg{width:100%}}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border);flex-shrink:0;overflow-y:auto;padding:16px 10px;width:220px}.sidebar-group+.sidebar-group{margin-top:18px}.sidebar-group-label{color:var(--text-subtle);font-size:11px;font-weight:700;letter-spacing:.06em;padding:0 10px 6px;text-transform:uppercase}.sidebar-item{background:#0000;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:block;font-family:inherit;font-size:13.5px;font-weight:500;padding:8px 10px;text-align:left;transition:background .12s,color .12s;width:100%}.sidebar-item:hover{background:var(--gray-100);color:var(--text)}.sidebar-item-active{font-weight:600}.sidebar-item-active,.sidebar-item-active:hover{background:var(--primary-wash);color:var(--color-primary)}.sidebar-backdrop{display:none}@media (max-width:720px){.sidebar{bottom:0;box-shadow:var(--shadow-lg);left:0;position:fixed;top:56px;transform:translateX(-100%);transition:transform .2s ease;z-index:400}.sidebar-open{transform:translateX(0)}.sidebar-backdrop{background:#141c2873;display:block;inset:56px 0 0 0;position:fixed;z-index:399}.sidebar-item{align-items:center;display:flex;min-height:44px;padding:12px 10px}}.flatpickr-calendar{-webkit-animation:none;animation:none;background:#0000;background:#fff;border:0;border-radius:5px;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px #00000014;box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px #00000014;-webkit-box-sizing:border-box;box-sizing:border-box;direction:ltr;display:none;font-size:14px;line-height:24px;opacity:0;padding:0;position:absolute;text-align:center;-ms-touch-action:manipulation;touch-action:manipulation;visibility:hidden;width:307.875px}.flatpickr-calendar.inline,.flatpickr-calendar.open{max-height:640px;opacity:1;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1);animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{display:block;z-index:999}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{border-top:1px solid #e6e6e6;height:40px}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:after,.flatpickr-calendar:before{border:solid #0000;content:"";display:block;height:0;left:22px;pointer-events:none;position:absolute;width:0}.flatpickr-calendar.arrowRight:after,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar.arrowCenter:after,.flatpickr-calendar.arrowCenter:before{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{display:inline-block;position:relative}.flatpickr-months{display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:#0000;-webkit-flex:1;-ms-flex:1;flex:1 1;line-height:1;overflow:hidden;position:relative;text-align:center}.flatpickr-months .flatpickr-month,.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{fill:#000000e6;color:#000000e6;height:34px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{cursor:pointer;padding:10px;position:absolute;text-decoration:none;top:0;z-index:3}.flatpickr-months .flatpickr-next-month.flatpickr-disabled,.flatpickr-months .flatpickr-prev-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-next-month i,.flatpickr-months .flatpickr-prev-month i{position:relative}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#959ea9}.flatpickr-months .flatpickr-next-month:hover svg,.flatpickr-months .flatpickr-prev-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-next-month svg,.flatpickr-months .flatpickr-prev-month svg{height:14px;width:14px}.flatpickr-months .flatpickr-next-month svg path,.flatpickr-months .flatpickr-prev-month svg path{fill:inherit;-webkit-transition:fill .1s;transition:fill .1s}.numInputWrapper{height:auto;position:relative}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-inner-spin-button,.numInputWrapper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.numInputWrapper span{border:1px solid #39393926;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;height:50%;line-height:50%;opacity:0;padding:0 4px 0 2px;position:absolute;right:0;width:14px}.numInputWrapper span:hover{background:#0000001a}.numInputWrapper span:active{background:#0003}.numInputWrapper span:after{content:"";display:block;position:absolute}.numInputWrapper span.arrowUp{border-bottom:0;top:0}.numInputWrapper span.arrowUp:after{border-bottom:4px solid #39393999;border-left:4px solid #0000;border-right:4px solid #0000;top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid #0000;border-right:4px solid #0000;border-top:4px solid #39393999;top:40%}.numInputWrapper span svg{height:auto;width:inherit}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover{background:#0000000d}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{color:inherit;display:inline-block;font-size:135%;font-weight:300;height:34px;left:12.5%;line-height:inherit;line-height:1;padding:7.48px 0 0;position:absolute;text-align:center;-webkit-transform:translateZ(0);transform:translateZ(0);width:75%}.flatpickr-current-month span.cur-month{color:inherit;display:inline-block;font-family:inherit;font-weight:700;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:#0000000d}.flatpickr-current-month .numInputWrapper{display:inline-block;width:6ch;width:7ch\0}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#000000e6}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#000000e6}.flatpickr-current-month input.cur-year{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;background:#0000;border:0;border-radius:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;display:inline-block;font-family:inherit;font-size:inherit;font-weight:300;height:auto;line-height:inherit;margin:0;padding:0 0 0 .5ch;vertical-align:initial}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{background:#0000;color:#00000080;font-size:100%;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;-webkit-appearance:menulist;-moz-appearance:menulist;background:#0000;border:none;border-radius:0;box-sizing:border-box;-webkit-box-sizing:border-box;color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:active,.flatpickr-current-month .flatpickr-monthDropdown-months:focus{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:#0000000d}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:initial;outline:none;padding:0}.flatpickr-weekdays{-ms-flex-align:center;-webkit-align-items:center;align-items:center;background:#0000;display:-webkit-flex;display:-ms-flexbox;display:flex;height:28px;overflow:hidden;text-align:center;width:100%}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1 1}span.flatpickr-weekday{background:#0000;color:#0000008a;cursor:default;display:block;-webkit-flex:1;-ms-flex:1;flex:1 1;font-size:90%;font-weight:bolder;line-height:1;margin:0;text-align:center}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;position:relative;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{-ms-flex-pack:justify;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-webkit-justify-content:space-around;justify-content:space-around;max-width:307.875px;min-width:307.875px;opacity:1;outline:0;padding:0;text-align:left;-webkit-transform:translateZ(0);transform:translateZ(0);width:307.875px}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6}.flatpickr-day{-ms-flex-preferred-size:14.2857143%;-ms-flex-pack:center;background:none;border:1px solid #0000;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;display:inline-block;-webkit-flex-basis:14.2857143%;flex-basis:14.2857143%;font-weight:400;height:39px;-webkit-justify-content:center;justify-content:center;line-height:39px;margin:0;max-width:39px;position:relative;text-align:center;width:14.2857143%}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{background:#e6e6e6;border-color:#e6e6e6;cursor:pointer;outline:0}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:focus,.flatpickr-day.today:hover{background:#959ea9;border-color:#959ea9;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#569ff7;border-color:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{background:#0000;border-color:#0000;color:#3939394d;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{color:#3939391a;cursor:not-allowed}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6;padding:0 12px}.flatpickr-weekwrapper .flatpickr-weekday{float:none;line-height:28px;width:100%}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{background:#0000;border:none;color:#3939394d;cursor:default;display:block;max-width:none;width:100%}.flatpickr-innerContainer{display:block;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden}.flatpickr-innerContainer,.flatpickr-rContainer{-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-rContainer{display:inline-block;padding:0}.flatpickr-time{-webkit-box-sizing:border-box;box-sizing:border-box;display:block;display:-webkit-flex;display:-ms-flexbox;display:flex;height:0;line-height:40px;max-height:40px;outline:0;overflow:hidden;text-align:center}.flatpickr-time:after{clear:both;content:"";display:table}.flatpickr-time .numInputWrapper{-webkit-flex:1;-ms-flex:1;flex:1 1;float:left;height:40px;width:40%}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;background:#0000;border:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;font-size:14px;height:inherit;line-height:inherit;margin:0;padding:0;position:relative;text-align:center}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{border:0;outline:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{-ms-flex-item-align:center;-webkit-align-self:center;align-self:center;color:#393939;float:left;font-weight:700;height:inherit;line-height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:2%}.flatpickr-time .flatpickr-am-pm{cursor:pointer;font-weight:400;outline:0;text-align:center;width:18%}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.due-date-picker-wrapper{position:relative;width:100%}.due-date-picker-input{background:var(--bg-app);border:1px solid var(--border);border-radius:7px;box-sizing:border-box;color:var(--text);cursor:pointer;font-family:inherit;font-size:16px;outline:none;padding:9px 32px 9px 12px;transition:border-color .15s;width:100%}.due-date-picker-input::placeholder{color:var(--text-subtle)}.due-date-picker-input:focus{border-color:var(--color-primary)}.due-date-picker-clear{align-items:center;background:#0000;border:none;border-radius:50%;color:var(--text-subtle);cursor:pointer;display:flex;font-size:16px;height:22px;justify-content:center;line-height:1;padding:0;position:absolute;right:6px;top:50%;transform:translateY(-50%);width:22px}.due-date-picker-clear:hover{background:var(--gray-100);color:var(--text-muted)}.flatpickr-calendar{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-family:inherit}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{display:none}.flatpickr-months{background:var(--surface-hi);border-bottom:1px solid var(--border);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);padding-top:6px}.flatpickr-current-month{color:var(--text);font-size:13px;font-weight:600}.flatpickr-current-month .flatpickr-monthDropdown-months,.flatpickr-current-month input.cur-year{background:#0000;color:var(--text)}.flatpickr-weekday,.flatpickr-weekdays{background:var(--surface-hi)}.flatpickr-weekday{color:var(--text-subtle);font-size:11px;font-weight:600}.flatpickr-next-month svg,.flatpickr-prev-month svg{fill:var(--text-muted)}.flatpickr-next-month:hover svg,.flatpickr-prev-month:hover svg{fill:var(--text)}.flatpickr-day{border-radius:var(--radius-sm);color:var(--text)}.flatpickr-day.nextMonthDay,.flatpickr-day.prevMonthDay{color:var(--text-subtle)}.flatpickr-day:hover{background:var(--gray-100);border-color:var(--gray-100)}.flatpickr-day.today{border-color:var(--color-primary)}.flatpickr-day.selected,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover{background:var(--color-primary);border-color:var(--color-primary);color:var(--text-on-accent)}.flatpickr-day.flatpickr-disabled{color:var(--text-subtle)}.flatpickr-time{background:var(--bg-surface);border-top:1px solid var(--border)}.flatpickr-time .flatpickr-am-pm,.flatpickr-time input{color:var(--text)}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:var(--gray-100)}[data-theme=dark] .flatpickr-day:hover,[data-theme=dark] .flatpickr-time .flatpickr-am-pm:focus,[data-theme=dark] .flatpickr-time .flatpickr-am-pm:hover,[data-theme=dark] .flatpickr-time input:focus,[data-theme=dark] .flatpickr-time input:hover{background:var(--surface-hi)}@media (max-width:700px){.due-date-picker-input{min-height:44px}.flatpickr-day{height:2.4rem;line-height:2.4rem}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .numInputWrapper{min-height:44px}}.profile-readonly{align-items:center;background:var(--bg-app);border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;gap:10px;margin-bottom:18px;padding:9px 12px}.profile-readonly-label{color:var(--text-subtle);font-size:var(--text-xs);font-weight:var(--fw-medium)}.profile-readonly-value{color:var(--text-muted);font-family:ui-monospace,monospace;font-size:13px}.profile-form{display:flex;flex-direction:column;gap:14px}.profile-row-2{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;min-width:0}.profile-row-2 .profile-field{min-width:0}.profile-field{display:flex;flex-direction:column;gap:5px}.profile-field label{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--fw-medium)}.profile-optional{color:var(--text-subtle);font-weight:var(--fw-regular)}.profile-divider{background:var(--border);height:1px;margin:2px 0}.profile-error{background:#ef444414;border:1px solid #ef444440;border-radius:var(--radius-sm);color:var(--danger)}.profile-error,.profile-success{font-size:var(--text-xs);margin:0;padding:8px 10px}.profile-success{background:#16a34a14;border:1px solid #16a34a40;border-radius:var(--radius-sm);color:var(--success)}:root{--mode-homework:#2a78d6;--mode-lecture:#eb6834;--mode-preassessment:#1baf7a;--mode-study-methods:#eda100}[data-theme=dark]{--mode-homework:#3987e5;--mode-lecture:#d95926;--mode-preassessment:#199e70;--mode-study-methods:#c98500}.instructor-panel{background:var(--bg-app);color:var(--text);display:flex;flex-direction:column;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;height:100vh}.instructor-layout{display:flex;flex:1 1;min-height:0}.instructor-body{flex:1 1;overflow:auto;padding:24px}.tab-body{display:flex;flex-direction:column;gap:16px}.panel-empty{color:var(--text-subtle);font-size:13px;padding:24px 0}.btn-export{align-items:center;background:#0000;border:1px solid var(--border);border-radius:5px;color:var(--text-muted);cursor:pointer;display:flex;padding:5px 8px;transition:border-color .15s,color .15s}.btn-export:hover{border-color:var(--color-primary);color:var(--color-primary)}.action-btns{align-items:center;display:flex;gap:6px}.btn-edit{background:#0000;border:1px solid var(--border);border-radius:5px;color:var(--text-muted);cursor:pointer;font-size:12px;padding:4px 10px;transition:border-color .15s,color .15s}.btn-edit:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn-delete{background:#0000;border:1px solid var(--border);border-radius:5px;color:var(--text-muted);cursor:pointer;font-size:12px;padding:4px 10px;transition:border-color .15s,color .15s}.btn-delete:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.btn-delete:disabled{cursor:not-allowed;opacity:.4}.btn-save{background:var(--color-primary);border:none;border-radius:5px;color:var(--text-on-accent);cursor:pointer;font-size:12px;font-weight:600;padding:4px 10px;transition:filter .15s}.btn-save:hover{filter:brightness(.88)}.btn-cancel{background:#0000;border:1px solid var(--border);border-radius:5px;color:var(--text-subtle);cursor:pointer;font-size:12px;padding:4px 10px;transition:border-color .15s,color .15s}.btn-cancel:hover{border-color:var(--logout-hover-border);color:var(--text-muted)}.sessions-table-wrap{border:1px solid var(--border);border-radius:8px;overflow-x:auto}.sessions-table{border-collapse:collapse;font-size:12px;width:100%}.sessions-table th{background:var(--surface-hi);color:var(--text-muted);font-weight:500;text-align:left;white-space:nowrap}.sessions-table td,.sessions-table th{border-bottom:1px solid var(--border);padding:10px 12px}.sessions-table td{background:var(--bg-surface);color:var(--text);vertical-align:middle}.sessions-table tbody tr:last-child td{border-bottom:none}.sessions-table tbody tr:hover td{background:var(--surface-hi)}.row-complete td{opacity:.85}.row-editing td{background:var(--surface-hi)}.td-topics{max-width:220px}.td-due-dates{color:var(--text-muted);font-size:11px;white-space:nowrap}.td-due-dates div+div{margin-top:2px}.topic-chip{background:var(--primary-wash);border-radius:10px;color:var(--color-primary);display:inline-block;font-size:11px;font-weight:500;margin:2px 3px 2px 0;padding:2px 8px;white-space:nowrap}.row-being-edited td{background:var(--surface-hi)}.row-edit-panel td{border-top:none!important;padding:0!important}.unit-edit-form{background:var(--bg-surface);border-top:2px solid var(--color-primary);display:flex;flex-direction:column;gap:14px;padding:16px 20px 20px}.unit-edit-actions{border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;padding-top:4px}.sessions-table td input,.sessions-table td textarea{background:var(--bg-app);border:1px solid var(--border);border-radius:5px;color:var(--text);font-family:inherit;font-size:12px;min-width:80px;outline:none;padding:5px 8px;transition:border-color .15s;width:100%}.sessions-table td input:focus,.sessions-table td textarea:focus{border-color:var(--color-primary)}.edit-name-row{display:flex;gap:4px}.edit-name-row input{min-width:70px}.role-select{background:var(--bg-surface);border:1px solid var(--border);border-radius:5px;color:var(--text);cursor:pointer;font-size:12px;outline:none;padding:5px 8px;transition:border-color .15s}.role-select:focus{border-color:var(--color-primary)}.status-badge{border-radius:4px;display:inline-block;font-size:11px;font-weight:500;padding:2px 8px}.status-badge.active{background:var(--primary-wash);color:var(--color-primary)}.status-badge.complete{background:var(--success-wash);color:var(--success)}.status-badge.denied{background:var(--danger-wash);color:var(--danger)}.status-badge.open{background:var(--warning-wash);color:var(--warning)}.role-badge{border-radius:4px;display:inline-block;font-size:11px;font-weight:500;padding:2px 8px}.role-badge.instructor{background:var(--warning-wash);color:var(--warning)}.role-badge.student{background:var(--primary-wash);color:var(--color-primary)}.role-badge.ta{background:var(--secondary-wash);color:var(--info)}.group-control{align-items:center;color:var(--text-subtle);display:flex;font-size:12px;gap:8px}.group-control select{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;font-size:12px;outline:none;padding:5px 8px;transition:border-color .15s}.group-control select:focus{border-color:var(--color-primary)}.session-group{display:flex;flex-direction:column;gap:8px}.session-group-label{align-items:center;border-bottom:1px solid var(--border);color:var(--text);display:flex;font-size:13px;font-weight:600;gap:8px;padding:8px 0 4px}.session-group-count{color:var(--text-subtle);font-size:11px;font-weight:400}.create-form{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:14px;max-width:520px;padding:20px}.create-form h3{color:var(--text);font-size:14px;font-weight:600;margin:0}.form-row-2{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.cu-field{display:flex;flex-direction:column;gap:6px}.cu-field label{color:var(--text-muted);font-size:12px;font-weight:500}.cu-field input,.cu-field textarea{background:var(--bg-app);border:1px solid var(--border);border-radius:7px;color:var(--text);font-family:inherit;font-size:13px;outline:none;padding:9px 12px;transition:border-color .15s}.cu-field textarea{resize:vertical}.cu-field input:focus,.cu-field textarea:focus{border-color:var(--color-primary)}@media (max-width:700px){.cu-field input{min-height:44px}}.cu-field input::placeholder,.cu-field textarea::placeholder,.optional-label{color:var(--text-subtle)}.optional-label{font-size:11px;font-weight:400}.req{color:var(--danger)}.cu-hint{color:var(--text-subtle);font-size:11px;line-height:1.4;margin:0}.topic-row{align-items:center;display:flex;gap:6px}.topic-row input{flex:1 1}.btn-topic-remove{align-items:center;background:#0000;border:1px solid var(--border);border-radius:5px;color:var(--text-subtle);cursor:pointer;display:flex;flex-shrink:0;font-size:15px;height:26px;justify-content:center;line-height:1;transition:border-color .12s,color .12s;width:26px}.btn-topic-remove:hover{border-color:var(--danger);color:var(--danger)}.btn-topic-add{align-self:flex-start;background:#0000;border:none;color:var(--color-primary);cursor:pointer;font-family:inherit;font-size:12px;font-weight:500;margin-top:2px;padding:0;transition:opacity .12s}.btn-topic-add:hover{opacity:.75}.cu-error{background:var(--danger-wash);border:1px solid var(--danger-wash);border-radius:6px;color:var(--danger)}.cu-error,.cu-success{font-size:12px;margin:0;padding:8px 10px}.cu-success{background:var(--success-wash);border:1px solid var(--success-wash);border-radius:6px;color:var(--success)}.btn-delete-confirm{background:var(--danger);border:none;border-radius:6px;color:var(--text-on-accent);cursor:pointer;font-size:13px;font-weight:600;padding:7px 16px;transition:filter .15s}.btn-delete-confirm:hover{filter:brightness(.88)}.request-section-label{color:var(--text-muted);font-size:13px;font-weight:600;margin:0}.request-list{display:flex;flex-direction:column;gap:10px}.request-card{align-items:flex-start;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;display:flex;gap:16px;justify-content:space-between;padding:14px 16px}.request-info{display:flex;flex-direction:column;gap:4px}.request-name{color:var(--text);font-size:14px;font-weight:600}.request-meta{color:var(--text-muted);font-size:12px}.request-message{color:var(--text-subtle);font-size:12px;font-style:italic}.request-date{color:var(--text-subtle);font-size:11px}.bug-filter-segmented{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);display:inline-flex;gap:2px;margin-bottom:var(--space-4);padding:2px}.bug-filter-segment{background:#0000;border:none;border-radius:5px;color:var(--text-muted);cursor:pointer;font-family:var(--font-sans);font-size:var(--text-xs);font-weight:var(--fw-medium);min-height:30px;padding:6px 14px;transition:background var(--transition),color var(--transition)}.bug-filter-segment:hover{color:var(--text)}.bug-filter-segment.active{background:var(--primary-wash);color:var(--color-primary);font-weight:var(--fw-semibold)}.bug-card{display:flex;flex-direction:column;gap:var(--space-3)}.bug-card-header{gap:var(--space-3);justify-content:space-between}.bug-card-header,.bug-card-title-row{align-items:center;display:flex;flex-wrap:wrap}.bug-card-title-row{gap:var(--space-2)}.bug-card-message{color:var(--text);font-size:var(--text-sm);line-height:var(--leading-normal);margin:0;white-space:pre-wrap}.bug-card-thumbs{display:flex;flex-wrap:wrap;gap:var(--space-2)}.bug-card-thumb{background:none;border:.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0;height:72px;overflow:hidden;padding:0;transition:border-color var(--transition),opacity var(--transition);width:72px}.bug-card-thumb:focus-visible,.bug-card-thumb:hover{border-color:var(--color-primary);opacity:.88}.bug-card-thumb img{display:block;height:100%;object-fit:cover;width:100%}.bug-card-meta{display:flex;flex-direction:column;gap:2px}.bug-card-route{color:var(--text-muted);font-family:monospace;font-size:var(--text-xs);word-break:break-all}.bug-card-ua{color:var(--text-subtle);font-size:10px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bug-card-footer{align-items:center;border-top:1px solid var(--border);display:flex;gap:var(--space-3);justify-content:space-between;padding-top:var(--space-1)}.bug-card-resolved-meta{color:var(--text-subtle);font-size:var(--text-xs)}.bug-lightbox-img{border-radius:var(--radius-md);display:block;width:100%}@media (max-width:640px){.bug-filter-segment{min-height:44px;padding:0 16px}.bug-card-footer .btn{min-height:44px;padding:0 18px}}.approve-form{display:flex;flex-direction:column;gap:8px;min-width:200px}.approve-form input{background:var(--bg-app);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:12px;outline:none;padding:7px 10px;transition:border-color .15s}.approve-form input:focus{border-color:var(--color-primary)}.approve-form input::placeholder{color:var(--text-subtle)}.section-controls{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.report-group-title{color:var(--text);font-size:15px;font-weight:600;margin:0 0 16px}.report-top-method{background:var(--surface-hi);border:1px solid var(--border);border-radius:6px;border-radius:var(--radius-sm,6px);color:var(--text-muted);font-size:13px;margin:0 0 16px;padding:8px 12px}.report-top-method strong{color:var(--text)}.report-unit-select{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;font-size:13px;outline:none;padding:6px 10px;transition:border-color .15s}.report-unit-select:focus{border-color:var(--color-primary)}@media (max-width:700px){.report-unit-select{min-height:44px}.section-controls{width:100%}}.stat-cards-row{display:flex;flex-wrap:wrap;gap:12px}.stat-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;display:flex;flex:1 1;flex-direction:column;gap:6px;min-width:180px;padding:16px 18px}.stat-card-dims{flex:1.5 1;min-width:240px}.stat-card-label{color:var(--text-subtle);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.stat-card-value{color:var(--text);font-size:28px;font-weight:700;line-height:1}.stat-card-sub{color:var(--text-subtle);font-size:11px}.stat-card-pair{align-items:center;display:flex;gap:10px;margin-top:2px}.stat-pair-item{display:flex;flex-direction:column;gap:2px}.stat-pair-label{color:var(--text-subtle);font-size:10px}.stat-pair-val{font-size:22px;font-weight:700;line-height:1}.stat-pair-sep{color:var(--text-subtle);font-size:11px;margin-top:10px}.stat-card-warning{background:var(--warning-wash);border:1px solid var(--warning-wash);border-radius:5px;color:var(--warning);font-size:11px;line-height:1.4;margin-top:4px;padding:5px 8px}.dim-bar-row{align-items:center;display:flex;gap:8px;margin-top:4px}.dim-bar-label{color:var(--text-muted);flex-shrink:0;font-size:11px;width:90px}.dim-bar-track{background:var(--surface-hi);border-radius:3px;flex:1 1;height:6px;overflow:hidden}[data-theme=dark] .dim-bar-track{background:#ffffff12}.dim-bar-fill{border-radius:3px;height:100%;transition:width .3s ease}.dim-bar-val{color:var(--text-muted);flex-shrink:0;font-size:11px;text-align:right;width:28px}.report-section{display:flex;flex-direction:column;gap:10px}.report-section-title{color:var(--text-muted);font-size:13px;font-weight:600;margin:0}.report-section-count{color:var(--text-subtle);font-weight:400}.concept-heatmap{display:flex;flex-wrap:wrap;gap:8px}.concept-chip{border:1px solid;border-radius:5px;display:inline-block;font-size:12px;padding:4px 10px}.concept-chip strong{margin-left:4px}.gaps-list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0}.gap-row{align-items:center;display:flex;gap:10px}.gap-label{color:var(--text);font-size:12px;overflow:hidden;text-overflow:ellipsis;width:140px}.gap-label,.gap-stat{flex-shrink:0;white-space:nowrap}.gap-stat{font-size:11px;font-weight:600;width:150px}@media (max-width:600px){.gap-row{flex-wrap:wrap}.gap-label{white-space:normal;width:100%}.dim-bar-track{flex-basis:100%}.gap-stat{width:auto}}.transcript-link{border-bottom:1px solid #0000;color:var(--color-primary);font-size:12px;text-decoration:none;transition:border-color .15s}.transcript-link:hover{border-bottom-color:var(--color-primary)}.report-all-clear{color:var(--success);font-size:13px;margin:0}.export-controls{align-items:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px}.export-controls-label{color:var(--text-subtle);font-size:12px;white-space:nowrap}.export-points-input{background:var(--bg-app);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;outline:none;padding:6px 8px;transition:border-color .15s;width:60px}.export-points-input:focus{border-color:var(--color-primary)}.grades-matrix td,.grades-matrix th{text-align:center}.grades-student-col{min-width:120px;text-align:left!important}.grades-unit-header{background:var(--surface-hi)!important;border-left:1px solid var(--border);color:var(--text-muted);font-size:11px;font-weight:600;padding:6px 8px!important}.grades-sub-header{border-left:1px solid var(--border);color:var(--text-subtle);font-size:10px;font-weight:500;padding:4px 8px!important}.grades-sub-header,.grades-sub-row{background:var(--bg-app)!important}.grades-student-name{color:var(--text);font-weight:500;text-align:left!important}.grades-cell{border-left:1px solid var(--border);font-size:12px;padding:8px 10px!important}.grade-check{color:var(--success);font-weight:700}.grade-cross{color:var(--text-subtle)}.grade-late-flag{background:var(--warning-wash);border-radius:4px;border-radius:var(--radius-sm,4px);color:var(--warning);display:inline-block;font-size:11px;font-weight:700;margin-left:6px;padding:1px 6px;white-space:nowrap}.grade-late-flag-excused{background:var(--surface-hi);color:var(--text-subtle)}.grade-late-controls{align-items:center;display:inline-flex;gap:6px;margin-left:4px;vertical-align:middle}.sm-analytics-row{display:flex;gap:16px;margin-bottom:20px}.sm-dist-section,.sm-style-section{flex:1 1;min-width:0}.sm-dist-top td,.sm-dist-top th{color:var(--text);font-weight:600}.sm-dist-bottom td{color:var(--text-subtle);font-style:italic}.sm-style-top td{color:var(--text);font-weight:600}@media (max-width:700px){.sm-analytics-row{flex-direction:column}}.usage-date-filter{align-items:center;display:flex;gap:8px;margin-left:auto;margin-right:12px}.usage-date-sep{color:var(--text-subtle);font-size:12px}.toggle-btn.active{background:var(--primary-wash);border-color:var(--color-primary);color:var(--color-primary)}.usage-chart-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;padding:16px 12px 8px}.usage-mode-swatch{border-radius:2px;display:inline-block;height:8px;margin-right:8px;width:8px}.usage-footnote{color:var(--text-subtle);font-size:11px;margin:0}.usage-tooltip{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-md);font-size:12px;padding:8px 10px}.usage-tooltip-label{color:var(--text-subtle);font-size:11px;margin-bottom:4px}.usage-tooltip-row{align-items:center;display:flex;gap:6px;padding:2px 0}.usage-tooltip-key{border-radius:2px;flex-shrink:0;height:3px;width:8px}.usage-tooltip-value{color:var(--text);font-weight:700}.usage-tooltip-name{color:var(--text-muted)}@media (max-width:700px){.usage-date-filter{flex-wrap:wrap;margin-left:0;margin-right:0}}.fpr-header{align-items:center;display:flex;flex-direction:column;text-align:center}.fpr-icon{font-size:36px;margin-bottom:12px}.fpr-title{color:var(--text);font-size:var(--text-lg);font-weight:var(--fw-bold);margin:0 0 8px}.fpr-subtitle{color:var(--text-muted);font-size:var(--text-sm);line-height:1.5;margin:0 0 24px}.fpr-form{gap:14px;text-align:left;width:100%}.fpr-field,.fpr-form{display:flex;flex-direction:column}.fpr-field{gap:5px}.fpr-field label{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--fw-medium)}.fpr-hint{color:var(--text-subtle);font-weight:var(--fw-regular)}.fpr-error{background:#ef444414;border:1px solid #ef444440;border-radius:var(--radius-sm);color:var(--danger);font-size:var(--text-xs);margin:0;padding:8px 10px}.fpr-btn{margin-top:4px;width:100%}.workspace-toolbar{align-items:center;background:var(--bg-app);border-bottom:1px solid var(--border);display:flex;flex-shrink:0;padding:6px 14px}.workspace-toolbar-segmented{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);display:inline-flex;gap:2px;padding:2px}.ws-segment{background:#0000;border:none;border-radius:5px;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:12px;font-weight:500;min-height:26px;padding:4px 12px;position:relative;transition:background .12s,color .12s}.ws-segment-pulse{animation:ws-pulse-ring 1.6s ease-in-out infinite;background:var(--color-primary);border:2px solid var(--bg-surface);border-radius:50%;height:8px;position:absolute;right:0;top:-2px;width:8px}@keyframes ws-pulse-ring{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.4)}}.ws-segment:hover{color:var(--text)}.ws-segment.active{background:var(--primary-wash);color:var(--color-primary);font-weight:600}@media (max-width:480px){.workspace-toolbar{padding:6px 10px}.ws-segment{font-size:11px;padding:4px 9px}}*{box-sizing:border-box}.app-loading{inset:0;position:fixed}.App{background:var(--bg-app);color:var(--text);display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}.session-modal-empty,.session-modal-loading{color:var(--text-subtle);font-size:13px;padding:20px;text-align:center}.session-modal-new{background:#0000;border:none;border-radius:8px;color:var(--color-primary);cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;padding:9px 12px;text-align:left;transition:background .12s;width:100%}.session-modal-new:hover{background:var(--primary-wash)}.workspace{flex:1 1;min-height:0}.panel,.workspace{display:flex;overflow:hidden;position:relative}.panel{flex-direction:column}.panel-left{border-right:1px solid var(--border);flex-shrink:0}.panel-left.panel-closed{border-right:none}.panel-center{flex:1 1;min-width:0}.panel-right{background:var(--bg-surface);border-left:1px solid var(--border);flex-shrink:0}.panel-right.panel-closed{border-left:none}.panel-resize-handle{bottom:0;cursor:col-resize;position:absolute;top:0;transition:background .15s ease;width:5px;z-index:10}.panel-resize-handle:active,.panel-resize-handle:hover{background:#22b57359}.panel-resize-handle-right{right:0}.panel-resize-handle-left{left:0}.practice-session-row{align-items:center;border-radius:8px;display:flex;gap:4px;padding:2px 4px}.practice-session-btn{align-items:flex-start;background:#0000;border:none;border-radius:7px;cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-family:inherit;gap:2px;min-width:0;padding:9px 10px;text-align:left;transition:background .12s}.practice-session-btn:hover{background:var(--gray-100)}.practice-session-name{color:var(--text);font-size:13px;font-weight:500;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.practice-session-date{color:var(--text-subtle);font-size:11px}.practice-session-actions{display:flex;flex-shrink:0;gap:2px}.practice-action-btn{align-items:center;background:#0000;border:none;border-radius:5px;color:var(--text-subtle);cursor:pointer;display:flex;height:28px;justify-content:center;transition:background .12s,color .12s;width:28px}.practice-action-btn:hover{background:var(--gray-100);color:var(--text)}.practice-delete-btn:hover{background:#ef444414;color:var(--danger)}.practice-rename-row{align-items:center;display:flex;flex:1 1;gap:6px;padding:4px 4px 4px 8px}.practice-rename-input{background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:6px;color:var(--text);flex:1 1;font-family:inherit;font-size:13px;outline:none;padding:5px 8px}.practice-rename-input:focus{border-color:var(--color-primary)}.practice-rename-save{background:var(--color-primary);color:var(--text-on-accent);padding:4px 10px;white-space:nowrap}.practice-rename-cancel,.practice-rename-save{border:none;border-radius:5px;cursor:pointer;font-family:inherit;font-size:12px}.practice-rename-cancel{background:#0000;color:var(--text-muted);padding:4px 8px}.practice-error{background:#ef444414;border-radius:6px;color:var(--danger);font-size:12px;margin:4px 4px 0;padding:6px 10px}.dev-banner{background:var(--warning-wash);border:1px solid var(--warning);border-radius:6px;border-radius:var(--radius-sm,6px);bottom:10px;color:var(--warning);font-size:11px;font-weight:700;left:10px;letter-spacing:.05em;padding:3px 10px;pointer-events:none;position:fixed;-webkit-user-select:none;user-select:none;z-index:9999}
/*# sourceMappingURL=main.ca3e1dce.css.map*/