.ffc{gap:var(--sp-20,1.25rem);margin:var(--sp-24,1.5rem) 0;display:grid}.ffc--embed{gap:var(--sp-16,1rem);margin:var(--sp-20,1.25rem) 0}.ffc-controls{gap:var(--sp-16,1rem);grid-template-columns:1fr 1fr;display:grid}@media (width>=760px){.ffc--page .ffc-controls{grid-template-columns:1.4fr 1.4fr .7fr .8fr .9fr}.ffc--embed .ffc-controls{grid-template-columns:1.4fr 1.4fr .7fr}}.ffc-field{gap:var(--sp-8,.5rem);font-weight:600;font-size:var(--fs-14,.875rem);display:grid}.ffc-field input,.ffc-field select,.ffc-field textarea{padding:var(--sp-8,.5rem) var(--sp-8,.5rem);border:1px solid var(--c-border,#e2e8f0);border-radius:var(--radius-md,10px);font-weight:400;font-size:var(--fs-16,1rem);background:var(--c-surface,#f8fafc);color:var(--c-text,#0f172a);min-width:0;font-family:inherit}.ffc-field input:focus-visible,.ffc-field select:focus-visible,.ffc-field textarea:focus-visible,.ffc-output button:focus-visible{outline:3px solid var(--c-brand,#2563eb);outline-offset:2px}.ffc-field textarea{resize:vertical;line-height:1.5}.ffc-upload{gap:var(--sp-16,1rem);padding:var(--sp-16,1rem);border:1px dashed var(--c-border,#e2e8f0);border-radius:var(--radius-lg,14px);background:var(--c-surface,#f8fafc);grid-template-columns:1fr;display:grid}@media (width>=760px){.ffc-upload{grid-template-columns:2fr 1fr}.ffc-upload .ffc-status{grid-column:1/-1}}.ffc-upload[hidden]{display:none}.ffc-status{font-size:var(--fs-14,.875rem);color:var(--c-text-secondary,#475569);margin:0;line-height:1.5}.ffc-status--error{color:var(--c-err-strong,#991b1b);font-weight:600}.ffc-warning{padding:var(--sp-12,.75rem) var(--sp-16,1rem);border-radius:var(--radius-md,10px);background:var(--c-warn-bg,#fef9c3);color:var(--c-warn-text,#713f12);font-size:var(--fs-14,.875rem);margin:0;line-height:1.5}.ffc-warning[hidden]{display:none}.ffc-results{gap:var(--sp-16,1rem);display:grid}.ffc-values{gap:var(--sp-12,.75rem);grid-template-columns:repeat(2,1fr);margin:0;display:grid}@media (width>=760px){.ffc-values{grid-template-columns:repeat(4,1fr)}}.ffc-values>div{border:1px solid var(--c-border,#e2e8f0);border-radius:var(--radius-lg,14px);padding:var(--sp-12,.75rem) var(--sp-16,1rem);background:var(--c-surface,#f8fafc)}.ffc-values dt{font-family:var(--font-mono,monospace);font-size:var(--fs-12,.75rem);color:var(--c-text-secondary,#475569);margin:0 0 var(--sp-4,.25rem)}.ffc-values dd{font-size:var(--fs-28,1.75rem);letter-spacing:-.02em;color:var(--c-text,#0f172a);font-variant-numeric:tabular-nums;margin:0;font-weight:800;line-height:1.1}.ffc--embed .ffc-values dd{font-size:var(--fs-24,1.5rem)}.ffc-verdict{padding:var(--sp-12,.75rem) var(--sp-16,1rem);border-radius:var(--radius-md,10px);font-size:var(--fs-16,1rem);margin:0;line-height:1.55}.ffc-verdict--good{background:var(--c-ok-bg,#dcfce7);color:var(--c-ok-text,#14532d)}.ffc-verdict--ok{background:var(--c-warn-bg,#fef9c3);color:var(--c-warn-text,#713f12)}.ffc-verdict--poor{background:var(--c-err-bg,#fee2e2);color:var(--c-err-text,#7f1d1d)}.ffc-table{border-collapse:collapse;width:100%;font-size:var(--fs-14,.875rem)}.ffc-table caption{text-align:left;padding-bottom:var(--sp-8,.5rem);color:var(--c-text,#0f172a);font-weight:700}.ffc-table th,.ffc-table td{padding:var(--sp-8,.5rem) var(--sp-8,.5rem);border-bottom:1px solid var(--c-border,#e2e8f0);text-align:left}.ffc-table thead th{font-size:var(--fs-12,.75rem);color:var(--c-text-secondary,#475569);text-transform:uppercase;letter-spacing:.06em}.ffc-table tbody th{font-weight:600}.ffc-table td{font-variant-numeric:tabular-nums;font-family:var(--font-mono,monospace)}.ffc-output{border:1px solid var(--c-border,#e2e8f0);border-radius:var(--radius-lg,14px);overflow:hidden}.ffc-output-head{justify-content:space-between;align-items:center;gap:var(--sp-16,1rem);padding:var(--sp-8,.5rem) var(--sp-16,1rem);background:var(--c-surface-2,#f1f5f9);font-weight:600;font-size:var(--fs-14,.875rem);flex-wrap:wrap;display:flex}.ffc-output-actions{align-items:center;gap:var(--sp-12,.75rem);display:flex}.ffc-full{font-size:var(--fs-14,.875rem);color:var(--c-brand-dark,#1d4ed8);font-weight:600}.ffc-output button{padding:var(--sp-4,.25rem) var(--sp-12,.75rem);border:1px solid var(--c-border,#e2e8f0);border-radius:var(--radius-md,10px);background:var(--c-surface,#f8fafc);color:var(--c-text,#0f172a);cursor:pointer;font-weight:600}.ffc-output button:hover{border-color:var(--c-brand,#2563eb)}.ffc-code{padding:var(--sp-16,1rem);font-family:var(--font-mono,monospace);font-size:var(--fs-14,.875rem);white-space:pre;background:var(--c-surface,#f8fafc);color:var(--c-text,#0f172a);margin:0;line-height:1.55;overflow-x:auto}.ffc-code:focus-visible{outline:3px solid var(--c-brand,#2563eb);outline-offset:-3px}.ffc-output .ffc-stack{border-top:1px solid var(--c-border,#e2e8f0)}.ffc-preview{gap:var(--sp-12,.75rem);border:1px solid var(--c-border,#e2e8f0);border-radius:var(--radius-lg,14px);padding:var(--sp-16,1rem);background:var(--c-cream,#fff);display:grid}.ffc-preview-note{padding:var(--sp-8,.5rem) var(--sp-12,.75rem);background:var(--c-warn-bg,#fef9c3);color:var(--c-warn-text,#713f12);border-radius:var(--radius-md,10px);font-size:var(--fs-14,.875rem);margin:0;line-height:1.5}.ffc-preview-note[hidden]{display:none}.ffc-panels{gap:var(--sp-16,1rem);grid-template-columns:1fr;display:grid}@media (width>=900px){.ffc-panels{grid-template-columns:repeat(2,minmax(0,1fr))}}.ffc-panel{min-width:0;margin:0}.ffc-panel[hidden]{display:none}.ffc-panel figcaption{font-family:var(--font-mono,monospace);font-size:var(--fs-12,.75rem);color:var(--c-text-secondary,#475569);margin-bottom:var(--sp-8,.5rem)}.ffc-box{padding-bottom:var(--sp-32,2rem);position:relative;overflow-x:auto}.ffc-text{background:var(--c-info-bg,#e0e7ff);color:var(--c-text,#0f172a);overflow-wrap:normal;margin:0}.ffc-line{pointer-events:none;border-top:2px dashed #b91c1c;height:0;position:absolute;left:0}.ffc-preview-key{font-size:var(--fs-14,.875rem);color:var(--c-text-secondary,#475569);margin:0;line-height:1.55}.ffc-source{font-size:var(--fs-14,.875rem);color:var(--c-text-secondary,#475569);line-height:1.6}.ffc-source summary{cursor:pointer;color:var(--c-text,#0f172a);font-weight:600}.ffc-source code{font-family:var(--font-mono,monospace);font-size:.82em}@media (prefers-reduced-motion:reduce){.ffc *,.ffc :before,.ffc :after{transition:none!important;animation:none!important}}
