/* Uses the same neutral surfaces, controls and spacing as the dashboard. */
#view-manage-guild .menu-item[data-tab="tab-server-manager"] svg { position: absolute; width: 22px; height: 22px; left: 20px; top: 50%; transform: translateY(-50%); fill: none; stroke: currentColor; stroke-width: 1.8; }
.fsm-workspace { padding: var(--card-space-3); color: var(--card-text); min-width: 0; }
.fsm-header { display: flex; justify-content: space-between; gap: var(--card-space-4); align-items: center; margin-bottom: var(--card-space-5); }
.fsm-header p { margin-bottom: 0; }
.fsm-workspace [hidden] { display: none !important; }
.fsm-workspace h2 { font-size: 13px; font-weight: 600; margin: 0 0 var(--card-space-4); }
.fsm-workspace p, .fsm-workspace small { line-height: 1.65; }
.fsm-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 360px); gap: var(--card-space-4); align-items: stretch; }
.fsm-conversation, .fsm-inspector { border: 1px solid var(--card-line); border-radius: var(--card-radius); background: var(--card-surface); min-width: 0; overflow: hidden; }
.fsm-conversation { display: flex; flex-direction: column; height: clamp(440px, calc(100dvh - 190px), 820px); }
.fsm-conversation-header { padding: var(--card-space-4) var(--card-space-5); display: flex; justify-content: space-between; border-bottom: 1px solid var(--card-line); font-size: 13px; font-weight: 600; }
#fsm-conversation-state { color: var(--card-muted); font-size: 12px; font-weight: 400; }
#fsm-messages { flex: 1; min-height: 0; overflow-y: auto; padding: var(--card-space-5); scrollbar-width: thin; scrollbar-color: var(--card-selected) transparent; }
.fsm-empty { display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; height: 100%; gap: var(--card-space-2); color: var(--card-secondary); }
.fsm-empty svg { width: 28px; height: 28px; stroke: currentColor; fill: none; stroke-width: 1.4; margin-bottom: var(--card-space-3); }
.fsm-empty strong { color: var(--card-text); font-size: 15px; font-weight: 500; }
.fsm-empty p { margin: 0; font-size: 13px; }
.fsm-message { padding-bottom: var(--card-space-5); overflow-wrap: anywhere; }
.fsm-message:last-child { padding-bottom: 0; }
.fsm-message strong { display: block; color: var(--card-muted); font-size: 11px; font-weight: 500; margin-bottom: var(--card-space-2); }
.fsm-message p { color: var(--card-text); font-size: 13px; white-space: pre-wrap; margin: 0; }
.fsm-message[data-role="user"] { margin-left: var(--card-space-6); padding: var(--card-space-3) var(--card-space-4); margin-bottom: var(--card-space-5); background: var(--card-raised); border-radius: var(--card-control-radius); }
#fsm-chat-form { margin: var(--card-space-4); border: 1px solid var(--card-line-interactive); background: var(--card-page); border-radius: var(--card-radius); padding: var(--card-space-3); }
#fsm-chat-form:focus-within { border-color: var(--card-muted); }
#fsm-input { display: block; width: 100%; min-height: 50px; max-height: 180px; resize: vertical; background: transparent; color: var(--card-text); border: 0; padding: var(--card-space-1); font: inherit; font-size: 13px; line-height: 1.6; box-sizing: border-box; outline: none; }
#fsm-input::placeholder { color: var(--card-muted); }
.fsm-composer-footer { display: flex; align-items: center; justify-content: space-between; gap: var(--card-space-2); margin-top: var(--card-space-2); }
.fsm-composer-footer small { color: var(--card-muted); font-size: 11px; }
.fsm-workspace .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--card-space-2); min-height: 32px; padding: 8px 12px; border-radius: var(--card-control-radius); font: inherit; font-size: 12px; cursor: pointer; box-shadow: none; transform: none; white-space: nowrap; }
.fsm-workspace .btn-primary { background: var(--card-text); color: var(--card-page); border-color: var(--card-text); }
.fsm-workspace .btn-primary:hover:not(:disabled) { opacity: .9; }
.fsm-workspace .btn-secondary { background: transparent; color: var(--card-secondary); border: 1px solid var(--card-line-interactive); }
.fsm-workspace button:disabled { opacity: .4; cursor: not-allowed; }
.fsm-workspace :is(button, select, input):focus-visible { outline: 2px solid var(--card-muted); outline-offset: 3px; }
.fsm-inspector { display: flex; flex-direction: column; max-height: clamp(440px, calc(100dvh - 190px), 820px); }
.fsm-inspector-tabs { display: flex; border-bottom: 1px solid var(--card-line); padding: 0 var(--card-space-3); flex-shrink: 0; }
.fsm-inspector-tabs button { position: relative; flex: 1; padding: 17px 6px; background: transparent; border: 0; color: var(--card-muted); font: inherit; font-size: 12px; cursor: pointer; }
.fsm-inspector-tabs button[aria-selected="true"] { color: var(--card-text); }
.fsm-inspector-tabs button[aria-selected="true"]::after { content: ''; position: absolute; left: 10px; right: 10px; bottom: -1px; height: 2px; background: var(--card-text); }
.fsm-inspector-panel { padding: var(--card-space-5); overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--card-selected) transparent; }
.fsm-panel-caption, .fsm-review-note { color: var(--card-muted); font-size: 11px; margin: 0 0 var(--card-space-4); }
.fsm-notice { padding: var(--card-space-3) var(--card-space-4); margin: 0 0 var(--card-space-4); border: 1px solid var(--card-line-interactive); border-radius: var(--card-control-radius); color: var(--card-secondary); font-size: 12px; }
.fsm-notice.is-error { color: var(--card-negative); }
.fsm-change { padding: var(--card-space-4) 0; border-bottom: 1px solid var(--card-line); }
.fsm-change:first-child { padding-top: 0; }
.fsm-change[data-destructive="true"] summary, #fsm-delete-ack { color: var(--card-negative); }
.fsm-change summary { cursor: pointer; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.fsm-change summary small { color: var(--card-muted); font-size: 11px; margin-right: var(--card-space-2); }
.fsm-change-content { padding-top: var(--card-space-3); }
.fsm-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.fsm-setting { margin: 0 0 var(--card-space-3); font-size: 12px; overflow-wrap: anywhere; }
.fsm-setting dt { color: var(--card-muted); font-size: 11px; margin-bottom: var(--card-space-1); }
.fsm-setting dd { margin: 0; color: var(--card-secondary); white-space: pre-wrap; }
.fsm-setting del { color: var(--card-muted); }
.fsm-setting ins { text-decoration: none; color: var(--card-text); }
#fsm-approval { padding-top: var(--card-space-4); }
.fsm-ack { display: flex; align-items: flex-start; gap: var(--card-space-2); font-size: 12px; color: var(--card-secondary); margin-bottom: var(--card-space-4); }
.fsm-ack input { accent-color: var(--card-knob); margin-top: 3px; }
#fsm-apply, #fsm-cancel { width: 100%; }
#fsm-cancel { margin-top: var(--card-space-4); color: var(--card-negative); }
#fsm-job:not(:empty) { margin-top: var(--card-space-5); border-top: 1px solid var(--card-line); padding-top: var(--card-space-4); }
#fsm-job strong { font-size: 12px; font-weight: 500; }
#fsm-job p { color: var(--card-secondary); font-size: 12px; }
.fsm-job-step { display: flex; gap: var(--card-space-2); font-size: 11px; color: var(--card-muted); line-height: 1.6; padding: var(--card-space-2) 0; overflow-wrap: anywhere; }
.fsm-job-step[data-state="done"] { color: var(--card-secondary); }
.fsm-job-step[data-state="failed"] { color: var(--card-negative); }
.fsm-tree-row, .fsm-role-row { padding: var(--card-space-2) 0; font-size: 12px; overflow-wrap: anywhere; }
.fsm-tree-row[data-kind="category"] { margin-top: var(--card-space-3); color: var(--card-muted); font-size: 11px; }
.fsm-tree-row[data-kind="text"], .fsm-tree-row[data-kind="voice"] { padding-left: var(--card-space-3); }
.fsm-tree-row.is-proposed::after, .fsm-role-row.is-proposed::after { content: ' · Draft'; color: var(--card-muted); font-size: 10px; }
.fsm-role-heading { margin-top: var(--card-space-5) !important; }
#fsm-panel-access > label { display: block; color: var(--card-secondary); font-size: 12px; margin-bottom: var(--card-space-3); }
#fsm-preview-role { width: 100%; background: var(--card-raised); color: var(--card-text); border: 1px solid var(--card-line-interactive); border-radius: var(--card-control-radius); padding: 10px; font: inherit; font-size: 12px; margin-bottom: var(--card-space-3); }
.fsm-access-row { display: grid; grid-template-columns: minmax(60px, 1fr) repeat(3, 38px); gap: var(--card-space-2); padding: var(--card-space-3) 0; border-bottom: 1px solid var(--card-line); font-size: 11px; }
.fsm-access-row span { overflow-wrap: anywhere; }
.fsm-inspector-panel > .fsm-empty { min-height: 220px; }
#fsm-level-config { color: var(--card-secondary); font-size: 12px; }
#fsm-level-config .fsm-setting { padding-bottom: var(--card-space-3); border-bottom: 1px solid var(--card-line); }
@media (max-width: 1100px) { .fsm-layout { grid-template-columns: minmax(0, 1fr) 300px; } .fsm-inspector-panel { padding: var(--card-space-4); } }
@media (max-width: 950px) { .fsm-layout { grid-template-columns: minmax(0, 1fr); } .fsm-conversation { height: max(420px, calc(100dvh - 200px)); } .fsm-inspector { max-height: none; } .fsm-inspector-panel { max-height: 520px; } .fsm-workspace { padding: var(--card-space-2); } }
@media (prefers-reduced-motion: reduce) { .fsm-workspace * { scroll-behavior: auto !important; transition: none !important; } }
