.component-page { --cg-bg: #0b0c0f; --cg-panel: #121419; --cg-border: #292c34; --cg-text: #eff0f4; --cg-muted: #a1a6b2; --cg-accent: #b9a2ff; background: var(--cg-bg); color: var(--cg-text); font-family: Inter, 'Segoe UI', system-ui, sans-serif; }
.component-page *, .component-page *::before, .component-page *::after { box-sizing: border-box; }
.component-page [hidden] { display: none !important; }
.component-page button, .component-page input { font-family: inherit; }
.component-page button { cursor: pointer; }
.component-page a { color: inherit; }
.component-page a:hover { color: var(--cg-accent); }
.component-page :focus-visible { outline: 2px solid var(--cg-accent); outline-offset: 4px; }
.component-container { max-width: 1344px; margin: 0 auto; padding: 0 40px; }
.component-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 35px; padding: 63px 0 49px; border-bottom: 1px solid var(--cg-border); }
.component-kicker { color: #c3c5ce; font-size: 12px; font-weight: 550; display: flex; align-items: center; gap: 14px; margin: 0 0 20px; }
.component-kicker > span { color: #969caa; font-size: 10px; font-weight: 450; padding: 2px 7px; border: 1px solid #363943; border-radius: 4px; }
.component-intro h1 { font-size: clamp(32px, 3.4vw, 44px); font-weight: 550; line-height: 1.16; letter-spacing: -.04em; max-width: 720px; text-wrap: initial; }
.component-lead { color: var(--cg-muted); font-size: 14px; line-height: 1.75; margin: 19px 0 0; }
.component-start { flex: 0 0 225px; padding-bottom: 3px; }
.component-start-label { color: #b6bac5; display: block; font-size: 12px; margin-bottom: 11px; }
.component-download { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 14px; border: 1px solid #44395e; background: #1f1a2b; border-radius: 7px; font-size: 12px; font-weight: 550; color: #dacdff !important; }
.component-download:hover { background: #292137; border-color: #8c76bc; }
.component-download > span { font-size: 16px; }
.component-start > p { margin-top: 9px; font-size: 10px; color: #959ba8; }
.component-workspace { display: grid; grid-template-columns: 166px minmax(0, 1fr); gap: 35px; padding-top: 31px; }
.component-sidebar { align-self: start; position: sticky; top: calc(var(--nav-h, 64px) + 24px); }
.component-sidebar-label { color: #9399a6; font-size: 10px; margin: 0 0 15px; }
.component-filters { display: grid; gap: 3px; }
.component-filters button { display: flex; gap: 10px; justify-content: space-between; align-items: center; background: transparent; color: #aeb3bf; border: 1px solid transparent; padding: 9px 11px; border-radius: 6px; font-size: 12px; text-align: left; }
.component-filters button span { color: #8b929f; font-size: 10px; font-variant-numeric: tabular-nums; }
.component-filters button:hover { background: #16181e; color: #e0e2e8; }
.component-filters button.is-active { color: #d8caff; background: #211c2e; border-color: #3a304f; }
.component-filters button.is-active span { color: #c4b2e8; }
.component-sidebar-note { margin-top: 35px; padding: 18px 0 20px; border-top: 1px solid var(--cg-border); border-bottom: 1px solid var(--cg-border); font-size: 11px; }
.component-small-dot { display: inline-block; width: 5px; height: 5px; background: #91d7b1; border-radius: 50%; margin-right: 6px; vertical-align: 2px; }
.component-sidebar-note strong { font-weight: 450; color: #d0d3dc; }
.component-sidebar-note p { color: #9198a6; font-size: 11px; line-height: 1.7; margin-top: 7px; }
.component-sidebar-link { display: flex; justify-content: space-between; align-items: center; width: 100%; background: transparent; border: none; color: #aeb3bf !important; font-size: 11px; padding: 15px 0 0; text-align: left; }
.component-sidebar-link:hover { color: var(--cg-accent) !important; }
.component-results { min-width: 0; }
.component-search-row { display: flex; align-items: center; gap: 24px; margin-bottom: 22px; }
.component-search { display: flex; align-items: center; gap: 10px; flex: 1; background: #121419; padding: 0 13px; height: 40px; border: 1px solid #32363f; border-radius: 7px; }
.component-search:focus-within { border-color: var(--cg-accent); }
.component-search svg { width: 16px; height: 16px; color: #8c94a3; flex: 0 0 auto; }
.component-search input { min-width: 0; width: 100%; height: 100%; border: 0; background: transparent; color: #e3e6ed; font-size: 12px; outline: none; }
.component-search input::placeholder { color: #959dab; }
.component-search input:focus-visible { outline: none; }
.component-search kbd { border: 1px solid #363a44; border-radius: 4px; padding: 0 5px; color: #939baa; font: 10px/19px ui-monospace, Consolas, monospace; }
#component-count { color: #929aa8; font-size: 11px; white-space: nowrap; }
.component-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 22px; align-items: start; }
.component-card { min-width: 0; scroll-margin-top: 100px; }
.component-card-head { display: flex; gap: 13px; align-items: flex-start; padding-bottom: 14px; min-height: 82px; }
.component-card-head-copy { min-width: 0; flex: 1; }
.component-card-head h2 { font-size: 16px; font-weight: 550; letter-spacing: -.02em; line-height: 1.45; }
.component-card-head h2 > a { text-decoration: none; }
.component-card-head p { margin-top: 5px; max-width: 340px; font-size: 11px; color: #a1a8b6; line-height: 1.65; }
.component-number { color: #737c8d; font: 10px/24px ui-monospace, Consolas, monospace; padding-top: 0; }
.component-card-frame { background: #0f1116; border: 1px solid #30343d; border-radius: 10px; overflow: hidden; }
.component-card-toolbar { display: flex; align-items: center; padding: 7px 11px; border-bottom: 1px solid #2a2e37; gap: 4px; }
.component-tab { background: transparent; color: #929baa; border: 1px solid transparent; padding: 6px 9px; border-radius: 5px; font-size: 10px; line-height: 1.4; }
.component-tab:hover { color: #e4e7ed; }
.component-tab[aria-selected='true'] { background: #242731; color: #edeff4; border-color: #363a45; }
.component-copy { border: 0; border-radius: 4px; background: transparent; color: #b5bdcc; font-size: 10px; padding: 6px 8px; margin-left: auto; }
.component-copy:hover { color: #e6ddff; background: #23202e; }
.component-preview { display: flex; align-items: center; padding: 22px; min-height: 485px; background: #0e1014; }
.component-preview-host { width: 100%; min-width: 0; }
.component-preview .fsui { box-shadow: 0 9px 20px #00000024; padding: 19px; }
.component-card-foot { display: flex; align-items: center; gap: 10px; padding-top: 10px; font-size: 10px; color: #929aaa; }
.component-card-foot > span:first-child { background: #181b22; border: 1px solid #2a303a; border-radius: 4px; padding: 1px 6px; }
.component-card-foot > a { margin-left: auto; color: #b3a4d6; }
.component-panel-code { height: 485px; overflow: auto; padding: 19px; background: #101218; font-size: 11px; color: #c6bedb; line-height: 1.75; }
.component-panel-code pre { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; }
.component-panel-code code { font-family: ui-monospace, Consolas, monospace; }
.component-code-note { color: #969fae; padding-bottom: 15px; margin-bottom: 16px; border-bottom: 1px solid #2b303a; font-family: Inter, 'Segoe UI', system-ui, sans-serif; font-size: 11px; }
.component-details { height: 485px; overflow: auto; padding: 21px; font-size: 11px; color: #a8b0bf; line-height: 1.7; }
.component-details > p { margin: 0 0 20px; }
.component-detail-section { margin-top: 18px; }
.component-detail-section h3 { font-size: 11px; line-height: 1.5; font-weight: 550; color: #e2e5ed; margin-bottom: 7px; }
.component-detail-section ul { margin: 0; padding-left: 16px; }
.component-detail-section code { color: #c6b5ed; font-size: 10px; white-space: normal; overflow-wrap: anywhere; }
.component-detail-section p { margin: 0; }
.component-detail-tags { display: flex; gap: 5px; flex-wrap: wrap; }
.component-detail-tags span { padding: 2px 6px; border: 1px solid #303644; border-radius: 4px; font-size: 10px; }
.component-empty { padding: 70px 24px; text-align: center; border: 1px dashed #363b48; border-radius: 10px; color: #a5adbc; }
.component-empty h2 { font-size: 22px; color: #e3e6ed; }
.component-empty p { margin: 12px 0 20px; font-size: 13px; }
.component-action { border: 1px solid #514267; border-radius: 6px; color: #d1bff3; padding: 9px 13px; background: #211b2c; font-size: 12px; }
.component-install { margin-top: 78px; padding: 48px 0 55px; border-top: 1px solid var(--cg-border); display: grid; grid-template-columns: 1fr 1.15fr; gap: 90px; scroll-margin-top: 95px; }
.component-install-copy h2 { font-size: 30px; font-weight: 550; line-height: 1.2; letter-spacing: -.025em; }
.component-install-copy > p:not(.component-kicker) { font-size: 13px; color: #a2aaba; line-height: 1.8; max-width: 385px; margin-top: 18px; }
.component-install-copy > .component-install-note { font-size: 10px !important; }
.component-file-links { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 23px; }
.component-file-links a { padding: 9px 12px; border: 1px solid #3d4150; border-radius: 6px; background: #171a21; color: #d5d9e4; font-size: 11px; display: flex; gap: 17px; }
.component-install-note a { text-decoration: underline; text-underline-offset: 3px; }
.component-install-code { border: 1px solid #333844; border-radius: 9px; background: #11141a; align-self: center; overflow: hidden; min-width: 0; }
.component-code-bar { display: flex; align-items: center; border-bottom: 1px solid #303641; padding: 8px 13px; font-size: 11px; color: #9da7b9; }
.component-install-code pre { margin: 0; padding: 22px; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.95; font-size: 11px; color: #c9bbdf; }
.component-install-code code { font-family: ui-monospace, Consolas, monospace; }
.component-install-caption { border-top: 1px solid #2b303a; padding: 11px 15px; font-size: 10px; color: #a0aab9; }
.component-credit { border-top: 1px solid var(--cg-border); padding: 20px 0 26px; font-size: 10px; color: #9098a6; }
.component-credit a { text-decoration: underline; text-underline-offset: 3px; }
.component-toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%); max-width: calc(100vw - 32px); border-radius: 8px; background: #e5def3; color: #241c30; padding: 10px 17px; box-shadow: 0 8px 28px #0005; font-size: 12px; z-index: 80; pointer-events: none; }
.component-toast:empty { display: none; }
.component-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (min-width: 1450px) { .component-container { max-width: 1440px; } .component-workspace { grid-template-columns: 180px minmax(0, 1fr); gap: 40px; } .component-preview { padding: 28px; } }
@media (max-width: 1150px) {
  .component-container { padding: 0 28px; }
  .component-workspace { display: block; }
  .component-sidebar { position: static; display: flex; align-items: center; gap: 20px; margin-bottom: 22px; }
  .component-sidebar-label, .component-sidebar-note, .component-sidebar-link { display: none; }
  .component-filters { display: flex; flex-wrap: wrap; gap: 6px; }
  .component-filters button { gap: 15px; }
  .component-install { gap: 45px; }
}
@media (max-width: 760px) {
  .component-container { padding: 0 20px; }
  .component-intro { display: block; padding: 38px 0 30px; }
  .component-kicker { margin-bottom: 16px; }
  .component-intro h1 { font-size: 34px; line-height: 1.16; }
  .desktop-break { display: none; }
  .component-lead { font-size: 13px; }
  .component-start { margin-top: 24px; max-width: 280px; }
  .component-start-label, .component-start > p { display: none; }
  .component-workspace { padding-top: 23px; }
  .component-sidebar { margin-bottom: 18px; }
  .component-filters { gap: 5px; }
  .component-filters button { font-size: 11px; padding: 7px 9px; gap: 10px; }
  .component-filters button span { display: none; }
  .component-search-row { gap: 12px; margin-bottom: 24px; }
  #component-count { font-size: 10px; }
  .component-search kbd { display: none; }
  .component-grid { grid-template-columns: 1fr; gap: 32px; }
  .component-card-head { min-height: 0; }
  .component-card-head h2 { font-size: 17px; }
  .component-card-head p { font-size: 12px; }
  .component-card-toolbar { padding: 7px 9px; }
  .component-tab { padding: 7px 8px; font-size: 11px; }
  .component-copy { font-size: 11px; }
  .component-preview { min-height: 360px; padding: 16px; }
  .component-preview .fsui { padding: 16px; }
  .component-panel-code, .component-details { height: 430px; padding: 17px; }
  .component-install { margin-top: 48px; padding: 35px 0; grid-template-columns: 1fr; gap: 28px; }
  .component-install-copy h2 { font-size: 28px; }
  .component-install-copy h2 br { display: none; }
  .component-install-code pre { padding: 18px; font-size: 10px; }
  .component-credit { line-height: 1.8; }
}
@media (prefers-reduced-motion: reduce) { .component-page *, .component-page *::before, .component-page *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }

.component-intro { padding-top:38px; padding-bottom:32px; }
.component-kicker { margin-bottom:14px; }
.component-lead { margin-top:14px; }
