.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;text-decoration:none;display:inline-flex;align-items:center;justify-content: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)}.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{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;font-family:var(--font-mono);font-size:var(--fs-badge,10px);text-transform:uppercase;letter-spacing:var(--ls-mono);padding:2px 6px;height:18px;line-height:1;border-radius:var(--radius-sm);border:1px solid var(--c-border)}.ff-badge,.ff-badge--neutral{color:var(--c-fg-muted);background:var(--c-bg)}.ff-badge--neutral{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{display:inline-flex;align-items:center;gap:7px;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-statusdot:before{content:"";width:9px;height:9px;border-radius:var(--radius-pill);background:var(--dot,var(--c-fg-subtle));flex:none}.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:none;border-radius:var(--radius)}.ff-divider{height:1px;background:var(--c-border-strong,var(--c-fg));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{display:flex;align-items:center;justify-content:space-between;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)}.ff-card__title{font-size:var(--fs-lg,18px);line-height:24px;font-weight:500;letter-spacing:-.005em;color:var(--c-fg)}.ff-card__meta{display:flex;flex-wrap:wrap;gap:var(--space-2,8px);font-size:var(--fs-small,13px);color:var(--c-fg-muted)}.ff-skeleton{display:block;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:ff-shimmer 1.4s ease infinite}@keyframes ff-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.ff-skeleton{animation:none}}.ff-spinner{width:18px;height:18px;border-radius:var(--radius-pill);border:2px solid var(--c-border);border-top-color:var(--c-accent);display:inline-block;animation:ff-spin .7s linear infinite}@keyframes ff-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.ff-spinner{animation-duration:2s}}.ff-btn--danger{color:var(--c-danger);background:transparent;border-color:var(--c-danger)}.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);background:transparent;border-color:var(--c-success)}.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);background:transparent;border-color:var(--c-warning)}.ff-btn--warning[data-hovered]{background:var(--c-warning);border-color:var(--c-warning);color:var(--c-bg)}.ff-btn--quiet{border-color:transparent;background:transparent;color:var(--c-fg-muted)}.ff-btn--quiet[data-hovered]{background:var(--c-surface-hover);color:var(--c-fg);border-color:transparent}.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{display:inline-flex;align-items:center;justify-content:center;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));background:transparent;color:var(--c-fg);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.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,.ff-icon-btn--danger[data-hovered]{color:var(--c-danger);border-color:var(--c-danger)}.ff-icon-btn--danger[data-hovered]{background:var(--c-danger-bg)}.ff-tag{display:inline-flex;align-items:center;gap:4px;height:18px;padding:2px 6px;border-radius:var(--radius-sm);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--ls-mono);font-size:var(--fs-tiny,11px);font-weight:500;line-height:1;white-space:nowrap;border:1px solid var(--c-border);background:var(--c-bg-panel);color:var(--c-fg-muted)}.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{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--custom,.ff-tag--flat{--ff-tag-c:var(--c-fg-muted);color:var(--ff-tag-c)}.ff-tag--flat{background:color-mix(in srgb,var(--ff-tag-c) 12%,transparent);border-color:var(--c-border)}.ff-modal-overlay{position:fixed;inset:0;z-index:var(--z-modal,110);display:flex;align-items:center;justify-content:center;padding:24px;background:var(--c-backdrop,rgba(0,0,0,.55))}.ff-modal-overlay[data-entering]{animation:ff-fade .16s ease}.ff-modal-overlay[data-exiting]{animation:ff-fade .14s ease reverse}@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);width:100%;max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden;outline:none}.ff-modal[data-entering]{animation:ff-modal-in .18s cubic-bezier(.2,.9,.3,1)}@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{display:flex;flex-direction:column;min-height:0;outline:none;color:var(--c-fg);overflow:auto}.ff-modal__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--c-border)}.ff-modal__title{margin:0;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--ls-mono);font-size:var(--fs-tiny,11px);color:var(--c-fg-subtle);font-weight:500}.ff-modal__close{display:inline-flex;align-items:center;justify-content:center;width:var(--control-h-sm,30px);height:var(--control-h-sm,30px);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--c-fg-muted);cursor:pointer;flex:none}.ff-modal__close:hover{background:var(--c-surface-hover);color:var(--c-fg)}.ff-slideover-overlay{position:fixed;inset:0;height:100vh;height:100dvh;z-index:var(--z-modal,110);display:grid;grid-template-columns:1fr min(560px,92vw);grid-template-rows:minmax(0,1fr);background:var(--c-backdrop,rgba(0,0,0,.55))}.ff-slideover-overlay--wide{grid-template-columns:1fr min(780px,94vw)}.ff-slideover-overlay[data-entering]{animation:ff-fade .16s ease}.ff-slideover-overlay[data-exiting]{animation:ff-fade .14s ease reverse}@media (max-width:640px){.ff-slideover-overlay,.ff-slideover-overlay--wide{grid-template-columns:0 1fr}}.ff-slideover{grid-column:2;background:var(--c-surface);border-left:1px solid var(--c-border);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;outline:none;min-height:0}.ff-slideover[data-entering]{animation:ff-slideover-in .18s cubic-bezier(.2,.9,.3,1)}@keyframes ff-slideover-in{0%{transform:translateX(20px);opacity:0}to{transform:none;opacity:1}}.ff-slideover__dialog{display:flex;flex-direction:column;min-height:0;outline:none;color:var(--c-fg);height:100%}.ff-slideover__head{display:flex;align-items:center;gap:12px;padding:16px 24px;border-bottom:1px solid var(--c-border);background:var(--c-surface);flex:none}.ff-slideover__head-title{flex:1 1 auto;margin:0;font-family:var(--font-mono);font-size:var(--fs-small,13px);text-transform:uppercase;letter-spacing:.06em;color:var(--c-fg-muted)}.ff-slideover__close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid transparent;border-radius:var(--radius,6px);background:transparent;color:var(--c-fg-muted);cursor:pointer;flex:none}.ff-slideover__close:hover{background:var(--c-surface-hover);color:var(--c-fg)}.ff-slideover__body{flex:1 1 auto;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:24px}.ff-slideover__foot{display:flex;gap:8px;align-items:center;padding:12px 24px;border-top:1px solid var(--c-border);background:var(--c-surface);font-size:var(--fs-tiny,11px);color:var(--c-fg-subtle);flex:none}.ff-checkbox{gap:8px;font-family:var(--font-base);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer}.ff-checkbox,.ff-checkbox__box{display:inline-flex;align-items:center}.ff-checkbox__box{justify-content:center;width:18px;height:18px;flex:none;border:1px solid var(--c-border-strong,var(--c-border));border-radius:var(--radius-sm);background:var(--c-surface);color:transparent;transition:background .12s,border-color .12s,color .12s}.ff-checkbox__check{width:14px;height:14px}.ff-checkbox[data-indeterminate] .ff-checkbox__box,.ff-checkbox[data-selected] .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{gap:9px;font-family:var(--font-base);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer}.ff-switch,.ff-switch__track{display:inline-flex;align-items:center}.ff-switch__track{width:34px;height:20px;flex:none;padding:2px;border-radius:var(--radius-pill);background:var(--c-border-hover,var(--c-border));transition:background .15s}.ff-switch__thumb{width:16px;height:16px;border-radius:50%;background:var(--c-surface);box-shadow:0 1px 2px rgba(0,0,0,.3);transition:transform .15s}.ff-switch[data-selected] .ff-switch__track{background:var(--c-accent,var(--c-fg))}.ff-switch[data-selected] .ff-switch__thumb{transform:translateX(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{display:flex;flex-direction:column;min-height:0}.ff-tablist{display:flex;gap:22px;border-bottom:1px solid var(--c-border)}.ff-tab{appearance:none;background:transparent;border:0;font-family:inherit;padding:9px 1px;cursor:pointer;color:var(--c-fg-muted);font-size:var(--fs-ui-lg,14px);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s,border-color .12s;outline:none}.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{padding-top:16px;outline:none}.ff-tooltip{background:var(--c-fg);color:var(--c-bg);font-family:var(--font-base);font-size:var(--fs-xs,12px);padding:4px 8px;border-radius:var(--radius-sm);box-shadow:var(--shadow-xs);max-width:260px}.ff-tooltip[data-entering]{animation:ff-fade .12s ease}.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);padding:4px;min-width:180px;flex-direction:column;gap:1px}.ff-menu,.ff-menu-item{outline:none;display:flex}.ff-menu-item{align-items:center;gap:8px;padding:7px 10px;border-radius:var(--radius-sm);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer}.ff-menu-item[data-focused],.ff-menu-item[data-hovered]{background:var(--c-surface-hover)}.ff-menu-item[data-disabled]{opacity:.45;cursor:not-allowed}.ff-field{display:flex;flex-direction:column;gap:6px}.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);padding:0 11px;color:var(--c-fg);font-family:var(--font-base);font-size:var(--fs-ui-lg,14px);outline:none;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{padding:8px 11px;resize:vertical;min-height:76px;line-height:1.45}.ff-numfield{display:flex;align-items:stretch;gap:0}.ff-numfield__input{border-top-right-radius:0;border-bottom-right-radius:0}.ff-numfield__steps{display:flex;flex-direction:column;border:1px solid var(--c-border);border-left:0;border-radius:0 var(--radius) var(--radius) 0;overflow:hidden}.ff-numfield__step{flex:1;width:26px;background:var(--c-surface);border:0;color:var(--c-fg-muted);cursor:pointer;font-size:var(--fs-small,13px);line-height:1;display:grid;place-items:center}.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{display:flex;flex-direction:column;gap:8px}.ff-radio{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-base);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer}.ff-radio__dot{width:18px;height:18px;flex:none;border-radius:50%;border:1px solid var(--c-border-strong,var(--c-border));background:var(--c-surface);position:relative;transition:border-color .12s}.ff-radio[data-selected] .ff-radio__dot{border-color:var(--c-fg)}.ff-radio[data-selected] .ff-radio__dot:after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--c-fg)}.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{display:flex;flex-direction:column;gap:6px;font-family:var(--font-base)}.ff-slider__head{display:flex;align-items:center;justify-content:space-between;gap:8px}.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{position:relative;height:16px;width:100%;display:flex;align-items:center;cursor:pointer}.ff-slider__track:before{content:"";width:100%;background:var(--c-border-hover,var(--c-border))}.ff-slider__fill,.ff-slider__track:before{position:absolute;height:3px;top:50%;transform:translateY(-50%);border-radius:var(--radius-pill)}.ff-slider__fill{pointer-events:none}.ff-slider__fill,.ff-slider__thumb{background:var(--c-accent,var(--c-fg))}.ff-slider__thumb{width:15px;height:15px;border-radius:50%;border:2px solid var(--c-bg,var(--c-surface));top:50%;box-shadow:0 1px 3px rgba(0,0,0,.3)}.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{display:flex;flex-direction:column;gap:6px;font-family:var(--font-base)}.ff-progress__head{display:flex;align-items:center;justify-content:space-between;gap:8px}.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{height:6px;width:100%;background:var(--c-border-hover,var(--c-border));border-radius:var(--radius-pill);overflow:hidden}.ff-progress__fill{height:100%;background:var(--c-accent,var(--c-fg));border-radius:var(--radius-pill);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);padding:12px;color:var(--c-fg);max-width:min(92vw,360px);outline:none}.ff-popover[data-entering]{animation:ff-pop-in .13s ease}.ff-popover[data-exiting]{animation:ff-pop-in .1s ease reverse}@keyframes ff-pop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.ff-popover__dialog{outline:none}.ff-popover__dialog,.ff-toast-region{display:flex;flex-direction:column;gap:10px}.ff-toast-region{position:fixed;z-index:var(--z-toast,200);padding:16px;max-width:380px;pointer-events:none}.ff-toast-region--bottom-right{right:0;bottom:0;align-items:flex-end}.ff-toast-region--bottom-left{left:0;bottom:0;align-items:flex-start}.ff-toast-region--top-right{right:0;top:0;align-items:flex-end}.ff-toast-region--top-left{left:0;top:0;align-items:flex-start}.ff-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:12px;min-width:260px;max-width:100%;padding:12px 14px;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)}.ff-toast[data-entering]{animation:ff-toast-in .18s cubic-bezier(.2,.9,.3,1)}.ff-toast[data-exiting]{animation:ff-toast-out .16s ease forwards}@keyframes ff-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes ff-toast-out{to{opacity:0;transform:translateX(8px)}}.ff-toast__content{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.ff-toast__title{font-size:var(--fs-ui-lg,14px);font-weight:500;color:var(--c-fg);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{flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin:-2px -4px 0 0;border:0;background:transparent;color:var(--c-fg-subtle);border-radius:var(--radius-sm);cursor:pointer}.ff-toast__close[data-hovered]{background:var(--c-surface-hover);color:var(--c-fg)}.ff-banner{display:flex;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)}.ff-banner__icon{flex:none;display:inline-flex;margin-top:1px;color:var(--c-fg-muted)}.ff-banner__icon svg{width:17px;height:17px}.ff-banner__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ff-banner__title{font-weight:500;color:var(--c-fg)}.ff-banner__text{color:var(--c-fg-muted);line-height:1.4}.ff-banner__close{flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin:-1px -3px 0 0;border:0;background:transparent;color:var(--c-fg-subtle);border-radius:var(--radius-sm);cursor:pointer}.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{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:48px 24px;color:var(--c-fg-muted)}.ff-empty__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-card);background:var(--c-surface-hover);color:var(--c-fg-subtle);margin-bottom:2px}.ff-empty__icon svg{width:22px;height:22px}.ff-empty__title{font-size:15px;font-weight:500;color:var(--c-fg)}.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{position:relative;display:flex;align-items:center}.ff-search__icon{position:absolute;left:11px;color:var(--c-fg-subtle);pointer-events:none}.ff-search__input{padding-left:34px;padding-right:32px}.ff-search__clear{position:absolute;right:6px;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:0;background:transparent;color:var(--c-fg-subtle);border-radius:var(--radius-sm);cursor:pointer}.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{position:relative;display:flex;align-items:center}.ff-combo__input{padding-right:34px}.ff-combo__btn{position:absolute;right:4px;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:0;background:transparent;color:var(--c-fg-subtle);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-tiny,11px)}.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);padding:4px;min-width:var(--trigger-width);outline:none}.ff-combo__listbox{outline:none;max-height:280px;overflow:auto;display:flex;flex-direction:column;gap:1px}.ff-combo__option{padding:7px 10px;border-radius:var(--radius-sm);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer;outline:none}.ff-combo__option[data-focused],.ff-combo__option[data-hovered]{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{display:inline-flex;align-items:center;gap:7px;height:var(--control-h-sm,30px);padding:0 12px;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);background:transparent;color:var(--c-fg);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.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{display:inline-flex;gap:6px}.ff-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:0;font-family:var(--font-base);font-size:var(--fs-small,13px);list-style:none;margin:0;padding:0}.ff-crumb{display:inline-flex;align-items:center;color:var(--c-fg-subtle)}.ff-crumb:not(:last-child):after{content:"/";margin:0 8px;color:var(--c-fg-subtle);opacity:.6}.ff-crumb__link{color:var(--c-fg-muted);text-decoration:none;cursor:pointer;border-radius:var(--radius-sm)}.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{display:inline-flex;align-items:center;gap:6px;padding:5px;background:var(--c-bg-panel);border:1px solid var(--c-border);border-radius:var(--radius)}.ff-toolbar[data-orientation=vertical]{flex-direction:column;align-items:stretch}.ff-link{color:var(--c-fg);text-decoration:underline;text-underline-offset:2px;cursor:pointer;border-radius:2px}.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{display:flex;align-items:center;gap:8px;width:100%;padding:12px 2px;background:transparent;border:0;font-family:var(--font-base);font-size:var(--fs-ui-lg,14px);font-weight:500;color:var(--c-fg);cursor:pointer;text-align:left;outline:none}.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{flex:none;color:var(--c-fg-subtle);transition:transform .15s}.ff-disclosure[data-expanded] .ff-disclosure__chevron{transform:rotate(90deg)}.ff-disclosure__title{flex:1}.ff-disclosure__panel{padding:2px 2px 14px 22px;color:var(--c-fg-muted);font-size:var(--fs-ui-lg,14px);line-height:1.5}.ff-disclosure-group{display:flex;flex-direction:column}.ff-pagination{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-base)}.ff-pagination__nav,.ff-pagination__page{min-width:30px;height:30px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--c-fg-muted);font-size:var(--fs-small,13px);cursor:pointer;transition:background .12s,color .12s}.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{min-width:22px;text-align:center;color:var(--c-fg-subtle)}.ff-avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:var(--radius-pill);overflow:hidden;background:var(--c-surface-hover);color:var(--c-fg-muted);font-family:var(--font-base);font-weight:500;line-height:1;border:1px solid var(--c-border);user-select:none}.ff-avatar__img{width:100%;height:100%;object-fit:cover;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{display:inline-flex;align-items:center}.ff-avatar-group .ff-avatar{margin-left:-8px;border:2px solid var(--c-bg,var(--c-surface))}.ff-avatar-group .ff-avatar:first-child{margin-left:0}.ff-table{width:100%;border-collapse:collapse;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);font-weight:400;color:var(--c-fg-subtle);padding:8px 12px;border-bottom:1px solid var(--c-border);white-space:nowrap;outline:none}.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{outline:none;border-bottom:1px solid var(--c-border)}.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{padding:9px 12px;outline:none;vertical-align:middle}.ff-cmdk__backdrop{position:fixed;inset:0;background:var(--c-backdrop);z-index:var(--z-modal,110);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}.ff-cmdk__backdrop[data-entering]{animation:ff-pop-in .12s ease}.ff-cmdk__backdrop[data-exiting]{animation:ff-pop-in .1s ease reverse}.ff-cmdk{width:560px;max-width:100%;background:var(--c-surface-elevated,var(--c-surface));border:1px solid var(--c-border);border-radius:var(--radius-card);box-shadow:var(--shadow-strong);overflow:hidden}.ff-cmdk__dialog{outline:none;display:flex;flex-direction:column;max-height:60vh}.ff-cmdk__search{display:block;border-bottom:1px solid var(--c-border)}.ff-cmdk__input{width:100%;height:52px;padding:0 16px;border:none;background:transparent;color:var(--c-fg);font-family:var(--font-base);font-size:15px;outline:none}.ff-cmdk__input::placeholder{color:var(--c-fg-subtle)}.ff-cmdk__menu{outline:none;overflow:auto;padding:6px;gap:2px}.ff-cmdk__menu,.ff-cmdk__section{display:flex;flex-direction:column}.ff-cmdk__section{gap:1px}.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{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:var(--radius-sm);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer;outline:none}.ff-cmdk__item[data-focused],.ff-cmdk__item[data-hovered]{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);padding:1px 6px;background:var(--c-surface)}.ff-listbox{outline:none;display:flex;flex-direction:column;gap:1px;padding:4px;border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface);max-height:320px;overflow:auto}.ff-listbox__item{padding:7px 10px;border-radius:var(--radius-sm);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer;outline:none;display:flex;align-items:center;justify-content:space-between;gap:8px}.ff-listbox__item[data-focused],.ff-listbox__item[data-hovered]{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{outline:none;display:flex;flex-direction:column;border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface);overflow:hidden}.ff-gridlist__item{display:flex;align-items:center;gap:10px;padding:10px 12px;font-size:var(--fs-ui-lg,14px);color:var(--c-fg);border-bottom:1px solid var(--c-border);cursor:pointer;outline:none}.ff-gridlist__item:last-child{border-bottom:none}.ff-gridlist__item[data-focused],.ff-gridlist__item[data-hovered]{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{display:flex;flex-direction:column;gap:1px;padding:4px;border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface);max-height:340px;overflow:auto}.ff-tree,.ff-tree__item{outline:none}.ff-tree__item [slot=chevron]{cursor:pointer;color:var(--c-fg-subtle);display:inline-flex;transition:transform .12s ease}.ff-tree__item[data-expanded]>* [slot=chevron]{transform:rotate(90deg)}.ff-tree__item .react-aria-TreeItemContent,.ff-tree__item [role=row]{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:var(--radius-sm);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer}.ff-tree__item[data-focused]>.react-aria-TreeItemContent,.ff-tree__item[data-hovered]>.react-aria-TreeItemContent{background:var(--c-surface-hover)}.ff-tree__item[data-selected]>.react-aria-TreeItemContent{background:var(--c-accent-bg)}.ff-taggroup{display:flex;flex-direction:column;gap:6px}.ff-taggroup__list{display:flex;flex-wrap:wrap;gap:6px;outline:none}.ff-taggroup__tag{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;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}.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);border:none;background:none;font-size:var(--fs-small,13px);line-height:1;padding:0}.ff-meter{display:flex;flex-direction:column;gap:5px;font-family:var(--font-base)}.ff-meter__head{display:flex;align-items:center;justify-content:space-between;gap:8px}.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{height:8px;border-radius:var(--radius-pill);background:var(--c-border-hover);overflow:hidden}.ff-meter__fill{height:100%;border-radius:var(--radius-pill);background:var(--c-accent);transition:width .2s ease}.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{display:flex;align-items:center;justify-content:center;text-align:center;gap:8px;min-height:120px;padding:20px;border:1.5px dashed var(--c-border-hover);border-radius:var(--radius-card);background:var(--c-surface);color:var(--c-fg-muted);font-size:var(--fs-ui-lg,14px);outline:none;transition:border-color .12s,background .12s}.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{display:flex;flex-direction:column;gap:8px}.ff-color-area{width:192px;height:160px;border-radius:var(--radius);flex:none;border:1px solid var(--c-border);forced-color-adjust:none}.ff-color-thumb{width:16px;height:16px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.45),0 1px 2px rgba(0,0,0,.35);box-sizing:border-box}.ff-color-thumb[data-focus-visible]{width:20px;height:20px}.ff-color-slider{display:flex;flex-direction:column;gap:5px;max-width:240px}.ff-color-slider__head{display:flex;align-items:center;justify-content:space-between;gap:8px}.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{height:22px;border-radius:var(--radius);border:1px solid var(--c-border)}.ff-color-slider__track,.ff-color-wheel,.ff-color-wheel__track{forced-color-adjust:none}.ff-color-field{max-width:150px}.ff-color-swatch{width:26px;height:26px;border-radius:var(--radius-sm);border:1px solid var(--c-border);forced-color-adjust:none}.ff-color-swatches{display:flex;flex-wrap:wrap;gap:6px;outline:none}.ff-color-swatches [slot],.react-aria-ColorSwatchPickerItem{position:relative;outline:none;border-radius:var(--radius-sm);cursor:pointer}.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);padding:4px;min-width:200px;max-width:280px}.ff-mention__popover[data-entering]{animation:ff-pop-in .12s ease}.ff-mention__menu{outline:none;max-height:240px;overflow:auto;display:flex;flex-direction:column;gap:1px}.ff-mention__item{padding:7px 10px;border-radius:var(--radius-sm);font-size:var(--fs-ui-lg,14px);color:var(--c-fg);cursor:pointer;outline:none}.ff-mention__item[data-focused],.ff-mention__item[data-hovered]{background:var(--c-surface-hover)}.ff-mention__item[data-disabled]{opacity:.45;cursor:not-allowed}@media (prefers-reduced-motion:reduce){.ff-modal-overlay[data-entering],.ff-modal-overlay[data-exiting],.ff-modal[data-entering],.ff-popover[data-entering],.ff-popover[data-exiting],.ff-slideover-overlay[data-entering],.ff-slideover-overlay[data-exiting],.ff-slideover[data-entering],.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{position:sticky;top:0;background:var(--c-bg-panel);z-index:1}.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))}.app-sidebar,.sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;background:var(--c-bg-sidebar);border-right:1px solid transparent;padding:var(--space-6) var(--space-4);gap:var(--space-6);overflow-y:auto}.sidebar__brand{display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-2) var(--space-2)}.sidebar__brand .topbar__logo{height:22px}.sidebar__brand .topbar__title{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;color:var(--c-fg-muted);letter-spacing:.08em}.app-sidebar__nav,.sidebar__nav{display:flex;flex-direction:column;gap:1px;flex:1 1 auto;min-height:0}.app-sidebar__section,.sidebar__group-label{font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--c-fg-subtle);padding:var(--space-3) var(--space-2) var(--space-2)}.app-sidebar__item,.sidebar__link{display:flex;align-items:center;gap:var(--space-3);padding:4px var(--space-3);border-radius:var(--radius);font-size:14px;color:var(--c-fg-muted);transition:background var(--t-fast) var(--ease-std),color var(--t-fast) var(--ease-std);text-decoration:none;position:relative}.app-sidebar__item:hover,.sidebar__link:hover{background:var(--c-surface-hover);color:var(--c-fg);text-decoration:none}.app-sidebar__item.is-active,.sidebar__link--active{background:var(--c-accent-bg);color:var(--c-fg);font-weight:500}.sidebar__link--active .sidebar__link-icon{color:var(--c-fg)}.sidebar__link-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:var(--c-fg-subtle)}.sidebar__link-label{flex:1 1 auto}.sidebar__link-icon svg{width:16px;height:16px}.sidebar__link-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--c-fg);color:var(--c-bg);font-size:10px;font-weight:500;font-family:var(--font-base);letter-spacing:0;line-height:1}.app-sidebar__logo,.sidebar__logo{display:flex;align-items:center;padding:0 var(--space-2) var(--space-2);color:var(--c-fg);flex-shrink:0}.app-sidebar__account,.sidebar__account{position:relative}.app-sidebar__account-trigger,.sidebar__account-trigger{width:100%;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border:none;background:transparent;border-radius:var(--radius);cursor:pointer;text-align:left;transition:background var(--t-fast) var(--ease-std)}.sidebar__account-trigger:hover{background:var(--c-surface-hover)}.app-sidebar__account-avatar,.sidebar__account-avatar{width:28px;height:28px;border-radius:50%;background:var(--c-accent);color:var(--c-on-accent);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--fs-xs);flex-shrink:0}.sidebar__account-id{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}.app-sidebar__account-name,.sidebar__account-name{font-size:var(--fs-small);font-weight:500;color:var(--c-fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-sidebar__account-sub,.sidebar__account-sub{font-size:var(--fs-tiny);color:var(--c-fg-subtle)}.app-sidebar__account-chevron,.sidebar__account-chevron{color:var(--c-fg-subtle);flex-shrink:0;transition:transform .16s var(--ease-std,ease)}.app-sidebar__account[data-open=true] .app-sidebar__account-chevron,.sidebar__account[data-open=true] .sidebar__account-chevron{transform:rotate(90deg)}.app-sidebar__account-menu,.sidebar__account-menu{position:absolute;bottom:calc(100% + var(--space-2));left:0;right:0;background:var(--c-surface-elevated);border:none;border-radius:var(--radius-card);box-shadow:var(--shadow-strong);padding:var(--space-2);z-index:var(--z-dropdown);max-height:70vh;overflow-y:auto}.sidebar__account-email{font-size:var(--fs-tiny);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__account-email,.sidebar__account-head{color:var(--c-fg-subtle);padding:var(--space-1) var(--space-2)}.sidebar__account-head{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:var(--ls-mono);text-transform:uppercase}.sidebar__account-sep{height:1px;background:var(--c-border);margin:var(--space-1) 0}.app-sidebar__account-item,.sidebar__account-item{width:100%;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border:none;background:transparent;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)}.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{margin-left:auto;font-size:var(--fs-tiny);color:var(--c-fg-subtle)}.sidebar__account-check{margin-left:auto;color:var(--c-fg)}.sidebar__foot{display:flex;flex-direction:column;gap:var(--space-1);padding-top:var(--space-3);border-top:1px solid var(--c-border);flex-shrink:0}.sidebar__foot-btn{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-xs) var(--space-3);border-radius:var(--radius);border:none;background:transparent;color:var(--c-fg-muted);font-family:inherit;font-size:14px;cursor:pointer;text-align:left;width:100%;transition:background var(--t-fast) var(--ease-std),color var(--t-fast) var(--ease-std)}.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);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--c-fg-subtle)}.space-sidebar{position:sticky;top:0;align-self:start;height:100vh;display:flex;flex-direction:column;padding:var(--space-6) var(--space-4);gap:var(--space-6);background:var(--c-bg-sidebar);border-right:1px solid transparent}.space-sidebar__top{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-2)}.space-sidebar__logo{display:flex;align-items:center;text-decoration:none;color:var(--c-fg)}.space-sidebar__nav{display:flex;flex-direction:column;gap:1px;flex:1}.space-sidebar__item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-xs) var(--space-3);border-radius:var(--radius);color:var(--c-fg-muted);text-decoration:none;font-size:14px;font-weight:400;transition:background var(--t-fast) var(--ease-std),color var(--t-fast) var(--ease-std)}.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{flex-shrink:0;color:var(--c-fg-subtle)}.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{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:transparent;transition:background var(--t-fast) var(--ease-std)}.space-sidebar__user:hover{background:var(--c-surface-hover)}.space-sidebar__user-actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.space-sidebar__icon-btn{background:transparent;border:0;cursor:pointer;color:var(--c-fg-subtle);padding:var(--space-1);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;transition:background var(--t-fast) var(--ease-std),color var(--t-fast) var(--ease-std)}.space-sidebar__icon-btn:hover{background:var(--c-surface-hover);color:var(--c-fg)}.space-sidebar__avatar{width:32px;height:32px;border-radius:50%;background:var(--space-accent);color:var(--c-on-accent);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:700;flex-shrink:0}.space-sidebar__user-info{flex:1;min-width:0;display:flex;flex-direction:column}.space-sidebar__user-name{font-size:var(--fs-small);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.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{background:transparent;border:0;cursor:pointer;color:var(--c-fg-subtle);padding:var(--space-1);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;transition:background var(--t-fast) var(--ease-std),color var(--t-fast) var(--ease-std)}.space-sidebar__logout:hover{background:var(--c-surface-hover);color:var(--c-danger)}.space-sidebar__login{display:flex;align-items:center;justify-content:center;padding:var(--space-2) var(--space-4);border-radius:var(--radius);background:var(--space-accent);color:var(--c-on-accent);text-decoration:none;font-weight:600;font-size:var(--fs-small)}.ai-sidebar{width:var(--sidebar-w);background:var(--c-bg-sidebar);padding:var(--space-6) var(--space-4)}.ai-sidebar__section{font-family:var(--font-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--c-fg-subtle);padding:var(--space-3) var(--space-2) var(--space-2)}.ai-sidebar__item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:4px var(--space-3);border-radius:var(--radius);font-size:14px;color:var(--c-fg-muted);background:transparent;border:none;cursor:pointer;text-align:left;font-family:inherit;text-decoration:none;transition:background .12s ease,color .12s ease;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{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:var(--c-fg-subtle)}.ai-sidebar__item.is-active .ai-sidebar__item-icon{color:var(--c-fg)}.ai-sidebar__item-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-sidebar__foot{display:flex;flex-direction:column;gap:var(--space-1);padding-top:var(--space-3);margin-top:var(--space-2);border-top:1px solid var(--c-border);flex-shrink:0}.ai-sidebar__account{position:relative}.ai-sidebar__account-trigger{width:100%;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border:none;background:transparent;border-radius:var(--radius);cursor:pointer;text-align:left;transition:background .12s ease}.ai-sidebar__account-trigger:hover{background:var(--c-surface-hover)}.ai-sidebar__account-avatar{width:28px;height:28px;border-radius:50%;background:var(--c-accent);color:var(--c-bg);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--fs-xs);flex-shrink:0}.ai-sidebar__account-id{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}.ai-sidebar__account-name{font-size:var(--fs-small);font-weight:500;color:var(--c-fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.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{position:absolute;bottom:calc(100% + var(--space-2));left:0;right:0;background:var(--c-surface-elevated);border:none;border-radius:var(--radius-card);box-shadow:var(--shadow-strong);padding:var(--space-2);z-index:var(--z-dropdown)}.ai-sidebar__account-email{font-size:var(--fs-tiny);color:var(--c-fg-subtle);padding:var(--space-1) var(--space-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-sidebar__account-sep{height:1px;background:var(--c-border);margin:var(--space-1) 0}.ai-sidebar__account-item{width:100%;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);border:none;background:transparent;border-radius:var(--radius);cursor:pointer;text-align:left;font-size:var(--fs-small);color:var(--c-fg-muted);transition:background .12s ease,color .12s ease}.ai-sidebar__account-item:hover{background:var(--c-surface-hover);color:var(--c-fg)}h1.page-title{font-size:var(--fs-h1,2rem);line-height:1.15;font-weight:700;letter-spacing:-.02em;color:var(--c-fg)}.page-back{display:inline-block;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--c-fg-subtle);margin-bottom:var(--space-2)}.page-back:hover{color:var(--c-fg);text-decoration:none}.page-breadcrumb{display:inline-flex;align-items:center;flex-wrap:wrap;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;margin-bottom:var(--space-2)}.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{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-8)}.page-header__main{display:flex;flex-direction:column;min-width:0}.page-header__meta{margin-top:var(--space-2);font-size:14px;color:var(--c-fg-muted)}.page-header__actions,.page-header__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.page-header__actions .search-field .input{height:32px;padding-top:0;padding-bottom:0;font-size:13px}.page-subtitle{margin-top:var(--space-1);font-size:14px;color:var(--c-fg-muted)}@media (max-width:768px){.page-header{flex-direction:column;align-items:stretch;gap:var(--space-3);margin-bottom:var(--space-6)}}@media (max-width:480px){.page-breadcrumb{font-size:10px}h1.page-title{font-size:24px;line-height:28px}}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-shell__body{flex:1;min-height:calc(100vh - var(--chrome-h, 0px))}.app-shell .sidebar{top:var(--chrome-h,0);height:calc(100dvh - var(--chrome-h, 0px))}.app-frame{display:grid;grid-template-columns:var(--sidebar-w,272px) minmax(0,1fr);min-height:calc(100vh - var(--chrome-h, 0px))}.app-canvas{display:contents}.sidebar-toggle{display:none;align-items:center;justify-content:center;cursor:pointer;color:var(--c-fg);-webkit-tap-highlight-color:transparent}.sidebar-toggle .burger{position:relative;width:18px;height:14px;flex-shrink:0}.sidebar-toggle .burger__line{position:absolute;left:0;right:0;height:2px;border-radius:2px;background:currentColor;transition:transform var(--t-medium,.2s) cubic-bezier(.32,.72,0,1),opacity var(--t-fast,.12s) var(--ease-std,ease)}.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{display:none;position:fixed;inset:0;background:var(--c-backdrop,rgba(0,0,0,.4));z-index:var(--z-sidebar-backdrop,40)}@media (max-width:1024px){.app-frame{--drawer-w:min(86vw,320px);grid-template-columns:minmax(0,1fr);overflow-x:clip;position:relative}html[data-drawer=open]{overflow:hidden}.app-frame .sidebar{position:fixed;inset:0 auto 0 0;width:var(--drawer-w,min(86vw,320px));height:100dvh;overflow-y:auto;z-index:100;border:0;background:var(--c-bg-sidebar,var(--c-bg));transform:translateX(-100%);opacity:1;transition:transform .32s ease-in-out}html[data-drawer=open] .app-frame .sidebar{transform:translateX(0)}.app-frame .app-canvas{display:flex;flex-direction:column;min-height:calc(100vh - var(--chrome-h, 0px));background:var(--c-bg);will-change:auto!important}.app-frame .app-canvas,html[data-drawer=open] .app-frame .app-canvas{transform:none!important;border-radius:0!important;box-shadow:none!important}html[data-drawer=open] .app-frame .app-canvas{overflow:visible!important}.app-topbar{display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;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)}.app-topbar__lead{gap:var(--space-3);min-width:0;flex:1 1 auto}.app-topbar__brand,.app-topbar__lead{display:inline-flex;align-items:center}.app-topbar__brand{color:var(--c-fg);flex-shrink:0}.sidebar-toggle{display:inline-flex}.app-topbar__toggle.sidebar-toggle{position:static;transform:none;width:40px;height:40px;border-radius:var(--radius,8px);background:var(--c-surface);box-shadow:none}.app-frame .app-main{padding-top:calc(52px + var(--space-4))}.app-frame .sidebar .app-sidebar__logo,.app-frame .sidebar .sidebar__logo{display:none}.sidebar-backdrop{display:block;position:fixed;inset:0;background:var(--c-backdrop,rgba(0,0,0,.5));z-index:95;opacity:0;pointer-events:none;transition:opacity .32s ease-in-out}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}}