.fp { --fp-accent:var(--signal,#ff6b1a); display:grid; gap:12px; margin:0 0 18px; color:var(--ink,var(--text,#e8edf2)); }
.fp * { box-sizing:border-box; }
.fp-head,.fp-panel,.fp-card { border:1px solid var(--line,var(--border,rgba(255,255,255,.12))); background:var(--srf-0,rgba(12,16,21,.96)); }
.fp-head { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; padding:16px 18px; border-top:2px solid var(--fp-accent); }
.fp-kicker { color:var(--fp-accent); font:700 10px var(--mono,monospace); letter-spacing:.14em; text-transform:uppercase; }
.fp h2,.fp h3,.fp h4 { margin:0; font-family:var(--display,sans-serif); color:var(--ink,var(--text,#e8edf2)); }
.fp-head h2 { margin-top:5px; font-size:clamp(19px,2.3vw,26px); }
.fp-copy,.fp-muted { color:var(--ink-3,var(--muted,#8995a3)); font-size:12px; line-height:1.55; }
.fp-copy { max-width:76ch; margin:5px 0 0; }
.fp-status { display:inline-flex; min-height:28px; align-items:center; gap:7px; padding:4px 8px; border:1px solid var(--line); color:var(--ink-2,#aab4c0); font:700 9px var(--mono,monospace); text-transform:uppercase; white-space:nowrap; }
.fp-status::before { content:""; width:7px; height:7px; background:currentColor; }
.fp-status.available,.fp-status.applied { color:var(--ok,#38c97a); }
.fp-status.agent_offline,.fp-status.error { color:var(--danger,#f87171); }
.fp-status.agent_upgrade_required,.fp-status.warn { color:var(--warn,#f2c14e); }
.fp-panel { padding:15px; }
.fp-section-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:11px; }
.fp-actions { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
.fp-btn,.fp-input,.fp-select,.fp-textarea { min-height:44px; border:1px solid var(--line-hi,var(--border,rgba(255,255,255,.2))); border-radius:4px; }
.fp-btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:9px 12px; color:var(--ink,#e8edf2); background:var(--srf-1,#11161d); cursor:pointer; font:650 11px var(--display,sans-serif); }
.fp-btn.primary { border-color:var(--fp-accent); background:rgba(255,107,26,.13); }
.fp-btn.danger { border-color:var(--danger,#f87171); color:var(--danger,#f87171); }
.fp-btn:hover,.fp-btn:focus-visible { border-color:var(--fp-accent); outline:2px solid transparent; }
.fp-btn:disabled { opacity:.45; cursor:not-allowed; }
.fp-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(245px,1fr)); gap:9px; }
.fp-card { min-width:0; padding:13px; border-left:3px solid var(--ink-3,#7f8b98); }
.fp-card.good { border-left-color:var(--ok,#38c97a); }.fp-card.warn { border-left-color:var(--warn,#f2c14e); }.fp-card.bad { border-left-color:var(--danger,#f87171); }
.fp-card-head { display:flex; justify-content:space-between; gap:9px; align-items:flex-start; }
.fp-card h4 { font-size:14px; overflow-wrap:anywhere; }
.fp-meta { display:grid; gap:5px; margin-top:9px; color:var(--ink-3,var(--muted)); font:500 10px/1.45 var(--mono,monospace); overflow-wrap:anywhere; }
.fp-form { display:grid; gap:12px; }
.fp-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.fp-form label,.fp-fieldset { display:grid; gap:5px; color:var(--ink-2,#aab4c0); font-size:11px; }
.fp-input,.fp-select,.fp-textarea { width:100%; padding:9px 10px; color:var(--ink,#e8edf2); background:var(--bg-1,#0a0d12); font:12px var(--mono,monospace); }
.fp-textarea { min-height:76px; resize:vertical; }
.fp-input:focus,.fp-select:focus,.fp-textarea:focus { outline:1px solid var(--fp-accent); border-color:var(--fp-accent); }
.fp-check { display:flex!important; grid-template-columns:none!important; flex-direction:row; align-items:center; min-height:44px; gap:8px; }
.fp-check input { width:20px; height:20px; accent-color:var(--fp-accent); }
.fp-rule { padding:12px; border:1px solid var(--line); background:var(--srf-1,#11161d); }
.fp-note,.fp-error,.fp-success { padding:10px 12px; border:1px solid var(--line); color:var(--ink-2,#aab4c0); font-size:11px; line-height:1.5; }
.fp-note { border-left:3px solid var(--fp-accent); }.fp-error { border-left:3px solid var(--danger,#f87171); color:var(--danger,#f87171); }.fp-success { border-left:3px solid var(--ok,#38c97a); }
.fp-table-wrap { overflow:auto; border:1px solid var(--line); }
.fp-table { width:100%; min-width:760px; border-collapse:collapse; font-size:11px; }
.fp-table th,.fp-table td { padding:9px 10px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line); }
.fp-table th { color:var(--ink-3); font:700 9px var(--mono,monospace); text-transform:uppercase; letter-spacing:.07em; }
.fp-evidence { display:flex; flex-wrap:wrap; gap:5px; max-width:420px; }
.fp-chip { padding:3px 5px; border:1px solid var(--line); color:var(--ink-2,#aab4c0); font:500 9px var(--mono,monospace); overflow-wrap:anywhere; }
.fp-progress { height:9px; margin-top:8px; border:1px solid var(--line); background:var(--bg-0,#07090d); }
.fp-progress span { display:block; height:100%; max-width:100%; background:var(--fp-accent); }
.fp-reward-templates { display:flex; align-items:center; gap:7px; flex-wrap:wrap; padding:10px; border:1px solid var(--line); background:var(--bg-0,#07090d); }
.fp-reward-templates strong { margin-right:auto; color:var(--ink-2,#aab4c0); font-size:11px; }
.fp-reward-items { display:grid; gap:9px; margin-top:4px; }
.fp-reward-item-list { display:grid; gap:8px; }
.fp-reward-item { display:grid; grid-template-columns:minmax(190px,2fr) minmax(90px,.7fr) minmax(90px,.7fr) minmax(110px,.9fr) auto; gap:8px; align-items:end; padding:9px; border:1px solid var(--line); background:var(--bg-0,#07090d); }
.fp-reward-item .fp-btn { margin-bottom:0; }
.fp-input.fp-stale,.fp-select.fp-stale { border-color:var(--danger,#f87171); box-shadow:inset 3px 0 var(--danger,#f87171); }
.fp-multi { min-width:0; padding:12px; border:1px solid var(--line); background:var(--srf-1,#11161d); }
.fp-chips { display:flex; flex-wrap:wrap; gap:6px; min-height:32px; margin:8px 0; }
.fp-choice { display:inline-flex; align-items:center; gap:6px; max-width:100%; padding:4px 4px 4px 8px; border:1px solid var(--fp-accent); background:rgba(255,107,26,.09); color:var(--ink-2,#aab4c0); font:600 10px var(--mono,monospace); }
.fp-choice>span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fp-choice.stale { border-color:var(--danger,#f87171); }
.fp-choice .fp-btn { min-height:28px; width:28px; padding:2px; border:0; }
.fp-multi-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:5px; max-height:220px; overflow:auto; padding:6px; border:1px solid var(--line); background:var(--bg-0,#07090d); }
.fp-multi-option { display:flex!important; grid-template-columns:none!important; flex-direction:row; align-items:center; gap:8px; min-height:44px; padding:7px; cursor:pointer; border:1px solid transparent; }
.fp-multi-option:hover,.fp-multi-option:focus-within { border-color:var(--fp-accent); background:rgba(255,107,26,.07); }
.fp-multi-option input { width:19px; height:19px; flex:0 0 auto; accent-color:var(--fp-accent); }
.fp-modal { position:fixed; inset:0; z-index:10000; display:grid; place-items:center; padding:16px; background:rgba(3,5,8,.84); }
.fp-modal[hidden]{display:none}.fp-dialog { width:min(680px,100%); max-height:90vh; overflow:auto; padding:18px; border:1px solid var(--line-hi); border-top:3px solid var(--fp-accent); background:var(--srf-0,#0d1117); }
.fp-dialog-actions { display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; margin-top:15px; }
.fp-reveal { padding:12px; margin-top:10px; border:1px solid var(--line); background:var(--bg-0,#07090d); color:var(--ok,#38c97a); font:12px var(--mono,monospace); overflow-wrap:anywhere; user-select:all; }
.fp-switch { display:flex; align-items:center; gap:9px; min-height:44px; }.fp-switch input{width:20px;height:20px;accent-color:var(--fp-accent)}
@media(max-width:760px){.fp-reward-item{grid-template-columns:1fr 1fr}.fp-reward-item label:first-child{grid-column:1/-1}.fp-reward-item .fp-btn{width:100%}}
@media(max-width:600px){.fp-head,.fp-section-head{flex-direction:column}.fp-head{padding:14px}.fp-panel{padding:11px}.fp-grid,.fp-form-grid,.fp-reward-item,.fp-multi-options{grid-template-columns:1fr}.fp-reward-item label:first-child{grid-column:auto}.fp-actions,.fp-actions>.fp-btn,.fp-reward-templates>.fp-btn{width:100%}.fp-reward-templates strong{width:100%;margin-right:0}.fp-dialog{padding:13px}.fp-table{min-width:680px}}
@media(max-width:380px){.fp{gap:9px}.fp-card{padding:11px}.fp-btn{width:100%}.fp-status{white-space:normal}}
@media(prefers-reduced-motion:reduce){.fp *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* Readable-width admin/player workspace with deliberate wide-table opt-ins. */
.fp{width:100%;min-width:0;max-width:1120px;margin:0 auto 18px}
.fp>*,.fp-grid,.fp-panel,.fp-card,.fp-form{min-width:0;max-width:100%}
.fp-head>div:first-child,.fp-section-head>div:first-child{min-width:0;max-width:72ch}
.fp-grid{grid-template-columns:repeat(auto-fit,minmax(245px,360px));justify-content:space-between;align-items:start}
.fp-grid:has(>:only-child){grid-template-columns:minmax(0,1fr);justify-content:stretch}
.fp-btn,.fp-input,.fp-select,.fp-textarea{max-width:100%}
.fp-btn{white-space:normal;text-align:center}
.fp-table-wrap{width:100%;min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;contain:inline-size}
.fp-table-wrap>.fp-table{display:table;width:max-content;max-width:none}
@media(max-width:600px){.fp-grid{grid-template-columns:1fr}.fp-input,.fp-select,.fp-textarea{font-size:16px}.fp-table-wrap>.fp-table{display:table;width:max-content;max-width:none}}
