@font-face{font-family:aeonik;src:url(../media/aeonik_regular-s.p.1swgm1jb48-5p.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:aeonik;src:url(../media/aeonik_medium-s.p.05sq77xz8x6fo.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:aeonik;src:url(../media/aeonik_bold-s.p.0hwn-gn_2gnhc.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:aeonik Fallback;src:local(Arial);ascent-override:91.72%;descent-override:20.71%;line-gap-override:0.0%;size-adjust:101.4%}.aeonik_ff942e59-module__j6KQZW__className{font-family:aeonik,aeonik Fallback}.aeonik_ff942e59-module__j6KQZW__variable{--font-aeonik:"aeonik", "aeonik Fallback"}
@font-face{font-family:aeonikMono;src:url(../media/aeonik_mono_regular-s.p.3ewb7tiyuu6-1.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:aeonikMono;src:url(../media/aeonik_mono_bold-s.p.2f_zl8aqa-ht-.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:aeonikMono Fallback;src:local(Arial);ascent-override:68.45%;descent-override:15.46%;line-gap-override:0.0%;size-adjust:135.87%}.aeonikmono_ef55c39e-module__zIW-EW__className{font-family:aeonikMono,aeonikMono Fallback}.aeonikmono_ef55c39e-module__zIW-EW__variable{--font-aeonik-mono:"aeonikMono", "aeonikMono Fallback"}
:root{--font:var(--font-aeonik), -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Arial, sans-serif;--font-base:var(--font-aeonik), -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Arial, sans-serif;--font-mono:var(--font-aeonik-mono), ui-monospace, "SF Mono", Menlo, monospace;--ls-mono:.06em;--radius-xs:3px;--radius-sm:4px;--radius-md:6px;--radius:8px;--radius-card:14px;--radius-pill:9999px;--fs-display:48px;--fs-h1:28px;--fs-h2:20px;--fs-lg:18px;--fs-md:16px;--fs-body:16px;--fs-ui-lg:14px;--fs-small:13px;--fs-ui:13px;--fs-xs:12px;--fs-tiny:11px;--fs-badge:10px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--space-xs:6px;--control-h:32px;--control-h-sm:24px;--ff-control-h:var(--control-h);--ff-control-h-sm:var(--control-h-sm);--ff-control-h-mobile:44px;--ff-focus-ring:var(--c-accent-2);--sidebar-w:272px;--drawer-w:min(86vw, 320px);--space-zone-pad:48px;--t-fast:60ms;--t-med:.18s;--t-medium:.15s;--t-slow:.28s;--ease-std:cubic-bezier(.2,0,0,1);--c-bg:#fafaf9;--c-bg-panel:#f3f1ec;--c-bg-sidebar:#f1efe9;--c-bg-card:#fff;--c-fg:#111;--c-fg-muted:#5e5d5a;--c-fg-subtle:#6e6d69;--c-border:#e9e8e3;--c-border-hover:#d6d5cf;--c-border-strong:#111;--c-surface:#fff;--c-surface-hover:#f3f2ee;--c-surface-elevated:#fff;--c-accent:#1f1f1f;--c-accent-bg:#ececec;--c-accent-2:#5f5f5f;--c-on-accent:var(--c-bg);--c-success:#1a8b3c;--c-success-bg:#ecf6ee;--c-warning:#a06b00;--c-warning-bg:#fbf2dc;--c-danger:#b22424;--c-danger-bg:#fbeaea;--c-progress:#6d28d9;--c-progress-bg:#ede9fe;--c-backdrop:#1116;--c-brand:#e8503a;--cat-1:#d64541;--cat-2:#2d5be3;--cat-3:#8b4fb8;--cat-4:#178a6e;--cat-5:#c77d0a;--shadow-xs:0 1px 2px #0000000f;--shadow-soft:0 1px 2px #0000000a, 0 4px 12px #0000000d;--shadow-strong:0 2px 4px #0000000d, 0 12px 32px #00000014;--shadow-lg:0 8px 20px #00000014, 0 24px 48px #0000001f}:root[data-theme=dark]{--c-bg:#1f1f1f;--c-bg-panel:#2b2b2b;--c-bg-sidebar:#262626;--c-bg-card:#2b2b2b;--c-fg:#ededed;--c-fg-muted:#9d9d9d;--c-fg-subtle:#8c8c8c;--c-border:#3d3d3d;--c-border-hover:#4a4a4a;--c-border-strong:#ededed;--c-surface:#2b2b2b;--c-surface-hover:#353535;--c-surface-elevated:#353535;--c-accent:#ededed;--c-accent-bg:#353535;--c-accent-2:#c4c4c4;--c-on-accent:var(--c-bg);--c-success:#4ade80;--c-success-bg:#14241b;--c-warning:#f5b347;--c-warning-bg:#2a1f0e;--c-danger:#f87171;--c-danger-bg:#2a1414;--c-progress:#c4b5fd;--c-progress-bg:#2e2547;--c-backdrop:#0009;--c-brand:#ff6a52;--cat-1:#f0857a;--cat-2:#7fa0f5;--cat-3:#c49ae6;--cat-4:#4fcba8;--cat-5:#e8b14e;--shadow-xs:0 1px 2px #00000080;--shadow-soft:0 1px 3px #00000080, 0 4px 12px #00000080;--shadow-strong:0 2px 6px #0003, 0 8px 24px #0000004d;--shadow-lg:0 10px 24px #0009, 0 28px 56px #000000a8}
.ff-btn{font-family:var(--font-base);font-weight:500;font-size:var(--fs-small,13px);height:var(--ff-control-h,32px);padding:0 var(--space-4,16px);border-radius:var(--radius);border:1px solid var(--c-border-strong,var(--c-fg));background:var(--c-surface);color:var(--c-fg);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-2,8px);white-space:nowrap;transition:background var(--t-fast,60ms) var(--ease-std),color var(--t-fast,60ms) var(--ease-std),border-color var(--t-fast,60ms) var(--ease-std);text-decoration:none;display:inline-flex}.ff-btn[data-hovered]{background:var(--c-fg);color:var(--c-bg)}.ff-btn--primary{background:var(--c-accent);color:var(--c-on-accent);border-color:var(--c-accent)}.ff-btn--primary[data-hovered]{background:var(--c-bg);color:var(--c-fg);border-color:var(--c-border-strong,var(--c-fg))}.ff-btn--sm{height:var(--ff-control-h-sm,24px);padding:0 var(--space-3,12px);font-size:var(--fs-tiny,11px)}.ff-btn[data-focus-visible]{outline:2px solid var(--ff-focus-ring,var(--c-fg));outline-offset:2px}.ff-btn[data-disabled]{opacity:.5;cursor:not-allowed}.ff-badge{white-space:nowrap;font-family:var(--font-mono);font-size:var(--fs-badge,10px);text-transform:uppercase;letter-spacing:var(--ls-mono);border-radius:var(--radius-sm);border:1px solid var(--c-border);height:18px;color:var(--c-fg-muted);background:var(--c-bg);align-items:center;gap:4px;padding:2px 6px;line-height:1;display:inline-flex}.ff-badge--neutral{color:var(--c-fg-muted);background:var(--c-bg);border-color:var(--c-border)}.ff-badge svg{width:11px;height:11px}.ff-badge--success{color:var(--c-success);background:var(--c-success-bg);border-color:color-mix(in srgb,var(--c-success) 20%,transparent)}.ff-badge--warning{color:var(--c-warning);background:var(--c-warning-bg);border-color:color-mix(in srgb,var(--c-warning) 20%,transparent)}.ff-badge--danger{color:var(--c-danger);background:var(--c-danger-bg);border-color:color-mix(in srgb,var(--c-danger) 20%,transparent)}.ff-badge--strong{color:var(--c-fg);background:var(--c-surface-hover);border-color:var(--c-border)}.ff-statusdot{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--ls-mono);font-size:var(--fs-tiny,11px);color:var(--c-fg-muted);align-items:center;gap:7px;display:inline-flex}.ff-statusdot:before{content:"";border-radius:var(--radius-pill);background:var(--dot,var(--c-fg-subtle));flex:none;width:9px;height:9px}.ff-statusdot[data-tone=success]{--dot:var(--c-success)}.ff-statusdot[data-tone=warning]{--dot:var(--c-warning)}.ff-statusdot[data-tone=danger]{--dot:var(--c-danger)}.ff-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-card);padding:var(--space-6,24px);transition:border-color var(--t-medium,.15s) var(--ease-std),box-shadow var(--t-medium,.15s) var(--ease-std)}.ff-card--panel{background:var(--c-bg-panel);border-radius:var(--radius);border:none}.ff-divider{background:var(--c-border-strong,var(--c-fg));height:1px;margin:var(--space-6,24px) 0;border:0}.ff-card--compact{padding:var(--space-4,16px)}.ff-card--strong{border-color:var(--c-border-strong,var(--c-fg))}.ff-card--clickable{cursor:pointer}.ff-card--clickable:hover,a.ff-card:hover{border-color:var(--c-fg-subtle)}.ff-card--clickable:focus-visible,a.ff-card:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}.ff-card__label{justify-content:space-between;align-items:center;gap:var(--space-3,12px);margin-bottom:var(--space-3,12px);font-family:var(--font-mono);font-size:var(--fs-tiny,11px);text-transform:uppercase;letter-spacing:var(--ls-mono);color:var(--c-fg-subtle);display:flex}.ff-card__title{font-size:var(--fs-lg,18px);letter-spacing:-.005em;color:var(--c-fg);font-weight:500;line-height:24px}.ff-card__meta{gap:var(--space-2,8px);font-size:var(--fs-small,13px);color:var(--c-fg-muted);flex-wrap:wrap;display:flex}.ff-skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--c-surface-hover) 25%,var(--c-border) 37%,var(--c-surface-hover) 63%);background-size:400% 100%;animation:1.4s infinite ff-shimmer;display:block}@keyframes ff-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.ff-skeleton{animation:none}}.ff-spinner{border-radius:var(--radius-pill);border:2px solid var(--c-border);border-top-color:var(--c-accent);width:18px;height:18px;animation:.7s linear infinite ff-spin;display:inline-block}@keyframes ff-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ff-spinner{animation-duration:2s}}.ff-btn--danger{color:var(--c-danger);border-color:var(--c-danger);background:0 0}.ff-btn--danger[data-hovered]{background:var(--c-danger);border-color:var(--c-danger);color:var(--c-bg)}.ff-btn--success{color:var(--c-success);border-color:var(--c-success);background:0 0}.ff-btn--success[data-hovered]{background:var(--c-success);border-color:var(--c-success);color:var(--c-bg)}.ff-btn--warning{color:var(--c-warning);border-color:var(--c-warning);background:0 0}.ff-btn--warning[data-hovered]{background:var(--c-warning);border-color:var(--c-warning);color:var(--c-bg)}.ff-btn--quiet{color:var(--c-fg-muted);background:0 0;border-color:#0000}.ff-btn--quiet[data-hovered]{background:var(--c-surface-hover);color:var(--c-fg);border-color:#0000}.ff-badge--muted{color:var(--c-fg-subtle);background:var(--c-bg);border-color:var(--c-border)}.ff-badge--progress{color:var(--c-progress);background:var(--c-progress-bg);border-color:color-mix(in srgb,var(--c-progress) 20%,transparent)}.ff-icon-btn{width:var(--control-h-sm,30px);height:var(--control-h-sm,30px);border-radius:var(--radius);border:1px solid var(--c-border-strong,var(--c-fg));color:var(--c-fg);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.ff-icon-btn svg{width:17px;height:17px}.ff-icon-btn[data-hovered]{background:var(--c-fg);color:var(--c-bg);border-color:var(--c-fg)}.ff-icon-btn[data-focus-visible]{outline:2px solid var(--ff-focus-ring,var(--c-fg));outline-offset:2px}.ff-icon-btn[data-disabled]{opacity:.5;cursor:not-allowed}.ff-icon-btn--danger{color:var(--c-danger);border-color:var(--c-danger)}.ff-icon-btn--danger[data-hovered]{background:var(--c-danger-bg);color:var(--c-danger);border-color:var(--c-danger)}.ff-tag{border-radius:var(--radius-sm);height:18px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--ls-mono);font-size:var(--fs-tiny,11px);white-space:nowrap;border:1px solid var(--c-border);background:var(--c-bg-panel);color:var(--c-fg-muted);align-items:center;gap:4px;padding:2px 6px;font-weight:500;line-height:1;display:inline-flex}.ff-tag--success{color:var(--c-success);background:var(--c-success-bg);border-color:color-mix(in srgb,var(--c-success) 20%,transparent)}.ff-tag--warning{color:var(--c-warning);background:var(--c-warning-bg);border-color:color-mix(in srgb,var(--c-warning) 20%,transparent)}.ff-tag--danger{color:var(--c-danger);background:var(--c-danger-bg);border-color:color-mix(in srgb,var(--c-danger) 20%,transparent)}.ff-tag--progress{color:var(--c-progress);background:var(--c-progress-bg);border-color:color-mix(in srgb,var(--c-progress) 20%,transparent)}.ff-tag--custom{--ff-tag-c:var(--c-fg-muted);color:var(--ff-tag-c);background:color-mix(in srgb,var(--ff-tag-c) 13%,var(--c-bg-panel));border-color:color-mix(in srgb,var(--ff-tag-c) 32%,transparent)}.ff-tag--flat{--ff-tag-c:var(--c-fg-muted);color:var(--ff-tag-c);background:color-mix(in srgb,var(--ff-tag-c) 12%,transparent);border-color:var(--c-border)}.ff-modal-overlay{z-index:var(--z-modal,110);background:var(--c-backdrop,#0000008c);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.ff-modal-overlay[data-entering]{animation:.16s ff-fade}.ff-modal-overlay[data-exiting]{animation:.14s reverse ff-fade}@keyframes ff-fade{0%{opacity:0}to{opacity:1}}.ff-modal{background:var(--c-surface-elevated,var(--c-surface));border:1px solid var(--c-border);border-radius:var(--radius-card);box-shadow:var(--shadow-lg);outline:none;flex-direction:column;width:100%;max-height:calc(100vh - 48px);display:flex;overflow:hidden}.ff-modal[data-entering]{animation:.18s cubic-bezier(.2,.9,.3,1) ff-modal-in}@keyframes ff-modal-in{0%{opacity:0;transform:translateY(6px)scale(.99)}to{opacity:1;transform:none}}.ff-modal--sm{max-width:400px}.ff-modal--md{max-width:560px}.ff-modal--lg{max-width:820px}.ff-modal--xl{max-width:1100px}.ff-modal__dialog{min-height:0;color:var(--c-fg);outline:none;flex-direction:column;display:flex;overflow:auto}.ff-modal__head{border-bottom:1px solid var(--c-border);justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.ff-modal__title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--ls-mono);font-size:var(--fs-tiny,11px);color:var(--c-fg-subtle);margin:0;font-weight:500}.ff-modal__close{width:var(--control-h-sm,30px);height:var(--control-h-sm,30px);border-radius:var(--radius-sm);color:var(--c-fg-muted);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;display:inline-flex}.ff-modal__close:hover{background:var(--c-surface-hover);color:var(--c-fg)}.ff-slideover-overlay{height:100dvh;z-index:var(--z-modal,110);background:var(--c-backdrop,#0000008c);grid-template-rows:minmax(0,1fr);grid-template-columns:1fr min(560px,92vw);display:grid;position:fixed;inset:0}.ff-slideover-overlay--wide{grid-template-columns:1fr min(780px,94vw)}.ff-slideover-overlay[data-entering]{animation:.16s ff-fade}.ff-slideover-overlay[data-exiting]{animation:.14s reverse ff-fade}@media (max-width:640px){.ff-slideover-overlay,.ff-slideover-overlay--wide{grid-template-columns:0 1fr}}.ff-slideover{background:var(--c-surface);border-left:1px solid var(--c-border);box-shadow:var(--shadow-lg);outline:none;flex-direction:column;grid-column:2;min-height:0;display:flex;overflow:hidden}.ff-slideover[data-entering]{animation:.18s cubic-bezier(.2,.9,.3,1) ff-slideover-in}@keyframes ff-slideover-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}.ff-slideover__dialog{min-height:0;color:var(--c-fg);outline:none;flex-direction:column;height:100%;display:flex}.ff-slideover__head{border-bottom:1px solid var(--c-border);background:var(--c-surface);flex:none;align-items:center;gap:12px;padding:16px 24px;display:flex}.ff-slideover__head-title{font-family:var(--font-mono);font-size:var(--fs-small,13px);text-transform:uppercase;letter-spacing:.06em;color:var(--c-fg-muted);flex:auto;margin:0}.ff-slideover__close{border-radius:var(--radius,6px);width:28px;height:28px;color:var(--c-fg-muted);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;display:inline-flex}.ff-slideover__close:hover{background:var(--c-surface-hover);color:var(--c-fg)}.ff-slideover__body{flex-direction:column;flex:auto;gap:24px;padding:24px;display:flex;overflow-y:auto}.ff-slideover__foot{border-top:1px solid var(--c-border);background:var(--c-surface);font-size:var(--fs-tiny,11px);color:var(--c-fg-subtle);flex:none;align-items:center;gap:8px;padding:12px 24px;display:flex}.ff-checkbox{font-family:var(--font-base);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer;align-items:center;gap:8px;display:inline-flex}.ff-checkbox__box{border:1px solid var(--c-border-strong,var(--c-border));border-radius:var(--radius-sm);background:var(--c-surface);color:#0000;flex:none;justify-content:center;align-items:center;width:18px;height:18px;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.ff-checkbox__check{width:14px;height:14px}.ff-checkbox[data-selected] .ff-checkbox__box,.ff-checkbox[data-indeterminate] .ff-checkbox__box{background:var(--c-fg);border-color:var(--c-fg);color:var(--c-bg)}.ff-checkbox[data-focus-visible] .ff-checkbox__box{outline:2px solid var(--ff-focus-ring,var(--c-fg));outline-offset:2px}.ff-checkbox[data-disabled]{opacity:.5;cursor:not-allowed}.ff-checkbox__label{line-height:1.2}.ff-switch{font-family:var(--font-base);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer;align-items:center;gap:9px;display:inline-flex}.ff-switch__track{border-radius:var(--radius-pill);background:var(--c-border-hover,var(--c-border));flex:none;align-items:center;width:34px;height:20px;padding:2px;transition:background .15s;display:inline-flex}.ff-switch__thumb{background:var(--c-surface);border-radius:50%;width:16px;height:16px;transition:transform .15s;box-shadow:0 1px 2px #0000004d}.ff-switch[data-selected] .ff-switch__track{background:var(--c-accent,var(--c-fg))}.ff-switch[data-selected] .ff-switch__thumb{transform:translate(14px)}.ff-switch[data-focus-visible] .ff-switch__track{outline:2px solid var(--ff-focus-ring,var(--c-fg));outline-offset:2px}.ff-switch[data-disabled]{opacity:.5;cursor:not-allowed}.ff-tabs{flex-direction:column;min-height:0;display:flex}.ff-tablist{border-bottom:1px solid var(--c-border);gap:22px;display:flex}.ff-tab{appearance:none;cursor:pointer;color:var(--c-fg-muted);font-family:inherit;font-size:var(--fs-ui-lg,14px);background:0 0;border:0;border-bottom:2px solid #0000;outline:none;margin-bottom:-1px;padding:9px 1px;font-weight:500;transition:color .12s,border-color .12s}.ff-tab[data-hovered]{color:var(--c-fg)}.ff-tab[data-selected]{color:var(--c-fg);border-bottom-color:var(--c-fg)}.ff-tab[data-focus-visible]{outline:2px solid var(--ff-focus-ring,var(--c-fg));outline-offset:2px;border-radius:3px}.ff-tab[data-disabled]{opacity:.45;cursor:not-allowed}.ff-tabpanel{outline:none;padding-top:16px}.ff-tooltip{background:var(--c-fg);color:var(--c-bg);font-family:var(--font-base);font-size:var(--fs-xs,12px);border-radius:var(--radius-sm);box-shadow:var(--shadow-xs);max-width:260px;padding:4px 8px}.ff-tooltip[data-entering]{animation:.12s ff-fade}.ff-menu-popover{outline:none}.ff-menu{background:var(--c-surface-elevated,var(--c-surface));border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow-soft);outline:none;flex-direction:column;gap:1px;min-width:180px;padding:4px;display:flex}.ff-menu-item{border-radius:var(--radius-sm);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer;outline:none;align-items:center;gap:8px;padding:7px 10px;display:flex}.ff-menu-item[data-hovered],.ff-menu-item[data-focused]{background:var(--c-surface-hover)}.ff-menu-item[data-disabled]{opacity:.45;cursor:not-allowed}.ff-field{flex-direction:column;gap:6px;display:flex}.ff-field__label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--ls-mono);font-size:var(--fs-tiny,11px);color:var(--c-fg-muted)}.ff-field__desc{font-size:var(--fs-xs,12px);color:var(--c-fg-muted)}.ff-field__error{font-size:var(--fs-tiny,11px);color:var(--c-danger)}.ff-input{width:100%;min-height:var(--control-h,36px);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);color:var(--c-fg);font-family:var(--font-base);font-size:var(--fs-ui-lg,14px);outline:none;padding:0 11px;transition:border-color .12s}.ff-input::placeholder{color:var(--c-fg-subtle)}.ff-input[data-focused],.ff-input[data-hovered]{border-color:var(--c-border-hover,var(--c-fg))}.ff-input[data-focused]{border-color:var(--c-fg);outline:2px solid var(--ff-focus-ring,var(--c-accent-2));outline-offset:-1px}.ff-input[data-invalid]{border-color:var(--c-danger)}.ff-textarea{resize:vertical;min-height:76px;padding:8px 11px;line-height:1.45}.ff-numfield{align-items:stretch;gap:0;display:flex}.ff-numfield__input{border-top-right-radius:0;border-bottom-right-radius:0}.ff-numfield__steps{border:1px solid var(--c-border);border-radius:0 var(--radius) var(--radius) 0;border-left:0;flex-direction:column;display:flex;overflow:hidden}.ff-numfield__step{background:var(--c-surface);width:26px;color:var(--c-fg-muted);cursor:pointer;font-size:var(--fs-small,13px);border:0;flex:1;place-items:center;line-height:1;display:grid}.ff-numfield__step:first-child{border-bottom:1px solid var(--c-border)}.ff-numfield__step[data-hovered]{background:var(--c-surface-hover);color:var(--c-fg)}.ff-radiogroup{flex-direction:column;gap:8px;display:flex}.ff-radio{font-family:var(--font-base);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer;align-items:center;gap:8px;display:inline-flex}.ff-radio__dot{border:1px solid var(--c-border-strong,var(--c-border));background:var(--c-surface);border-radius:50%;flex:none;width:18px;height:18px;transition:border-color .12s;position:relative}.ff-radio[data-selected] .ff-radio__dot{border-color:var(--c-fg)}.ff-radio[data-selected] .ff-radio__dot:after{content:"";background:var(--c-fg);border-radius:50%;position:absolute;inset:4px}.ff-radio[data-focus-visible] .ff-radio__dot{outline:2px solid var(--ff-focus-ring,var(--c-fg));outline-offset:2px}.ff-radio[data-disabled]{opacity:.5;cursor:not-allowed}.ff-slider{font-family:var(--font-base);flex-direction:column;gap:6px;display:flex}.ff-slider__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.ff-slider__out{font-family:var(--font-mono);font-size:var(--fs-tiny,11px);letter-spacing:var(--ls-mono);color:var(--c-fg-muted)}.ff-slider__track{cursor:pointer;align-items:center;width:100%;height:16px;display:flex;position:relative}.ff-slider__track:before{content:"";background:var(--c-border-hover,var(--c-border));border-radius:var(--radius-pill);width:100%;height:3px;position:absolute;top:50%;transform:translateY(-50%)}.ff-slider__fill{background:var(--c-accent,var(--c-fg));border-radius:var(--radius-pill);pointer-events:none;height:3px;position:absolute;top:50%;transform:translateY(-50%)}.ff-slider__thumb{background:var(--c-accent,var(--c-fg));border:2px solid var(--c-bg,var(--c-surface));border-radius:50%;width:15px;height:15px;top:50%;box-shadow:0 1px 3px #0000004d}.ff-slider__thumb[data-dragging]{background:var(--c-fg)}.ff-slider__thumb[data-focus-visible]{outline:2px solid var(--ff-focus-ring,var(--c-accent-2));outline-offset:2px}.ff-progress{font-family:var(--font-base);flex-direction:column;gap:6px;display:flex}.ff-progress__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.ff-progress__val{font-family:var(--font-mono);font-size:var(--fs-tiny,11px);letter-spacing:var(--ls-mono);color:var(--c-fg-muted)}.ff-progress__track{background:var(--c-border-hover,var(--c-border));border-radius:var(--radius-pill);width:100%;height:6px;overflow:hidden}.ff-progress__fill{background:var(--c-accent,var(--c-fg));border-radius:var(--radius-pill);height:100%;transition:width .2s}.ff-popover{background:var(--c-surface-elevated,var(--c-surface));border:1px solid var(--c-border);border-radius:var(--radius-card);box-shadow:var(--shadow-strong);color:var(--c-fg);outline:none;max-width:min(92vw,360px);padding:12px}.ff-popover[data-entering]{animation:.13s ff-pop-in}.ff-popover[data-exiting]{animation:.1s reverse ff-pop-in}@keyframes ff-pop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.ff-popover__dialog{outline:none;flex-direction:column;gap:10px;display:flex}.ff-toast-region{z-index:var(--z-toast,200);pointer-events:none;flex-direction:column;gap:10px;max-width:380px;padding:16px;display:flex;position:fixed}.ff-toast-region--bottom-right{align-items:flex-end;bottom:0;right:0}.ff-toast-region--bottom-left{align-items:flex-start;bottom:0;left:0}.ff-toast-region--top-right{align-items:flex-end;top:0;right:0}.ff-toast-region--top-left{align-items:flex-start;top:0;left:0}.ff-toast{pointer-events:auto;background:var(--c-surface-elevated,var(--c-surface));border:1px solid var(--c-border);border-radius:var(--radius-card);min-width:260px;max-width:100%;box-shadow:var(--shadow-strong);color:var(--c-fg);align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.ff-toast[data-entering]{animation:.18s cubic-bezier(.2,.9,.3,1) ff-toast-in}.ff-toast[data-exiting]{animation:.16s forwards ff-toast-out}@keyframes ff-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes ff-toast-out{to{opacity:0;transform:translate(8px)}}.ff-toast__content{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ff-toast__title{font-size:var(--fs-ui-lg,14px);color:var(--c-fg);font-weight:500;line-height:1.3}.ff-toast__desc{font-size:var(--fs-xs,12px);color:var(--c-fg-muted);line-height:1.35}.ff-toast--success .ff-toast__title{color:var(--c-success)}.ff-toast--warning .ff-toast__title{color:var(--c-warning)}.ff-toast--danger .ff-toast__title{color:var(--c-danger)}.ff-toast__close{width:22px;height:22px;color:var(--c-fg-subtle);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;margin:-2px -4px 0 0;display:inline-flex}.ff-toast__close[data-hovered]{background:var(--c-surface-hover);color:var(--c-fg)}.ff-banner{align-items:flex-start;gap:var(--space-2,8px);padding:var(--space-3,12px) var(--space-4,16px);border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-bg-panel);color:var(--c-fg);font-family:var(--font-base);font-size:var(--fs-small,13px);display:flex}.ff-banner__icon{color:var(--c-fg-muted);flex:none;margin-top:1px;display:inline-flex}.ff-banner__icon svg{width:17px;height:17px}.ff-banner__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ff-banner__title{color:var(--c-fg);font-weight:500}.ff-banner__text{color:var(--c-fg-muted);line-height:1.4}.ff-banner__close{width:22px;height:22px;color:var(--c-fg-subtle);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;margin:-1px -3px 0 0;display:inline-flex}.ff-banner__close:hover{background:var(--c-surface-hover);color:var(--c-fg)}.ff-banner--info{background:var(--c-bg-panel);border-color:var(--c-border)}.ff-banner--info .ff-banner__icon{color:var(--c-fg)}.ff-banner--success{background:var(--c-success-bg);border-color:color-mix(in srgb,var(--c-success) 22%,transparent)}.ff-banner--success .ff-banner__icon,.ff-banner--success .ff-banner__title{color:var(--c-success)}.ff-banner--warning{background:var(--c-warning-bg);border-color:color-mix(in srgb,var(--c-warning) 22%,transparent)}.ff-banner--warning .ff-banner__icon,.ff-banner--warning .ff-banner__title{color:var(--c-warning)}.ff-banner--danger{background:var(--c-danger-bg);border-color:color-mix(in srgb,var(--c-danger) 22%,transparent)}.ff-banner--danger .ff-banner__icon,.ff-banner--danger .ff-banner__title{color:var(--c-danger)}.ff-empty{text-align:center;color:var(--c-fg-muted);flex-direction:column;align-items:center;gap:8px;padding:48px 24px;display:flex}.ff-empty__icon{border-radius:var(--radius-card);background:var(--c-surface-hover);width:44px;height:44px;color:var(--c-fg-subtle);justify-content:center;align-items:center;margin-bottom:2px;display:inline-flex}.ff-empty__icon svg{width:22px;height:22px}.ff-empty__title{color:var(--c-fg);font-size:15px;font-weight:500}.ff-empty__desc{font-size:var(--fs-small,13px);color:var(--c-fg-muted);max-width:340px;line-height:1.45}.ff-empty__action{margin-top:8px}.ff-empty--accent .ff-empty__icon{color:var(--ff-empty-ac);background:color-mix(in srgb,var(--ff-empty-ac) 12%,var(--c-surface-hover))}.ff-search__box{align-items:center;display:flex;position:relative}.ff-search__icon{color:var(--c-fg-subtle);pointer-events:none;position:absolute;left:11px}.ff-search__input{padding-left:34px;padding-right:32px}.ff-search__clear{width:22px;height:22px;color:var(--c-fg-subtle);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex;position:absolute;right:6px}.ff-search__clear[data-hovered]{background:var(--c-surface-hover);color:var(--c-fg)}.ff-search[data-empty] .ff-search__clear{display:none}.ff-combo__box{align-items:center;display:flex;position:relative}.ff-combo__input{padding-right:34px}.ff-combo__btn{width:26px;height:26px;color:var(--c-fg-subtle);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-tiny,11px);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex;position:absolute;right:4px}.ff-combo__btn[data-hovered]{background:var(--c-surface-hover);color:var(--c-fg)}.ff-combo__popover{background:var(--c-surface-elevated,var(--c-surface));border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow-soft);min-width:var(--trigger-width);outline:none;padding:4px}.ff-combo__listbox{outline:none;flex-direction:column;gap:1px;max-height:280px;display:flex;overflow:auto}.ff-combo__option{border-radius:var(--radius-sm);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer;outline:none;padding:7px 10px}.ff-combo__option[data-hovered],.ff-combo__option[data-focused]{background:var(--c-surface-hover)}.ff-combo__option[data-selected]{background:var(--c-accent-bg);font-weight:500}.ff-combo__option[data-disabled]{opacity:.4;pointer-events:none}.ff-toggle-btn{height:var(--control-h-sm,30px);font-family:var(--font-base);font-size:var(--fs-ui-lg,14px);border:1px solid var(--c-border-strong,var(--c-fg));border-radius:var(--radius);color:var(--c-fg);cursor:pointer;background:0 0;align-items:center;gap:7px;padding:0 12px;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.ff-toggle-btn[data-hovered]{background:var(--c-surface-hover)}.ff-toggle-btn[data-selected]{background:var(--c-fg);color:var(--c-bg);border-color:var(--c-fg)}.ff-toggle-btn[data-focus-visible]{outline:2px solid var(--ff-focus-ring,var(--c-fg));outline-offset:2px}.ff-toggle-btn[data-disabled]{opacity:.5;cursor:not-allowed}.ff-toggle-group{gap:6px;display:inline-flex}.ff-crumbs{font-family:var(--font-base);font-size:var(--fs-small,13px);flex-wrap:wrap;align-items:center;gap:0;margin:0;padding:0;list-style:none;display:flex}.ff-crumb{color:var(--c-fg-subtle);align-items:center;display:inline-flex}.ff-crumb:not(:last-child):after{content:"/";color:var(--c-fg-subtle);opacity:.6;margin:0 8px}.ff-crumb__link{color:var(--c-fg-muted);cursor:pointer;border-radius:var(--radius-sm);text-decoration:none}.ff-crumb__link[data-hovered]{color:var(--c-fg);text-decoration:underline}.ff-crumb__link[data-focus-visible]{outline:2px solid var(--ff-focus-ring,var(--c-fg));outline-offset:2px}.ff-crumb__cur{color:var(--c-fg);font-weight:500}.ff-toolbar{background:var(--c-bg-panel);border:1px solid var(--c-border);border-radius:var(--radius);align-items:center;gap:6px;padding:5px;display:inline-flex}.ff-toolbar[data-orientation=vertical]{flex-direction:column;align-items:stretch}.ff-link{color:var(--c-fg);text-underline-offset:2px;cursor:pointer;border-radius:2px;text-decoration:underline}.ff-link[data-hovered]{color:var(--c-fg-muted)}.ff-link[data-focus-visible]{outline:2px solid var(--ff-focus-ring,var(--c-fg));outline-offset:2px}.ff-link[data-disabled]{opacity:.5;cursor:default}.ff-disclosure{border-bottom:1px solid var(--c-border)}.ff-disclosure__heading{margin:0}.ff-disclosure__trigger{width:100%;font-family:var(--font-base);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer;text-align:left;background:0 0;border:0;outline:none;align-items:center;gap:8px;padding:12px 2px;font-weight:500;display:flex}.ff-disclosure__trigger[data-focus-visible]{outline:2px solid var(--ff-focus-ring,var(--c-fg));outline-offset:2px;border-radius:var(--radius-sm)}.ff-disclosure__chevron{color:var(--c-fg-subtle);flex:none;transition:transform .15s}.ff-disclosure[data-expanded] .ff-disclosure__chevron{transform:rotate(90deg)}.ff-disclosure__title{flex:1}.ff-disclosure__panel{color:var(--c-fg-muted);font-size:var(--fs-ui-lg,14px);padding:2px 2px 14px 22px;line-height:1.5}.ff-disclosure-group{flex-direction:column;display:flex}.ff-pagination{font-family:var(--font-base);align-items:center;gap:3px;display:inline-flex}.ff-pagination__nav,.ff-pagination__page{border-radius:var(--radius);min-width:30px;height:30px;color:var(--c-fg-muted);font-size:var(--fs-small,13px);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0 8px;transition:background .12s,color .12s;display:inline-flex}.ff-pagination__nav:hover:not(:disabled),.ff-pagination__page:hover{background:var(--c-surface-hover);color:var(--c-fg)}.ff-pagination__nav:disabled{opacity:.4;cursor:not-allowed}.ff-pagination__page.is-current{background:var(--c-fg);color:var(--c-bg);font-weight:500}.ff-pagination__gap{text-align:center;min-width:22px;color:var(--c-fg-subtle)}.ff-avatar{border-radius:var(--radius-pill);background:var(--c-surface-hover);color:var(--c-fg-muted);font-family:var(--font-base);border:1px solid var(--c-border);-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;font-weight:500;line-height:1;display:inline-flex;overflow:hidden}.ff-avatar__img{object-fit:cover;width:100%;height:100%;display:block}.ff-avatar__txt{font-size:.42em}.ff-avatar--xs{width:22px;height:22px;font-size:22px}.ff-avatar--sm{width:28px;height:28px;font-size:28px}.ff-avatar--md{width:36px;height:36px;font-size:36px}.ff-avatar--lg{width:48px;height:48px;font-size:48px}.ff-avatar--more{background:var(--c-bg-panel);color:var(--c-fg-muted)}.ff-avatar-group{align-items:center;display:inline-flex}.ff-avatar-group .ff-avatar{border:2px solid var(--c-bg,var(--c-surface));margin-left:-8px}.ff-avatar-group .ff-avatar:first-child{margin-left:0}.ff-table{border-collapse:collapse;width:100%;font-family:var(--font-base);font-size:var(--fs-ui-lg,14px);color:var(--c-fg)}.ff-table__col{text-align:left;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--ls-mono);font-size:var(--fs-tiny,11px);color:var(--c-fg-subtle);border-bottom:1px solid var(--c-border);white-space:nowrap;outline:none;padding:8px 12px;font-weight:400}.ff-table__col[data-sort-direction]{color:var(--c-fg);cursor:pointer}.ff-table__col[data-focus-visible]{outline:2px solid var(--ff-focus-ring,var(--c-fg));outline-offset:-2px}.ff-table__row{border-bottom:1px solid var(--c-border);outline:none}.ff-table__row[data-hovered]{background:var(--c-surface-hover)}.ff-table__row[data-selected]{background:var(--c-accent-bg)}.ff-table__row[data-focus-visible]{outline:2px solid var(--ff-focus-ring,var(--c-fg));outline-offset:-2px}.ff-table__cell{vertical-align:middle;outline:none;padding:9px 12px}.ff-cmdk__backdrop{background:var(--c-backdrop);z-index:var(--z-modal,110);justify-content:center;align-items:flex-start;padding:12vh 16px 16px;display:flex;position:fixed;inset:0}.ff-cmdk__backdrop[data-entering]{animation:.12s ff-pop-in}.ff-cmdk__backdrop[data-exiting]{animation:.1s reverse ff-pop-in}.ff-cmdk{background:var(--c-surface-elevated,var(--c-surface));border:1px solid var(--c-border);border-radius:var(--radius-card);width:560px;max-width:100%;box-shadow:var(--shadow-strong);overflow:hidden}.ff-cmdk__dialog{outline:none;flex-direction:column;max-height:60vh;display:flex}.ff-cmdk__search{border-bottom:1px solid var(--c-border);display:block}.ff-cmdk__input{width:100%;height:52px;color:var(--c-fg);font-family:var(--font-base);background:0 0;border:none;outline:none;padding:0 16px;font-size:15px}.ff-cmdk__input::placeholder{color:var(--c-fg-subtle)}.ff-cmdk__menu{outline:none;flex-direction:column;gap:2px;padding:6px;display:flex;overflow:auto}.ff-cmdk__section{flex-direction:column;gap:1px;display:flex}.ff-cmdk__section-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--ls-mono);font-size:var(--fs-tiny,11px);color:var(--c-fg-subtle);padding:8px 10px 4px}.ff-cmdk__item{border-radius:var(--radius-sm);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer;outline:none;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;display:flex}.ff-cmdk__item[data-hovered],.ff-cmdk__item[data-focused]{background:var(--c-surface-hover)}.ff-cmdk__item[data-disabled]{opacity:.45;cursor:not-allowed}.ff-cmdk__item-hint{font-family:var(--font-mono);font-size:var(--fs-tiny,11px);color:var(--c-fg-subtle);border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface);padding:1px 6px}.ff-listbox{border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface);outline:none;flex-direction:column;gap:1px;max-height:320px;padding:4px;display:flex;overflow:auto}.ff-listbox__item{border-radius:var(--radius-sm);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer;outline:none;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;display:flex}.ff-listbox__item[data-hovered],.ff-listbox__item[data-focused]{background:var(--c-surface-hover)}.ff-listbox__item[data-selected]{background:var(--c-accent-bg);font-weight:500}.ff-listbox__item[data-selected]:after{content:"✓";color:var(--c-fg);font-size:var(--fs-xs,12px)}.ff-listbox__item[data-disabled]{opacity:.4;cursor:not-allowed;pointer-events:none}.ff-gridlist{border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface);outline:none;flex-direction:column;display:flex;overflow:hidden}.ff-gridlist__item{font-size:var(--fs-ui-lg,14px);color:var(--c-fg);border-bottom:1px solid var(--c-border);cursor:pointer;outline:none;align-items:center;gap:10px;padding:10px 12px;display:flex}.ff-gridlist__item:last-child{border-bottom:none}.ff-gridlist__item[data-hovered],.ff-gridlist__item[data-focused]{background:var(--c-surface-hover)}.ff-gridlist__item[data-selected]{background:var(--c-accent-bg)}.ff-gridlist__item[data-focus-visible]{outline:2px solid var(--ff-focus-ring,var(--c-accent-2));outline-offset:-2px}.ff-tree{border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface);outline:none;flex-direction:column;gap:1px;max-height:340px;padding:4px;display:flex;overflow:auto}.ff-tree__item{outline:none}.ff-tree__item [slot=chevron]{cursor:pointer;color:var(--c-fg-subtle);transition:transform .12s;display:inline-flex}.ff-tree__item[data-expanded]>* [slot=chevron]{transform:rotate(90deg)}.ff-tree__item [role=row],.ff-tree__item .react-aria-TreeItemContent{border-radius:var(--radius-sm);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer;align-items:center;gap:6px;padding:6px 8px;display:flex}.ff-tree__item[data-hovered]>.react-aria-TreeItemContent,.ff-tree__item[data-focused]>.react-aria-TreeItemContent{background:var(--c-surface-hover)}.ff-tree__item[data-selected]>.react-aria-TreeItemContent{background:var(--c-accent-bg)}.ff-taggroup{flex-direction:column;gap:6px;display:flex}.ff-taggroup__list{outline:none;flex-wrap:wrap;gap:6px;display:flex}.ff-taggroup__tag{border-radius:var(--radius-pill);border:1px solid var(--c-border);background:var(--c-surface);font-size:var(--fs-small,13px);color:var(--c-fg);cursor:default;outline:none;align-items:center;gap:6px;padding:3px 9px;display:inline-flex}.ff-taggroup__tag[data-hovered]{border-color:var(--c-border-hover)}.ff-taggroup__tag[data-selected]{background:var(--c-accent);color:var(--c-on-accent);border-color:var(--c-accent)}.ff-taggroup__tag[data-focus-visible]{outline:2px solid var(--ff-focus-ring,var(--c-accent-2));outline-offset:1px}.ff-taggroup__tag [slot=remove]{cursor:pointer;color:var(--c-fg-subtle);font-size:var(--fs-small,13px);background:0 0;border:none;padding:0;line-height:1}.ff-meter{font-family:var(--font-base);flex-direction:column;gap:5px;display:flex}.ff-meter__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.ff-meter__value{font-family:var(--font-mono);font-size:var(--fs-tiny,11px);letter-spacing:var(--ls-mono);color:var(--c-fg-muted)}.ff-meter__track{border-radius:var(--radius-pill);background:var(--c-border-hover);height:8px;overflow:hidden}.ff-meter__fill{border-radius:var(--radius-pill);background:var(--c-accent);height:100%;transition:width .2s}.ff-meter[data-tone=success] .ff-meter__fill{background:var(--c-success,#3aa66b)}.ff-meter[data-tone=warning] .ff-meter__fill{background:var(--c-warning,#d9a300)}.ff-meter[data-tone=danger] .ff-meter__fill{background:var(--c-danger)}.ff-dropzone{text-align:center;border:1.5px dashed var(--c-border-hover);border-radius:var(--radius-card);background:var(--c-surface);min-height:120px;color:var(--c-fg-muted);font-size:var(--fs-ui-lg,14px);outline:none;justify-content:center;align-items:center;gap:8px;padding:20px;transition:border-color .12s,background .12s;display:flex}.ff-dropzone[data-hovered]{border-color:var(--c-fg-subtle)}.ff-dropzone[data-drop-target]{border-color:var(--c-accent);background:var(--c-accent-bg);color:var(--c-fg)}.ff-dropzone[data-focus-visible]{outline:2px solid var(--ff-focus-ring,var(--c-accent-2));outline-offset:2px}.ff-checkbox-group{flex-direction:column;gap:8px;display:flex}.ff-color-area{border-radius:var(--radius);border:1px solid var(--c-border);forced-color-adjust:none;flex:none;width:192px;height:160px}.ff-color-thumb{box-sizing:border-box;border:2px solid #fff;border-radius:50%;width:16px;height:16px;box-shadow:0 0 0 1px #00000073,0 1px 2px #00000059}.ff-color-thumb[data-focus-visible]{width:20px;height:20px}.ff-color-slider{flex-direction:column;gap:5px;max-width:240px;display:flex}.ff-color-slider__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.ff-color-slider__output{font-family:var(--font-mono);font-size:var(--fs-tiny,11px);color:var(--c-fg-muted);letter-spacing:var(--ls-mono)}.ff-color-slider__track{border-radius:var(--radius);border:1px solid var(--c-border);forced-color-adjust:none;height:22px}.ff-color-wheel,.ff-color-wheel__track{forced-color-adjust:none}.ff-color-field{max-width:150px}.ff-color-swatch{border-radius:var(--radius-sm);border:1px solid var(--c-border);forced-color-adjust:none;width:26px;height:26px}.ff-color-swatches{outline:none;flex-wrap:wrap;gap:6px;display:flex}.ff-color-swatches [slot],.react-aria-ColorSwatchPickerItem{border-radius:var(--radius-sm);cursor:pointer;outline:none;position:relative}.react-aria-ColorSwatchPickerItem[data-selected]{outline:2px solid var(--c-fg);outline-offset:2px}.react-aria-ColorSwatchPickerItem[data-focus-visible]{outline:2px solid var(--ff-focus-ring,var(--c-accent-2));outline-offset:2px}.ff-mention__input{resize:vertical;min-height:76px;line-height:1.45}.ff-mention__popover{background:var(--c-surface-elevated,var(--c-surface));border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow-strong);min-width:200px;max-width:280px;padding:4px}.ff-mention__popover[data-entering]{animation:.12s ff-pop-in}.ff-mention__menu{outline:none;flex-direction:column;gap:1px;max-height:240px;display:flex;overflow:auto}.ff-mention__item{border-radius:var(--radius-sm);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer;outline:none;padding:7px 10px}.ff-mention__item[data-hovered],.ff-mention__item[data-focused]{background:var(--c-surface-hover)}.ff-mention__item[data-disabled]{opacity:.45;cursor:not-allowed}@media (prefers-reduced-motion:reduce){.ff-modal[data-entering],.ff-modal-overlay[data-entering],.ff-modal-overlay[data-exiting],.ff-slideover[data-entering],.ff-slideover-overlay[data-entering],.ff-slideover-overlay[data-exiting],.ff-popover[data-entering],.ff-popover[data-exiting],.ff-toast[data-entering],.ff-toast[data-exiting],.ff-tooltip[data-entering]{animation:none!important}}.ff-card{box-shadow:var(--shadow-soft)}.ff-table__col{color:var(--c-fg-muted)}.ff-table .num,.ff-table__cell--num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum";text-align:right}.ff-table__col--num{text-align:right}html[data-density=compact] .ff-table__col{padding:6px 12px}html[data-density=compact] .ff-table__cell{padding:5px 12px}.ff-table--sticky .ff-table__col{background:var(--c-bg-panel);z-index:1;position:sticky;top:0}.ff-table--zebra .ff-table__row:nth-child(2n) .ff-table__cell{background:color-mix(in srgb,var(--c-surface-hover) 32%,var(--c-bg))}.sidebar,.app-sidebar{background:var(--c-bg-sidebar);height:100dvh;padding:var(--space-4);gap:var(--space-4);border-right:1px solid #0000;flex-direction:column;display:flex;position:sticky;top:0;overflow-y:hidden}.sidebar__brand{align-items:center;gap:var(--space-2);padding:0;display:flex}.sidebar__brand .topbar__logo{height:22px}.sidebar__brand .topbar__title{font-family:var(--font-mono);text-transform:uppercase;color:var(--c-fg-muted);letter-spacing:.08em;font-size:11px}.sidebar__nav,.app-sidebar__nav{scrollbar-width:thin;scrollbar-color:var(--c-border-hover) transparent;flex-direction:column;flex:auto;gap:1px;min-height:0;display:flex;overflow-y:auto}.sidebar__group-label,.app-sidebar__section{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--c-fg-subtle);padding:var(--space-3) var(--space-2) var(--space-2);font-size:10px;font-weight:500}.sidebar__link,.app-sidebar__item{align-items:center;gap:var(--space-3);padding:4px var(--space-3) 4px var(--space-2);border-radius:var(--radius);color:var(--c-fg-muted);transition:background var(--t-fast) var(--ease-std), color var(--t-fast) var(--ease-std);text-align:left;width:100%;min-width:0;font-size:14px;text-decoration:none;display:flex;position:relative}.sidebar__link:hover,.app-sidebar__item:hover{background:var(--c-surface-hover);color:var(--c-fg);--_sidebar-fade:var(--c-surface-hover);text-decoration:none}.sidebar__link--active,.app-sidebar__item.is-active{background:var(--c-accent-bg);color:var(--c-fg);--_sidebar-fade:var(--c-accent-bg);font-weight:500}.sidebar__link--active .sidebar__link-icon{color:var(--c-fg)}.sidebar__link-icon{width:16px;height:16px;color:var(--c-fg-subtle);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sidebar__link-label{flex:auto;min-width:0}.sidebar--truncate .sidebar__link{padding-right:0;overflow:hidden}.sidebar--truncate .sidebar__link-label{white-space:nowrap;overflow:hidden}.sidebar--truncate .sidebar__link:after{content:"";background:linear-gradient(to right, transparent, var(--_sidebar-fade,var(--c-bg-sidebar)));pointer-events:none;z-index:1;width:24px;position:absolute;top:0;bottom:0;right:0}.sidebar--truncate .sidebar__link-actions{z-index:2;position:absolute;top:0;bottom:0;right:0}.sidebar__link-actions{flex-shrink:0;align-items:center;display:inline-flex;position:relative}.sidebar__link-icon svg{width:16px;height:16px}.sidebar__link-badge{background:var(--c-fg);min-width:18px;height:18px;color:var(--c-bg);font-size:10px;font-weight:500;font-family:var(--font-base);letter-spacing:0;border-radius:9px;justify-content:center;align-items:center;padding:0 5px;line-height:1;display:inline-flex}.sidebar__logo,.app-sidebar__logo{color:var(--c-fg);flex-shrink:0;align-items:center;padding:0;display:flex;overflow:visible}.sidebar__account,.app-sidebar__account{position:relative}.sidebar__account-trigger,.app-sidebar__account-trigger{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border-radius:var(--radius);cursor:pointer;text-align:left;transition:background var(--t-fast) var(--ease-std);background:0 0;border:none;display:flex}.sidebar__account-trigger:hover{background:var(--c-surface-hover)}.sidebar__account-avatar,.app-sidebar__account-avatar{background:var(--c-accent);width:28px;height:28px;color:var(--c-on-accent);font-family:var(--font-mono);font-size:var(--fs-xs);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar__account-id{flex-direction:column;flex:1;min-width:0;line-height:1.2;display:flex}.sidebar__account-name,.app-sidebar__account-name{font-size:var(--fs-small);color:var(--c-fg);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.sidebar__account-sub,.app-sidebar__account-sub{font-size:var(--fs-tiny);color:var(--c-fg-subtle)}.sidebar__account-chevron,.app-sidebar__account-chevron{color:var(--c-fg-subtle);transition:transform .16s var(--ease-std,ease);flex-shrink:0}.sidebar__account[data-open=true] .sidebar__account-chevron,.app-sidebar__account[data-open=true] .app-sidebar__account-chevron{transform:rotate(90deg)}.sidebar__account-menu,.app-sidebar__account-menu{bottom:calc(100% + var(--space-2));background:var(--c-surface-elevated);border-radius:var(--radius-card);box-shadow:var(--shadow-strong);padding:var(--space-2);z-index:var(--z-dropdown);border:none;max-height:70vh;position:absolute;left:0;right:0;overflow-y:auto}.sidebar__account-email{font-size:var(--fs-tiny);color:var(--c-fg-subtle);padding:var(--space-1) var(--space-2);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (max-width:1024px){.sidebar,.app-sidebar{z-index:1;background:var(--c-bg-sidebar);opacity:.5;border:0;width:min(86vw,320px);height:100dvh;transition:transform .28s cubic-bezier(.32,.72,0,1),opacity .28s;position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(-9%)}.sidebar.sidebar--open{opacity:1;transform:none}.sidebar-backdrop{z-index:calc(var(--z-sidebar,85) - 1);background:0 0;display:none;position:fixed;inset:0 0 0 min(86vw,320px)}.sidebar-backdrop.sidebar-backdrop--visible{display:block}}.sidebar__account-head{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--c-fg-subtle);padding:var(--space-1) var(--space-2)}.sidebar__account-sep{background:var(--c-border);height:1px;margin:var(--space-1) 0}.sidebar__account-item,.app-sidebar__account-item{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border-radius:var(--radius);cursor:pointer;text-align:left;font-size:var(--fs-small);color:var(--c-fg-muted);transition:background var(--t-fast) var(--ease-std), color var(--t-fast) var(--ease-std);background:0 0;border:none;display:flex}.sidebar__account-item:hover{background:var(--c-surface-hover);color:var(--c-fg)}.sidebar__account-item[data-active=true]{color:var(--c-fg)}.sidebar__account-val{font-size:var(--fs-tiny);color:var(--c-fg-subtle);margin-left:auto}.sidebar__account-check{color:var(--c-fg);margin-left:auto}.sidebar__foot{gap:var(--space-1);padding-top:var(--space-3);border-top:1px solid var(--c-border);flex-direction:column;flex-shrink:0;display:flex}.sidebar__foot-btn{align-items:center;gap:var(--space-3);padding:var(--space-xs) var(--space-3);border-radius:var(--radius);color:var(--c-fg-muted);cursor:pointer;text-align:left;width:100%;transition:background var(--t-fast) var(--ease-std), color var(--t-fast) var(--ease-std);background:0 0;border:none;font-family:inherit;font-size:14px;display:flex}.sidebar__foot-btn:hover{background:var(--c-surface-hover);color:var(--c-fg)}.sidebar__foot-hint{padding:var(--space-2) var(--space-3) 0;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--c-fg-subtle);font-size:10px}.space-sidebar{height:100vh;padding:var(--space-4);align-self:start;gap:var(--space-4);background:var(--c-bg-sidebar);border-right:1px solid #0000;flex-direction:column;display:flex;position:sticky;top:0}.space-sidebar__top{padding:0 var(--space-2);justify-content:space-between;align-items:center;display:flex}.space-sidebar__logo{color:var(--c-fg);align-items:center;text-decoration:none;display:flex}.space-sidebar__nav{flex-direction:column;flex:1;gap:1px;display:flex}.space-sidebar__item{align-items:center;gap:var(--space-3);padding:var(--space-xs) var(--space-3);border-radius:var(--radius);color:var(--c-fg-muted);transition:background var(--t-fast) var(--ease-std), color var(--t-fast) var(--ease-std);font-size:14px;font-weight:400;text-decoration:none;display:flex}.space-sidebar__item:hover{background:var(--c-surface-hover);color:var(--c-fg)}.space-sidebar__item[data-active=true]{background:var(--c-accent-bg);color:var(--c-fg);font-weight:500}.space-sidebar__item svg{color:var(--c-fg-subtle);flex-shrink:0}.space-sidebar__item:hover svg,.space-sidebar__item[data-active=true] svg{color:var(--c-fg)}.space-sidebar__footer{padding-top:var(--space-3);border-top:1px solid var(--c-border)}.space-sidebar__user{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius);transition:background var(--t-fast) var(--ease-std);background:0 0;display:flex}.space-sidebar__user:hover{background:var(--c-surface-hover)}.space-sidebar__user-actions{align-items:center;gap:var(--space-1);flex-shrink:0;display:flex}.space-sidebar__icon-btn{cursor:pointer;color:var(--c-fg-subtle);padding:var(--space-1);border-radius:var(--radius);transition:background var(--t-fast) var(--ease-std), color var(--t-fast) var(--ease-std);background:0 0;border:0;justify-content:center;align-items:center;display:flex}.space-sidebar__icon-btn:hover{background:var(--c-surface-hover);color:var(--c-fg)}.space-sidebar__avatar{background:var(--space-accent);width:32px;height:32px;color:var(--c-on-accent);font-family:var(--font-mono);font-size:var(--fs-xs);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.space-sidebar__user-info{flex-direction:column;flex:1;min-width:0;display:flex}.space-sidebar__user-name{font-size:var(--fs-small);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.space-sidebar__impersonation{font-size:var(--fs-tiny);color:var(--c-warning);text-transform:uppercase;letter-spacing:var(--ls-mono);font-family:var(--font-mono)}.space-sidebar__logout{cursor:pointer;color:var(--c-fg-subtle);padding:var(--space-1);border-radius:var(--radius);transition:background var(--t-fast) var(--ease-std), color var(--t-fast) var(--ease-std);background:0 0;border:0;justify-content:center;align-items:center;display:flex}.space-sidebar__logout:hover{background:var(--c-surface-hover);color:var(--c-danger)}.space-sidebar__login{padding:var(--space-2) var(--space-4);border-radius:var(--radius);background:var(--space-accent);color:var(--c-on-accent);font-weight:600;font-size:var(--fs-small);justify-content:center;align-items:center;text-decoration:none;display:flex}.ai-sidebar{width:var(--sidebar-w);background:var(--c-bg-sidebar);padding:var(--space-4)}.ai-sidebar__section{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--c-fg-subtle);padding:var(--space-3) var(--space-2) var(--space-2);font-size:10px;font-weight:500}.ai-sidebar__item{align-items:center;gap:var(--space-3);width:100%;padding:4px var(--space-3) 4px var(--space-2);border-radius:var(--radius);color:var(--c-fg-muted);cursor:pointer;text-align:left;background:0 0;border:none;font-family:inherit;font-size:14px;text-decoration:none;transition:background .12s,color .12s;display:flex;position:relative}.ai-sidebar__item:hover{background:var(--c-surface-hover);color:var(--c-fg);text-decoration:none}.ai-sidebar__item.is-active{background:var(--c-accent-bg);color:var(--c-fg);font-weight:500}.ai-sidebar__item-icon{width:16px;height:16px;color:var(--c-fg-subtle);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ai-sidebar__item.is-active .ai-sidebar__item-icon{color:var(--c-fg)}.ai-sidebar__item-label{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.ai-sidebar__foot{gap:var(--space-1);padding-top:var(--space-3);margin-top:var(--space-2);border-top:1px solid var(--c-border);flex-direction:column;flex-shrink:0;display:flex}.ai-sidebar__account{position:relative}.ai-sidebar__account-trigger{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border-radius:var(--radius);cursor:pointer;text-align:left;background:0 0;border:none;transition:background .12s;display:flex}.ai-sidebar__account-trigger:hover{background:var(--c-surface-hover)}.ai-sidebar__account-avatar{background:var(--c-accent);width:28px;height:28px;color:var(--c-bg);font-family:var(--font-mono);font-size:var(--fs-xs);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ai-sidebar__account-id{flex-direction:column;flex:1;min-width:0;line-height:1.2;display:flex}.ai-sidebar__account-name{font-size:var(--fs-small);color:var(--c-fg);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.ai-sidebar__account-sub{font-size:var(--fs-tiny);color:var(--c-fg-subtle)}.ai-sidebar__account-chevron{color:var(--c-fg-subtle);flex-shrink:0}.ai-sidebar__account-menu{bottom:calc(100% + var(--space-2));background:var(--c-surface-elevated);border-radius:var(--radius-card);box-shadow:var(--shadow-strong);padding:var(--space-2);z-index:var(--z-dropdown);border:none;position:absolute;left:0;right:0}.ai-sidebar__account-email{font-size:var(--fs-tiny);color:var(--c-fg-subtle);padding:var(--space-1) var(--space-2);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ai-sidebar__account-sep{background:var(--c-border);height:1px;margin:var(--space-1) 0}.ai-sidebar__account-item{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border-radius:var(--radius);cursor:pointer;text-align:left;font-size:var(--fs-small);color:var(--c-fg-muted);background:0 0;border:none;transition:background .12s,color .12s;display:flex}.ai-sidebar__account-item:hover{background:var(--c-surface-hover);color:var(--c-fg)}h1.page-title{font-size:var(--fs-h1,2rem);letter-spacing:-.02em;color:var(--c-fg);font-weight:700;line-height:1.15}.page-back{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--c-fg-subtle);margin-bottom:var(--space-2);font-size:11px;display:inline-block}.page-back:hover{color:var(--c-fg);text-decoration:none}.page-breadcrumb{font-family:var(--font-mono);letter-spacing:.06em;margin-bottom:var(--space-2);flex-wrap:wrap;align-items:center;font-size:11px;display:inline-flex}.page-breadcrumb a{color:var(--c-fg-subtle);text-transform:uppercase;text-decoration:none}.page-breadcrumb a:hover{color:var(--c-fg)}.page-breadcrumb__sep{color:var(--c-fg-subtle);margin:0 var(--space-2)}.page-breadcrumb__current{color:var(--c-fg);text-transform:uppercase}.page-breadcrumb__current--ref{text-transform:none;letter-spacing:.02em}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-8);display:flex}.page-header__main{flex-direction:column;min-width:0;display:flex}.page-header__meta{margin-top:var(--space-2);align-items:center;gap:var(--space-2);color:var(--c-fg-muted);flex-wrap:wrap;font-size:14px;display:flex}.page-header__actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.page-header__actions .search-field .input{height:32px;padding-top:0;padding-bottom:0;font-size:13px}.page-subtitle{margin-top:var(--space-1);color:var(--c-fg-muted);font-size:14px}@media (max-width:768px){.page-header{align-items:stretch;gap:var(--space-3);margin-bottom:var(--space-6);flex-direction:column}}@media (max-width:480px){.page-breadcrumb{font-size:10px}h1.page-title{font-size:24px;line-height:28px}}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-shell__body{min-height:calc(100vh - var(--chrome-h,0px));flex:1}.app-shell .sidebar{top:var(--chrome-h,0px);height:calc(100dvh - var(--chrome-h,0px))}.app-frame{grid-template-columns:var(--sidebar-w,272px) minmax(0, 1fr);min-height:calc(100vh - var(--chrome-h,0px));display:grid}.app-canvas{display:contents}.sidebar-toggle{cursor:pointer;color:var(--c-fg);-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;display:none}.sidebar-toggle .burger{flex-shrink:0;width:18px;height:14px;position:relative}.sidebar-toggle .burger__line{height:2px;transition:transform var(--t-medium,.2s) cubic-bezier(.32, .72, 0, 1), opacity var(--t-fast,.12s) var(--ease-std,ease);background:currentColor;border-radius:2px;position:absolute;left:0;right:0}.sidebar-toggle .burger__line:first-child{top:0}.sidebar-toggle .burger__line:nth-child(2){top:6px}.sidebar-toggle .burger__line:nth-child(3){top:12px}.sidebar-toggle--open .burger__line:first-child{transform:translateY(6px)rotate(45deg)}.sidebar-toggle--open .burger__line:nth-child(2){opacity:0}.sidebar-toggle--open .burger__line:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.app-topbar{display:none}.sidebar-backdrop{background:var(--c-backdrop,#0006);z-index:var(--z-sidebar-backdrop,40);display:none;position:fixed;inset:0}@media (max-width:1024px){.app-frame{--drawer-w:min(86vw, 320px);grid-template-columns:minmax(0,1fr);position:relative;overflow-x:clip}html[data-drawer=open]{overflow:hidden}.app-frame .sidebar{width:var(--drawer-w,min(86vw, 320px));z-index:100;background:var(--c-bg-sidebar,var(--c-bg));opacity:1;border:0;height:100dvh;transition:transform .32s ease-in-out;position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(-100%)}html[data-drawer=open] .app-frame .sidebar{transform:translate(0)}.app-frame .app-canvas{min-height:calc(100vh - var(--chrome-h,0px));background:var(--c-bg);flex-direction:column;display:flex;will-change:auto!important;box-shadow:none!important;border-radius:0!important;transform:none!important}html[data-drawer=open] .app-frame .app-canvas{box-shadow:none!important;border-radius:0!important;overflow:visible!important;transform:none!important}.app-topbar{z-index:var(--z-sticky-actions,90);height:52px;padding:0 var(--space-3) 0 var(--space-4);background:var(--c-bg-sidebar,var(--c-bg));border-bottom:1px solid var(--c-border);justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.app-topbar__lead{align-items:center;gap:var(--space-3);flex:auto;min-width:0;display:inline-flex}.app-topbar__brand{color:var(--c-fg);flex-shrink:0;align-items:center;display:inline-flex}.sidebar-toggle{display:inline-flex}.app-topbar__toggle.sidebar-toggle{border-radius:var(--radius,8px);background:var(--c-surface);width:40px;height:40px;box-shadow:none;position:static;transform:none}.app-frame .app-main{padding-top:calc(52px + var(--space-4))}.app-frame .sidebar .sidebar__logo,.app-frame .sidebar .app-sidebar__logo{display:none}.sidebar-backdrop{background:var(--c-backdrop,#00000080);z-index:95;opacity:0;pointer-events:none;transition:opacity .32s ease-in-out;display:block;position:fixed;inset:0}html[data-drawer=open] .sidebar-backdrop{opacity:1;pointer-events:auto}}@media (max-width:1024px) and (prefers-reduced-motion:reduce){.app-frame .sidebar,.sidebar-backdrop,.sidebar-toggle .burger__line{transition:none}}.ff-gauge{font-family:var(--font-base);flex-direction:column;gap:5px;display:flex}.ff-gauge__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.ff-gauge__label{font-size:var(--fs-small,13px);color:var(--c-fg-muted);font-weight:500}.ff-gauge__value{font-family:var(--font-mono);font-size:var(--fs-tiny,11px);letter-spacing:var(--ls-mono);color:var(--c-fg-muted)}.ff-gauge__track{border-radius:var(--radius-pill);background:var(--c-border-hover);height:8px;overflow:hidden}.ff-gauge__fill{border-radius:var(--radius-pill);background:var(--c-accent);height:100%;transition:width .2s}.ff-gauge__fill[data-tone=success]{background:var(--c-success,#1a8b3c)}.ff-gauge__fill[data-tone=warning]{background:var(--c-warning,#a06b00)}.ff-gauge__fill[data-tone=danger]{background:var(--c-danger,#b22424)}.ff-gauge__fill[data-tone=neutral]{background:var(--c-fg-subtle)}.ff-uptime{font-family:var(--font-base);flex-direction:column;gap:6px;display:flex}.ff-uptime__bar{border-radius:var(--radius-sm,4px);gap:2px;display:flex;overflow:hidden}.ff-uptime__seg{background:var(--c-border-hover);border-radius:1px;flex:1;min-width:0;transition:opacity .15s}.ff-uptime__seg[data-tone=ok]{background:var(--c-success,#1a8b3c)}.ff-uptime__seg[data-tone=warn]{background:var(--c-warning,#a06b00)}.ff-uptime__seg[data-tone=danger]{background:var(--c-danger,#b22424)}.ff-uptime__seg[data-tone=neutral]{background:var(--c-border-hover)}.ff-uptime__seg:hover{opacity:.7}.ff-uptime__legend{font-size:var(--fs-tiny,11px);color:var(--c-fg-muted);font-family:var(--font-mono);letter-spacing:var(--ls-mono);justify-content:space-between;display:flex}.ff-status-banner{align-items:center;gap:var(--space-3,12px);padding:var(--space-4,16px) var(--space-5,20px);border-radius:var(--radius);background:var(--c-surface);border:1px solid var(--c-border);font-family:var(--font-base);display:flex}.ff-status-banner__dot{border-radius:var(--radius-pill);background:var(--c-success,#1a8b3c);width:10px;height:10px;box-shadow:0 0 0 3px color-mix(in srgb,var(--c-success,#1a8b3c) 20%,transparent);flex:none}.ff-status-banner__label{font-size:var(--fs-body,16px);color:var(--c-fg);flex:1;font-weight:500}.ff-status-banner__meta{font-size:var(--fs-small,13px);color:var(--c-fg-muted);font-family:var(--font-mono);letter-spacing:var(--ls-mono);white-space:nowrap}.ff-status-banner[data-tone=ok] .ff-status-banner__dot{background:var(--c-success,#1a8b3c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-success,#1a8b3c) 20%,transparent)}.ff-status-banner[data-tone=warn] .ff-status-banner__dot{background:var(--c-warning,#a06b00);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-warning,#a06b00) 20%,transparent)}.ff-status-banner[data-tone=danger] .ff-status-banner__dot{background:var(--c-danger,#b22424);box-shadow:0 0 0 3px color-mix(in srgb,var(--c-danger,#b22424) 20%,transparent)}
*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-base);background:var(--c-bg);color:var(--c-fg);-webkit-font-smoothing:antialiased;font-size:14px;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:var(--c-border-hover) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--c-border-hover);border-radius:var(--radius-pill);background-clip:padding-box;border:2px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--c-fg-subtle);background-clip:padding-box}:focus-visible{outline:2px solid var(--c-accent-2);outline-offset:2px}
.app{height:100dvh;display:flex;overflow:hidden}.rail{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--c-bg-sidebar);flex-direction:column;height:100dvh;padding:20px 16px 16px;display:flex;overflow-y:auto}.rail__head{align-items:flex-end;gap:10px;padding:0 8px 18px;display:flex}.rail__logo{width:auto;height:22px;color:var(--c-fg);display:block}.rail__tag{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--c-fg-subtle);margin-left:auto;padding-bottom:2px;font-size:9px;font-weight:400;line-height:1}.group{flex-direction:column;display:flex}.group__h{cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--font-mono);letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--c-fg-subtle);align-items:center;gap:8px;padding:10px 10px 6px;font-size:11px;font-weight:400;display:flex}.group__h:hover{color:var(--c-fg-muted)}.group__h .caret{transition:transform var(--t-medium) cubic-bezier(.2,0,0,1);margin-left:auto;display:flex}.group.closed .caret{transform:rotate(-90deg)}.group__b{flex-direction:column;gap:14px;padding:4px 10px 14px;display:flex}.group.closed .group__b{display:none}.group__b--flat{padding-top:14px}.rail .react-aria-Slider .react-aria-SliderThumb{border-color:var(--c-bg-sidebar)}.palettes{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.pchip{border:1px solid var(--c-border);border-radius:var(--radius);cursor:pointer;background:var(--c-surface);transition:border-color var(--t-fast,.12s), box-shadow var(--t-fast,.12s);padding:6px}.pchip:hover{border-color:var(--c-border-hover)}.pchip[data-active]{border-color:var(--c-accent);box-shadow:inset 0 0 0 1px var(--c-accent)}.pchip .sw{border-radius:var(--radius-sm);height:18px;display:flex;overflow:hidden}.pchip .sw i{flex:1}.pchip .pn{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--c-fg-muted);margin-top:5px;font-size:9px;display:block}.pcustom{gap:6px;margin-top:10px;display:flex}.pcustom__sw{border-radius:var(--radius-sm);border:1px solid var(--c-border);cursor:pointer;flex:1;height:30px;position:relative;overflow:hidden}.pcustom__sw:hover{border-color:var(--c-border-hover)}.pcustom__sw input[type=color]{cursor:pointer;opacity:0;background:0 0;border:none;width:calc(100% + 8px);height:calc(100% + 8px);margin:0;padding:0;position:absolute;inset:-4px}.views{flex-direction:column;gap:10px;display:flex}.view-cur{min-height:16px;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--c-fg-subtle);align-items:center;gap:8px;font-size:10px;display:flex}.view-cur b{color:var(--c-fg);text-transform:none;letter-spacing:0;font-weight:500;font-family:var(--font-base);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.view-actions{flex-direction:column;gap:8px;display:flex}.view-actions .ff-btn{justify-content:flex-start;gap:10px;width:100%;height:36px;padding:0 12px}.view-list{flex-direction:column;gap:6px;max-height:280px;display:flex;overflow-y:auto}.view-empty{font-family:var(--font-mono);color:var(--c-fg-subtle);text-align:center;letter-spacing:.04em;padding:12px 0;font-size:10px}.view-item{border:1px solid var(--c-border);border-radius:var(--radius);cursor:pointer;background:var(--c-surface);transition:border-color var(--t-fast,.12s), background var(--t-fast,.12s);align-items:center;gap:9px;padding:6px;display:flex}.view-item:hover{background:var(--c-surface-hover);border-color:var(--c-border-hover)}.view-item[data-active]{border-color:var(--c-accent);box-shadow:inset 0 0 0 1px var(--c-accent)}.view-item .th{border-radius:var(--radius-sm);object-fit:cover;border:1px solid var(--c-border);background:#050505;flex:0 0 48px;width:48px;height:32px}.view-item .vmeta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.view-item .vnm{color:var(--c-fg);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.view-item .vsub{font-family:var(--font-mono);color:var(--c-fg-subtle);text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.view-item .del{border-radius:var(--radius-sm);width:26px;height:26px;color:var(--c-fg-subtle);cursor:pointer;opacity:0;transition:opacity var(--t-fast,.12s), color var(--t-fast,.12s), background var(--t-fast,.12s);background:0 0;border:none;flex:none;justify-content:center;align-items:center;display:flex}@media (hover:hover){.view-item:hover .del{opacity:1}}.view-item:focus-within .del{opacity:1}.del:hover{background:var(--c-surface);color:var(--c-danger)}.rail__foot{margin-top:auto;padding:12px 10px 4px}.rail__foot .ff-btn{width:100%}.ff-statusdot .dot{border-radius:var(--radius-pill);background:var(--c-fg-subtle);flex:0 0 8px;width:8px;height:8px}.ff-statusdot .dot[data-dirty]{background:var(--c-warning)}.stage{background:#050505;flex:1;height:100dvh;position:relative;overflow:hidden}.stage canvas{width:100%;height:100%;display:block}.stage.dragover:after{content:"";border-radius:var(--radius);border:2px dashed #ffffff80;position:absolute;inset:16px}.tools{z-index:5;flex-direction:column;gap:10px;display:flex;position:absolute;top:18px;right:20px}.tool{border-radius:var(--radius-pill);background:var(--c-surface);border:1px solid var(--c-border);cursor:pointer;width:40px;height:40px;color:var(--c-fg);transition:background var(--t-fast,.12s);justify-content:center;align-items:center;display:flex}.tool:hover{background:var(--c-surface-hover)}.tool[data-on]{background:var(--c-accent);color:var(--c-on-accent);border-color:var(--c-accent)}.hud{font-family:var(--font-mono);color:#fff6;z-index:5;text-align:right;font-size:11px;line-height:1.6;position:absolute;bottom:14px;right:18px}.pause-badge{color:#ffffffc7;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius);z-index:6;opacity:0;transition:opacity var(--t-medium);pointer-events:none;background:#0006;border:1px solid #ffffff38;padding:6px 13px;font-size:10px;position:absolute;top:20px;left:50%;transform:translate(-50%)}.pause-badge[data-show]{opacity:1}.loader{z-index:9;pointer-events:none;flex-direction:column;align-items:center;gap:14px;display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.loader[data-show]{display:flex}.loader .spin{border-radius:var(--radius-pill);border:3px solid #ffffff29;border-top-color:#ffffffd9;width:34px;height:34px;animation:.8s linear infinite noda-spin}@keyframes noda-spin{to{transform:rotate(360deg)}}.loader .txt{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:#ffffffbf;text-align:center;max-width:340px;font-size:11px;line-height:1.5}.loader .bar{border-radius:var(--radius-pill);background:#ffffff24;width:220px;height:3px;overflow:hidden}.loader .bar i{border-radius:var(--radius-pill);background:#ffffffd9;width:0%;height:100%;transition:width .1s linear;display:block}.loader[data-indet] .bar i{width:35%;animation:1.15s ease-in-out infinite noda-indet}@keyframes noda-indet{0%{margin-left:-35%}to{margin-left:100%}}.toast{background:var(--c-accent);color:var(--c-on-accent);border-radius:var(--radius-card);opacity:0;transition:all var(--t-medium) cubic-bezier(.2,0,0,1);z-index:20;pointer-events:none;padding:10px 18px;font-size:13px;font-weight:500;position:absolute;bottom:86px;left:50%;transform:translate(-50%)translateY(20px)}.toast[data-show]{opacity:1;transform:translate(-50%)translateY(0)}.dockbar{background:var(--c-surface-elevated);border:1px solid var(--c-border);border-radius:var(--radius-card);box-shadow:var(--shadow-strong);z-index:8;align-items:center;gap:10px;max-width:min(940px,100% - 60px);padding:8px;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.dock-round{border-radius:var(--radius-pill);border:1px solid var(--c-border);background:var(--c-surface);width:38px;height:38px;color:var(--c-fg);cursor:pointer;transition:background var(--t-fast,.12s);flex:0 0 38px;justify-content:center;align-items:center;display:flex}.dock-round:hover{background:var(--c-surface-hover)}.dock-round.play{background:var(--c-accent);color:var(--c-on-accent);border-color:var(--c-accent)}.dock-round.play:disabled{opacity:.4;cursor:default}.dock-name{flex:auto;min-width:48px;max-width:240px;position:relative;overflow:hidden;-webkit-mask:linear-gradient(90deg,#0000,#000 12% 88%,#0000);mask:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.dock-name-track{white-space:nowrap;font-family:var(--font-mono);letter-spacing:.02em;color:var(--c-fg-muted);will-change:transform;font-size:11px;display:inline-flex}.dock-name-track .nm{padding-right:30px}.dock-name[data-scroll] .dock-name-track{animation:noda-marq var(--dur,10s) linear infinite}@keyframes noda-marq{0%{transform:translate(0)}to{transform:translate(-50%)}}.dock-time{font-family:var(--font-mono);color:var(--c-fg-subtle);text-align:center;min-width:32px;font-size:11px}.dock-sep{background:var(--c-border);align-self:stretch;width:1px;margin:3px 2px}.dock-seek{appearance:none;background:var(--c-border-hover);border-radius:var(--radius-pill);outline:none;flex:none;width:180px;min-width:120px;height:4px}.dock-seek::-webkit-slider-thumb{-webkit-appearance:none;border-radius:var(--radius-pill);background:var(--c-accent);cursor:pointer;border:2px solid var(--c-surface-elevated);width:12px;height:12px}.dock-seek::-moz-range-thumb{border-radius:var(--radius-pill);background:var(--c-accent);cursor:pointer;border:2px solid var(--c-surface-elevated);width:12px;height:12px}.dock-seek:disabled{opacity:.4}.noda-actions{justify-content:flex-end;gap:8px;display:flex}.noda-actions .ff-btn{width:auto}
