/* Forge components — every value comes from tokens.css */
.fg{font-family:var(--font-sans);color:var(--ink);-webkit-font-smoothing:antialiased}
.fg-btn{display:inline-flex;align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-3);border-radius:var(--radius-sm);font:500 13px/1 var(--font-sans);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}
.fg-btn:focus-visible{outline:2px solid var(--rust);outline-offset:2px}
.fg-btn[disabled]{opacity:.45;cursor:not-allowed}
.fg-btn--primary{background:var(--rust);color:var(--on-rust);font-weight:600}
.fg-btn--primary:hover:not([disabled]){background:var(--rust-hover)}
.fg-btn--secondary{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.fg-btn--secondary:hover:not([disabled]){background:var(--surface-raised)}
.fg-btn--ghost{background:transparent;color:var(--ink-muted)}
.fg-btn--ghost:hover:not([disabled]){color:var(--ink);background:var(--surface-raised)}
.fg-btn--danger{background:transparent;color:var(--danger);border-color:var(--line-strong)}
.fg-btn--danger:hover:not([disabled]){border-color:var(--danger)}
.fg-btn--sm{height:28px;padding:0 var(--space-2);font-size:12px}
.fg-btn--lg{height:44px;padding:0 var(--space-4);font-size:14px}
.fg-btn kbd{font:400 11px/1 var(--font-mono);opacity:.7;margin-left:var(--space-1)}
.fg-status{display:inline-flex;align-items:center;gap:var(--space-2);font:500 12px/1 var(--font-mono);letter-spacing:.01em;color:var(--fg-c)}
.fg-status i{width:8px;height:8px;border-radius:50%;background:var(--fg-c);flex:none}
.fg-status--pulse i{box-shadow:0 0 0 3px color-mix(in srgb,var(--fg-c) 25%,transparent)}
.fg-status--ok{--fg-c:var(--ok)}.fg-status--warn{--fg-c:var(--warn)}.fg-status--danger{--fg-c:var(--danger)}.fg-status--info{--fg-c:var(--info)}
.fg-status--chip{height:24px;padding:0 var(--space-2);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}
.fg-metric{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}
.fg-metric__k{font:500 11px/16px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}
.fg-metric__v{font:500 32px/1 var(--font-mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.fg-metric__v small{font-size:13px;color:var(--ink-muted);letter-spacing:0;margin-left:4px}
.fg-metric__bar{display:grid;grid-template-columns:repeat(20,1fr);gap:2px}
.fg-metric__bar span{height:6px;background:var(--line);border-radius:1px}
.fg-metric__bar span.on{background:var(--fg-c,var(--rust))}
.fg-field{display:flex;flex-direction:column;gap:6px;font:500 12px/16px var(--font-sans);color:var(--ink-muted)}
.fg-field input{height:36px;padding:0 var(--space-3);background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--ink);font:400 13px var(--font-mono)}
.fg-field input:focus{outline:none;border-color:var(--rust);box-shadow:0 0 0 1px var(--rust)}
.fg-field--error input{border-color:var(--danger)}
.fg-field__hint{font-weight:400;color:var(--ink-muted)}
.fg-field--error .fg-field__hint{color:var(--danger)}
.fg-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--line);overflow-x:auto}
.fg-tabs button{height:40px;padding:0 var(--space-3);background:none;border:0;border-bottom:2px solid transparent;color:var(--ink-muted);font:400 14px var(--font-sans);cursor:pointer;display:flex;gap:6px;align-items:center}
.fg-tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--rust);font-weight:500}
.fg-tabs button span{font:400 11px var(--font-mono);color:var(--ink-muted)}
.fg-apptag{display:inline-flex;align-items:center;gap:var(--space-2);font:500 13px var(--font-sans);color:var(--ink)}
.fg-apptag i{width:8px;height:8px;border-radius:2px;background:var(--fg-a);flex:none}
.fg-apptag--lg i{width:12px;height:12px;border-radius:3px}
.fg-panel{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4)}
.fg-panel__head{display:flex;align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-3)}
.fg-panel__n{font:500 11px var(--font-mono);color:var(--rust)}
.fg-panel__t{font:500 11px/16px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}
.fg-panel--ticks{border-color:transparent;border-radius:0;background:var(--surface)}
.fg-panel--ticks::before,.fg-panel--ticks::after{content:"";position:absolute;width:10px;height:10px;border:1px solid var(--ink-muted);pointer-events:none}
.fg-panel--ticks::before{top:-1px;left:-1px;border-right:0;border-bottom:0}
.fg-panel--ticks::after{bottom:-1px;right:-1px;border-left:0;border-top:0}
