@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/9a757c69-7977-4897-a822-40f364c80070.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/03b59049-b183-4381-af83-67f381ecb380.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/5f696fb7-d02b-4167-8e0f-db28bb69459d.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ad88a83f-4a20-4b03-91dd-bc092fe30c7a.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/861d370a-ab5f-426e-9b3e-d510e262ef5f.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/e25c7d10-af34-4a82-8422-6c0d783805dc.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/74c4e933-478e-4dc5-854a-223093c0ffd9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/9a757c69-7977-4897-a822-40f364c80070.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/03b59049-b183-4381-af83-67f381ecb380.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/5f696fb7-d02b-4167-8e0f-db28bb69459d.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ad88a83f-4a20-4b03-91dd-bc092fe30c7a.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/861d370a-ab5f-426e-9b3e-d510e262ef5f.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/e25c7d10-af34-4a82-8422-6c0d783805dc.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/74c4e933-478e-4dc5-854a-223093c0ffd9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/9a757c69-7977-4897-a822-40f364c80070.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/03b59049-b183-4381-af83-67f381ecb380.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/5f696fb7-d02b-4167-8e0f-db28bb69459d.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ad88a83f-4a20-4b03-91dd-bc092fe30c7a.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/861d370a-ab5f-426e-9b3e-d510e262ef5f.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/e25c7d10-af34-4a82-8422-6c0d783805dc.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/74c4e933-478e-4dc5-854a-223093c0ffd9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/9a757c69-7977-4897-a822-40f364c80070.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/03b59049-b183-4381-af83-67f381ecb380.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/5f696fb7-d02b-4167-8e0f-db28bb69459d.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/ad88a83f-4a20-4b03-91dd-bc092fe30c7a.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/861d370a-ab5f-426e-9b3e-d510e262ef5f.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/e25c7d10-af34-4a82-8422-6c0d783805dc.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/74c4e933-478e-4dc5-854a-223093c0ffd9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/7b69fd7f-32e2-4246-9eec-a9cfaa6f5cc3.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/a6bbc043-188e-4fcc-bbe9-aa7fd70b3c3f.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/e17f9f44-d605-445b-92a9-2888fa517a7e.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/15aeeea4-35fe-43e4-9ef8-f465b11d20c5.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/8bd8716e-3905-4bea-9b70-0f07f86ceb52.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/c4be5b39-f41d-4bf3-a2bb-435fb048198c.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/7b69fd7f-32e2-4246-9eec-a9cfaa6f5cc3.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/a6bbc043-188e-4fcc-bbe9-aa7fd70b3c3f.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/e17f9f44-d605-445b-92a9-2888fa517a7e.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/15aeeea4-35fe-43e4-9ef8-f465b11d20c5.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/8bd8716e-3905-4bea-9b70-0f07f86ceb52.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/c4be5b39-f41d-4bf3-a2bb-435fb048198c.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/7b69fd7f-32e2-4246-9eec-a9cfaa6f5cc3.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/a6bbc043-188e-4fcc-bbe9-aa7fd70b3c3f.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/e17f9f44-d605-445b-92a9-2888fa517a7e.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/15aeeea4-35fe-43e4-9ef8-f465b11d20c5.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/8bd8716e-3905-4bea-9b70-0f07f86ceb52.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/c4be5b39-f41d-4bf3-a2bb-435fb048198c.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/7b69fd7f-32e2-4246-9eec-a9cfaa6f5cc3.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/a6bbc043-188e-4fcc-bbe9-aa7fd70b3c3f.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/e17f9f44-d605-445b-92a9-2888fa517a7e.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/15aeeea4-35fe-43e4-9ef8-f465b11d20c5.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/8bd8716e-3905-4bea-9b70-0f07f86ceb52.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/c4be5b39-f41d-4bf3-a2bb-435fb048198c.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#0e1117;--surface:#171b24;--surface-2:#1e222d;--surface-3:#232834;--border:#272b36;--border-strong:#353a47;--text:#e6e8eb;--text-muted:#7d8595;--text-dim:#565c6b;--green:#26a69a;--green-soft:#26a69a26;--red:#ef5350;--red-soft:#ef535026;--amber:#f7c948;--amber-soft:#f7c94826;--violet:#8b7cf6;--violet-soft:#8b7cf624;--blue:#5b9dff;--blue-soft:#5b9dff24}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11", "ss01";margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;line-height:1.5}.mono{font-feature-settings:"zero", "ss01";font-family:JetBrains Mono,ui-monospace,monospace}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.login-shell{background:radial-gradient(ellipse 800px 500px at 30% 20%, #26a69a0d, transparent), radial-gradient(ellipse 600px 400px at 80% 80%, #8b7cf60a, transparent), var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:420px;padding:36px 32px;box-shadow:0 20px 60px #0006}.login-brand{align-items:center;gap:12px;margin-bottom:28px;display:flex}.brand-mark{background:linear-gradient(135deg, var(--green), #1e8a82);color:#0a0d12;border-radius:9px;place-items:center;width:36px;height:36px;font-family:JetBrains Mono,monospace;font-size:16px;font-weight:700;display:grid}.brand-text{flex-direction:column;line-height:1.1;display:flex}.brand-text .top{color:var(--text-muted);letter-spacing:.18em;text-transform:uppercase;font-size:11px}.brand-text .bot{font-size:18px;font-weight:600}.field-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:6px;font-size:11px;display:block}.input{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;outline:none;padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .15s,background .15s}.input:focus{border-color:var(--green);background:#0a0d12}.input.mono{font-family:JetBrains Mono,monospace}textarea.input{resize:vertical;min-height:72px;line-height:1.5}.btn{cursor:pointer;color:var(--text);background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--green);color:#0a0d12;font-weight:600}.btn-primary:hover{background:#2db8ab}.btn-ghost{border-color:var(--border);color:var(--text)}.btn-ghost:hover{background:var(--surface-2);border-color:var(--border-strong)}.btn-outline{border-color:var(--border-strong);color:var(--text-muted)}.btn-outline:hover{color:var(--text);border-color:var(--text-muted)}.btn-danger{color:var(--red);border-color:#ef53504d}.btn-danger:hover{background:var(--red-soft)}.btn-sm{padding:6px 10px;font-size:12px}.btn-icon{border-color:var(--border);width:32px;height:32px;color:var(--text-muted);padding:0}.btn-icon:hover{color:var(--text);border-color:var(--border-strong);background:var(--surface-2)}.divider-or{color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;align-items:center;gap:12px;margin:18px 0;font-size:11px;display:flex}.divider-or:before,.divider-or:after{content:"";background:var(--border);flex:1;height:1px}.app{flex-direction:column;min-height:100vh;display:flex}.viewer-banner{background:var(--blue-soft);color:#b6cfff;border-bottom:1px solid #5b9dff40;justify-content:center;align-items:center;gap:8px;padding:8px 24px;font-size:12px;display:flex}.header{z-index:50;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#0e1117d9;position:sticky;top:0}.header-inner{align-items:center;gap:20px;max-width:1280px;margin:0 auto;padding:14px 24px;display:flex}.header-title{align-items:baseline;gap:10px;display:flex}.header-title .month{letter-spacing:-.01em;font-size:18px;font-weight:600}.header-title .year{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:13px}.month-picker{align-items:center;gap:4px;display:inline-flex}.month-select{background:var(--surface-2);border:1px solid var(--border);color:var(--text);letter-spacing:-.01em;cursor:pointer;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);text-transform:capitalize;background-position:calc(100% - 16px),calc(100% - 11px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;border-radius:8px;padding:6px 28px 6px 10px;font-size:14px;font-weight:500}.month-select:hover{background-color:var(--surface-3)}.month-select:focus{outline-offset:1px;outline:2px solid #26a69a4d}.btn-icon.btn-sm{width:28px;height:28px;padding:0}.btn-icon[disabled]{opacity:.3;cursor:not-allowed}.month-status{letter-spacing:.05em;text-transform:uppercase;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:500;display:inline-flex}.month-status.closed{background:var(--amber-soft);color:var(--amber);border:1px solid #f7c9484d}.month-status.open{background:var(--green-soft);color:var(--green);border:1px solid #26a69a4d}.month-status .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.spacer{flex:1}.user-chip{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;align-items:center;gap:10px;padding:4px 10px 4px 4px;display:flex}.avatar{background:var(--green);color:#0a0d12;border-radius:50%;place-items:center;width:28px;height:28px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;display:grid}.avatar.viewer{background:var(--blue);color:#0a0d12}.user-chip .name{font-size:13px;font-weight:500}.role-chip{letter-spacing:.08em;text-transform:uppercase;background:var(--bg);color:var(--text-muted);border-radius:4px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:10px}.main{width:100%;max-width:1280px;margin:0 auto;padding:28px 24px 120px}.kpi-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin-bottom:32px;display:grid}@media (width<=1280px){.kpi-strip{grid-template-columns:repeat(4,minmax(0,1fr))}}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;position:relative;overflow:hidden}.kpi-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);align-items:center;gap:6px;margin-bottom:8px;font-size:11px;display:flex}.kpi-value{letter-spacing:-.01em;font-family:JetBrains Mono,monospace;font-size:20px;font-weight:600;line-height:1.1}.kpi-sub{color:var(--text-muted);margin-top:4px;font-family:JetBrains Mono,monospace;font-size:11px}.kpi.accent:before{content:"";background:var(--green);width:2px;position:absolute;top:0;bottom:0;left:0}.kpi.accent.neg:before{background:var(--red)}.kpi-bar{background:var(--bg);border-radius:2px;height:4px;margin-top:8px;overflow:hidden}.kpi-bar-fill{background:var(--green);border-radius:2px;height:100%}.kpi-bar-fill.neg{background:var(--red)}.kpi-bar-fill.amber{background:var(--amber)}.section-head{justify-content:space-between;align-items:baseline;margin:32px 0 16px;display:flex}.section-head h2{text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin:0;font-size:13px;font-weight:500}.section-head .count{color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:12px}.day-list{flex-direction:column;gap:12px;display:flex}.day-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;transition:border-color .15s,transform .15s;position:relative;overflow:hidden}.day-card:hover{border-color:var(--border-strong)}.day-card .rail{background:var(--border);width:3px;position:absolute;top:0;bottom:0;left:0}.day-card.win .rail{background:var(--green)}.day-card.loss .rail{background:var(--red)}.day-card.miss .rail{background:var(--amber)}.day-card.empty .rail{background:var(--text-dim)}.day-card.note .rail{background:var(--blue)}.day-head{cursor:pointer;-webkit-user-select:none;user-select:none;grid-template-columns:1fr auto auto auto;align-items:center;gap:16px;padding:18px 22px;display:grid}.day-head .left{flex-direction:column;gap:4px;display:flex}.day-head .date{letter-spacing:-.01em;text-transform:capitalize;font-size:17px;font-weight:600}.day-head .date .weekday{color:var(--text-muted);margin-right:6px;font-weight:400}.day-head .decision-line{color:var(--text-muted);align-items:center;gap:8px;font-size:12px;display:flex}.status-badge{letter-spacing:.05em;text-transform:uppercase;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;display:inline-flex}.status-badge.win{background:var(--green-soft);color:var(--green);border-color:#26a69a40}.status-badge.loss{background:var(--red-soft);color:var(--red);border-color:#ef535040}.status-badge.miss{background:var(--amber-soft);color:var(--amber);border-color:#f7c94840}.status-badge.empty{color:var(--text-muted);background:#7d85951a;border-color:#7d85952e}.status-badge.note{background:var(--blue-soft);color:var(--blue);border-color:#5b9dff38}.pnl-display{text-align:right;font-family:JetBrains Mono,monospace}.pnl-display .amount{letter-spacing:-.01em;font-size:18px;font-weight:600}.pnl-display .pct{color:var(--text-muted);margin-top:2px;font-size:11px}.pnl-display.pos .amount{color:var(--green)}.pnl-display.neg .amount{color:var(--red)}.pnl-display.zero .amount{color:var(--text-dim)}.chev-btn{border:1px solid var(--border);width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;place-items:center;transition:all .15s;display:grid}.chev-btn:hover{color:var(--text);border-color:var(--border-strong)}.chev-btn .icon{transition:transform .2s}.day-card.expanded .chev-btn .icon{transform:rotate(180deg)}.day-summary{flex-wrap:wrap;align-items:center;gap:8px;padding:0 22px 16px;display:flex}.asset-chip{background:var(--bg);border:1px solid var(--border);border-radius:7px;align-items:center;gap:8px;padding:5px 10px;font-family:JetBrains Mono,monospace;font-size:12px;display:inline-flex}.asset-chip .sym{color:var(--text-muted);font-size:11px}.asset-chip .price{color:var(--text);font-weight:500}.asset-chip .delta{font-size:11px}.asset-chip .delta.pos{color:var(--green)}.asset-chip .delta.neg{color:var(--red)}.day-body{border-top:1px solid var(--border);padding:0;overflow:hidden}.day-body-inner{flex-direction:column;gap:24px;padding:22px;display:flex}.sub-section h4{text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);align-items:center;gap:8px;margin:0 0 10px;font-size:11px;font-weight:500;display:flex}.sub-section h4 .count{color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:11px}.tbl{border-collapse:collapse;width:100%;font-size:12.5px}.tbl thead th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);border-bottom:1px solid var(--border);background:0 0;padding:8px 10px;font-size:10.5px;font-weight:500}.tbl tbody td{border-bottom:1px solid #ffffff0a;padding:9px 10px;font-family:JetBrains Mono,monospace}.tbl tbody tr:hover td{background:#ffffff06}.tbl tbody tr:last-child td{border-bottom:none}.tbl .num-pos{color:var(--green)}.tbl .num-neg{color:var(--red)}.tbl .muted{color:var(--text-muted);font-family:inherit}.tbl .right{text-align:right}.score-pill{letter-spacing:-.02em;border-radius:5px;padding:2px 7px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;display:inline-block}.score-pill.high{background:var(--green-soft);color:var(--green)}.score-pill.mid{background:var(--amber-soft);color:var(--amber)}.score-pill.low{background:var(--red-soft);color:var(--red)}.score-pill.none{color:var(--text-muted);background:#7d85951a}.panel-state{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:11px}.tbl-scroll{width:100%;overflow-x:auto}.trigger-list{flex-direction:column;gap:6px;display:flex}.trigger-row{background:var(--bg);border:1px solid var(--border);border-radius:8px;grid-template-columns:22px 1fr auto;align-items:center;gap:10px;padding:8px 12px;display:grid}.trigger-row .check{border-radius:5px;place-items:center;width:18px;height:18px;font-size:12px;display:grid}.trigger-row.ok .check{background:var(--green-soft);color:var(--green)}.trigger-row.no .check{background:var(--red-soft);color:var(--red)}.trigger-row .label{font-size:13px}.trigger-row .detail{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:11px}.decision-block{background:var(--bg);border:1px solid var(--border);border-radius:10px;grid-template-columns:auto 1fr;align-items:center;gap:18px;padding:16px 18px;display:grid}.decision-stamp{border:2px solid var(--text-muted);color:var(--text);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border-radius:6px;padding:14px 18px;font-family:JetBrains Mono,monospace;font-size:14px;font-weight:700;position:relative;transform:rotate(-2deg)}.decision-stamp.ok{color:var(--green);border-color:var(--green)}.decision-stamp.no{color:var(--amber);border-color:var(--amber)}.decision-stamp.bad{color:var(--red);border-color:var(--red)}.decision-stamp.flat{color:var(--text-muted);border-color:var(--text-muted)}.decision-stamp:before{content:"";opacity:.3;pointer-events:none;border:1px dashed;border-radius:8px;position:absolute;inset:-3px}.decision-reason{color:var(--text);font-size:13px;line-height:1.55}.decision-reason .label{text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim);margin-bottom:4px;font-size:10px;display:block}.lesson{background:var(--violet-soft);border:1px solid #8b7cf640;border-left:3px solid var(--violet);border-radius:8px;grid-template-columns:auto 1fr;align-items:start;gap:14px;padding:14px 18px;display:grid;position:relative}.lesson .icon{width:28px;height:28px;color:var(--violet);background:#8b7cf62e;border-radius:7px;place-items:center;display:grid}.lesson .text{color:#d6d2f5;font-size:13.5px;line-height:1.55}.lesson .text .label{text-transform:uppercase;letter-spacing:.12em;color:var(--violet);margin-bottom:4px;font-size:10px;font-weight:600;display:block}.day-admin-row{border-top:1px dashed var(--border);justify-content:flex-end;gap:8px;margin-top:-8px;padding-top:4px;display:flex}.fab{z-index:60;background:var(--green);color:#0a0d12;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:8px;padding:14px 20px;font-size:13px;font-weight:600;transition:transform .15s,box-shadow .15s;display:inline-flex;position:fixed;bottom:28px;right:28px;box-shadow:0 12px 30px #26a69a59,0 4px 12px #0000004d}.fab:hover{transform:translateY(-2px);box-shadow:0 16px 36px #26a69a73,0 6px 16px #00000059}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;background:#080a0eb3;place-items:center;padding:24px;animation:.15s ease-out fade-in;display:grid;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes expand-down{0%{opacity:0;max-height:0}to{opacity:1;max-height:4000px}}.modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;width:100%;max-width:880px;max-height:90vh;animation:.2s ease-out slide-up;display:flex;overflow:hidden;box-shadow:0 30px 80px #0009}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.modal-head h3{margin:0;font-size:16px;font-weight:600}.modal-head .sub{color:var(--text-muted);margin-top:2px;font-size:12px}.modal-tabs{border-bottom:1px solid var(--border);background:var(--bg);gap:4px;padding:0 16px;display:flex}.modal-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:12px 14px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.modal-tab:hover{color:var(--text)}.modal-tab.active{color:var(--green);border-bottom-color:var(--green)}.modal-tab .badge{background:var(--surface-2);color:var(--text-muted);border-radius:3px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:10px}.modal-tab.active .badge{background:var(--green-soft);color:var(--green)}.modal-body{flex:1;padding:22px 24px;overflow-y:auto}.modal-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 24px;display:flex}.modal-foot .hint{color:var(--text-muted);font-size:12px}.form-grid{gap:14px;display:grid}.form-grid.cols-2{grid-template-columns:1fr 1fr}.form-grid.cols-3{grid-template-columns:1fr 1fr 1fr}.field{flex-direction:column;gap:6px;display:flex}.select{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%237d8595' stroke-width='1.5' fill='none' stroke-linecap='round'/></svg>");background-position:right 12px center;background-repeat:no-repeat;border-radius:8px;padding:10px 32px 10px 12px;font-family:inherit;font-size:14px}.editable-table{background:var(--bg);border:1px solid var(--border);border-radius:8px;width:100%;overflow:hidden}.editable-table table{border-collapse:collapse;width:100%}.editable-table th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);border-bottom:1px solid var(--border);padding:8px 10px;font-size:10.5px;font-weight:500}.editable-table td{border-bottom:1px solid #ffffff0a;padding:4px 6px}.editable-table tr:last-child td{border-bottom:none}.editable-table .input-cell{width:100%;color:var(--text);background:0 0;border:1px solid #0000;border-radius:5px;outline:none;padding:6px 8px;font-family:JetBrains Mono,monospace;font-size:12.5px}.editable-table .input-cell:hover{border-color:var(--border)}.editable-table .input-cell:focus{border-color:var(--green);background:var(--surface)}.editable-table .row-del{width:26px;height:26px;color:var(--text-dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;place-items:center;display:grid}.editable-table .row-del:hover{color:var(--red);background:var(--red-soft);border-color:#ef535040}.add-row-btn{border:1px dashed var(--border);width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;margin-top:10px;padding:10px;font-size:12px;transition:all .15s}.add-row-btn:hover{border-color:var(--green);color:var(--green);background:var(--green-soft)}.checkbox{appearance:none;border:1.5px solid var(--border-strong);background:var(--bg);cursor:pointer;vertical-align:middle;border-radius:4px;width:18px;height:18px;position:relative}.checkbox:checked{background:var(--green);border-color:var(--green)}.checkbox:checked:after{content:"";border:2px solid #0a0d12;border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:1px;left:4px;transform:rotate(45deg)}.toast-stack{z-index:200;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--green);border-radius:10px;align-items:center;gap:10px;min-width:240px;padding:12px 18px;font-size:13px;animation:.2s ease-out slide-up;display:flex;box-shadow:0 10px 30px #00000080}.toast.error{border-left-color:var(--red)}.closing-summary{border:1px solid var(--border);background:linear-gradient(135deg,#f7c9480f,#26a69a0a);border-radius:12px;align-items:start;gap:14px;margin-top:28px;padding:18px 22px;display:flex}.closing-summary .icon{background:var(--amber-soft);width:34px;height:34px;color:var(--amber);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.closing-summary .text{font-size:13.5px;line-height:1.55}.closing-summary .text .label{text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin-bottom:4px;font-size:10px;display:block}.equity-curve{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:28px;padding:16px 18px}.equity-curve.empty{text-align:center;padding:28px}.equity-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:6px;display:flex}.equity-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:6px;font-size:11px}.equity-sub{color:var(--text);flex-wrap:wrap;align-items:baseline;gap:8px;font-family:JetBrains Mono,monospace;font-size:14px;display:flex}.equity-pnl{background:#ffffff0d;border-radius:999px;margin-left:6px;padding:2px 8px;font-size:12px}.equity-legend{color:var(--text-muted);flex-wrap:wrap;gap:14px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.equity-legend .legend-item{align-items:center;gap:6px;display:inline-flex}.equity-legend .dash{border-top:1px dashed var(--text-muted);width:16px;height:0;display:inline-block}.equity-legend .dash.goal{border-top-color:var(--amber)}.equity-legend .dash.zero{border-top-color:var(--border-strong)}.equity-svg{width:100%;height:140px;margin-top:10px;display:block}.filter-bar{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.filter-chip{background:var(--surface);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:12.5px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.filter-chip:hover{color:var(--text);border-color:var(--border-strong)}.filter-chip.active{background:var(--green-soft);color:var(--green);border-color:#26a69a66}.filter-chip .filter-count{text-align:center;background:#ffffff0d;border-radius:6px;min-width:18px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:11px}.filter-chip.active .filter-count{background:#26a69a2e}.empty-state{background:var(--surface);border:1px dashed var(--border);text-align:center;border-radius:12px;padding:40px 20px}.btn-outline.danger{color:var(--red);border-color:#ef535059}.btn-outline.danger:hover{background:#ef535014;border-color:#ef53508c}@media (width<=880px){.kpi-strip{grid-template-columns:repeat(2,1fr)}.header-inner{flex-wrap:wrap;gap:10px;padding:12px 16px}.header-title .year{display:none}.month-select{padding:5px 28px 5px 10px;font-size:13px}.equity-svg{height:110px}.equity-head{flex-direction:column;align-items:flex-start}.main{padding:20px 16px 100px}.day-head{grid-template-columns:1fr auto auto;padding:14px 16px}.day-head .pnl-display{grid-column:2}.day-summary{padding:0 16px 12px}.day-body-inner{padding:16px}.form-grid.cols-2,.form-grid.cols-3{grid-template-columns:1fr}.modal{max-height:95vh}.modal-tabs{overflow-x:auto}.decision-block{grid-template-columns:1fr}.decision-stamp{width:max-content;transform:rotate(0)}}
