:root{--bg:#f4f6fb;--fg:#111827;--mut:#5b6474;--card:#fff;--soft:#eaf0fd;--bd:#dfe4ee;--ac:#2563eb;--ac2:#ff8a1f;--ok:#0fb28a;--ink:#fff;--rad:12px;--fn:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans","Noto Sans Symbols 2","Noto Sans Symbols","Segoe UI Symbol","Apple Color Emoji","Segoe UI Emoji",sans-serif;--fd:var(--fn);--hh:60px;--tbh:64px;--gap:8px;--w:1180px;--wr:820px}
a{color:var(--ac)}
/* header */
.ffx-h{background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--bd)}
.ffx-lg{font-size:1.2rem;letter-spacing:-.01em;color:var(--fg)}
.ffx-lg span{background:linear-gradient(90deg,var(--fg),var(--ac));-webkit-background-clip:text;background-clip:text;color:transparent}
.ffx-nv a{border-radius:10px;color:var(--mut)}
.ffx-nv a:hover,.ffx-nv .on a{background:var(--soft);color:var(--ac)}
.ffx-sr{position:relative;margin-left:auto}
.ffx-sr summary{list-style:none;display:grid;place-items:center;width:40px;height:40px;border-radius:10px;cursor:pointer;color:var(--fg)}
.ffx-sr summary::-webkit-details-marker{display:none}
.ffx-sr summary:hover,.ffx-sr[open] summary{background:var(--soft);color:var(--ac)}
.ffx-sr summary svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.ffx-sr form{position:absolute;right:0;top:48px;width:min(86vw,340px);background:var(--card);border:1px solid var(--bd);border-radius:var(--rad);padding:10px;box-shadow:0 10px 30px rgba(17,24,39,.12)}
.ffx-sr input[type=search]{width:100%;padding:.7em 1em;border:2px solid var(--bd);border-radius:10px;background:#fff}
.ffx-sr input[type=search]:focus{border-color:var(--ac);outline:0}
.ffx-sr input[type=submit],.ffx-sr button{display:none}
/* tool */
.ffx-row input{border-radius:var(--rad);border-color:var(--bd)}
.ffx-go,.ffx-btn{border-radius:var(--rad);background:var(--ac2);color:#1b1206}
.ffx-i{border-radius:10px}
.ffx-i:hover{border-color:var(--ac);background:var(--soft)}
/* footer */
.ffx-ft{background:#0f172a;color:#cbd5e1;margin-top:40px;padding:34px 0 26px}
.ffx-ft .ffx-w{display:block;height:auto}
.ffx-ft a{color:#93c5fd}
.ffx-ft p{color:#cbd5e1}
.ffx-fw{max-width:760px;margin:0 auto 14px;text-align:center}
.ffx-fw .widget{margin:0 0 6px}
.ffx-fw .widget p{margin:0 0 .6em;font-size:.95rem}
.ffx-cp{margin:12px 0 0;text-align:center;font-size:.9rem;color:#94a3b8;border-top:1px solid #1e293b;padding-top:14px}
/* legacy article blocks (copy lists, tables, TOC) */
.ffx-c .names,.ffx-c .fn-grid,.ffx-c .names-grid{display:flex!important;flex-wrap:wrap;gap:var(--gap);margin:0 0 1.2em}
.ffx-c .names-grid>br,.ffx-c .names>br{display:none}
.ffx-c .fn-item{flex:1 1 auto;min-width:0;max-width:100%;display:flex;flex-direction:column;gap:4px}
.ffx-c .fn-item small{text-align:center;font-size:.75rem}
.ffx-c .name-btn,.ffx-c .emo,.ffx-c .fn-chip{flex:1 1 auto;min-width:0;max-width:100%;padding:.6em 1em;border:1px solid var(--bd);border-radius:10px;background:var(--card);color:var(--fg);font-size:1.05rem;line-height:1.5;text-align:center;overflow-wrap:anywhere;transition:border-color .15s,background .15s}
.ffx-c .fn-chip{display:inline-flex;flex-direction:column;align-items:center}
.ffx-c .name-btn:hover,.ffx-c .emo:hover,.ffx-c .fn-chip:hover{border-color:var(--ac);background:var(--soft)}
.ffx-c .is-copied{background:var(--ok)!important;border-color:var(--ok)!important;color:#fff!important}
.ffx-c .muted,.ffx-c .muted2{color:var(--mut)}
.ffx-c table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:520px}
.ffx-c th,.ffx-c td{border:1px solid var(--bd);padding:9px 11px;text-align:left;vertical-align:top;overflow-wrap:anywhere}
.ffx-c th{background:var(--soft)}
.ffx-tw{overflow-x:auto;max-width:100%;margin:0 0 1.2em;-webkit-overflow-scrolling:touch}
.ffx-tw>table{margin:0}
.ffx-c .fn-toc,.ffx-c .lg-toc{background:var(--card);border:1px solid var(--bd);border-radius:var(--rad);padding:14px 18px;margin:1.2em 0}
.ffx-c .fn-toc ul,.ffx-c .lg-toc ul{margin:0;padding-left:20px}
.ffx-c img,.ffx-c figure{border-radius:12px}
.ffx-c figure{margin:0 0 1.2em}
.ffx-c pre,.ffx-c .wp-block-code{background:#0f172a;color:#e2e8f0;border-radius:12px;padding:14px;overflow-x:auto;font-size:.9rem}
.ffx-c blockquote{margin:0 0 1em;padding:12px 18px;border-left:3px solid var(--ac2);background:#fff7ed;border-radius:0 12px 12px 0}
#ffx-ts{position:fixed;left:50%;bottom:calc(var(--tbh) + 20px);transform:translate(-50%,12px);background:#0f172a;color:#fff;padding:.5em 1.1em;border-radius:999px;font-size:.9rem;opacity:0;pointer-events:none;transition:.2s;z-index:80}
#ffx-ts.on{opacity:1;transform:translate(-50%,0)}
@media (min-width:769px){#ffx-ts{bottom:26px}}
@media (max-width:768px){
.ffx-lg span{font-size:1.05rem}
.ffx-ft{padding-bottom:calc(var(--tbh) + 28px)}
.ffx-c .fn-item,.ffx-c .name-btn{flex-basis:auto}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
