:root {
  color: #18251f;
  background: #edf3f0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
  --fs-green-950: #11284a;
  --fs-green-700: #2563a8;
  --fs-green-100: #e4eefb;
  --fs-line: #c8d6e8;
  --fs-line-soft: #e4ebf5;
  --fs-surface: #fff;
  --fs-workspace-bg: #f4f7f6;
  --fs-bg: #f4f7f6;
  --fs-text: #18251f;
  --fs-text-muted: #5c6f6a;
  --fs-accent: #2563a8;
  --fs-accent-hover: #1d4f86;
  --fs-accent-soft: #e0ecfb;
  --fs-accent-ink: #fff;
  --fs-radius-sm: .5rem;
  --fs-radius-md: .5rem;
  --fs-radius-lg: .65rem;
  --fs-radius-xl: .85rem;
  --fs-shadow-sm: 0 1px 2px rgb(17 40 74 / 6%);
  --fs-shadow-md: 0 6px 18px rgb(17 40 74 / 8%);
  --fs-shadow-lg: 0 1.2rem 3rem rgb(17 40 74 / 10%);
  --fs-sidebar-bg: #11284a;
  --fs-sidebar-text: #f3f7f6;
  --fs-sidebar-muted: #9fb6b1;
  --fs-sidebar-active-bg: #fff;
  --fs-sidebar-active-text: #11284a;
}

:root[data-sidebar-palette="green"] { --fs-sidebar-bg: #153d37; --fs-sidebar-text: #eef7f4; --fs-sidebar-muted: #a9cbc1; --fs-sidebar-active-text: #153d37; }
:root[data-sidebar-palette="navy"] { --fs-sidebar-bg: #15243d; --fs-sidebar-text: #f0f4fb; --fs-sidebar-muted: #aabbd8; --fs-sidebar-active-text: #15243d; }
:root[data-sidebar-palette="graphite"] { --fs-sidebar-bg: #303332; --fs-sidebar-text: #f4f5f5; --fs-sidebar-muted: #bdc3c1; --fs-sidebar-active-text: #292c2b; }
:root[data-sidebar-palette="green"] { --fs-accent:#13866f;--fs-accent-hover:#0d705d;--fs-accent-soft:#d9efe7;--fs-workspace-bg:#f3f8f6;--fs-bg:#edf5f2; }
:root[data-sidebar-palette="navy"] { --fs-accent:#3568b5;--fs-accent-hover:#285492;--fs-accent-soft:#dfe9f8;--fs-workspace-bg:#f3f6fb;--fs-bg:#eaf0f8;--fs-green-950:#172c4c;--fs-green-700:#3568b5; }
:root[data-sidebar-palette="graphite"] { --fs-accent:#626b68;--fs-accent-hover:#464d4b;--fs-accent-soft:#e5e8e7;--fs-workspace-bg:#f5f6f6;--fs-bg:#eceeed;--fs-green-950:#292c2b;--fs-green-700:#626b68; }
:root[data-color-mode="dark"] { color-scheme:dark;--fs-surface:#15201e;--fs-workspace-bg:#0f1716;--fs-bg:#0b1211;--fs-text:#eef5f2;--fs-text-muted:#a8bbb5;--fs-line:#344a44;--fs-line-soft:#263934;--fs-accent-soft:#173f35;background:#0b1211;color:#eef5f2; }
:root[data-color-mode="dark"] body { background:linear-gradient(150deg,#111d1a,var(--fs-bg)); }

* { box-sizing: border-box; }

body {
  min-width: 320px;
  min-height: 100dvh;
  margin: 0;
  display: grid;
  place-items: center;
  padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
  background:
    radial-gradient(circle at 15% 10%, rgb(255 255 255 / 90%), transparent 36rem),
    linear-gradient(150deg, #eef4fb, var(--fs-bg));
}

#app { width: min(100%, 66rem); }

.fs-card {
  width: 100%;
  padding: clamp(1.5rem, 5vw, 4.5rem);
  border: 1px solid var(--fs-line-soft);
  border-radius: var(--fs-radius-xl);
  background: var(--fs-surface);
  box-shadow: var(--fs-shadow-lg);
}

.fs-login { max-width: 34rem; margin-inline: auto; padding: clamp(1.4rem, 4vw, 2.4rem); }
.fs-login h1 { max-width: 12ch; font-size: clamp(2rem, 5vw, 3.25rem); }
.fs-login .fs-lead { margin-top: .8rem; font-size: 1rem; }
.fs-login .fs-confirm-form { margin-top: 1.35rem; }
.fs-login .fs-installation { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--fs-line-soft); }
.fs-eyebrow { margin: 0 0 1rem; color: var(--fs-accent); font-size: .78rem; font-weight: 800; letter-spacing: .16em; }
h1 { max-width: 18ch; margin: 0; color: var(--fs-text); font-size: clamp(2rem, 7vw, 4.75rem); line-height: 1.02; letter-spacing: -.045em; }
.fs-lead { max-width: 58ch; margin: 1.25rem 0 0; color: var(--fs-text-muted); font-size: clamp(1rem, 2.2vw, 1.25rem); line-height: 1.65; }
.fs-status { margin-top: clamp(2rem, 5vw, 3.5rem); padding: 1rem 1.125rem; border-radius: .8rem; background: var(--fs-green-100); color: var(--fs-green-950); line-height: 1.5; }
.fs-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.25rem; }
.fs-button { min-height: 2.75rem; padding: .72rem 1.1rem; border: 1px solid var(--fs-accent); border-radius: var(--fs-radius-md); background: var(--fs-accent); color: var(--fs-accent-ink); font: inherit; font-weight: 750; cursor: pointer; box-shadow: var(--fs-shadow-sm); }
.fs-button:focus-visible { outline: 3px solid var(--fs-accent-soft); outline-offset: 3px; }
.fs-button:hover { background: var(--fs-accent-hover); border-color: var(--fs-accent-hover); }
.fs-button-secondary { background: var(--fs-surface); color: var(--fs-accent); border: 1px solid var(--fs-line); box-shadow: none; }
.fs-button-secondary:hover { background: var(--fs-accent-soft); border-color: var(--fs-accent); }
.fs-preview-note { margin: .8rem 0 0; color: #617972; font-size: .85rem; }
.fs-shell { display: grid; gap: clamp(1.5rem, 4vw, 3rem); }
.fs-shell-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.fs-shell-title { font-size: clamp(2rem, 5vw, 3.7rem); }
.fs-module-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.fs-module { min-height: 12rem; padding: 1.25rem; border: 1px solid var(--fs-line); border-radius: 1rem; background: linear-gradient(150deg, var(--fs-surface), var(--fs-green-100)); }
.fs-module h2 { margin: 2.25rem 0 .5rem; font-size: 1.25rem; }
.fs-module p { margin: 0; color: #58716a; line-height: 1.45; }
.fs-module-index { color: var(--fs-green-700); font-size: .76rem; font-weight: 800; letter-spacing: .12em; }
.fs-conversation { display: grid; gap: 1rem; padding: clamp(1rem, 3vw, 2rem); border: 1px solid var(--fs-line); border-radius: 1rem; background: #edf4f1; }
.fs-message { max-width: min(82%, 34rem); padding: .9rem 1rem; border-radius: 1rem; line-height: 1.5; }
.fs-message p { margin: 0; }
.fs-message-client { justify-self: end; border-bottom-right-radius: .25rem; background: var(--fs-green-700); color: #fff; }
.fs-message-office { justify-self: start; border: 1px solid var(--fs-line); border-bottom-left-radius: .25rem; background: var(--fs-surface); }
.fs-document-card { margin-top: .8rem; padding: .9rem; border-left: 3px solid var(--fs-green-700); border-radius: .4rem; background: var(--fs-green-100); font-weight: 750; }
.fs-update { position: fixed; right: max(1rem, env(safe-area-inset-right)); bottom: max(1rem, env(safe-area-inset-bottom)); left: max(1rem, env(safe-area-inset-left)); display: flex; align-items: center; justify-content: space-between; gap: 1rem; max-width: 36rem; margin-inline: auto; padding: .8rem .9rem; border: 1px solid var(--fs-line); border-radius: .9rem; background: var(--fs-surface); box-shadow: 0 .8rem 2rem rgb(16 47 42 / 18%); z-index: 10; }
.fs-area-nav { display: flex; gap: .25rem; padding: .3rem; overflow-x: auto; border: 1px solid var(--fs-line); border-radius: .65rem; background: var(--fs-green-100); }
.fs-nav-item { min-height: 2.75rem; padding: .65rem .9rem; border: 0; border-radius: .6rem; background: transparent; color: var(--fs-green-950); font: inherit; font-weight: 700; white-space: nowrap; cursor: pointer; }
.fs-nav-item.is-active { background: var(--fs-surface); box-shadow: 0 .15rem .5rem rgb(16 47 42 / 10%); }
.fs-nav-unread { margin-left: auto; min-width: 1.4rem; padding: .1rem .4rem; border-radius: 999px; background: #c62828; color: #fff; font-size: .75rem; text-align: center; }
.fs-work-card.has-unread { border-left: .3rem solid #c62828; }
.fs-live-conversation-notice { position: fixed; z-index: 1000; right: 1rem; bottom: 1rem; display: flex; gap: .75rem; align-items: center; max-width: min(28rem,calc(100vw - 2rem)); padding: .85rem 1rem; border: 1px solid var(--fs-border); border-radius: .75rem; background: var(--fs-surface); color: var(--fs-green-950); box-shadow: 0 .75rem 2rem rgb(0 0 0 / 22%); }
.fs-invoice-list { display: grid; border-top: 1px solid var(--fs-line); }
.fs-invoice-row { display: flex; justify-content: space-between; gap: 1rem; padding: 1.15rem .25rem; border-bottom: 1px solid var(--fs-line); }
.fs-invoice-supplier { margin: 0; font-weight: 800; }
.fs-invoice-meta { margin: .35rem 0 0; color: #617972; font-size: .9rem; }
.fs-invoice-side { display: grid; justify-items: end; align-content: start; gap: .4rem; text-align: right; }
.fs-badge { display: inline-flex; width: fit-content; padding: .25rem .55rem; border-radius: 99rem; font-size: .75rem; font-weight: 800; }
.fs-badge.is-success { background:#d9eee7; color:#174b3f; border:1px solid #9bcbbb; }
.fs-badge.is-attention { background:#fff0c9; color:#684d0d; border:1px solid #e9c766; }
.fs-badge.is-danger { background:#fde3e1; color:#812923; border:1px solid #e2a19c; }
.fs-badge.is-info { background:#dfe8f5; color:#264f82; border:1px solid #a7bfdc; }
.fs-badge.is-muted { background:#e8eceb; color:#53635f; border:1px solid #cbd3d1; }
.fs-badge.is-neutral { background:#edf2f0; color:#31544b; border:1px solid #cbdad6; }
.fs-badge:focus-visible { outline:3px solid #2779bd; outline-offset:2px; }
.fs-badge-pending { background: #fff0c9; color: #684d0d; }
.fs-badge-validated { background: #d9eee7; color: #174b3f; }
.fs-badge-processing { background: #dfe8f5; color: #264f82; }
.fs-link-button { min-height: 2.75rem; padding: .35rem .15rem; border: 0; background: transparent; color: var(--fs-green-700); font: inherit; font-weight: 800; text-decoration: underline; text-underline-offset: .2em; cursor: pointer; }
.fs-original-panel, .fs-ocr-raw { padding: 1.25rem; border: 1px solid var(--fs-line); border-radius: 1rem; }
.fs-original-panel { min-height: 13rem; display: grid; align-content: center; background: linear-gradient(145deg, #f7f4ec, #fff); color: #24342f; }
.fs-original-panel h2, .fs-ocr-raw h3 { margin: 0 0 .65rem; }
.fs-original-panel p:last-child { margin: 0; color: #617972; }
.fs-ocr-raw pre { margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; color: #52665f; font: .88rem/1.6 ui-monospace, monospace; }
.fs-review-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.fs-review-column { padding: 1.25rem; border: 1px solid var(--fs-line); border-radius: 1rem; }
.fs-review-column.is-proposed { background: #f2f5f8; }
.fs-review-column.is-validated { border-color: #71a696; background: #edf7f3; }
.fs-review-column h3 { margin: 0 0 1rem; }
.fs-review-field { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem 0; border-top: 1px solid var(--fs-line); }
.fs-review-field span { color: #617972; }
.fs-review-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: .75rem; }
.fs-success { margin: -1.5rem 0 0; padding: .9rem; border-radius: .7rem; background: #d9eee7; color: #174b3f; }
.fs-upload-form { display: grid; gap: 1.25rem; }
.fs-upload-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.fs-upload-fields label { display: grid; gap: .45rem; font-weight: 750; }
.fs-upload-fields select { min-height: 2.75rem; padding: .65rem .75rem; border: 1px solid var(--fs-line); border-radius: .65rem; background: var(--fs-surface); color: var(--fs-green-950); font: inherit; }
.fs-upload-zone { min-height: 12rem; display: grid; place-content: center; gap: .5rem; padding: 1.5rem; border: 2px dashed #7da79c; border-radius: 1rem; background: var(--fs-green-100); text-align: center; cursor: pointer; }
.fs-upload-zone span { color: #567169; font-size: .9rem; }
.fs-file-input { width: 100%; margin-top: .75rem; font: inherit; }
.fs-file-feedback { display: grid; border-top: 1px solid var(--fs-line); }
.fs-file-row { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--fs-line); }
.fs-file-row.is-error { color: #9a302b; }
.fs-local-summary { padding: 1.25rem; border: 1px solid #71a696; border-radius: 1rem; background: #edf7f3; }
.fs-local-summary h2 { margin-top: 0; }
.fs-legal-warning { padding: 1.25rem; border: 2px solid #c68727; border-radius: 1rem; background: #fff7df; color: #49360f; }
.fs-legal-warning h2 { margin: 0 0 .75rem; }
.fs-legal-warning p:last-child { margin-bottom: 0; }
.fs-confirm-form { display: grid; gap: 1rem; }
.fs-confirm-form label { display: grid; gap: .5rem; font-weight: 750; }
.fs-confirm-form input, .fs-confirm-form select { min-height: 2.75rem; padding: .65rem .75rem; border: 1px solid var(--fs-line); border-radius: .65rem; background: var(--fs-surface); color: var(--fs-green-950); font: inherit; }
.fs-tax-editor { display: grid; gap: 1rem; padding: 1.25rem; border: 1px solid var(--fs-line); border-radius: 1rem; }
.fs-tax-editor h3 { margin: 0; }
.fs-tax-rows { display: grid; gap: .75rem; }
.fs-tax-row { display: grid; grid-template-columns: 1.25fr .7fr 1fr 1fr auto; gap: .65rem; align-items: center; }
.fs-tax-summary { padding: .9rem; border-radius: .7rem; line-height: 1.5; }
.fs-tax-summary.is-valid { background: #d9eee7; color: #174b3f; }
.fs-tax-summary.is-invalid { background: #fff0c9; color: #684d0d; }
.fs-incident-panel { display: grid; gap: 1rem; padding: 1.25rem; border: 1px solid #c68727; border-radius: 1rem; background: #fffaf0; }
.fs-incident-panel h2 { margin: 0; }
.fs-queue-filters { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr)); gap:.5rem; width:100%; max-width:100%; padding-bottom:.25rem; overflow-x:clip; }
.fs-queue-filters .fs-nav-item { width: 100%; min-width: 0; white-space: normal; line-height: 1.2; }
.fs-mailbox-controls { justify-content:flex-start; }
.fs-mailbox-controls .fs-button { flex:0 1 auto; }
.fs-duplicate-panel { display: grid; gap: 1rem; padding: 1.25rem; border: 1px solid #c68727; border-radius: 1rem; }
.fs-duplicate-panel h2, .fs-duplicate-card p { margin: 0; }
.fs-duplicate-card { display: grid; gap: .65rem; padding-top: 1rem; border-top: 1px solid var(--fs-line); }
.fs-duplicate-actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.fs-duplicate-actions input { flex: 1 1 16rem; min-height: 2.75rem; padding: .65rem .75rem; border: 1px solid var(--fs-line); border-radius: .65rem; background: var(--fs-surface); color: var(--fs-green-950); font: inherit; }
.fs-operations { display: grid; gap: 1rem; }
.fs-operations h2 { margin: 0; }
.fs-operations-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.fs-operation-card { display: grid; gap: .35rem; padding: 1rem; border: 1px solid var(--fs-line); border-radius: .8rem; background: var(--fs-green-100); }
.fs-operation-card strong { font-size: 1.8rem; }
.fs-operation-card span { color: #58716a; font-size: .85rem; }
.fs-operation-alerts { display: flex; flex-wrap: wrap; gap: .5rem; }
.fs-operation-alert { padding: .55rem .7rem; border: 1px solid #c68727; border-radius: 99rem; background: #fff7df; color: #684d0d; font: inherit; cursor: pointer; }
.fs-operation-alert.is-critical { border-color: #a23c36; background: #fde7e4; color: #79251f; }
.fs-assignment-status { margin: 0; padding: .8rem; border-radius: .7rem; background: #fff0c9; color: #684d0d; }
.fs-assignment-status.is-active { background: #d9eee7; color: #174b3f; }
.fs-history { display: grid; gap: 0; }
.fs-history h2 { margin: 0 0 1rem; }
.fs-history-event { position: relative; display: grid; grid-template-columns: 1.25rem 1fr auto; gap: .25rem .65rem; padding: 0 0 1.25rem; }
.fs-history-event::before { content: ''; position: absolute; top: .65rem; bottom: 0; left: .35rem; width: 1px; background: var(--fs-line); }
.fs-history-dot { z-index: 1; width: .75rem; height: .75rem; margin-top: .3rem; border: 2px solid var(--fs-surface); border-radius: 50%; background: var(--fs-green-700); }
.fs-history-event time { color: #617972; font-size: .82rem; }
.fs-history-event p { grid-column: 2 / -1; margin: 0; color: #58716a; font-size: .9rem; }
.fs-invoice-search { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr 1fr auto auto; gap: .65rem; align-items: center; }
.fs-invoice-search input, .fs-invoice-search select { min-width: 0; min-height: 2.75rem; padding: .65rem .75rem; border: 1px solid var(--fs-line); border-radius: .65rem; background: var(--fs-surface); color: var(--fs-green-950); font: inherit; }
.fs-search-next { margin-top: 1rem; }
.fs-export-panel { display: grid; gap: .8rem; padding: 1.25rem; border: 1px solid var(--fs-line); border-radius: 1rem; }
.fs-export-panel h2 { margin: 0; }
.fs-export-controls { display: flex; flex-wrap: wrap; gap: .65rem; }
.fs-export-controls input { flex: 1 1 12rem; min-height: 2.75rem; padding: .65rem .75rem; border: 1px solid var(--fs-line); border-radius: .65rem; background: var(--fs-surface); color: var(--fs-green-950); font: inherit; }
.fs-fiscal-profile-form { display: grid; grid-template-columns: 1.2fr 1fr 1.2fr 1fr 1.5fr auto; gap: .65rem; }
.fs-fiscal-profile-form input, .fs-fiscal-profile-form select { min-width: 0; min-height: 2.75rem; padding: .65rem .75rem; border: 1px solid var(--fs-line); border-radius: .65rem; background: var(--fs-surface); color: var(--fs-green-950); font: inherit; }
.fs-fiscal-profile-form p { grid-column: 1 / -1; }
.fs-profile-list { display: grid; border-top: 1px solid var(--fs-line); }
.fs-profile-row { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 1rem; padding: 1rem .25rem; border-bottom: 1px solid var(--fs-line); }
.fs-profile-row.is-current { background: var(--fs-green-100); }
.fs-period-list { display: grid; gap: .75rem; }
.fs-period-row { display: grid; grid-template-columns: 1.2fr 1.3fr auto 1.4fr auto; gap: .65rem; align-items: center; padding: 1rem; border: 1px solid var(--fs-line); border-radius: .8rem; }
.fs-period-row.is-closed { border-color: #c68727; background: #fffaf0; }
.fs-period-row input { min-width: 0; min-height: 2.75rem; padding: .65rem .75rem; border: 1px solid var(--fs-line); border-radius: .65rem; background: var(--fs-surface); color: var(--fs-green-950); font: inherit; }
.fs-retention-list { display: grid; gap: .75rem; }
.fs-retention-row { display: grid; grid-template-columns: 1.4fr 1fr auto 1.4fr auto auto; gap: .65rem; align-items: center; padding: 1rem; border: 1px solid var(--fs-line); border-radius: .8rem; }
.fs-retention-row input { min-width: 0; min-height: 2.75rem; padding: .65rem .75rem; border: 1px solid var(--fs-line); border-radius: .65rem; background: var(--fs-surface); color: var(--fs-green-950); font: inherit; }
.fs-metrics-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.fs-metric-card { display: grid; gap: .45rem; padding: 1rem; border: 1px solid var(--fs-line); border-radius: .8rem; background: var(--fs-green-100); }
.fs-metric-card.is-warning { border-color: #c68727; background: #fffaf0; }
.fs-circuit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.fs-circuit-card { display: grid; gap: .4rem; padding: 1rem; border: 1px solid #71a696; border-radius: .8rem; background: #edf7f3; }
.fs-circuit-card.is-open { border-color: #a23c36; background: #fde7e4; }
.fs-circuit-card.is-half_open { border-color: #c68727; background: #fffaf0; }
.fs-recovery-panel { padding: 1rem; border: 1px solid var(--fs-line); border-radius: .8rem; }
.fs-recovery-panel h2 { margin-top: 0; }

body:has(#app[data-audience="internal"]) { display: block; padding: 0; background: var(--fs-workspace-bg); }
body:has(#app[data-audience="client"]) { display:block; padding:clamp(1rem,2vw,2rem); background:var(--fs-workspace-bg); }
#app[data-audience="internal"] { width: 100%; min-height: 100dvh; }
#app[data-audience="client"] { width:min(100%,1180px); min-height:100dvh; margin-inline:auto; }
.fs-professional-layout { display: grid; grid-template-columns: 16.5rem minmax(0, 1fr); min-height: 100dvh; }
.fs-sidebar { position: sticky; top: 0; display: grid; grid-template-rows: auto 1fr auto auto; height: 100dvh; overflow: hidden; background: var(--fs-sidebar-bg); color: var(--fs-sidebar-text); box-shadow: .25rem 0 1.5rem rgb(16 47 42 / 12%); z-index: 3; }
.fs-sidebar-brand { display: grid; gap: .15rem; padding: 1.35rem 1.25rem; border-bottom: 1px solid rgb(255 255 255 / 12%); }
.fs-sidebar-brand strong { font-size: 1.1rem; letter-spacing: -.02em; }
.fs-sidebar-brand span { color: var(--fs-sidebar-muted); font-size: .67rem; font-weight: 800; letter-spacing: .16em; }
.fs-sidebar-nav { overflow-y: auto; padding: .75rem .65rem 1.5rem; scrollbar-width: thin; }
.fs-sidebar-group { display: grid; gap: .18rem; margin-bottom: 1rem; padding-bottom: .35rem; border-bottom: 1px solid rgb(255 255 255 / 8%); }
.fs-sidebar-group h2 { margin: .45rem .2rem .35rem; padding: .42rem .65rem; border-left: .22rem solid #6fc4ad; border-radius: .25rem; background: rgb(255 255 255 / 7%); color: var(--fs-sidebar-text); font-size: .67rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.fs-sidebar-item { display: grid; grid-template-columns: 1.9rem minmax(0, 1fr) auto; align-items: center; gap: .55rem; width: 100%; min-height: 2.55rem; padding: .48rem .65rem; border: 0; border-radius: .55rem; background: transparent; color: var(--fs-sidebar-text); font: inherit; font-size: .88rem; font-weight: 680; text-align: left; cursor: pointer; }
.fs-sidebar-item:hover { background: rgb(255 255 255 / 8%); }
.fs-sidebar-item.is-active { background: var(--fs-sidebar-active-bg); color: var(--fs-sidebar-active-text); box-shadow: 0 .35rem .9rem rgb(0 0 0 / 13%); }
.fs-sidebar-item.is-disabled { color: var(--fs-sidebar-muted); cursor: default; opacity: .7; }
.fs-sidebar-item small { color: inherit; font-size: .58rem; font-weight: 750; text-transform: uppercase; }
.fs-sidebar-icon { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border: 1px solid currentColor; border-radius: .48rem; font-size: .58rem; font-weight: 900; letter-spacing: .02em; opacity: .85; }
.fs-sidebar-footer { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .65rem; padding: .9rem .8rem; border-top: 1px solid rgb(255 255 255 / 12%); background: rgb(0 0 0 / 8%); }
.fs-user-avatar { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: #dcebe6; color: #153d37; font-size: .7rem; font-weight: 900; }
.fs-sidebar-identity { display: grid; min-width: 0; }
.fs-sidebar-identity strong, .fs-sidebar-identity small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fs-sidebar-identity strong { font-size: .75rem; }
.fs-sidebar-identity small { color: var(--fs-sidebar-muted); font-size: .62rem; }
.fs-sidebar-signout { padding: .4rem; border: 0; background: transparent; color: #fff; font: inherit; font-size: .68rem; font-weight: 800; cursor: pointer; }
.fs-appearance { margin: .45rem .65rem .7rem; border: 1px solid rgb(255 255 255 / 18%); border-radius: .65rem; background: rgb(255 255 255 / 5%); }
.fs-appearance summary { padding: .7rem .8rem; color: var(--fs-sidebar-text); font-size: .78rem; font-weight: 800; cursor: pointer; }
.fs-appearance-fields { display: grid; gap: .65rem; padding: 0 .75rem .75rem; }
.fs-appearance-fields label { display: grid; grid-template-columns: 1fr minmax(7rem, auto); align-items: center; gap: .5rem; color: var(--fs-sidebar-muted); font-size: .7rem; font-weight: 750; }
.fs-appearance-fields select { min-width: 0; min-height: 2rem; padding: .3rem .4rem; border: 1px solid rgb(255 255 255 / 22%); border-radius: .4rem; background: var(--fs-sidebar-bg); color: var(--fs-sidebar-text); font: inherit; font-size: .72rem; }
.fs-appearance-status { min-height: 1em; margin: 0; color: var(--fs-sidebar-muted); font-size: .62rem; }
.fs-appearance-fields .fs-button { width:100%;min-height:2.2rem;padding:.45rem .6rem;font-size:.7rem; }
.fs-compliance-sheet thead th { position:sticky;top:0;z-index:2;background:var(--fs-surface); }
.fs-compliance-sheet th:first-child { position:sticky;left:0;z-index:3;min-width:15rem;background:var(--fs-surface); }
.fs-compliance-sheet td { min-width:7rem;text-align:center;vertical-align:middle;padding:.55rem .65rem; }
.fs-sheet-time { display:block;margin-top:.25rem;color:var(--fs-text-muted);font-size:.62rem;white-space:nowrap; }
.fs-sidebar { grid-template-rows:auto auto 1fr auto auto; }
.fs-sidebar-search { width:calc(100% - 1.3rem);margin:.75rem .65rem .25rem;min-height:2.35rem;padding:.55rem .75rem;border:1px solid rgb(255 255 255 / 16%);border-radius:.75rem;background:rgb(255 255 255 / 6%);color:var(--fs-sidebar-text);font:inherit;outline:none; }
.fs-sidebar-search::placeholder { color:var(--fs-sidebar-muted); }
.fs-sidebar-search:focus { border-color:#6fc4ad;box-shadow:0 0 0 3px rgb(111 196 173 / 13%); }
.fs-sidebar-search-results { display:grid; gap:.2rem; max-height:18rem; margin:.25rem .65rem; padding:.35rem; overflow:auto; border:1px solid rgb(255 255 255 / 14%); border-radius:.7rem; background:rgb(0 0 0 / 18%); }
.fs-sidebar-search-results[hidden] { display:none; }
.fs-sidebar-search-results .fs-global-search-option { display:grid; gap:.1rem; color:var(--fs-sidebar-text); }
.fs-sidebar-search-results .fs-global-search-option small { color:var(--fs-sidebar-muted); }
.fs-sidebar-group { border-bottom:0; }
.fs-sidebar-group h2 { padding:.15rem .6rem;border:0;background:transparent;color:var(--fs-sidebar-muted); }
.fs-sidebar-icon { border:0!important;background:rgb(255 255 255 / 7%)!important;font-size:1rem!important; }
.fs-sidebar-icon svg { width:1.15rem;height:1.15rem;display:block; }
.fs-sidebar-item.is-active { border-radius:.72rem!important;background:color-mix(in srgb,var(--fs-sidebar-highlight,#16a37f) 36%,transparent)!important;box-shadow:inset 3px 0 0 var(--fs-sidebar-highlight,#7be0bf)!important; }
.fs-sidebar-item.is-active .fs-sidebar-icon { color:#fff!important;background:color-mix(in srgb,var(--fs-sidebar-highlight,#16a37f) 70%,#0e2326)!important; }
.fs-appearance-fields input[type="color"] { width:3.2rem;height:2rem;padding:.15rem;border:1px solid rgb(255 255 255 / 22%);border-radius:.45rem;background:transparent;cursor:pointer; }
.fs-workspace-main { min-width: 0; padding: clamp(1.25rem, 3vw, 2.5rem); }
.fs-workspace-content.fs-card { max-width: 92rem; margin: 0 auto; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.fs-professional-layout .fs-area-nav { display: none; }
.fs-professional-layout .fs-shell-header { align-items: center; padding-bottom: 1rem; border-bottom: 1px solid #dbe4e1; }
.fs-professional-layout .fs-shell-header .fs-button-secondary { display: none; }
.fs-professional-layout .fs-shell-title { font-size: clamp(1.8rem, 3vw, 2.8rem); }
.fs-professional-layout .fs-lead { margin-top: -.75rem; font-size: 1rem; }
.fs-dashboard { gap: 1.4rem; }
.fs-dashboard-welcome h2 { margin: 0; color: var(--fs-green-950); font-size: clamp(1.35rem, 2.5vw, 2rem); }
.fs-dashboard-welcome p { margin: .35rem 0 0; color: #70847f; text-transform: capitalize; }
.fs-dashboard-stats { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; }
.fs-dashboard-stat { display: grid; gap: .35rem; min-height: 8.5rem; padding: 1.15rem; border: 1px solid var(--fs-line); border-radius: .85rem; background: var(--fs-surface); box-shadow: 0 .3rem 1rem rgb(16 47 42 / 5%); }
.fs-dashboard-stat span { color: #738781; font-size: .72rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.fs-dashboard-stat strong { align-self: center; color: var(--fs-green-950); font-size: 2.25rem; }
.fs-dashboard-stat small { color: #859690; }
.fs-dashboard-stat.is-warning strong { color: #a6600b; }
.fs-dashboard-stat.is-danger strong { color: #ae3029; }
.fs-dashboard-panels { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(22rem, .9fr); gap: 1rem; align-items: start; }
.fs-dashboard-panel { padding: 1.25rem; border: 1px solid var(--fs-line); border-radius: .85rem; background: var(--fs-surface); box-shadow: 0 .3rem 1rem rgb(16 47 42 / 5%); }
.fs-dashboard-panel h2 { margin: 0 0 1rem; padding-bottom: .75rem; border-bottom: 1px solid var(--fs-line); color: var(--fs-green-950); font-size: .85rem; letter-spacing: .05em; text-transform: uppercase; }
.fs-empty-state { margin: 0; padding: 2rem 1rem; color: #758a84; text-align: center; }
.fs-work-list { display: grid; }
.fs-work-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .7rem; min-height: 3.5rem; padding: .65rem .15rem; border: 0; border-bottom: 1px solid #e5ebe9; background: transparent; color: #1c3731; font: inherit; text-align: left; cursor: pointer; }
.fs-work-row:last-child { border-bottom: 0; }
.fs-work-row small { color: #7a8d88; }
.fs-mailbox-email-row { display: grid; grid-template-columns: minmax(8.5rem,.7fr) minmax(10rem,1fr) minmax(16rem,1.6fr) minmax(10rem,1fr) minmax(10rem,1fr) auto; align-items: center; gap: .75rem; padding: .8rem .15rem; border-bottom: 1px solid #e5ebe9; overflow-wrap: anywhere; }
.fs-mailbox-history-row { display: grid; grid-template-columns: minmax(9rem,.8fr) minmax(6rem,.5fr) minmax(18rem,2fr) auto; align-items: center; gap: .75rem; padding: .8rem .15rem; border-bottom: 1px solid #e5ebe9; }
.fs-work-dot { width: .55rem; height: .55rem; border-radius: 50%; background: #377c6d; }
.fs-work-dot.is-warning { background: #dd7c10; }
.fs-work-dot.is-danger { background: #d23730; }
.fs-dashboard-shortcuts { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
.fs-dashboard-shortcut { display: grid; gap: .25rem; min-height: 5rem; padding: .9rem; border: 1px solid var(--fs-line); border-radius: .7rem; background: var(--fs-workspace-bg); color: var(--fs-green-950); font: inherit; text-align: left; cursor: pointer; }
.fs-dashboard-shortcut:hover { border-color: #77a99c; background: #edf6f3; }
.fs-dashboard-shortcut span { color: #70847f; font-size: .8rem; }
.fs-professional-list { display: grid; border: 1px solid var(--fs-line); border-radius: .85rem; overflow: hidden; background: var(--fs-surface); box-shadow: 0 .3rem 1rem rgb(16 47 42 / 5%); }
.fs-professional-row { display: grid; grid-template-columns: minmax(16rem, 1.4fr) minmax(10rem, 1fr) minmax(12rem, auto); align-items: center; gap: 1rem; padding: 1rem 1.15rem; border-bottom: 1px solid #e2e9e7; }
.fs-professional-row:last-child { border-bottom: 0; }
.fs-professional-row span { color: #45655d; }
.fs-professional-row small { color: #7a8d88; text-align: right; }
.fs-client-open { padding: 0; border: 0; background: transparent; color: var(--fs-green-950); font: inherit; font-weight: 800; text-align: left; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: .2rem; cursor: pointer; }
.fs-client-open:hover { text-decoration-color: currentColor; }
.fs-create-panel { padding: 1rem; border: 1px solid var(--fs-line); border-radius: .85rem; background: var(--fs-surface); }
.fs-create-panel summary { color: var(--fs-green-950); font-weight: 800; cursor: pointer; }
.fs-client-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-top: 1rem; }
.fs-client-form label, .fs-contact-form label { display: grid; gap: .4rem; color: var(--fs-green-950); font-size: .8rem; font-weight: 750; }
.fs-client-form input, .fs-client-form select, .fs-client-form textarea, .fs-contact-form input { min-width: 0; min-height: 2.6rem; padding: .62rem .7rem; border: 1px solid var(--fs-line); border-radius: .6rem; background: var(--fs-surface); color: var(--fs-green-950); font: inherit; }
.fs-client-form textarea { resize: vertical; }
.fs-client-form .fs-button, .fs-client-form .fs-form-feedback { align-self: end; margin: 0; }
.fs-form-feedback { color: var(--fs-green-700); font-size: .82rem; }
.fs-client-summary { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .75rem; }
.fs-client-summary article { display: grid; gap: .4rem; min-height: 6.5rem; padding: 1rem; border: 1px solid var(--fs-line); border-radius: .75rem; background: var(--fs-surface); }
.fs-client-summary span { color: #70847f; font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.fs-client-summary strong { align-self: end; color: var(--fs-green-950); font-size: 1.25rem; overflow-wrap: anywhere; }
.fs-client-columns { display: grid; grid-template-columns: minmax(22rem, 1fr) minmax(24rem, 1fr); gap: 1rem; align-items: start; }
.fs-client-related { display: grid; gap: 1rem; }
.fs-client-panel { padding: 1.15rem; border: 1px solid var(--fs-line); border-radius: .85rem; background: var(--fs-surface); }
.fs-client-panel h2 { margin: 0 0 1rem; color: var(--fs-green-950); font-size: 1rem; }
.fs-contact-row { display: grid; grid-template-columns: 1fr 1fr; gap: .25rem .75rem; padding: .75rem 0; border-bottom: 1px solid var(--fs-line); }
.fs-contact-row small { grid-column: 1 / -1; color: #70847f; }
.fs-contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; margin-top: 1rem; }
.fs-checkbox { display: flex !important; align-items: center; grid-column: 1 / -1; }
.fs-checkbox input { min-height: auto; }
.fs-timeline-row { display: grid; grid-template-columns: auto 1fr auto; gap: .65rem; align-items: start; padding: .7rem 0; border-bottom: 1px solid var(--fs-line); }
.fs-timeline-row time { color: #70847f; font-size: .75rem; }
.fs-work-form { display: grid; grid-template-columns: 1.2fr 1.5fr .7fr 1fr; gap: .75rem; margin-top: 1rem; }
.fs-work-form label { display: grid; gap: .4rem; color: var(--fs-green-950); font-size: .8rem; font-weight: 750; }
.fs-work-form input, .fs-work-form select, .fs-work-form textarea { min-width: 0; min-height: 2.6rem; padding: .62rem .7rem; border: 1px solid var(--fs-line); border-radius: .6rem; background: var(--fs-surface); color: var(--fs-green-950); font: inherit; }
.fs-work-description { grid-column: 1 / -1; }
.fs-work-form .fs-button { align-self: end; }
.fs-work-management-list { display: grid; gap: .75rem; }
.fs-work-card { display: grid; grid-template-columns: minmax(16rem, 1.5fr) minmax(10rem, 1fr) minmax(12rem, auto) auto; align-items: center; gap: .75rem 1rem; padding: 1rem; border: 1px solid var(--fs-line); border-radius: .8rem; background: var(--fs-surface); }
.fs-work-card > div:first-child { display: flex; align-items: center; gap: .65rem; }
.fs-work-card p, .fs-work-card small { margin: 0; }
.fs-work-card small { color: #70847f; }
.fs-work-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; }
.fs-document-form { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; margin-top: 1rem; }
.fs-document-form label { display: grid; gap: .4rem; color: var(--fs-green-950); font-size: .8rem; font-weight: 750; }
.fs-document-form input,.fs-document-form select { min-width: 0; min-height: 2.6rem; padding: .62rem .7rem; border: 1px solid var(--fs-line); border-radius: .6rem; background: var(--fs-surface); color: var(--fs-green-950); font: inherit; }
.fs-document-filters input { width: 100%; min-height: 2.8rem; padding: .7rem .8rem; border: 1px solid var(--fs-line); border-radius: .65rem; background: var(--fs-surface); color: var(--fs-green-950); font: inherit; }
.fs-document-card-row { display: grid; grid-template-columns: 0 minmax(16rem,1.5fr) minmax(14rem,1fr) auto auto; align-items: center; gap: 1rem; padding: 1rem; border: 1px solid var(--fs-line); border-radius: .8rem; background: var(--fs-surface); }
.fs-document-card-row small { color: #70847f; }
.fs-conversation-thread { display: grid; gap: .75rem; padding: 1rem; border: 1px solid var(--fs-line); border-radius: .85rem; background: var(--fs-green-100); }
.fs-message-note { justify-self: stretch; max-width: 100%; border-left: 4px solid #c68727; border-radius: .65rem; background: #fff7df; color: #49360f; }
.fs-message small { display: block; margin-top: .4rem; font-size: .7rem; opacity: .8; }
.fs-compose,.fs-assistant-form { display: grid; gap: .75rem; padding: 1rem; border: 1px solid var(--fs-line); border-radius: .85rem; background: var(--fs-surface); }
.fs-compose textarea,.fs-assistant-form textarea,.fs-assistant-form select { min-height: 2.6rem; padding: .7rem; border: 1px solid var(--fs-line); border-radius: .6rem; background: var(--fs-surface); color: var(--fs-green-950); font: inherit; }
.fs-assistant-form label { display: grid; gap: .4rem; color: var(--fs-green-950); font-size: .8rem; font-weight: 750; }
:root[data-color-mode="dark"] .fs-message-note { background: #382b0e; color: #fff0c9; }
.fs-calendar-form { display: grid; grid-template-columns: 1.1fr 1.4fr .8fr 1fr 1fr; gap: .75rem; margin-top: 1rem; }
.fs-calendar-form label { display: grid; gap: .4rem; color: var(--fs-green-950); font-size: .8rem; font-weight: 750; }
.fs-calendar-form input,.fs-calendar-form select,.fs-procedure-card input { min-width: 0; min-height: 2.6rem; padding: .62rem .7rem; border: 1px solid var(--fs-line); border-radius: .6rem; background: var(--fs-surface); color: var(--fs-green-950); font: inherit; }
.fs-calendar-list { display: grid; gap: .65rem; }
.fs-calendar-card { display: grid; grid-template-columns: minmax(10rem,.8fr) minmax(15rem,1.5fr) minmax(12rem,1fr) auto auto; align-items: center; gap: 1rem; padding: 1rem; border: 1px solid var(--fs-line); border-radius: .8rem; background: var(--fs-surface); }
.fs-calendar-card time { color: var(--fs-green-700); font-weight: 800; }
.fs-calendar-card small,.fs-procedure-card small { color: #70847f; }
.fs-calendar-visual-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.fs-calendar-visual-head h2,.fs-calendar-visual-head p { margin:.15rem 0; }
.fs-calendar-visual-head input { min-height:2.5rem; padding:.45rem .65rem; border:1px solid var(--fs-line); border-radius:.55rem; background:var(--fs-surface); color:var(--fs-green-950); }
.fs-calendar-toolbar { display:grid; grid-template-columns:auto auto auto minmax(12rem,1fr) repeat(3,minmax(9rem,auto)); gap:.65rem; align-items:end; padding:1rem; border:1px solid var(--fs-line); border-radius:.85rem; background:var(--fs-surface); }
.fs-calendar-toolbar label { display:grid; gap:.3rem; font-size:.72rem; font-weight:800; }
.fs-calendar-toolbar select { min-height:2.55rem; padding:.45rem .6rem; border:1px solid var(--fs-line); border-radius:.55rem; background:var(--fs-surface); color:var(--fs-green-950); }
.fs-calendar-heading { align-self:center; text-align:center; text-transform:capitalize; }
.fs-calendar-editor[open] { border-color:#6b9f91; box-shadow:0 .4rem 1.2rem rgb(16 47 42 / 8%); }
.fs-calendar-canvas { overflow:auto; }
.fs-calendar-month { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border-top:1px solid var(--fs-line); border-left:1px solid var(--fs-line); }
.fs-calendar-weekday { padding:.55rem; text-align:center; font-size:.76rem; color:var(--fs-green-700); border-right:1px solid var(--fs-line); border-bottom:1px solid var(--fs-line); }
.fs-calendar-day { min-height:8rem; padding:.45rem; display:flex; flex-direction:column; gap:.3rem; border-right:1px solid var(--fs-line); border-bottom:1px solid var(--fs-line); background:var(--fs-surface); }
.fs-calendar-day.is-empty { background:color-mix(in srgb,var(--fs-surface) 75%,var(--fs-bg)); }
.fs-calendar-day > time { align-self:flex-end; font-weight:800; color:var(--fs-green-700); }
.fs-calendar-day-number,.fs-calendar-column-heading { align-self:stretch; padding:.3rem; border:0; background:transparent; color:var(--fs-green-700); font:inherit; font-weight:850; text-align:right; cursor:pointer; }
.fs-calendar-day-number:hover,.fs-calendar-column-heading:hover { background:var(--fs-green-100); }
.fs-calendar-event { width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:left; border:0; border-radius:.35rem; padding:.28rem .38rem; background:#e5eeec; color:var(--fs-green-950); cursor:pointer; font-size:.72rem; }
.fs-calendar-event.is-fiscal,.fs-calendar-event.is-deadline { background:#fff0c7; color:#725300; }
.fs-calendar-event.is-appointment { background:#dcebe6; color:#174b3f; }
.fs-calendar-event.is-meeting { background:#dfe8f5; color:#264f82; }
.fs-calendar-event.is-reminder { background:#eee7fa; color:#53357c; }
.fs-calendar-time-grid { display:grid; grid-template-columns:repeat(7,minmax(10rem,1fr)); min-width:64rem; border:1px solid var(--fs-line); }
.fs-calendar-time-grid.is-day { grid-template-columns:minmax(20rem,1fr); min-width:0; }
.fs-calendar-time-column { min-height:34rem; padding:.45rem; border-right:1px solid var(--fs-line); background:repeating-linear-gradient(to bottom,var(--fs-surface) 0,var(--fs-surface) 3.95rem,var(--fs-line) 4rem); }
.fs-calendar-time-column:last-child { border-right:0; }
.fs-calendar-time-column .fs-calendar-event { margin:.25rem 0; white-space:normal; }
.fs-procedure-card { display: grid; grid-template-columns: minmax(18rem,1.5fr) minmax(14rem,1fr) minmax(12rem,auto) minmax(14rem,auto); align-items: center; gap: 1rem; padding: 1rem; border: 1px solid var(--fs-line); border-radius: .8rem; background: var(--fs-surface); }
.fs-admin-matrix-controls { display:grid; grid-template-columns:minmax(16rem,1fr) auto auto; gap:1rem; align-items:center; }
.fs-admin-matrix-controls input[type="search"] { min-height:2.7rem; padding:.6rem .75rem; border:1px solid var(--fs-line); border-radius:.6rem; background:var(--fs-surface); color:var(--fs-green-950); }
.fs-admin-matrix { overflow:auto; border:1px solid var(--fs-line); border-radius:.8rem; background:var(--fs-surface); }
.fs-admin-matrix-row { display:grid; grid-template-columns:minmax(16rem,1.5fr) minmax(8rem,.7fr) minmax(12rem,1fr) 6rem minmax(10rem,1fr); gap:.7rem; align-items:center; min-width:56rem; padding:.75rem; border-bottom:1px solid var(--fs-line); }
.fs-admin-matrix-row.is-header { position:sticky; top:0; z-index:1; background:var(--fs-green-100); font-size:.74rem; text-transform:uppercase; }
.fs-admin-detail-slot { margin-top:.6rem; }
.fs-admin-detail-card { border:1px solid var(--fs-line); border-radius:.8rem; background:color-mix(in srgb,var(--fs-green-100) 60%,var(--fs-surface)); padding:1rem; }
.fs-admin-detail-top { display:flex; align-items:center; gap:.8rem; flex-wrap:wrap; }
.fs-admin-detail-top .fs-link-button { margin-left:auto; }
.fs-admin-detail-body { margin-top:.8rem; display:grid; gap:.8rem; max-width:58rem; }
.fs-admin-detail-form { display:grid; gap:.8rem; align-items:start; }
.fs-admin-detail-form label { display:grid; gap:.35rem; font-size:.75rem; font-weight:800; }
.fs-admin-detail-form select,.fs-admin-detail-form input { min-height:2.5rem; padding:.5rem; border:1px solid var(--fs-line); border-radius:.5rem; background:var(--fs-surface); color:var(--fs-green-950); }
.fs-admin-detail-form .fs-checkbox { display:flex; gap:.5rem; align-items:center; }
.fs-admin-row-menu { display:grid; gap:.35rem; padding:.6rem 1rem; border:1px solid var(--fs-line); border-left:3px solid var(--fs-green-700); border-radius:.5rem; background:var(--fs-surface); }
.fs-admin-row-menu .fs-link-button { text-align:left; }
.fs-admin-row-menu-form { display:grid; gap:.6rem; align-items:start; }
.fs-admin-row-menu-form label { display:grid; gap:.35rem; font-size:.75rem; font-weight:800; }
.fs-admin-row-menu-form select,.fs-admin-row-menu-form input { min-height:2.5rem; padding:.5rem; border:1px solid var(--fs-line); border-radius:.5rem; background:var(--fs-surface); color:var(--fs-green-950); }
.fs-admin-permission-grid { display:grid; gap:.45rem; }
.fs-admin-permission-grid .fs-checkbox { display:flex; gap:.5rem; align-items:center; }
.fs-admin-modules { display:grid; gap:.8rem; }
.fs-admin-module-row { display:grid; gap:.45rem; }
.fs-admin-ambit-clients { display:grid; gap:.35rem; padding-left:1rem; border-left:2px solid var(--fs-line-soft); }
.fs-admin-ambit-clients .fs-checkbox { display:flex; gap:.5rem; align-items:center; }
.fs-admin-audit-list { display:grid; gap:.55rem; max-height:24rem; overflow:auto; }
.fs-admin-audit-item { display:grid; grid-template-columns:minmax(9rem,auto) minmax(8rem,auto) 1fr; gap:.7rem; align-items:baseline; padding:.55rem .7rem; border:1px solid var(--fs-line-soft); border-radius:.5rem; background:var(--fs-surface); font-size:.85rem; }
.fs-form-feedback.is-danger { color:#ae3029; }
@media (max-width: 900px) {
  .fs-calendar-toolbar { grid-template-columns:repeat(3,1fr); }
  .fs-calendar-heading { grid-column:1/-1; grid-row:1; }
  .fs-calendar-month { min-width:52rem; }
  .fs-calendar-form { grid-template-columns:1fr 1fr; }
}

@media (max-width: 52rem) {
  .fs-module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fs-operations-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fs-invoice-search { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fs-fiscal-profile-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fs-professional-layout { grid-template-columns: 1fr; }
  .fs-sidebar { position: static; height: auto; max-height: none; }
  .fs-sidebar-nav { display: flex; gap: .5rem; overflow-x: auto; padding: .65rem; }
  .fs-sidebar-group { display: flex; flex: 0 0 auto; margin: 0; }
  .fs-sidebar-group h2 { display: none; }
  .fs-sidebar-item { width: auto; grid-template-columns: auto auto; white-space: nowrap; }
  .fs-sidebar-item small { display: none; }
  .fs-sidebar-footer { display: none; }
  .fs-dashboard-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fs-dashboard-panels { grid-template-columns: 1fr; }
  .fs-professional-row { grid-template-columns: 1fr 1fr; }
  .fs-professional-row small { grid-column: 1 / -1; text-align: left; }
  .fs-client-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fs-client-columns { grid-template-columns: 1fr; }
  .fs-dashboard-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fs-work-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fs-work-card { grid-template-columns: 1fr 1fr; }
  .fs-work-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .fs-mailbox-email-row { grid-template-columns: 1fr 1fr; }
  .fs-mailbox-history-row { grid-template-columns: 1fr auto; }
  .fs-mailbox-history-row > span:nth-child(3) { grid-column: 1 / -1; }
  .fs-document-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fs-document-card-row { grid-template-columns: 1fr 1fr; }
  .fs-calendar-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fs-calendar-card,.fs-procedure-card { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 40rem) {
  body { place-items: stretch; padding: 0; background: var(--fs-surface); }
  #app { min-height: 100dvh; }
  .fs-card { min-height: 100dvh; border: 0; border-radius: 0; box-shadow: none; padding-top: max(2rem, env(safe-area-inset-top)); }
  .fs-shell-header { align-items: stretch; flex-direction: column; }
  .fs-module-grid { grid-template-columns: 1fr; }
  .fs-module { min-height: 9rem; }
  .fs-message { max-width: 92%; }
  .fs-invoice-row { align-items: flex-start; }
  .fs-review-grid { grid-template-columns: 1fr; }
  .fs-review-actions .fs-button { width: 100%; }
  .fs-upload-fields { grid-template-columns: 1fr; }
  .fs-tax-row { grid-template-columns: 1fr 1fr; }
  .fs-tax-row select, .fs-tax-row .fs-link-button { grid-column: 1 / -1; }
  .fs-operations-grid { grid-template-columns: 1fr; }
  .fs-invoice-search { grid-template-columns: 1fr; }
  .fs-fiscal-profile-form, .fs-profile-row { grid-template-columns: 1fr; }
  .fs-period-row { grid-template-columns: 1fr; }
  .fs-retention-row { grid-template-columns: 1fr; }
  .fs-metrics-grid { grid-template-columns: 1fr; }
  .fs-circuit-grid { grid-template-columns: 1fr; }
  .fs-workspace-main { padding: 1rem; }
  .fs-queue-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fs-mailbox-email-row,.fs-mailbox-history-row { grid-template-columns: 1fr; }
  .fs-mailbox-history-row > span:nth-child(3) { grid-column: auto; }
  .fs-workspace-content.fs-card { min-height: auto; padding: 0; }
  .fs-dashboard-stats { grid-template-columns: 1fr; }
  .fs-dashboard-stat { min-height: 7rem; }
  .fs-dashboard-shortcuts { grid-template-columns: 1fr; }
  .fs-professional-row { grid-template-columns: 1fr; }
  .fs-professional-row small { grid-column: auto; }
  .fs-client-form, .fs-contact-form { grid-template-columns: 1fr; }
  .fs-client-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fs-checkbox { grid-column: auto; }
  .fs-timeline-row { grid-template-columns: auto 1fr; }
  .fs-timeline-row time { grid-column: 2; }
  .fs-work-form, .fs-work-card { grid-template-columns: 1fr; }
  .fs-work-description, .fs-work-actions { grid-column: auto; }
  .fs-document-form,.fs-document-card-row { grid-template-columns: 1fr; }
  .fs-calendar-form,.fs-calendar-card,.fs-procedure-card { grid-template-columns: 1fr; }
  .fs-calendar-month { grid-template-columns:repeat(7,minmax(5rem,1fr)); min-width:42rem; }
  .fs-client-panel:has(.fs-calendar-month) { overflow-x:auto; }
}
@media (max-width: 480px) {
  .fs-queue-filters { grid-template-columns:1fr; }
  .fs-mailbox-controls { display:grid; grid-template-columns:1fr; }
  .fs-mailbox-controls .fs-button { width:100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}

.fs-production-card { display: grid; grid-template-columns: minmax(14rem, 1.3fr) minmax(12rem, 1fr) auto; gap: .45rem 1rem; align-items: center; padding: 1rem; border: 1px solid var(--fs-line); border-radius: .85rem; background: var(--fs-surface); }
.fs-production-card strong { color: var(--fs-green-950); }
.fs-production-card small { color: var(--fs-muted); }
.fs-production-card .fs-work-actions { grid-column: 1 / -1; }
.fs-compliance-review { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(9rem, .7fr) minmax(14rem, 1.5fr) minmax(12rem, 1fr) auto; gap: .75rem; align-items: end; padding-top: .8rem; border-top: 1px solid var(--fs-line); }
.fs-compliance-review label { display: grid; gap: .35rem; }
.fs-compliance-review label > span { font-size: .78rem; color: var(--fs-muted); }
.fs-admin-users,.fs-settings-panel,.fs-audit-list,.fs-backup-list { display: grid; gap: .8rem; margin-top: 1rem; }
.fs-admin-user,.fs-setting-row,.fs-audit-row,.fs-backup-row { padding: 1rem; border: 1px solid var(--fs-line); border-radius: .8rem; background: var(--fs-surface); }
.fs-admin-user { display: grid; gap: .45rem; }
.fs-admin-user-form { display: grid; grid-template-columns: repeat(2,minmax(10rem,1fr)) repeat(2,auto); gap: .7rem; align-items: end; margin-top: .5rem; }
.fs-admin-user-form label,.fs-setting-row label,.fs-backup-form label { display: grid; gap: .35rem; }
.fs-admin-user-form label > span,.fs-setting-row label > span,.fs-backup-form label > span { font-size: .78rem; color: var(--fs-muted); }
.fs-admin-user-form .fs-checkbox { display: flex; }
.fs-setting-row { display: grid; grid-template-columns: minmax(12rem,1fr) minmax(12rem,1fr) auto; gap: .75rem; align-items: end; }
.fs-audit-row { display: grid; grid-template-columns: auto minmax(10rem,.7fr) minmax(14rem,1fr) auto; gap: .7rem; align-items: center; }
.fs-audit-row time,.fs-backup-row time { color: var(--fs-muted); font-size: .82rem; }
.fs-backup-form { display: grid; grid-template-columns: repeat(2,minmax(10rem,1fr)); gap: .75rem; }
.fs-backup-row { display: grid; grid-template-columns: minmax(12rem,1fr) auto minmax(12rem,1fr) auto; gap: .75rem; align-items: center; }
.fs-backup-row.is-failed { border-color: #b44; }
.fs-backup-generate { display:grid; gap:.6rem; padding:1.1rem; border:1px solid var(--fs-accent); border-radius:var(--fs-radius-lg); background:var(--fs-accent-soft); margin:1rem 0; }
.fs-backup-generate strong { font-size:1rem; }
.fs-backup-generate p { margin:0; color:var(--fs-text-muted); font-size:.85rem; }
.fs-backup-generate .fs-button { justify-self:start; }
.fs-control-filters { display:grid;grid-template-columns:minmax(15rem,1.5fr) repeat(4,minmax(9rem,1fr));gap:.7rem;padding:1rem;border:1px solid var(--fs-line);border-radius:.9rem;background:var(--fs-surface); }
.fs-control-filters label { display:grid;gap:.3rem; }.fs-control-filters label>span { font-size:.76rem;color:var(--fs-muted); }
.fs-control-summary { color:var(--fs-muted);font-size:.85rem;margin:.8rem 0; }.fs-control-table { display:grid;gap:.55rem; }
.fs-control-row { display:grid;grid-template-columns:minmax(17rem,1.4fr) minmax(8rem,.6fr) minmax(24rem,1.7fr) auto;gap:.8rem;align-items:center;padding:.85rem 1rem;border:1px solid var(--fs-line);border-radius:.75rem;background:var(--fs-surface); }
.fs-control-main,.fs-control-meta,.fs-control-indicators { display:flex;gap:.45rem;align-items:center;flex-wrap:wrap; }.fs-control-main { flex-direction:column;align-items:flex-start; }.fs-control-main small { color:var(--fs-muted); }.fs-control-meta { font-size:.82rem;color:var(--fs-muted); }
.fs-request-control-form { display:grid;grid-template-columns:repeat(5,minmax(9rem,1fr));gap:.8rem;padding:1rem;border:1px solid var(--fs-line);border-radius:.9rem;margin:1rem 0;background:var(--fs-surface); }
.fs-request-control-form label,.fs-request-document-form label { display:grid;gap:.35rem; }.fs-request-control-form label>span,.fs-request-document-form label>span { color:var(--fs-muted);font-size:.78rem; }.fs-request-control-form .fs-form-wide { grid-column:1/-1; }.fs-request-control-form .fs-form-feedback { grid-column:1/-1; }
.fs-request-document { display:grid;grid-template-columns:minmax(12rem,1fr) minmax(14rem,1fr) auto auto;gap:.7rem;align-items:center;padding:.75rem;border-bottom:1px solid var(--fs-line); }
.fs-request-document-form { display:grid;grid-template-columns:repeat(4,minmax(10rem,1fr)) auto;gap:.7rem;align-items:end;padding:1rem 0; }

@media (max-width: 760px) {
  .fs-production-card, .fs-compliance-review, .fs-admin-user-form, .fs-setting-row, .fs-audit-row, .fs-backup-form, .fs-backup-row,.fs-control-filters,.fs-control-row,.fs-request-control-form,.fs-request-document,.fs-request-document-form { grid-template-columns: 1fr; }
  .fs-request-control-form .fs-form-wide,.fs-request-control-form .fs-form-feedback { grid-column:auto; }
  .fs-production-card .fs-work-actions, .fs-compliance-review { grid-column: auto; }
}

:root[data-color-mode="dark"] { color: #e7f1ee; background: #0b1211; --fs-surface: #151b1a; --fs-workspace-bg: #0f1413; --fs-line: #39423f; --fs-green-950: #f1f7f5; --fs-green-700: #8bc4b6; --fs-green-100: #222c29; }
:root[data-color-mode="dark"] body { background: radial-gradient(circle at 15% 10%, #1d2825, transparent 34rem), #0b1211; }
:root[data-color-mode="dark"] .fs-lead { color: #b7c5c1; }
:root[data-color-mode="dark"] .fs-preview-note,
:root[data-color-mode="dark"] .fs-module p,
:root[data-color-mode="dark"] .fs-dashboard-welcome p,
:root[data-color-mode="dark"] .fs-dashboard-stat span,
:root[data-color-mode="dark"] .fs-dashboard-stat small,
:root[data-color-mode="dark"] .fs-dashboard-shortcut span,
:root[data-color-mode="dark"] .fs-professional-row small { color: #a8b6b2; }
:root[data-color-mode="dark"] .fs-conversation { background: #101817; }
:root[data-color-mode="dark"] .fs-invoice-meta,
:root[data-color-mode="dark"] .fs-review-field span,
:root[data-color-mode="dark"] .fs-professional-row span { color: #b1c0bc; }
:root[data-color-mode="dark"] .fs-original-panel { background: #1b211f; color: #e7f1ee; }
:root[data-color-mode="dark"] .fs-review-column.is-proposed { background: #182124; }
:root[data-color-mode="dark"] .fs-review-column.is-validated { background: #173029; }
:root[data-color-mode="dark"] .fs-legal-warning { background: #382b0e; color: #fff0c9; }
:root[data-color-mode="dark"] .fs-incident-panel { background: #30270f; }
:root[data-color-mode="dark"] .fs-dashboard-shortcut:hover { background: #202b28; }

@media (prefers-color-scheme: dark) {
  :root[data-color-mode="system"] { color: #e7f1ee; background: #0b1211; --fs-surface: #151b1a; --fs-workspace-bg: #0f1413; --fs-line: #39423f; --fs-green-950: #f1f7f5; --fs-green-700: #8bc4b6; --fs-green-100: #222c29; }
  :root[data-color-mode="system"] body { background: radial-gradient(circle at 15% 10%, #1d2825, transparent 34rem), #0b1211; }
  :root[data-color-mode="system"] .fs-lead { color: #b7c5c1; }
  :root[data-color-mode="system"] .fs-preview-note,
  :root[data-color-mode="system"] .fs-module p,
  :root[data-color-mode="system"] .fs-dashboard-welcome p,
  :root[data-color-mode="system"] .fs-dashboard-stat span,
  :root[data-color-mode="system"] .fs-dashboard-stat small,
  :root[data-color-mode="system"] .fs-dashboard-shortcut span,
  :root[data-color-mode="system"] .fs-professional-row small { color: #a8b6b2; }
  :root[data-color-mode="system"] .fs-conversation { background: #101817; }
  :root[data-color-mode="system"] .fs-invoice-meta,
  :root[data-color-mode="system"] .fs-review-field span,
  :root[data-color-mode="system"] .fs-professional-row span { color: #b1c0bc; }
  :root[data-color-mode="system"] .fs-original-panel { background: #1b211f; color: #e7f1ee; }
  :root[data-color-mode="system"] .fs-review-column.is-proposed { background: #182124; }
  :root[data-color-mode="system"] .fs-review-column.is-validated { background: #173029; }
  :root[data-color-mode="system"] .fs-legal-warning { background: #382b0e; color: #fff0c9; }
  :root[data-color-mode="system"] .fs-incident-panel { background: #30270f; }
  :root[data-color-mode="system"] .fs-dashboard-shortcut:hover { background: #202b28; }
}

/* ===== FASE 3 · Master-detail Centro de Notificaciones ===== */
.fs-notifications-master { display: grid; grid-template-columns: minmax(340px, 40%) minmax(0, 1fr); gap: clamp(1rem, 2vw, 1.5rem); align-items: start; }
.fs-notifications-list { display: grid; gap: .85rem; align-content: start; min-width: 0; }
.fs-notifications-detail { min-width: 0; }

.fs-search-field { width: 100%; min-height: 2.6rem; padding: .5rem .8rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-md); background: var(--fs-surface); color: var(--fs-text); font: inherit; }
.fs-search-field:focus { outline: 2px solid var(--fs-accent-soft); outline-offset: 1px; border-color: var(--fs-accent); }

.fs-invoice-row.fs-notification-row { cursor: pointer; }
.fs-invoice-row.fs-notification-row.is-active { background: var(--fs-accent-soft); box-shadow: inset 3px 0 0 var(--fs-accent); border-color: var(--fs-accent); }
.fs-invoice-row.fs-notification-row.is-active .fs-invoice-supplier { color: var(--fs-accent-hover); }
.fs-invoice-main { display: grid; gap: .3rem; min-width: 0; }

.fs-detail-shell { display: grid; gap: 1.15rem; padding: 1.35rem 1.5rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-xl); background: var(--fs-surface); box-shadow: var(--fs-shadow-md); }
.fs-detail-topbar { display: flex; align-items: center; justify-content: space-between; gap: .8rem; flex-wrap: wrap; }
.fs-detail-topbar-actions { display: flex; align-items: center; gap: .6rem; }
.fs-detail-topbar .fs-action-primary { width: auto; }
.fs-detail-more { position: relative; }
.fs-detail-more summary { cursor: pointer; padding: .5rem .75rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-md); background: var(--fs-surface); color: var(--fs-text-muted); font: inherit; font-weight: 700; font-size: .88rem; }
.fs-detail-more[open] summary { color: var(--fs-accent); border-color: var(--fs-accent); }
.fs-detail-more-panel { position: absolute; right: 0; top: calc(100% + .4rem); width: 15rem; padding: .85rem .95rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-md); background: var(--fs-surface); box-shadow: var(--fs-shadow-md); z-index: 5; }
.fs-detail-more-panel p { margin: 0; color: var(--fs-text-muted); font-size: .82rem; overflow-wrap: anywhere; }

.fs-detail-form { display: grid; gap: 1.1rem; }
.fs-detail-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .95rem; }
.fs-detail-card { display: grid; gap: .8rem; align-content: start; padding: 1.1rem 1.15rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-lg); background: var(--fs-surface); box-shadow: var(--fs-shadow-sm); }
.fs-detail-card h3 { margin: 0; font-size: .98rem; color: var(--fs-accent-hover); }
.fs-detail-card label { display: grid; gap: .3rem; font-size: .85rem; }
.fs-detail-card label span { color: var(--fs-text-muted); font-weight: 700; }
.fs-detail-card select, .fs-detail-card input { width: 100%; min-height: 2.5rem; padding: .45rem .65rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-md); background: var(--fs-surface); color: var(--fs-text); font: inherit; }
.fs-detail-card select:focus, .fs-detail-card input:focus { outline: 2px solid var(--fs-accent-soft); outline-offset: 1px; border-color: var(--fs-accent); }

.fs-review-extras { padding: .8rem 1rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-lg); background: var(--fs-surface); }
.fs-review-extras summary { cursor: pointer; color: var(--fs-text-muted); font-weight: 800; font-size: .9rem; }
.fs-review-extras[open] summary { margin-bottom: .85rem; color: var(--fs-accent); }

.fs-detail-tabs { display: flex; flex-wrap: wrap; gap: .35rem; border-bottom: 1px solid var(--fs-line-soft); }
.fs-detail-tab { min-height: 2.7rem; padding: .6rem 1.05rem; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--fs-text-muted); font: inherit; font-weight: 800; cursor: pointer; }
.fs-detail-tab.is-active { color: var(--fs-accent); border-bottom-color: var(--fs-accent); }
.fs-detail-tabpanel { display: grid; gap: 1rem; padding-top: 1.1rem; }
.fs-detail-tabpanel[hidden] { display: none; }

.fs-mail-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 280px); gap: 1rem; align-items: start; }
.fs-quick-actions { display: grid; gap: .55rem; align-content: start; padding: 1.1rem 1.15rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-lg); background: var(--fs-surface); box-shadow: var(--fs-shadow-sm); }
.fs-quick-actions h3 { margin: 0; font-size: .95rem; color: var(--fs-accent-hover); }
.fs-quick-actions .fs-button { width: 100%; }

@media (max-width: 62rem) {
  .fs-notifications-master { grid-template-columns: minmax(0, 1fr); }
  .fs-mail-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 52rem) {
  .fs-detail-cards { grid-template-columns: minmax(0, 1fr); }
  .fs-detail-shell { padding: 1rem 1.1rem; }
}

/* ===== FASE 2 · Workspace detalle de notificación ===== */
.fs-back-link { margin-bottom: .25rem; color: var(--fs-text-muted); font-size: .9rem; font-weight: 700; }
.fs-detail-header { display: grid; gap: .65rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--fs-line-soft); }
.fs-detail-title { display: grid; gap: .4rem; }
.fs-detail-header-badges { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .15rem; }
.fs-detail-meta { margin: 0; color: var(--fs-text-muted); font-size: .92rem; }

.fs-detail-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: clamp(1rem, 2.4vw, 1.75rem); align-items: start; }
.fs-detail-main { display: grid; gap: 1.1rem; min-width: 0; }
.fs-detail-aside { display: grid; gap: 1.1rem; min-width: 0; }

.fs-kv-grid { display: grid; gap: .35rem 1.1rem; }
.fs-kv-item { display: grid; gap: .12rem; padding: .55rem .7rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-md); background: var(--fs-surface); }
.fs-kv-label { color: var(--fs-text-muted); font-size: .68rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.fs-kv-value { color: var(--fs-text); font-size: .92rem; line-height: 1.45; overflow-wrap: anywhere; }

.fs-mail-card { display: grid; gap: .85rem; }
.fs-mail-card h2 { margin: 0; font-size: 1.05rem; }
.fs-mail-card .fs-kv-grid { grid-template-columns: minmax(0, 1fr); }

.fs-classification { display: grid; gap: .75rem; padding: 1.1rem 1.25rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-lg); background: linear-gradient(160deg, var(--fs-surface), var(--fs-accent-soft)); }
.fs-classification h2 { margin: 0; font-size: 1.05rem; }
.fs-classification-badges { display: flex; flex-wrap: wrap; gap: .45rem; }

.fs-form-grid { display: grid; gap: 1rem; }
.fs-form-group { margin: 0; padding: .9rem 1rem 1rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-lg); background: var(--fs-surface); }
.fs-form-group legend { padding: 0 .4rem; color: var(--fs-text-muted); font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.fs-form-group { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.fs-form-group label { display: grid; gap: .3rem; font-size: .86rem; }
.fs-form-group label span { color: var(--fs-text-muted); font-weight: 700; }
.fs-form-group input, .fs-form-group select { width: 100%; min-height: 2.5rem; padding: .5rem .7rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-md); background: var(--fs-surface); color: var(--fs-text); font: inherit; }
.fs-form-group input:focus, .fs-form-group select:focus { outline: 2px solid var(--fs-accent-soft); outline-offset: 1px; border-color: var(--fs-accent); }
.fs-form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; padding: 0 0 .15rem; }
.fs-form-actions p { margin: 0; }

.fs-tech-details { margin-top: .1rem; }
.fs-tech-details summary { cursor: pointer; color: var(--fs-text-muted); font-size: .85rem; font-weight: 700; }
.fs-tech-details p { margin: .45rem 0 0; color: var(--fs-text-muted); font-size: .78rem; overflow-wrap: anywhere; }

.fs-aside-card { display: grid; gap: .85rem; padding: 1.1rem 1.15rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-lg); background: var(--fs-surface); box-shadow: var(--fs-shadow-sm); }
.fs-aside-card h3 { margin: 0; font-size: 1rem; }
.fs-aside-card .fs-kv-grid { grid-template-columns: minmax(0, 1fr); }

.fs-link-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.fs-link-card { display: grid; gap: .3rem; padding: .7rem .8rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-md); background: var(--fs-surface); }
.fs-link-card strong { font-size: .82rem; }
.fs-link-card span { color: var(--fs-text-muted); font-size: .8rem; line-height: 1.4; overflow-wrap: anywhere; }
.fs-link-card .fs-link-button { min-height: 0; padding: .15rem 0; font-size: .82rem; }

.fs-aside-actions { display: grid; gap: .55rem; }
.fs-aside-actions .fs-button { width: 100%; }
.fs-compact-create { display: grid; gap: .45rem; }
.fs-compact-create summary { cursor: pointer; padding: .6rem .8rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-md); background: var(--fs-surface); color: var(--fs-accent); font-weight: 800; font-size: .88rem; }
.fs-compact-create[open] summary { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.fs-compact-form { display: grid; gap: .55rem; padding: .7rem .8rem .85rem; border: 1px solid var(--fs-line); border-top: 0; border-radius: 0 0 var(--fs-radius-md) var(--fs-radius-md); }
.fs-compact-form label { display: grid; gap: .28rem; font-size: .82rem; }
.fs-compact-form label span { color: var(--fs-text-muted); font-weight: 700; }
.fs-compact-form input, .fs-compact-form select { width: 100%; min-height: 2.3rem; padding: .45rem .6rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-sm); background: var(--fs-surface); color: var(--fs-text); font: inherit; }
.fs-compact-form .fs-button { width: 100%; }
.fs-aside-sub { display: grid; gap: .5rem; padding-top: .4rem; border-top: 1px solid var(--fs-line-soft); }
.fs-aside-sub h4 { margin: 0; color: var(--fs-text-muted); font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.fs-aside-sub p { margin: 0; font-size: .84rem; }

.fs-manage-box { display: grid; gap: .7rem; padding: 1.1rem 1.15rem; border: 1px solid var(--fs-accent); border-radius: var(--fs-radius-lg); background: linear-gradient(160deg, var(--fs-accent-soft), var(--fs-surface)); }
.fs-manage-box strong { color: var(--fs-accent-hover); font-size: 1rem; }
.fs-manage-box p { margin: 0; color: var(--fs-text-muted); font-size: .85rem; line-height: 1.5; }
.fs-manage-box label { display: flex; align-items: center; gap: .5rem; font-size: .88rem; cursor: pointer; }
.fs-action-primary { width: 100%; }

@media (max-width: 52rem) {
  .fs-detail-layout { grid-template-columns: minmax(0, 1fr); }
  .fs-form-group { grid-template-columns: minmax(0, 1fr); }
  .fs-link-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 40rem) {
  .fs-link-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ===== FASE 4 · Master-detail Solicitudes / Bandeja de control ===== */
.fs-work-filterbar { display: flex; flex-wrap: wrap; gap: .6rem; align-items: end; padding: .9rem 1rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-lg); background: var(--fs-surface); }
.fs-work-filterbar label { display: grid; gap: .3rem; min-width: 9rem; flex: 1 1 10rem; font-size: .82rem; }
.fs-work-filterbar label>span { color: var(--fs-text-muted); font-weight: 700; }
.fs-work-filterbar select, .fs-work-filterbar input { width: 100%; min-height: 2.5rem; padding: .45rem .65rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-md); background: var(--fs-surface); color: var(--fs-text); font: inherit; }
.fs-work-filterbar select:focus, .fs-work-filterbar input:focus { outline: 2px solid var(--fs-accent-soft); outline-offset: 1px; border-color: var(--fs-accent); }

.fs-invoice-title { margin: 0; font-weight: 800; font-size: 1rem; color: var(--fs-text); }
.fs-invoice-row.fs-notification-row .fs-invoice-main { gap: .28rem; }
.fs-invoice-row.fs-notification-row .fs-invoice-supplier { font-size: .82rem; color: var(--fs-text-muted); }
.fs-invoice-row.fs-notification-row.is-active .fs-invoice-title { color: var(--fs-accent-hover); }
.fs-invoice-row.fs-notification-row.is-active .fs-invoice-supplier { color: var(--fs-accent); }

.fs-detail-form .fs-form-wide { display: grid; gap: .4rem; }
.fs-detail-form .fs-form-wide>span { color: var(--fs-text-muted); font-weight: 700; font-size: .85rem; }
.fs-detail-form .fs-form-wide textarea { width: 100%; min-height: 6rem; padding: .6rem .75rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-md); background: var(--fs-surface); color: var(--fs-text); font: inherit; resize: vertical; }
.fs-detail-form .fs-form-wide textarea:focus { outline: 2px solid var(--fs-accent-soft); outline-offset: 1px; border-color: var(--fs-accent); }
.fs-detail-form .fs-button[type="submit"] { justify-self: start; }

@media (max-width: 52rem) {
  .fs-work-filterbar { align-items: stretch; }
  .fs-work-filterbar label { flex: 1 1 100%; }
  .fs-detail-form .fs-button[type="submit"] { width: 100%; }
}

/* ===== FASE 5 · Sistema visual composición master/detail ===== */
.fs-workspace { display: grid; gap: 1rem; }
.fs-master-detail { display: grid; grid-template-columns: minmax(280px, 32%) minmax(0, 1fr); gap: clamp(1rem, 2vw, 1.5rem); align-items: start; }
.fs-master-pane { display: grid; gap: .8rem; align-content: start; min-width: 0; }
.fs-detail-pane { min-width: 0; display: grid; gap: 1rem; align-content: start; }

.fs-panel-header { display: grid; gap: .15rem; padding: 0 .15rem; }
.fs-panel-header h1 { margin: 0; font-size: clamp(1.4rem, 2.2vw, 1.85rem); font-weight: 800; color: var(--fs-green-950); letter-spacing: -.01em; }
.fs-panel-subtitle { margin: 0; color: var(--fs-text-muted); font-size: .85rem; }
.fs-panel-header-title { margin: 0; font-size: 1.05rem; color: var(--fs-green-950); }

.fs-filter-bar { display: flex; flex-wrap: wrap; gap: .4rem; }
.fs-filter-chip { min-height: 2rem; padding: .35rem .75rem; border: 1px solid var(--fs-line-soft); border-radius: 99rem; background: var(--fs-surface); color: var(--fs-text-muted); font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer; }
.fs-filter-chip.is-active { background: var(--fs-accent-soft); border-color: var(--fs-accent); color: var(--fs-accent-hover); }

.fs-search { width: 100%; min-height: 2.4rem; padding: .45rem .75rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-md); background: var(--fs-surface); color: var(--fs-text); font: inherit; }
.fs-search:focus { outline: 2px solid var(--fs-accent-soft); outline-offset: 1px; border-color: var(--fs-accent); }

.fs-list { display: grid; gap: .5rem; align-content: start; min-width: 0; }
.fs-list-item { position: relative; display: grid; gap: .35rem; padding: .8rem .9rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-lg); background: var(--fs-surface); box-shadow: var(--fs-shadow-sm); cursor: pointer; }
.fs-list-item:hover { border-color: var(--fs-accent); }
.fs-list-item.is-selected { background: var(--fs-accent-soft); box-shadow: inset 3px 0 0 var(--fs-accent); border-color: var(--fs-accent); }
.fs-list-item-top { display: flex; align-items: center; gap: .45rem; min-width: 0; }
.fs-list-item-top strong { min-width: 0; flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--fs-green-950); font-size: .82rem; }
.fs-list-item-top time { color: var(--fs-text-muted); font-size: .7rem; white-space: nowrap; }
.fs-list-item-title { margin: 0; color: var(--fs-text); font-size: .9rem; font-weight: 700; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fs-list-item-meta { margin: 0; color: var(--fs-text-muted); font-size: .78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.fs-entity-icon { display: inline-grid; place-items: center; width: 2.1rem; height: 2.1rem; flex: none; border-radius: .6rem; background: var(--fs-accent-soft); color: var(--fs-accent-hover); font-size: .78rem; font-weight: 800; letter-spacing: .02em; }
.fs-entity-icon.is-sm { width: 1.5rem; height: 1.5rem; font-size: .62rem; border-radius: .45rem; }

.fs-detail-entity { display: flex; align-items: center; gap: .6rem; }
.fs-detail-asunto { margin: 0; font-size: clamp(1.2rem, 2vw, 1.6rem); font-weight: 800; color: var(--fs-green-950); line-height: 1.3; letter-spacing: -.01em; }

.fs-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .95rem; }
.fs-detail-pane .fs-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.fs-action-card { display: grid; gap: .2rem; width: 100%; padding: .65rem .75rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-md); background: var(--fs-surface); color: var(--fs-text); font: inherit; text-align: left; cursor: pointer; }
.fs-action-card:hover { border-color: var(--fs-accent); background: var(--fs-accent-soft); }
.fs-action-card strong { font-size: .82rem; color: var(--fs-green-950); }
.fs-action-card small { color: var(--fs-text-muted); font-size: .72rem; }

.fs-mail-body-muted { margin: 0; padding: 1rem; border: 1px dashed var(--fs-line); border-radius: var(--fs-radius-md); background: var(--fs-workspace-bg); color: var(--fs-text-muted); font-size: .86rem; }

.fs-panel { display: grid; gap: .8rem; padding: 1.15rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-lg); background: var(--fs-surface); box-shadow: var(--fs-shadow-sm); }

@media (max-width: 72rem) {
  .fs-summary-grid, .fs-detail-pane .fs-summary-grid { grid-template-columns: minmax(0, 1fr); }
  .fs-master-detail { grid-template-columns: minmax(240px, 42%) minmax(0, 1fr); }
}
@media (max-width: 52rem) {
  .fs-master-detail { grid-template-columns: minmax(0, 1fr); }
  .fs-detail-pane { grid-template-columns: minmax(0, 1fr); }
}

/* ===== FASE 6 · Solicitudes: creación, filtros compactos y ficha operativa ===== */
.fs-create-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; padding-top: .9rem; }
.fs-create-form-grid label { display: grid; gap: .3rem; min-width: 0; font-size: .82rem; }
.fs-create-form-grid label>span { color: var(--fs-text-muted); font-weight: 700; }
.fs-create-form-grid input, .fs-create-form-grid select { width: 100%; min-height: 2.5rem; padding: .45rem .65rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-md); background: var(--fs-surface); color: var(--fs-text); font: inherit; }
.fs-create-form-grid input:focus, .fs-create-form-grid select:focus { outline: 2px solid var(--fs-accent-soft); outline-offset: 1px; border-color: var(--fs-accent); }
.fs-create-form-grid .fs-button, .fs-create-form-grid .fs-form-feedback { grid-column: 1 / -1; }
.fs-create-form-grid .fs-button { justify-self: start; }

.fs-work-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; padding: .7rem .8rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-lg); background: var(--fs-surface); }
.fs-work-filters label { display: grid; gap: .25rem; min-width: 0; font-size: .78rem; }
.fs-work-filters label>span { color: var(--fs-text-muted); font-weight: 700; }
.fs-work-filters select, .fs-work-filters input { width: 100%; min-height: 2.3rem; padding: .4rem .6rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-md); background: var(--fs-surface); color: var(--fs-text); font: inherit; font-size: .82rem; }
.fs-work-filters select:focus, .fs-work-filters input:focus { outline: 2px solid var(--fs-accent-soft); outline-offset: 1px; border-color: var(--fs-accent); }

.fs-list-item-badges { display: flex; flex-wrap: wrap; gap: .3rem; }

.fs-detail-desc { margin: 0; color: var(--fs-text); font-size: .9rem; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }

@media (max-width: 52rem) {
  .fs-create-form-grid, .fs-work-filters { grid-template-columns: minmax(0, 1fr); }
}

/* ===== FASE 7 · Obligaciones (matriz) y Cumplimientos (listado + periodos) ===== */
.fs-matrix-toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: .6rem 1rem; padding: .7rem .8rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-lg); background: var(--fs-surface); }
.fs-matrix-toolbar .fs-search { width: 18rem; min-height: 2.3rem; padding: .4rem .6rem; }
.fs-matrix-toolbar label { display: grid; gap: .25rem; min-width: 0; font-size: .78rem; }
.fs-matrix-toolbar label>span { color: var(--fs-text-muted); font-weight: 700; }
.fs-matrix-toolbar select { width: 100%; min-width: 9rem; min-height: 2.3rem; padding: .4rem .6rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-md); background: var(--fs-surface); color: var(--fs-text); font: inherit; font-size: .82rem; }
.fs-matrix-toolbar select:focus { outline: 2px solid var(--fs-accent-soft); outline-offset: 1px; border-color: var(--fs-accent); }
.fs-matrix-toolbar .fs-control-summary { margin: 0; }

.fs-matrix-table { width: 100%; min-width: 46rem; border-collapse: collapse; font-size: .85rem; }
.fs-matrix-table thead { position: sticky; top: 0; z-index: 2; }
.fs-matrix-table th { padding: .55rem .7rem; border-bottom: 1px solid var(--fs-line); background: var(--fs-surface); color: var(--fs-text-muted); font-size: .76rem; text-align: left; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.fs-matrix-table th.fs-matrix-col-check { width: 2.6rem; text-align: center; }
.fs-matrix-table th.fs-matrix-col-assigned { width: 4.7rem; text-align: center; }
.fs-matrix-table td { padding: .55rem .7rem; border-bottom: 1px solid var(--fs-line-soft); vertical-align: middle; }
.fs-matrix-table td.fs-matrix-col-check { text-align: center; }
.fs-matrix-table td.fs-matrix-col-assigned { text-align: center; }
.fs-matrix-table tbody tr:hover { background: var(--fs-workspace-bg); }
.fs-matrix-table tbody tr.is-selected { background: var(--fs-accent-soft); }
.fs-matrix-table .fs-matrix-client { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.fs-matrix-table .fs-matrix-check, .fs-matrix-table .fs-matrix-select-all { appearance: none; width: 1.05rem; height: 1.05rem; margin: 0; border: 1.5px solid var(--fs-line); border-radius: .28rem; background: var(--fs-surface); cursor: pointer; display: inline-grid; place-content: center; vertical-align: middle; }
.fs-matrix-table .fs-matrix-check::after, .fs-matrix-table .fs-matrix-select-all::after { content: ''; width: .5rem; height: .5rem; clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%); background: #fff; transform: scale(0); }
.fs-matrix-table .fs-matrix-check:checked, .fs-matrix-table .fs-matrix-select-all:checked { border-color: var(--fs-accent); background: var(--fs-accent); }
.fs-matrix-table .fs-matrix-check:checked::after, .fs-matrix-table .fs-matrix-select-all:checked::after { transform: scale(1); }
.fs-matrix-table .fs-matrix-select-all:indeterminate { border-color: var(--fs-accent); background: var(--fs-accent); }
.fs-matrix-table .fs-matrix-select-all:indeterminate::after { transform: scale(1); clip-path: polygon(0 38%, 100% 38%, 100% 62%, 0 62%); }
.fs-matrix-table .fs-matrix-check:disabled { cursor: wait; opacity: .4; }
.fs-matrix-bulk-bar { position: sticky; bottom: 0; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; padding: .65rem .8rem; border-top: 1px solid var(--fs-line); background: var(--fs-surface); box-shadow: 0 -4px 12px rgb(16 47 42 / 10%); }
.fs-matrix-bulk-bar[hidden] { display: none; }
.fs-matrix-bulk-bar .fs-bulk-count { font-weight: 800; }
.fs-matrix-bulk-bar .fs-bulk-status { color: var(--fs-text-muted); font-size: .8rem; }
.fs-matrix-bulk-bar .fs-bulk-clear { min-height: 2.2rem; font-size: 1.05rem; }

.fs-compliance-controls { display: grid; gap: .6rem; margin-bottom: .6rem; }
.fs-compliance-banner { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .55rem .8rem; border: 1px solid var(--fs-accent-soft); border-radius: var(--fs-radius-lg); background: var(--fs-accent-soft); }
.fs-table-scroll { overflow: auto; max-height: min(64vh, 36rem); border: 1px solid var(--fs-line); border-radius: var(--fs-radius-lg); background: var(--fs-surface); }
.fs-compliance-table { width: 100%; min-width: 64rem; border-collapse: collapse; font-size: .85rem; }
.fs-compliance-table thead { position: sticky; top: 0; z-index: 2; }
.fs-compliance-table th { padding: .6rem .7rem; border-bottom: 1px solid var(--fs-line); background: var(--fs-surface); color: var(--fs-text-muted); font-size: .76rem; text-align: left; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.fs-compliance-table td { padding: .55rem .7rem; border-bottom: 1px solid var(--fs-line-soft); vertical-align: middle; }
.fs-compliance-table tbody tr:hover { background: var(--fs-workspace-bg); }
.fs-compliance-table td strong { display: block; font-size: .88rem; }
.fs-compliance-table td small { display: block; color: var(--fs-text-muted); font-size: .78rem; }
.fs-compliance-table td.is-incident { color: #ae3029; font-weight: 700; }
.fs-compliance-table td.is-overdue { color: #ae3029; font-weight: 700; }
.fs-compliance-ungenerated { margin-top: .9rem; }
.fs-compliance-generate { padding: 1.1rem 1.2rem; border: 1px dashed var(--fs-accent); border-radius: var(--fs-radius-lg); background: var(--fs-accent-soft); display: grid; gap: .6rem; }
.fs-compliance-generate h3 { margin: 0; font-size: 1rem; color: var(--fs-green-950); }
.fs-compliance-generate .fs-lead { margin: 0; font-size: .85rem; color: var(--fs-text-muted); }
.fs-compliance-generate .fs-work-actions { justify-content: flex-start; }
.fs-compliance-generate .fs-create-form-grid { padding-top: .6rem; }

.fs-period-list { display: grid; gap: .8rem; margin-top: 1rem; }
.fs-progress { height: .45rem; overflow: hidden; border-radius: 999px; background: var(--fs-line-soft); }
.fs-progress>span { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--fs-accent), var(--fs-green-700)); }

/* ===== FASE 7b · Matriz de cumplimientos por campaña + drill-down por cliente ===== */
.fs-matrix-cumpl { width: 100%; min-width: 58rem; border-collapse: collapse; font-size: .85rem; }
.fs-matrix-cumpl thead { position: sticky; top: 0; z-index: 2; }
.fs-matrix-cumpl th { padding: .6rem .7rem; border-bottom: 1px solid var(--fs-line); background: var(--fs-surface); color: var(--fs-text-muted); font-size: .76rem; text-align: left; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.fs-matrix-cumpl td { padding: .55rem .7rem; border-bottom: 1px solid var(--fs-line-soft); vertical-align: middle; }
.fs-matrix-cumpl tbody tr { cursor: pointer; }
.fs-matrix-cumpl tbody tr:hover { background: var(--fs-workspace-bg); }
.fs-matrix-cumpl .fs-matrix-count { font-weight: 800; color: var(--fs-text); }
.fs-matrix-cumpl .fs-progress { min-width: 5rem; margin-top: .3rem; }
.fs-matrix-dot { display: inline-block; width: .95rem; height: .95rem; border-radius: 99rem; border: 1px solid rgb(16 47 42 / 12%); }
.fs-matrix-dot.is-success { background: #2e8a6b; }
.fs-matrix-dot.is-attention { background: #e2b93b; }
.fs-matrix-dot.is-danger { background: #d23730; }
.fs-matrix-dot.is-muted { background: #9db3ac; }
.fs-matrix-dot.is-none { background: #e8eceb; }

.fs-model-list { display: grid; gap: 1rem; margin-top: .8rem; }
.fs-model-card { display: grid; gap: .6rem; padding: .9rem 1rem; }
.fs-model-card-head { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.fs-model-card-head strong { font-size: .95rem; }
.fs-model-presented { margin: 0; color: var(--fs-green-700); font-weight: 700; font-size: .82rem; }
.fs-model-flow { display: grid; gap: .4rem; margin: 0; padding: .5rem .7rem; list-style: none; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-md); background: var(--fs-workspace-bg); }
.fs-model-hito { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .35rem .2rem; }
.fs-model-hito+.fs-model-hito { border-top: 1px solid var(--fs-line-soft); }
.fs-model-hito-label { flex: 1 1 auto; font-weight: 650; }
.fs-model-state-select { min-height: 2rem; padding: .25rem .45rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-sm); background: var(--fs-surface); color: var(--fs-text); font: inherit; font-size: .8rem; }
.fs-model-state-select:focus { outline: 2px solid var(--fs-accent-soft); outline-offset: 1px; border-color: var(--fs-accent); }
.fs-hito-actions { display: inline-flex; align-items: center; gap: .35rem; margin-left: auto; }
.fs-hito-actions .fs-link-button.is-active, .fs-work-actions .fs-button.is-active { color: var(--fs-accent); font-weight: 700; }
.fs-model-hito-panel { padding: .35rem 0 .4rem .3rem; }
.fs-model-subestado-select { border-color: var(--fs-line); background: #fbfdfc; color: var(--fs-text-muted); }
.fs-matrix-cumpl .fs-matrix-cat select { min-width: 8.5rem; max-width: 10.5rem; }
.fs-matrix-models { display: flex; flex-direction: column; gap: .35rem; min-width: 13rem; }
.fs-matrix-model { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .35rem; padding: .28rem .5rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-md); background: var(--fs-surface); font-size: .8rem; }
.fs-matrix-model strong { min-width: 2.6rem; color: var(--fs-green-950); }
.fs-matrix-model small { color: var(--fs-text-muted); }
.fs-matrix-model .fs-model-state-select { min-width: 7.5rem; }
.fs-matrix-cat .fs-badge { margin-right: .3rem; }
.fs-period-edit { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: .6rem .7rem; margin-top: .6rem; border: 1px dashed var(--fs-line); border-radius: var(--fs-radius-md); }
.fs-period-edit .fs-form-feedback { grid-column: 1 / -1; }
.fs-model-incidencias, .fs-model-notes { display: grid; gap: .5rem; padding-top: .4rem; }
.fs-model-incidencias h3, .fs-model-notes h3 { margin: 0; font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; color: var(--fs-text-muted); }
.fs-model-incidencia, .fs-model-note { display: grid; gap: .2rem; padding: .5rem .7rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-md); background: var(--fs-surface); font-size: .84rem; }
.fs-model-incidencia p, .fs-model-note p { margin: 0; }
.fs-model-incidencia small, .fs-model-note small { color: var(--fs-text-muted); }
.fs-inline-form { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin-top: .3rem; }
.fs-inline-form input { flex: 1 1 auto; min-width: 10rem; min-height: 2rem; padding: .3rem .5rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-sm); font: inherit; font-size: .82rem; }

/* ===== FASE 6 · AppShell global (Sidebar + Topbar + Workspace) ===== */
.fs-app-shell { display: grid; grid-template-columns: 16.5rem minmax(0, 1fr); min-height: 100dvh; }
.fs-shell-body { display: grid; grid-template-rows: auto minmax(0, 1fr); min-width: 0; height: 100dvh; overflow: hidden; }

.fs-topbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4rem; padding: .6rem clamp(1rem, 2vw, 1.75rem); border-bottom: 1px solid var(--fs-line-soft); background: var(--fs-surface); box-shadow: 0 1px 0 rgb(16 47 42 / 4%); z-index: 2; }
.fs-topbar-left { display: flex; align-items: center; gap: .6rem; min-width: 0; flex: 1 1 auto; }
.fs-topbar-right { display: flex; align-items: center; gap: .45rem; }
.fs-global-search { position: relative; flex: 1 1 auto; max-width: 30rem; min-width: 10rem; }
.fs-global-search input { width: 100%; min-height: 2.5rem; padding: .45rem .9rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-md); background: var(--fs-workspace-bg); color: var(--fs-text); font: inherit; }
.fs-global-search input:focus { outline: 2px solid var(--fs-accent-soft); outline-offset: 1px; border-color: var(--fs-accent); background: var(--fs-surface); }
.fs-global-search-results { position: absolute; top: calc(100% + .35rem); left: 0; right: 0; display: grid; gap: .15rem; padding: .4rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-md); background: var(--fs-surface); box-shadow: var(--fs-shadow-md); z-index: 20; }
.fs-global-search-option { padding: .55rem .7rem; border: 0; border-radius: var(--fs-radius-sm); background: transparent; color: var(--fs-text); font: inherit; font-weight: 650; text-align: left; cursor: pointer; }
.fs-global-search-option { display:grid; gap:.1rem; }
.fs-global-search-option small { font-size:.72rem; font-weight:500; color:var(--fs-text-muted); }
.fs-global-search-option:hover { background: var(--fs-accent-soft); }
.fs-global-search-empty { margin: 0; padding: .55rem .7rem; color: var(--fs-text-muted); font-size: .82rem; }

.fs-topbar-icon { position: relative; display: grid; place-items: center; min-width: 2.5rem; min-height: 2.5rem; padding: .35rem .6rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-md); background: var(--fs-surface); color: var(--fs-green-950); font: inherit; font-size: .68rem; font-weight: 900; letter-spacing: .02em; cursor: pointer; }
.fs-topbar-icon:hover { border-color: var(--fs-accent); color: var(--fs-accent); }
.fs-topbar-badge { position: absolute; top: -.45rem; right: -.5rem; min-width: 1.25rem; padding: .12rem .4rem; border: 2px solid var(--fs-surface); border-radius: 99rem; background: #c62828; color: #fff; font-size: .68rem; font-weight: 800; text-align: center; }
.fs-topbar-quickadd { position: relative; }
.fs-topbar-quickadd summary { display: grid; place-items: center; min-width: 2.5rem; min-height: 2.5rem; border: 1px solid var(--fs-accent); border-radius: var(--fs-radius-md); background: var(--fs-accent); color: var(--fs-accent-ink); font: inherit; font-size: 1.15rem; font-weight: 800; cursor: pointer; list-style: none; }
.fs-topbar-quickadd summary::-webkit-details-marker { display: none; }
.fs-topbar-quickadd[open] summary { background: var(--fs-accent-hover); }
.fs-topbar-menu { position: absolute; top: calc(100% + .35rem); right: 0; display: grid; gap: .15rem; min-width: 12rem; padding: .4rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-md); background: var(--fs-surface); box-shadow: var(--fs-shadow-md); z-index: 20; }
.fs-topbar-menu-item { padding: .55rem .7rem; border: 0; border-radius: var(--fs-radius-sm); background: transparent; color: var(--fs-text); font: inherit; font-weight: 650; text-align: left; cursor: pointer; }
.fs-topbar-menu-item:hover { background: var(--fs-accent-soft); }
.fs-topbar-menu-item.is-danger { color: #ae3029; }
.fs-topbar-menu-item.is-danger:hover { background: #fde3e1; }
.fs-topbar-user { position: relative; }
.fs-topbar-user summary { display: flex; align-items: center; gap: .6rem; padding: .3rem .5rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-md); background: var(--fs-surface); cursor: pointer; list-style: none; }
.fs-topbar-user summary::-webkit-details-marker { display: none; }
.fs-topbar-user[open] summary { border-color: var(--fs-accent); }
.fs-topbar-user-copy { display: grid; min-width: 0; text-align: left; }
.fs-topbar-user-copy strong { color: var(--fs-green-950); font-size: .78rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fs-topbar-user-copy small { color: var(--fs-text-muted); font-size: .68rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.fs-workspace-main { min-width: 0; overflow-y: auto; padding: clamp(1rem, 2vw, 1.75rem); }
.fs-workspace-content.fs-card { max-width: 96rem; margin: 0 auto; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.fs-app-shell .fs-area-nav { display: none; }
.fs-app-shell .fs-shell-header { align-items: center; padding-bottom: 1rem; border-bottom: 1px solid #dbe4e1; }
.fs-app-shell .fs-shell-header .fs-button-secondary { display: none; }
.fs-app-shell .fs-shell-title { font-size: clamp(1.6rem, 2.6vw, 2.4rem); }
.fs-app-shell .fs-lead { margin-top: -.75rem; font-size: 1rem; }
.fs-app-shell .fs-sidebar .fs-nav-unread { display: none; }
.fs-app-shell:has(.fs-sidebar.is-collapsed) { grid-template-columns: 4.5rem minmax(0, 1fr); }

/* Sidebar definitiva */
.fs-sidebar { position: sticky; top: 0; display: grid; grid-template-rows: auto 1fr auto auto; height: 100dvh; overflow: hidden; background: var(--fs-sidebar-bg); color: var(--fs-sidebar-text); box-shadow: .25rem 0 1.5rem rgb(16 47 42 / 12%); z-index: 3; transition: width .18s ease; }
.fs-sidebar.is-collapsed { width: 4.5rem; }
.fs-sidebar.is-collapsed .fs-sidebar-brand-copy strong { display: none; }
.fs-sidebar.is-collapsed .fs-sidebar-brand-copy span { display: none; }
.fs-sidebar.is-collapsed .fs-sidebar-group h2 { display: none; }
.fs-sidebar.is-collapsed .fs-sidebar-item { grid-template-columns: 1fr; justify-content: center; padding-inline: .45rem; }
.fs-sidebar.is-collapsed .fs-sidebar-item .fs-sidebar-label, .fs-sidebar.is-collapsed .fs-sidebar-item small { display: none; }
.fs-sidebar.is-collapsed .fs-sidebar-count { position: absolute; top: .2rem; right: .2rem; }
.fs-sidebar.is-collapsed .fs-appearance, .fs-sidebar.is-collapsed .fs-sidebar-footer { display: none; }
.fs-sidebar.is-collapsed .fs-sidebar-nav { padding-inline: .5rem; }
.fs-sidebar-brand { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: 1.15rem 1.1rem; border-bottom: 1px solid rgb(255 255 255 / 12%); }
.fs-sidebar-brand-copy { display: grid; gap: .1rem; min-width: 0; }
.fs-sidebar-brand-copy strong { font-size: 1.02rem; letter-spacing: -.01em; white-space: nowrap; }
.fs-sidebar-brand-copy span { color: var(--fs-sidebar-muted); font-size: .62rem; font-weight: 800; letter-spacing: .14em; white-space: nowrap; }
.fs-sidebar-collapse { display: grid; place-items: center; width: 2rem; height: 2rem; border: 1px solid rgb(255 255 255 / 20%); border-radius: .45rem; background: rgb(255 255 255 / 8%); color: var(--fs-sidebar-muted); font: inherit; font-size: .78rem; cursor: pointer; }
.fs-sidebar-collapse:hover { color: var(--fs-sidebar-text); background: rgb(255 255 255 / 14%); }
.fs-sidebar-nav { overflow-y: auto; padding: .7rem .65rem 1.25rem; scrollbar-width: thin; }
.fs-sidebar-group { display: grid; gap: .22rem; margin-bottom: .9rem; padding-bottom: .35rem; border-bottom: 1px solid rgb(255 255 255 / 8%); }
.fs-sidebar-group h2 { margin: .4rem .2rem .3rem; color: var(--fs-sidebar-muted); font-size: .62rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.fs-sidebar-item { position: relative; display: grid; grid-template-columns: 1.9rem minmax(0, 1fr) auto; align-items: center; gap: .55rem; width: 100%; min-height: 2.5rem; padding: .45rem .6rem; border: 0; border-radius: .6rem; background: transparent; color: var(--fs-sidebar-text); font: inherit; font-size: .86rem; font-weight: 650; text-align: left; cursor: pointer; }
.fs-sidebar-item:hover { background: rgb(255 255 255 / 9%); }
.fs-sidebar-item.is-active { background: linear-gradient(90deg, rgb(111 196 173 / 22%), rgb(111 196 173 / 10%)); color: var(--fs-sidebar-text); box-shadow: inset 3px 0 0 #6fc4ad; }
.fs-sidebar-item.is-disabled { color: var(--fs-sidebar-muted); cursor: default; opacity: .7; }
.fs-sidebar-item small { color: inherit; font-size: .56rem; font-weight: 750; text-transform: uppercase; }
.fs-sidebar-icon { display: grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: .45rem; background: rgb(255 255 255 / 9%); color: #9fd8c6; font-size: .56rem; font-weight: 900; letter-spacing: .02em; }
.fs-sidebar-item.is-active .fs-sidebar-icon { background: #6fc4ad; color: #0e2326; }
.fs-sidebar-count { min-width: 1.35rem; padding: .12rem .4rem; border-radius: 99rem; background: #c62828; color: #fff; font-size: .68rem; font-weight: 800; text-align: center; }
.fs-sidebar-footer { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .6rem; padding: .8rem .7rem; border-top: 1px solid rgb(255 255 255 / 12%); background: rgb(0 0 0 / 8%); }
.fs-sidebar-identity { display: grid; min-width: 0; }
.fs-sidebar-identity strong, .fs-sidebar-identity small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fs-sidebar-identity strong { font-size: .72rem; }
.fs-sidebar-identity small { color: var(--fs-sidebar-muted); font-size: .6rem; }
.fs-sidebar-signout { padding: .4rem; border: 0; background: transparent; color: #fff; font: inherit; font-size: .66rem; font-weight: 800; cursor: pointer; }

/* Dashboard · cockpit operativo */
.fs-dashboard { gap: 1.15rem; }
.fs-dash-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; padding-bottom: .85rem; border-bottom: 1px solid var(--fs-line-soft); }
.fs-dash-head h1 { margin: 0; font-size: clamp(1.45rem, 2.2vw, 1.9rem); letter-spacing: -.01em; color: var(--fs-green-950); }
.fs-dash-head p { margin: .2rem 0 0; color: var(--fs-text-muted); font-size: .9rem; text-transform: capitalize; }
.fs-kpi-strip { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: .7rem; }
.fs-kpi { display: flex; align-items: center; gap: .7rem; min-height: 4.6rem; padding: .7rem .8rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-md); background: var(--fs-surface); box-shadow: var(--fs-shadow-sm); }
.fs-kpi-icon { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; flex: none; border-radius: .6rem; background: var(--fs-accent-soft); color: var(--fs-accent-hover); font-size: .6rem; font-weight: 900; letter-spacing: .02em; }
.fs-kpi.is-attention .fs-kpi-icon { background: #fff0c9; color: #a6600b; }
.fs-kpi.is-danger .fs-kpi-icon { background: #fde3e1; color: #ae3029; }
.fs-kpi.is-info .fs-kpi-icon { background: #dfe8f5; color: #264f82; }
.fs-kpi-copy { display: grid; min-width: 0; }
.fs-kpi-value { color: var(--fs-green-950); font-size: 1.35rem; line-height: 1.05; }
.fs-kpi-label { color: var(--fs-text-muted); font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fs-kpi-note { color: var(--fs-text-muted); font-size: .68rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fs-kpi.is-attention .fs-kpi-value { color: #a6600b; }
.fs-kpi.is-danger .fs-kpi-value { color: #ae3029; }

.fs-dash-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; align-items: start; }
.fs-dash-panel { display: grid; gap: .55rem; padding: .9rem 1rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-lg); background: var(--fs-surface); box-shadow: var(--fs-shadow-sm); }
.fs-dash-panel .fs-panel-header { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: 0; }
.fs-dash-panel .fs-panel-header h3 { margin: 0; font-size: .74rem; color: var(--fs-green-950); letter-spacing: .05em; text-transform: uppercase; }
.fs-dash-count { min-width: 1.4rem; padding: .1rem .45rem; border-radius: 99rem; background: var(--fs-accent-soft); color: var(--fs-accent-hover); font-size: .7rem; font-weight: 850; text-align: center; }
.fs-dash-list { display: grid; }
.fs-dash-row { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .55rem; min-height: 2.5rem; padding: .4rem .1rem; border: 0; border-bottom: 1px solid var(--fs-line-soft); background: transparent; color: var(--fs-text); font: inherit; text-align: left; cursor: pointer; }
.fs-dash-row:last-child { border-bottom: 0; }
.fs-dash-row:hover { background: var(--fs-workspace-bg); }
.fs-dash-dot { width: .45rem; height: .45rem; border-radius: 50%; background: var(--fs-accent); flex: none; }
.fs-dash-row.is-danger .fs-dash-dot { background: #d23730; }
.fs-dash-row.is-warning .fs-dash-dot { background: #dd7c10; }
.fs-dash-row.is-info .fs-dash-dot { background: #2779bd; }
.fs-dash-row.is-neutral .fs-dash-dot { background: #9db3ac; }
.fs-dash-row-copy { display: grid; min-width: 0; }
.fs-dash-row-copy strong { color: var(--fs-green-950); font-size: .8rem; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fs-dash-row-copy small { color: var(--fs-text-muted); font-size: .7rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fs-dash-rail { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; padding: .1rem 0 0; }
.fs-dash-chip { display: inline-flex; align-items: center; gap: .5rem; min-height: 2.2rem; padding: .4rem .75rem; border: 1px solid var(--fs-line); border-radius: 99rem; background: var(--fs-workspace-bg); color: var(--fs-green-950); font: inherit; text-align: left; cursor: pointer; }
.fs-dash-chip:hover { border-color: var(--fs-accent); background: var(--fs-accent-soft); }
.fs-dash-chip strong { font-size: .76rem; }
.fs-dash-chip span { color: var(--fs-text-muted); font-size: .7rem; }

@media (max-width: 80rem) { .fs-dash-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fs-kpi-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 62rem) {
  .fs-app-shell { grid-template-columns: minmax(0, 1fr); }
  .fs-shell-body { height: auto; overflow: visible; }
  .fs-workspace-main { overflow: visible; }
  .fs-sidebar { position: static; height: auto; max-height: none; }
  .fs-sidebar-nav { display: flex; gap: .5rem; overflow-x: auto; padding: .65rem; }
  .fs-sidebar-group { display: flex; flex: 0 0 auto; margin: 0; }
  .fs-sidebar-group h2 { display: none; }
  .fs-sidebar-item { width: auto; grid-template-columns: auto auto; white-space: nowrap; }
  .fs-sidebar-item small { display: none; }
  .fs-sidebar-count { display: none; }
  .fs-sidebar-footer { display: none; }
  .fs-sidebar.is-collapsed { width: auto; }
  .fs-sidebar.is-collapsed .fs-sidebar-brand-copy { display: none; }
  .fs-sidebar.is-collapsed .fs-sidebar-group { display: flex; }
  .fs-topbar-user-copy { display: none; }
}
@media (max-width: 52rem) {
  .fs-dash-grid { grid-template-columns: minmax(0, 1fr); }
  .fs-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fs-topbar { flex-wrap: wrap; }
  .fs-global-search { max-width: none; }
}

:root[data-color-mode="dark"] .fs-kpi-label,
:root[data-color-mode="dark"] .fs-kpi-note,
:root[data-color-mode="dark"] .fs-dash-row-copy small,
:root[data-color-mode="dark"] .fs-dash-chip span,
:root[data-color-mode="dark"] .fs-dash-head p,
:root[data-color-mode="dark"] .fs-global-search-empty { color: #a8b6b2; }
:root[data-color-mode="dark"] .fs-dash-row:hover { background: #101817; }
:root[data-color-mode="dark"] .fs-dash-chip { background: #0f1413; border-color: #2a332f; color: #f1f7f5; }
:root[data-color-mode="dark"] .fs-dash-chip:hover { border-color: #77a99c; background: #1c2623; }
:root[data-color-mode="dark"] .fs-dash-row { color: #e7f1ee; }
:root[data-color-mode="dark"] .fs-dash-row-copy strong { color: #f1f7f5; }
:root[data-color-mode="dark"] .fs-dash-panel, :root[data-color-mode="dark"] .fs-kpi { background: #151b1a; border-color: #26302d; }
:root[data-color-mode="dark"] .fs-kpi-value { color: #f1f7f5; }
:root[data-color-mode="dark"] .fs-dash-count { background: #26302d; color: #8bc4b6; }
:root[data-color-mode="dark"] .fs-topbar { background: #151b1a; border-color: #26302d; }
:root[data-color-mode="dark"] .fs-topbar-icon { background: #151b1a; border-color: #39423f; color: #8bc4b6; }
:root[data-color-mode="dark"] .fs-global-search input { background: #0f1413; border-color: #39423f; color: #e7f1ee; }
:root[data-color-mode="dark"] .fs-global-search-results, :root[data-color-mode="dark"] .fs-topbar-menu { background: #151b1a; border-color: #26302d; }
:root[data-color-mode="dark"] .fs-global-search-option, :root[data-color-mode="dark"] .fs-topbar-menu-item { color: #e7f1ee; }
:root[data-color-mode="dark"] .fs-global-search-option:hover, :root[data-color-mode="dark"] .fs-topbar-menu-item:hover { background: #1c2623; }
:root[data-color-mode="dark"] .fs-topbar-user summary { background: #151b1a; border-color: #39423f; }
:root[data-color-mode="dark"] .fs-topbar-user-copy strong { color: #f1f7f5; }

@media (prefers-color-scheme: dark) {
  :root[data-color-mode="system"] .fs-kpi-label,
  :root[data-color-mode="system"] .fs-kpi-note,
  :root[data-color-mode="system"] .fs-dash-row-copy small,
  :root[data-color-mode="system"] .fs-dash-chip span,
  :root[data-color-mode="system"] .fs-dash-head p,
  :root[data-color-mode="system"] .fs-global-search-empty { color: #a8b6b2; }
  :root[data-color-mode="system"] .fs-dash-row:hover { background: #101817; }
  :root[data-color-mode="system"] .fs-dash-chip { background: #0f1413; border-color: #2a332f; color: #f1f7f5; }
  :root[data-color-mode="system"] .fs-dash-chip:hover { border-color: #77a99c; background: #1c2623; }
  :root[data-color-mode="system"] .fs-dash-row { color: #e7f1ee; }
  :root[data-color-mode="system"] .fs-dash-row-copy strong { color: #f1f7f5; }
  :root[data-color-mode="system"] .fs-dash-panel, :root[data-color-mode="system"] .fs-kpi { background: #151b1a; border-color: #26302d; }
  :root[data-color-mode="system"] .fs-kpi-value { color: #f1f7f5; }
  :root[data-color-mode="system"] .fs-dash-count { background: #26302d; color: #8bc4b6; }
  :root[data-color-mode="system"] .fs-topbar { background: #151b1a; border-color: #26302d; }
  :root[data-color-mode="system"] .fs-topbar-icon { background: #151b1a; border-color: #39423f; color: #8bc4b6; }
  :root[data-color-mode="system"] .fs-global-search input { background: #0f1413; border-color: #39423f; color: #e7f1ee; }
  :root[data-color-mode="system"] .fs-global-search-results, :root[data-color-mode="system"] .fs-topbar-menu { background: #151b1a; border-color: #26302d; }
  :root[data-color-mode="system"] .fs-global-search-option, :root[data-color-mode="system"] .fs-topbar-menu-item { color: #e7f1ee; }
  :root[data-color-mode="system"] .fs-global-search-option:hover, :root[data-color-mode="system"] .fs-topbar-menu-item:hover { background: #1c2623; }
  :root[data-color-mode="system"] .fs-topbar-user summary { background: #151b1a; border-color: #39423f; }
  :root[data-color-mode="system"] .fs-topbar-user-copy strong { color: #f1f7f5; }
}

.fs-config-tabs { display:flex; gap:.5rem; margin:1rem 0; border-bottom:2px solid var(--fs-line); }
.fs-config-tabs { overflow-x:auto; }


.fs-config-tabs { display:flex; gap:.5rem; margin:1rem 0; border-bottom:2px solid var(--fs-line); }
.fs-config-tab { min-height:2.6rem; padding:.6rem 1.1rem; border:0; border-bottom:3px solid transparent; background:transparent; color:var(--fs-muted); font:inherit; font-weight:800; cursor:pointer; }
.fs-config-tab.is-active { color:var(--fs-green-950); border-bottom-color:var(--fs-green-950); }
.fs-config-tab:focus-visible { outline:3px solid #2779bd; outline-offset:2px; border-radius:.4rem; }
.fs-config-tabs { overflow-x:auto; }
.fs-config-tab { white-space:nowrap; }


.fs-config-panel { display:none; }
.fs-config-panel.is-active { display:block; }


.fs-obligation-grid { overflow:auto; border:1px solid var(--fs-line); border-radius:.8rem; background:var(--fs-surface); margin-top:.75rem; }


.fs-obligation-row { display:grid; gap:.7rem; align-items:center; min-width:64rem; padding:.75rem; border-bottom:1px solid var(--fs-line); }
.fs-obligation-row:last-child { border-bottom:0; }
.fs-obligation-row.is-header { position:sticky; top:0; z-index:1; background:var(--fs-green-100); font-size:.74rem; text-transform:uppercase; }
.fs-obligation-row.is-areas { grid-template-columns:minmax(12rem,1.4fr) minmax(8rem,.8fr) 5rem 8rem 7rem minmax(12rem,1fr); }
.fs-obligation-row.is-catalog { grid-template-columns:minmax(9rem,.9fr) minmax(14rem,1.4fr) minmax(9rem,.9fr) minmax(9rem,.9fr) 7rem 7rem 8rem 5rem minmax(12rem,1.2fr); }
.fs-obligation-row code { color:var(--fs-muted); font-size:.8rem; }


.fs-obligation-editor-row { display:grid; grid-template-columns:repeat(4,minmax(10rem,1fr)) auto auto; gap:.7rem; min-width:64rem; padding:1rem; border-bottom:1px solid var(--fs-line); background:color-mix(in srgb,var(--fs-green-100) 65%,var(--fs-surface)); }
.fs-obligation-editor-row label { display:grid; gap:.35rem; font-size:.75rem; font-weight:800; }
.fs-obligation-editor-row select,.fs-obligation-editor-row input { min-height:2.5rem; padding:.5rem; border:1px solid var(--fs-line); border-radius:.5rem; background:var(--fs-surface); color:var(--fs-green-950); }
.fs-obligation-editor-row { grid-template-columns:1fr; min-width:0; }
.fs-obligation-editor-row .fs-checkbox { grid-column:auto; }


.fs-obligations-config-entry { display:flex; justify-content:flex-start; margin:.25rem 0 .75rem; }
.fs-obligations-config-entry .fs-button { width:100%; }


.fs-obligation-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.4rem; }


.fs-toast { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 3000; max-width: 22rem; padding: .7rem 1rem; border-radius: .65rem; background: var(--fs-green-900, #0b3d2e); color: #fff; font-size: .88rem; font-weight: 700; box-shadow: 0 .5rem 1.4rem rgba(0,0,0,.25); opacity: 0; transform: translateY(.6rem); transition: opacity .25s ease, transform .25s ease; pointer-events: none; }
.fs-toast.is-visible { opacity: 1; transform: translateY(0); }
.fs-toast.is-danger { background: #7f1d1d; }
.fs-push-gate { position:fixed; inset:0; z-index:9000; display:grid; place-items:center; padding:1rem; background:rgb(4 17 14 / 76%); backdrop-filter:blur(8px); }
.fs-push-gate-panel { width:min(29rem,100%); display:grid; gap:1rem; padding:clamp(1.35rem,5vw,2.25rem); border:1px solid var(--fs-line); border-radius:1.25rem; background:var(--fs-surface); color:var(--fs-green-950); box-shadow:0 1.5rem 4rem rgb(0 0 0 / 35%); }
.fs-push-gate-panel h1,.fs-push-gate-panel p { margin:0; }
.fs-push-gate-panel .fs-button { width:100%; }

.fs-actions-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .75rem 1rem; margin: .75rem 0; border: 1px solid var(--fs-line); border-radius: .65rem; background: var(--fs-surface); }
.fs-actions-bar > strong { margin-right: .25rem; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; color: var(--fs-muted, #6b7280); }
.fs-context-nav { display:flex; flex-wrap:wrap; gap:.55rem; align-items:center; margin:0 0 .65rem; padding:.45rem .7rem; border:1px solid var(--fs-line); border-radius:.7rem; background:var(--fs-surface); }
.fs-button-danger { background: #7f1d1d; color: #fff; border: 1px solid #7f1d1d; box-shadow: none; }
.fs-button-danger:hover { background: #9f1d1d; border-color: #9f1d1d; }
.fs-modal-overlay { position: fixed; inset: 0; z-index: 4000; display: flex; align-items: center; justify-content: center; background: rgba(10, 20, 18, .55); padding: 1rem; }
.fs-modal { width: min(40rem, 100%); max-height: 82vh; display: flex; flex-direction: column; background: var(--fs-surface); border: 1px solid var(--fs-line); border-radius: .8rem; box-shadow: 0 1rem 3rem rgba(0,0,0,.35); overflow: hidden; }
.fs-modal-head { display: flex; align-items: center; justify-content: space-between; padding: .9rem 1rem; border-bottom: 1px solid var(--fs-line); }
.fs-modal-body { overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: .5rem; }
.fs-repository-modal{width:min(56rem,100%)}
.fs-repository-upload{display:grid;gap:.75rem;padding-top:1rem;border-top:1px solid var(--fs-line)}
.fs-repository-upload input[type=file]{width:100%;padding:.75rem;border:1px dashed var(--fs-line);border-radius:.7rem;background:var(--fs-surface-soft)}
.fs-repository-file-preview{display:grid;gap:.25rem}
.fs-compose-modal { width:min(64rem,calc(100vw - 2rem)); }
.fs-compose-modal .fs-modal-body { overflow-x:hidden; }
.fs-compose-modal-form { width:100%; min-width:0; box-sizing:border-box; grid-template-columns:repeat(4,minmax(0,1fr)); }
.fs-compose-modal-form label,.fs-compose-modal-form input,.fs-compose-modal-form select,.fs-compose-modal-form textarea { min-width:0; max-width:100%; width:100%; box-sizing:border-box; overflow-wrap:anywhere; }
.fs-compose-modal-form textarea { resize:vertical; }
@media (max-width:48rem) {
  .fs-modal-overlay { padding:.5rem; align-items:center; }
  .fs-compose-modal { width:calc(100vw - 1rem); max-height:calc(100dvh - 1rem); }
  .fs-compose-modal-form { grid-template-columns:minmax(0,1fr); padding:.75rem; margin:0; }
  .fs-compose-modal-form .fs-form-wide,.fs-compose-modal-form .fs-form-feedback { grid-column:auto; }
  .fs-compose-modal .fs-modal-head,.fs-compose-modal .fs-modal-body { padding:.75rem; }
  .fs-compose-modal-form .fs-button { width:100%; min-height:2.75rem; }
}
.fs-compliance-sheet { border-collapse: separate; border-spacing: 0; min-width: max-content; }
.fs-compliance-sheet th:first-child { position: sticky; left: 0; z-index: 3; min-width: 240px; background: var(--fs-surface, #fff); }
.fs-compliance-sheet thead th { position: sticky; top: 0; z-index: 2; background: var(--fs-surface, #fff); }
.fs-compliance-sheet td { min-width: 7rem; text-align: center; }
.fs-compliance-sheet .fs-matrix-check { width: 1.1rem; height: 1.1rem; }
.fs-sheet-empty { color: #9aa5a2; }
.fs-sheet-editor { margin-top: 18px; }
.fs-matrix-note-button { display:block; margin:.2rem auto 0; padding:.1rem .3rem; border:0; background:transparent; color:var(--fs-accent); font:inherit; font-size:.68rem; text-decoration:underline; cursor:pointer; }
.fs-note-manager-row { display:grid; gap:.55rem; padding:.8rem; border:1px solid var(--fs-line); border-radius:.65rem; background:var(--fs-workspace-bg); }
.fs-note-manager-row textarea { width:100%; resize:vertical; }
.fs-sheet-editor .fs-work-card { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(150px, .7fr) minmax(220px, 1fr) minmax(220px, 1fr); gap: 10px; align-items: end; }
@media (max-width: 900px) { .fs-sheet-editor .fs-work-card { grid-template-columns: 1fr; } }

/* PWA adaptable: navegación táctil y panel lateral fuera del lienzo. */
.fs-mobile-menu,.fs-mobile-backdrop { display:none; }
@media (max-width: 62rem) {
  html,body { max-width:100%; overflow-x:hidden; }
  body:has(#app[data-audience="internal"]) { overflow-x:hidden; }
  .fs-app-shell { display:block; min-height:100dvh; }
  .fs-shell-body { min-width:0; min-height:100dvh; }
  .fs-sidebar,
  .fs-sidebar.is-collapsed {
    position:fixed; inset:0 auto 0 0; display:grid; width:min(86vw,20rem); height:100dvh;
    max-height:none; transform:translateX(-105%); transition:transform .2s ease; z-index:60;
    grid-template-rows:auto auto 1fr auto auto; box-shadow:.6rem 0 2rem rgb(0 0 0 / 28%);
  }
  .fs-sidebar.is-mobile-open { transform:translateX(0); }
  .fs-sidebar.is-collapsed .fs-sidebar-brand-copy,
  .fs-sidebar.is-collapsed .fs-sidebar-item .fs-sidebar-label,
  .fs-sidebar.is-collapsed .fs-sidebar-footer,
  .fs-sidebar.is-collapsed .fs-appearance { display:grid; }
  .fs-sidebar-collapse { display:none; }
  .fs-sidebar-search { display:block; }
  .fs-sidebar-nav { display:block; overflow-y:auto; overflow-x:hidden; padding:.65rem .65rem 1rem; }
  .fs-sidebar-group,.fs-sidebar.is-collapsed .fs-sidebar-group { display:grid; margin:0 0 .75rem; }
  .fs-sidebar-group h2 { display:block; }
  .fs-sidebar-item,.fs-sidebar.is-collapsed .fs-sidebar-item { width:100%; grid-template-columns:1.9rem minmax(0,1fr) auto; justify-content:stretch; white-space:normal; }
  .fs-sidebar-item small { display:block; }
  .fs-sidebar-count { display:inline-block; }
  .fs-sidebar-footer { display:grid; padding-bottom:max(.8rem,env(safe-area-inset-bottom)); }
  .fs-mobile-menu { display:grid; place-items:center; flex:0 0 auto; width:2.75rem; height:2.75rem; border:1px solid var(--fs-line); border-radius:.7rem; background:var(--fs-surface); color:var(--fs-green-950); font:inherit; font-size:1.2rem; cursor:pointer; }
  .fs-mobile-backdrop { position:fixed; inset:0; display:block; width:100%; height:100%; border:0; background:rgb(4 17 14 / 55%); z-index:50; }
  .fs-mobile-backdrop[hidden] { display:none; }
  .fs-topbar { position:sticky; top:0; padding-top:max(.6rem,env(safe-area-inset-top)); z-index:40; }
  .fs-topbar-left { min-width:0; }
  .fs-workspace-main { padding:.9rem; overflow:visible; }
  .fs-table-scroll { max-width:calc(100vw - 1.8rem); }
}

@media (max-width: 40rem) {
  .fs-card { min-height:0; padding:1rem; border:1px solid var(--fs-line-soft); border-radius:.8rem; box-shadow:none; }
  .fs-login { min-height:100dvh; display:flex; flex-direction:column; justify-content:center; padding:max(1.25rem,env(safe-area-inset-top)) max(1.25rem,env(safe-area-inset-right)) max(1.25rem,env(safe-area-inset-bottom)) max(1.25rem,env(safe-area-inset-left)); border:0; border-radius:0; }
  .fs-login h1 { font-size:clamp(2rem,11vw,3rem); line-height:1.02; }
  .fs-confirm-form { gap:.9rem; }
  .fs-confirm-form input,.fs-confirm-form select,.fs-confirm-form textarea,
  input,select,textarea { min-height:2.85rem; font-size:16px; }
  button,.fs-button { min-height:2.75rem; }
  .fs-topbar { gap:.5rem; }
  .fs-topbar-left { width:100%; }
  .fs-topbar-right { width:100%; justify-content:flex-end; }
  .fs-global-search { min-width:0; }
  .fs-topbar-icon,.fs-topbar-quickadd summary { min-width:2.75rem; min-height:2.75rem; }
  .fs-workspace-main { padding:.7rem; padding-bottom:max(1rem,env(safe-area-inset-bottom)); }
  .fs-workspace,.fs-panel-header { min-width:0; }
  .fs-panel-header h1,.fs-shell-title { font-size:clamp(1.55rem,8vw,2.15rem); overflow-wrap:anywhere; }
  .fs-actions,.fs-work-actions { display:grid; grid-template-columns:1fr; width:100%; }
  .fs-actions .fs-button,.fs-work-actions .fs-button { width:100%; }
  .fs-matrix-toolbar,.fs-compliance-controls { grid-template-columns:1fr; }
  .fs-table-scroll { max-width:calc(100vw - 1.4rem); max-height:calc(100dvh - 13rem); border-radius:.6rem; }
  .fs-workspace-content.fs-card { padding:0; border:0; border-radius:0; }
}

@media (display-mode: standalone) {
  body { padding-top:env(safe-area-inset-top); padding-right:env(safe-area-inset-right); padding-bottom:env(safe-area-inset-bottom); padding-left:env(safe-area-inset-left); }
  .fs-topbar { padding-top:max(.6rem,env(safe-area-inset-top)); }
}

/* Buscador lateral: resultados compactos sin ocupar la fila flexible del menú. */
.fs-sidebar { grid-template-rows:auto auto minmax(0,1fr) auto auto; }
.fs-sidebar-searchbox { position:relative; min-width:0; }
.fs-sidebar-searchbox .fs-sidebar-search { width:calc(100% - 1.3rem); }
.fs-sidebar-search-results { position:absolute; top:calc(100% + .2rem); left:.65rem; right:.65rem; max-height:min(18rem,45vh); z-index:15; background:var(--fs-sidebar-bg); box-shadow:0 .8rem 1.8rem rgb(0 0 0 / 32%); }
.fs-email-attachments input[type="file"] { width:100%; padding:.65rem; border:1px dashed var(--fs-line); border-radius:.6rem; background:var(--fs-workspace-bg); }
.fs-firma-editor { display:grid; gap:.75rem; min-width:0; }
.fs-firma-viewer-toolbar,.fs-firma-placement-controls { display:flex; flex-wrap:wrap; align-items:center; gap:.45rem; }
.fs-firma-viewer-toolbar .fs-button { min-width:2.5rem; padding:.45rem .7rem; }
.fs-firma-placement-controls select { min-height:2.65rem; min-width:min(16rem,100%); }
.fs-firma-viewer-viewport { max-width:100%; max-height:72vh; overflow:auto; padding:.75rem; border:1px solid var(--fs-line); border-radius:.75rem; background:#d9dfdd; }
.fs-firma-page-stage { position:relative; margin:0 auto; background:#fff; box-shadow:0 .4rem 1.2rem rgb(0 0 0 / 18%); touch-action:pan-x pan-y; }
.fs-firma-page-stage.is-placing,.fs-firma-page-stage.is-placing canvas { cursor:crosshair; }
.fs-firma-page-stage canvas { display:block; max-width:none; }
.fs-firma-overlays { position:absolute; inset:0; pointer-events:none; }
.fs-firma-field { position:absolute; display:grid; place-items:center; min-width:2rem; min-height:1rem; border:2px dashed var(--fs-accent); border-radius:.35rem; background:color-mix(in srgb,var(--fs-accent) 14%,transparent); color:#062d23; font-size:.72rem; font-weight:800; cursor:move; pointer-events:auto; touch-action:none; box-sizing:border-box; user-select:none; }
.fs-firma-field-delete { position:absolute; top:-.65rem; right:-.65rem; display:grid; place-items:center; width:1.35rem; height:1.35rem; padding:0; border:0; border-radius:50%; background:#8f1d1d; color:#fff; cursor:pointer; }
.fs-firma-field-resize { position:absolute; right:-.2rem; bottom:-.2rem; width:.9rem; height:.9rem; border-radius:.2rem; background:var(--fs-accent); cursor:nwse-resize; }
@media (max-width:40rem){.fs-firma-viewer-viewport{padding:.35rem;max-height:66vh}.fs-firma-placement-controls>*{width:100%}.fs-firma-viewer-toolbar{position:sticky;left:0}.fs-firma-field{font-size:.62rem}}
+
/* Administración y Herramientas: patrón visual FINANSIERRA reutilizable. */
.fs-card-panel { border:1px solid var(--fs-line); border-radius:var(--fs-radius-lg); background:var(--fs-surface); box-shadow:var(--fs-shadow-sm); }
.fs-admin-section-tabs,.fs-detail-tabs { display:flex; flex-wrap:wrap; gap:.45rem; padding:.35rem; border:1px solid var(--fs-line); border-radius:var(--fs-radius-lg); background:var(--fs-workspace-bg); }
.fs-admin-section-tab,.fs-detail-tab { min-height:2.7rem; padding:.65rem .9rem; border:0; border-radius:var(--fs-radius-md); background:transparent; color:var(--fs-text-muted); font:inherit; font-weight:800; cursor:pointer; }
.fs-admin-section-tab:hover,.fs-detail-tab:hover { background:var(--fs-accent-soft); color:var(--fs-text); }
.fs-admin-section-tab.is-active,.fs-detail-tab.is-active { background:var(--fs-accent); color:var(--fs-accent-ink); box-shadow:var(--fs-shadow-sm); }
.fs-admin-section-host { min-width:0; }
.fs-admin-roles-panel { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(18rem,100%),1fr)); gap:1rem; }
.fs-role-card { display:grid; gap:.8rem; padding:1rem; border:1px solid var(--fs-line); border-radius:var(--fs-radius-lg); background:var(--fs-surface); box-shadow:var(--fs-shadow-sm); }
.fs-role-card p { margin:0; color:var(--fs-text-muted); line-height:1.5; }
.fs-role-card-head { display:flex; align-items:center; justify-content:space-between; gap:.7rem; }
.fs-role-tags,.fs-permission-legend { display:flex; flex-wrap:wrap; gap:.4rem; }
.fs-role-tags span,.fs-permission-legend span { padding:.3rem .55rem; border:1px solid var(--fs-line); border-radius:999px; background:var(--fs-workspace-bg); color:var(--fs-text-muted); font-size:.74rem; font-weight:800; }
.fs-permission-toolbar { position:sticky; top:0; z-index:2; display:grid; grid-template-columns:minmax(12rem,1fr) auto auto; gap:.65rem; align-items:center; padding:.75rem; border:1px solid var(--fs-line); border-radius:var(--fs-radius-lg); background:var(--fs-surface); box-shadow:var(--fs-shadow-sm); }
.fs-permission-toolbar input { width:100%; }
.fs-permission-summary { color:var(--fs-text-muted); font-size:.8rem; font-weight:800; }
.fs-permission-legend .is-inherited,.fs-permission-cell[data-permission-state="inherited"] { border-color:var(--fs-accent); background:var(--fs-accent-soft); }
.fs-permission-legend .is-additional,.fs-permission-cell[data-permission-state="additional"] { border-color:var(--fs-green-700); background:color-mix(in srgb,var(--fs-accent-soft) 55%,var(--fs-surface)); }
.fs-permission-matrix { display:grid; gap:.75rem; }
.fs-permission-module { border:1px solid var(--fs-line); border-radius:var(--fs-radius-lg); overflow:hidden; background:var(--fs-surface); }
.fs-permission-module-head { display:flex; align-items:center; justify-content:space-between; gap:.7rem; padding:.7rem .85rem; background:var(--fs-workspace-bg); text-transform:capitalize; }
.fs-permission-actions { display:grid; grid-template-columns:repeat(auto-fit,minmax(9rem,1fr)); gap:.55rem; padding:.7rem; }
.fs-permission-cell { display:grid !important; grid-template-columns:minmax(0,1fr) auto; gap:.15rem .6rem; align-items:center; min-height:4.25rem; padding:.65rem; border:1px solid var(--fs-line); border-radius:var(--fs-radius-md); background:var(--fs-surface); cursor:pointer; }
.fs-permission-cell > span { text-transform:capitalize; font-weight:850; }
.fs-permission-cell small { grid-column:1/-1; color:var(--fs-text-muted); overflow-wrap:anywhere; }
.fs-permission-cell input { width:1.15rem; height:1.15rem; }
.fs-role-matrix-toolbar { display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; padding:.75rem; border:1px solid var(--fs-line); border-radius:var(--fs-radius-lg); background:var(--fs-surface); box-shadow:var(--fs-shadow-sm); margin-bottom:.75rem; }
.fs-role-matrix-toolbar input[type="search"] { flex:1 1 12rem; min-width:10rem; }
.fs-role-matrix-summary { color:var(--fs-text-muted); font-size:.8rem; font-weight:800; margin-left:auto; }
.fs-role-matrix-scroll { overflow-x:auto; max-height:32rem; overflow-y:auto; border:1px solid var(--fs-line); border-radius:var(--fs-radius-lg); background:var(--fs-surface); }
.fs-role-matrix-table { border-collapse:separate; border-spacing:0; width:100%; min-width:34rem; font-size:.82rem; }
.fs-role-matrix-table thead th { position:sticky; top:0; z-index:2; background:var(--fs-workspace-bg); padding:.5rem .6rem; text-align:center; font-weight:850; border-bottom:1px solid var(--fs-line); white-space:nowrap; }
.fs-role-matrix-table thead th:first-child { left:0; z-index:3; text-align:left; }
.fs-role-matrix-table th[scope="row"] { position:sticky; left:0; z-index:1; background:var(--fs-surface); text-align:left; padding:.45rem .6rem; font-weight:700; border-right:1px solid var(--fs-line); border-bottom:1px solid var(--fs-line); min-width:11rem; max-width:16rem; }
.fs-role-matrix-table th[scope="row"] small { display:block; color:var(--fs-text-muted); font-weight:500; overflow-wrap:anywhere; }
.fs-role-matrix-table td { text-align:center; padding:.35rem; border-bottom:1px solid var(--fs-line); }
.fs-role-matrix-table td input { width:1.05rem; height:1.05rem; }
.fs-role-matrix-row:hover td { background:var(--fs-workspace-bg); }
.fs-role-matrix-group th { background:var(--fs-accent-soft); border-bottom:1px solid var(--fs-line); padding:0; }
.fs-role-matrix-group-toggle { display:flex; align-items:center; gap:.5rem; width:100%; background:none; border:0; padding:.5rem .6rem; font-weight:850; text-transform:capitalize; cursor:pointer; color:inherit; text-align:left; font-size:inherit; }
.fs-role-matrix-caret { display:inline-block; transition:transform .15s ease; }
.fs-role-matrix-group-toggle.is-expanded .fs-role-matrix-caret { transform:rotate(90deg); }
.fs-role-matrix-table th.is-owner-col,.fs-role-matrix-table td.is-owner-col { background:color-mix(in srgb, var(--fs-workspace-bg) 60%, transparent); }
.fs-role-matrix-select-all { border:0; background:none; color:var(--fs-accent); font-size:.68rem; font-weight:800; cursor:pointer; padding:0; text-decoration:underline; }
.fs-security-card { padding:1rem; border:1px solid var(--fs-line); border-radius:var(--fs-radius-lg); background:var(--fs-workspace-bg); }
.fs-tools-board,.fs-tools-section-body,.fs-tools-subsection-body { display:grid; gap:.8rem; }
.fs-tools-toolbar { display:flex; align-items:center; justify-content:space-between; gap:.7rem; padding:.75rem; border:1px solid var(--fs-line); border-radius:var(--fs-radius-lg); background:var(--fs-workspace-bg); }
.fs-tools-toolbar > span { color:var(--fs-text-muted); font-weight:800; }
.fs-tools-section,.fs-tools-subsection { border:1px solid var(--fs-line); border-radius:var(--fs-radius-lg); background:var(--fs-surface); box-shadow:var(--fs-shadow-sm); overflow:hidden; }
.fs-tools-section > summary,.fs-tools-subsection > summary { display:flex; align-items:center; justify-content:space-between; gap:.8rem; min-height:3.6rem; padding:.8rem 1rem; cursor:pointer; }
.fs-tools-section > summary { background:var(--fs-workspace-bg); }
.fs-tools-section > summary span:first-child { display:grid; gap:.15rem; }
.fs-tools-section summary small { color:var(--fs-text-muted); }
.fs-tools-section-body { padding:1rem; }
.fs-tools-subsection-body { padding:.8rem; border-top:1px solid var(--fs-line); }
.fs-tools-admin-actions { display:flex; flex-wrap:wrap; gap:.55rem; }
.fs-tool-links { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr)); gap:.7rem; }
.fs-tool-link { display:grid; grid-template-columns:auto minmax(0,1fr); gap:.7rem; align-items:center; min-height:5rem; padding:.8rem; border:1px solid var(--fs-line); border-radius:var(--fs-radius-lg); background:var(--fs-surface); transition:border-color .15s ease,transform .15s ease; }
.fs-tool-link:hover { border-color:var(--fs-accent); transform:translateY(-1px); }
.fs-tool-link a { color:var(--fs-text); font-weight:850; text-decoration:none; overflow-wrap:anywhere; }
.fs-tool-link small { display:block; margin-top:.2rem; color:var(--fs-text-muted); overflow-wrap:anywhere; }
.fs-tool-link-icon { display:grid; place-items:center; width:2.3rem; height:2.3rem; border-radius:var(--fs-radius-md); background:var(--fs-accent-soft); color:var(--fs-accent); font-weight:900; }
.fs-tool-link .fs-tools-admin-actions { grid-column:1/-1; padding-top:.45rem; border-top:1px solid var(--fs-line-soft); }
.fs-tools-section.is-inactive,.fs-tools-subsection.is-inactive,.fs-tool-link.is-inactive { opacity:.65; }
.fs-tools-editor { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; padding:1rem; }
.fs-tools-editor-title { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; }
.fs-tools-editor label { display:grid; gap:.35rem; font-size:.78rem; font-weight:800; }
.fs-tools-editor input,.fs-tools-editor select { min-width:0; min-height:2.65rem; width:100%; padding:.55rem .65rem; border:1px solid var(--fs-line); border-radius:var(--fs-radius-md); background:var(--fs-surface); color:var(--fs-text); }
@media (max-width:48rem) {
 .fs-admin-section-tabs,.fs-detail-tabs { display:grid; grid-template-columns:1fr; }
 .fs-admin-section-tab,.fs-detail-tab { width:100%; text-align:left; }
 .fs-admin-matrix { border:0; overflow:visible; background:transparent; }
 .fs-admin-matrix-row.is-header { display:none; }
 .fs-admin-matrix-row { min-width:0; grid-template-columns:1fr auto; gap:.45rem; margin-bottom:.65rem; border:1px solid var(--fs-line); border-radius:var(--fs-radius-lg); background:var(--fs-surface); box-shadow:var(--fs-shadow-sm); }
 .fs-admin-matrix-row > :nth-child(2),.fs-admin-matrix-row > :nth-child(3) { grid-column:1/-1; }
 .fs-admin-matrix-row > :nth-child(5) { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:.4rem; }
 .fs-admin-matrix-controls,.fs-permission-toolbar,.fs-tools-editor { grid-template-columns:1fr; }
 .fs-permission-toolbar { position:static; }
 .fs-role-matrix-toolbar { flex-direction:column; align-items:stretch; }
 .fs-role-matrix-summary { margin-left:0; }
 .fs-role-matrix-scroll { max-height:22rem; }
 .fs-role-matrix-table { font-size:.76rem; }
 .fs-role-matrix-table th[scope="row"] { min-width:8.5rem; max-width:10rem; }
 .fs-permission-actions,.fs-tool-links { grid-template-columns:1fr; }
 .fs-tools-toolbar { align-items:stretch; flex-direction:column; }
 .fs-tools-toolbar .fs-button { width:100%; }
}

/* ============================================================
   PORTAL CLIENTE — mobile-first (360–430px), bottom tab bar
   ============================================================ */
.fs-portal { padding-bottom: calc(5.75rem + env(safe-area-inset-bottom)); }
.fs-portal-home { padding-bottom: calc(5.75rem + env(safe-area-inset-bottom)); }

.fs-portal-tabbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
  display: flex; align-items: stretch; justify-content: space-between;
  padding: .35rem max(.4rem, env(safe-area-inset-left)) calc(.35rem + env(safe-area-inset-bottom));
  border-top: 1px solid var(--fs-line); background: var(--fs-surface);
  box-shadow: 0 -.4rem 1.5rem rgb(16 47 42 / 12%);
}
.fs-portal-tab {
  position: relative; flex: 1 1 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .15rem; min-height: 3.25rem; padding: .3rem .2rem; border: 0; border-radius: .7rem;
  background: transparent; color: var(--fs-text-muted); font: inherit; cursor: pointer;
}
.fs-portal-tab-icon { font-size: 1.3rem; line-height: 1; }
.fs-portal-tab-label { font-size: .68rem; font-weight: 700; letter-spacing: .01em; }
.fs-portal-tab.is-active { color: var(--fs-accent); background: var(--fs-accent-soft); }
.fs-portal-tab-cta { color: var(--fs-accent-ink); }
.fs-portal-tab-cta .fs-portal-tab-icon {
  display: flex; align-items: center; justify-content: center; width: 2.6rem; height: 2.6rem; margin-top: -1.35rem;
  border-radius: 999px; background: var(--fs-accent); color: var(--fs-accent-ink); box-shadow: var(--fs-shadow-md);
  font-size: 1.4rem;
}
.fs-portal-tab-cta.is-active .fs-portal-tab-icon { background: var(--fs-accent-hover); }
.fs-portal-tab-cta.is-active { background: transparent; color: var(--fs-accent); }
.fs-portal-tab-badge {
  position: absolute; top: .1rem; right: 18%; min-width: 1.1rem; height: 1.1rem; padding: 0 .25rem;
  display: flex; align-items: center; justify-content: center; border-radius: 999px;
  background: #c8462f; color: #fff; font-size: .62rem; font-weight: 800; line-height: 1;
}

.fs-portal-section { margin-top: 1.25rem; padding: 1rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-lg); background: var(--fs-surface); box-shadow: var(--fs-shadow-sm); }
.fs-portal-section h2 { margin: 0 0 .75rem; font-size: 1rem; letter-spacing: -.01em; }
.fs-portal-card { display: grid; gap: .3rem; padding: .85rem .9rem; margin-bottom: .6rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-md); background: var(--fs-bg); }
.fs-portal-card:last-child { margin-bottom: 0; }
.fs-portal-card strong { font-size: .92rem; }
.fs-portal-card p { margin: 0; color: var(--fs-text-muted); font-size: .88rem; line-height: 1.4; }
.fs-portal-card-meta { color: var(--fs-text-muted); font-size: .78rem; }
.fs-portal-card-action { border-color: #e0a95f; background: #fdf3e5; }
:root[data-color-mode="dark"] .fs-portal-card-action { background: #3a2c17; border-color: #a9793a; }
.fs-portal-card .fs-button, .fs-portal-card .fs-link-button { justify-self: start; margin-top: .2rem; }

.fs-portal-quick-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.fs-portal-quick-actions .fs-button { flex: 1 1 9rem; min-width: 9rem; }

.fs-portal-send-grid { display: grid; grid-template-columns: 1fr; gap: .75rem; margin-top: 1rem; }
.fs-portal-send-option {
  display: grid; gap: .3rem; padding: 1.1rem 1rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-lg);
  background: var(--fs-surface); box-shadow: var(--fs-shadow-sm); text-align: left; cursor: pointer; min-height: 4.5rem;
}
.fs-portal-send-option:hover, .fs-portal-send-option:focus-visible { border-color: var(--fs-accent); background: var(--fs-accent-soft); }
.fs-portal-send-option strong { font-size: .98rem; }
.fs-portal-send-option span { color: var(--fs-text-muted); font-size: .85rem; line-height: 1.4; }

.fs-consent-check { display: flex; align-items: flex-start; gap: .6rem; margin: .9rem 0; padding: .8rem; border: 1px solid var(--fs-line); border-radius: var(--fs-radius-md); background: var(--fs-bg); font-size: .88rem; line-height: 1.45; cursor: pointer; }
.fs-consent-check input { width: 1.25rem; height: 1.25rem; margin-top: .1rem; flex: none; accent-color: var(--fs-accent); }
.fs-income-form{display:grid;gap:1rem;margin-top:1rem}.fs-income-form>.fs-field{max-width:18rem}.fs-income-matrix{display:grid;border:1px solid var(--fs-line);border-radius:var(--fs-radius-md);overflow:hidden}.fs-income-head,.fs-income-row{display:grid;grid-template-columns:minmax(12rem,1.2fr) minmax(7rem,.5fr) minmax(9rem,.6fr) minmax(14rem,1fr);gap:.75rem;align-items:center;padding:.7rem .85rem}.fs-income-head{background:var(--fs-bg);color:var(--fs-text-muted);font-size:.78rem;text-transform:uppercase}.fs-income-row{border-top:1px solid var(--fs-line)}.fs-income-row input{width:100%;min-width:0}.fs-income-form>.fs-button{justify-self:start}
@media(max-width:600px){.fs-income-matrix{border:0;gap:.75rem;overflow:visible}.fs-income-head{display:none}.fs-income-row{display:grid;grid-template-columns:1fr;padding:.85rem;border:1px solid var(--fs-line);border-radius:var(--fs-radius-md);background:var(--fs-surface)}.fs-income-row input{min-height:2.75rem}.fs-income-row input:first-of-type:before{content:'Importe'}}
.fs-document-client-search{display:flex;gap:.65rem;align-items:center;margin:1rem 0}.fs-document-client-search input{flex:1;min-width:0}.fs-document-client-matrix{display:grid;border:1px solid var(--fs-line);border-radius:var(--fs-radius-md);overflow:hidden;background:var(--fs-surface)}.fs-document-client-head,.fs-document-client-card{display:grid;grid-template-columns:minmax(14rem,2fr) repeat(3,minmax(5.5rem,.65fr)) minmax(8rem,.9fr) minmax(7rem,.8fr) minmax(7rem,.75fr);gap:.75rem;align-items:center}.fs-document-client-head{padding:.75rem 1rem;background:var(--fs-bg);color:var(--fs-text-muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.035em}.fs-document-client-card{min-height:4.35rem;padding:.75rem 1rem;border-top:1px solid var(--fs-line);background:var(--fs-surface);transition:background-color .15s ease}.fs-document-client-card:hover{background:var(--fs-surface-hover,var(--fs-bg))}.fs-document-client-name{color:var(--fs-text);overflow-wrap:anywhere}.fs-document-count.has-value{display:inline-flex;align-items:center;justify-content:center;width:max-content;min-width:1.75rem;padding:.2rem .5rem;border-radius:999px;background:var(--fs-accent);color:var(--fs-on-accent);font-weight:800}.fs-document-state{width:max-content}.fs-document-state-pendiente{background:var(--fs-warning-soft,var(--fs-bg));color:var(--fs-warning,var(--fs-text))}.fs-document-state-procesado{background:var(--fs-success-soft,var(--fs-bg));color:var(--fs-success,var(--fs-text))}.fs-document-client-actions .fs-button{min-width:5.5rem}.fs-document-tabs{display:flex;gap:.45rem;flex-wrap:wrap;margin:1rem 0}.fs-document-tabs .is-active{background:var(--fs-accent);color:var(--fs-on-accent);border-color:var(--fs-accent)}
@media(max-width:768px){.fs-document-client-head{display:none}.fs-document-client-matrix{border:0;gap:.75rem;overflow:visible;background:transparent}.fs-document-client-card{grid-template-columns:1fr 1fr;gap:.65rem 1rem;min-height:0;padding:1rem;border:1px solid var(--fs-line);border-radius:var(--fs-radius-md);box-shadow:var(--fs-shadow-sm);align-items:end}.fs-document-client-card>[data-label]::before{content:attr(data-label);display:block;margin-bottom:.18rem;color:var(--fs-text-muted);font-size:.7rem;font-weight:750;text-transform:uppercase}.fs-document-client-name{grid-column:1/-1;font-size:1rem}.fs-document-client-card .fs-document-count::before{display:inline;margin-right:.35rem}.fs-document-client-card .fs-document-count.has-value{display:block;width:100%;border-radius:var(--fs-radius-sm);text-align:center}.fs-document-client-card time{grid-column:1/-1}.fs-document-client-actions{display:flex;justify-content:flex-end}.fs-document-client-actions .fs-button{width:100%;min-height:2.75rem}.fs-document-client-search{align-items:stretch;flex-direction:column}.fs-document-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.fs-document-tabs .fs-button{width:100%}.fs-document-card-row{grid-template-columns:1fr!important;overflow-wrap:anywhere}.fs-document-card-row .fs-work-actions{flex-wrap:wrap}}

.fs-portal-cases-list { display: grid; gap: .65rem; margin-top: .75rem; }
.fs-portal-repository{display:grid;gap:1rem}.fs-portal-repository-toolbar{display:flex;align-items:center;gap:.8rem;min-width:0}.fs-portal-breadcrumb{display:flex;align-items:center;gap:.4rem;min-width:0;color:var(--fs-text-muted);overflow-wrap:anywhere}.fs-portal-repository-list{display:grid;gap:.65rem}.fs-portal-folder,.fs-portal-file{width:100%;min-height:4.25rem;padding:.9rem 1rem;border:1px solid var(--fs-line);border-radius:var(--fs-radius-lg);background:var(--fs-surface);color:var(--fs-text);box-shadow:var(--fs-shadow-sm)}.fs-portal-folder{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;text-align:left;cursor:pointer}.fs-portal-folder:hover,.fs-portal-folder:focus-visible{border-color:var(--fs-accent);background:var(--fs-bg)}.fs-portal-folder-icon{color:var(--fs-accent);font-size:1.2rem}.fs-portal-file{display:flex;align-items:center;justify-content:space-between;gap:1rem}.fs-portal-file>div:first-child{display:grid;gap:.25rem;min-width:0}.fs-portal-file strong{overflow-wrap:anywhere}.fs-portal-file small{color:var(--fs-text-muted)}.fs-portal-file-actions{display:flex;gap:.5rem;flex:none}
@media(max-width:600px){.fs-portal-repository-toolbar{align-items:flex-start;flex-direction:column}.fs-portal-file{align-items:stretch;flex-direction:column}.fs-portal-file-actions{display:grid;grid-template-columns:1fr 1fr}.fs-portal-file-actions .fs-button{width:100%;min-height:2.8rem}.fs-portal-folder{min-height:4rem}}
.fs-portal-case-card {
  display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .25rem .75rem; padding: .9rem 1rem;
  border: 1px solid var(--fs-line); border-radius: var(--fs-radius-lg); background: var(--fs-surface); box-shadow: var(--fs-shadow-sm);
  text-align: left; cursor: pointer;
}
.fs-portal-case-card strong { grid-column: 1; font-size: .94rem; }
.fs-portal-case-card small { grid-column: 1; color: var(--fs-text-muted); font-size: .78rem; }
.fs-portal-case-card .fs-badge { grid-column: 2; grid-row: 1 / span 2; white-space: nowrap; }

.fs-portal-timeline { position: relative; margin-top: 1rem; padding-left: 1.6rem; }
.fs-portal-timeline-item { position: relative; padding-bottom: 1.4rem; }
.fs-portal-timeline-item:last-child { padding-bottom: 0; }
.fs-portal-timeline-item::before { content: ''; position: absolute; left: -1.19rem; top: .35rem; bottom: -1.05rem; width: 2px; background: var(--fs-line); }
.fs-portal-timeline-item:last-child::before { display: none; }
.fs-portal-timeline-dot { position: absolute; left: -1.6rem; top: .1rem; width: .85rem; height: .85rem; border-radius: 999px; background: var(--fs-accent); border: 2px solid var(--fs-surface); box-shadow: 0 0 0 2px var(--fs-line); }
.fs-portal-timeline-item.is-action .fs-portal-timeline-dot { background: #d98a2b; }
.fs-portal-timeline-item.is-resolved .fs-portal-timeline-dot { background: var(--fs-text-muted); }
.fs-portal-timeline-body { display: grid; gap: .25rem; padding: .8rem .9rem; border: 1px solid var(--fs-line-soft); border-radius: var(--fs-radius-md); background: var(--fs-bg); }
.fs-portal-timeline-item.is-action .fs-portal-timeline-body { border-color: #e0a95f; background: #fdf3e5; }
:root[data-color-mode="dark"] .fs-portal-timeline-item.is-action .fs-portal-timeline-body { background: #3a2c17; border-color: #a9793a; }
.fs-portal-timeline-body strong { font-size: .9rem; }
.fs-portal-timeline-body p { margin: 0; color: var(--fs-text); font-size: .88rem; line-height: 1.45; }
.fs-portal-timeline-body time { color: var(--fs-text-muted); font-size: .74rem; }
.fs-portal-timeline-body .fs-button, .fs-portal-timeline-body .fs-link-button { justify-self: start; margin-top: .15rem; }

@media (max-width: 480px) {
  .fs-portal-quick-actions .fs-button { flex-basis: 100%; }
  .fs-portal-case-card { grid-template-columns: 1fr; }
  .fs-portal-case-card .fs-badge { grid-column: 1; grid-row: auto; justify-self: start; }
}
@media (min-width: 640px) {
  .fs-portal-send-grid { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 900px) {
  .fs-portal { max-width:1180px; margin-inline:auto; padding:clamp(1.35rem,2vw,2rem); }
  .fs-portal .fs-shell-header { align-items:center; }
  .fs-portal .fs-shell-title { max-width:none; font-size:clamp(1.8rem,2.4vw,2.6rem); letter-spacing:-.025em; }
  .fs-portal .fs-lead { max-width:72ch; margin-top:.5rem; font-size:1rem; }
  .fs-portal-section { margin-top:0; padding:1rem; }
  .fs-portal .fs-client-columns { display:grid; grid-template-columns:minmax(19rem,.8fr) minmax(0,1.2fr); gap:1rem; align-items:start; }
  .fs-portal .fs-client-columns>.fs-client-panel { min-width:0; }
  .fs-portal-home { grid-template-columns:1.15fr .85fr; align-items:start; }
  .fs-portal-home>.fs-shell-header,.fs-portal-home>.fs-portal-tabbar { grid-column:1/-1; }
  .fs-portal-home>.fs-portal-section { min-width:0; }
  .fs-portal-home>.fs-portal-section:first-of-type { grid-row:3 / span 2; }
  .fs-portal-cases-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fs-portal-quick-actions { justify-content:flex-start; }
  .fs-portal-quick-actions .fs-button { flex:0 1 auto; min-width:10rem; }
  .fs-portal-tabbar { position:static; margin:.25rem 0 .4rem; border:1px solid var(--fs-line); border-radius:var(--fs-radius-lg); box-shadow:none; }
}
@media (max-width: 899px) {
  body:has(#app[data-audience="client"]) { padding:0; }
  #app[data-audience="client"] { width:100%; }
}
.fs-notification-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:1rem 0; padding:1rem; border:1px solid var(--fs-line); border-radius:14px; background:var(--fs-surface); }
.fs-notification-form label { display:grid; gap:.4rem; min-width:0; }
.fs-notification-form label>span { color:var(--fs-muted); font-size:.85rem; font-weight:600; }
.fs-notification-form .fs-form-wide { grid-column:1/-1; }
.fs-notification-form input,.fs-notification-form select,.fs-notification-form textarea { box-sizing:border-box; width:100%; min-width:0; max-width:100%; padding:.7rem .8rem; border:1px solid var(--fs-line); border-radius:8px; background:var(--fs-surface); color:var(--fs-text); font:inherit; }
.fs-notification-form textarea { resize:vertical; min-height:6rem; }
.fs-notification-form :is(input,select,textarea):focus-visible { outline:2px solid var(--fs-accent); outline-offset:2px; }
.fs-notification-form .fs-button { white-space:normal; }
@media(max-width:900px) { .fs-notification-form { grid-template-columns:minmax(0,1fr); padding:.8rem; } }
.fs-case-workspace { max-width:1440px; margin-inline:auto; gap:.75rem; }
.fs-case-workspace>.fs-link-button { justify-self:start; }
.fs-case-workspace .fs-card { min-width:0; padding:1.2rem; border-radius:14px; box-shadow:var(--fs-shadow-sm); }
.fs-case-workspace h2 { margin:0 0 .8rem; font-size:1.1rem; }
.fs-case-workspace .fs-work-actions { justify-content:flex-start; }
.fs-case-header .fs-work-actions { display:flex; width:auto; margin-top:.75rem; }
.fs-case-workspace .fs-lead { margin:.5rem 0 0; font-size:1rem; }
.fs-case-header { padding:1.2rem 0; }
.fs-case-header h1 { max-width:none; overflow-wrap:anywhere; margin:.4rem 0; font-size:clamp(1.45rem,2.4vw,2rem); line-height:1.2; letter-spacing:-.02em; }
.fs-case-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin:1.2rem 0; }
.fs-case-facts dt { color:var(--fs-text-muted); font-size:.8rem; }
.fs-case-facts dd { margin:.3rem 0 0; font-weight:600; overflow-wrap:anywhere; }
.fs-case-columns { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(18rem,1fr); gap:1rem; align-items:start; margin-top:1rem; }
.fs-case-aside { display:grid; gap:1rem; min-width:0; }
.fs-case-summary p,.fs-case-timeline-item p { white-space:pre-wrap; overflow-wrap:anywhere; }
.fs-case-edit,.fs-case-audit { margin-top:1rem; }
.fs-case-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; padding-top:1rem; }
.fs-case-form .fs-form-wide { grid-column:1/-1; }
.fs-case-form label,.fs-case-task-form label,.fs-case-update-form label { display:grid; gap:.4rem; min-width:0; }
.fs-case-form input,.fs-case-form select,.fs-case-form textarea,.fs-case-task-form input,.fs-case-task-form select,.fs-case-update-form textarea,.fs-case-update-form select { box-sizing:border-box; width:100%; min-width:0; padding:.65rem .75rem; border:1px solid var(--fs-line); border-radius:8px; background:var(--fs-surface); color:var(--fs-text); font:inherit; }
.fs-case-form textarea,.fs-case-update-form textarea { resize:vertical; }
.fs-case-client-action input:not([type="checkbox"]) { width:100%; min-width:0; padding:.65rem .75rem; border:1px solid var(--fs-line); border-radius:8px; background:var(--fs-surface); color:var(--fs-text); font:inherit; box-sizing:border-box; }
.fs-case-client-action label:has(input[type="checkbox"]) { display:flex; align-items:center; gap:.5rem; margin:.6rem 0; }
.fs-case-task-form,.fs-case-update-form { display:grid; gap:.7rem; margin:1rem 0; }
.fs-case-timeline-item { padding:1rem 0 1rem 1rem; border-left:2px solid var(--fs-line); }
.fs-case-timeline-meta { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; font-size:.8rem; }
.fs-case-task { display:block; width:100%; padding:.8rem; text-align:left; border:1px solid var(--fs-line); border-radius:8px; background:var(--fs-surface); color:var(--fs-text); margin:.5rem 0; overflow-wrap:anywhere; }
.fs-case-audit article { display:flex; flex-wrap:wrap; gap:1rem; padding:.65rem 0; border-bottom:1px solid var(--fs-line); }
@media(max-width:1000px) { .fs-case-columns { grid-template-columns:minmax(0,1fr); } .fs-case-facts { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .fs-case-form,.fs-case-facts { grid-template-columns:minmax(0,1fr); } .fs-case-form .fs-form-wide { grid-column:auto; } }

/* The hidden attribute must also hide sections with layout display rules. */
[hidden] { display: none !important; }
.fs-document-delivery { min-width: 0; }
.fs-document-delivery input[type="checkbox"] { width: auto; }
.fs-document-delivery a { overflow-wrap: anywhere; }

.fs-conversation-thread { height: min(50vh, 32rem); min-height: 14rem; overflow-y: auto; align-content: start; overscroll-behavior: contain; }
.fs-conversation-thread .fs-message { overflow-wrap: anywhere; }
.fs-conversation-thread:focus-visible { outline: 2px solid var(--fs-green-700); outline-offset: 3px; }
@media(max-width:640px) { .fs-conversation-thread { height: 48vh; padding: .7rem; } .fs-compose textarea { min-height: 5rem; } }

.fs-signer-row { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; padding: 1rem 0; border-bottom: 1px solid var(--fs-line-soft); }
.fs-signer-editor > button { margin-top: 1rem; margin-right: .5rem; }
.fs-signature-progress { padding: .8rem 1rem; background: var(--fs-accent-soft); border-radius: .5rem; color: var(--fs-text); }
.fs-signatures-workspace { max-width: 1200px; }
.fs-signature-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; }
.fs-signature-summary-item { display:grid; gap:.15rem; padding:1rem; border:1px solid var(--fs-line); border-radius:var(--fs-radius-lg); background:var(--fs-surface); box-shadow:var(--fs-shadow-sm); }
.fs-signature-summary-item strong { color:var(--fs-green-950); font-size:1.6rem; line-height:1; }
.fs-signature-summary-item span { color:var(--fs-text-muted); font-size:.78rem; font-weight:750; text-transform:uppercase; letter-spacing:.04em; }
.fs-signature-list { gap:.65rem; }
.fs-signature-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(11rem,.45fr) auto; gap:1rem; align-items:center; }
.fs-signature-card-main { display:grid; gap:.25rem; min-width:0; }
.fs-signature-card-main strong { overflow-wrap:anywhere; }
.fs-signature-card-main span { color:var(--fs-text-muted); font-size:.9rem; }
.fs-signature-card-meta { display:grid; gap:.45rem; justify-items:start; min-width:0; }
.fs-signature-progress-bar { width:100%; height:.45rem; overflow:hidden; border-radius:999px; background:var(--fs-line-soft); }
.fs-signature-progress-bar span { display:block; height:100%; border-radius:inherit; background:var(--fs-accent); }
.fs-signature-detail { max-width: 1380px; }
.fs-signature-detail>.fs-client-panel { min-width:0; border-radius:var(--fs-radius-lg); }
.fs-signature-detail .fs-actions-bar { align-items:center; justify-content:flex-start; padding:.9rem; border:1px solid var(--fs-line); border-radius:var(--fs-radius-lg); background:var(--fs-surface); }
.fs-firma-viewer-toolbar,.fs-firma-placement-controls { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.fs-firma-placement-controls select { min-height:2.75rem; padding:.65rem .75rem; border:1px solid var(--fs-line); border-radius:var(--fs-radius-md); background:var(--fs-surface); color:var(--fs-text); font:inherit; }
@media(max-width:768px) { .fs-signer-row { grid-template-columns: 1fr; } }
@media(max-width:900px) { .fs-signature-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } .fs-signature-card { grid-template-columns:minmax(0,1fr); } .fs-signature-card .fs-button { width:100%; } }
:root[data-sidebar-palette="navy"] { --fs-green-100:#e3ecfa;--fs-line:#c9d5e6;--fs-line-soft:#e3eaf4;--fs-text:#1d2b42;--fs-text-muted:#586b87; }
:root[data-sidebar-palette="navy"] body { background:var(--fs-bg);color:var(--fs-text); }
:root[data-sidebar-palette="navy"][data-color-mode="dark"] { --fs-surface:#172338;--fs-workspace-bg:#111b2c;--fs-bg:#0c1422;--fs-text:#edf3fc;--fs-text-muted:#afbdd3;--fs-line:#354660;--fs-line-soft:#263750;--fs-accent-soft:#233d61;--fs-green-100:#233d61; }
.fs-installation { display:grid;gap:.6rem;margin-top:1rem; }
.fs-installation p { margin:0;font-size:.88rem;line-height:1.5; }
.fs-workspace .fs-panel-header h1 { font-size:clamp(1.5rem,2vw,2.1rem);line-height:1.2; }
.fs-login { width:min(100%,32rem);margin-inline:auto; }
@media(prefers-color-scheme:dark) {
 :root[data-sidebar-palette="navy"][data-color-mode="system"] { --fs-surface:#172338;--fs-workspace-bg:#111b2c;--fs-bg:#0c1422;--fs-text:#edf3fc;--fs-text-muted:#afbdd3;--fs-line:#354660;--fs-line-soft:#263750;--fs-accent-soft:#233d61;--fs-green-100:#233d61; }
}
.fs-calendar-external .fs-calendar-card { display:flex;flex-wrap:wrap;align-items:center;gap:.65rem; }
.fs-calendar-external .fs-calendar-card strong { flex-basis:100%; }
.fs-calendar-external .fs-calendar-card p { flex-basis:100%;margin:0; }
.fs-login .fs-link-button { min-height:2.5rem; }
@media(max-width:600px){
 .fs-calendar-external .fs-work-actions,.fs-calendar-external .fs-calendar-card { align-items:stretch; }
 .fs-calendar-external .fs-calendar-card .fs-button { width:100%;white-space:normal; }
 .fs-message p { overflow-wrap:anywhere; }
}
