/* OFI UI/UX Design System 1.0 — F3/6 Interaction SOURCE BUILD */
@layer ofi.tokens, ofi.base, ofi.typography, ofi.layout, ofi.themes, ofi.components, ofi.patterns;

/* --- src/core/tokens.css --- */
@layer ofi.tokens {
  :root {
    /* Typography */
    --ofi-ui-font-sans: "Source Sans 3", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
    --ofi-ui-font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    --ofi-ui-font-size-xs: 0.6875rem;
    --ofi-ui-font-size-sm: 0.8125rem;
    --ofi-ui-font-size-md: 0.875rem;
    --ofi-ui-font-size-lg: 1rem;
    --ofi-ui-font-size-xl: 1.25rem;
    --ofi-ui-font-size-2xl: 1.75rem;
    --ofi-ui-line-height-tight: 1.15;
    --ofi-ui-line-height-normal: 1.45;
    --ofi-ui-weight-regular: 400;
    --ofi-ui-weight-medium: 500;
    --ofi-ui-weight-semibold: 600;
    --ofi-ui-weight-bold: 700;

    /* Spacing */
    --ofi-ui-space-0: 0;
    --ofi-ui-space-1: 0.25rem;
    --ofi-ui-space-2: 0.5rem;
    --ofi-ui-space-3: 0.75rem;
    --ofi-ui-space-4: 1rem;
    --ofi-ui-space-5: 1.25rem;
    --ofi-ui-space-6: 1.5rem;
    --ofi-ui-space-8: 2rem;
    --ofi-ui-space-10: 2.5rem;
    --ofi-ui-space-12: 3rem;

    /* Shape */
    --ofi-ui-radius-xs: 0.375rem;
    --ofi-ui-radius-sm: 0.5rem;
    --ofi-ui-radius-md: 0.6875rem;
    --ofi-ui-radius-lg: 1rem;
    --ofi-ui-radius-xl: 1.25rem;
    --ofi-ui-radius-pill: 999px;

    /* Elevation */
    --ofi-ui-shadow-xs: 0 1px 2px rgb(15 23 42 / 0.04);
    --ofi-ui-shadow-sm: 0 1px 2px rgb(18 38 63 / 0.04), 0 5px 16px rgb(18 38 63 / 0.035);
    --ofi-ui-shadow-md: 0 14px 38px rgb(18 38 63 / 0.09);
    --ofi-ui-shadow-lg: 0 26px 70px rgb(18 38 63 / 0.16);

    /* Motion */
    --ofi-ui-duration-fast: 80ms;
    --ofi-ui-duration-normal: 160ms;
    --ofi-ui-ease-standard: cubic-bezier(.2,.8,.2,1);

    /* Sizing */
    --ofi-ui-control-height-sm: 2rem;
    --ofi-ui-control-height-md: 2.5rem;
    --ofi-ui-control-height-lg: 2.875rem;
    --ofi-ui-content-max: 100rem;

    /* Semantic colors: populated by themes, with safe defaults. */
    --ofi-ui-bg: #f4f6f8;
    --ofi-ui-surface: #ffffff;
    --ofi-ui-surface-soft: #f8fafc;
    --ofi-ui-surface-tint: #eef4f8;
    --ofi-ui-text: #1e293b;
    --ofi-ui-text-strong: #0f172a;
    --ofi-ui-text-muted: #64748b;
    --ofi-ui-text-subtle: #94a3b8;
    --ofi-ui-border: #dbe3ec;
    --ofi-ui-border-strong: #c7d2df;
    --ofi-ui-primary: #315b83;
    --ofi-ui-primary-hover: #264b70;
    --ofi-ui-primary-contrast: #ffffff;
    --ofi-ui-focus: #5b8ec2;
    --ofi-ui-info: #2b6fae;
    --ofi-ui-info-soft: #eaf3fb;
    --ofi-ui-success: #167452;
    --ofi-ui-success-soft: #e8f6ef;
    --ofi-ui-warning: #9a650b;
    --ofi-ui-warning-soft: #fff6db;
    --ofi-ui-danger: #b43b36;
    --ofi-ui-danger-soft: #fff0ef;

    /* Data/visualization palette. */
    --ofi-ui-data-1: #2b63a3;
    --ofi-ui-data-2: #1f9d8a;
    --ofi-ui-data-3: #6d5bd0;
    --ofi-ui-data-4: #e69a17;
    --ofi-ui-data-5: #d35f74;
    --ofi-ui-data-6: #60758f;
  }
}

/* --- src/core/base.css --- */
@layer ofi.base {
  *, *::before, *::after { box-sizing: border-box; }
  html { color-scheme: light; background: var(--ofi-ui-bg); }
  body {
    margin: 0;
    background: var(--ofi-ui-bg);
    color: var(--ofi-ui-text);
    font-family: var(--ofi-ui-font-sans);
    font-size: var(--ofi-ui-font-size-md);
    line-height: var(--ofi-ui-line-height-normal);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
  }
  button, input, select, textarea { font: inherit; }
  button { cursor: pointer; }
  button:disabled { cursor: not-allowed; }
  img, svg { max-width: 100%; }
  a { color: var(--ofi-ui-primary); }
  ::selection { background: color-mix(in srgb, var(--ofi-ui-primary) 22%, white); color: var(--ofi-ui-text-strong); }
}

/* --- src/core/typography.css --- */
@layer ofi.typography {
  .ofi-ui-title, .ofi-ui-heading, .ofi-ui-subheading, .ofi-ui-body, .ofi-ui-caption, .ofi-ui-eyebrow { margin: 0; }
  .ofi-ui-title { color: var(--ofi-ui-text-strong); font-size: var(--ofi-ui-font-size-2xl); line-height: var(--ofi-ui-line-height-tight); font-weight: var(--ofi-ui-weight-bold); letter-spacing: -.025em; }
  .ofi-ui-heading { color: var(--ofi-ui-text-strong); font-size: var(--ofi-ui-font-size-xl); line-height: 1.2; font-weight: var(--ofi-ui-weight-bold); letter-spacing: -.015em; }
  .ofi-ui-subheading { color: var(--ofi-ui-text); font-size: var(--ofi-ui-font-size-lg); font-weight: var(--ofi-ui-weight-semibold); }
  .ofi-ui-body { color: var(--ofi-ui-text); font-size: var(--ofi-ui-font-size-md); }
  .ofi-ui-caption { color: var(--ofi-ui-text-muted); font-size: var(--ofi-ui-font-size-sm); }
  .ofi-ui-eyebrow { color: var(--ofi-ui-text-muted); font-size: var(--ofi-ui-font-size-xs); font-weight: var(--ofi-ui-weight-bold); letter-spacing: .10em; text-transform: uppercase; }
  .ofi-ui-number { font-variant-numeric: tabular-nums; }
}

/* --- src/core/layout.css --- */
@layer ofi.layout {
  .ofi-ui-page { min-height: 100vh; background: var(--ofi-ui-bg); color: var(--ofi-ui-text); }
  .ofi-ui-container { width: min(var(--ofi-ui-content-max), calc(100% - 2 * var(--ofi-ui-space-6))); margin-inline: auto; }
  .ofi-ui-stack { display: flex; flex-direction: column; gap: var(--ofi-ui-space-4); }
  .ofi-ui-stack[data-gap="sm"] { gap: var(--ofi-ui-space-2); }
  .ofi-ui-stack[data-gap="lg"] { gap: var(--ofi-ui-space-6); }
  .ofi-ui-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ofi-ui-space-3); }
  .ofi-ui-grid { display: grid; gap: var(--ofi-ui-space-4); }
  .ofi-ui-grid[data-columns="2"] { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ofi-ui-grid[data-columns="3"] { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .ofi-ui-grid[data-columns="4"] { grid-template-columns: repeat(4,minmax(0,1fr)); }
  @media (max-width: 900px) { .ofi-ui-grid[data-columns="3"], .ofi-ui-grid[data-columns="4"] { grid-template-columns: repeat(2,minmax(0,1fr)); } }
  @media (max-width: 620px) { .ofi-ui-container { width: min(100% - 2rem, var(--ofi-ui-content-max)); } .ofi-ui-grid[data-columns] { grid-template-columns: 1fr; } }
}

/* --- src/themes/stockflow.css --- */
@layer ofi.themes {
  :root[data-ofi-theme="stockflow"], .ofi-theme-stockflow {
    --ofi-ui-bg:#f3f6fa;
    --ofi-ui-surface:#ffffff;
    --ofi-ui-surface-soft:#f8fafc;
    --ofi-ui-surface-tint:#eaf2fb;
    --ofi-ui-text:#1d2b3f;
    --ofi-ui-text-strong:#172a42;
    --ofi-ui-text-muted:#6b788b;
    --ofi-ui-text-subtle:#8a96a7;
    --ofi-ui-border:#dde4ed;
    --ofi-ui-border-strong:#cbd5e1;
    --ofi-ui-primary:#1f4776;
    --ofi-ui-primary-hover:#234f82;
    --ofi-ui-primary-contrast:#ffffff;
    --ofi-ui-focus:#5d8fc8;
    --ofi-ui-info:#2b63a3;
    --ofi-ui-info-soft:#eaf2fb;
    --ofi-ui-success:#167452;
    --ofi-ui-success-soft:#e8f6ef;
    --ofi-ui-warning:#9a650b;
    --ofi-ui-warning-soft:#fff6db;
    --ofi-ui-danger:#b43b36;
    --ofi-ui-danger-soft:#fff0ef;
    --ofi-ui-data-1:#2b63a3;
    --ofi-ui-data-2:#0ea798;
    --ofi-ui-data-3:#7257db;
    --ofi-ui-data-4:#f29a0a;
    --ofi-ui-data-5:#e25e4d;
    --ofi-ui-data-6:#60758f;
  }
}
@layer ofi.themes {
  :root[data-ofi-theme="stockflow"], .ofi-theme-stockflow {
    --ofi-ui-nav-bg:#173f6b; --ofi-ui-nav-text:#dfeaf7; --ofi-ui-nav-strong:#ffffff; --ofi-ui-nav-muted:#9fb9d5;
    --ofi-ui-nav-border:rgb(255 255 255 / .12); --ofi-ui-nav-hover-bg:#234f7f; --ofi-ui-nav-active-bg:#315f8d;
    --ofi-ui-nav-active-text:#ffffff; --ofi-ui-nav-accent:#8bc6ff; --ofi-ui-nav-search-bg:rgb(255 255 255 / .08); --ofi-ui-nav-footer-bg:rgb(8 29 53 / .12);
  }
}

/* --- src/themes/incomsales-preview.css --- */
@layer ofi.themes {
  /* PROVISIONAL: visual-only derivation from approved screenshots. Not canonical until IncomSales GOLDEN is audited. */
  :root[data-ofi-theme="incomsales-preview"], .ofi-theme-incomsales-preview {
    --ofi-ui-bg:#f4f6fb;
    --ofi-ui-surface:#ffffff;
    --ofi-ui-surface-soft:#fafbfe;
    --ofi-ui-surface-tint:#eef2fb;
    --ofi-ui-text:#26334a;
    --ofi-ui-text-strong:#18243a;
    --ofi-ui-text-muted:#6f7d92;
    --ofi-ui-text-subtle:#98a3b4;
    --ofi-ui-border:#dfe4ef;
    --ofi-ui-border-strong:#cbd4e5;
    --ofi-ui-primary:#3152a4;
    --ofi-ui-primary-hover:#28458d;
    --ofi-ui-primary-contrast:#ffffff;
    --ofi-ui-focus:#5b77cc;
    --ofi-ui-info:#3f88d1;
    --ofi-ui-info-soft:#eaf2fb;
    --ofi-ui-success:#1f9989;
    --ofi-ui-success-soft:#e7f7f3;
    --ofi-ui-warning:#bd7b16;
    --ofi-ui-warning-soft:#fff5df;
    --ofi-ui-danger:#bd506f;
    --ofi-ui-danger-soft:#fdeef3;
    --ofi-ui-data-1:#6759db;
    --ofi-ui-data-2:#22a393;
    --ofi-ui-data-3:#438bd1;
    --ofi-ui-data-4:#c85e86;
    --ofi-ui-data-5:#e3a243;
    --ofi-ui-data-6:#7284a7;
  }
}
@layer ofi.themes {
  :root[data-ofi-theme="incomsales-preview"], .ofi-theme-incomsales-preview {
    --ofi-ui-nav-bg:#ffffff; --ofi-ui-nav-text:#344056; --ofi-ui-nav-strong:#1e2a40; --ofi-ui-nav-muted:#738197;
    --ofi-ui-nav-border:#e0e6f0; --ofi-ui-nav-hover-bg:#f4f7fd; --ofi-ui-nav-active-bg:#edf2fc;
    --ofi-ui-nav-active-text:#3152a4; --ofi-ui-nav-accent:#3152a4; --ofi-ui-nav-search-bg:#ffffff; --ofi-ui-nav-footer-bg:#fbfcff;
  }
}

/* --- src/themes/corporate-blue.css --- */
@layer ofi.themes {
  :root[data-ofi-theme="corporate-blue"], .ofi-theme-corporate-blue {
    --ofi-ui-bg:#f4f7fa; --ofi-ui-surface:#fff; --ofi-ui-surface-soft:#f8fafc; --ofi-ui-surface-tint:#eaf1f7;
    --ofi-ui-text:#24364a; --ofi-ui-text-strong:#13263d; --ofi-ui-text-muted:#64758a; --ofi-ui-text-subtle:#91a0b0;
    --ofi-ui-border:#d9e2eb; --ofi-ui-border-strong:#c5d1dd; --ofi-ui-primary:#245a86; --ofi-ui-primary-hover:#1c4a70; --ofi-ui-primary-contrast:#fff; --ofi-ui-focus:#5d8fb7;
    --ofi-ui-info:#2b72aa; --ofi-ui-info-soft:#eaf3fa; --ofi-ui-success:#23765b; --ofi-ui-success-soft:#eaf6f0; --ofi-ui-warning:#99670d; --ofi-ui-warning-soft:#fff6df; --ofi-ui-danger:#b54743; --ofi-ui-danger-soft:#fff0ef;
    --ofi-ui-data-1:#245a86; --ofi-ui-data-2:#2b8d89; --ofi-ui-data-3:#5d6fc1; --ofi-ui-data-4:#d79a28; --ofi-ui-data-5:#c76173; --ofi-ui-data-6:#687a8f;
  }
}
@layer ofi.themes { :root[data-ofi-theme="corporate-blue"], .ofi-theme-corporate-blue { --ofi-ui-nav-bg:#163b65; --ofi-ui-nav-text:#e2edf8; --ofi-ui-nav-strong:#fff; --ofi-ui-nav-muted:#a9c0d8; --ofi-ui-nav-border:rgb(255 255 255 / .12); --ofi-ui-nav-hover-bg:#214d7e; --ofi-ui-nav-active-bg:#2d5d91; --ofi-ui-nav-active-text:#fff; --ofi-ui-nav-accent:#91c4f1; --ofi-ui-nav-search-bg:rgb(255 255 255 / .08); } }

/* --- src/themes/indigo.css --- */
@layer ofi.themes {
  :root[data-ofi-theme="indigo"], .ofi-theme-indigo {
    --ofi-ui-bg:#f6f5fb; --ofi-ui-surface:#fff; --ofi-ui-surface-soft:#faf9fd; --ofi-ui-surface-tint:#efedfa;
    --ofi-ui-text:#302d43; --ofi-ui-text-strong:#211d37; --ofi-ui-text-muted:#746f88; --ofi-ui-text-subtle:#9b96aa;
    --ofi-ui-border:#e2dff0; --ofi-ui-border-strong:#d0cbe4; --ofi-ui-primary:#5546a9; --ofi-ui-primary-hover:#473991; --ofi-ui-primary-contrast:#fff; --ofi-ui-focus:#8072cf;
    --ofi-ui-info:#5b68b8; --ofi-ui-info-soft:#eeeffb; --ofi-ui-success:#2b7a68; --ofi-ui-success-soft:#eaf6f2; --ofi-ui-warning:#a56e16; --ofi-ui-warning-soft:#fff5df; --ofi-ui-danger:#b64b62; --ofi-ui-danger-soft:#fceef2;
    --ofi-ui-data-1:#5546a9; --ofi-ui-data-2:#4389c6; --ofi-ui-data-3:#2b9b85; --ofi-ui-data-4:#d5922b; --ofi-ui-data-5:#c45d82; --ofi-ui-data-6:#766d9e;
  }
}
@layer ofi.themes { :root[data-ofi-theme="indigo"], .ofi-theme-indigo { --ofi-ui-nav-bg:#303a72; --ofi-ui-nav-text:#ebeefe; --ofi-ui-nav-strong:#fff; --ofi-ui-nav-muted:#bdc5ed; --ofi-ui-nav-border:rgb(255 255 255 / .12); --ofi-ui-nav-hover-bg:#3d4987; --ofi-ui-nav-active-bg:#4c5a9b; --ofi-ui-nav-active-text:#fff; --ofi-ui-nav-accent:#aab8ff; --ofi-ui-nav-search-bg:rgb(255 255 255 / .08); } }

/* --- src/themes/neutral.css --- */
@layer ofi.themes {
  :root[data-ofi-theme="neutral"], .ofi-theme-neutral {
    --ofi-ui-bg:#f5f6f7; --ofi-ui-surface:#fff; --ofi-ui-surface-soft:#fafafa; --ofi-ui-surface-tint:#f0f2f4;
    --ofi-ui-text:#334155; --ofi-ui-text-strong:#172033; --ofi-ui-text-muted:#667085; --ofi-ui-text-subtle:#98a2b3;
    --ofi-ui-border:#e0e4e9; --ofi-ui-border-strong:#ccd3db; --ofi-ui-primary:#3f5368; --ofi-ui-primary-hover:#33475c; --ofi-ui-primary-contrast:#fff; --ofi-ui-focus:#788da3;
    --ofi-ui-info:#536f8a; --ofi-ui-info-soft:#eef3f7; --ofi-ui-success:#39745d; --ofi-ui-success-soft:#edf6f1; --ofi-ui-warning:#8f6a25; --ofi-ui-warning-soft:#fbf5e8; --ofi-ui-danger:#a34e4a; --ofi-ui-danger-soft:#f9eeee;
    --ofi-ui-data-1:#52677c; --ofi-ui-data-2:#6d8276; --ofi-ui-data-3:#73758d; --ofi-ui-data-4:#a48959; --ofi-ui-data-5:#916e76; --ofi-ui-data-6:#7a838d;
  }
}
@layer ofi.themes { :root[data-ofi-theme="neutral"], .ofi-theme-neutral { --ofi-ui-nav-bg:#ffffff; --ofi-ui-nav-text:#374151; --ofi-ui-nav-strong:#111827; --ofi-ui-nav-muted:#6b7280; --ofi-ui-nav-border:#e5e7eb; --ofi-ui-nav-hover-bg:#f3f4f6; --ofi-ui-nav-active-bg:#eef2f7; --ofi-ui-nav-active-text:#334155; --ofi-ui-nav-accent:#64748b; --ofi-ui-nav-search-bg:#ffffff; --ofi-ui-nav-footer-bg:#fafafa; } }

/* --- src/components/buttons.css --- */
@layer ofi.components {
  .ofi-ui-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
    min-height: var(--ofi-ui-control-height-md); padding: .5rem .875rem;
    border: 1px solid var(--ofi-ui-border-strong); border-radius: var(--ofi-ui-radius-sm);
    background: var(--ofi-ui-surface); color: var(--ofi-ui-text); font-weight: var(--ofi-ui-weight-semibold);
    box-shadow: var(--ofi-ui-shadow-xs); text-decoration: none;
    transition: background var(--ofi-ui-duration-normal) var(--ofi-ui-ease-standard), border-color var(--ofi-ui-duration-normal) var(--ofi-ui-ease-standard), color var(--ofi-ui-duration-normal) var(--ofi-ui-ease-standard), box-shadow var(--ofi-ui-duration-normal) var(--ofi-ui-ease-standard), transform var(--ofi-ui-duration-normal) var(--ofi-ui-ease-standard);
  }
  .ofi-ui-btn:hover:not(:disabled) { border-color: color-mix(in srgb, var(--ofi-ui-primary) 35%, var(--ofi-ui-border-strong)); background: var(--ofi-ui-surface-soft); color: var(--ofi-ui-primary); box-shadow: var(--ofi-ui-shadow-sm); transform: translateY(-1px); }
  .ofi-ui-btn:active:not(:disabled) { transform: translateY(0); }
  .ofi-ui-btn:focus-visible { outline: 2px solid var(--ofi-ui-focus); outline-offset: 2px; }
  .ofi-ui-btn:disabled { opacity: .58; transform: none; }
  .ofi-ui-btn[data-variant="primary"] { border-color: var(--ofi-ui-primary); background: var(--ofi-ui-primary); color: var(--ofi-ui-primary-contrast); box-shadow: 0 5px 14px color-mix(in srgb, var(--ofi-ui-primary) 22%, transparent); }
  .ofi-ui-btn[data-variant="primary"]:hover:not(:disabled) { border-color: var(--ofi-ui-primary-hover); background: var(--ofi-ui-primary-hover); color: var(--ofi-ui-primary-contrast); }
  .ofi-ui-btn[data-variant="secondary"] { background: var(--ofi-ui-surface); color: var(--ofi-ui-text); }
  .ofi-ui-btn[data-variant="ghost"] { border-color: transparent; background: transparent; color: var(--ofi-ui-primary); box-shadow: none; }
  .ofi-ui-btn[data-variant="success"] { border-color: var(--ofi-ui-success); background: var(--ofi-ui-success); color: #fff; }
  .ofi-ui-btn[data-variant="danger"] { border-color: var(--ofi-ui-danger); background: var(--ofi-ui-danger); color: #fff; }
  .ofi-ui-btn[data-size="sm"] { min-height: var(--ofi-ui-control-height-sm); padding: .3rem .625rem; font-size: var(--ofi-ui-font-size-sm); }
  .ofi-ui-btn[data-size="lg"] { min-height: var(--ofi-ui-control-height-lg); padding: .65rem 1rem; }
  .ofi-ui-icon-btn { width: var(--ofi-ui-control-height-md); height: var(--ofi-ui-control-height-md); padding: 0; border-radius: var(--ofi-ui-radius-sm); }
}

/* --- src/components/fields.css --- */
@layer ofi.components {
  .ofi-ui-field { display: grid; gap: .4rem; min-width: 0; }
  .ofi-ui-label { color: var(--ofi-ui-text); font-size: var(--ofi-ui-font-size-sm); font-weight: var(--ofi-ui-weight-semibold); }
  .ofi-ui-control {
    width: 100%; min-height: var(--ofi-ui-control-height-md); padding: .52rem .72rem;
    border: 1px solid var(--ofi-ui-border-strong); border-radius: var(--ofi-ui-radius-sm);
    background: var(--ofi-ui-surface); color: var(--ofi-ui-text-strong); outline: 0;
    transition: border-color var(--ofi-ui-duration-normal) var(--ofi-ui-ease-standard), box-shadow var(--ofi-ui-duration-normal) var(--ofi-ui-ease-standard), background var(--ofi-ui-duration-normal) var(--ofi-ui-ease-standard);
  }
  textarea.ofi-ui-control { min-height: 5.25rem; resize: vertical; }
  .ofi-ui-control::placeholder { color: var(--ofi-ui-text-subtle); }
  .ofi-ui-control:hover:not(:disabled) { border-color: color-mix(in srgb, var(--ofi-ui-primary) 28%, var(--ofi-ui-border-strong)); }
  .ofi-ui-control:focus { border-color: var(--ofi-ui-focus); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ofi-ui-focus) 18%, transparent); }
  .ofi-ui-control:disabled, .ofi-ui-control[readonly] { background: var(--ofi-ui-surface-soft); color: var(--ofi-ui-text-muted); }
  .ofi-ui-field[data-state="error"] .ofi-ui-control { border-color: var(--ofi-ui-danger); }
  .ofi-ui-field[data-state="error"] .ofi-ui-control:focus { box-shadow: 0 0 0 3px color-mix(in srgb, var(--ofi-ui-danger) 15%, transparent); }
  .ofi-ui-field[data-state="success"] .ofi-ui-control { border-color: var(--ofi-ui-success); }
  .ofi-ui-help { color: var(--ofi-ui-text-muted); font-size: var(--ofi-ui-font-size-xs); }
  .ofi-ui-field[data-state="error"] .ofi-ui-help { color: var(--ofi-ui-danger); }
  .ofi-ui-field[data-state="success"] .ofi-ui-help { color: var(--ofi-ui-success); }
  .ofi-ui-field-row { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: var(--ofi-ui-space-3); }
  .ofi-ui-field-row > * { grid-column: span 4; }
  @media (max-width: 760px) { .ofi-ui-field-row > * { grid-column: 1/-1; } }
}

/* --- src/components/badges.css --- */
@layer ofi.components {
  .ofi-ui-badge { display: inline-flex; align-items: center; gap: .35rem; width: fit-content; min-height: 1.65rem; padding: .2rem .55rem; border: 1px solid var(--ofi-ui-border); border-radius: var(--ofi-ui-radius-pill); background: var(--ofi-ui-surface-soft); color: var(--ofi-ui-text-muted); font-size: var(--ofi-ui-font-size-xs); font-weight: var(--ofi-ui-weight-semibold); white-space: nowrap; }
  .ofi-ui-badge[data-tone="blue"] { border-color: color-mix(in srgb, var(--ofi-ui-info) 22%, white); background: var(--ofi-ui-info-soft); color: var(--ofi-ui-info); }
  .ofi-ui-badge[data-tone="success"] { border-color: color-mix(in srgb, var(--ofi-ui-success) 22%, white); background: var(--ofi-ui-success-soft); color: var(--ofi-ui-success); }
  .ofi-ui-badge[data-tone="warning"] { border-color: color-mix(in srgb, var(--ofi-ui-warning) 25%, white); background: var(--ofi-ui-warning-soft); color: var(--ofi-ui-warning); }
  .ofi-ui-badge[data-tone="danger"] { border-color: color-mix(in srgb, var(--ofi-ui-danger) 22%, white); background: var(--ofi-ui-danger-soft); color: var(--ofi-ui-danger); }
  .ofi-ui-status-dot { width: .5rem; height: .5rem; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 12%, transparent); }
}

/* --- src/components/notices.css --- */
@layer ofi.components {
  .ofi-ui-notice { display: grid; grid-template-columns: auto minmax(0,1fr); gap: .7rem; padding: .75rem .85rem; border: 1px solid var(--ofi-ui-border); border-radius: var(--ofi-ui-radius-md); background: var(--ofi-ui-surface-soft); color: var(--ofi-ui-text); }
  .ofi-ui-notice[data-tone="info"] { border-color: color-mix(in srgb, var(--ofi-ui-info) 25%, white); background: var(--ofi-ui-info-soft); }
  .ofi-ui-notice[data-tone="success"] { border-color: color-mix(in srgb, var(--ofi-ui-success) 25%, white); background: var(--ofi-ui-success-soft); color: color-mix(in srgb, var(--ofi-ui-success) 84%, black); }
  .ofi-ui-notice[data-tone="warning"] { border-color: color-mix(in srgb, var(--ofi-ui-warning) 28%, white); background: var(--ofi-ui-warning-soft); color: color-mix(in srgb, var(--ofi-ui-warning) 84%, black); }
  .ofi-ui-notice[data-tone="danger"] { border-color: color-mix(in srgb, var(--ofi-ui-danger) 24%, white); background: var(--ofi-ui-danger-soft); color: color-mix(in srgb, var(--ofi-ui-danger) 84%, black); }
  .ofi-ui-notice__title { display: block; margin-bottom: .15rem; font-weight: var(--ofi-ui-weight-semibold); }
  .ofi-ui-notice__body { color: inherit; font-size: var(--ofi-ui-font-size-sm); }
}

/* --- src/components/panels.css --- */
@layer ofi.components {
  .ofi-ui-panel { overflow: hidden; border: 1px solid var(--ofi-ui-border); border-radius: var(--ofi-ui-radius-md); background: var(--ofi-ui-surface); box-shadow: var(--ofi-ui-shadow-sm); }
  .ofi-ui-panel__header { display: flex; align-items: center; justify-content: space-between; gap: var(--ofi-ui-space-4); padding: .75rem .9rem; border-bottom: 1px solid var(--ofi-ui-border); background: linear-gradient(90deg, var(--ofi-ui-surface-tint), var(--ofi-ui-surface-soft)); }
  .ofi-ui-panel__header h2, .ofi-ui-panel__header h3 { margin: 0; color: var(--ofi-ui-primary); font-size: var(--ofi-ui-font-size-lg); font-weight: var(--ofi-ui-weight-bold); }
  .ofi-ui-panel__header p { margin: .15rem 0 0; color: var(--ofi-ui-text-muted); font-size: var(--ofi-ui-font-size-xs); }
  .ofi-ui-panel__body { padding: var(--ofi-ui-space-4); }
  .ofi-ui-panel[data-flat="true"] { box-shadow: none; }
}

/* --- src/components/cards.css --- */
@layer ofi.components {
  .ofi-ui-card { border: 1px solid var(--ofi-ui-border); border-radius: var(--ofi-ui-radius-md); background: var(--ofi-ui-surface); box-shadow: var(--ofi-ui-shadow-sm); }
  .ofi-ui-card__body { padding: var(--ofi-ui-space-4); }
  .ofi-ui-metric { display: grid; grid-template-columns: auto minmax(0,1fr); gap: var(--ofi-ui-space-3); align-items: center; min-height: 6rem; padding: var(--ofi-ui-space-4); }
  .ofi-ui-metric__icon { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; border-radius: var(--ofi-ui-radius-md); background: var(--ofi-ui-info-soft); color: var(--ofi-ui-info); }
  .ofi-ui-metric__label { color: var(--ofi-ui-text-muted); font-size: var(--ofi-ui-font-size-sm); }
  .ofi-ui-metric__value { margin-top: .1rem; color: var(--ofi-ui-text-strong); font-size: 1.45rem; line-height: 1.1; font-weight: var(--ofi-ui-weight-bold); font-variant-numeric: tabular-nums; }
  .ofi-ui-metric__helper { margin-top: .25rem; color: var(--ofi-ui-text-muted); font-size: var(--ofi-ui-font-size-xs); }
}

/* --- src/components/tables.css --- */
@layer ofi.components {
  .ofi-ui-table-wrap { overflow: auto; border: 1px solid var(--ofi-ui-border); border-radius: var(--ofi-ui-radius-md); background: var(--ofi-ui-surface); }
  .ofi-ui-table { width: 100%; border-collapse: collapse; color: var(--ofi-ui-text); font-size: var(--ofi-ui-font-size-sm); }
  .ofi-ui-table th { padding: .7rem .8rem; border-bottom: 1px solid var(--ofi-ui-border); background: linear-gradient(180deg, var(--ofi-ui-surface-soft), var(--ofi-ui-surface-tint)); color: color-mix(in srgb, var(--ofi-ui-primary) 82%, var(--ofi-ui-text)); font-size: var(--ofi-ui-font-size-xs); font-weight: var(--ofi-ui-weight-bold); letter-spacing: .025em; text-align: left; text-transform: uppercase; white-space: nowrap; }
  .ofi-ui-table td { padding: .7rem .8rem; border-top: 1px solid color-mix(in srgb, var(--ofi-ui-border) 75%, transparent); vertical-align: middle; }
  .ofi-ui-table tbody tr:hover { background: color-mix(in srgb, var(--ofi-ui-surface-tint) 55%, white); }
  .ofi-ui-table .is-number { text-align: right; font-variant-numeric: tabular-nums; }
}

/* --- src/components/empty-state.css --- */
@layer ofi.components {
  .ofi-ui-empty { display: grid; place-items: center; min-height: 12rem; padding: var(--ofi-ui-space-8); border: 1px dashed var(--ofi-ui-border-strong); border-radius: var(--ofi-ui-radius-md); background: var(--ofi-ui-surface-soft); text-align: center; }
  .ofi-ui-empty__icon { display: grid; place-items: center; width: 3rem; height: 3rem; margin-bottom: .65rem; border-radius: var(--ofi-ui-radius-md); background: var(--ofi-ui-info-soft); color: var(--ofi-ui-info); }
  .ofi-ui-empty__title { color: var(--ofi-ui-text-strong); font-weight: var(--ofi-ui-weight-semibold); }
  .ofi-ui-empty__helper { max-width: 32rem; margin-top: .25rem; color: var(--ofi-ui-text-muted); font-size: var(--ofi-ui-font-size-sm); }
}

/* --- src/patterns/navigation.css --- */
@layer ofi.patterns {
  .ofi-ui-app-shell { min-height: 100vh; background: var(--ofi-ui-bg); }
  .ofi-ui-topbar {
    position: sticky; top: 0; z-index: 40; display: flex; align-items: center; justify-content: space-between;
    gap: var(--ofi-ui-space-4); min-height: 4.25rem; padding: .65rem clamp(1rem,2.2vw,2rem);
    border-bottom: 1px solid var(--ofi-ui-border); background: color-mix(in srgb,var(--ofi-ui-surface) 96%,transparent);
    backdrop-filter: blur(10px);
  }
  .ofi-ui-topbar__identity, .ofi-ui-topbar__context, .ofi-ui-topbar__actions { display: flex; align-items: center; gap: var(--ofi-ui-space-3); min-width: 0; }
  .ofi-ui-topbar__identity-text { display: grid; min-width: 0; }
  .ofi-ui-topbar__identity-text strong { color: var(--ofi-ui-text-strong); font-size: var(--ofi-ui-font-size-md); }
  .ofi-ui-topbar__identity-text span { color: var(--ofi-ui-text-muted); font-size: var(--ofi-ui-font-size-xs); text-transform: uppercase; letter-spacing: .055em; }
  .ofi-ui-topbar__context-chip { display: inline-flex; align-items: center; min-width: 10rem; max-width: 22rem; min-height: 2.35rem; padding: .45rem .75rem; border: 1px solid var(--ofi-ui-border); border-radius: var(--ofi-ui-radius-sm); background: var(--ofi-ui-surface-soft); color: var(--ofi-ui-text); font-size: var(--ofi-ui-font-size-sm); font-weight: var(--ofi-ui-weight-semibold); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .ofi-ui-nav-overlay { position: fixed; inset: 0; z-index: 90; display: grid; grid-template-columns: minmax(17rem,22rem) 1fr; background: rgb(15 23 42 / .34); backdrop-filter: blur(2px); }
  .ofi-ui-nav-overlay[hidden] { display: none; }
  .ofi-ui-nav-scrim { border: 0; background: transparent; cursor: default; }
  .ofi-ui-nav-drawer { display: flex; flex-direction: column; width: 100%; height: 100dvh; min-height: 0; border-right: 1px solid color-mix(in srgb,var(--ofi-ui-primary) 28%,transparent); background: var(--ofi-ui-nav-bg,var(--ofi-ui-surface)); color: var(--ofi-ui-nav-text,var(--ofi-ui-text)); box-shadow: var(--ofi-ui-shadow-lg); animation: ofi-ui-drawer-in var(--ofi-ui-duration-normal) var(--ofi-ui-ease-standard); }
  .ofi-ui-nav-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-height: 4.6rem; padding: .8rem 1rem; border-bottom: 1px solid var(--ofi-ui-nav-border,var(--ofi-ui-border)); }
  .ofi-ui-nav-brand { display: flex; align-items: center; gap: .75rem; min-width: 0; }
  .ofi-ui-nav-brandmark { display: grid; place-items: center; flex: 0 0 auto; width: 3rem; height: 2.55rem; border-radius: var(--ofi-ui-radius-md); background: var(--ofi-ui-nav-active-bg,var(--ofi-ui-primary)); color: var(--ofi-ui-primary-contrast); font-size: .88rem; font-weight: var(--ofi-ui-weight-bold); letter-spacing: .12em; }
  .ofi-ui-nav-brandtext { display: grid; min-width: 0; }
  .ofi-ui-nav-brandtext strong { color: var(--ofi-ui-nav-strong,var(--ofi-ui-text-strong)); font-size: 1.15rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .ofi-ui-nav-brandtext span { color: var(--ofi-ui-nav-muted,var(--ofi-ui-text-muted)); font-size: var(--ofi-ui-font-size-xs); }
  .ofi-ui-nav-search { padding: .8rem 1rem .35rem; }
  .ofi-ui-nav-search .ofi-ui-control { border-color: var(--ofi-ui-nav-border,var(--ofi-ui-border)); background: var(--ofi-ui-nav-search-bg,var(--ofi-ui-surface)); color: var(--ofi-ui-nav-strong,var(--ofi-ui-text-strong)); }
  .ofi-ui-nav-body { flex: 1; min-height: 0; overflow: auto; padding: .35rem .75rem 1rem; }
  .ofi-ui-nav-section { margin-top: .85rem; }
  .ofi-ui-nav-section-toggle { display: flex; align-items: center; justify-content: space-between; gap: .75rem; width: 100%; min-height: 2rem; padding: .35rem .55rem; border: 0; background: transparent; color: var(--ofi-ui-nav-muted,var(--ofi-ui-text-muted)); font-size: var(--ofi-ui-font-size-xs); font-weight: var(--ofi-ui-weight-bold); letter-spacing: .085em; text-align: left; text-transform: uppercase; }
  .ofi-ui-nav-section-toggle::after { content: '⌄'; font-size: .9rem; transform: rotate(0deg); transition: transform var(--ofi-ui-duration-normal) var(--ofi-ui-ease-standard); }
  .ofi-ui-nav-section-toggle[aria-expanded="false"]::after { transform: rotate(-90deg); }
  .ofi-ui-nav-section-items { display: grid; gap: .2rem; }
  .ofi-ui-nav-section-items[hidden] { display: none; }
  .ofi-ui-nav-item { display: flex; align-items: center; gap: .7rem; width: 100%; min-height: 2.7rem; padding: .55rem .65rem; border: 0; border-radius: var(--ofi-ui-radius-sm); background: transparent; color: var(--ofi-ui-nav-text,var(--ofi-ui-text)); font-weight: var(--ofi-ui-weight-semibold); text-align: left; text-decoration: none; transition: background var(--ofi-ui-duration-normal) var(--ofi-ui-ease-standard), color var(--ofi-ui-duration-normal) var(--ofi-ui-ease-standard); }
  .ofi-ui-nav-item:hover { background: var(--ofi-ui-nav-hover-bg,var(--ofi-ui-surface-soft)); color: var(--ofi-ui-nav-strong,var(--ofi-ui-text-strong)); }
  .ofi-ui-nav-item[aria-current="page"], .ofi-ui-nav-item.is-active { background: var(--ofi-ui-nav-active-bg,var(--ofi-ui-info-soft)); color: var(--ofi-ui-nav-active-text,var(--ofi-ui-primary)); box-shadow: inset .2rem 0 0 var(--ofi-ui-nav-accent,var(--ofi-ui-focus)); }
  .ofi-ui-nav-item[hidden] { display: none; }
  .ofi-ui-nav-icon { display: grid; place-items: center; flex: 0 0 1.45rem; width: 1.45rem; height: 1.45rem; color: currentColor; }
  .ofi-ui-nav-footer { display: grid; gap: .35rem; padding: .8rem 1rem 1rem; border-top: 1px solid var(--ofi-ui-nav-border,var(--ofi-ui-border)); background: var(--ofi-ui-nav-footer-bg,transparent); }
  .ofi-ui-nav-workspace { color: var(--ofi-ui-nav-muted,var(--ofi-ui-text-muted)); font-size: var(--ofi-ui-font-size-xs); }
  .ofi-ui-nav-workspace strong { display: block; margin-top: .15rem; color: var(--ofi-ui-nav-strong,var(--ofi-ui-text-strong)); font-size: var(--ofi-ui-font-size-md); }
  .ofi-ui-main { min-width: 0; }
  .ofi-ui-main-content { width: min(100% - 2rem,var(--ofi-ui-content-max)); margin: 0 auto; padding: 1.5rem 0 2.5rem; }
  @keyframes ofi-ui-drawer-in { from { transform: translateX(-1rem); opacity: .5; } to { transform: translateX(0); opacity: 1; } }
  @media (max-width: 820px) { .ofi-ui-topbar__context { display: none; } .ofi-ui-nav-overlay { grid-template-columns: minmax(16.5rem,calc(100vw - 3.25rem)) 1fr; } .ofi-ui-main-content { width: min(100% - 1.25rem,var(--ofi-ui-content-max)); } }
  @media (prefers-reduced-motion: reduce) { .ofi-ui-nav-drawer { animation: none; } }
}

/* --- src/patterns/editors.css --- */
@layer ofi.patterns {
  .ofi-ui-page-head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--ofi-ui-space-6); margin-bottom: var(--ofi-ui-space-4); padding: 1.15rem 1.25rem; border: 1px solid var(--ofi-ui-border); border-radius: var(--ofi-ui-radius-md); background: var(--ofi-ui-surface); box-shadow: var(--ofi-ui-shadow-sm); }
  .ofi-ui-page-head__copy { display: grid; gap: .2rem; min-width: 0; }
  .ofi-ui-page-head__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .55rem; }
  .ofi-ui-full-editor { display: grid; gap: var(--ofi-ui-space-4); min-height: calc(100vh - 4.25rem); }
  .ofi-ui-editor-section { overflow: hidden; border: 1px solid var(--ofi-ui-border); border-radius: var(--ofi-ui-radius-md); background: var(--ofi-ui-surface); box-shadow: var(--ofi-ui-shadow-sm); }
  .ofi-ui-editor-section__head { display: flex; align-items: center; justify-content: space-between; gap: var(--ofi-ui-space-4); padding: .7rem .9rem; border-bottom: 1px solid var(--ofi-ui-border); background: linear-gradient(90deg,var(--ofi-ui-surface-tint),var(--ofi-ui-surface-soft)); }
  .ofi-ui-editor-section__head h2, .ofi-ui-editor-section__head h3 { margin: 0; color: var(--ofi-ui-primary); font-size: var(--ofi-ui-font-size-lg); }
  .ofi-ui-editor-section__body { padding: var(--ofi-ui-space-4); }
  .ofi-ui-editor-grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: .8rem; align-items: end; }
  .ofi-ui-editor-grid > * { grid-column: span 3; }
  .ofi-ui-editor-grid > [data-span="2"] { grid-column: span 2; }
  .ofi-ui-editor-grid > [data-span="4"] { grid-column: span 4; }
  .ofi-ui-editor-grid > [data-span="6"] { grid-column: span 6; }
  .ofi-ui-editor-grid > [data-span="8"] { grid-column: span 8; }
  .ofi-ui-editor-grid > [data-span="12"] { grid-column: 1/-1; }
  .ofi-ui-editor-actionbar { position: sticky; bottom: 0; z-index: 25; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border: 1px solid var(--ofi-ui-border); border-radius: var(--ofi-ui-radius-md); background: color-mix(in srgb,var(--ofi-ui-surface) 96%,transparent); box-shadow: 0 -8px 24px rgb(15 23 42 / .08); backdrop-filter: blur(10px); }
  .ofi-ui-editor-actionbar__group { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; }
  .ofi-ui-entity-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(14rem,19rem); gap: var(--ofi-ui-space-4); align-items: start; }
  .ofi-ui-entity-image { display: grid; gap: .65rem; }
  .ofi-ui-entity-image__frame { display: grid; place-items: center; min-height: 15rem; padding: 1rem; border: 1px solid var(--ofi-ui-border-strong); border-radius: var(--ofi-ui-radius-md); background: var(--ofi-ui-surface-soft); color: var(--ofi-ui-text-muted); text-align: center; overflow: hidden; }
  .ofi-ui-entity-image__frame img { max-width: 100%; max-height: 15rem; object-fit: contain; }
  .ofi-ui-document-editor { display: grid; gap: var(--ofi-ui-space-4); }
  .ofi-ui-document-capture { overflow: visible; }
  .ofi-ui-document-capture__grid { display: grid; grid-template-columns: minmax(16rem,2fr) minmax(6rem,.65fr) minmax(7rem,.75fr) minmax(7rem,.85fr) auto; gap: .55rem; align-items: end; }
  .ofi-ui-document-lines { overflow: auto; border: 1px solid var(--ofi-ui-border); border-radius: var(--ofi-ui-radius-md); background: var(--ofi-ui-surface); }
  .ofi-ui-document-summary { display: flex; align-items: stretch; justify-content: flex-end; gap: .75rem; padding: .85rem; border-top: 1px solid var(--ofi-ui-border); background: var(--ofi-ui-surface-tint); }
  .ofi-ui-document-summary__metric { display: grid; min-width: 8rem; padding: .5rem .75rem; border: 1px solid color-mix(in srgb,var(--ofi-ui-border) 80%,transparent); border-radius: var(--ofi-ui-radius-sm); background: color-mix(in srgb,var(--ofi-ui-surface) 78%,transparent); text-align: right; }
  .ofi-ui-document-summary__metric span { color: var(--ofi-ui-text-muted); font-size: var(--ofi-ui-font-size-xs); text-transform: uppercase; letter-spacing: .04em; }
  .ofi-ui-document-summary__metric strong { margin-top: .15rem; color: var(--ofi-ui-text-strong); font-size: 1.05rem; font-variant-numeric: tabular-nums; }
  .ofi-ui-document-summary__metric[data-emphasis="true"] { border-color: color-mix(in srgb,var(--ofi-ui-success) 22%,var(--ofi-ui-border)); background: var(--ofi-ui-success-soft); }
  .ofi-ui-document-summary__metric[data-emphasis="true"] strong { color: var(--ofi-ui-success); font-size: 1.25rem; }
  .ofi-ui-editor-modal { width: min(96vw,78rem); max-height: 94dvh; overflow: auto; border: 1px solid var(--ofi-ui-border); border-radius: var(--ofi-ui-radius-lg); background: var(--ofi-ui-surface); box-shadow: var(--ofi-ui-shadow-lg); }
  @media (max-width: 1020px) { .ofi-ui-editor-grid > * { grid-column: span 6; } .ofi-ui-editor-grid > [data-span="2"], .ofi-ui-editor-grid > [data-span="4"] { grid-column: span 6; } .ofi-ui-editor-grid > [data-span="8"] { grid-column: 1/-1; } .ofi-ui-document-capture__grid { grid-template-columns: minmax(14rem,2fr) repeat(2,minmax(6rem,.8fr)) auto; } .ofi-ui-document-capture__grid > *:nth-child(4) { grid-column: 2/4; } }
  @media (max-width: 760px) { .ofi-ui-page-head { align-items: stretch; flex-direction: column; } .ofi-ui-page-head__actions { justify-content: flex-start; } .ofi-ui-editor-grid > *, .ofi-ui-editor-grid > [data-span] { grid-column: 1/-1; } .ofi-ui-entity-layout { grid-template-columns: 1fr; } .ofi-ui-document-capture__grid { grid-template-columns: 1fr 1fr; } .ofi-ui-document-capture__grid > *:first-child { grid-column: 1/-1; } .ofi-ui-document-capture__grid > *:nth-child(4) { grid-column: auto; } .ofi-ui-document-summary { flex-wrap: wrap; } .ofi-ui-document-summary__metric { flex: 1 1 8rem; } .ofi-ui-editor-actionbar { align-items: stretch; flex-direction: column; } .ofi-ui-editor-actionbar__group { width: 100%; } .ofi-ui-editor-actionbar__group:last-child { justify-content: flex-end; } }
}

/* --- src/patterns/searchable.css --- */
@layer ofi.patterns {
  .ofi-ui-searchable { position: relative; min-width: 0; }
  .ofi-ui-searchable__menu { position: fixed; z-index: 120; overflow: auto; overscroll-behavior: contain; max-height: min(22rem,calc(100dvh - 2rem)); border: 1px solid var(--ofi-ui-border-strong); border-radius: var(--ofi-ui-radius-sm); background: var(--ofi-ui-surface); box-shadow: var(--ofi-ui-shadow-md); }
  .ofi-ui-searchable__menu[hidden] { display: none; }
  .ofi-ui-searchable__head, .ofi-ui-searchable__option { display: grid; align-items: center; min-width: max-content; }
  .ofi-ui-searchable__head { position: sticky; top: 0; z-index: 2; min-height: 2rem; border-bottom: 1px solid var(--ofi-ui-border); background: var(--ofi-ui-surface-tint); color: var(--ofi-ui-text-muted); font-size: var(--ofi-ui-font-size-xs); font-weight: var(--ofi-ui-weight-bold); letter-spacing: .04em; text-transform: uppercase; }
  .ofi-ui-searchable__head > span, .ofi-ui-searchable__option > span, .ofi-ui-searchable__option > strong { min-width: 0; padding: .45rem .65rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .ofi-ui-searchable__option { width: 100%; min-height: 2.45rem; border: 0; border-bottom: 1px solid color-mix(in srgb,var(--ofi-ui-border) 64%,transparent); background: var(--ofi-ui-surface); color: var(--ofi-ui-text); text-align: left; }
  .ofi-ui-searchable__option:last-child { border-bottom: 0; }
  .ofi-ui-searchable__option:hover, .ofi-ui-searchable__option[aria-selected="true"] { background: color-mix(in srgb,var(--ofi-ui-info-soft) 82%,white); }
  .ofi-ui-searchable__option strong { color: var(--ofi-ui-primary); }
  .ofi-ui-searchable__option:disabled { opacity: .52; cursor: not-allowed; }
  .ofi-ui-searchable__option .is-number, .ofi-ui-searchable__head .is-number { text-align: right; font-variant-numeric: tabular-nums; }
  .ofi-ui-searchable__empty { padding: .85rem; color: var(--ofi-ui-text-muted); font-size: var(--ofi-ui-font-size-sm); text-align: center; }
  .ofi-ui-searchable[data-density="compact"] .ofi-ui-searchable__option { min-height: 2.1rem; }
}

/* --- src/patterns/behavior-hooks.css --- */
@layer ofi.patterns {
  [data-ofi-autoselect="all"]::selection { background: color-mix(in srgb,var(--ofi-ui-focus) 28%,white); }
  [data-ofi-focus-handoff="pending"] { outline: 2px solid color-mix(in srgb,var(--ofi-ui-focus) 32%,transparent); outline-offset: 2px; }
  .ofi-ui-key-hint { display: inline-flex; align-items: center; gap: .25rem; color: var(--ofi-ui-text-muted); font-size: var(--ofi-ui-font-size-xs); }
  .ofi-ui-key { display: inline-grid; place-items: center; min-width: 1.45rem; min-height: 1.35rem; padding: .05rem .3rem; border: 1px solid var(--ofi-ui-border-strong); border-radius: .3rem; background: var(--ofi-ui-surface-soft); box-shadow: inset 0 -1px 0 color-mix(in srgb,var(--ofi-ui-border-strong) 60%,transparent); color: var(--ofi-ui-text); font-family: var(--ofi-ui-font-mono); font-size: .68rem; }
}

@layer ofi.patterns {
  /* Welcome / resume */
  .ofi-ui-welcome { min-height: calc(100dvh - 4.25rem); display:grid; place-items:center; padding:clamp(1.25rem,4vw,3rem); background:linear-gradient(180deg,var(--ofi-ui-bg),var(--ofi-ui-surface-soft)); }
  .ofi-ui-welcome__panel { width:min(100%,62rem); display:grid; gap:var(--ofi-ui-space-5); }
  .ofi-ui-welcome__hero { text-align:center; display:grid; justify-items:center; gap:.65rem; }
  .ofi-ui-welcome__mark { display:grid; place-items:center; width:4.25rem; height:4.25rem; border-radius:1.2rem; color:var(--ofi-ui-primary-contrast); background:linear-gradient(135deg,var(--ofi-ui-primary),var(--ofi-ui-accent)); box-shadow:var(--ofi-ui-shadow-md); font-weight:var(--ofi-ui-weight-bold); letter-spacing:.1em; }
  .ofi-ui-resume-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--ofi-ui-space-4); }
  .ofi-ui-resume-card { display:grid; gap:.55rem; min-height:10rem; padding:1rem 1.1rem; border:1px solid var(--ofi-ui-border); border-radius:var(--ofi-ui-radius-lg); background:var(--ofi-ui-surface); box-shadow:var(--ofi-ui-shadow-sm); text-align:left; }
  .ofi-ui-resume-card[data-current="true"] { border-color:color-mix(in srgb,var(--ofi-ui-primary) 45%,var(--ofi-ui-border)); box-shadow:0 0 0 3px color-mix(in srgb,var(--ofi-ui-primary) 9%,transparent),var(--ofi-ui-shadow-sm); }
  .ofi-ui-resume-card__meta { display:flex; justify-content:space-between; gap:.75rem; align-items:center; color:var(--ofi-ui-text-muted); font-size:var(--ofi-ui-font-size-xs); }

  /* Internal login presentation */
  .ofi-ui-login-layout { min-height:calc(100dvh - 4.25rem); display:grid; grid-template-columns:minmax(18rem,.85fr) minmax(22rem,1.15fr); }
  .ofi-ui-login-brand { display:grid; align-content:center; gap:1rem; padding:clamp(2rem,5vw,5rem); color:var(--ofi-ui-primary-contrast); background:linear-gradient(145deg,var(--ofi-ui-primary),color-mix(in srgb,var(--ofi-ui-primary) 58%,var(--ofi-ui-accent))); }
  .ofi-ui-login-brand .ofi-ui-caption { color:color-mix(in srgb,var(--ofi-ui-primary-contrast) 78%,transparent); }
  .ofi-ui-login-form-wrap { display:grid; place-items:center; padding:clamp(1.5rem,5vw,4rem); background:var(--ofi-ui-bg); }
  .ofi-ui-login-card { width:min(100%,28rem); padding:clamp(1.25rem,3vw,2rem); border:1px solid var(--ofi-ui-border); border-radius:var(--ofi-ui-radius-lg); background:var(--ofi-ui-surface); box-shadow:var(--ofi-ui-shadow-md); }
  .ofi-ui-login-card form { display:grid; gap:var(--ofi-ui-space-4); }
  .ofi-ui-password-field { position:relative; }
  .ofi-ui-password-field .ofi-ui-control { padding-right:3rem; }
  .ofi-ui-password-toggle { position:absolute; right:.45rem; bottom:.38rem; min-width:2.3rem; min-height:2.3rem; border:0; border-radius:var(--ofi-ui-radius-sm); background:transparent; color:var(--ofi-ui-text-muted); cursor:pointer; }

  /* Dashboard families */
  .ofi-ui-dashboard { display:grid; gap:var(--ofi-ui-space-4); }
  .ofi-ui-dashboard-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
  .ofi-ui-dashboard-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--ofi-ui-space-3); }
  .ofi-ui-kpi { min-width:0; position:relative; overflow:hidden; padding:1rem; border:1px solid var(--ofi-ui-border); border-radius:var(--ofi-ui-radius-md); background:var(--ofi-ui-surface); box-shadow:var(--ofi-ui-shadow-sm); }
  .ofi-ui-kpi::before { content:""; position:absolute; inset:0 auto 0 0; width:.28rem; background:var(--ofi-ui-kpi-accent,var(--ofi-ui-primary)); }
  .ofi-ui-kpi__label { color:var(--ofi-ui-text-muted); font-size:var(--ofi-ui-font-size-xs); font-weight:var(--ofi-ui-weight-bold); letter-spacing:.055em; text-transform:uppercase; }
  .ofi-ui-kpi__value { display:block; margin-top:.3rem; color:var(--ofi-ui-text-strong); font-size:clamp(1.45rem,2.4vw,2.1rem); font-weight:var(--ofi-ui-weight-bold); font-variant-numeric:tabular-nums; }
  .ofi-ui-kpi__delta { display:inline-flex; align-items:center; gap:.25rem; margin-top:.35rem; color:var(--ofi-ui-text-muted); font-size:var(--ofi-ui-font-size-xs); }
  .ofi-ui-dashboard-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:var(--ofi-ui-space-4); }
  .ofi-ui-dashboard-widget { grid-column:span 6; min-width:0; overflow:hidden; border:1px solid var(--ofi-ui-border); border-radius:var(--ofi-ui-radius-md); background:var(--ofi-ui-surface); box-shadow:var(--ofi-ui-shadow-sm); }
  .ofi-ui-dashboard-widget[data-span="4"] { grid-column:span 4; }
  .ofi-ui-dashboard-widget[data-span="8"] { grid-column:span 8; }
  .ofi-ui-dashboard-widget[data-span="12"] { grid-column:1/-1; }
  .ofi-ui-dashboard-widget__head { display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:.8rem 1rem; border-bottom:1px solid var(--ofi-ui-border); }
  .ofi-ui-dashboard-widget__body { padding:1rem; min-height:12rem; }
  .ofi-ui-dashboard[data-family="executive"] .ofi-ui-kpi { background:linear-gradient(135deg,color-mix(in srgb,var(--ofi-ui-kpi-accent,var(--ofi-ui-primary)) 10%,var(--ofi-ui-surface)),var(--ofi-ui-surface)); }
  .ofi-ui-dashboard[data-family="operational"] .ofi-ui-dashboard-widget__body { min-height:10rem; }
  .ofi-ui-chart-placeholder { height:11rem; display:grid; place-items:center; border-radius:var(--ofi-ui-radius-sm); background:linear-gradient(180deg,var(--ofi-ui-surface-tint),var(--ofi-ui-surface-soft)); color:var(--ofi-ui-text-muted); font-size:var(--ofi-ui-font-size-sm); }
  .ofi-ui-quick-actions { display:grid; grid-template-columns:repeat(auto-fit,minmax(10rem,1fr)); gap:.65rem; }
  .ofi-ui-quick-action { display:flex; align-items:center; gap:.65rem; min-height:4.2rem; padding:.75rem; border:1px solid var(--ofi-ui-border); border-radius:var(--ofi-ui-radius-md); background:var(--ofi-ui-surface); color:var(--ofi-ui-text); text-decoration:none; }
  .ofi-ui-quick-action:hover { border-color:var(--ofi-ui-border-strong); background:var(--ofi-ui-surface-tint); }

  /* Document register */
  .ofi-ui-register { display:grid; gap:var(--ofi-ui-space-4); }
  .ofi-ui-register-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--ofi-ui-space-3); }
  .ofi-ui-register-filters { display:grid; grid-template-columns:minmax(14rem,2fr) repeat(3,minmax(9rem,1fr)) auto; gap:.65rem; align-items:end; padding:.85rem; border:1px solid var(--ofi-ui-border); border-radius:var(--ofi-ui-radius-md); background:var(--ofi-ui-surface); }
  .ofi-ui-register-table { overflow:auto; border:1px solid var(--ofi-ui-border); border-radius:var(--ofi-ui-radius-md); background:var(--ofi-ui-surface); }
  .ofi-ui-row-actions { display:flex; justify-content:flex-end; gap:.35rem; }

  /* Users / roles / permission presentation */
  .ofi-ui-admin-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--ofi-ui-space-3); }
  .ofi-ui-role-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--ofi-ui-space-3); }
  .ofi-ui-role-card { display:grid; gap:.55rem; padding:1rem; border:1px solid var(--ofi-ui-border); border-radius:var(--ofi-ui-radius-md); background:var(--ofi-ui-surface); }
  .ofi-ui-role-card[data-selected="true"] { border-color:color-mix(in srgb,var(--ofi-ui-primary) 45%,var(--ofi-ui-border)); box-shadow:0 0 0 3px color-mix(in srgb,var(--ofi-ui-primary) 8%,transparent); }
  .ofi-ui-permission-matrix { overflow:auto; border:1px solid var(--ofi-ui-border); border-radius:var(--ofi-ui-radius-md); }
  .ofi-ui-permission-matrix table { min-width:42rem; }
  .ofi-ui-permission-cell { text-align:center; }
  .ofi-ui-user-state { display:inline-flex; align-items:center; gap:.35rem; }

  /* Companies + entitlement UX (presentation only) */
  .ofi-ui-company-capacity { display:grid; gap:.5rem; padding:1rem; border:1px solid var(--ofi-ui-border); border-radius:var(--ofi-ui-radius-md); background:var(--ofi-ui-surface); }
  .ofi-ui-capacity-meter { height:.65rem; overflow:hidden; border-radius:999px; background:var(--ofi-ui-surface-soft); }
  .ofi-ui-capacity-meter__fill { width:var(--ofi-ui-capacity-percent,0%); height:100%; border-radius:inherit; background:var(--ofi-ui-primary); transition:width var(--ofi-ui-duration-normal) var(--ofi-ui-ease-standard); }
  .ofi-ui-company-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(17rem,1fr)); gap:var(--ofi-ui-space-3); }
  .ofi-ui-company-card { display:grid; gap:.75rem; padding:1rem; border:1px solid var(--ofi-ui-border); border-radius:var(--ofi-ui-radius-md); background:var(--ofi-ui-surface); box-shadow:var(--ofi-ui-shadow-sm); }
  .ofi-ui-company-card[data-current="true"] { border-color:color-mix(in srgb,var(--ofi-ui-primary) 45%,var(--ofi-ui-border)); }
  .ofi-ui-company-card__head { display:flex; justify-content:space-between; gap:.75rem; align-items:flex-start; }
  .ofi-ui-company-card__actions { display:flex; flex-wrap:wrap; gap:.45rem; }
  .ofi-ui-license-callout { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; padding:.9rem 1rem; border:1px solid color-mix(in srgb,var(--ofi-ui-info) 28%,var(--ofi-ui-border)); border-radius:var(--ofi-ui-radius-md); background:var(--ofi-ui-info-soft); }

  /* Generic module tabs */
  .ofi-ui-segmented { display:inline-flex; flex-wrap:wrap; gap:.25rem; padding:.25rem; border:1px solid var(--ofi-ui-border); border-radius:var(--ofi-ui-radius-md); background:var(--ofi-ui-surface-soft); }
  .ofi-ui-segmented button { min-height:2.25rem; padding:.4rem .7rem; border:0; border-radius:var(--ofi-ui-radius-sm); background:transparent; color:var(--ofi-ui-text-muted); font-weight:var(--ofi-ui-weight-semibold); }
  .ofi-ui-segmented button[aria-selected="true"] { background:var(--ofi-ui-surface); color:var(--ofi-ui-primary); box-shadow:var(--ofi-ui-shadow-xs); }

  @media (max-width:1050px) {
    .ofi-ui-dashboard-kpis,.ofi-ui-register-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .ofi-ui-dashboard-widget,.ofi-ui-dashboard-widget[data-span="4"],.ofi-ui-dashboard-widget[data-span="8"] { grid-column:span 6; }
    .ofi-ui-register-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .ofi-ui-register-filters > :first-child { grid-column:1/-1; }
    .ofi-ui-role-grid,.ofi-ui-admin-overview { grid-template-columns:repeat(2,minmax(0,1fr)); }
  }
  @media (max-width:760px) {
    .ofi-ui-resume-grid,.ofi-ui-dashboard-kpis,.ofi-ui-register-summary,.ofi-ui-role-grid,.ofi-ui-admin-overview { grid-template-columns:1fr; }
    .ofi-ui-login-layout { grid-template-columns:1fr; }
    .ofi-ui-login-brand { min-height:13rem; }
    .ofi-ui-dashboard-widget,.ofi-ui-dashboard-widget[data-span] { grid-column:1/-1; }
    .ofi-ui-register-filters { grid-template-columns:1fr; }
    .ofi-ui-register-filters > :first-child { grid-column:auto; }
  }
}


/* OFI UI/UX Design System 1.0 — F5 Reporting & Documents */
.ofi-ui-report-center{display:grid;gap:var(--ofi-ui-space-5,1.25rem)}
.ofi-ui-report-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ofi-ui-space-4,1rem);padding:var(--ofi-ui-space-5,1.25rem);border:1px solid var(--ofi-ui-border,#d0d5dd);border-radius:var(--ofi-ui-radius-xl,16px);background:linear-gradient(135deg,color-mix(in srgb,var(--ofi-ui-primary,#172554) 6%,#fff),var(--ofi-ui-surface,#fff))}
.ofi-ui-report-hero__copy{min-width:0}.ofi-ui-report-hero__eyebrow{display:block;margin-bottom:.35rem;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ofi-ui-primary,#172554)}
.ofi-ui-report-hero h1{margin:0;font-size:clamp(1.5rem,2.8vw,2.2rem)}.ofi-ui-report-hero p{margin:.4rem 0 0;color:var(--ofi-ui-text-muted,#667085)}
.ofi-ui-report-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:flex-end}
.ofi-ui-report-library{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--ofi-ui-space-3,.75rem)}
.ofi-ui-report-card{appearance:none;text-align:left;border:1px solid var(--ofi-ui-border,#d0d5dd);background:var(--ofi-ui-surface,#fff);border-radius:var(--ofi-ui-radius-lg,12px);padding:1rem;display:grid;grid-template-columns:auto 1fr;gap:.75rem;cursor:pointer;transition:transform var(--ofi-ui-motion-fast,120ms),box-shadow var(--ofi-ui-motion-fast,120ms),border-color var(--ofi-ui-motion-fast,120ms)}
.ofi-ui-report-card:hover,.ofi-ui-report-card:focus-visible{transform:translateY(-1px);border-color:var(--ofi-ui-primary,#172554);box-shadow:var(--ofi-ui-shadow-sm,0 1px 3px rgba(16,24,40,.12));outline:none}.ofi-ui-report-card__icon{width:2.4rem;height:2.4rem;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--ofi-ui-primary,#172554) 10%,#fff);color:var(--ofi-ui-primary,#172554);font-weight:700}.ofi-ui-report-card strong{display:block;color:var(--ofi-ui-text,#101828)}.ofi-ui-report-card span{display:block;margin-top:.2rem;color:var(--ofi-ui-text-muted,#667085);font-size:.88rem;line-height:1.35}
.ofi-ui-report-filters{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.8rem;align-items:end}.ofi-ui-report-filters>[data-ofi-span="2"]{grid-column:span 2}.ofi-ui-report-filters>[data-ofi-span="3"]{grid-column:span 3}.ofi-ui-report-filters>[data-ofi-span="4"]{grid-column:span 4}.ofi-ui-report-filters>[data-ofi-span="6"]{grid-column:span 6}.ofi-ui-report-filters__actions{grid-column:span 3;display:flex;gap:.55rem;justify-content:flex-end}
.ofi-ui-report-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem}.ofi-ui-report-summary .ofi-ui-card{min-height:86px}
.ofi-ui-report-preview{border:1px solid var(--ofi-ui-border,#d0d5dd);border-radius:var(--ofi-ui-radius-xl,16px);background:var(--ofi-ui-surface,#fff);overflow:hidden}.ofi-ui-report-preview__toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-bottom:1px solid var(--ofi-ui-border,#d0d5dd)}.ofi-ui-report-preview__tabs{display:flex;gap:.35rem}.ofi-ui-report-preview__tab{border:0;background:transparent;border-radius:8px;padding:.5rem .75rem;color:var(--ofi-ui-text-muted,#667085);font-weight:700;cursor:pointer}.ofi-ui-report-preview__tab[aria-selected="true"]{background:color-mix(in srgb,var(--ofi-ui-primary,#172554) 10%,#fff);color:var(--ofi-ui-primary,#172554)}.ofi-ui-report-preview__body{overflow:auto}.ofi-ui-report-preview__body table{min-width:760px}
.ofi-ui-report-meta{display:flex;flex-wrap:wrap;gap:.4rem 1rem;color:var(--ofi-ui-text-muted,#667085);font-size:.85rem}

.ofi-ui-document-preview{background:#eef2f6;padding:clamp(12px,3vw,28px);overflow:auto}.ofi-ui-document-page{--ofi-doc-ink:#162033;--ofi-doc-muted:#667085;--ofi-doc-border:#d7dde5;--ofi-doc-primary:var(--ofi-ui-primary,#172554);position:relative;width:min(100%,210mm);min-height:270mm;margin:0 auto;background:#fff;color:var(--ofi-doc-ink);border-radius:3px;box-shadow:0 12px 30px rgba(16,24,40,.16);padding:12mm 11mm;font-family:"Source Sans 3","Segoe UI",Arial,sans-serif}
.ofi-ui-document-page[data-size="letter"]{width:min(100%,216mm);min-height:259mm}.ofi-ui-document-watermark{position:absolute;inset:45% 0 auto;transform:rotate(-24deg);text-align:center;font-size:64px;font-weight:700;letter-spacing:.15em;color:rgba(180,35,24,.11);pointer-events:none}.ofi-ui-document-watermark[data-kind="draft"]{color:rgba(71,84,103,.10)}
.ofi-ui-document-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,34%);gap:24px;align-items:start;padding-bottom:10px;border-bottom:2px solid var(--ofi-doc-primary)}.ofi-ui-document-company{display:flex;gap:12px;align-items:flex-start}.ofi-ui-document-logo{width:84px;height:62px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--ofi-doc-border);border-radius:8px;background:#fff}.ofi-ui-document-logo img{max-width:100%;max-height:100%;object-fit:contain;transform:scale(var(--ofi-doc-logo-scale,1));transform-origin:center}.ofi-ui-document-logo[data-empty="true"]{font-weight:700;font-size:1.35rem;color:var(--ofi-doc-primary);background:color-mix(in srgb,var(--ofi-doc-primary) 8%,#fff)}.ofi-ui-document-company-copy{display:grid;gap:2px}.ofi-ui-document-company-copy strong{font-size:1.2rem}.ofi-ui-document-company-copy span{font-size:.78rem;color:var(--ofi-doc-muted)}
.ofi-ui-document-title{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:3px}.ofi-ui-document-title h2{margin:0;color:var(--ofi-doc-primary);font-size:1.3rem;letter-spacing:.025em}.ofi-ui-document-title strong{font-size:1.05rem}.ofi-ui-document-title span{font-size:.8rem;color:var(--ofi-doc-muted)}.ofi-ui-document-chip{display:inline-flex;padding:.18rem .5rem;border-radius:999px;background:#ecfdf3;color:#027a48;font-size:.68rem;font-weight:700;letter-spacing:.06em}
.ofi-ui-document-info{display:grid;grid-template-columns:1.08fr .92fr;gap:10px;margin-top:11px}.ofi-ui-document-info-card{border:1px solid var(--ofi-doc-border);border-radius:8px;overflow:hidden}.ofi-ui-document-info-card h3{margin:0;padding:6px 8px;background:#f7f9fc;color:var(--ofi-doc-primary);font-size:.78rem}.ofi-ui-document-info-card dl{margin:0;padding:5px 8px}.ofi-ui-document-info-card dl>div{display:grid;grid-template-columns:108px minmax(0,1fr);gap:8px;padding:2px 0}.ofi-ui-document-info-card dt{font-size:.71rem;color:var(--ofi-doc-muted)}.ofi-ui-document-info-card dd{margin:0;font-size:.74rem;font-weight:600;overflow-wrap:anywhere}
.ofi-ui-document-note{margin-top:9px;padding:7px 9px;border-left:3px solid var(--ofi-doc-primary);background:#f8fafc;font-size:.76rem}.ofi-ui-document-note strong{display:block;margin-bottom:2px}.ofi-ui-document-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:.74rem}.ofi-ui-document-table th{background:var(--ofi-doc-primary);color:#fff;text-align:left;padding:6px;border:1px solid var(--ofi-doc-primary)}.ofi-ui-document-table td{padding:6px;border-bottom:1px solid var(--ofi-doc-border);vertical-align:top}.ofi-ui-document-table .num{text-align:right;font-variant-numeric:tabular-nums}.ofi-ui-document-summary{width:min(410px,100%);margin:10px 0 0 auto;border:1px solid var(--ofi-doc-border);border-radius:8px;overflow:hidden}.ofi-ui-document-summary>div{display:flex;justify-content:space-between;gap:12px;padding:5px 8px;border-bottom:1px solid var(--ofi-doc-border);font-size:.75rem}.ofi-ui-document-summary>div:last-child{border-bottom:0;background:#f7f9fc}.ofi-ui-document-summary strong{font-variant-numeric:tabular-nums}
.ofi-ui-document-signatures{display:grid;grid-template-columns:1fr 1fr;gap:68px;margin-top:22px}.ofi-ui-document-signature{padding-top:20px;border-top:1px solid #667085;text-align:center;display:grid;gap:4px;font-size:.72rem}.ofi-ui-document-signature strong{font-size:.75rem}.ofi-ui-document-signature small{color:var(--ofi-doc-muted)}.ofi-ui-document-footer{display:flex;justify-content:space-between;gap:16px;margin-top:14px;padding-top:6px;border-top:1px solid var(--ofi-doc-border);color:var(--ofi-doc-muted);font-size:.68rem}
.ofi-ui-print-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.ofi-ui-print-toolbar__actions{display:flex;gap:.5rem;flex-wrap:wrap}
.ofi-ui-print-return{position:fixed;right:16px;top:16px;z-index:9999;border:1px solid #d0d5dd;background:#fff;color:#344054;border-radius:8px;padding:8px 12px;font:600 14px/1.2 "Source Sans 3","Segoe UI",sans-serif;box-shadow:0 4px 14px rgba(16,24,40,.14);cursor:pointer}
@media (max-width:800px){.ofi-ui-report-hero{flex-direction:column}.ofi-ui-report-actions{justify-content:flex-start}.ofi-ui-report-filters{grid-template-columns:1fr 1fr}.ofi-ui-report-filters>*{grid-column:span 1!important}.ofi-ui-report-filters__actions{grid-column:1/-1!important;justify-content:flex-start}.ofi-ui-document-header,.ofi-ui-document-info{grid-template-columns:1fr}.ofi-ui-document-title{align-items:flex-start;text-align:left}.ofi-ui-document-signatures{gap:28px}.ofi-ui-document-page{min-width:720px}}
@media print{.ofi-ui-no-print,.ofi-ui-print-toolbar,.ofi-ui-print-return{display:none!important}.ofi-ui-document-preview{padding:0;background:#fff}.ofi-ui-document-page{width:100%;min-height:0;margin:0;box-shadow:none;border-radius:0;padding:0}.ofi-ui-report-preview{border:0}.ofi-ui-report-preview__toolbar{display:none}.ofi-ui-document-header,.ofi-ui-document-info,.ofi-ui-document-signatures{break-inside:avoid}.ofi-ui-document-table thead{display:table-header-group}.ofi-ui-document-table tr{break-inside:avoid}}
