@charset "UTF-8";.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%;z-index:1000}.cdk-overlay-backdrop{position:absolute;inset:0;pointer-events:auto;-webkit-tap-highlight-color:transparent;opacity:0;touch-action:manipulation;z-index:1000;transition:opacity .4s cubic-bezier(.25,.8,.25,1)}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors:active){.cdk-overlay-backdrop-showing{opacity:.6}}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px;z-index:1000}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}.cdk-overlay-popover{background:none;border:none;padding:0;outline:0;overflow:visible;position:fixed;pointer-events:none;white-space:normal;color:inherit;text-decoration:none;width:100%;height:100%;inset:0 auto auto 0}.cdk-overlay-popover::backdrop{display:none}.cdk-overlay-popover .cdk-overlay-backdrop{position:fixed;z-index:auto}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/inter-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/inter-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 700;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 700;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{--bg-primary: #09090b;--bg-surface: #121216;--bg-card: rgba(255, 255, 255, .025);--bg-card-hover: rgba(255, 255, 255, .045);--bg-overlay: rgba(0, 0, 0, .75);--bg-terminal: #0c0c0f;--bg-code: #111115;--bg-deep: #09090b;--bg-window: #0e0e12;--bg-window-header: #141418;--container-max-width: 980px;--dialog-width-project: min(44rem, calc(100vw - 2rem) )}@media(min-width:1920px){:root{--container-max-width: 1200px}}@media(min-width:2560px){:root{--container-max-width: 1440px}}@media(min-width:3400px){:root{--container-max-width: 1720px}}:root{--border-subtle: rgba(255, 255, 255, .07);--border-card: rgba(255, 255, 255, .08);--border-hover: rgba(255, 255, 255, .16);--white-2: rgba(255, 255, 255, .02);--white-3: rgba(255, 255, 255, .03);--white-4: rgba(255, 255, 255, .04);--white-5: rgba(255, 255, 255, .05);--white-6: rgba(255, 255, 255, .06);--white-8: rgba(255, 255, 255, .08);--white-10: rgba(255, 255, 255, .1);--white-12: rgba(255, 255, 255, .12);--white-14: rgba(255, 255, 255, .14);--white-20: rgba(255, 255, 255, .2);--accent: #e4003a;--accent-light: #f43f5e;--accent-pale: #fda4af;--accent-rgb: 228, 0, 58;--color-green: #22c55e;--color-green-glow: rgba(34, 197, 94, .4);--text-white: #ffffff;--text-main: #f4f4f5;--text-muted: #a1a1aa;--text-dim: #71717a;--text-terminal: #d4d4d8;--code-keyword: #f43f5e;--code-ident: #38bdf8;--code-prop: #94a3b8;--code-string: #a7f3d0;--shadow-modal: 0 24px 48px -12px rgba(0, 0, 0, .75), 0 0 0 1px rgba(255, 255, 255, .08);--shadow-card: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .2);--scrollbar-thumb: rgba(255, 255, 255, .12);--scrollbar-thumb-hover: rgba(255, 255, 255, .25);--transition-fast: .15s ease;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) transparent}::-webkit-scrollbar,*::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track,*::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb,*::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:9999px}::-webkit-scrollbar-thumb:hover,*::-webkit-scrollbar-thumb:hover{background:#ffffff52}::-webkit-scrollbar-corner,*::-webkit-scrollbar-corner{background:transparent}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}ul,ol{list-style:none;margin:0;padding:0}html{scroll-behavior:smooth;color-scheme:dark;scrollbar-gutter:stable;interpolate-size:allow-keywords}@media(min-width:1920px){html{font-size:17px}}@media(min-width:2560px){html{font-size:18px}}@media(min-width:3400px){html{font-size:20px}}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-main);min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code,kbd,samp,pre{font-family:var(--font-mono)}button,a{color:inherit;-webkit-tap-highlight-color:transparent}button *,a *{pointer-events:none}button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}button{font-family:var(--font-sans);font-size:inherit;line-height:inherit;background-color:transparent;border:none;cursor:pointer;-webkit-user-select:none;user-select:none}a{text-decoration:none}svg.lucide,svg[class*=lucide-]{pointer-events:none}svg.lucide,svg[class*=lucide-],.app-icon{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;flex-shrink:0;line-height:0}.container{max-width:var(--container-max-width);margin:0 auto;padding:0 1.5rem}@media(min-width:2560px){.container{padding:0 3rem}}@media(min-width:3400px){.container{padding:0 4.5rem}}section{padding:clamp(3rem,5vw,6rem) 0}section[id],footer[id]{scroll-margin-top:4.75rem}@media(min-width:2560px){section[id],footer[id]{scroll-margin-top:6rem}}section>.container>header,section>header{margin-bottom:2rem}@media(min-width:2560px){section>.container>header,section>header{margin-bottom:2.75rem}}section>.container>header>span,section>header>span{display:inline-block;font-size:.85rem;font-weight:600;color:var(--accent-light);margin-bottom:.4rem}section>.container>header h2,section>header h2{font-size:1.65rem;font-weight:700;letter-spacing:-.02em;color:var(--text-white);margin-bottom:.35rem}section>.container>header p,section>header p{font-size:.92rem;color:var(--text-muted);max-width:600px;line-height:1.6}@media(min-width:1920px){section>.container>header p,section>header p{max-width:760px}}@media(min-width:2560px){section>.container>header p,section>header p{max-width:1040px}}@media(min-width:3400px){section>.container>header p,section>header p{max-width:1380px}}.feature-list{list-style:none;display:flex;flex-direction:column;gap:.55rem;padding:0;margin:0}@media(min-width:2560px){.feature-list{gap:.75rem}}@media(min-width:3400px){.feature-list{gap:.9rem}}.feature-list li{font-size:.88rem;color:var(--text-main);display:flex;align-items:baseline;gap:.65rem;line-height:1.55}@media(min-width:2560px){.feature-list li{font-size:.95rem;gap:.8rem}}.feature-list li:before{content:"\203a";color:var(--accent);font-weight:700;font-size:1.05rem;line-height:1;flex-shrink:0;-webkit-user-select:none;user-select:none}.feature-list li>span:first-child:last-child{flex:1}.tab:hover:not(.active):not([aria-selected=true]),[role=tab]:hover:not(.active):not([aria-selected=true]),[appTab]:hover:not(.active):not([aria-selected=true]){color:var(--text-white);background:#ffffff08}.tab:hover:not(.active):not([aria-selected=true]) .count,[role=tab]:hover:not(.active):not([aria-selected=true]) .count,[appTab]:hover:not(.active):not([aria-selected=true]) .count{color:var(--text-muted);background:#ffffff17}.tab:hover:not(.active):not([aria-selected=true]):after,[role=tab]:hover:not(.active):not([aria-selected=true]):after,[appTab]:hover:not(.active):not([aria-selected=true]):after{background:#fff3}.tab.active,.tab[aria-selected=true],[role=tab].active,[role=tab][aria-selected=true],[appTab].active,[appTab][aria-selected=true]{color:var(--text-white);font-weight:500;background:transparent;box-shadow:none}.tab.active:after,.tab[aria-selected=true]:after,[role=tab].active:after,[role=tab][aria-selected=true]:after,[appTab].active:after,[appTab][aria-selected=true]:after{background:var(--accent);box-shadow:0 0 10px #e4003a99}.tab.active .count,.tab[aria-selected=true] .count,[role=tab].active .count,[role=tab][aria-selected=true] .count,[appTab].active .count,[appTab][aria-selected=true] .count{background:#e4003a26;color:var(--accent-light);border-color:#e4003a40}nav[role=tablist],[appTabList]{display:flex;align-items:center;gap:.5rem;border-bottom:1px solid var(--border-subtle);margin-bottom:2rem;max-width:100%;overflow-x:auto;scrollbar-width:none}@media(min-width:2560px){nav[role=tablist],[appTabList]{gap:.75rem;margin-bottom:2.5rem}}.tab,[role=tab],[appTab]{display:inline-flex;align-items:center;justify-content:center;position:relative;height:auto;gap:8px;padding:.75rem 1rem .85rem;border-radius:6px 6px 0 0;color:var(--text-dim);font-size:.9rem;font-weight:500;font-family:var(--font-sans);white-space:nowrap;box-sizing:border-box;text-decoration:none;vertical-align:middle;flex-shrink:0;margin-bottom:-1px;transition:color .15s ease,background-color .15s ease}@media(min-width:2560px){.tab,[role=tab],[appTab]{padding:.9rem 1.25rem 1rem;font-size:1rem;gap:10px}}.tab:after,[role=tab]:after,[appTab]:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:transparent;border-radius:2px 2px 0 0;transition:background-color .15s ease,box-shadow .15s ease}.tab span,[role=tab] span,[appTab] span{line-height:1}.tab svg,[role=tab] svg,[appTab] svg{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.tab .count,[role=tab] .count,[appTab] .count{display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;padding:2px 7px;border-radius:9999px;background:#ffffff0f;color:var(--text-dim);font-weight:500;line-height:1;border:1px solid transparent;font-variant-numeric:tabular-nums;letter-spacing:-.01em;box-sizing:border-box;transition:background-color .15s ease,border-color .15s ease,color .15s ease}@media(min-width:2560px){.tab .count,[role=tab] .count,[appTab] .count{font-size:.78rem;padding:2px 8px}}.btn.btn-icon,.btn.icon,.btn[appIconButton],a[appSolidButton].btn-icon,a[appSolidButton].icon,a[appSolidButton][appIconButton],button[appSolidButton].btn-icon,button[appSolidButton].icon,button[appSolidButton][appIconButton],a[appOutlineButton].btn-icon,a[appOutlineButton].icon,a[appOutlineButton][appIconButton],button[appOutlineButton].btn-icon,button[appOutlineButton].icon,button[appOutlineButton][appIconButton],a[appGhostButton].btn-icon,a[appGhostButton].icon,a[appGhostButton][appIconButton],button[appGhostButton].btn-icon,button[appGhostButton].icon,button[appGhostButton][appIconButton],a[appIconButton].btn-icon,a[appIconButton].icon,a[appIconButton][appIconButton],button[appIconButton].btn-icon,button[appIconButton].icon,button[appIconButton][appIconButton]{padding:0;width:2.25rem;height:2.25rem;border-color:transparent;color:var(--text-muted);flex-shrink:0}.btn.btn-icon:hover,.btn.icon:hover,.btn[appIconButton]:hover,a[appSolidButton].btn-icon:hover,a[appSolidButton].icon:hover,a[appSolidButton][appIconButton]:hover,button[appSolidButton].btn-icon:hover,button[appSolidButton].icon:hover,button[appSolidButton][appIconButton]:hover,a[appOutlineButton].btn-icon:hover,a[appOutlineButton].icon:hover,a[appOutlineButton][appIconButton]:hover,button[appOutlineButton].btn-icon:hover,button[appOutlineButton].icon:hover,button[appOutlineButton][appIconButton]:hover,a[appGhostButton].btn-icon:hover,a[appGhostButton].icon:hover,a[appGhostButton][appIconButton]:hover,button[appGhostButton].btn-icon:hover,button[appGhostButton].icon:hover,button[appGhostButton][appIconButton]:hover,a[appIconButton].btn-icon:hover,a[appIconButton].icon:hover,a[appIconButton][appIconButton]:hover,button[appIconButton].btn-icon:hover,button[appIconButton].icon:hover,button[appIconButton][appIconButton]:hover{background-color:#ffffff14;color:var(--text-white)}.btn.btn-icon:active,.btn.icon:active,.btn[appIconButton]:active,a[appSolidButton].btn-icon:active,a[appSolidButton].icon:active,a[appSolidButton][appIconButton]:active,button[appSolidButton].btn-icon:active,button[appSolidButton].icon:active,button[appSolidButton][appIconButton]:active,a[appOutlineButton].btn-icon:active,a[appOutlineButton].icon:active,a[appOutlineButton][appIconButton]:active,button[appOutlineButton].btn-icon:active,button[appOutlineButton].icon:active,button[appOutlineButton][appIconButton]:active,a[appGhostButton].btn-icon:active,a[appGhostButton].icon:active,a[appGhostButton][appIconButton]:active,button[appGhostButton].btn-icon:active,button[appGhostButton].icon:active,button[appGhostButton][appIconButton]:active,a[appIconButton].btn-icon:active,a[appIconButton].icon:active,a[appIconButton][appIconButton]:active,button[appIconButton].btn-icon:active,button[appIconButton].icon:active,button[appIconButton][appIconButton]:active{background-color:#ffffff1f}.btn.btn-icon.circle,.btn.btn-icon[shape=circle],.btn.icon.circle,.btn.icon[shape=circle],.btn[appIconButton].circle,.btn[appIconButton][shape=circle],a[appSolidButton].btn-icon.circle,a[appSolidButton].btn-icon[shape=circle],a[appSolidButton].icon.circle,a[appSolidButton].icon[shape=circle],a[appSolidButton][appIconButton].circle,a[appSolidButton][appIconButton][shape=circle],button[appSolidButton].btn-icon.circle,button[appSolidButton].btn-icon[shape=circle],button[appSolidButton].icon.circle,button[appSolidButton].icon[shape=circle],button[appSolidButton][appIconButton].circle,button[appSolidButton][appIconButton][shape=circle],a[appOutlineButton].btn-icon.circle,a[appOutlineButton].btn-icon[shape=circle],a[appOutlineButton].icon.circle,a[appOutlineButton].icon[shape=circle],a[appOutlineButton][appIconButton].circle,a[appOutlineButton][appIconButton][shape=circle],button[appOutlineButton].btn-icon.circle,button[appOutlineButton].btn-icon[shape=circle],button[appOutlineButton].icon.circle,button[appOutlineButton].icon[shape=circle],button[appOutlineButton][appIconButton].circle,button[appOutlineButton][appIconButton][shape=circle],a[appGhostButton].btn-icon.circle,a[appGhostButton].btn-icon[shape=circle],a[appGhostButton].icon.circle,a[appGhostButton].icon[shape=circle],a[appGhostButton][appIconButton].circle,a[appGhostButton][appIconButton][shape=circle],button[appGhostButton].btn-icon.circle,button[appGhostButton].btn-icon[shape=circle],button[appGhostButton].icon.circle,button[appGhostButton].icon[shape=circle],button[appGhostButton][appIconButton].circle,button[appGhostButton][appIconButton][shape=circle],a[appIconButton].btn-icon.circle,a[appIconButton].btn-icon[shape=circle],a[appIconButton].icon.circle,a[appIconButton].icon[shape=circle],a[appIconButton][appIconButton].circle,a[appIconButton][appIconButton][shape=circle],button[appIconButton].btn-icon.circle,button[appIconButton].btn-icon[shape=circle],button[appIconButton].icon.circle,button[appIconButton].icon[shape=circle],button[appIconButton][appIconButton].circle,button[appIconButton][appIconButton][shape=circle]{width:1.65rem;height:1.65rem;border-radius:50%}.btn.btn-icon.circle svg,.btn.btn-icon[shape=circle] svg,.btn.icon.circle svg,.btn.icon[shape=circle] svg,.btn[appIconButton].circle svg,.btn[appIconButton][shape=circle] svg,a[appSolidButton].btn-icon.circle svg,a[appSolidButton].btn-icon[shape=circle] svg,a[appSolidButton].icon.circle svg,a[appSolidButton].icon[shape=circle] svg,a[appSolidButton][appIconButton].circle svg,a[appSolidButton][appIconButton][shape=circle] svg,button[appSolidButton].btn-icon.circle svg,button[appSolidButton].btn-icon[shape=circle] svg,button[appSolidButton].icon.circle svg,button[appSolidButton].icon[shape=circle] svg,button[appSolidButton][appIconButton].circle svg,button[appSolidButton][appIconButton][shape=circle] svg,a[appOutlineButton].btn-icon.circle svg,a[appOutlineButton].btn-icon[shape=circle] svg,a[appOutlineButton].icon.circle svg,a[appOutlineButton].icon[shape=circle] svg,a[appOutlineButton][appIconButton].circle svg,a[appOutlineButton][appIconButton][shape=circle] svg,button[appOutlineButton].btn-icon.circle svg,button[appOutlineButton].btn-icon[shape=circle] svg,button[appOutlineButton].icon.circle svg,button[appOutlineButton].icon[shape=circle] svg,button[appOutlineButton][appIconButton].circle svg,button[appOutlineButton][appIconButton][shape=circle] svg,a[appGhostButton].btn-icon.circle svg,a[appGhostButton].btn-icon[shape=circle] svg,a[appGhostButton].icon.circle svg,a[appGhostButton].icon[shape=circle] svg,a[appGhostButton][appIconButton].circle svg,a[appGhostButton][appIconButton][shape=circle] svg,button[appGhostButton].btn-icon.circle svg,button[appGhostButton].btn-icon[shape=circle] svg,button[appGhostButton].icon.circle svg,button[appGhostButton].icon[shape=circle] svg,button[appGhostButton][appIconButton].circle svg,button[appGhostButton][appIconButton][shape=circle] svg,a[appIconButton].btn-icon.circle svg,a[appIconButton].btn-icon[shape=circle] svg,a[appIconButton].icon.circle svg,a[appIconButton].icon[shape=circle] svg,a[appIconButton][appIconButton].circle svg,a[appIconButton][appIconButton][shape=circle] svg,button[appIconButton].btn-icon.circle svg,button[appIconButton].btn-icon[shape=circle] svg,button[appIconButton].icon.circle svg,button[appIconButton].icon[shape=circle] svg,button[appIconButton][appIconButton].circle svg,button[appIconButton][appIconButton][shape=circle] svg{width:.82rem;height:.82rem;flex-shrink:0}.btn.btn-solid,.btn.solid,.btn[appSolidButton],a[appSolidButton].btn-solid,a[appSolidButton].solid,a[appSolidButton][appSolidButton],button[appSolidButton].btn-solid,button[appSolidButton].solid,button[appSolidButton][appSolidButton],a[appOutlineButton].btn-solid,a[appOutlineButton].solid,a[appOutlineButton][appSolidButton],button[appOutlineButton].btn-solid,button[appOutlineButton].solid,button[appOutlineButton][appSolidButton],a[appGhostButton].btn-solid,a[appGhostButton].solid,a[appGhostButton][appSolidButton],button[appGhostButton].btn-solid,button[appGhostButton].solid,button[appGhostButton][appSolidButton],a[appIconButton].btn-solid,a[appIconButton].solid,a[appIconButton][appSolidButton],button[appIconButton].btn-solid,button[appIconButton].solid,button[appIconButton][appSolidButton]{gap:7px;background-color:var(--text-white);color:var(--bg-primary);border-color:var(--text-white);font-weight:600}@media(hover:hover){.btn.btn-solid:hover,.btn.solid:hover,.btn[appSolidButton]:hover,a[appSolidButton].btn-solid:hover,a[appSolidButton].solid:hover,a[appSolidButton][appSolidButton]:hover,button[appSolidButton].btn-solid:hover,button[appSolidButton].solid:hover,button[appSolidButton][appSolidButton]:hover,a[appOutlineButton].btn-solid:hover,a[appOutlineButton].solid:hover,a[appOutlineButton][appSolidButton]:hover,button[appOutlineButton].btn-solid:hover,button[appOutlineButton].solid:hover,button[appOutlineButton][appSolidButton]:hover,a[appGhostButton].btn-solid:hover,a[appGhostButton].solid:hover,a[appGhostButton][appSolidButton]:hover,button[appGhostButton].btn-solid:hover,button[appGhostButton].solid:hover,button[appGhostButton][appSolidButton]:hover,a[appIconButton].btn-solid:hover,a[appIconButton].solid:hover,a[appIconButton][appSolidButton]:hover,button[appIconButton].btn-solid:hover,button[appIconButton].solid:hover,button[appIconButton][appSolidButton]:hover{background-color:var(--text-main);border-color:var(--text-main)}}.btn.btn-solid:active,.btn.solid:active,.btn[appSolidButton]:active,a[appSolidButton].btn-solid:active,a[appSolidButton].solid:active,a[appSolidButton][appSolidButton]:active,button[appSolidButton].btn-solid:active,button[appSolidButton].solid:active,button[appSolidButton][appSolidButton]:active,a[appOutlineButton].btn-solid:active,a[appOutlineButton].solid:active,a[appOutlineButton][appSolidButton]:active,button[appOutlineButton].btn-solid:active,button[appOutlineButton].solid:active,button[appOutlineButton][appSolidButton]:active,a[appGhostButton].btn-solid:active,a[appGhostButton].solid:active,a[appGhostButton][appSolidButton]:active,button[appGhostButton].btn-solid:active,button[appGhostButton].solid:active,button[appGhostButton][appSolidButton]:active,a[appIconButton].btn-solid:active,a[appIconButton].solid:active,a[appIconButton][appSolidButton]:active,button[appIconButton].btn-solid:active,button[appIconButton].solid:active,button[appIconButton][appSolidButton]:active{opacity:.88}.btn.btn-outline,.btn.outline,.btn[appOutlineButton],a[appSolidButton].btn-outline,a[appSolidButton].outline,a[appSolidButton][appOutlineButton],button[appSolidButton].btn-outline,button[appSolidButton].outline,button[appSolidButton][appOutlineButton],a[appOutlineButton].btn-outline,a[appOutlineButton].outline,a[appOutlineButton][appOutlineButton],button[appOutlineButton].btn-outline,button[appOutlineButton].outline,button[appOutlineButton][appOutlineButton],a[appGhostButton].btn-outline,a[appGhostButton].outline,a[appGhostButton][appOutlineButton],button[appGhostButton].btn-outline,button[appGhostButton].outline,button[appGhostButton][appOutlineButton],a[appIconButton].btn-outline,a[appIconButton].outline,a[appIconButton][appOutlineButton],button[appIconButton].btn-outline,button[appIconButton].outline,button[appIconButton][appOutlineButton]{gap:7px;font-weight:500;background-color:#ffffff0a;color:var(--text-white);border-color:#ffffff1a}@media(hover:hover){.btn.btn-outline:hover,.btn.outline:hover,.btn[appOutlineButton]:hover,a[appSolidButton].btn-outline:hover,a[appSolidButton].outline:hover,a[appSolidButton][appOutlineButton]:hover,button[appSolidButton].btn-outline:hover,button[appSolidButton].outline:hover,button[appSolidButton][appOutlineButton]:hover,a[appOutlineButton].btn-outline:hover,a[appOutlineButton].outline:hover,a[appOutlineButton][appOutlineButton]:hover,button[appOutlineButton].btn-outline:hover,button[appOutlineButton].outline:hover,button[appOutlineButton][appOutlineButton]:hover,a[appGhostButton].btn-outline:hover,a[appGhostButton].outline:hover,a[appGhostButton][appOutlineButton]:hover,button[appGhostButton].btn-outline:hover,button[appGhostButton].outline:hover,button[appGhostButton][appOutlineButton]:hover,a[appIconButton].btn-outline:hover,a[appIconButton].outline:hover,a[appIconButton][appOutlineButton]:hover,button[appIconButton].btn-outline:hover,button[appIconButton].outline:hover,button[appIconButton][appOutlineButton]:hover{background-color:#ffffff14;border-color:#fff3}}.btn.btn-outline:active,.btn.outline:active,.btn[appOutlineButton]:active,a[appSolidButton].btn-outline:active,a[appSolidButton].outline:active,a[appSolidButton][appOutlineButton]:active,button[appSolidButton].btn-outline:active,button[appSolidButton].outline:active,button[appSolidButton][appOutlineButton]:active,a[appOutlineButton].btn-outline:active,a[appOutlineButton].outline:active,a[appOutlineButton][appOutlineButton]:active,button[appOutlineButton].btn-outline:active,button[appOutlineButton].outline:active,button[appOutlineButton][appOutlineButton]:active,a[appGhostButton].btn-outline:active,a[appGhostButton].outline:active,a[appGhostButton][appOutlineButton]:active,button[appGhostButton].btn-outline:active,button[appGhostButton].outline:active,button[appGhostButton][appOutlineButton]:active,a[appIconButton].btn-outline:active,a[appIconButton].outline:active,a[appIconButton][appOutlineButton]:active,button[appIconButton].btn-outline:active,button[appIconButton].outline:active,button[appIconButton][appOutlineButton]:active{background-color:#ffffff1f}.btn.btn-ghost,.btn.ghost,.btn[appGhostButton],a[appSolidButton].btn-ghost,a[appSolidButton].ghost,a[appSolidButton][appGhostButton],button[appSolidButton].btn-ghost,button[appSolidButton].ghost,button[appSolidButton][appGhostButton],a[appOutlineButton].btn-ghost,a[appOutlineButton].ghost,a[appOutlineButton][appGhostButton],button[appOutlineButton].btn-ghost,button[appOutlineButton].ghost,button[appOutlineButton][appGhostButton],a[appGhostButton].btn-ghost,a[appGhostButton].ghost,a[appGhostButton][appGhostButton],button[appGhostButton].btn-ghost,button[appGhostButton].ghost,button[appGhostButton][appGhostButton],a[appIconButton].btn-ghost,a[appIconButton].ghost,a[appIconButton][appGhostButton],button[appIconButton].btn-ghost,button[appIconButton].ghost,button[appIconButton][appGhostButton]{gap:6px;padding:0 12px;border-color:transparent;color:var(--text-muted)}.btn.btn-ghost.sm,.btn.ghost.sm,.btn[appGhostButton].sm,a[appSolidButton].btn-ghost.sm,a[appSolidButton].ghost.sm,a[appSolidButton][appGhostButton].sm,button[appSolidButton].btn-ghost.sm,button[appSolidButton].ghost.sm,button[appSolidButton][appGhostButton].sm,a[appOutlineButton].btn-ghost.sm,a[appOutlineButton].ghost.sm,a[appOutlineButton][appGhostButton].sm,button[appOutlineButton].btn-ghost.sm,button[appOutlineButton].ghost.sm,button[appOutlineButton][appGhostButton].sm,a[appGhostButton].btn-ghost.sm,a[appGhostButton].ghost.sm,a[appGhostButton][appGhostButton].sm,button[appGhostButton].btn-ghost.sm,button[appGhostButton].ghost.sm,button[appGhostButton][appGhostButton].sm,a[appIconButton].btn-ghost.sm,a[appIconButton].ghost.sm,a[appIconButton][appGhostButton].sm,button[appIconButton].btn-ghost.sm,button[appIconButton].ghost.sm,button[appIconButton][appGhostButton].sm{padding:0 8px}@media(min-width:2560px){.btn.btn-ghost.sm,.btn.ghost.sm,.btn[appGhostButton].sm,a[appSolidButton].btn-ghost.sm,a[appSolidButton].ghost.sm,a[appSolidButton][appGhostButton].sm,button[appSolidButton].btn-ghost.sm,button[appSolidButton].ghost.sm,button[appSolidButton][appGhostButton].sm,a[appOutlineButton].btn-ghost.sm,a[appOutlineButton].ghost.sm,a[appOutlineButton][appGhostButton].sm,button[appOutlineButton].btn-ghost.sm,button[appOutlineButton].ghost.sm,button[appOutlineButton][appGhostButton].sm,a[appGhostButton].btn-ghost.sm,a[appGhostButton].ghost.sm,a[appGhostButton][appGhostButton].sm,button[appGhostButton].btn-ghost.sm,button[appGhostButton].ghost.sm,button[appGhostButton][appGhostButton].sm,a[appIconButton].btn-ghost.sm,a[appIconButton].ghost.sm,a[appIconButton][appGhostButton].sm,button[appIconButton].btn-ghost.sm,button[appIconButton].ghost.sm,button[appIconButton][appGhostButton].sm{padding:0 10px}}.btn.btn-ghost:hover,.btn.ghost:hover,.btn[appGhostButton]:hover,a[appSolidButton].btn-ghost:hover,a[appSolidButton].ghost:hover,a[appSolidButton][appGhostButton]:hover,button[appSolidButton].btn-ghost:hover,button[appSolidButton].ghost:hover,button[appSolidButton][appGhostButton]:hover,a[appOutlineButton].btn-ghost:hover,a[appOutlineButton].ghost:hover,a[appOutlineButton][appGhostButton]:hover,button[appOutlineButton].btn-ghost:hover,button[appOutlineButton].ghost:hover,button[appOutlineButton][appGhostButton]:hover,a[appGhostButton].btn-ghost:hover,a[appGhostButton].ghost:hover,a[appGhostButton][appGhostButton]:hover,button[appGhostButton].btn-ghost:hover,button[appGhostButton].ghost:hover,button[appGhostButton][appGhostButton]:hover,a[appIconButton].btn-ghost:hover,a[appIconButton].ghost:hover,a[appIconButton][appGhostButton]:hover,button[appIconButton].btn-ghost:hover,button[appIconButton].ghost:hover,button[appIconButton][appGhostButton]:hover{background-color:#ffffff0f;color:var(--text-white)}.btn.btn-ghost:active,.btn.ghost:active,.btn[appGhostButton]:active,a[appSolidButton].btn-ghost:active,a[appSolidButton].ghost:active,a[appSolidButton][appGhostButton]:active,button[appSolidButton].btn-ghost:active,button[appSolidButton].ghost:active,button[appSolidButton][appGhostButton]:active,a[appOutlineButton].btn-ghost:active,a[appOutlineButton].ghost:active,a[appOutlineButton][appGhostButton]:active,button[appOutlineButton].btn-ghost:active,button[appOutlineButton].ghost:active,button[appOutlineButton][appGhostButton]:active,a[appGhostButton].btn-ghost:active,a[appGhostButton].ghost:active,a[appGhostButton][appGhostButton]:active,button[appGhostButton].btn-ghost:active,button[appGhostButton].ghost:active,button[appGhostButton][appGhostButton]:active,a[appIconButton].btn-ghost:active,a[appIconButton].ghost:active,a[appIconButton][appGhostButton]:active,button[appIconButton].btn-ghost:active,button[appIconButton].ghost:active,button[appIconButton][appGhostButton]:active{background-color:#ffffff1a}.btn,a[appSolidButton],button[appSolidButton],a[appOutlineButton],button[appOutlineButton],a[appGhostButton],button[appGhostButton],a[appIconButton],button[appIconButton]{display:inline-flex;align-items:center;justify-content:center;height:2.25rem;padding:0 16px;line-height:1;font-size:.85rem;border-radius:8px;border:1px solid transparent;color:var(--text-muted);text-decoration:none;box-sizing:border-box;font-family:var(--font-sans);vertical-align:middle;white-space:nowrap;flex-shrink:0;transition:background-color .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease,box-shadow .15s ease}.btn span,a[appSolidButton] span,button[appSolidButton] span,a[appOutlineButton] span,button[appOutlineButton] span,a[appGhostButton] span,button[appGhostButton] span,a[appIconButton] span,button[appIconButton] span{line-height:1}.btn svg,a[appSolidButton] svg,button[appSolidButton] svg,a[appOutlineButton] svg,button[appOutlineButton] svg,a[appGhostButton] svg,button[appGhostButton] svg,a[appIconButton] svg,button[appIconButton] svg{flex-shrink:0}.btn.sm,a[appSolidButton].sm,button[appSolidButton].sm,a[appOutlineButton].sm,button[appOutlineButton].sm,a[appGhostButton].sm,button[appGhostButton].sm,a[appIconButton].sm,button[appIconButton].sm{height:1.75rem;padding:0 10px;font-size:.8rem;gap:5px;border-radius:6px}@media(min-width:2560px){.btn.sm,a[appSolidButton].sm,button[appSolidButton].sm,a[appOutlineButton].sm,button[appOutlineButton].sm,a[appGhostButton].sm,button[appGhostButton].sm,a[appIconButton].sm,button[appIconButton].sm{height:2rem;font-size:.88rem;gap:7px;padding:0 12px}}.badge,small[appBadge],span[appBadge],div[appBadge],a[appBadge],small[appStatusBadge],span[appStatusBadge],div[appStatusBadge]{display:inline-flex;align-items:center;gap:6px;width:fit-content;font-size:.82rem;font-weight:500;line-height:1.25;color:var(--text-muted);background:#ffffff08;border:1px solid var(--border-subtle);padding:4px 12px;border-radius:9999px;white-space:nowrap;-webkit-user-select:none;user-select:none;font-family:var(--font-sans);vertical-align:middle;box-sizing:border-box;transition:background-color .15s ease,border-color .15s ease,color .15s ease}.badge.sm,.badge.badge-sm,small[appBadge].sm,small[appBadge].badge-sm,span[appBadge].sm,span[appBadge].badge-sm,div[appBadge].sm,div[appBadge].badge-sm,a[appBadge].sm,a[appBadge].badge-sm,small[appStatusBadge].sm,small[appStatusBadge].badge-sm,span[appStatusBadge].sm,span[appStatusBadge].badge-sm,div[appStatusBadge].sm,div[appStatusBadge].badge-sm{font-size:.75rem;padding:2.5px 8px;gap:5px}.badge.badge-status:before,.badge[appStatusBadge]:before,small[appBadge].badge-status:before,small[appBadge][appStatusBadge]:before,span[appBadge].badge-status:before,span[appBadge][appStatusBadge]:before,div[appBadge].badge-status:before,div[appBadge][appStatusBadge]:before,a[appBadge].badge-status:before,a[appBadge][appStatusBadge]:before,small[appStatusBadge].badge-status:before,small[appStatusBadge][appStatusBadge]:before,span[appStatusBadge].badge-status:before,span[appStatusBadge][appStatusBadge]:before,div[appStatusBadge].badge-status:before,div[appStatusBadge][appStatusBadge]:before{content:"";width:7px;height:7px;border-radius:50%;background-color:var(--color-green);box-shadow:0 0 6px var(--color-green-glow);flex-shrink:0}.badge[data-dot=accent]:before,small[appBadge][data-dot=accent]:before,span[appBadge][data-dot=accent]:before,div[appBadge][data-dot=accent]:before,a[appBadge][data-dot=accent]:before,small[appStatusBadge][data-dot=accent]:before,span[appStatusBadge][data-dot=accent]:before,div[appStatusBadge][data-dot=accent]:before{background-color:var(--accent);box-shadow:0 0 6px rgba(var(--accent-rgb),.6)}.badge[data-dot=amber]:before,small[appBadge][data-dot=amber]:before,span[appBadge][data-dot=amber]:before,div[appBadge][data-dot=amber]:before,a[appBadge][data-dot=amber]:before,small[appStatusBadge][data-dot=amber]:before,span[appStatusBadge][data-dot=amber]:before,div[appStatusBadge][data-dot=amber]:before{background-color:#eab308;box-shadow:0 0 6px #eab30866}.badge[data-dot=blue]:before,small[appBadge][data-dot=blue]:before,span[appBadge][data-dot=blue]:before,div[appBadge][data-dot=blue]:before,a[appBadge][data-dot=blue]:before,small[appStatusBadge][data-dot=blue]:before,span[appStatusBadge][data-dot=blue]:before,div[appStatusBadge][data-dot=blue]:before{background-color:#38bdf8;box-shadow:0 0 6px #38bdf866}.badge[data-dot=purple]:before,small[appBadge][data-dot=purple]:before,span[appBadge][data-dot=purple]:before,div[appBadge][data-dot=purple]:before,a[appBadge][data-dot=purple]:before,small[appStatusBadge][data-dot=purple]:before,span[appStatusBadge][data-dot=purple]:before,div[appStatusBadge][data-dot=purple]:before{background-color:#a855f7;box-shadow:0 0 6px #a855f766}.badge.badge-accent,.badge[appBadge=accent],small[appBadge].badge-accent,small[appBadge][appBadge=accent],span[appBadge].badge-accent,span[appBadge][appBadge=accent],div[appBadge].badge-accent,div[appBadge][appBadge=accent],a[appBadge].badge-accent,a[appBadge][appBadge=accent],small[appStatusBadge].badge-accent,small[appStatusBadge][appBadge=accent],span[appStatusBadge].badge-accent,span[appStatusBadge][appBadge=accent],div[appStatusBadge].badge-accent,div[appStatusBadge][appBadge=accent]{gap:6px;padding:4px 10px;background:#e4003a14;border:1px solid rgba(228,0,58,.2);border-radius:9999px;font-weight:600;color:var(--accent-light)}.badge.badge-muted,.badge[appBadge=muted],small[appBadge].badge-muted,small[appBadge][appBadge=muted],span[appBadge].badge-muted,span[appBadge][appBadge=muted],div[appBadge].badge-muted,div[appBadge][appBadge=muted],a[appBadge].badge-muted,a[appBadge][appBadge=muted],small[appStatusBadge].badge-muted,small[appStatusBadge][appBadge=muted],span[appStatusBadge].badge-muted,span[appStatusBadge][appBadge=muted],div[appStatusBadge].badge-muted,div[appStatusBadge][appBadge=muted]{font-size:.78rem;font-weight:500;padding:3px 8px;border-radius:6px;color:var(--text-dim);background-color:#ffffff05;border-color:#ffffff12}.badge.badge-outline,.badge[appBadge=outline],small[appBadge].badge-outline,small[appBadge][appBadge=outline],span[appBadge].badge-outline,span[appBadge][appBadge=outline],div[appBadge].badge-outline,div[appBadge][appBadge=outline],a[appBadge].badge-outline,a[appBadge][appBadge=outline],small[appStatusBadge].badge-outline,small[appStatusBadge][appBadge=outline],span[appStatusBadge].badge-outline,span[appStatusBadge][appBadge=outline],div[appStatusBadge].badge-outline,div[appStatusBadge][appBadge=outline]{font-size:.8rem;background:transparent;border-color:var(--border-card);color:var(--text-muted)}.dialog-content,[appDialogContent]{display:flex;flex-direction:column;flex:1 1 auto;overflow-y:auto;padding:1.5rem;gap:1.4rem;background:var(--bg-deep)}@media(min-width:2560px){.dialog-content,[appDialogContent]{padding:2.2rem;gap:2rem}}@media(min-width:3400px){.dialog-content,[appDialogContent]{padding:3rem;gap:2.5rem}}.dialog-actions,[appDialogActions]{display:flex;align-items:center;justify-content:flex-end;gap:.75rem;padding:.75rem 1.5rem;border-top:1px solid var(--border-subtle);background:var(--bg-window-header);flex-shrink:0}.cdk-overlay-backdrop{background:#09090cd1;opacity:0;transition:opacity .2s cubic-bezier(.16,1,.3,1)}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}@supports not (-moz-appearance: none){.cdk-overlay-backdrop{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}}.dialog-pane{display:flex;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px)}.gnome-window{background:var(--bg-window);border:1px solid var(--border-card);border-radius:12px;width:100%;height:100%;display:flex;flex-direction:column;box-shadow:var(--shadow-modal);overflow:hidden;animation:gnomeScaleIn .2s cubic-bezier(.16,1,.3,1)}.gnome-window header,.gnome-window .dialog-header,.gnome-window [appDialogTitle]{display:flex;align-items:center;justify-content:space-between;height:2.5rem;padding:0 .85rem;background:var(--bg-window-header);border-bottom:1px solid var(--border-subtle);flex-shrink:0;font-family:var(--font-mono)}.gnome-window header>div:first-child,.gnome-window .dialog-header>div:first-child,.gnome-window [appDialogTitle]>div:first-child{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--text-muted)}.gnome-window header>div:first-child svg,.gnome-window .dialog-header>div:first-child svg,.gnome-window [appDialogTitle]>div:first-child svg{color:var(--accent)}.gnome-window header>div:first-child span,.gnome-window .dialog-header>div:first-child span,.gnome-window [appDialogTitle]>div:first-child span{font-weight:600;color:var(--text-white)}.gnome-window header>div:nth-child(2):not(:last-child),.gnome-window .dialog-header>div:nth-child(2):not(:last-child),.gnome-window [appDialogTitle]>div:nth-child(2):not(:last-child){font-size:.78rem;color:var(--text-dim)}.gnome-window header>div:last-child,.gnome-window .dialog-header>div:last-child,.gnome-window [appDialogTitle]>div:last-child{display:flex;align-items:center;gap:6px}@keyframes gnomeScaleIn{0%{opacity:0;transform:scale(.97) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}
