@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap";.frontend-agent-observatory{--fao-watch:#cb8a24;--fao-review:#c4514a;--fao-muted:#7b8ba7}.fao-topbar{grid-template-columns:minmax(0,290px) minmax(0,1fr) auto}.fao-topbar__summary{grid-template-columns:auto minmax(0,max-content) minmax(72px,1fr)}.fao-topbar__meta,.fao-agent-card__head,.fao-agent-card__meta,.fao-panel__head,.fao-stage-header,.fao-category{align-items:center;display:flex}.fao-topbar__meta{justify-content:flex-end}.fao-sync{min-height:36px;color:var(--ft-ink-soft);background:#f0f6fff5;border:1px solid #b4c8e88a;border-radius:999px;align-items:center;padding:0 12px;font-size:.78rem;font-weight:700;display:inline-flex}.fao-stage-header{align-items:center}.fao-command,.fao-panel{border:1px solid var(--ft-line);background:linear-gradient(180deg, #ffffffe6, #f6fafff5), var(--ft-card);box-shadow:var(--ft-shadow-card);gap:18px;display:grid}.fao-command{border-radius:24px;grid-template-columns:minmax(260px,.72fr) minmax(0,1fr);align-items:stretch;padding:24px}.fao-command h2,.fao-panel h2,.fao-agent-card h3{color:var(--ft-ink);font-family:var(--ft-font-display);letter-spacing:-.04em;margin:0}.fao-command p:not(.ft-eyebrow),.fao-agent-card__summary,.fao-compact-list p{color:var(--ft-ink-soft);margin:8px 0 0;line-height:1.62}.fao-signal-grid,.fao-layout,.fao-category-grid,.fao-agent-grid{gap:14px;display:grid}.fao-signal-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.fao-layout{grid-template-columns:minmax(0,1fr) minmax(310px,.32fr);align-items:start}.fao-detail-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.34fr);align-items:start;gap:14px;display:grid}.fao-panel{border-radius:22px;padding:22px}.fao-panel__head{border-bottom:1px solid var(--ft-line);justify-content:space-between;gap:16px;padding-bottom:12px}.fao-category-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.fao-category{background:#ffffffb8;border:1px solid #b4c8e88a;border-radius:16px;justify-content:space-between;gap:10px;min-height:72px;padding:14px}.fao-category span{color:var(--ft-ink-soft);font-size:.78rem;font-weight:700}.fao-category strong{color:var(--ft-ink);font-family:var(--ft-font-display);font-size:1.5rem}.fao-agent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fao-agent-card{min-width:0;box-shadow:var(--ft-shadow-soft);background:#ffffffc2;border:1px solid #b4c8e88a;border-radius:18px;gap:14px;padding:18px;display:grid}.fao-agent-card__head{align-items:flex-start;gap:12px}.fao-agent-card__head div{flex:1;min-width:0}.fao-agent-card__head p{color:var(--ft-ink-dim);margin:0 0 4px;font-size:.72rem;font-weight:700}.fao-agent-card__icon{color:#fff;background:linear-gradient(135deg, var(--ft-accent), var(--ft-accent-secondary));width:42px;height:42px;font-family:var(--ft-font-display);border-radius:14px;flex:none;place-items:center;font-size:.78rem;font-weight:700;display:grid}.fao-status{min-height:30px;color:var(--ft-ok);background:#1c9d711f;border-radius:999px;flex:none;align-items:center;padding:0 10px;font-size:.76rem;font-weight:700;display:inline-flex}.fao-status--watching{color:var(--fao-watch);background:#cb8a241f}.fao-status--needs_review{color:var(--fao-review);background:#c4514a1f}.fao-status--disabled{color:var(--fao-muted);background:#7b8ba71f}.fao-agent-card__summary{min-height:52px;font-size:.86rem}.fao-agent-card__meta,.fao-agent-card__tags{flex-wrap:wrap;gap:8px}.fao-agent-card__meta span,.fao-agent-card__tags span{min-height:28px;color:var(--ft-ink-soft);background:#eff5ffdb;border-radius:999px;align-items:center;gap:5px;padding:6px 10px;font-size:.76rem;font-weight:700;display:inline-flex}.fao-agent-card__meta strong{color:var(--ft-ink)}.fao-agent-card__tags{display:flex}.fao-profile-card,.fao-detail-grid,.fao-tag-columns,.fao-growth-track{gap:14px;display:grid}.fao-profile-card{background:#ffffffbd;border:1px solid #b4c8e88a;border-radius:18px;grid-template-columns:auto minmax(0,1fr);align-items:start;padding:16px}.fao-profile-card strong,.fao-tag-columns strong{color:var(--ft-ink)}.fao-profile-card p,.fao-detail-grid p,.fao-growth-track p{color:var(--ft-ink-soft);margin:6px 0 0;line-height:1.58}.fao-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.fao-detail-grid article{background:#ffffffb3;border:1px solid #b4c8e88a;border-radius:16px;min-width:0;padding:16px}.fao-detail-grid span{color:var(--ft-ink-dim);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:700}.fao-detail-grid strong{color:var(--ft-ink);margin-top:6px;display:block}.fao-tag-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.fao-tag-columns>div{gap:10px;min-width:0;display:grid}.fao-growth-track{margin:0;padding:0;list-style:none}.fao-growth-track li{background:#ffffffb8;border:1px solid #b4c8e880;border-radius:14px;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:12px;display:grid}.fao-growth-track li>span{width:38px;height:38px;color:var(--ft-accent);font-family:var(--ft-font-display);background:#2f7cf71a;border-radius:13px;place-items:center;font-weight:700;display:grid}.fao-growth-track li[data-state=done]>span{color:var(--ft-ok);background:#1c9d711f}.fao-growth-track li[data-state=locked]{opacity:.72}.fao-detail-action{justify-content:center}.fao-rail{gap:14px;display:grid}.fao-panel--rail{padding:18px}.fao-compact-list{gap:10px;display:grid}.fao-compact-list a{background:#ffffffb8;border:1px solid #b4c8e880;border-radius:14px;gap:4px;padding:12px;display:grid}.fao-compact-list strong{color:var(--ft-ink);font-size:.9rem}.fao-compact-list span{color:var(--ft-ink-soft);font-size:.78rem;font-weight:700}@media (width<=1180px){.fao-command,.fao-layout,.fao-detail-layout{grid-template-columns:1fr}.fao-signal-grid,.fao-category-grid,.fao-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=860px){.fao-topbar,.fao-signal-grid,.fao-category-grid,.fao-agent-grid,.fao-detail-grid,.fao-tag-columns{grid-template-columns:1fr}}.frontend-ai-test-agent{--ata-ready:#1c9d71;--ata-working:#2f7cf7;--ata-warning:#cb8a24;--ata-failed:#c4514a;--ata-muted:#7b8ba7}.ata-topbar{grid-template-columns:minmax(0,290px) minmax(0,1fr) auto}.ata-topbar__summary{grid-template-columns:auto minmax(0,max-content) minmax(72px,1fr)}.ata-topbar__meta,.ata-stage-header,.ata-detail-actions,.ata-panel__head,.ata-run-row,.ata-run-row__head,.ata-run-row__meta,.ata-step-row>div:first-child,.ata-inline-actions{align-items:center;display:flex}.ata-topbar__meta{justify-content:flex-end}.ata-stage-header{align-items:center}.ata-detail-actions,.ata-inline-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px}.ata-status{max-width:min(100%,360px);min-height:34px;color:var(--ft-ink-soft);background:#eff5ffe0;border:1px solid #b4c8e870;border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-size:.78rem;font-weight:700;line-height:1.2;display:inline-flex}.ata-status:before{content:"";background:var(--ata-muted);border-radius:50%;flex:none;width:8px;height:8px}.ata-status--ready{color:var(--ata-ready);background:#1c9d711a}.ata-status--working{color:var(--ata-working);background:#2f7cf71a}.ata-status--warning{color:var(--ata-warning);background:#cb8a241c}.ata-status--failed{color:var(--ata-failed);background:#c4514a1a}.ata-status--muted{color:var(--ata-muted);background:#7b8ba71a}.ata-status--ready:before{background:var(--ata-ready)}.ata-status--working:before{background:var(--ata-working)}.ata-status--warning:before{background:var(--ata-warning)}.ata-status--failed:before{background:var(--ata-failed)}.ata-signal-grid,.ata-workbench,.ata-layout,.ata-detail-layout,.ata-run-list,.ata-rail-list,.ata-scope-list,.ata-command-form,.ata-form-grid,.ata-step-list,.ata-artifact-list,.ata-detail-main,.ata-section-block{gap:14px;display:grid}.ata-signal-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.ata-layout{grid-template-columns:minmax(0,1fr) minmax(310px,.32fr);align-items:start}.ata-workbench{grid-template-columns:minmax(0,1fr) minmax(320px,.34fr);align-items:start}.ata-detail-layout{grid-template-columns:minmax(0,1fr) minmax(340px,.34fr);align-items:start}.ata-panel{border:1px solid var(--ft-line);background:linear-gradient(180deg, #ffffffeb, #f6fafff7), var(--ft-card);box-shadow:var(--ft-shadow-card);border-radius:22px;gap:18px;padding:22px;display:grid}.ata-panel--command,.ata-panel--selected{min-width:0}.ata-panel__head{border-bottom:1px solid var(--ft-line);justify-content:space-between;gap:16px;padding-bottom:12px}.ata-panel__head--compact{margin-top:4px}.ata-panel__head h2,.ata-empty h3{color:var(--ft-ink);font-family:var(--ft-font-display);letter-spacing:-.04em;margin:0}.ata-panel__head p{margin:0}.ata-run-row{min-width:0;box-shadow:var(--ft-shadow-soft);background:#ffffffc7;border:1px solid #b4c8e88a;border-radius:18px;justify-content:space-between;gap:16px;padding:18px}.ata-run-row__main{gap:10px;min-width:0;display:grid}.ata-run-row__head{flex-wrap:wrap;gap:10px}.ata-run-row__head strong,.ata-run-row__title,.ata-step-row strong{color:var(--ft-ink);font-size:1rem;font-weight:700}.ata-run-row p,.ata-empty p,.ata-rail-list span,.ata-scope-list span,.ata-message,.ata-diagnosis p,.ata-diagnosis span,.ata-step-row p,.ata-plan-json pre{color:var(--ft-ink-soft);margin:0;line-height:1.62}.ata-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ata-field{color:var(--ft-ink);gap:7px;font-weight:700;display:grid}.ata-field input,.ata-field select,.ata-field textarea{width:100%;min-width:0;color:var(--ft-ink);font:inherit;background:#ffffffd6;border:1px solid #b4c8e8a3;border-radius:12px;padding:10px 12px;font-weight:600}.ata-field textarea{resize:vertical}.ata-mode-switch{background:#eff5ffd1;border:1px solid #b4c8e88f;border-radius:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:5px;display:inline-grid}.ata-mode-switch button{color:var(--ft-ink-soft);font:inherit;background:0 0;border:0;border-radius:10px;padding:9px 12px;font-size:.82rem;font-weight:800}.ata-mode-switch button.is-active{color:var(--ft-ink);box-shadow:var(--ft-shadow-soft);background:#fffffff2}.ata-checkline,.ata-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ata-checkline{color:var(--ft-ink-soft);font-size:.86rem;font-weight:700}.ata-message{font-size:.9rem;font-weight:700}.ata-message--failed{color:var(--ata-failed)}.ata-message--succeeded{color:var(--ata-ready)}.ata-run-row__meta{color:var(--ft-ink-dim);flex-wrap:wrap;gap:10px;font-size:.78rem;font-weight:700}.ata-run-row__meta span,.ata-run-row__meta a,.ata-run-row__id{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:260px;overflow:hidden}.ata-run-row__id{max-width:150px;color:var(--ft-ink-dim);font-family:var(--ft-font-display);flex:none;font-size:.72rem;font-weight:700}.ata-run-row__title:hover,.ata-run-row__id:hover,.ata-run-row__meta a:hover,.ata-inline-actions a:hover,.ata-artifact-list a:hover{color:var(--ft-accent)}.ata-rail-list div,.ata-scope-list div,.ata-empty,.ata-diagnosis,.ata-step-row,.ata-artifact-list a,.ata-plan-json{background:#ffffffb8;border:1px solid #b4c8e875;border-radius:16px;gap:8px;padding:16px;display:grid}.ata-rail-list strong,.ata-scope-list strong{color:var(--ft-ink);font-size:.94rem}.ata-diagnosis{gap:14px}.ata-diagnosis div{gap:4px;display:grid}.ata-diagnosis strong,.ata-artifact-list strong,.ata-plan-json summary{color:var(--ft-ink);font-weight:700}.ata-inline-actions{justify-content:flex-start}.ata-inline-actions a{min-height:34px;color:var(--ft-ink-soft);background:#f7fbffeb;border:1px solid #b4c8e894;border-radius:12px;align-items:center;padding:0 12px;font-size:.8rem;font-weight:700;display:inline-flex}.ata-step-row{border-radius:18px}.ata-step-row[data-state=failed]{background:#fff8f7db;border-color:#c4514a47}.ata-step-row>div:first-child{flex-wrap:wrap;gap:10px}.ata-artifact-list{gap:10px}.ata-artifact-list a{gap:2px}.ata-artifact-list span{color:var(--ft-ink-dim);font-size:.78rem;font-weight:700}.ata-plan-json{overflow:hidden}.ata-plan-json summary{cursor:pointer}.ata-plan-json pre{background:#edf4ffb8;border-radius:12px;max-height:360px;padding:12px;font-size:.76rem;overflow:auto}@media (width<=1120px){.ata-signal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ata-layout,.ata-workbench,.ata-detail-layout{grid-template-columns:1fr}}@media (width<=860px){.ata-topbar,.ata-signal-grid,.ata-form-grid{grid-template-columns:1fr}.ata-run-row,.ata-panel__head,.ata-stage-header{flex-direction:column;align-items:flex-start}.ata-detail-actions{justify-content:flex-start}}.ft-file-upload{background:linear-gradient(180deg, #fffffff0, #f7fbfff5), var(--ft-card);min-width:0;min-height:86px;color:var(--ft-ink);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:#2f7cf724;box-shadow:var(--ft-shadow-soft);border:1px solid #b4c8e8ad;border-radius:16px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;transition:border-color .18s,box-shadow .18s,transform .18s,background .18s;display:grid;position:relative}.frontend-toolbox form:has(.ft-file-upload){container-type:inline-size}.ft-file-upload input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.ft-file-upload:hover,.ft-file-upload:focus-within{background:linear-gradient(180deg, #fffffffa, #f1f7fffa), var(--ft-card);border-color:#2f7cf76b;transform:translateY(-1px);box-shadow:0 18px 34px #4564991f}.ft-file-upload:focus-within{outline-offset:2px;outline:3px solid #2f7cf72e}.ft-file-upload.is-loaded{background:linear-gradient(180deg, #fffffff5, #f7fffbf2), var(--ft-card);border-color:#1c9d7152}.ft-file-upload.is-disabled{opacity:.58;cursor:not-allowed;transform:none}.ft-file-upload.is-disabled input[type=file]{cursor:not-allowed}.ft-file-upload__type{width:54px;min-height:54px;color:var(--ft-accent);font-family:var(--ft-font-display);text-align:center;background:#2f7cf71a;border:1px solid #2f7cf733;border-radius:14px;place-items:center;font-size:.72rem;font-weight:900;line-height:1.12;display:inline-grid}.ft-file-upload[data-file-tone=pdf] .ft-file-upload__type{color:#dc2626;background:#dc26261c;border-color:#dc26263d}.ft-file-upload[data-file-tone=spreadsheet] .ft-file-upload__type{color:#168a3e;background:#16a34a1c;border-color:#16a34a3d}.ft-file-upload[data-file-tone=document] .ft-file-upload__type{color:#2563eb;background:#2563eb1a;border-color:#2563eb38}.ft-file-upload[data-file-tone=archive] .ft-file-upload__type{color:#b45309;background:#d977061c;border-color:#d977063d}.ft-file-upload[data-file-tone=image] .ft-file-upload__type{color:#0284c7;background:#0ea5e91c;border-color:#0ea5e93d}.ft-file-upload__body{gap:5px;min-width:0;display:grid}.ft-file-upload__title{min-width:0;color:var(--ft-ink);align-items:center;gap:8px;font-size:.88rem;font-weight:900;line-height:1.35;display:flex}.ft-file-upload__title em{min-height:24px;color:var(--ft-ink-dim);background:#7b8ba71a;border-radius:999px;align-items:center;padding:0 8px;font-size:.7rem;font-style:normal;font-weight:900;display:inline-flex}.ft-file-upload__meta,.ft-file-upload__description{min-width:0;color:var(--ft-ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:700;line-height:1.45;overflow:hidden}.ft-file-upload__description{color:var(--ft-ink-dim);font-size:.76rem;font-weight:700}.ft-file-upload__action{min-height:36px;color:var(--ft-ink);white-space:nowrap;background:#ffffffd1;border:1px solid #b4c8e8a3;border-radius:999px;justify-content:center;align-items:center;padding:0 12px;font-size:.78rem;font-weight:900;display:inline-flex}.ft-file-upload.is-loaded .ft-file-upload__action{color:var(--ft-ok);border-color:#1c9d7147}@media (width<=760px){.ft-file-upload{grid-template-columns:auto minmax(0,1fr);align-items:start}.ft-file-upload__action{grid-column:1/-1;width:100%}.ft-file-upload__meta,.ft-file-upload__description{white-space:normal}}@container (width<=360px){.ft-file-upload{grid-template-columns:auto minmax(0,1fr);align-items:start}.ft-file-upload__action{grid-column:1/-1;width:100%}.ft-file-upload__meta,.ft-file-upload__description{white-space:normal}}@media (prefers-reduced-motion:reduce){.ft-file-upload{transition:none}.ft-file-upload:hover,.ft-file-upload:focus-within{transform:none}}.frontend-excel-agent{--fea-ready:#1c9d71;--fea-warning:#cb8a24;--fea-failed:#c4514a;--fea-muted:#7b8ba7}.fea-topbar{grid-template-columns:minmax(0,330px) minmax(0,1fr) auto}.fea-topbar__summary{grid-template-columns:auto minmax(0,max-content) minmax(72px,1fr)}.fea-topbar__meta,.fea-stage-header,.fea-stage-actions,.fea-panel__head,.fea-job-row,.fea-supervisor-grid{align-items:center;display:flex}.fea-topbar__meta{justify-content:flex-end}.fea-health,.fea-status{border-radius:999px;align-items:center;gap:8px;min-height:34px;padding:0 12px;font-size:.78rem;font-weight:700;display:inline-flex}.fea-health{color:var(--fea-ready);background:#1c9d711f}.fea-health--warning{color:var(--fea-warning);background:#cb8a2424}.fea-stage-header{align-items:flex-start}.fea-stage-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px}.fea-view-tab{min-height:38px;color:var(--ft-ink-soft);font:inherit;background:#ffffffb3;border:1px solid #b4c8e8ad;border-radius:999px;padding:0 14px;font-size:.84rem;font-weight:800}.fea-view-tab.is-active{color:var(--ft-accent);background:#2f7cf71a;border-color:#2f7cf75c}.fea-view-tab:hover{color:var(--ft-accent);border-color:#2f7cf76b}.fea-summary-grid,.fea-layout,.fea-workbench,.fea-job-list,.fea-rail,.fea-signal-list,.fea-output-stack__body,.fea-command-form,.fea-review-form,.fea-required-grid{gap:14px;display:grid}.fea-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.fea-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.36fr);align-items:start}.fea-workbench{grid-template-columns:minmax(280px,.3fr) minmax(320px,.36fr) minmax(300px,.34fr);align-items:start}.fea-panel{border:1px solid var(--ft-line);background:linear-gradient(180deg, #ffffffed, #f6fafff7), var(--ft-card);box-shadow:var(--ft-shadow-card);border-radius:22px;gap:18px;padding:22px;display:grid}.fea-panel--compact{padding:18px}.fea-panel--command,.fea-panel--output,.fea-panel--jobs,.fea-panel--review,.fea-rules-workbench{min-width:0}.fea-panel--review{grid-column:1/-1}.fea-panel__head{border-bottom:1px solid var(--ft-line);justify-content:space-between;gap:16px;padding-bottom:12px}.fea-panel__head h2,.fea-empty h3{color:var(--ft-ink);font-family:var(--ft-font-display);letter-spacing:-.04em;margin:0}.fea-job-row{min-width:0;color:inherit;text-align:left;cursor:pointer;background:#ffffffbf;border:1px solid #b4c8e88a;border-radius:16px;justify-content:space-between;gap:16px;padding:15px 16px}.fea-job-row:hover{box-shadow:var(--ft-shadow-soft);border-color:#2f7cf757}.fea-job-row div{gap:4px;min-width:0;display:grid}.fea-job-row strong,.fea-signal-item strong{color:var(--ft-ink)}.fea-job-row span,.fea-empty p,.fea-empty-line,.fea-signal-item span,.fea-message,.fea-output-bar,.fea-output-downloads span,.fea-table small{color:var(--ft-ink-soft);line-height:1.58}.fea-output-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.fea-output-metrics div{background:#ffffffbd;border:1px solid #b4c8e87a;border-radius:16px;gap:6px;padding:14px;display:grid}.fea-output-metrics span{color:var(--ft-ink-soft);font-size:.78rem;font-weight:800}.fea-output-metrics strong{color:var(--ft-ink);font-family:var(--ft-font-display);font-size:1.32rem}.fea-output-downloads{background:#f7fbffd1;border:1px dashed #7996c557;border-radius:16px;gap:10px;padding:14px;display:grid}.fea-output-downloads>strong{color:var(--ft-ink)}.fea-output-downloads>div{flex-wrap:wrap;gap:10px;display:flex}.fea-status{color:var(--fea-muted);background:#7b8ba71f;flex:none}.fea-status--generated{color:var(--fea-ready);background:#1c9d711f}.fea-status--blocked,.fea-status--failed{color:var(--fea-failed);background:#c4514a1f}.fea-status--review{color:var(--fea-warning);background:#cb8a2424}.fea-empty{background:#ffffff9e;border:1px dashed #7996c54d;border-radius:18px;justify-items:start;gap:12px;padding:22px;display:grid}.fea-field{color:var(--ft-ink);gap:7px;font-weight:700;display:grid}.fea-field input,.fea-field select,.fea-field textarea,.fea-table input{width:100%;min-width:0;color:var(--ft-ink);font:inherit;background:#ffffffd6;border:1px solid #b4c8e8a3;border-radius:12px;padding:10px 12px;font-weight:600}.fea-field small{color:var(--ft-ink-soft);font-weight:600}.fea-actions,.fea-output-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fea-message{margin:0;font-size:.9rem;font-weight:700}.fea-message--failed{color:var(--fea-failed)}.fea-message--succeeded{color:var(--fea-ready)}.fea-table-wrap{border:1px solid #b4c8e873;border-radius:16px;max-width:100%;overflow:auto}.fea-table{border-collapse:collapse;width:100%;min-width:720px}.fea-table th,.fea-table td{text-align:left;vertical-align:top;border-bottom:1px solid #b4c8e861;padding:12px}.fea-table th{color:var(--ft-ink-soft);text-transform:uppercase;background:#f4f8ffdb;font-size:.76rem}.fea-table td{background:#ffffff9e}.fea-table td:first-child{min-width:220px}.fea-table strong{color:var(--ft-ink);display:block}.fea-tag,.fea-status-chip{min-height:26px;color:var(--ft-blue);background:#2f7cf71a;border-radius:999px;align-items:center;margin:2px 4px 2px 0;padding:0 9px;font-size:.74rem;font-weight:800;display:inline-flex}.fea-tag--muted,.fea-status-chip.is-pending{color:var(--fea-muted);background:#7b8ba71f}.fea-status-chip.is-mapped{color:var(--fea-ready);background:#1c9d711f}.fea-required-grid{border:1px dashed #7996c552;border-radius:16px;grid-template-columns:repeat(2,minmax(0,1fr));padding:14px}.fea-checkline{color:var(--ft-ink-soft);align-items:center;gap:8px;font-size:.82rem;font-weight:700;display:inline-flex}.fea-checkline input{width:auto}.fea-supervisor-grid{flex-wrap:wrap;gap:8px}.fea-supervisor-grid span,.fea-signal-item{background:#ffffffb8;border:1px solid #b4c8e87a;border-radius:14px}.fea-supervisor-grid span{min-height:32px;color:var(--ft-ink-soft);align-items:center;padding:0 10px;font-size:.78rem;font-weight:700;display:inline-flex}.fea-signal-item{gap:4px;padding:12px;display:grid}@media (width<=1120px){.fea-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fea-workbench,.fea-layout{grid-template-columns:1fr}}@media (width<=860px){.fea-topbar,.fea-summary-grid{grid-template-columns:1fr}.fea-stage-header,.fea-panel__head,.fea-job-row{flex-direction:column;align-items:flex-start}.fea-stage-actions{justify-content:flex-start}.fea-required-grid,.fea-output-metrics{grid-template-columns:1fr}}.frontend-pdf-form-agent{--pff-ready:#1c9d71;--pff-working:#2f7cf7;--pff-warning:#c17b27;--pff-failed:#c4514a;--pff-muted:#7b8ba7}.pff-topbar{grid-template-columns:minmax(0,290px) minmax(0,1fr) auto}.pff-topbar__summary{grid-template-columns:auto minmax(0,max-content) minmax(72px,1fr)}.pff-topbar__meta,.pff-stage-header,.pff-panel__head,.pff-row,.pff-row__head,.pff-row__meta{align-items:center;display:flex}.pff-topbar__meta{justify-content:flex-end}.pff-stage-header{align-items:center}.pff-status{min-height:34px;color:var(--ft-ink-soft);background:#eff5ffe0;border:1px solid #b4c8e870;border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-size:.78rem;font-weight:700;display:inline-flex}.pff-status:before{content:"";background:var(--pff-muted);border-radius:50%;width:8px;height:8px}.pff-status--ready{color:var(--pff-ready);background:#1c9d711a}.pff-status--working{color:var(--pff-working);background:#2f7cf71a}.pff-status--warning{color:var(--pff-warning);background:#c17b271c}.pff-status--failed{color:var(--pff-failed);background:#c4514a1a}.pff-status--muted{color:var(--pff-muted);background:#7b8ba71a}.pff-status--ready:before{background:var(--pff-ready)}.pff-status--working:before{background:var(--pff-working)}.pff-status--warning:before{background:var(--pff-warning)}.pff-status--failed:before{background:var(--pff-failed)}.pff-layout,.pff-list,.pff-candidate-list,.pff-rail-list{gap:14px;display:grid}.pff-pipeline{--pff-pipeline-progress:0%;background:radial-gradient(circle at 9% 0%, #2f7cf71f, transparent 34%), radial-gradient(circle at 92% 12%, #1c9d711a, transparent 30%), linear-gradient(135deg, #fffffff5, #f2f7fff0), var(--ft-card);isolation:isolate;border:1px solid #b4c8e894;border-radius:24px;gap:18px;padding:20px 22px 22px;display:grid;position:relative;overflow:hidden;box-shadow:0 24px 56px #2f4a701a}.pff-pipeline:before{content:"";border-radius:inherit;opacity:.5;pointer-events:none;z-index:-1;background:linear-gradient(110deg,#0000 0 30%,#ffffff94 48%,#0000 66%),linear-gradient(#ffffff47,#0000);position:absolute;inset:1px}.pff-pipeline__head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.pff-pipeline__head h2{color:var(--ft-ink);font-family:var(--ft-font-display);letter-spacing:-.02em;margin:4px 0 0;font-size:clamp(1.05rem,1.6vw,1.28rem)}.pff-pipeline__head span{max-width:300px;color:var(--ft-ink-dim);text-align:right;font-size:.82rem;font-weight:700;line-height:1.55}.pff-pipeline__rail{background:linear-gradient(90deg,#e0eaf9e6,#eef5ffc7),#eff5ffd1;border:1px solid #b4c8e899;border-radius:999px;height:12px;position:relative;overflow:hidden;box-shadow:inset 0 1px 3px #2f4a7014}.pff-pipeline__rail:before{content:"";width:var(--pff-pipeline-progress);border-radius:inherit;background:linear-gradient(90deg,#2f7cf7f2,#1c9d71b8);min-width:12px;transition:width .42s;position:absolute;inset:0 auto 0 0;box-shadow:0 0 20px #2f7cf742}.pff-pipeline__rail-flow{border-radius:inherit;mix-blend-mode:screen;opacity:.42;background:linear-gradient(90deg,#0000,#ffffffe6,#0000);animation:4.2s ease-in-out infinite pff-pipeline-scan;position:absolute;inset:1px;transform:translate(-45%)}.pff-pipeline__steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid;position:relative}.pff-pipeline__step{background:linear-gradient(#ffffffe0,#f9fcffd1),#ffffffc2;border:1px solid #b4c8e87a;border-radius:18px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px 14px;min-width:0;padding:15px;transition:border-color .18s,background .18s,box-shadow .18s,transform .18s;display:grid;position:relative;box-shadow:0 14px 28px #2f4a700e}.pff-pipeline__step--done{background:#f7fffbd6;border-color:#1c9d7152}.pff-pipeline__step--current{background:linear-gradient(#f8fbfff5,#eef6fff0),#ffffffd1;border-color:#2f7cf757;animation:2.6s ease-in-out infinite pff-pipeline-breathe;transform:translateY(-1px);box-shadow:0 18px 36px #2f7cf724}.pff-pipeline__step--failed{background:#fff8f7e6;border-color:#c4514a4d}.pff-pipeline__step-top{grid-column:2;justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.pff-pipeline__node{background:linear-gradient(#fffffff5,#edf5ffe6);border:1px solid #b4c8e894;border-radius:16px;grid-row:1/span 2;width:42px;height:42px;position:relative;box-shadow:inset 0 1px #fffc,0 12px 24px #2f4a7014}.pff-pipeline__node:before{content:"";background:var(--pff-muted);opacity:.56;border-radius:50%;position:absolute;inset:11px}.pff-pipeline__beacon{opacity:0;pointer-events:none;border:1px solid #0000;border-radius:20px;position:absolute;inset:-6px}.pff-pipeline__index,.pff-pipeline__badge{white-space:nowrap;border-radius:999px;align-items:center;width:max-content;min-height:26px;padding:0 10px;font-size:.72rem;font-weight:900;display:inline-flex}.pff-pipeline__index{color:var(--pff-working);background:#2f7cf71a}.pff-pipeline__badge{color:var(--pff-muted);background:#7b8ba71a}.pff-pipeline__step--done .pff-pipeline__index,.pff-pipeline__step--done .pff-pipeline__badge{color:var(--pff-ready);background:#1c9d711f}.pff-pipeline__step--done .pff-pipeline__node{background:linear-gradient(#f8fffcfa,#e8faf3eb);border-color:#1c9d7157}.pff-pipeline__step--done .pff-pipeline__node:before{background:var(--pff-ready);opacity:1}.pff-pipeline__step--current .pff-pipeline__index,.pff-pipeline__step--current .pff-pipeline__badge{color:var(--pff-working);background:#2f7cf721}.pff-pipeline__step--current .pff-pipeline__node{background:linear-gradient(#f6faff,#e2f0fff5);border-color:#2f7cf76b;box-shadow:0 0 0 7px #2f7cf714,0 18px 34px #2f7cf72b}.pff-pipeline__step--current .pff-pipeline__node:before{background:var(--pff-working);opacity:1;box-shadow:0 0 0 8px #2f7cf71c,0 0 22px #2f7cf761}.pff-pipeline__step--current .pff-pipeline__beacon{opacity:1;border-color:#2f7cf747;animation:1.9s ease-in-out infinite pff-pipeline-ring-breath}.pff-pipeline__step--failed .pff-pipeline__index,.pff-pipeline__step--failed .pff-pipeline__badge{color:var(--pff-failed);background:#c4514a1f}.pff-pipeline__step--failed .pff-pipeline__node{background:linear-gradient(#fffaf9fa,#ffebe9eb);border-color:#c4514a5c}.pff-pipeline__step--failed .pff-pipeline__node:before{background:var(--pff-failed);opacity:1}.pff-pipeline__step--current .pff-pipeline__badge:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px;margin-right:6px;animation:1.4s ease-in-out infinite pff-pipeline-pulse;box-shadow:0 0 0 6px #2f7cf71f}.pff-pipeline__step strong{color:var(--ft-ink);font-size:.95rem}.pff-pipeline__step-body{grid-column:2;gap:6px;min-width:0;display:grid}.pff-pipeline__step p{color:var(--ft-ink-soft);margin:0;font-size:.82rem;line-height:1.62}.pff-pipeline__step--upcoming strong,.pff-pipeline__step--upcoming p{color:var(--ft-ink-dim)}@keyframes pff-pipeline-scan{0%{opacity:0;transform:translate(-65%)}35%,70%{opacity:.75}to{opacity:0;transform:translate(65%)}}@keyframes pff-pipeline-breathe{0%,to{box-shadow:0 18px 36px #2f7cf721}50%{box-shadow:0 22px 46px #2f7cf733}}@keyframes pff-pipeline-ring-breath{0%,to{opacity:.42;transform:scale(.9)}50%{opacity:.92;transform:scale(1.22)}}@keyframes pff-pipeline-pulse{0%,to{opacity:.62;transform:scale(.94)}50%{opacity:1;transform:scale(1)}}.pff-layout{grid-template-columns:minmax(0,1.02fr) minmax(0,.86fr) minmax(320px,.36fr);align-items:start}.pff-panel{border:1px solid var(--ft-line);background:linear-gradient(180deg, #ffffffeb, #f6fafff7), var(--ft-card);box-shadow:var(--ft-shadow-card);border-radius:22px;gap:18px;padding:22px;display:grid}.pff-panel__head{border-bottom:1px solid var(--ft-line);justify-content:space-between;gap:16px;padding-bottom:12px}.pff-panel__head h2,.pff-empty h3{color:var(--ft-ink);font-family:var(--ft-font-display);letter-spacing:-.04em;margin:0}.pff-panel__head p{margin:0}.pff-row{min-width:0;box-shadow:var(--ft-shadow-soft);background:#ffffffc7;border:1px solid #b4c8e88a;border-radius:18px;justify-content:space-between;gap:16px;padding:18px}.pff-row[data-state=failed]{background:#fff8f7d1;border-color:#c4514a3d}.pff-row__main{gap:10px;min-width:0;display:grid}.pff-row__head{flex-wrap:wrap;gap:10px}.pff-row__head strong,.pff-candidate strong,.pff-rail-list strong{color:var(--ft-ink);font-size:.96rem;font-weight:700}.pff-row p,.pff-empty p,.pff-candidate p,.pff-candidate span,.pff-rail-list span{color:var(--ft-ink-soft);margin:0;line-height:1.62}.pff-row__meta{color:var(--ft-ink-dim);flex-wrap:wrap;gap:10px;font-size:.78rem;font-weight:700}.pff-row__meta span,.pff-row__id{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:220px;overflow:hidden}.pff-row__id{max-width:120px;color:var(--ft-ink-dim);font-family:var(--ft-font-display);flex:none;font-size:.72rem;font-weight:700}.pff-empty,.pff-candidate,.pff-rail-list div{background:#ffffffb8;border:1px solid #b4c8e875;border-radius:16px;gap:8px;padding:16px;display:grid}.pff-candidate[data-ready=true]{background:#f7fffbd1;border-color:#1c9d7142}.pff-candidate div:first-child{gap:4px;display:grid}.pff-report-workspace{gap:20px;margin-top:18px}.pff-report-summary{box-shadow:var(--ft-shadow-soft);background:linear-gradient(135deg,#f8fbfff5,#ffffffe6),#ffffffd1;border:1px solid #b4c8e885;border-radius:18px;grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);align-items:stretch;gap:14px;padding:16px;display:grid}.pff-report-summary>div:first-child{align-content:center;gap:8px;min-width:0;display:grid}.pff-report-summary strong{color:var(--ft-ink);font-family:var(--ft-font-display);font-size:1.02rem}.pff-report-summary p{color:var(--ft-ink-soft);margin:0;line-height:1.62}.pff-report-summary__filters{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.pff-report-tools{background:linear-gradient(135deg,#f8fbffe6,#ffffffdb),#ffffffc7;border:1px solid #b4c8e87a;border-radius:16px;gap:12px;padding:12px 14px;display:grid}.pff-report-filter-card{min-width:0;min-height:74px;color:var(--ft-ink-dim);text-align:left;cursor:pointer;background:#ffffffd1;border:1px solid #b4c8e87a;border-radius:14px;align-content:center;gap:8px;padding:12px;transition:border-color .16s,background .16s,box-shadow .16s,transform .16s;display:grid}.pff-report-filter-card:hover,.pff-report-filter-card:focus-visible{background:#f6fafff5;border-color:#2f7cf757;outline:none;transform:translateY(-1px);box-shadow:0 12px 26px #2f7cf71f}.pff-report-filter-card.is-active{color:var(--pff-working);background:linear-gradient(#eff7fffa,#ffffffe6);border-color:#2f7cf780;box-shadow:0 16px 32px #2f7cf729}.pff-report-filter-card span{font-size:.72rem;font-weight:900}.pff-report-filter-card strong{color:var(--ft-ink);font-family:var(--ft-font-display);font-size:1.2rem;line-height:1}.pff-report-tools__search{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.pff-report-search{gap:6px;min-width:0;display:grid}.pff-report-search span,.pff-report-tools__state{color:var(--ft-ink-dim);font-size:.76rem;font-weight:900}.pff-report-search input{box-sizing:border-box;width:100%;min-height:42px;color:var(--ft-ink);font:inherit;background:#ffffffeb;border:1px solid #b4c8e89e;border-radius:12px;padding:10px 12px}.pff-report-tools__state{margin:0;line-height:1.5}.pff-report-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.pff-report-card{min-width:0;box-shadow:var(--ft-shadow-soft);background:#ffffffd6;border:1px solid #b4c8e885;border-radius:18px;overflow:hidden}.pff-report-card__head{background:linear-gradient(#fffffff0,#f6faffd1);border-bottom:1px solid #b4c8e86b;justify-content:space-between;align-items:flex-start;gap:14px;min-width:0;padding:16px 18px;display:flex}.pff-report-card__head>div{min-width:0}.pff-report-card__head h3{color:var(--ft-ink);font-family:var(--ft-font-display);letter-spacing:-.02em;margin:0;font-size:.98rem}.pff-report-card__head p{color:var(--ft-ink-soft);margin:6px 0 0;font-size:.8rem;line-height:1.55}.pff-empty--report{background:linear-gradient(135deg,#f8fbffe6,#ffffffc2),#ffffffd1;align-content:center;min-height:150px;margin:16px}.pff-report-table{width:100%;overflow-x:auto}.pff-report-table table{border-collapse:separate;border-spacing:0;width:100%;min-width:620px}.pff-report-table th,.pff-report-table td{text-align:left;vertical-align:top;border-bottom:1px solid #b4c8e857;padding:13px 14px}.pff-report-table th{color:var(--ft-ink-dim);white-space:nowrap;background:#f6faffc7;font-size:.72rem;font-weight:900}.pff-report-table td{color:var(--ft-ink-soft);font-size:.8rem;line-height:1.55}.pff-report-table tr:last-child td{border-bottom:0}.pff-report-table code{color:#1767dc;font-family:var(--ft-font-display);white-space:normal;word-break:break-word;font-size:.8rem;font-weight:800}.pff-report-table td:last-child{min-width:92px}.pff-report-table a{color:#1767dc;font-size:.78rem;font-weight:800;text-decoration:none;display:inline-flex}.pff-report-table a:hover{text-decoration:underline}.pff-report-table__muted{color:var(--ft-ink-dim);font-size:.76rem;font-weight:700}.pff-status-pill{min-height:26px;color:var(--pff-muted);white-space:nowrap;background:#7b8ba71a;border-radius:999px;justify-content:center;align-items:center;padding:0 9px;font-size:.72rem;font-weight:900;display:inline-flex}.pff-status-pill--ready{color:var(--pff-ready);background:#1c9d711f}.pff-status-pill--working{color:var(--pff-working);background:#2f7cf71f}.pff-status-pill--warning{color:var(--pff-warning);background:#c17b2721}.pff-status-pill--failed{color:var(--pff-failed);background:#c4514a1f}.pff-report-load-warning{color:var(--pff-warning);background:#fffaf4e6;border:1px solid #c17b2738;border-radius:14px;margin:12px 0 0;padding:12px 14px;font-size:.82rem;font-weight:800}@media (width<=1280px){.pff-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.38fr)}.pff-panel--rail{grid-column:1/-1}}@media (width<=1120px){.pff-pipeline__steps{grid-template-columns:repeat(2,minmax(0,1fr))}.pff-layout,.pff-report-summary,.pff-report-grid{grid-template-columns:1fr}}@media (width<=860px){.pff-topbar,.pff-pipeline__steps{grid-template-columns:1fr}.pff-pipeline__head{flex-direction:column}.pff-pipeline__head span{text-align:left;max-width:none}.pff-pipeline__rail{display:none}.pff-pipeline__steps{gap:12px;padding-left:12px}.pff-pipeline__steps:before{content:"";background:linear-gradient(#2f7cf76b,#b4c8e857);border-radius:999px;width:2px;position:absolute;top:20px;bottom:20px;left:32px}.pff-pipeline__step{grid-template-columns:auto minmax(0,1fr);min-height:122px}.pff-pipeline__node{z-index:1}.pff-row,.pff-panel__head,.pff-stage-header,.pff-report-card__head{flex-direction:column;align-items:flex-start}.pff-report-summary__filters{scroll-snap-type:x proximity;grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:4px;display:flex;overflow-x:auto}.pff-report-filter-card{scroll-snap-align:start;flex:0 0 140px}.pff-report-tools__search{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.pff-pipeline__rail-flow,.pff-pipeline__step--current,.pff-pipeline__step--current .pff-pipeline__beacon,.pff-pipeline__step--current .pff-pipeline__badge:before{animation:none}.pff-pipeline__step,.pff-pipeline__rail:before{transition:none}}.pff-workbench-grid{grid-template-columns:minmax(360px,.78fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.pff-panel--command,.pff-panel--result{min-height:100%}.pff-command-form,.pff-feedback-form,.pff-field,.pff-result{gap:12px;display:grid}.pff-mode-switch{background:#f6faffcc;border:1px solid #b4c8e880;border-radius:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:4px;display:grid}.pff-mode-switch button{min-height:42px;color:var(--ft-ink-soft);cursor:pointer;background:0 0;border:0;border-radius:10px;font-weight:800}.pff-mode-switch button.is-active{color:var(--ft-ink);box-shadow:var(--ft-shadow-soft);background:#fff}.pff-field span{color:var(--ft-ink);font-size:.82rem;font-weight:800}.pff-field__label-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.pff-field__label-row em{min-height:22px;color:var(--pff-working);background:#2f7cf714;border:1px solid #2f7cf733;border-radius:999px;align-items:center;padding:0 8px;font-size:.72rem;font-style:normal;font-weight:900;display:inline-flex}.pff-field input,.pff-field select,.pff-field textarea{box-sizing:border-box;width:100%;min-height:42px;color:var(--ft-ink);font:inherit;background:#ffffffe6;border:1px solid #b4c8e8a8;border-radius:12px;padding:10px 12px}.pff-field textarea{resize:vertical;min-height:116px}.pff-optional-json{background:linear-gradient(135deg,#f6faffeb,#ffffffb8),#ffffffc2;border:1px solid #b4c8e875;border-radius:16px;gap:8px;padding:13px;display:grid}.pff-optional-json textarea{min-height:98px}.pff-optional-json p{color:var(--ft-ink-dim);margin:0;font-size:.8rem;line-height:1.55}.pff-field small,.pff-feedback-status{color:var(--ft-ink-dim);margin:0;line-height:1.5}.pff-form-grid{grid-template-columns:minmax(0,1.4fr) minmax(120px,.6fr);gap:12px;display:grid}.pff-actions{justify-content:flex-end;display:flex}.pff-result{background:#ffffffbd;border:1px solid #b4c8e88a;border-radius:16px;padding:16px}.pff-result strong{color:var(--ft-ink)}.pff-result p{color:var(--ft-ink-soft);margin:0;line-height:1.6}.pff-result--success{background:#f7fffbdb;border-color:#1c9d7147}.pff-result--running{background:#f6faffe6;border-color:#2f7cf73d}.pff-result--error{background:#fff8f7e6;border-color:#c4514a47}.pff-result__stats{flex-wrap:wrap;gap:8px;display:flex}.pff-result__stats span{color:var(--ft-ink-soft);background:#ffffffbd;border-radius:999px;padding:6px 9px;font-size:.78rem;font-weight:800}.pff-feedback-form{border-top:1px solid var(--ft-line);margin-top:16px;padding-top:16px}.pff-feedback-status--succeeded{color:var(--pff-ready)}.pff-feedback-status--failed{color:var(--pff-failed)}.pff-feedback-status--running{color:var(--pff-working)}@media (width<=1120px){.pff-workbench-grid{grid-template-columns:1fr}}@media (width<=720px){.pff-mode-switch,.pff-form-grid{grid-template-columns:1fr}.pff-report-workspace{margin-top:14px}.pff-report-summary,.pff-report-card__head,.pff-empty--report{padding:14px}.pff-report-summary__filters{grid-template-columns:1fr}.pff-report-table th,.pff-report-table td{padding:11px 12px}.pff-report-table{padding:12px;overflow:visible}.pff-report-table table,.pff-report-table tbody,.pff-report-table tr,.pff-report-table td{width:100%;min-width:0;display:block}.pff-report-table table{border-spacing:0}.pff-report-table thead{display:none}.pff-report-table tr{background:#ffffffd1;border:1px solid #b4c8e86b;border-radius:14px;gap:8px;padding:12px;display:grid}.pff-report-table tr+tr{margin-top:10px}.pff-report-table td{border-bottom:0;grid-template-columns:74px minmax(0,1fr);align-items:start;gap:10px;padding:0;font-size:.78rem;display:grid}.pff-report-table td:before{content:attr(data-label);color:var(--ft-ink-dim);font-size:.72rem;font-weight:900}.pff-report-table code,.pff-report-table td span{overflow-wrap:anywhere;min-width:0}}.frontend-pdf-verify{--fpv-ready:#1c9d71;--fpv-working:#2f7cf7;--fpv-warning:#cb8a24;--fpv-failed:#c4514a;--fpv-muted:#7b8ba7}.fpv-topbar{grid-template-columns:minmax(0,290px) minmax(0,1fr) auto}.fpv-topbar__summary{grid-template-columns:auto minmax(0,max-content) minmax(72px,1fr)}.fpv-topbar__meta,.fpv-stage-header,.fpv-panel__head{align-items:center;display:flex}.fpv-topbar__meta{justify-content:flex-end}.fpv-stage-header{align-items:center}.fpv-status{min-height:34px;color:var(--ft-ink-soft);background:#eff5ffe0;border:1px solid #b4c8e870;border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-size:.78rem;font-weight:700;display:inline-flex}.fpv-status:before{content:"";background:var(--fpv-muted);border-radius:50%;width:8px;height:8px}.fpv-status--ready{color:var(--fpv-ready);background:#1c9d711a}.fpv-status--working{color:var(--fpv-working);background:#2f7cf71a}.fpv-status--warning{color:var(--fpv-warning);background:#cb8a241c}.fpv-status--failed{color:var(--fpv-failed);background:#c4514a1a}.fpv-status--muted{color:var(--fpv-muted);background:#7b8ba71a}.fpv-status--ready:before{background:var(--fpv-ready)}.fpv-status--working:before{background:var(--fpv-working)}.fpv-status--warning:before{background:var(--fpv-warning)}.fpv-status--failed:before{background:var(--fpv-failed)}.fpv-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:14px;display:grid}.fpv-panel{border:1px solid var(--ft-line);background:linear-gradient(180deg, #ffffffeb, #f6fafff7), var(--ft-card);box-shadow:var(--ft-shadow-card);border-radius:22px;gap:18px;padding:22px;display:grid}.fpv-panel__head{border-bottom:1px solid var(--ft-line);justify-content:space-between;gap:16px;padding-bottom:12px}.fpv-panel__head h2,.fpv-empty h3{color:var(--ft-ink);font-family:var(--ft-font-display);letter-spacing:-.04em;margin:0}.fpv-panel__head p{margin:0}.fpv-empty p,.fpv-field-list__empty p{color:var(--ft-ink-soft);margin:0;line-height:1.62}.fpv-empty{background:#ffffffb8;border:1px solid #b4c8e875;border-radius:16px;gap:8px;padding:16px;display:grid}@media (width<=1120px){.fpv-layout{grid-template-columns:1fr}}@media (width<=860px){.fpv-topbar{grid-template-columns:1fr}.fpv-panel__head,.fpv-stage-header{flex-direction:column;align-items:flex-start}}.fpv-workbench-grid{grid-template-columns:minmax(380px,.82fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.fpv-panel--command,.fpv-panel--result{min-height:100%}.fpv-panel--result-workspace{grid-column:1/-1}.fpv-command-form,.fpv-field,.fpv-result{gap:12px;display:grid}.fpv-field span{color:var(--ft-ink);font-size:.82rem;font-weight:800}.fpv-field input,.fpv-field select{box-sizing:border-box;width:100%;min-height:42px;color:var(--ft-ink);font:inherit;background:#ffffffe6;border:1px solid #b4c8e8a8;border-radius:12px;padding:10px 12px}.fpv-field small{color:var(--ft-ink-dim);margin:0;line-height:1.5}.fpv-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.fpv-form-grid--credentials{grid-template-columns:repeat(3,minmax(0,1fr))}.fpv-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.fpv-result{background:#ffffffbd;border:1px solid #b4c8e88a;border-radius:16px;padding:16px}.fpv-result strong{color:var(--ft-ink)}.fpv-result p{color:var(--ft-ink-soft);margin:0;line-height:1.6}.fpv-result--success{background:#f7fffbdb;border-color:#1c9d7147}.fpv-result--running{background:#f6faffe6;border-color:#2f7cf73d}.fpv-result--error{background:#fff8f7e6;border-color:#c4514a47}.fpv-result-file-chip{background:#ffffffad;border:1px solid #b4c8e880;border-radius:14px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;min-width:0;padding:12px;display:grid;box-shadow:inset 0 0 0 1px #ffffffb8}.fpv-result-file-chip__type{width:42px;height:42px;color:var(--ft-accent);font-family:var(--ft-font-display);background:#eff5ffb8;border:1px solid #b4c8e880;border-radius:12px;justify-content:center;align-items:center;font-size:.72rem;font-weight:900;line-height:1;display:inline-flex}.fpv-result-file-chip[data-file-tone=pdf] .fpv-result-file-chip__type{color:#dc2626;background:#dc26261c;border-color:#dc26263d}.fpv-result-file-chip__body{gap:5px;min-width:0;display:grid}.fpv-result-file-chip__title,.fpv-result-file-chip__meta{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.fpv-result-file-chip__title{color:var(--ft-ink);font-size:.84rem;font-weight:900}.fpv-result-file-chip__meta{color:var(--ft-ink-soft);font-size:.78rem;font-weight:700}.fpv-progress-console{background:linear-gradient(90deg,#2f7cf700,#2f7cf714,#2f7cf700) 0 0/42% 100% no-repeat,#f8fcffeb;border:1px solid #2f7cf747;border-radius:16px;gap:16px;padding:18px;animation:1.8s ease-in-out infinite fpv-progress-scan;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffffb8}.fpv-progress-console__head{align-items:flex-start;gap:12px;display:flex}.fpv-progress-console__head strong{color:var(--ft-ink);font-size:.96rem}.fpv-progress-console__head p{margin-top:4px}.fpv-progress-console__pulse{background:var(--fpv-working);border-radius:50%;flex:none;width:12px;height:12px;margin-top:4px;animation:1.2s ease-in-out infinite fpv-progress-pulse;position:relative;box-shadow:0 0 0 7px #2f7cf71f}.fpv-progress-rail{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.fpv-progress-step{background:#ffffffad;border:1px solid #b4c8e875;border-radius:14px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;min-width:0;padding:12px;display:grid;position:relative}.fpv-progress-step[data-state=done]{background:#f7fffbc2;border-color:#1c9d7147}.fpv-progress-step[data-state=active]{background:#eff6ffe6;border-color:#2f7cf76b;box-shadow:0 10px 24px #2f7cf71a}.fpv-progress-step__dot{width:26px;height:26px;color:var(--ft-ink-soft);background:#7b8ba71f;border-radius:50%;justify-content:center;align-items:center;font-size:.76rem;font-weight:900;display:inline-flex}.fpv-progress-step[data-state=done] .fpv-progress-step__dot{color:var(--fpv-ready);background:#1c9d711f}.fpv-progress-step[data-state=active] .fpv-progress-step__dot{background:var(--fpv-working);color:#fff}.fpv-progress-step__body{gap:4px;min-width:0;display:grid}.fpv-progress-step__body strong{color:var(--ft-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.fpv-progress-step__body small{color:var(--ft-ink-dim);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;line-height:1.45;overflow:hidden}.fpv-progress-log{background:#ffffff9e;border:1px solid #b4c8e85c;border-radius:14px;gap:7px;padding:12px;display:grid}.fpv-progress-log span{color:var(--ft-ink-soft);animation:1.8s ease-in-out infinite fpv-progress-line;animation-delay:var(--delay);font-size:.78rem;font-weight:800;line-height:1.45}@keyframes fpv-progress-scan{0%{background-position:-48% 0,0 0}to{background-position:148% 0,0 0}}@keyframes fpv-progress-pulse{0%,to{transform:scale(1);box-shadow:0 0 0 7px #2f7cf71f}50%{transform:scale(.86);box-shadow:0 0 0 11px #2f7cf70f}}@keyframes fpv-progress-line{0%,to{opacity:.64}45%{opacity:1}}.fpv-result-workspace__summary{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;display:grid}.fpv-result-workspace__summary-card{appearance:none;text-align:left;min-width:0;color:inherit;cursor:pointer;font:inherit;touch-action:manipulation;background:#ffffffb8;border:1px solid #b4c8e87a;border-radius:14px;gap:6px;padding:14px;transition:border-color .16s,box-shadow .16s,transform .16s,background .16s;display:grid}.fpv-result-workspace__summary-card:not(:disabled):hover{background:#f8fcfff5;border-color:#2f7cf761;transform:translateY(-1px)}.fpv-result-workspace__summary-card:focus-visible,.fpv-result-workspace__summary-filter button:focus-visible{outline-offset:2px;outline:3px solid #2f7cf733}.fpv-result-workspace__summary-card--active{background:linear-gradient(#eff6fffa,#ffffffeb);border-color:#2f7cf780;box-shadow:inset 0 0 0 1px #2f7cf733,0 10px 24px #2f7cf71a}.fpv-result-workspace__summary-card:disabled{cursor:not-allowed;opacity:.66}.fpv-result-workspace__summary span{color:var(--ft-ink-dim);font-size:.76rem;font-weight:800}.fpv-result-workspace__summary strong{color:var(--ft-ink);font-family:var(--ft-font-display);font-variant-numeric:tabular-nums;font-size:1.28rem}.fpv-result-workspace__summary-filter{min-height:38px;color:var(--ft-ink-soft);background:#f6faffad;border:1px solid #b4c8e86b;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:.82rem;font-weight:800;display:flex}.fpv-result-workspace__summary-filter button{appearance:none;color:var(--fpv-working);cursor:pointer;font:inherit;touch-action:manipulation;background:0 0;border:0;padding:4px 0;font-weight:900}@media (prefers-reduced-motion:reduce){.fpv-progress-console,.fpv-progress-console__pulse,.fpv-progress-log span{animation:none}.fpv-result-workspace__summary-card{transition:none}.fpv-result-workspace__summary-card:not(:disabled):hover{transform:none}}.fpv-field-list{gap:12px;display:grid}.fpv-field-list__head,.fpv-field-table__row{grid-template-columns:minmax(180px,1.25fr) minmax(150px,.88fr) minmax(150px,.88fr) minmax(92px,auto) minmax(150px,.82fr);align-items:center;gap:12px;display:grid}.fpv-field-list__head h3{color:var(--ft-ink);font-family:var(--ft-font-display);letter-spacing:-.02em;margin:0;font-size:1rem}.fpv-field-table{overscroll-behavior:contain;background:#ffffffa8;border:1px solid #b4c8e87a;border-radius:14px;max-height:min(58vh,620px);display:grid;overflow:auto}.fpv-field-table__row{border-top:1px solid #b4c8e84d;min-width:0;padding:12px}.fpv-field-table__row:first-child{border-top:0}.fpv-field-table__row--head{z-index:1;color:var(--ft-ink-dim);background:#eff5ffc7;font-size:.74rem;font-weight:900;position:sticky;top:0}.fpv-field-table__row[data-state=warning]{background:#fffaf1a3}.fpv-field-table__field{gap:4px;min-width:0;display:grid}.fpv-field-table__field strong,.fpv-field-list__empty strong{min-width:0;color:var(--ft-ink);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.fpv-field-table__field span,.fpv-field-table__value,.fpv-field-table__note,.fpv-field-list__empty p{min-width:0;color:var(--ft-ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;line-height:1.5;overflow:hidden}.fpv-field-list__empty{background:#ffffff94;border:1px dashed #b4c8e8ad;border-radius:14px;gap:6px;padding:14px;display:grid}@media (width<=1180px){.fpv-workbench-grid,.fpv-form-grid--credentials{grid-template-columns:1fr}.fpv-result-workspace__summary{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.fpv-form-grid{grid-template-columns:1fr}.fpv-result-workspace__summary{grid-template-columns:repeat(2,minmax(0,1fr))}.fpv-result-workspace__summary-filter{flex-direction:column;align-items:flex-start}.fpv-field-list__head,.fpv-field-table__row,.fpv-progress-rail{grid-template-columns:1fr}.fpv-field-table{max-height:520px}.fpv-field-table__row--head{display:none}.fpv-field-table__value,.fpv-field-table__note{white-space:normal}}.frontend-real-preview{--frp-ready:#1c9d71;--frp-working:#2f7cf7;--frp-failed:#c4514a;--frp-muted:#7b8ba7}.frp-topbar{grid-template-columns:minmax(0,290px) minmax(0,1fr) auto}.frp-topbar__summary{grid-template-columns:auto minmax(0,max-content) minmax(72px,1fr)}.frp-topbar__meta,.frp-stage-header,.frp-panel__head,.frp-session-row,.frp-session-row__head,.frp-session-row__meta{align-items:center;display:flex}.frp-topbar__meta{justify-content:flex-end}.frp-runtime,.frp-status{white-space:nowrap;border-radius:999px;align-items:center;min-height:34px;padding:0 12px;font-size:.78rem;font-weight:700;display:inline-flex}.frp-runtime{color:var(--ft-ink-soft);background:#f0f6fff5;border:1px solid #b4c8e88a;gap:8px}.frp-runtime:before,.frp-status:before{content:"";background:var(--ft-warning);border-radius:50%;width:8px;height:8px}.frp-runtime.is-ready:before{background:var(--ft-ok)}.frp-stage-header{align-items:center}.frp-signal-grid,.frp-workbench,.frp-layout,.frp-session-list,.frp-capability-list,.frp-command-form,.frp-form-grid,.frp-plan-box,.frp-file-list{gap:14px;display:grid}.frp-signal-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.frp-layout{grid-template-columns:minmax(0,1fr) minmax(310px,.32fr);align-items:start}.frp-workbench{grid-template-columns:minmax(320px,.4fr) minmax(300px,.34fr) minmax(280px,.26fr);align-items:start}.frp-panel{border:1px solid var(--ft-line);background:linear-gradient(180deg, #ffffffe6, #f6fafff5), var(--ft-card);box-shadow:var(--ft-shadow-card);border-radius:22px;gap:18px;padding:22px;display:grid}.frp-panel--command,.frp-panel--plan,.frp-panel--review{min-width:0}.frp-panel__head{border-bottom:1px solid var(--ft-line);justify-content:space-between;gap:16px;padding-bottom:12px}.frp-panel__head h2,.frp-empty h3{color:var(--ft-ink);font-family:var(--ft-font-display);letter-spacing:-.04em;margin:0}.frp-panel__head p{margin:0}.frp-session-row{min-width:0;box-shadow:var(--ft-shadow-soft);background:#ffffffc7;border:1px solid #b4c8e88a;border-radius:18px;justify-content:space-between;gap:16px;padding:18px}.frp-session-row__main{gap:10px;min-width:0;display:grid}.frp-session-row__head{flex-wrap:wrap;gap:10px}.frp-session-row__head strong{color:var(--ft-ink);font-size:1rem}.frp-session-row p,.frp-empty p,.frp-capability-list span,.frp-plan-box p,.frp-empty-line,.frp-message{color:var(--ft-ink-soft);margin:0;line-height:1.62}.frp-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.frp-field{color:var(--ft-ink);gap:7px;font-weight:700;display:grid}.frp-field input,.frp-field select,.frp-field textarea{width:100%;min-width:0;color:var(--ft-ink);font:inherit;background:#ffffffd6;border:1px solid #b4c8e8a3;border-radius:12px;padding:10px 12px;font-weight:600}.frp-field textarea{resize:vertical}.frp-actions,.frp-preview-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.frp-message{font-size:.9rem;font-weight:700}.frp-message--failed{color:var(--frp-failed)}.frp-message--succeeded{color:var(--frp-ready)}.frp-plan-box{background:#ffffffb8;border:1px solid #b4c8e87a;border-radius:16px;padding:16px}.frp-file-list{gap:8px}.frp-file-list span{text-overflow:ellipsis;min-width:0;color:var(--ft-ink-soft);white-space:nowrap;background:#f4f8ffcc;border:1px solid #b4c8e87a;border-radius:12px;padding:8px 10px;font-size:.78rem;font-weight:700;overflow:hidden}.frp-session-row__meta{color:var(--ft-ink-dim);flex-wrap:wrap;gap:10px;font-size:.78rem;font-weight:700}.frp-session-row__meta span{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:260px;overflow:hidden}.frp-session-row__side{flex:none}.frp-session-row__side a,.frp-session-row__side span{min-height:34px;color:var(--ft-ink-soft);background:#f0f6fff5;border:1px solid #b4c8e88a;border-radius:999px;align-items:center;padding:0 12px;font-size:.78rem;font-weight:700;display:inline-flex}.frp-status{color:var(--ft-ink-soft);background:#eff5ffe0;border:1px solid #b4c8e870;gap:8px}.frp-status--ready{color:var(--frp-ready);background:#1c9d711a}.frp-status--working{color:var(--frp-working);background:#2f7cf71a}.frp-status--failed{color:var(--frp-failed);background:#c4514a1a}.frp-status--muted{color:var(--frp-muted);background:#7b8ba71a}.frp-status--ready:before{background:var(--frp-ready)}.frp-status--working:before{background:var(--frp-working)}.frp-status--failed:before{background:var(--frp-failed)}.frp-status--muted:before{background:var(--frp-muted)}.frp-capability-list div,.frp-empty{background:#ffffffb8;border:1px solid #b4c8e875;border-radius:16px;gap:8px;padding:16px;display:grid}.frp-capability-list strong{color:var(--ft-ink);font-size:.94rem}@media (width<=1120px){.frp-signal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.frp-layout,.frp-workbench{grid-template-columns:1fr}}@media (width<=860px){.frp-topbar,.frp-signal-grid,.frp-form-grid{grid-template-columns:1fr}.frp-session-row,.frp-panel__head{flex-direction:column;align-items:flex-start}}.frontend-server-dashboard{--fsd-monitor:#2f7cf7;--fsd-memory:#1c9d71;--fsd-disk:#c88a20}.fsd-topbar{grid-template-columns:minmax(0,290px) minmax(0,1fr) auto}.fsd-topbar__summary{grid-template-columns:auto minmax(0,max-content) minmax(72px,1fr);display:grid}.fsd-topbar__meta,.fsd-stage-header__meta,.fsd-metric__head,.fsd-metric__meta,.fsd-panel__head,.fsd-agent-card__head,.fsd-agent-card__meta,.fsd-agent-card__stats{align-items:center;display:flex}.fsd-topbar__meta,.fsd-stage-header__meta{flex-wrap:wrap;justify-content:flex-end;gap:10px}.fsd-stage-header{align-items:center}.fsd-overview,.fsd-metric-grid,.fsd-agent-grid{gap:14px;display:grid}.fsd-overview{grid-template-columns:repeat(4,minmax(0,1fr))}.fsd-panel{border:1px solid var(--ft-line);background:linear-gradient(180deg, #ffffffe0, #f6fafff5), var(--ft-card);box-shadow:var(--ft-shadow-card);border-radius:22px;gap:16px;padding:22px;display:grid}.fsd-panel__head{border-bottom:1px solid var(--ft-line);justify-content:space-between;gap:16px;padding-bottom:12px}.fsd-panel__head h2{color:var(--ft-ink);font-family:var(--ft-font-display);letter-spacing:-.04em;margin:0;font-size:1.22rem}.fsd-panel__head p{color:var(--ft-ink-soft);margin:0;font-size:.84rem}.fsd-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.fsd-metric,.fsd-agent-card{min-width:0;box-shadow:var(--ft-shadow-soft);background:#ffffffc2;border:1px solid #b4c8e88a;border-radius:18px;gap:16px;padding:18px;display:grid}.fsd-metric__head,.fsd-metric__meta,.fsd-agent-card__head,.fsd-agent-card__meta,.fsd-agent-card__stats{justify-content:space-between;gap:12px}.fsd-metric__head p,.fsd-agent-card__head p{color:var(--ft-ink-dim);letter-spacing:.12em;text-transform:uppercase;margin:0 0 5px;font-size:.72rem;font-weight:700}.fsd-metric__head strong,.fsd-agent-card__head strong{color:var(--ft-ink);font-size:1rem;font-weight:700}.fsd-metric__value{color:var(--ft-ink);font-family:var(--ft-font-display);align-items:baseline;gap:3px;display:flex}.fsd-metric__value span{letter-spacing:-.04em;font-size:clamp(2rem,4vw,3.4rem);font-weight:700}.fsd-metric__value small{color:var(--ft-ink-soft);font-size:.86rem;font-weight:700}.fsd-meter{background:#cbd8eba3;border-radius:999px;height:10px;overflow:hidden}.fsd-meter span{border-radius:inherit;background:linear-gradient(90deg, var(--fsd-monitor), var(--ft-accent-secondary));height:100%;display:block}.fsd-metric--memory .fsd-meter span{background:linear-gradient(90deg, var(--fsd-memory), #8be6b4)}.fsd-metric--disk .fsd-meter span{background:linear-gradient(90deg, var(--fsd-disk), #ffd669)}.fsd-metric__meta,.fsd-agent-card__meta{color:var(--ft-ink-soft);flex-wrap:wrap;font-size:.82rem;line-height:1.45}.fsd-pill,.fsd-updated-at{min-height:36px;color:var(--ft-ink-soft);background:#f0f6fff5;border:1px solid #b4c8e88a;border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-size:.78rem;font-weight:700;display:inline-flex}.fsd-pill:before{content:"";background:var(--ft-ok);border-radius:50%;width:8px;height:8px}.fsd-pill--warning:before{background:var(--ft-warning)}.fsd-pill--critical:before{background:var(--ft-danger)}.fsd-agent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fsd-agent-card__head{align-items:flex-start}.fsd-agent-card__reason{min-height:44px;color:var(--ft-ink-soft);background:#eff5ffc2;border-radius:14px;margin:0;padding:12px;font-size:.84rem;line-height:1.55}.fsd-agent-card__stats{flex-wrap:wrap;justify-content:flex-start}.fsd-agent-card__stats span{min-height:28px;color:var(--ft-ink-soft);background:#eff5ffd6;border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:700}@media (width<=1180px){.fsd-overview,.fsd-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=860px){.fsd-topbar,.fsd-overview,.fsd-metric-grid,.fsd-agent-grid{grid-template-columns:1fr}}.frontend-user-management{--fum-admin:#2f7cf7}.fum-topbar{grid-template-columns:minmax(0,320px) minmax(0,1fr) auto}.fum-topbar__summary{grid-template-columns:auto minmax(0,max-content) minmax(72px,1fr);display:grid}.fum-topbar__actions,.fum-stage-header,.fum-panel__head,.fum-user-row,.fum-account,.fum-chip-list,.fum-actions{align-items:center;display:flex}.fum-topbar__actions,.fum-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px}.fum-stage-header{justify-content:space-between}.fum-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.fum-workspace{grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);align-items:start;gap:16px;display:grid}.fum-panel{border:1px solid var(--ft-line);background:linear-gradient(180deg, #ffffffe6, #f6fafff7), var(--ft-card);min-width:0;box-shadow:var(--ft-shadow-card);border-radius:22px;gap:16px;padding:22px;display:grid}.fum-panel__head{border-bottom:1px solid var(--ft-line);justify-content:space-between;gap:16px;padding-bottom:12px}.fum-panel__head h2{color:var(--ft-ink);font-family:var(--ft-font-display);letter-spacing:-.04em;margin:0;font-size:1.22rem}.fum-user-list,.fum-form{gap:12px;display:grid}.fum-user-row{min-width:0;box-shadow:var(--ft-shadow-soft);background:#ffffffc7;border:1px solid #b4c8e88a;border-radius:18px;grid-template-columns:minmax(220px,1.2fr) auto auto minmax(180px,.8fr) auto;gap:12px;padding:14px;display:grid}.fum-account{gap:12px;min-width:0}.fum-account__avatar{color:#fff;background:linear-gradient(135deg, var(--fum-admin), var(--ft-accent-secondary));width:42px;height:42px;font-family:var(--ft-font-display);border-radius:14px;flex:none;place-items:center;font-weight:700;display:grid}.fum-account strong,.fum-count{color:var(--ft-ink);font-weight:700}.fum-account small,.fum-muted{color:var(--ft-ink-dim);margin-top:3px;font-size:.78rem;display:block}.fum-badge,.fum-save-state,.fum-chip-list span{width:fit-content;min-height:30px;color:var(--ft-ink-soft);white-space:nowrap;background:#f3f8ffe6;border:1px solid #b4c8e89e;border-radius:999px;align-items:center;padding:0 10px;font-size:.76rem;font-weight:700;display:inline-flex}.fum-badge.is-ok,.fum-save-state--succeeded{color:var(--ft-ok);background:#1c9d711a;border-color:#1c9d7138}.fum-badge.is-admin{color:var(--fum-admin);background:#2f7cf71a;border-color:#2f7cf73d}.fum-save-state--failed{color:var(--ft-danger);background:#c4514a1a;border-color:#c4514a3d}.fum-save-state--saving{color:var(--ft-warning);background:#cb8a241c;border-color:#cb8a2447}.fum-chip-list{flex-wrap:wrap;gap:6px;margin-top:5px}.fum-row-action{justify-self:end}.fum-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.fum-field,.fum-admin-toggle,.fum-module-card{gap:8px;display:grid;position:relative}.fum-field span{color:var(--ft-ink);font-size:.84rem;font-weight:700}.fum-field input,.fum-field select{width:100%;min-height:50px;color:var(--ft-ink);background:#fffffff5;border:1px solid #b5c9e7c7;border-radius:16px;outline:none;padding:12px 14px}.fum-field input:focus,.fum-field select:focus{border-color:#2f7cf7ad;box-shadow:0 0 0 4px #2f7cf71a}.fum-field input[readonly]{color:var(--ft-ink-soft);background:#eff5ffcc}.fum-admin-toggle{background:#f3f8ffc2;border:1px solid #b5c9e7b8;border-radius:18px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:13px;padding:16px}.fum-admin-toggle input,.fum-module-card input{opacity:0;pointer-events:none;position:absolute}.fum-admin-toggle__mark,.fum-module-card__check{background:#fff;border:1px solid #2f7cf75c;place-items:center;display:grid}.fum-admin-toggle__mark{border-radius:9px;width:24px;height:24px}.fum-admin-toggle__mark:after,.fum-module-card__check:after{content:"";opacity:0;border-bottom:2px solid #fff;border-left:2px solid #fff;width:10px;height:6px;margin-top:-2px;transform:rotate(-45deg)}.fum-admin-toggle input:checked+.fum-admin-toggle__mark,.fum-module-card input:checked+.fum-module-card__check{background:linear-gradient(135deg, var(--fum-admin), #61bef4);border-color:#2f7cf7d6}.fum-admin-toggle input:checked+.fum-admin-toggle__mark:after,.fum-module-card input:checked+.fum-module-card__check:after{opacity:1}.fum-admin-toggle strong{color:var(--ft-ink);font-weight:700;display:block}.fum-admin-toggle small{color:var(--ft-ink-soft);margin-top:4px;font-size:.82rem;line-height:1.5;display:block}.fum-module-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.fum-module-card{min-height:132px;box-shadow:var(--ft-shadow-soft);cursor:pointer;background:#ffffffc2;border:1px solid #b5c9e7b3;border-radius:18px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;padding:16px}.fum-module-card.is-selected,.fum-module-card:hover{background:linear-gradient(#eff6fff5,#fffffff0);border-color:#2f7cf757}.fum-module-card__check{border-radius:8px;width:22px;height:22px;margin-top:2px}.fum-module-card__body{gap:7px;min-width:0;display:grid}.fum-module-card__body small{width:fit-content;min-height:24px;color:var(--fum-admin);background:#2f7cf71a;border-radius:999px;align-items:center;padding:0 9px;font-size:.72rem;font-weight:700;display:inline-flex}.fum-module-card__body strong{color:var(--ft-ink);font-size:.98rem}.fum-module-card__body span{color:var(--ft-ink-soft);font-size:.82rem;line-height:1.5}.fum-empty{background:#f3f8ffa3;border:1px dashed #7996c56b;border-radius:18px;padding:26px}.fum-empty h3,.fum-empty p{margin:0}.fum-empty h3{color:var(--ft-ink);font-family:var(--ft-font-display)}.fum-empty p{color:var(--ft-ink-soft);margin-top:8px}@media (width<=1180px){.fum-workspace,.fum-summary-grid{grid-template-columns:1fr}.fum-user-row{grid-template-columns:1fr;align-items:start}.fum-row-action{justify-self:start}}html,body,#frontend-root{min-height:100%;margin:0}.frontend-toolbox{--ft-font-ui:"IBM Plex Sans", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", sans-serif;--ft-font-display:"IBM Plex Mono", "SFMono-Regular", "Consolas", monospace;--ft-bg:#edf4ff;--ft-stage:#fff;--ft-stage-soft:#f7fbff;--ft-card:#fffffff7;--ft-line:#7996c52e;--ft-line-strong:#7996c547;--ft-ink:#23354d;--ft-ink-soft:#667a99;--ft-ink-dim:#95a7c3;--ft-accent:#2f7cf7;--ft-accent-secondary:#8fd3ff;--ft-ok:#1c9d71;--ft-warning:#cb8a24;--ft-danger:#c4514a;--ft-shadow-stage:0 24px 52px #5376b317;--ft-shadow-card:0 14px 30px #45649914;--ft-shadow-soft:0 10px 22px #4564990f;min-height:100dvh;color:var(--ft-ink);font-family:var(--ft-font-ui);background:linear-gradient(180deg, var(--ft-bg) 0%, #f5f9ff 56%, var(--ft-stage-soft) 100%);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}.frontend-toolbox *,.frontend-toolbox :before,.frontend-toolbox :after{box-sizing:border-box}.frontend-toolbox a{color:inherit;text-decoration:none}.frontend-toolbox :where(a[href],button,[role=button],summary,label,select,input[type=checkbox],input[type=radio]){cursor:pointer}.frontend-toolbox :where(button:disabled,[aria-disabled=true],input:disabled,select:disabled,textarea:disabled){cursor:not-allowed}.ft-frame{width:100%;padding:18px 18px 22px}.ft-topbar{z-index:30;-webkit-backdrop-filter:blur(24px)saturate(150%);backdrop-filter:blur(24px)saturate(150%);background:linear-gradient(#ffffffeb,#f5f9fffa);border:1px solid #b0c6e794;border-radius:30px;grid-template-columns:minmax(0,290px) minmax(0,1fr) auto;align-items:center;gap:20px;min-height:76px;padding:18px 22px;display:grid;position:sticky;top:16px;box-shadow:0 20px 36px #5376b314}.ft-brand,.ft-topbar__summary,.ft-runtime,.ft-command__actions,.ft-preview__actions,.ft-preview__meta,.ft-tool-card__top,.ft-tool-card__footer,.ft-footer{align-items:center;display:flex}.ft-brand{gap:14px;min-width:0}.ft-brand__mark{color:#fff;width:48px;height:48px;font-family:var(--ft-font-display);letter-spacing:.06em;background:linear-gradient(135deg,#2f7cf7fa,#8fd3fff0);border-radius:16px;flex:none;place-items:center;font-size:.92rem;font-weight:700;display:grid;box-shadow:0 14px 28px #2f7cf72e}.ft-brand__copy{gap:2px;min-width:0;display:grid}.ft-brand__eyebrow,.ft-stage-header__eyebrow,.ft-eyebrow{color:var(--ft-ink-dim);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.ft-brand__title,.ft-stage-header h1,.ft-command h2,.ft-section h2,.ft-preview h2,.ft-tool-card h3,.ft-empty-state h3,.ft-state-panel h1{color:var(--ft-ink);font-family:var(--ft-font-display);letter-spacing:-.04em;margin:0}.ft-brand__title{font-size:1rem}.ft-brand__subtitle{color:var(--ft-ink-soft);font-size:.8rem}.ft-topbar__summary{border-left:1px solid #b5c9e7c7;grid-template-columns:auto max-content minmax(72px,1fr);gap:18px;min-width:0;min-height:54px;padding-left:22px;display:grid;position:relative}.ft-topbar__summary:after{content:"";background:linear-gradient(90deg,#9ab3dbb3,#9ab3db00);border-radius:999px;height:1px;display:block}.ft-topbar__summary-label{color:var(--ft-ink-dim);letter-spacing:.12em;text-transform:uppercase;border-right:1px solid #b5c9e7c7;padding-right:18px;font-size:.74rem;font-weight:700}.ft-topbar__summary-copy{gap:3px;min-width:0;display:grid}.ft-topbar__summary-copy strong,.ft-runtime__copy strong{color:var(--ft-ink);font-weight:600}.ft-topbar__summary-copy span{color:var(--ft-ink-soft);font-size:.82rem}.ft-runtime{background:#f3f8fff5;border:1px solid #b4c8e885;border-radius:18px;gap:10px;min-height:50px;padding:8px 14px}.ft-runtime__dot{background:var(--ft-warning);border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 4px #cb8a2424}.ft-runtime[data-configured=true] .ft-runtime__dot{background:var(--ft-ok);box-shadow:0 0 0 4px #1c9d7124}.ft-runtime__copy{gap:2px;line-height:1;display:grid}.ft-runtime__copy small{color:var(--ft-ink-dim);letter-spacing:.12em;text-transform:uppercase;font-size:.66rem;font-weight:700}.ft-stage{background:linear-gradient(180deg, var(--ft-stage) 0%, var(--ft-stage-soft) 100%);min-height:calc(100dvh - 172px);box-shadow:var(--ft-shadow-stage);border:1px solid #b8ccebb8;border-radius:34px;margin-top:18px;padding:24px;overflow:hidden}.ft-stage__inner,.ft-command,.ft-section,.ft-state-panel{gap:20px;display:grid}.ft-stage-header{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.ft-stage-header h1{margin-top:4px;font-size:clamp(1.6rem,2vw,2.25rem)}.ft-stage-header p:not(.ft-stage-header__eyebrow),.ft-command p,.ft-section p,.ft-preview p,.ft-tool-card p,.ft-empty-state p,.ft-state-panel p{color:var(--ft-ink-soft);margin:0;line-height:1.68}.ft-pill{min-height:34px;color:var(--ft-ink-soft);white-space:nowrap;background:#eff5ffe0;border:1px solid #b4c8e885;border-radius:999px;align-items:center;padding:0 13px;font-size:.82rem;font-weight:700;display:inline-flex}.ft-command,.ft-section{border:1px solid var(--ft-line);background:linear-gradient(180deg, #ffffffe6, #f8fbfffa), var(--ft-card);box-shadow:var(--ft-shadow-card);border-radius:26px;padding:22px;position:relative;overflow:hidden}.ft-command:before,.ft-section:before{content:"";pointer-events:none;background:radial-gradient(circle at 100% 0,#2f7cf714,#0000 24%),linear-gradient(#ffffff42,#0000 28%);position:absolute;inset:0}.ft-command>*,.ft-section>*{z-index:1;position:relative}.ft-command{grid-template-columns:minmax(0,1.04fr) minmax(320px,.96fr)}.ft-command__copy{align-content:start;gap:18px;display:grid}.ft-command h2{font-size:clamp(1.48rem,2vw,2rem)}.ft-command__actions,.ft-preview__actions{flex-wrap:wrap;gap:12px}.ft-button{white-space:nowrap;border:1px solid #b4c8e885;border-radius:18px;justify-content:center;align-items:center;min-height:50px;padding:0 20px;font-weight:700;line-height:1;display:inline-flex}.ft-button--primary{color:#fff;background:linear-gradient(135deg,#2f7cf7 0%,#4b9bff 54%,#61bef4 100%);border-color:#ffffff85;box-shadow:0 12px 22px #2f7cf733,inset 0 1px #ffffff52}.ft-button--ghost{color:var(--ft-ink);background:#ffffffb8}.ft-signal-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}.ft-stat{background:#ffffffb8;border:1px solid #b4c8e875;border-radius:20px;gap:5px;padding:16px;display:grid}.ft-stat span{color:var(--ft-ink-dim);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:700}.ft-stat strong{color:var(--ft-ink);font-family:var(--ft-font-display);font-size:1rem}.ft-stat small{color:var(--ft-ink-soft)}.ft-preview__frame{background:radial-gradient(circle at 90% 13%,#ffffff5c,#0000 18%),radial-gradient(circle at 3% 100%,#2f7cf71f,#0000 30%),radial-gradient(circle at 100% 100%,#8fd3ff24,#0000 26%),linear-gradient(145deg,#e8f1ff 0%,#dce9fb 56%,#d2e2f6 100%);border:1px solid #a6c3e76b;border-radius:26px;gap:18px;height:100%;padding:22px;display:grid;box-shadow:0 18px 38px #5e7eb124,inset 0 1px #fff9}.ft-preview__meta,.ft-tool-card__top,.ft-tool-card__footer{justify-content:space-between;gap:12px}.ft-preview__tag,.ft-preview__state,.ft-tool-card__kind{border-radius:999px;justify-content:center;align-items:center;min-height:30px;padding:0 12px;font-size:.76rem;font-weight:700;display:inline-flex}.ft-preview__tag{color:#486382;background:#ffffff70;border:1px solid #a4c0e757}.ft-preview__state{color:#2f6bc7;background:#2f7cf71a;border:1px solid #699eeb3d}.ft-preview__eyebrow{color:#4c607ce0;letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px;font-size:.74rem;font-weight:700}.ft-preview h2{color:#27405e;font-size:1.52rem}.ft-preview__list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.ft-preview__list li{color:#2f4764;padding-left:16px;position:relative}.ft-preview__list li:before{content:"";background:#57b5ff;border-radius:50%;width:7px;height:7px;position:absolute;top:.65rem;left:0}.ft-section__header{gap:6px;display:grid}.ft-section h2{font-size:1.45rem}.ft-tool-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;display:grid}.ft-tool-card{--ft-card-accent:#8fd3ff;border:1px solid var(--ft-line);background:linear-gradient(180deg, #fffffff2, #f7fafffc), var(--ft-card);width:100%;box-shadow:var(--ft-shadow-soft);color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:20px;gap:14px;padding:18px;transition:transform .18s,box-shadow .18s,border-color .18s;display:grid;position:relative;overflow:hidden}.ft-tool-card:hover,.ft-tool-card:focus-visible{border-color:#2f7cf729;outline:0;transform:translateY(-2px);box-shadow:0 24px 44px #0f172a1c}.ft-tool-card.is-selected{border-color:#2f7cf729;box-shadow:0 24px 44px #2f7cf721}.ft-tool-card[data-preview-tone=create]{--ft-card-accent:#2f7cf7}.ft-tool-card[data-preview-tone=verify]{--ft-card-accent:#cb8a24}.ft-tool-card[data-preview-tone=monitor]{--ft-card-accent:#1c9d71}.ft-tool-card[data-preview-tone=develop]{--ft-card-accent:#5b7cff}.ft-tool-card__kind{color:var(--ft-card-accent);background:#2f7cf714}.ft-tool-card h3{font-size:1.08rem}.ft-tool-card__footer strong{color:var(--ft-ink);font-size:.94rem}.ft-tool-card__footer span{color:var(--ft-ink-soft);font-size:.82rem}.ft-empty-state,.ft-state-panel{background:#f8fbffdb;border:1px dashed #9ab3dbb8;border-radius:24px;padding:28px}.ft-empty-state h3{font-size:1.4rem}.ft-footer{color:var(--ft-ink-dim);justify-content:space-between;gap:14px;font-size:.82rem}.frontend-toolbox--centered{place-items:center;padding:24px;display:grid}.ft-state-panel{width:min(560px,100%);box-shadow:var(--ft-shadow-card);border-style:solid}.ft-state-panel h1{font-size:1.6rem}.ft-state-panel--error{background:#fff8f7f2;border-color:#c4514a3d}@media (width<=980px){.ft-topbar,.ft-command{grid-template-columns:1fr}.ft-topbar{border-radius:26px;position:static}.ft-topbar__summary{border-left:0;padding-left:0}}@media (width<=720px){.ft-frame{padding:12px}.ft-stage{border-radius:26px;padding:16px}.ft-stage-header,.ft-footer{display:grid}.ft-command,.ft-section,.ft-preview__frame{border-radius:22px;padding:18px}.ft-topbar__summary{grid-template-columns:1fr;gap:8px}.ft-topbar__summary:after,.ft-topbar__summary-label{display:none}}
