@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/fonts/archivo-vietnamese.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:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/fonts/archivo-latin-ext.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/fonts/archivo-latin.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:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-italic-latin-ext.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-italic-latin.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:JetBrains Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/jetbrains-mono-cyrillic-ext.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:JetBrains Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/jetbrains-mono-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/jetbrains-mono-greek.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:JetBrains Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/jetbrains-mono-vietnamese.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:JetBrains Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/jetbrains-mono-latin-ext.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/jetbrains-mono-latin.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{--ink-950: #07070E;--ink-900: #0B0B14;--ink-850: #10101B;--ink-800: #16161F;--ink-700: #1E1E2B;--ink-600: #2A2A3A;--green-50: #EDFBF3;--green-100: #D4F6E2;--green-200: #A6EEC6;--green-300: #6FF0AE;--green-400: #45D88A;--green-500: #2ECC71;--green-600: #1F9A5B;--green-700: #17734A;--green-800: #105A34;--green-900: #0E3B24;--green-950: #10251A;--green-300-rgb: 111, 240, 174;--green-500-rgb: 46, 204, 113;--green-600-rgb: 31, 154, 91;--green-950-rgb: 16, 37, 26;--teal-500: #1FB5A0;--green-backdrop-1: #2FBF74;--green-backdrop-2: #9FE8C0;--brand-gradient: linear-gradient(90deg, var(--green-500) 0%, var(--green-300) 50%, var(--teal-500) 100%);--brand-on: #04170C;--brand-shadow: 0 8px 22px -8px rgba(var(--green-500-rgb), .55);--prism-emerald: var(--green-500);--prism-cyan: #4CC9F0;--prism-violet: #9D7BFF;--prism-rose: #FF6FB5;--prism-amber: #FFC24B;--paper-50: #FBFBFD;--paper-100: #F4F4F8;--paper-200: #E9E9F0;--paper-300: #D8D8E4;--dur-instant: .12s;--dur-fast: .2s;--dur-base: .32s;--dur-slow: .56s;--dur-ambient: 12s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--radius-pill: 999px;--font-display: var(--font-ui);--font-body: var(--font-ui);--font-brand: var(--font-ui);--font-mono: "JetBrains Mono", ui-monospace, monospace;--font-ui: "Archivo", system-ui, sans-serif;--radius-card: 24px;--radius-inset: 14px}:root,[data-theme=dark]{--color-primary: var(--prism-emerald);--color-primary-light: rgba(var(--green-500-rgb), .16);--color-success: var(--prism-emerald);--color-warning: var(--prism-amber);--color-danger: #FF5D6C;--color-danger-rgb: 255, 93, 108;--color-bg-base: #000000;--color-bg-secondary: #0A0A0A;--color-bg-elevated: #121212;--color-bg-input: rgba(255, 255, 255, .06);--color-bg-header: rgba(0, 0, 0, .82);--color-bg-card: #121212;--color-bg-dropdown: #181818;--color-bg-hover: rgba(255, 255, 255, .06);--color-text-primary: #F2F2F2;--color-text-secondary: #A6A6A6;--color-text-tertiary: #858585;--color-border: rgba(255, 255, 255, .11);--color-border-light: rgba(255, 255, 255, .08);--color-shadow: rgba(0, 0, 0, .5);--color-btn-primary-text: var(--accent-on);--color-bg-overlay: linear-gradient(to bottom, rgba(0, 0, 0, .86), transparent);--surface: var(--color-bg-card);--surface-inset: #1A1A1A;--shadow-card: none;--accent-gradient: var(--brand-gradient);--accent-on: var(--brand-on);--code-bg: #050505;--code-text: #E6E6E6;--gradient-title: linear-gradient(102deg, #FFFFFF 0%, var(--prism-cyan) 46%, var(--prism-violet) 100%);--gradient-brand: linear-gradient(120deg, var(--prism-emerald), var(--prism-cyan));--gradient-spectrum: linear-gradient(96deg, var(--prism-emerald) 0%, var(--prism-cyan) 34%, var(--prism-violet) 68%, var(--prism-rose) 100%);--accent-warm: var(--green-500);--accent-warm-rgb: var(--green-500-rgb);--accent-warm-strong: var(--green-400);--accent-warm-soft: rgba(var(--green-500-rgb), .12);--banner-gradient: radial-gradient(circle at 15% 20%, rgba(255, 255, 255, .06), transparent 45%), linear-gradient(135deg, #1C1C1C 0%, #111111 55%, #0A0A0A 100%);--sheen-top: linear-gradient(180deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, 0) 42%);--glass-bg: rgba(22, 22, 22, .34);--glass-filter: blur(10px) saturate(180%) brightness(1.05);--glass-edge: linear-gradient(135deg, rgba(255, 255, 255, .42), rgba(255, 255, 255, .06) 38%, rgba(255, 255, 255, .02) 62%, rgba(255, 255, 255, .24));--glass-inner: inset 0 1px 0 rgba(255, 255, 255, .14), inset 0 -10px 24px -18px rgba(255, 255, 255, .18);--glass-shadow: 0 10px 30px -12px rgba(0, 0, 0, .6);--glass-chip: rgba(255, 255, 255, .06);--glass-solid: rgba(22, 22, 22, .94);--elev-1: 0 1px 2px rgba(0, 0, 0, .4);--elev-2: 0 4px 16px rgba(0, 0, 0, .45), 0 0 0 1px rgba(255, 255, 255, .04);--elev-3: 0 12px 40px rgba(0, 0, 0, .55), 0 0 40px -12px rgba(77, 201, 240, .18);--elev-4: 0 28px 80px rgba(0, 0, 0, .65), 0 0 72px -20px rgba(157, 123, 255, .24);--glow-primary: 0 0 0 1px rgba(var(--green-500-rgb), .32), 0 8px 28px -6px rgba(var(--green-500-rgb), .42);color-scheme:dark}[data-theme=light]{--color-primary: var(--green-600);--color-primary-light: rgba(var(--green-500-rgb), .12);--color-success: var(--green-600);--color-warning: #B26A00;--color-danger: #D93544;--color-danger-rgb: 217, 53, 68;--color-bg-base: #F2F6F3;--color-bg-secondary: #FFFFFF;--color-bg-elevated: #FFFFFF;--color-bg-input: #F5F8F6;--color-bg-header: rgba(242, 246, 243, .85);--color-bg-card: #FFFFFF;--color-bg-dropdown: #FFFFFF;--color-bg-hover: rgba(var(--green-950-rgb), .05);--color-text-primary: var(--green-950);--color-text-secondary: #4B6357;--color-text-tertiary: #5F7368;--color-border: rgba(var(--green-950-rgb), .12);--color-border-light: rgba(var(--green-950-rgb), .08);--color-shadow: rgba(var(--green-950-rgb), .1);--color-btn-primary-text: var(--accent-on);--color-bg-overlay: linear-gradient(to bottom, rgba(242, 246, 243, .9), transparent);--surface: var(--color-bg-card);--surface-inset: #F5F8F6;--shadow-card: 0 1px 2px rgba(var(--green-950-rgb), .04), 0 8px 24px rgba(var(--green-950-rgb), .06);--accent-gradient: var(--brand-gradient);--accent-on: var(--brand-on);--code-bg: var(--green-950);--code-text: var(--green-100);--gradient-title: linear-gradient(102deg, #0D0D18 0%, #0E7C9B 48%, #6B3FD4 100%);--gradient-brand: linear-gradient(120deg, var(--green-600), #0E7C9B);--gradient-spectrum: linear-gradient(96deg, var(--green-600) 0%, #0E7C9B 34%, #6B3FD4 68%, #C13C82 100%);--accent-warm: var(--green-600);--accent-warm-rgb: var(--green-600-rgb);--accent-warm-strong: var(--green-700);--accent-warm-soft: rgba(var(--green-600-rgb), .1);--banner-gradient: radial-gradient(circle at 15% 20%, rgba(var(--green-500-rgb), .3), transparent 45%), radial-gradient(circle at 85% 0%, rgba(var(--green-300-rgb), .18), transparent 40%), linear-gradient(135deg, var(--green-800) 0%, var(--green-900) 55%, var(--green-950) 100%);--sheen-top: linear-gradient(180deg, rgba(255, 255, 255, .9), rgba(255, 255, 255, 0) 42%);--glass-bg: rgba(255, 255, 255, .38);--glass-filter: blur(10px) saturate(180%);--glass-edge: linear-gradient(135deg, rgba(255, 255, 255, .95), rgba(255, 255, 255, .35) 38%, rgba(255, 255, 255, .2) 62%, rgba(255, 255, 255, .85));--glass-inner: inset 0 1px 0 rgba(255, 255, 255, .9), inset 0 -10px 24px -18px rgba(255, 255, 255, .7);--glass-shadow: 0 10px 30px -14px rgba(var(--green-950-rgb), .22), 0 1px 2px rgba(var(--green-950-rgb), .05);--glass-chip: rgba(255, 255, 255, .5);--glass-solid: rgba(255, 255, 255, .96);--elev-1: 0 1px 2px rgba(20, 20, 43, .06);--elev-2: 0 4px 14px rgba(20, 20, 43, .08);--elev-3: 0 12px 32px rgba(20, 20, 43, .12);--elev-4: 0 28px 64px rgba(20, 20, 43, .16);--glow-primary: 0 0 0 1px rgba(var(--green-600-rgb), .28), 0 8px 24px -6px rgba(var(--green-600-rgb), .35);color-scheme:light}:root,[data-theme=dark],[data-theme=light]{--color-bg-light: var(--color-bg-base);--color-bg-dark: var(--color-bg-base);--color-bg-dark-secondary: var(--color-bg-secondary);--color-bg-dark-tertiary: var(--color-bg-elevated);--color-text-dark-primary: var(--color-text-primary);--color-text-dark-secondary: var(--color-text-secondary);--color-border-dark: var(--color-border)}@media(prefers-reduced-motion:reduce){:root{--dur-instant: 0ms;--dur-fast: 0ms;--dur-base: 0ms;--dur-slow: 0ms;--dur-ambient: 0ms}}*{box-sizing:border-box;margin:0;padding:0}html,body{overflow-x:clip;width:100%}html{overflow-y:auto;scrollbar-gutter:stable}body{font-family:var(--font-display);background-color:var(--color-bg-base);color:var(--color-text-primary);transition:background-color .2s,color .2s}a{text-decoration:none;color:inherit}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUpFade{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseFade{0%,to{opacity:1}50%{opacity:.6}}@keyframes scaleBounce{0%{transform:scale(.95)}50%{transform:scale(1.02)}to{transform:scale(1)}}.animate-fade-in{animation:fadeInDown .6s cubic-bezier(.16,1,.3,1) forwards}.global-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.2);border-radius:50%;border-top-color:var(--color-primary);animation:spin 1s infinite linear}.notification-badge{position:absolute;top:-6px;right:-10px;background-color:#ef4444;color:#fff;font-size:.7rem;font-weight:700;padding:1px 5px;border-radius:var(--radius-pill);border:2px solid var(--color-bg-base);display:flex;align-items:center;justify-content:center;min-width:20px;height:20px;z-index:2;box-shadow:0 2px 4px #0003;line-height:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.spinner{box-sizing:border-box;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .9s linear infinite}.spinner-sm{width:16px;height:16px;border-width:2px}.spinner-md{width:32px;height:32px}.spinner-lg{width:48px;height:48px;border-width:4px}.spinner-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg-base)}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.modal-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000080;animation:modal-fade var(--dur-fast) ease-out}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;max-width:500px;max-height:calc(100dvh - 48px);overflow:hidden;border:1px solid var(--color-border-light);border-radius:var(--radius-card);background:var(--surface);box-shadow:0 24px 64px #00000047;color:var(--color-text-primary);font-family:var(--font-ui);animation:modal-rise var(--dur-base) var(--ease-out)}.modal-content:focus{outline:none}.modal-content.modal-sm{max-width:440px}.modal-content.modal-post{max-width:620px}.modal-content.modal-document{max-width:1100px}.modal-header{display:flex;flex:none;align-items:flex-start;justify-content:space-between;gap:12px;padding-block:18px 4px;padding-inline:22px 16px}.modal-header--bare{position:absolute;top:0;inset-inline-end:0;z-index:1;padding:14px}.modal-heading{min-width:0;padding-top:6px}.modal-title{margin:0;color:var(--color-text-primary);font:700 18px/1.3 var(--font-ui)}.modal-description{margin:4px 0 0;color:var(--color-text-secondary);font-size:14px;line-height:1.5}.modal-close-btn{display:grid;flex:none;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.modal-close-btn svg{width:20px;height:20px}.modal-close-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.modal-close-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.modal-body{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;padding:0;overflow-y:auto;overscroll-behavior:contain}.modal-footer{display:flex;flex:none;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;padding:14px 22px 18px;border-top:1px solid var(--color-border-light)}.modal-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px}.modal-actions .btn,.modal-footer .btn{width:auto}@keyframes modal-fade{0%{opacity:0}}@keyframes modal-rise{0%{opacity:0;transform:translateY(12px)}}@media(max-width:599.98px){.modal-overlay{align-items:flex-end;padding:0}.modal-content,.modal-content.modal-sm,.modal-content.modal-post,.modal-content.modal-document{max-width:100%;max-height:92dvh;border-width:1px 0 0;border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}.modal-header{padding-block:16px 2px;padding-inline:16px 10px}.modal-header--bare{padding:10px}.modal-footer{padding:12px 16px 16px}@keyframes modal-rise{0%{transform:translateY(40px);opacity:0}}}@media(prefers-reduced-motion:reduce){.modal-overlay,.modal-content{animation:none}}.btn__loading{display:flex;align-items:center;justify-content:center;gap:.5rem}.btn__spinner{flex-shrink:0;width:1.1rem;height:1.1rem;animation:spin .8s linear infinite}.btn:where(:not(.auth-page *)){display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;padding:0 20px;border:1px solid transparent;border-radius:var(--radius-pill);background:transparent;color:var(--color-text-primary);font:700 15px/1.2 var(--font-ui);text-align:center;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast),border-color var(--dur-fast),color var(--dur-fast),box-shadow var(--dur-fast),opacity var(--dur-fast)}.btn:where(:not(.auth-page *)) svg{flex:none;width:18px;height:18px}.btn:where(:not(.auth-page *)):focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:where(:not(.auth-page *)):disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-sm:where(:not(.auth-page *)){min-height:36px;padding:0 14px;font-size:14px}.btn-md:where(:not(.auth-page *)){min-height:44px;padding:0 20px;font-size:15px}.btn-lg:where(:not(.auth-page *)){min-height:48px;padding:0 24px;font-size:16px}.btn-sm:where(:not(.auth-page *)) svg{width:16px;height:16px}.btn-primary:where(:not(.auth-page *)){background:var(--accent-gradient);color:var(--accent-on);box-shadow:var(--brand-shadow)}.btn-primary:where(:not(.auth-page *)):hover:not(:disabled){box-shadow:0 10px 24px -8px rgba(var(--green-500-rgb),.7);filter:brightness(1.06)}.btn-secondary:where(:not(.auth-page *)){border-color:var(--color-border);background:transparent;color:var(--color-text-primary)}.btn-secondary:where(:not(.auth-page *)):hover:not(:disabled){background:var(--color-bg-hover)}.btn-outline:where(:not(.auth-page *)){border-color:var(--color-border);background:transparent;color:var(--color-text-primary)}.btn-outline:where(:not(.auth-page *)):hover:not(:disabled){border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary)}.btn-ghost:where(:not(.auth-page *)){background:transparent;color:var(--color-text-secondary)}.btn-ghost:where(:not(.auth-page *)):hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary)}.btn-danger:where(:not(.auth-page *)){background:var(--color-danger);color:#fff}.btn-danger:where(:not(.auth-page *)):hover:not(:disabled){background:color-mix(in srgb,var(--color-danger) 88%,#000)}.btn-danger:where(:not(.auth-page *)):focus-visible{outline-color:var(--color-danger)}.btn-google:where(:not(.auth-page *)),.btn-apple:where(:not(.auth-page *)){border-color:var(--color-border);background:var(--surface);color:var(--color-text-primary)}.btn-google:where(:not(.auth-page *)):hover:not(:disabled),.btn-apple:where(:not(.auth-page *)):hover:not(:disabled){background:var(--color-bg-hover)}@media(prefers-reduced-motion:reduce){.btn:where(:not(.auth-page *)){transition:none}}:where(.auth-page) .btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:700;border-radius:14px;cursor:pointer;border:none;font-family:var(--font-ui);letter-spacing:.01em;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1),opacity .2s;width:100%;position:relative;overflow:hidden}:where(.auth-page) .btn:disabled{opacity:.45;cursor:not-allowed}:where(.auth-page) .btn:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.18) 50%,transparent 70%);opacity:0;transition:opacity .3s}:where(.auth-page) .btn:hover:not(:disabled):after{opacity:1}:where(.auth-page) .btn-sm{padding:.45rem 1rem;font-size:.82rem;border-radius:10px}:where(.auth-page) .btn-md{padding:.85rem 1.25rem;font-size:.95rem}:where(.auth-page) .btn-lg{padding:1rem 1.5rem;font-size:1.05rem}:where(.auth-page) .btn-primary{background:var(--gradient-brand);background-size:200% 200%;color:var(--color-btn-primary-text);font-weight:800;font-size:.95rem;letter-spacing:.03em;border-radius:14px;box-shadow:0 0 0 1px var(--color-primary-light),0 4px 20px var(--color-primary-light);transition:all var(--dur-fast) var(--ease-out)}:where(.auth-page) .btn-primary:hover:not(:disabled){background-position:right center;box-shadow:0 0 0 1px var(--color-primary),0 8px 30px var(--color-primary-light),0 2px 8px #0003;transform:translateY(-2px)}:where(.auth-page) .btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 0 0 1px var(--color-primary-light),0 2px 10px var(--color-primary-light)}:where(.auth-page) .btn-secondary{background:var(--color-bg-input);color:var(--color-text-secondary);border:1px solid var(--color-border)}:where(.auth-page) .btn-secondary:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-border-light);color:var(--color-text-primary);transform:translateY(-1px)}:where(.auth-page) .btn-outline{background:transparent;border:1.5px solid var(--color-primary);color:var(--color-primary)}:where(.auth-page) .btn-outline:hover:not(:disabled){background:var(--color-primary-light);border-color:var(--color-primary);box-shadow:0 0 16px var(--color-primary-light);transform:translateY(-1px)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.auth-gate{display:flex;flex-direction:column;gap:18px;padding:10px 22px 18px}.auth-gate-row{display:flex;align-items:flex-start;gap:14px}.auth-gate-icon{display:grid;flex:none;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--color-primary-light);color:var(--color-primary)}.auth-gate-icon svg{width:20px;height:20px}.auth-gate-message{margin:0;padding-top:9px;color:var(--color-text-secondary);font-size:15px;line-height:1.55}.auth-gate-actions{display:flex;gap:10px}.auth-gate-actions .btn{flex:1 1 0}.auth-gate-dismiss{align-self:center;min-height:40px;padding:0 14px;border:0;border-radius:var(--radius-pill);background:none;color:var(--color-text-secondary);font:600 14px/1 var(--font-ui);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.auth-gate-dismiss:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.auth-gate-dismiss:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media(max-width:599.98px){.auth-gate{padding:8px 16px 12px}}.ban-modal__icon{inline-size:32px;block-size:32px;color:var(--color-danger)}.maintenance-banner{display:flex;align-items:center;justify-content:center;gap:10px;padding:8px 16px;border-bottom:1px solid color-mix(in srgb,var(--color-warning) 30%,transparent);background:color-mix(in srgb,var(--color-warning) 12%,var(--color-bg-base));color:var(--color-text-primary);font-family:var(--font-ui)}.maintenance-banner__icon{display:grid;flex:none;place-items:center;width:28px;height:28px;border-radius:8px;background:color-mix(in srgb,var(--color-warning) 18%,transparent);color:var(--color-warning)}.maintenance-banner__icon svg{width:16px;height:16px}.maintenance-banner__text{font-size:14px;font-weight:600;line-height:1.4;text-align:center}@media(max-width:599.98px){.maintenance-banner{justify-content:flex-start;padding:8px 12px}.maintenance-banner__text{font-size:13px;text-align:start}}.toast-wrapper{position:fixed;top:84px;left:50%;z-index:11000;width:max-content;max-width:min(480px,calc(100vw - 32px));opacity:0;transform:translate(-50%,-12px);transition:opacity var(--dur-fast) ease-out,transform var(--dur-base) var(--ease-out);pointer-events:none}.toast-wrapper.visible{opacity:1;transform:translate(-50%);pointer-events:auto}.toast-container{display:flex;align-items:center;gap:12px;min-width:300px;padding-block:10px;padding-inline:12px 8px;border:1px solid var(--color-border-light);border-radius:16px;background:var(--color-bg-dropdown);box-shadow:0 18px 44px var(--color-shadow);color:var(--color-text-primary);font-family:var(--font-ui)}.toast-icon{display:grid;flex:none;place-items:center;width:34px;height:34px;border-radius:10px}.toast-icon svg{width:20px;height:20px}.toast-icon.success{background:var(--color-primary-light);color:var(--color-primary)}.toast-icon.error{background:color-mix(in srgb,var(--color-danger) 12%,transparent);color:var(--color-danger)}.toast-icon.warning{background:color-mix(in srgb,var(--color-warning) 14%,transparent);color:var(--color-warning)}.toast-icon.info{background:var(--color-bg-hover);color:var(--color-text-secondary)}.toast-message{flex:1;min-width:0;color:var(--color-text-primary);font-size:14.5px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}.toast-close{display:grid;flex:none;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--color-text-tertiary);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.toast-close svg{width:18px;height:18px}.toast-close:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.toast-close:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}@media(max-width:599.98px){.toast-wrapper{top:72px;width:calc(100vw - 32px)}.toast-container{min-width:0}}@media(prefers-reduced-motion:reduce){.toast-wrapper{transition:none}}
