@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1iIq129k.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1isq129k.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1iAq129k.woff2) format("woff2");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-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1iEq129k.woff2) format("woff2");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-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1i8q1w.woff2) format("woff2");unicode-range:U+0000-00FF,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-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwl1FgtIU.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwlRFgtIU.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwl9FgtIU.woff2) format("woff2");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-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwl5FgtIU.woff2) format("woff2");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-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwlBFgg.woff2) format("woff2");unicode-range:U+0000-00FF,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-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl1FgtIU.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3vAOwlRFgtIU.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl9FgtIU.woff2) format("woff2");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-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl5FgtIU.woff2) format("woff2");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-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3vAOwlBFgg.woff2) format("woff2");unicode-range:U+0000-00FF,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-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxTKYbABA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxaKYbABA.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxdKYbABA.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxRKYbABA.woff2) format("woff2");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-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxQKYbABA.woff2) format("woff2");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-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxeKYY.woff2) format("woff2");unicode-range:U+0000-00FF,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-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxTKYbABA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxaKYbABA.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxdKYbABA.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxRKYbABA.woff2) format("woff2");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-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxQKYbABA.woff2) format("woff2");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-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxeKYY.woff2) format("woff2");unicode-range:U+0000-00FF,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-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxTKYbABA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxaKYbABA.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxdKYbABA.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxRKYbABA.woff2) format("woff2");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-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxQKYbABA.woff2) format("woff2");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-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxeKYY.woff2) format("woff2");unicode-range:U+0000-00FF,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-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxTKYbABA.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxaKYbABA.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxdKYbABA.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxRKYbABA.woff2) format("woff2");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-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxQKYbABA.woff2) format("woff2");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-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexsans/v23/zYXzKVElMYYaJe8bpLHnCwDKr932-G7dytD-Dmu1syxeKYY.woff2) format("woff2");unicode-range:U+0000-00FF,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{--color-primary: #393939;--color-primary-hover: #262626;--color-secondary: #e0e0e0;--color-accent: #d4a843;--color-accent-hover: #c49a38;--color-success: #24a148;--color-warning: #f1c21b;--color-error: #da1e28;--color-info: #4589ff;--color-text: #161616;--color-text-muted: #525252;--color-text-inverse: #ffffff;--color-background: #ffffff;--color-surface: #f4f4f4;--color-surface-elevated: #ffffff;--color-border: #e0e0e0;--font-family-base: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;--font-family-heading: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;--font-family-mono: "IBM Plex Mono", "Fira Code", monospace;--font-mono: "IBM Plex Mono", "Fira Code", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: .875rem;--font-size-lg: 1rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-base: 1.5;--line-height-relaxed: 1.75;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-12: 3rem;--spacing-16: 4rem;--container-sm: 640px;--container-md: 960px;--container-lg: 1360px;--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--radius-full: 0;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 2px 6px 0 rgba(0, 0, 0, .1);--shadow-lg: 0 8px 24px 0 rgba(0, 0, 0, .12);--duration-fast: 70ms;--duration-base: .15s;--duration-slow: .24s;--ease-default: cubic-bezier(.2, 0, .38, .9);--z-dropdown: 100;--z-sticky: 200;--z-modal: 500;--z-tooltip: 700;--z-toast: 800}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-base);color:var(--color-text);background-color:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:1;padding:11px 16px;border:1px solid transparent;border-radius:0;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default),box-shadow var(--duration-fast) var(--ease-default);text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none;transform:none;box-shadow:none;letter-spacing:.16px}.btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse);border-color:transparent}.btn-primary:hover{background-color:var(--color-primary-hover)}.btn-secondary{background-color:#393939;color:var(--color-text-inverse);border-color:transparent}.btn-secondary:hover{background-color:#474747}.btn-outline{background-color:transparent;color:var(--color-text);border:1px solid var(--color-border)}.btn-outline:hover{background-color:var(--color-surface);color:var(--color-text)}.btn-outline:active:not(:disabled){background-color:var(--color-border);color:var(--color-text)}.btn-ghost{background-color:transparent;color:var(--color-text);border-color:transparent}.btn-ghost:hover{background-color:#0000000d}.btn-accent{background-color:var(--color-primary);color:var(--color-text-inverse);border-color:transparent}.btn-accent:hover{background-color:var(--color-primary-hover)}.btn-sm{font-size:var(--font-size-xs);padding:7px 12px}.btn-lg{font-size:var(--font-size-lg);padding:15px 24px}.btn:hover{transform:none;box-shadow:none}.btn:focus{outline:none;box-shadow:inset 0 0 0 1px var(--color-text),inset 0 0 0 2px var(--color-background)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn:active:not(:disabled){transform:none;box-shadow:none}h1,.h1{font-family:var(--font-family-heading);font-size:var(--font-size-3xl);font-weight:var(--font-weight-normal);line-height:1.2;color:var(--color-text);letter-spacing:0}h2,.h2{font-family:var(--font-family-heading);font-size:var(--font-size-2xl);font-weight:var(--font-weight-normal);line-height:1.3;color:var(--color-text)}h3,.h3{font-family:var(--font-family-heading);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:1.3;color:var(--color-text)}h4,.h4{font-family:var(--font-family-heading);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:1.4;color:var(--color-text)}h5,.h5{font-family:var(--font-family-heading);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:1.4;color:var(--color-text)}h6,.h6{font-family:var(--font-family-heading);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:1.4;color:var(--color-text-muted)}p{font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text)}a{color:var(--color-primary);text-decoration:none;transition:color var(--duration-fast) var(--ease-default)}a:hover{color:var(--color-primary-hover);text-decoration:underline}.input{display:block;width:100%;font-family:var(--font-family-base);font-size:var(--font-size-base);padding:10px 16px;border:none;border-bottom:1px solid #8d8d8d;border-radius:0;background-color:var(--color-surface);color:var(--color-text);transition:border-color var(--duration-fast) var(--ease-default),outline var(--duration-fast) var(--ease-default)}.input:focus{outline:2px solid var(--color-primary);outline-offset:-2px;border-bottom-color:var(--color-primary)}.input-error{border-bottom-color:var(--color-error)}.input-error:focus{outline-color:var(--color-error)}.textarea{display:block;width:100%;font-family:var(--font-family-base);font-size:var(--font-size-base);padding:10px 16px;border:none;border-bottom:1px solid #8d8d8d;border-radius:0;background-color:var(--color-surface);color:var(--color-text);min-height:100px;resize:vertical}.textarea:focus{outline:2px solid var(--color-primary);outline-offset:-2px}.select{display:block;width:100%;font-family:var(--font-family-base);font-size:var(--font-size-base);padding:10px 16px;border:none;border-bottom:1px solid #8d8d8d;border-radius:0;background-color:var(--color-surface);color:var(--color-text);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23161616' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center}.select:focus{outline:2px solid var(--color-primary);outline-offset:-2px}.checkbox,.radio{width:18px;height:18px;accent-color:var(--color-primary);cursor:pointer}.toggle{position:relative;width:48px;height:24px;background-color:#8d8d8d;border:none;border-radius:var(--radius-full);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default)}.toggle.active{background-color:var(--color-primary)}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;background-color:var(--color-background);border:none;border-radius:var(--radius-full);transition:transform var(--duration-fast) var(--ease-default)}.toggle.active:after{transform:translate(24px)}.label{display:block;font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);margin-bottom:var(--spacing-2);color:var(--color-text-muted);letter-spacing:.32px}.helper-text{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--spacing-1)}.error-text{font-size:var(--font-size-xs);color:var(--color-error);margin-top:var(--spacing-1)}.page-subtitle{font-size:var(--font-size-base);color:var(--color-text-muted);margin-top:var(--spacing-1);margin-bottom:var(--spacing-4)}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:0;overflow:hidden;transform:none;box-shadow:none}.card:hover{box-shadow:none}.card-header{padding:var(--spacing-4) var(--spacing-4);border-bottom:1px solid var(--color-border);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base)}.card-body{padding:var(--spacing-4)}.card-footer{padding:var(--spacing-4);border-top:1px solid var(--color-border)}.panel{background-color:var(--color-surface);border:none;border-radius:0;padding:var(--spacing-4)}.divider{border:none;border-top:1px solid var(--color-border);margin:var(--spacing-6) 0}.alert{padding:var(--spacing-4);border:none;border-left:3px solid;border-radius:0;font-size:var(--font-size-base);display:flex;align-items:flex-start;gap:var(--spacing-3);background-color:var(--color-surface)}.alert-success{border-left-color:var(--color-success);color:var(--color-text)}.alert-error{border-left-color:var(--color-error);color:var(--color-text)}.alert-warning{border-left-color:var(--color-warning);color:var(--color-text)}.alert-info{border-left-color:var(--color-info);color:var(--color-text)}.toast{padding:var(--spacing-4);border:none;border-left:3px solid var(--color-primary);border-radius:0;background-color:var(--color-surface);box-shadow:var(--shadow-lg);animation:toast-in var(--duration-base) var(--ease-default);cursor:pointer}@keyframes toast-in{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);border:none;border-radius:var(--radius-full);background-color:var(--color-primary);color:var(--color-text-inverse)}.badge-primary{background-color:var(--color-primary);color:var(--color-text-inverse)}.badge-accent{background-color:var(--color-accent);color:var(--color-text-inverse)}.chip{display:inline-flex;align-items:center;gap:var(--spacing-1);padding:4px 12px;font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);border:1px solid var(--color-border);border-radius:var(--radius-full);background-color:transparent;color:var(--color-text);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default)}.chip:hover{background-color:var(--color-surface)}.chip.active{background-color:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.tag{display:inline-block;padding:1px 8px;font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);border:none;border-radius:var(--radius-full);background-color:#e0e0e0;color:var(--color-text)}.tabs{display:flex;gap:0;border-bottom:2px solid var(--color-border)}.tab{padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);color:var(--color-text-muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color var(--duration-fast) var(--ease-default),border-color var(--duration-fast) var(--ease-default);margin-bottom:-2px;letter-spacing:.16px}.tab:hover{color:var(--color-text)}.tab-active{color:var(--color-text);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.breadcrumb{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--font-size-base);color:var(--color-text-muted);margin-bottom:var(--spacing-4)}.breadcrumb-item{color:var(--color-primary);text-decoration:none}.breadcrumb-item:hover{color:var(--color-primary-hover);text-decoration:underline}.breadcrumb-item:last-child{color:var(--color-text);font-weight:var(--font-weight-normal);pointer-events:none}.breadcrumb-item:last-child:hover{text-decoration:none}.breadcrumb-item+.breadcrumb-item:before{content:"/";margin-right:var(--spacing-2);color:var(--color-text-muted);text-decoration:none;display:inline-block}.pagination{display:flex;align-items:center;gap:var(--spacing-1)}.page-item{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;font-size:var(--font-size-base);font-weight:var(--font-weight-normal);border:none;border-radius:0;background:transparent;color:var(--color-text);cursor:pointer;transition:all var(--duration-fast) var(--ease-default)}.page-item:hover{background-color:var(--color-surface)}.page-item-active{background-color:var(--color-primary);color:var(--color-text-inverse)}.modal-backdrop{position:fixed;inset:0;background-color:#16161680;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;animation:fade-in var(--duration-base) var(--ease-default)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background-color:var(--color-surface);border:none;border-radius:0;width:90%;max-width:448px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:modal-in var(--duration-base) var(--ease-default);padding:0}@keyframes modal-in{0%{transform:translateY(-24px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{padding:var(--spacing-4) var(--spacing-4) var(--spacing-2);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xl);display:flex;align-items:center;justify-content:space-between}.modal-body{padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-base);color:var(--color-text-muted)}.modal-footer{padding:var(--spacing-4);display:flex;justify-content:flex-end;gap:0}.modal-footer .btn{flex:1}.modal-close{background:none;border:none;font-size:1.25rem;cursor:pointer;color:var(--color-text);padding:0;line-height:1}.drawer{position:fixed;top:0;height:100vh;width:360px;max-width:90vw;background-color:var(--color-surface);border:none;box-shadow:var(--shadow-lg);z-index:var(--z-modal);overflow-y:auto;padding:var(--spacing-6)}.drawer.drawer-left{left:0;animation:drawer-left-in var(--duration-base) var(--ease-default)}@keyframes drawer-left-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.drawer.drawer-right{right:0;animation:drawer-right-in var(--duration-base) var(--ease-default)}@keyframes drawer-right-in{0%{transform:translate(100%)}to{transform:translate(0)}}.dropdown{position:relative;display:inline-block}.dropdown-menu{position:absolute;top:100%;left:0;min-width:180px;background-color:var(--color-surface);border:none;border-radius:0;padding:0;z-index:var(--z-dropdown);box-shadow:var(--shadow-lg)}.dropdown-item{display:block;width:100%;padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-base);color:var(--color-text);background:none;border:none;text-align:left;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default)}.dropdown-item:hover{background-color:#e5e5e5}.tooltip{position:absolute;padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);color:var(--color-text-inverse);background-color:#393939;border:none;border-radius:var(--radius-sm);white-space:nowrap;z-index:var(--z-tooltip);pointer-events:none;animation:fade-in var(--duration-fast) var(--ease-default)}.popover{position:absolute;padding:var(--spacing-4);background-color:var(--color-surface);border:none;border-radius:0;box-shadow:var(--shadow-lg);z-index:var(--z-tooltip)}.table{width:100%;border-collapse:collapse;border-spacing:0;border:none;border-radius:0;overflow:hidden}.table-header{background-color:#e0e0e0;color:var(--color-text);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);text-align:left}.table-header th{padding:var(--spacing-3) var(--spacing-4);letter-spacing:.16px}.table-row{border-bottom:1px solid var(--color-border);transition:background-color var(--duration-fast) var(--ease-default)}.table-row:hover{background-color:#e5e5e5}.table-row:last-child{border-bottom:none}.table-cell{padding:var(--spacing-3) var(--spacing-4);font-size:var(--font-size-base)}.table-striped .table-row:nth-child(2n){background-color:var(--color-surface)}.list{list-style:none}.list-item{padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--color-border);transition:background-color var(--duration-fast) var(--ease-default)}.list-item:hover{background-color:#e5e5e5}.list-item:last-child{border-bottom:none}.progress{width:100%;height:4px;background-color:var(--color-border);border:none;border-radius:0;overflow:hidden}.progress-bar{height:100%;background-color:var(--color-primary);border-radius:0;transition:width var(--duration-slow) var(--ease-default)}.spinner{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,#e5e5e5 25%,#f4f4f4,#e5e5e5 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:0}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:16px;margin-bottom:var(--spacing-2)}.accordion{border:none;border-radius:0;overflow:hidden;transform:none;box-shadow:none}.accordion-item{border-top:1px solid var(--color-border)}.accordion-item:last-child{border-bottom:1px solid var(--color-border)}.accordion-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--spacing-4) var(--spacing-4);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);color:var(--color-text);background:transparent;border:none;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default)}.accordion-header:hover{background-color:#e5e5e5}.accordion-content{padding:var(--spacing-2) var(--spacing-4) var(--spacing-4);font-size:var(--font-size-base);color:var(--color-text-muted)}.avatar{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full);border:none;background-color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-inverse);overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-sm{width:28px;height:28px;font-size:var(--font-size-xs)}.avatar-lg{width:56px;height:56px;font-size:var(--font-size-lg)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.dark{--color-primary: #c6c6c6;--color-primary-hover: #e0e0e0;--color-secondary: #393939;--color-accent: #d4a843;--color-accent-hover: #c49a38;--color-text: #f4f4f4;--color-text-muted: #c6c6c6;--color-text-inverse: #161616;--color-background: #161616;--color-surface: #262626;--color-surface-elevated: #393939;--color-border: #525252;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 2px 6px 0 rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px 0 rgba(0, 0, 0, .5)}.dark .table-header{background-color:#393939;color:var(--color-text)}.dark .dropdown-item:hover,.dark .list-item:hover,.dark .table-row:hover,.dark .accordion-header:hover{background-color:#393939}.dark .skeleton{background:linear-gradient(90deg,#393939 25%,#525252,#393939 75%);background-size:200% 100%}.dark .tag{background-color:#525252}.dark .btn-secondary{background-color:#6f6f6f}.dark .btn-secondary:hover{background-color:#8d8d8d}.dark .btn-outline{color:var(--color-text);border-color:var(--color-border)}.dark .btn-outline:hover{background-color:var(--color-surface);color:var(--color-text)}@media(prefers-color-scheme:dark){:root:not(.light){--color-primary: #c6c6c6;--color-primary-hover: #e0e0e0;--color-text: #f4f4f4;--color-text-muted: #c6c6c6;--color-text-inverse: #161616;--color-background: #161616;--color-surface: #262626;--color-surface-elevated: #393939;--color-border: #525252;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 2px 6px 0 rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px 0 rgba(0, 0, 0, .5)}}@media(max-width:768px){.btn{font-size:var(--font-size-sm)}.btn-sm{font-size:var(--font-size-xs);padding:5px 10px}.btn-lg{font-size:var(--font-size-base);padding:11px 18px}.breadcrumb{margin-bottom:var(--spacing-1);font-size:var(--font-size-xs)}}.chess-page{margin:0 auto;padding:var(--spacing-6) var(--spacing-4)}.chess-page-sm{max-width:560px}.chess-page-md{max-width:720px}.chess-page-lg{max-width:900px}.chess-page-xl{max-width:960px}@media(max-width:768px){.chess-page{padding:var(--spacing-2) var(--spacing-2) 0}.chess-page-detail{padding:var(--spacing-4)}}.chess-hero-centered{text-align:center;padding:var(--spacing-8) 0 var(--spacing-4)}.chess-hero-centered h1{font-size:2.4rem;font-weight:800;margin-bottom:var(--spacing-3);letter-spacing:-1px}.chess-accent{color:var(--color-accent)}.chess-tagline{font-size:var(--font-size-base);color:var(--color-text-muted);max-width:480px;margin:0 auto;line-height:1.6}@media(max-width:768px){.chess-hero-centered{padding:var(--spacing-4) 0 var(--spacing-2)}.chess-hero-centered h1{font-size:1.75rem;margin-bottom:var(--spacing-2)}}.chess-hero-split{display:flex;gap:var(--spacing-8);align-items:center;margin:var(--spacing-6) 0 var(--spacing-8)}.chess-hero-text{flex:1}.chess-hero-title{display:flex;align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-3)}.chess-hero-title h1{font-size:2rem;font-weight:800;margin:0;letter-spacing:-.5px}.chess-hero-desc{font-size:var(--font-size-base);color:var(--color-text-muted);line-height:1.7;margin-bottom:var(--spacing-6)}.chess-hero-desc-short{display:none}.chess-hero-board{width:220px;flex-shrink:0}.chess-hero-stats{display:flex;gap:var(--spacing-6)}.chess-eco-badge{background:var(--color-accent);color:var(--color-bg, #000);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);padding:var(--spacing-1) var(--spacing-3);border-radius:0;letter-spacing:.5px}.chess-eco-badge-sm{background:var(--color-accent);color:var(--color-bg, #000);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);padding:2px var(--spacing-2);border-radius:0;letter-spacing:.5px}@media(max-width:768px){.chess-hero-split{position:relative;flex-direction:row;align-items:flex-start;gap:var(--spacing-4);margin:var(--spacing-2) 0 0;padding:var(--spacing-4);background:var(--color-surface);border:1px solid var(--color-border);text-align:left}.chess-hero-text{flex:1;min-width:0}.chess-hero-title{flex-wrap:wrap;gap:var(--spacing-2);margin-bottom:var(--spacing-2)}.chess-hero-title h1{font-size:var(--font-size-xl)}.chess-eco-badge{font-size:var(--font-size-xs);padding:1px var(--spacing-1)}.chess-hero-desc{display:none}.chess-hero-desc-short{display:block;font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.4;margin:0}.chess-hero-stats{display:none}.chess-hero-board{width:110px;flex-shrink:0}.chess-hero-board ::ng-deep .coord-on-board{display:none}}.chess-stat{display:flex;flex-direction:column}.chess-stat-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-accent)}.chess-stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px}.chess-mobile-stats{display:none}@media(max-width:768px){.chess-mobile-stats{display:flex;justify-content:space-around;padding:var(--spacing-3) 0;margin:0;border-bottom:1px solid var(--color-border)}.chess-mobile-stats .chess-stat{align-items:center;text-align:center}.chess-mobile-stats .chess-stat-value{font-size:17px;font-weight:var(--font-weight-bold)}.chess-mobile-stats .chess-stat-label{font-size:10px}}.chess-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-4)}.chess-section-desc{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:calc(-1 * var(--spacing-2)) 0 var(--spacing-4)}@media(max-width:768px){.chess-section-title{font-size:var(--font-size-lg);margin-top:var(--spacing-6);margin-bottom:var(--spacing-4)}.chess-section-desc{font-size:var(--font-size-xs);margin-bottom:var(--spacing-2)}}.chess-modes{margin-bottom:var(--spacing-8)}.chess-mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-4)}.chess-mode-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:0;padding:var(--spacing-6);transform:none;box-shadow:none;display:flex;flex-direction:column;transition:border-color .15s ease}.chess-mode-card:not(.coming-soon):hover{border-color:var(--color-accent)}.chess-mode-card.coming-soon{opacity:.55;position:relative}.chess-mode-card h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-3)}.chess-mode-card p{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.6;margin:0 0 var(--spacing-3);flex:1}.chess-mode-action{display:flex;gap:var(--spacing-2);flex-wrap:wrap;margin-top:auto}.chess-mode-action a{text-decoration:none}.chess-mode-badge{display:inline-block;background:var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);padding:var(--spacing-1) var(--spacing-3);border-radius:0;text-transform:uppercase;letter-spacing:.5px;width:fit-content}.chess-mode-progress-section{margin-top:var(--spacing-3);margin-bottom:var(--spacing-3)}.chess-mode-progress-label{font-size:11px;color:var(--color-text-muted);font-weight:var(--font-weight-semibold);margin-bottom:4px}.chess-mode-progress-bar{height:4px;background:var(--color-border);overflow:hidden}.chess-mode-progress-fill{height:100%;background:var(--color-accent);transition:width .3s ease}.chess-start-badge{position:absolute;top:var(--spacing-2);right:var(--spacing-2);font-size:10px;font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-accent);border:1px solid var(--color-accent);padding:2px 8px}@media(max-width:768px){.chess-modes{margin-bottom:var(--spacing-6)}.chess-mode-grid{grid-template-columns:1fr;gap:var(--spacing-3)}.chess-mode-card{flex-direction:row;flex-wrap:wrap;align-items:center;padding:var(--spacing-4);border-radius:0}.chess-mode-card h3{font-size:var(--font-size-base);margin:0}.chess-mode-card p{display:none}.chess-mode-action{margin-top:0;margin-left:auto;flex-shrink:0}.chess-mode-progress-section{display:inline;margin:0 0 0 var(--spacing-2);order:0;width:auto}.chess-mode-progress-label{display:inline;font-size:var(--font-size-xs);color:var(--color-text-muted)}.chess-mode-progress-bar,.chess-start-badge{display:none}.chess-mode-badge{font-size:9px;padding:2px var(--spacing-2);margin-left:auto}}.chess-subvar-section{margin-bottom:var(--spacing-8)}.chess-subvar-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-4) var(--spacing-6)}.chess-subvar-card{display:flex;align-items:center;justify-content:space-between;background:var(--color-surface);border:1px solid var(--color-border);border-radius:0;padding:var(--spacing-4) var(--spacing-6);text-decoration:none;color:var(--color-text);transition:border-color .15s ease,transform .1s ease;transform:none;box-shadow:none;min-height:72px;position:relative;overflow:visible}.chess-subvar-card.popular{border-color:var(--color-accent)}.chess-subvar-card:hover{border-color:var(--color-accent);z-index:20}.chess-subvar-card:active{transform:translate(0);box-shadow:none}.chess-subvar-name{font-weight:var(--font-weight-bold);font-size:var(--font-size-base);line-height:1.3;min-width:0}.chess-subvar-arrow{font-size:var(--font-size-lg);color:var(--color-accent);font-weight:var(--font-weight-bold);flex-shrink:0;margin-left:var(--spacing-4)}.chess-mini-board-wrapper{position:absolute;top:calc(100% + 8px);left:-2px;right:-2px;aspect-ratio:1;border-radius:0;overflow:hidden;background:var(--color-surface);z-index:10;animation:chess-boardPopIn .2s cubic-bezier(.34,1.56,.64,1);pointer-events:none}@keyframes chess-boardPopIn{0%{opacity:0;transform:scaleY(.85);transform-origin:top}to{opacity:1;transform:scaleY(1);transform-origin:top}}@media(max-width:768px){.chess-mini-board-wrapper{display:none}.chess-subvar-section{margin-bottom:var(--spacing-6)}.chess-subvar-grid{grid-template-columns:1fr 1fr;gap:var(--spacing-3)}.chess-subvar-card{min-height:auto;padding:var(--spacing-3) var(--spacing-4)}.chess-subvar-name{font-size:var(--font-size-sm)}.chess-subvar-arrow{font-size:var(--font-size-sm);margin-left:var(--spacing-1)}}.chess-tree-link-row{margin-top:var(--spacing-4)}.chess-tree-link{display:inline-flex;align-items:center;gap:var(--spacing-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text);text-decoration:none;padding:var(--spacing-2) var(--spacing-4);border:1px solid var(--color-border);background:var(--color-surface);transition:border-color .15s ease}.chess-tree-link:hover{border-color:var(--color-accent)}.chess-tree-link-arrow{color:var(--color-accent);transition:transform .15s ease}.chess-tree-link:hover .chess-tree-link-arrow{transform:translate(2px)}@media(max-width:768px){.chess-tree-link-row{margin-top:var(--spacing-3)}.chess-tree-link{white-space:nowrap;font-size:var(--font-size-xs);padding:var(--spacing-2) var(--spacing-3)}}.chess-trainer{position:relative}.chess-board-col{max-width:min(calc(100vh - 120px),calc(100% - 320px));min-width:0;display:flex;gap:var(--spacing-2)}.chess-board-col app-puzzle-board{flex:1;min-width:0}.chess-sidebar{position:absolute;top:0;right:0;bottom:0;width:300px;display:flex;flex-direction:column;gap:var(--spacing-2);overflow:hidden}.chess-sidebar-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:0;padding:var(--spacing-4);transform:none;box-shadow:none}.chess-sidebar-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-accent);letter-spacing:.5px;text-transform:uppercase;text-align:center}.chess-sidebar-rating{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-muted);letter-spacing:.5px;text-transform:uppercase;text-align:center}@media(max-width:768px){.chess-trainer{display:flex;flex-direction:column;gap:0;padding-top:4px}.chess-board-col{max-width:100%;width:100%}.chess-sidebar{position:static;width:100%;height:auto;overflow:visible;gap:0}}.chess-puzzle-layout{display:flex;gap:var(--spacing-4);align-items:flex-start}.chess-sidebar-sticky{width:320px;flex-shrink:0;position:sticky;top:var(--spacing-4);display:flex;flex-direction:column;gap:var(--spacing-4)}@media(max-width:768px){.chess-puzzle-layout{flex-direction:column;gap:0}.chess-sidebar-sticky{position:static;width:100%;gap:0}}@keyframes chess-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.chess-skeleton{display:block;background:linear-gradient(90deg,var(--color-surface) 25%,var(--color-border) 50%,var(--color-surface) 75%);background-size:800px 100%;animation:chess-shimmer 1.5s ease-in-out infinite;border-radius:2px}.chess-skel-badge{width:42px;height:28px;flex-shrink:0}.chess-skel-eco{width:36px;height:22px;flex-shrink:0}.chess-skel-title{width:220px;height:32px}.chess-skel-line{height:16px;margin-bottom:var(--spacing-2)}.chess-skel-stat-value{width:32px;height:24px;margin-bottom:4px}.chess-skel-stat-label{width:64px;height:12px}.chess-skel-button{width:160px;height:38px}.chess-skel-board{width:100%;aspect-ratio:1}.chess-skel-section-title{width:150px;height:22px;margin-bottom:var(--spacing-4)}.chess-skel-mode-card{height:160px}.chess-skel-tier-label{width:80px;height:16px;margin:var(--spacing-4) 0 var(--spacing-3)}.chess-skel-var-card{height:72px}.chess-skel-name{width:140px;height:22px}.chess-skel-desc-line{height:14px;margin-bottom:var(--spacing-2)}.chess-skel-btn{width:120px;height:34px}.chess-skel-tree-header{width:80px;height:14px}.chess-skel-move{width:38px;height:22px}.chess-skel-branch{width:100%;height:32px}.chess-error-state{text-align:center;padding:var(--spacing-16) 0}.chess-ctrl-btn{display:flex;align-items:center;justify-content:center;flex:1;height:44px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;font-size:var(--font-size-lg);transition:border-color .15s ease,background .15s ease}.chess-ctrl-btn:hover:not(:disabled){border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 8%,var(--color-surface))}.chess-ctrl-btn:disabled{opacity:.3;cursor:default}.chess-controls{display:flex;gap:var(--spacing-2);justify-content:center}.chess-engine-card{border:1px solid var(--color-border);background:var(--color-surface);overflow:hidden}.chess-engine-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-2) var(--spacing-3);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.chess-engine-header:hover{background:color-mix(in srgb,var(--color-accent) 6%,var(--color-surface))}.chess-engine-chevron{font-size:var(--font-size-xs);color:var(--color-text-muted);transition:transform .2s ease}.chess-engine-chevron.open{transform:rotate(180deg)}.chess-engine-line{padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-xs);color:var(--color-text-muted);font-family:var(--font-mono, monospace);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chess-engine-depth{font-size:10px;color:var(--color-text-muted);padding:0 var(--spacing-3) var(--spacing-2)}.chess-mobile-eval{display:none}@media(max-width:768px){.chess-mobile-eval{display:block;font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center;padding:var(--spacing-1) 0}}.chess-turn-indicator{text-align:center;padding:var(--spacing-3);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-text-muted);border:1px solid var(--color-border);background:var(--color-surface)}.chess-turn-indicator.your-turn{border-color:var(--color-accent);color:var(--color-accent)}.chess-turn-indicator.complete-turn{border-color:var(--color-success, #16a34a);color:var(--color-success, #16a34a)}.chess-turn-indicator.wrong-turn{border-color:var(--color-error, #c0392b);color:var(--color-error, #c0392b)}.chess-board-panel{padding:var(--spacing-2) var(--spacing-3);background:var(--color-surface);border:1px solid var(--color-border);display:flex;align-items:center;gap:var(--spacing-2)}.chess-board-eco{background:var(--color-accent);color:var(--color-bg, #000);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);padding:1px var(--spacing-2);letter-spacing:.5px;flex-shrink:0}.chess-board-variation-name{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chess-piece-palette{display:flex;gap:var(--spacing-2);flex-wrap:wrap;padding:var(--spacing-2) 0}.chess-palette-piece{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;font-size:1.2rem;transition:border-color .15s ease,background .15s ease}.chess-palette-piece:hover{border-color:var(--color-accent)}.chess-palette-piece.selected{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 12%,var(--color-surface))}.chess-fen-input{width:100%;padding:var(--spacing-2) var(--spacing-3);font-family:var(--font-mono, monospace);font-size:var(--font-size-xs);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);outline:none;transition:border-color .15s ease}.chess-fen-input:focus{border-color:var(--color-accent)}.chess-bookmark-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;flex-shrink:0;transition:border-color .15s ease,color .15s ease}.chess-bookmark-toggle:hover{border-color:var(--color-accent);color:var(--color-accent)}@media(max-width:768px){.chess-bookmark-toggle{position:absolute;bottom:var(--spacing-4);right:var(--spacing-4);width:32px;height:32px}}.chess-admin-page{min-height:100vh;background:var(--color-bg);position:relative}.chess-admin-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:0 var(--spacing-6)}.chess-admin-header-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:56px}.chess-admin-header-left{display:flex;align-items:center;gap:var(--spacing-3)}.chess-admin-header-right{display:flex;align-items:center;gap:var(--spacing-4)}.chess-back-link{display:flex;align-items:center;color:var(--color-text-muted);transition:color .15s}.chess-back-link:hover{color:var(--color-text)}.chess-admin-logo{display:flex;align-items:center;gap:var(--spacing-2);font-size:1.25rem;font-weight:var(--font-weight-bold);color:var(--color-text);text-decoration:none}.chess-admin-logo .accent{color:var(--color-accent)}.chess-admin-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);background:var(--color-accent);color:#fff;padding:2px 8px;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px}.chess-admin-user{font-size:var(--font-size-sm);color:var(--color-text-muted)}.chess-admin-main{max-width:1200px;margin:0 auto;padding:var(--spacing-8) var(--spacing-6)}.chess-logout-btn{font-size:var(--font-size-sm);color:var(--color-text-muted);background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:6px 14px;cursor:pointer;transition:all .15s ease;font-family:inherit}.chess-logout-btn:hover{background:var(--color-border);color:var(--color-text)}.chess-content-layout{display:grid;grid-template-columns:320px 1fr;gap:var(--spacing-6);align-items:start}@media(max-width:900px){.chess-content-layout{grid-template-columns:1fr}}.chess-diff-badge{font-size:10px;font-weight:var(--font-weight-bold);padding:2px 8px;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.3px}.chess-diff-badge[data-diff=beginner]{background:#28a7451f;color:#28a745}.chess-diff-badge[data-diff=intermediate]{background:#c9a1441f;color:var(--color-accent)}.chess-diff-badge[data-diff=advanced]{background:#dc35451f;color:#dc3545}.chess-diff-badge[data-diff=checkmate]{background:#6c757d1f;color:#6c757d}.chess-diff-badge.large{font-size:var(--font-size-xs);padding:4px 12px}*,*:before,*:after{touch-action:manipulation}
