.fk-box{fill:var(--color-base-100,#222);stroke:var(--color-base-300,#3a3a3a);stroke-width:1.5}
.fk-accent{fill:var(--color-base-100,#222);stroke:var(--color-fmv-gold,#C5A028);stroke-width:2}
.fk-soft{fill:var(--color-base-200,#1a1a1a);stroke:var(--color-base-300,#3a3a3a);stroke-width:1.5}
.fk-t{fill:var(--color-base-content,#e7e7e7);font-family:var(--font-body,Inter,system-ui,sans-serif)}
.fk-sub{fill:var(--color-fmv-muted,#9aa0a6);font-family:var(--font-body,Inter,system-ui,sans-serif)}
.fk-hd{fill:var(--color-fmv-gold-text,#d8b65a);font-family:var(--font-body,Inter,system-ui,sans-serif);font-weight:700;letter-spacing:.12em}
.fk-line{stroke:var(--color-fmv-muted,#7a7f85);stroke-width:1.6;fill:none}
.fk-line-a{stroke:var(--color-fmv-gold,#C5A028);stroke-width:2;fill:none}
.fk-elabel{fill:var(--color-fmv-muted,#9aa0a6);font-family:var(--font-body,Inter,system-ui,sans-serif);paint-order:stroke;stroke:var(--color-base-100,#222);stroke-width:3;stroke-linejoin:round}
.fk-dot{fill:var(--color-fmv-gold,#C5A028)}
.fk-link{cursor:pointer}
.fk-link .fk-linkico{stroke:var(--color-fmv-muted,#9aa0a6);transition:stroke .15s}
.fk-link:hover .fk-linkico{stroke:var(--color-fmv-gold,#C5A028)}
.fk-link:hover rect{fill:var(--color-base-200,rgba(255,255,255,.04))}
.fk-dots circle{filter:drop-shadow(0 0 3.5px var(--color-fmv-gold,#C5A028))}
@media (prefers-reduced-motion: reduce){ .fk-dots{display:none} }
.fk-node{cursor:grab;touch-action:none}
.fk-node.fk-drag{cursor:grabbing}
svg.fk-svg{overflow:visible}
svg.fk-svg text{user-select:none}
.fk-selbox{fill:none;stroke:var(--color-fmv-gold,#C5A028);stroke-width:2;stroke-dasharray:5 4;pointer-events:none}
#fk-toolbar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);display:flex;gap:.5rem;align-items:center;background:var(--color-base-100,#222);border:1px solid var(--color-base-300,#3a3a3a);border-radius:.6rem;padding:.4rem .6rem;font-size:.78rem;color:var(--color-fmv-muted,#9aa0a6);box-shadow:0 6px 20px rgba(0,0,0,.35);z-index:50}
#fk-toolbar .fk-tb-brand{font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-fmv-gold-text,#d8b65a);font-size:.7rem}
#fk-toolbar .fk-tb-sep{width:1px;height:18px;background:var(--color-base-300,#3a3a3a)}
#fk-toolbar .fk-tb-group{display:flex;gap:.25rem;align-items:center}
#fk-toolbar .fk-tb-lbl{font-size:.7rem;opacity:.8;margin:0 .15rem}
#fk-toolbar button{background:transparent;border:1px solid var(--color-base-300,#3a3a3a);color:var(--color-fmv-muted,#9aa0a6);border-radius:.35rem;padding:.18rem .5rem;cursor:pointer;font-size:.82rem;line-height:1}
#fk-toolbar button:hover{color:var(--color-fmv-gold,#C5A028);border-color:var(--color-fmv-gold,#C5A028)}
#fk-toolbar .fk-tb-count{color:var(--color-fmv-gold-text,#d8b65a);font-size:.72rem;min-width:64px;text-align:right}
.fk-toast{position:fixed;left:50%;bottom:64px;transform:translateX(-50%) translateY(8px);background:var(--color-base-100,#222);border:1px solid var(--color-fmv-gold,#C5A028);color:var(--color-base-content,#e7e7e7);padding:.5rem .8rem;border-radius:.5rem;font-size:.8rem;opacity:0;transition:opacity .25s,transform .25s;z-index:60;pointer-events:none}
.fk-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.fk-modal{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:70;display:flex;align-items:center;justify-content:center;padding:2rem}
.fk-modal-box{background:var(--color-base-100,#222);border:1px solid var(--color-base-300,#3a3a3a);border-radius:.7rem;box-shadow:0 10px 40px rgba(0,0,0,.5);width:min(820px,92vw);max-height:84vh;display:flex;flex-direction:column;padding:1rem 1.1rem}
.fk-modal-hd{font-weight:700;color:var(--color-fmv-gold-text,#d8b65a);font-size:.9rem;margin-bottom:.6rem}
.fk-modal-ta{flex:1;min-height:46vh;width:100%;resize:vertical;background:var(--color-base-200,#1a1a1a);color:var(--color-base-content,#e7e7e7);border:1px solid var(--color-base-300,#3a3a3a);border-radius:.5rem;padding:.7rem .8rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.8rem;line-height:1.5;box-sizing:border-box}
.fk-modal-ft{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:.7rem}
.fk-modal-note{font-size:.74rem;color:var(--color-fmv-muted,#9aa0a6)}
.fk-modal-ft button{background:transparent;border:1px solid var(--color-base-300,#3a3a3a);color:var(--color-fmv-muted,#9aa0a6);border-radius:.4rem;padding:.3rem .8rem;cursor:pointer;font-size:.82rem;margin-left:.4rem}
.fk-modal-ft button:hover{color:var(--color-fmv-gold,#C5A028);border-color:var(--color-fmv-gold,#C5A028)}
