:root{--ff-space-0:0px;--ff-space-px:1px;--ff-space-0-5:2px;--ff-space-1:4px;--ff-space-1-5:6px;--ff-space-2:8px;--ff-space-2-5:10px;--ff-space-3:12px;--ff-space-3-5:14px;--ff-space-4:16px;--ff-space-5:20px;--ff-space-6:24px;--ff-space-7:28px;--ff-space-8:32px;--ff-space-9:36px;--ff-space-10:40px;--ff-space-12:48px;--ff-space-14:56px;--ff-space-16:64px;--ff-space-20:80px;--ff-space-24:96px;--ff-space-xs:var(--ff-space-1);--ff-space-sm:var(--ff-space-2);--ff-space-md:var(--ff-space-4);--ff-space-lg:var(--ff-space-6);--ff-space-xl:var(--ff-space-8);--ff-space-2xl:var(--ff-space-12);--ff-space-3xl:var(--ff-space-16);--ff-radius-none:0px;--ff-radius-sm:2px;--ff-radius-base:4px;--ff-radius-md:6px;--ff-radius-lg:8px;--ff-radius-xl:12px;--ff-radius-2xl:16px;--ff-radius-3xl:24px;--ff-radius-full:9999px;--ff-radius-button:var(--ff-radius-md);--ff-radius-input:var(--ff-radius-md);--ff-radius-card:var(--ff-radius-lg);--ff-font-sans:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--ff-font-mono:"JetBrains Mono","Fira Code",Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ff-text-xs:12px;--ff-text-sm:14px;--ff-text-base:16px;--ff-text-lg:18px;--ff-text-xl:20px;--ff-text-2xl:24px;--ff-text-3xl:30px;--ff-font-thin:100;--ff-font-light:300;--ff-font-normal:400;--ff-font-medium:500;--ff-font-semibold:600;--ff-font-bold:700;--ff-leading-tight:1.25;--ff-leading-normal:1.5;--ff-leading-relaxed:1.625;--ff-shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--ff-shadow-base:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--ff-shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--ff-shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--ff-ring-base:0 0 0 2px rgba(59,130,246,.5);--ff-ring-error:0 0 0 2px rgba(239,68,68,.5);--ff-ring-success:0 0 0 2px rgba(34,197,94,.5);--ff-ring-warning:0 0 0 2px rgba(245,158,11,.5)}:root,[data-theme=light]{--ff-bg-primary:#fff;--ff-bg-secondary:#f9fafb;--ff-bg-tertiary:#f3f4f6;--ff-text-primary:#111827;--ff-text-secondary:#4b5563;--ff-text-tertiary:#6b7280;--ff-text-inverse:#fff;--ff-border-primary:#e5e7eb;--ff-border-secondary:#d1d5db;--ff-border-focus:#3b82f6;--ff-color-primary:#2563eb;--ff-color-primary-hover:#1d4ed8;--ff-color-primary-active:#1e40af;--ff-color-secondary:#f3f4f6;--ff-color-secondary-hover:#e5e7eb;--ff-color-secondary-active:#d1d5db;--ff-color-error:#ef4444;--ff-color-warning:#f59e0b;--ff-color-success:#22c55e;--ff-color-info:#3b82f6;--ff-button-focus-ring:var(--ff-ring-base);--ff-input-focus-ring:var(--ff-ring-base)}[data-theme=dark]{--ff-bg-primary:#111827;--ff-bg-secondary:#1f2937;--ff-bg-tertiary:#374151;--ff-text-primary:#f9fafb;--ff-text-secondary:#d1d5db;--ff-text-tertiary:#9ca3af;--ff-text-inverse:#111827;--ff-border-primary:#374151;--ff-border-secondary:#4b5563;--ff-border-focus:#60a5fa;--ff-color-primary:#3b82f6;--ff-color-primary-hover:#60a5fa;--ff-color-primary-active:#93c5fd;--ff-color-secondary:#374151;--ff-color-secondary-hover:#4b5563;--ff-color-secondary-active:#6b7280;--ff-color-error:#f87171;--ff-color-warning:#fbbf24;--ff-color-success:#4ade80;--ff-color-info:#60a5fa;--ff-button-focus-ring:0 0 0 2px rgba(96,165,250,.5);--ff-input-focus-ring:0 0 0 2px rgba(96,165,250,.5)}.ff-component{box-sizing:border-box;font-family:var(--ff-font-sans)}.ff-focus-visible:focus-visible{outline:none;box-shadow:var(--ff-button-focus-ring)}@media (prefers-reduced-motion:reduce){.ff-component,.ff-component *,.ff-component :after,.ff-component :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.ff-button{position:relative;display:inline-flex;align-items:center;justify-content:center;font-family:var(--ff-font-sans);font-weight:var(--ff-font-medium);line-height:var(--ff-leading-normal);text-align:center;text-decoration:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:1px solid transparent;cursor:pointer;transition:all .15s ease-in-out;border-radius:var(--ff-radius-button);background:none;padding:0;margin:0;outline:none}.ff-button--primary{background-color:var(--ff-color-primary);color:var(--ff-text-inverse);border-color:var(--ff-color-primary)}.ff-button--primary:hover:not(:disabled){background-color:var(--ff-color-primary-hover);border-color:var(--ff-color-primary-hover)}.ff-button--primary:active:not(:disabled){background-color:var(--ff-color-primary-active);border-color:var(--ff-color-primary-active)}.ff-button--secondary{background-color:var(--ff-color-secondary);color:var(--ff-text-primary);border-color:var(--ff-border-primary)}.ff-button--secondary:hover:not(:disabled){background-color:var(--ff-color-secondary-hover);border-color:var(--ff-border-secondary)}.ff-button--secondary:active:not(:disabled){background-color:var(--ff-color-secondary-active)}.ff-button--ghost{background-color:transparent;color:var(--ff-text-primary);border-color:transparent}.ff-button--ghost:hover:not(:disabled){background-color:var(--ff-color-secondary)}.ff-button--ghost:active:not(:disabled){background-color:var(--ff-color-secondary-hover)}.ff-button--danger{background-color:var(--ff-color-error);color:var(--ff-text-inverse);border-color:var(--ff-color-error)}.ff-button--danger:hover:not(:disabled){background-color:var(--ff-color-error);opacity:.9}.ff-button--danger:active:not(:disabled){opacity:.8}.ff-button--sm{padding:var(--ff-space-2) var(--ff-space-3);font-size:var(--ff-text-sm);gap:var(--ff-space-1-5)}.ff-button--md{padding:var(--ff-space-2-5) var(--ff-space-4);font-size:var(--ff-text-base);gap:var(--ff-space-2)}.ff-button--lg{padding:var(--ff-space-3) var(--ff-space-5);font-size:var(--ff-text-lg);gap:var(--ff-space-2)}.ff-button--full{width:100%}.ff-button--loading{cursor:default;pointer-events:none}.ff-button__spinner{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.ff-button__spinner-icon{width:1em;height:1em;stroke:currentColor}.ff-button__content--loading{opacity:0}.ff-button__content{display:flex;align-items:center;gap:inherit}.ff-button:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.ff-button:focus-visible{outline:none;box-shadow:var(--ff-button-focus-ring)}@media (prefers-contrast:high){.ff-button{border-width:2px}}@media (prefers-reduced-motion:reduce){.ff-button{transition:none}.ff-button__spinner-icon *{animation:none}}.ff-input-wrapper{display:flex;flex-direction:column;gap:var(--ff-space-1-5)}.ff-input-wrapper--full{width:100%}.ff-input__label{font-family:var(--ff-font-sans);font-size:var(--ff-text-sm);font-weight:var(--ff-font-medium);color:var(--ff-text-primary);line-height:var(--ff-leading-normal);margin-bottom:var(--ff-space-1-5)}.ff-input__required{color:var(--ff-color-error);margin-left:var(--ff-space-1)}.ff-input__field-wrapper{position:relative;display:flex;align-items:center}.ff-input{width:100%;font-family:var(--ff-font-sans);line-height:var(--ff-leading-normal);color:var(--ff-text-primary);border:1px solid var(--ff-border-primary);border-radius:var(--ff-radius-input);transition:all .15s ease-in-out;outline:none;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.ff-input,.ff-input--default{background-color:var(--ff-bg-primary)}.ff-input--filled{background-color:var(--ff-bg-secondary);border-color:transparent}.ff-input--filled:focus{background-color:var(--ff-bg-primary);border-color:var(--ff-border-focus)}.ff-input--sm{padding:var(--ff-space-2) var(--ff-space-3);font-size:var(--ff-text-sm)}.ff-input--md{padding:var(--ff-space-2-5) var(--ff-space-3-5);font-size:var(--ff-text-base)}.ff-input--lg{padding:var(--ff-space-3) var(--ff-space-4);font-size:var(--ff-text-lg)}.ff-input--with-left-icon{padding-left:var(--ff-space-10)}.ff-input--with-right-icon{padding-right:var(--ff-space-10)}.ff-input__icon{position:absolute;display:flex;align-items:center;justify-content:center;color:var(--ff-text-secondary);pointer-events:none;z-index:1}.ff-input__icon--left{left:var(--ff-space-3)}.ff-input__icon--right{right:var(--ff-space-3)}.ff-input__icon svg{width:1.25em;height:1.25em}.ff-input:hover:not(:disabled){border-color:var(--ff-border-secondary)}.ff-input:focus{border-color:var(--ff-border-focus);box-shadow:var(--ff-input-focus-ring)}.ff-input:disabled{background-color:var(--ff-bg-secondary);color:var(--ff-text-tertiary);cursor:not-allowed;opacity:.6}.ff-input--error,.ff-input-wrapper--error .ff-input{border-color:var(--ff-color-error)}.ff-input--error:focus,.ff-input-wrapper--error .ff-input:focus{box-shadow:var(--ff-ring-error)}.ff-input__messages{display:flex;flex-direction:column;gap:var(--ff-space-1)}.ff-input__error{color:var(--ff-color-error)}.ff-input__error,.ff-input__helper{font-size:var(--ff-text-sm);line-height:var(--ff-leading-normal)}.ff-input__helper{color:var(--ff-text-secondary)}.ff-input::placeholder{color:var(--ff-text-tertiary);opacity:1}.ff-input:disabled::placeholder{color:var(--ff-text-tertiary);opacity:.6}@media (prefers-contrast:high){.ff-input{border-width:2px}.ff-input:focus{border-width:3px}}@media (prefers-reduced-motion:reduce){.ff-input{transition:none}}.ff-input:-webkit-autofill,.ff-input:-webkit-autofill:focus,.ff-input:-webkit-autofill:hover{-webkit-box-shadow:0 0 0 1000px var(--ff-bg-primary) inset;-webkit-text-fill-color:var(--ff-text-primary);border-color:var(--ff-border-focus)}.ff-card{display:flex;flex-direction:column;background-color:var(--ff-bg-primary);border-radius:var(--ff-radius-card);position:relative;overflow:hidden;transition:all .15s ease-in-out}.ff-card--elevated{box-shadow:var(--ff-shadow-base);border:1px solid transparent}.ff-card--outlined{border:1px solid var(--ff-border-primary);box-shadow:none}.ff-card--filled{background-color:var(--ff-bg-secondary);border:1px solid transparent;box-shadow:none}.ff-card--padding-none{padding:0}.ff-card--padding-sm{padding:var(--ff-space-4)}.ff-card--padding-md{padding:var(--ff-space-6)}.ff-card--padding-lg{padding:var(--ff-space-8)}.ff-card--interactive{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ff-card--interactive:hover{transform:translateY(-1px)}.ff-card--interactive.ff-card--elevated:hover{box-shadow:var(--ff-shadow-md)}.ff-card--interactive.ff-card--outlined:hover{border-color:var(--ff-border-secondary)}.ff-card--interactive.ff-card--filled:hover{background-color:var(--ff-bg-tertiary)}.ff-card--interactive:active{transform:translateY(0)}.ff-card--interactive.ff-card--elevated:active{box-shadow:var(--ff-shadow-sm)}.ff-card--interactive:focus-visible{outline:none;box-shadow:var(--ff-ring-base),var(--ff-shadow-base)}.ff-card--interactive.ff-card--elevated:focus-visible{box-shadow:var(--ff-ring-base),var(--ff-shadow-md)}.ff-card__header{flex-shrink:0}.ff-card__body{flex:1 1;min-height:0}.ff-card__footer{flex-shrink:0;margin-top:auto}.ff-card--padding-sm .ff-card__body,.ff-card--padding-sm .ff-card__footer,.ff-card--padding-sm .ff-card__header{padding:0}.ff-card--padding-sm .ff-card__header{padding:var(--ff-space-4) var(--ff-space-4) var(--ff-space-2) var(--ff-space-4)}.ff-card--padding-sm .ff-card__body{padding:var(--ff-space-2) var(--ff-space-4)}.ff-card--padding-sm .ff-card__footer{padding:var(--ff-space-2) var(--ff-space-4) var(--ff-space-4) var(--ff-space-4)}.ff-card--padding-md .ff-card__body,.ff-card--padding-md .ff-card__footer,.ff-card--padding-md .ff-card__header{padding:0}.ff-card--padding-md .ff-card__header{padding:var(--ff-space-6) var(--ff-space-6) var(--ff-space-3) var(--ff-space-6)}.ff-card--padding-md .ff-card__body{padding:var(--ff-space-3) var(--ff-space-6)}.ff-card--padding-md .ff-card__footer{padding:var(--ff-space-3) var(--ff-space-6) var(--ff-space-6) var(--ff-space-6)}.ff-card--padding-lg .ff-card__body,.ff-card--padding-lg .ff-card__footer,.ff-card--padding-lg .ff-card__header{padding:0}.ff-card--padding-lg .ff-card__header{padding:var(--ff-space-8) var(--ff-space-8) var(--ff-space-4) var(--ff-space-8)}.ff-card--padding-lg .ff-card__body{padding:var(--ff-space-4) var(--ff-space-8)}.ff-card--padding-lg .ff-card__footer{padding:var(--ff-space-4) var(--ff-space-8) var(--ff-space-8) var(--ff-space-8)}.ff-card__body+.ff-card__footer,.ff-card__header+.ff-card__body{position:relative}.ff-card__body+.ff-card__footer:before,.ff-card__header+.ff-card__body:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background-color:var(--ff-border-primary)}.ff-card--padding-none .ff-card__body+.ff-card__footer:before,.ff-card--padding-none .ff-card__header+.ff-card__body:before{left:var(--ff-space-6);right:var(--ff-space-6)}@media (prefers-contrast:high){.ff-card--outlined{border-width:2px}.ff-card--interactive:focus-visible{outline:2px solid currentColor;outline-offset:2px}}@media (prefers-reduced-motion:reduce){.ff-card{transition:none}.ff-card--interactive:active,.ff-card--interactive:hover{transform:none}}.ff-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--ff-radii-full);font-weight:500;white-space:nowrap;transition:all .2s ease-in-out;border:1px solid transparent}.ff-badge--sm{padding:var(--ff-spacing-1) var(--ff-spacing-2);font-size:.75rem;line-height:1rem}.ff-badge--md{padding:var(--ff-spacing-1) var(--ff-spacing-3)}.ff-badge--lg,.ff-badge--md{font-size:.875rem;line-height:1.25rem}.ff-badge--lg{padding:var(--ff-spacing-2) var(--ff-spacing-4)}.ff-badge--default{background-color:#f3f4f6;color:#374151;border-color:#e5e7eb}.ff-badge--success{background-color:#d1fae5;color:#065f46;border-color:#a7f3d0}.ff-badge--warning{background-color:#fef3c7;color:#92400e;border-color:#fde68a}.ff-badge--danger{background-color:#fee2e2;color:#991b1b;border-color:#fecaca}.ff-badge--info{background-color:#dbeafe;color:#1e40af;border-color:#93c5fd}.ff-alert{border-radius:var(--ff-radii-md);border:1px solid;padding:var(--ff-spacing-4);position:relative}.ff-alert__content{width:100%}.ff-alert__header{display:flex;align-items:center;gap:var(--ff-spacing-2);margin-bottom:var(--ff-spacing-2)}.ff-alert__icon{flex-shrink:0;width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:center}.ff-alert__title{font-weight:600;font-size:.875rem;line-height:1.25rem;margin:0}.ff-alert__body{font-size:.875rem;line-height:1.5}.ff-alert__header+.ff-alert__body{margin-top:var(--ff-spacing-1)}.ff-alert--default{background-color:#f9fafb;border-color:#e5e7eb;color:#374151}.ff-alert--default .ff-alert__title{color:#111827}.ff-alert--success{background-color:#ecfdf5;border-color:#a7f3d0;color:#065f46}.ff-alert--success .ff-alert__title{color:#064e3b}.ff-alert--warning{background-color:#fffbeb;border-color:#fde68a;color:#92400e}.ff-alert--warning .ff-alert__title{color:#78350f}.ff-alert--destructive{background-color:#fef2f2;border-color:#fecaca;color:#991b1b}.ff-alert--destructive .ff-alert__title{color:#7f1d1d}.ff-alert--info{background-color:#eff6ff;border-color:#93c5fd;color:#1e40af}.ff-alert--info .ff-alert__title{color:#1e3a8a}.ff-skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:ff-skeleton-loading 1.5s infinite}@keyframes ff-skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.ff-skeleton--text{height:1rem;border-radius:var(--ff-radii-sm)}.ff-skeleton--rectangular{border-radius:var(--ff-radii-md)}.ff-skeleton--circular{border-radius:var(--ff-radii-full)}.ff-skeleton--text:not([style*=width]){width:100%}.ff-skeleton--text:not([style*=height]){height:1rem}html{font-size:100%;text-size-adjust:100%}body{margin:0;padding:0;font-family:var(--ff-font-sans);font-size:var(--ff-text-base);line-height:var(--ff-leading-normal);color:var(--ff-text-primary);background-color:var(--ff-bg-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1{font-size:var(--ff-text-2xl);font-weight:var(--ff-font-bold);margin:0 0 var(--ff-space-4) 0}h1,h2{line-height:var(--ff-leading-tight);color:var(--ff-text-primary)}h2{font-size:var(--ff-text-xl);font-weight:var(--ff-font-semibold);margin:0 0 var(--ff-space-3) 0}h3{font-size:var(--ff-text-lg);font-weight:var(--ff-font-medium);line-height:var(--ff-leading-tight);color:var(--ff-text-primary);margin:0 0 var(--ff-space-2) 0}p{margin:0 0 var(--ff-space-3) 0;line-height:var(--ff-leading-normal)}.ff-container{max-width:1280px;margin:0 auto;padding:0 var(--ff-space-4)}@media (min-width:640px){.ff-container{padding:0 var(--ff-space-6)}}@media (min-width:1024px){.ff-container{padding:0 var(--ff-space-8)}}.ff-page{min-height:100vh;padding:var(--ff-space-8) 0 var(--ff-space-16) 0}.ff-page-header{margin-bottom:var(--ff-space-8)}.ff-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ff-text-muted{color:var(--ff-text-secondary)}.ff-text-center{text-align:center}.ff-text-sm{font-size:var(--ff-text-sm)}.ff-text-lg{font-size:var(--ff-text-lg)}.ff-text-2xl{font-size:var(--ff-text-2xl)}.ff-font-medium{font-weight:var(--ff-font-medium)}.ff-font-semibold{font-weight:var(--ff-font-semibold)}.ff-text-foreground,.ff-text-primary{color:var(--ff-text-primary)}.ff-text-secondary{color:var(--ff-text-secondary)}.ff-py-8{padding-top:var(--ff-space-8);padding-bottom:var(--ff-space-8)}.ff-mb-2{margin-bottom:var(--ff-space-2)}.ff-mx-auto{margin-left:auto;margin-right:auto}.ff-px-2{padding-left:var(--ff-space-2);padding-right:var(--ff-space-2)}.ff-py-1{padding-top:var(--ff-space-1);padding-bottom:var(--ff-space-1)}.ff-rounded-full{border-radius:var(--ff-radius-full)}.ff-text-xs{font-size:var(--ff-text-xs)}.ff-border{border-width:1px;border-style:solid}.ff-bg-info\/10{background-color:rgba(59,130,246,.1)}.ff-border-info\/20{border-color:rgba(59,130,246,.2)}.ff-bg-warning\/10{background-color:rgba(245,158,11,.1)}.ff-border-warning\/20{border-color:rgba(245,158,11,.2)}.ff-bg-success\/10{background-color:rgba(34,197,94,.1)}.ff-border-success\/20{border-color:rgba(34,197,94,.2)}.ff-animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ff-bg-tertiary\/10{background-color:hsla(220,9%,46%,.1)}.ff-text-tertiary{color:var(--ff-text-tertiary)}.ff-border-tertiary\/20{border-color:hsla(220,9%,46%,.2)}.ff-bg-error\/10{background-color:rgba(239,68,68,.1)}.ff-border-error\/20{border-color:rgba(239,68,68,.2)}.ff-text-subtle{color:var(--ff-text-tertiary)}.ff-bg-gradient{background:linear-gradient(135deg,var(--ff-bg-secondary) 0,var(--ff-bg-tertiary) 100%)}.ff-icon-xs{width:12px;height:12px;flex-shrink:0}.ff-icon-sm{width:14px;height:14px;flex-shrink:0}.ff-icon-md{width:16px;height:16px;flex-shrink:0}.ff-icon-lg{width:18px;height:18px;flex-shrink:0}.ff-icon-xl{width:20px;height:20px;flex-shrink:0}.ff-space-y-2>*+*{margin-top:var(--ff-space-2)}.ff-space-y-3>*+*{margin-top:var(--ff-space-3)}.ff-space-y-4>*+*{margin-top:var(--ff-space-4)}.ff-space-y-6>*+*{margin-top:var(--ff-space-6)}.ff-space-y-8>*+*{margin-top:var(--ff-space-8)}.ff-flex{display:flex}.ff-flex-col{flex-direction:column}.ff-items-center{align-items:center}.ff-flex-1{flex:1 1}.ff-justify-between{justify-content:space-between}.ff-justify-center{justify-content:center}.ff-justify-start{justify-content:flex-start}.ff-gap-2{gap:var(--ff-space-2)}.ff-gap-3{gap:var(--ff-space-3)}.ff-gap-4{gap:var(--ff-space-4)}.ff-gap-1{gap:var(--ff-space-1)}.ff-grid{display:grid}.ff-grid-cols-1{grid-template-columns:repeat(1,1fr)}.ff-grid-cols-2{grid-template-columns:repeat(2,1fr)}.ff-grid-cols-3{grid-template-columns:repeat(3,1fr)}.ff-grid-cols-4{grid-template-columns:repeat(4,1fr)}@media (min-width:640px){.sm\:ff-grid-cols-3{grid-template-columns:repeat(3,1fr)}}@media (min-width:768px){.md\:ff-grid-cols-4{grid-template-columns:repeat(4,1fr)}.ff-md-grid-cols-2{grid-template-columns:repeat(2,1fr)}.ff-md-grid-cols-3{grid-template-columns:repeat(3,1fr)}.ff-md-grid-cols-4{grid-template-columns:repeat(4,1fr)}}@media (min-width:1024px){.ff-lg-grid-cols-2{grid-template-columns:repeat(2,1fr)}.ff-lg-grid-cols-3{grid-template-columns:repeat(3,1fr)}}:focus{outline:none}:focus-visible{outline:2px solid var(--ff-border-focus);outline-offset:2px}button{border:none;background:none;padding:0;margin:0;cursor:pointer}svg{display:block;vertical-align:middle}img{max-width:100%;height:auto}.ff-hidden-mobile{display:none}.ff-show-mobile{display:block}@media (min-width:640px){.ff-hidden-mobile{display:block}}@media (min-width:768px){.ff-show-mobile{display:none}}.ff-button--justify-start{justify-content:flex-start}.ff-fixed{position:fixed}.ff-inset-0{top:0;right:0;bottom:0;left:0}.ff-z-50{z-index:50}.ff-w-5{width:1.25rem}.ff-h-5{height:1.25rem}.ff-w-12{width:3rem}.ff-h-12{height:3rem}.ff-rounded-sm{border-radius:.125rem}.ff-rounded-full{border-radius:9999px}.ff-cursor-pointer{cursor:pointer}.ff-transition-colors{transition-property:color}.ff-hover\:text-foreground:hover{color:var(--ff-text-primary,#1f2937)}.ff-sticky{position:-webkit-sticky;position:sticky}.ff-bottom-0{bottom:0}.ff-border-t{border-top:1px solid var(--ff-border-primary)}.ff-border-l-4{border-left-width:4px;border-left-style:solid}.ff-border-l-warning{border-left-color:var(--ff-color-warning)}.ff-border-dashed{border-style:dashed}.ff-border-muted{border-color:var(--ff-border-primary)}.ff-bg-tertiary{background-color:var(--ff-bg-tertiary)}.ff-bg-primary,.ff-bg-surface{background-color:var(--ff-bg-primary)}.ff-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff-mt-6{margin-top:var(--ff-space-6)}.ff-mb-6{margin-bottom:var(--ff-space-6)}.ff-mr-2{margin-right:var(--ff-space-2)}.ff-p-4{padding:var(--ff-space-4)}.ff-inline-block{display:inline-block}.ff-hidden{display:none}.ff-w-full{width:100%}.ff-h-full{height:100%}.ff-rounded,.ff-rounded-md{border-radius:var(--ff-radius-md)}.ff-overflow-auto{overflow:auto}.ff-justify-end{justify-content:flex-end}.ff-text-primary{color:var(--ff-color-primary)}.ff-text-success{color:var(--ff-color-success)}.ff-text-warning{color:var(--ff-color-warning)}.ff-text-info{color:var(--ff-color-info)}.ff-text-error{color:var(--ff-color-error)}.ff-mb-8{margin-bottom:var(--ff-space-8)}.ff-mb-4{margin-bottom:var(--ff-space-4)}.ff-ml-4{margin-left:var(--ff-space-4)}.ff-flex-shrink-0{flex-shrink:0}.ff-min-w-0{min-width:0}.ff-h-15{height:3.75rem}.ff-border-error{border-color:var(--ff-color-error)}.ff-border-b{border-bottom-width:1px;border-bottom-style:solid}.ff-p-2{padding:var(--ff-space-2)}.ff-p-6{padding:var(--ff-space-6)}select.ff-border{border-color:var(--ff-border-primary)}select:focus{outline:none;border-color:var(--ff-border-focus);box-shadow:0 0 0 2px var(--ff-border-focus)}select:disabled{cursor:not-allowed;opacity:.6}.ff-text-inverse{color:var(--ff-text-inverse)}.ff-text-white{color:#fff}.ff-bg-error{background-color:var(--ff-color-error)}.ff-flex-wrap{flex-wrap:wrap}.ff-relative{position:relative}.ff-group:hover .ff-group-hover-opacity-100{opacity:1}.ff-group-hover-opacity-100,.ff-opacity-0{opacity:0}.ff-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ff-top-2{top:var(--ff-space-2)}.ff-right-2{right:var(--ff-space-2)}.ff-w-6{width:1.5rem}.ff-h-6{height:1.5rem}.ff-inline-flex{display:inline-flex}.hover\:ff-border-primary:hover{border-color:var(--ff-color-primary)}.ff-transition-colors{transition-property:color,background-color,border-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ff-max-w-md{max-width:28rem}.ff-max-w-lg{max-width:32rem}.ff-max-w-5xl{max-width:64rem}.ff-max-h-\[90vh\]{max-height:90vh}.ff-max-h-full{max-height:100%}.ff-overflow-hidden{overflow:hidden}.ff-overflow-y-auto{overflow-y:auto}.ff-text-left{text-align:left}.ff-line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ff-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ff-space-4);flex-wrap:wrap}.ff-detail-summary-card{border-color:color-mix(in srgb,var(--ff-color-primary) 18%,var(--ff-border-primary))}.ff-detail-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:var(--ff-space-4);gap:var(--ff-space-4)}.ff-detail-field{min-width:0;padding:var(--ff-space-3);border:1px solid var(--ff-border-primary);border-radius:var(--ff-radius-md);background:var(--ff-bg-secondary)}.ff-checklist-list{display:grid;grid-gap:var(--ff-space-3);gap:var(--ff-space-3)}.ff-checklist-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:var(--ff-space-3);gap:var(--ff-space-3);padding:var(--ff-space-3);border:1px solid var(--ff-border-primary);border-radius:var(--ff-radius-md);background:var(--ff-bg-secondary)}.ff-checklist-row__label{min-width:0;color:var(--ff-text-primary);overflow-wrap:anywhere}.ff-checklist-row__badge{justify-self:end}.ff-evidence-section-card{overflow:hidden}.ff-evidence-upload{display:grid;grid-gap:var(--ff-space-4);gap:var(--ff-space-4);padding:var(--ff-space-4);border:1px dashed var(--ff-border-primary);border-radius:var(--ff-radius-md);background:color-mix(in srgb,var(--ff-bg-secondary) 85%,var(--ff-color-primary) 15%)}.ff-evidence-upload--disabled{background:var(--ff-bg-secondary)}.ff-evidence-upload__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ff-space-3);flex-wrap:wrap}.ff-evidence-upload__count{flex-shrink:0;margin:0;padding:var(--ff-space-1) var(--ff-space-2);border:1px solid var(--ff-border-primary);border-radius:var(--ff-radius-full);background:var(--ff-bg-primary);color:var(--ff-text-secondary);font-size:var(--ff-text-xs);font-weight:var(--ff-font-medium)}.ff-evidence-upload__controls{display:flex;align-items:center;gap:var(--ff-space-3);flex-wrap:wrap}.ff-evidence-upload__picker{display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;padding:var(--ff-space-2) var(--ff-space-4);border:1px solid var(--ff-border-primary);border-radius:var(--ff-radius-md);background:var(--ff-bg-primary);color:var(--ff-text-primary);font-size:var(--ff-text-sm);font-weight:var(--ff-font-medium);cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.ff-evidence-upload__picker:hover{border-color:var(--ff-color-primary)}.ff-evidence-upload__picker[aria-disabled=true]{cursor:not-allowed;opacity:.65}.ff-evidence-delete-actions{display:flex;flex-wrap:wrap;gap:var(--ff-space-2);padding-top:var(--ff-space-2);border-top:1px solid var(--ff-border-primary)}.ff-evidence-empty{display:flex;align-items:center;gap:var(--ff-space-3);padding:var(--ff-space-4);border:1px dashed var(--ff-border-primary);border-radius:var(--ff-radius-md);background:var(--ff-bg-secondary)}.ff-evidence-empty__icon{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;flex-shrink:0;border-radius:var(--ff-radius-full);background:var(--ff-bg-primary);border:1px solid var(--ff-border-primary);color:var(--ff-text-secondary);font-weight:var(--ff-font-semibold)}.ff-evidence-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));grid-gap:var(--ff-space-4);gap:var(--ff-space-4)}.ff-evidence-grid--compact{grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:var(--ff-space-3)}.ff-evidence-card{min-width:0;overflow:hidden;border:1px solid var(--ff-border-primary);border-radius:var(--ff-radius-md);background:var(--ff-bg-primary);text-align:left;box-shadow:0 1px 2px rgba(15,23,42,.04);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}button.ff-evidence-card:focus-visible,button.ff-evidence-card:hover{border-color:var(--ff-color-primary);box-shadow:0 8px 20px rgba(15,23,42,.08);transform:translateY(-1px)}.ff-evidence-card__media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--ff-bg-tertiary)}.ff-evidence-card__media--fallback{display:flex;align-items:center;justify-content:center;color:var(--ff-text-secondary);font-size:var(--ff-text-xs)}.ff-evidence-card__image{width:100%;height:100%;object-fit:cover;display:block}.ff-evidence-card__body{display:grid;grid-gap:var(--ff-space-1);gap:var(--ff-space-1);padding:var(--ff-space-3)}.ff-evidence-card__title{margin:0;color:var(--ff-text-primary);font-size:var(--ff-text-sm);font-weight:var(--ff-font-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff-evidence-card__description{margin:0;color:var(--ff-text-secondary);font-size:var(--ff-text-xs);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ff-evidence-card__link{color:var(--ff-color-primary);font-size:var(--ff-text-xs);font-weight:var(--ff-font-medium)}.ff-evidence-lightbox{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:var(--ff-space-4);background:rgba(2,6,23,.88)}.ff-evidence-lightbox__panel{display:flex;flex-direction:column;gap:var(--ff-space-3);width:min(100%,72rem);max-height:calc(100vh - 2rem)}.ff-evidence-lightbox__header{display:flex;align-items:center;justify-content:space-between;gap:var(--ff-space-3);min-width:0}.ff-evidence-lightbox__title{margin:0;color:#fff;font-size:var(--ff-text-base);font-weight:var(--ff-font-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ff-evidence-lightbox__description{margin:var(--ff-space-1) 0 0;color:hsla(0,0%,100%,.78);font-size:var(--ff-text-sm);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ff-evidence-lightbox__image-wrap{display:flex;align-items:center;justify-content:center;min-height:0;border-radius:var(--ff-radius-md);background:#000;overflow:hidden}.ff-evidence-lightbox__image{display:block;width:auto;height:auto;max-width:100%;max-height:min(78vh,48rem);object-fit:contain}.ff-evidence-lightbox__fallback{padding:var(--ff-space-6);border-radius:var(--ff-radius-md);background:var(--ff-bg-primary);text-align:center}.ff-action-bar{display:flex;justify-content:flex-end;gap:var(--ff-space-3);flex-wrap:wrap;padding:var(--ff-space-4);border:1px solid var(--ff-border-primary);border-radius:var(--ff-radius-md);background:var(--ff-bg-primary)}.ff-action-bar--inline{border:0;padding:0}.ff-decision-toggle{display:flex;gap:var(--ff-space-3);flex-wrap:wrap}.ff-decision-textarea{width:100%;min-height:7rem;resize:vertical;padding:var(--ff-space-3);border:1px solid var(--ff-border-primary);border-radius:var(--ff-radius-md);background:var(--ff-bg-primary);color:var(--ff-text-primary);font:inherit}.ff-decision-textarea:focus{border-color:var(--ff-border-focus);box-shadow:0 0 0 2px var(--ff-border-focus)}.ff-task-list-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ff-space-4);flex-wrap:wrap}.ff-task-list-header__copy{min-width:min(100%,18rem)}.ff-task-list-header__actions{display:flex;justify-content:flex-end;max-width:100%}.ff-filter-card{margin-top:var(--ff-space-2)}@media (max-width:640px){.ff-page{padding-top:var(--ff-space-5)}.ff-container{padding:0 var(--ff-space-3)}.ff-detail-summary-grid{grid-template-columns:1fr}.ff-action-bar,.ff-evidence-upload__controls,.ff-evidence-upload__header,.ff-section-heading,.ff-task-list-header{align-items:stretch}.ff-action-bar>button,.ff-decision-toggle>button,.ff-evidence-upload__controls>button,.ff-evidence-upload__picker,.ff-task-list-header__actions,.ff-task-list-header__actions>div{width:100%}.ff-evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ff-space-3)}.ff-evidence-card__body{padding:var(--ff-space-2)}.ff-evidence-lightbox{padding:var(--ff-space-3);align-items:center}.ff-evidence-lightbox__panel{max-height:calc(100vh - 1.5rem)}.ff-evidence-lightbox__header{align-items:flex-start}.ff-evidence-lightbox__close{flex-shrink:0}.ff-evidence-lightbox__image{max-height:72vh}.ff-checklist-row{grid-template-columns:auto minmax(0,1fr)}.ff-checklist-row__badge{grid-column:2;justify-self:start}}