/* Portal do parceiro: copia do ids.css do CRM Infinity (/opt/crm, 09/11/2026). Nao editar: as cores da AGT
   e o acento do parceiro sobrepoem os tokens no portal.css (carregado depois).
   Infinity Design System (IDS) — tokens e componentes inf-*, copiados do pacote em 31/10/2026.
   Nao editar aqui: ajustes do CRM ficam no crm.css (carregado depois). O tema escuro do IDS
   usa [data-theme=dark]; o tema.js poe data-theme junto com data-tema. */

/* ---- tokens/colors.css ---- */
/* ==========================================================================
   IDS · Color tokens — Infinity Design System
   Layer 1 — primitives (never use directly in product UI)
   Layer 2 — semantic aliases (use these) · light on :root, dark on [data-theme="dark"]
   Brand anchors sampled from the Infinity logo (gradient lime → green → teal → cyan → blue):
     ink  #032C43 (wordmark)   lime #A8EB3C   leaf #3DBE4E   aqua #0A7E80 (UI primary)   cyan #22D3D3   ocean #1F5FA8
   ========================================================================== */
:root {
  /* — Brand anchors — */
  --inf-brand-ink: #032C43;
  --inf-brand-lime: #A8EB3C;
  --inf-brand-leaf: #3DBE4E;
  --inf-brand-aqua: #0A7E80;
  --inf-brand-cyan: #22D3D3;
  --inf-brand-ocean: #1F5FA8;
  /* Brand gradient — logo, app icon, marketing heroes and the brand loader only. Never behind text or data. */
  --brand-gradient: linear-gradient(120deg, #A8EB3C 0%, #3DBE4E 26%, #0FA88C 50%, #22D3D3 72%, #1F5FA8 100%); /* @kind other */

  /* — Aqua (primary / accent) — the teal at the centre of the loop, deepened for 4.5:1 with white — */
  --aqua-25: #F1FCFB;
  --aqua-50: #E3F8F6;
  --aqua-100: #C2EFEB;
  --aqua-200: #8FE2DB;
  --aqua-300: #52D0C8;
  --aqua-400: #1FB8B2;
  --aqua-500: #0F9C9A;
  --aqua-600: #0A7E80;
  --aqua-700: #096668;
  --aqua-800: #0A5355;
  --aqua-900: #0B4245;
  --aqua-950: #062A2D;

  /* — Ocean (secondary brand, data) — the deep blue end of the loop — */
  --ocean-100: #DCEAF7;
  --ocean-300: #7FAEDB;
  --ocean-500: #1F5FA8;
  --ocean-700: #154477;

  /* — Lime & leaf (brand highlight) — the bright green start of the loop — */
  --lime-100: #F0FAD9;
  --lime-300: #CDF28A;
  --lime-500: #A8EB3C;
  --lime-700: #5E8F14;
  --leaf-500: #3DBE4E;
  --leaf-600: #2A9A3C;

  /* — Navy (brand ink, inverse + dark surfaces) — the wordmark colour — */
  --navy-950: #021A28;
  --navy-900: #032C43;
  --navy-800: #0D3D57;
  --navy-700: #23536B;
  --navy-600: #3E6A80;

  /* — Neutral (cool slate, faint blue-green cast) — */
  --neutral-0: #FFFFFF;
  --neutral-25: #FAFBFC;
  --neutral-50: #F4F6F8;
  --neutral-100: #ECEFF2;
  --neutral-150: #E2E7EB;
  --neutral-200: #D6DCE1;
  --neutral-300: #BCC5CC;
  --neutral-400: #97A2AB;
  --neutral-500: #647079;
  --neutral-600: #56626C;
  --neutral-700: #414C55;
  --neutral-800: #2D363E;
  --neutral-850: #212A31;
  --neutral-900: #182026;
  --neutral-925: #131A1F;
  --neutral-950: #0C1216;

  /* — Status primitives — */
  --green-50: #EAF8F0;  --green-100: #CFF0DD; --green-500: #1FA75D; --green-600: #138A4A; --green-700: #0E6B39;
  --amber-50: #FEF6E7;  --amber-100: #FDE9C2; --amber-500: #E8930C; --amber-600: #B45F06; --amber-700: #8A4805;
  --red-50: #FDEDEE;    --red-100: #FAD4D7;   --red-500: #E5484D;   --red-600: #CC2E3B;   --red-700: #A41F2C;
  --blue-50: #EAF2FD;   --blue-100: #CFE1FA;  --blue-500: #3B82F6;  --blue-600: #1F67D2;  --blue-700: #1750A6;
  --teal-50: #E6F7F6;   --teal-100: #C2EDEA;  --teal-500: #14A3A3;  --teal-600: #0C8282;
  --rose-500: #E0577B;

  /* — Data visualisation (categorical, in order — follows the loop: aqua, ink, light aqua, ocean, leaf…) — */
  --viz-1: var(--aqua-600);
  --viz-2: var(--navy-900);
  --viz-3: var(--aqua-300);
  --viz-4: var(--ocean-500);
  --viz-5: var(--amber-500);
  --viz-6: var(--rose-500);
  --viz-7: var(--leaf-600);
  --viz-8: var(--neutral-400);
  --viz-grid: var(--neutral-150);
  --viz-axis: var(--neutral-500);

  /* ======================= SEMANTIC (light) ======================= */
  /* Backgrounds & surfaces */
  --bg-app: var(--neutral-50);
  --bg-canvas: var(--neutral-100);
  --surface-1: var(--neutral-0);          /* cards, panels, tables */
  --surface-2: var(--neutral-25);         /* inset areas, table headers, secondary panels */
  --surface-3: var(--neutral-100);        /* hover fill, wells, segmented tracks */
  --surface-sunken: var(--neutral-50);
  --surface-overlay: var(--neutral-0);    /* menus, popovers, dialogs */
  --surface-inverse: var(--navy-900);
  --surface-brand: var(--aqua-600);
  --surface-brand-subtle: var(--aqua-50);
  --surface-brand-muted: var(--aqua-100);
  --surface-scrim: rgba(2, 26, 40, 0.44);

  /* Text */
  --text-strong: var(--navy-900);         /* display, headings, KPI figures */
  --text-primary: var(--neutral-850);     /* body */
  --text-secondary: var(--neutral-600);
  --text-tertiary: var(--neutral-500);    /* meta, placeholder */
  --text-disabled: var(--neutral-400);
  --text-inverse: var(--neutral-0);
  --text-on-brand: var(--neutral-0);
  --text-brand: var(--aqua-700);
  --text-link: var(--aqua-700);
  --text-link-hover: var(--aqua-800);

  /* Borders */
  --border-subtle: var(--neutral-100);
  --border-default: var(--neutral-150);
  --border-strong: var(--neutral-300);
  --border-brand: var(--aqua-600);
  --border-focus: var(--aqua-600);

  /* Interactive (accent) */
  --accent: var(--aqua-600);
  --accent-hover: var(--aqua-700);
  --accent-active: var(--aqua-800);
  --accent-subtle: var(--aqua-50);
  --accent-subtle-hover: var(--aqua-100);
  --accent-fg: var(--aqua-700);
  --neutral-action: var(--navy-900);       /* dark "ink" buttons */
  --neutral-action-hover: var(--navy-800);
  --hover-overlay: rgba(3, 44, 67, 0.04);
  --press-overlay: rgba(3, 44, 67, 0.08);
  --selected-bg: var(--aqua-50);
  --selected-fg: var(--aqua-700);
  --focus-ring-color: rgba(10, 126, 128, 0.40);

  /* Status — fg (text/icon), bg (subtle fill), border, solid */
  --success-fg: var(--green-700); --success-bg: var(--green-50); --success-border: var(--green-100); --success-solid: var(--green-500);
  --warning-fg: var(--amber-700); --warning-bg: var(--amber-50); --warning-border: var(--amber-100); --warning-solid: var(--amber-500);
  --danger-fg: var(--red-700);    --danger-bg: var(--red-50);    --danger-border: var(--red-100);    --danger-solid: var(--red-600);
  --info-fg: var(--blue-700);     --info-bg: var(--blue-50);     --info-border: var(--blue-100);     --info-solid: var(--blue-600);
  --neutral-fg: var(--neutral-700); --neutral-bg: var(--neutral-100); --neutral-border: var(--neutral-150); --neutral-solid: var(--neutral-500);

  /* AI — native to the brand, never a separate rainbow palette */
  --ai-fg: var(--aqua-700);
  --ai-bg: var(--aqua-25);
  --ai-border: var(--aqua-200);
  --ai-solid: var(--aqua-600);
  --ai-mark: var(--aqua-600);

  /* Presence */
  --presence-online: var(--green-500);
  --presence-busy: var(--red-500);
  --presence-away: var(--amber-500);
  --presence-offline: var(--neutral-400);
}

/* ======================= SEMANTIC (dark) ======================= */
[data-theme="dark"] {
  --bg-app: var(--neutral-950);
  --bg-canvas: #080D10;
  --surface-1: var(--neutral-925);
  --surface-2: var(--neutral-900);
  --surface-3: #1F282E;
  --surface-sunken: #080D10;
  --surface-overlay: #1A2228;
  --surface-inverse: var(--neutral-0);
  --surface-brand: var(--aqua-600);
  --surface-brand-subtle: rgba(31, 184, 178, 0.14);
  --surface-brand-muted: rgba(31, 184, 178, 0.24);
  --surface-scrim: rgba(0, 0, 0, 0.6);

  --text-strong: #FFFFFF;
  --text-primary: #E9EEF1;
  --text-secondary: #A0ABB3;
  --text-tertiary: #7B868F;
  --text-disabled: #55606A;
  --text-inverse: var(--navy-900);
  --text-brand: var(--aqua-300);
  --text-link: var(--aqua-300);
  --text-link-hover: var(--aqua-200);

  --border-subtle: #1A2227;
  --border-default: #26313A;
  --border-strong: #3A4650;
  --border-focus: var(--aqua-400);

  --accent-hover: var(--aqua-700);
  --accent-active: var(--aqua-800);
  --accent-subtle: rgba(31, 184, 178, 0.14);
  --accent-subtle-hover: rgba(31, 184, 178, 0.22);
  --accent-fg: var(--aqua-300);
  --neutral-action: #FFFFFF;
  --neutral-action-hover: var(--neutral-100);
  --hover-overlay: rgba(255, 255, 255, 0.04);
  --press-overlay: rgba(255, 255, 255, 0.08);
  --selected-bg: rgba(31, 184, 178, 0.16);
  --selected-fg: var(--aqua-200);
  --focus-ring-color: rgba(82, 208, 200, 0.50);

  --success-fg: #5FD796; --success-bg: rgba(31, 167, 93, 0.14); --success-border: rgba(31, 167, 93, 0.3);
  --warning-fg: #F5B54A; --warning-bg: rgba(232, 147, 12, 0.14); --warning-border: rgba(232, 147, 12, 0.3);
  --danger-fg: #F7838A;  --danger-bg: rgba(229, 72, 77, 0.14);  --danger-border: rgba(229, 72, 77, 0.3);
  --info-fg: #7DB0FA;    --info-bg: rgba(59, 130, 246, 0.14);   --info-border: rgba(59, 130, 246, 0.3);
  --neutral-fg: #C3CCD3; --neutral-bg: rgba(255, 255, 255, 0.06); --neutral-border: rgba(255, 255, 255, 0.1);

  --ai-fg: var(--aqua-300);
  --ai-bg: rgba(31, 184, 178, 0.08);
  --ai-border: rgba(31, 184, 178, 0.32);

  --viz-2: #E2EEF0;
  --viz-4: var(--ocean-300);
  --viz-grid: #212A31;
  --viz-axis: #7B868F;
}

/* ---- tokens/typography.css ---- */
/* IDS · Typography tokens */
:root {
  --font-display: 'Urbanist', 'Manrope', ui-sans-serif, system-ui, sans-serif;
  --font-sans: 'Manrope', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  --weight-regular: 400; /* @kind other */
  --weight-medium: 500; /* @kind other */
  --weight-semibold: 600; /* @kind other */
  --weight-bold: 700; /* @kind other */

  /* Size scale (px) — UI is 14px-based; display scale is Urbanist */
  --text-2xs: 11px;
  --text-xs: 12px;
  --text-sm: 13px;
  --text-md: 14px;
  --text-lg: 16px;
  --text-xl: 18px;
  --text-2xl: 22px;
  --text-3xl: 28px;
  --text-4xl: 36px;
  --text-5xl: 48px;
  --text-6xl: 64px;

  --leading-tight: 1.15; /* @kind other */
  --leading-snug: 1.3; /* @kind other */
  --leading-normal: 1.5; /* @kind other */
  --leading-relaxed: 1.65; /* @kind other */

  --tracking-display: -0.02em; /* @kind other */
  --tracking-tight: -0.01em; /* @kind other */
  --tracking-normal: 0; /* @kind other */
  --tracking-caps: 0.06em; /* @kind other */

  /* Semantic roles — use with `font: var(--type-…)` */
  --type-display-xl: 600 64px/68px var(--font-display);   /* marketing hero */
  --type-display-lg: 600 48px/52px var(--font-display);   /* marketing section */
  --type-display-md: 600 36px/42px var(--font-display);   /* KPI hero figure, empty-state */
  --type-h1: 600 28px/34px var(--font-display);           /* page title */
  --type-h2: 600 22px/28px var(--font-display);           /* section title */
  --type-h3: 600 18px/24px var(--font-display);           /* card title (large) */
  --type-h4: 600 16px/22px var(--font-sans);              /* card title */
  --type-h5: 600 14px/20px var(--font-sans);              /* group title, table title */
  --type-body-lg: 400 16px/24px var(--font-sans);
  --type-body: 400 14px/20px var(--font-sans);            /* default UI text */
  --type-body-sm: 400 13px/18px var(--font-sans);         /* dense tables, meta */
  --type-label: 500 13px/16px var(--font-sans);           /* form labels, buttons */
  --type-caption: 500 12px/16px var(--font-sans);         /* helper text, timestamps */
  --type-overline: 600 11px/16px var(--font-sans);        /* UPPERCASE section labels, use tracking-caps */
  --type-metric: 600 28px/32px var(--font-display);       /* KPI figures */
  --type-code: 400 13px/20px var(--font-mono);
  --type-code-sm: 400 12px/18px var(--font-mono);
}

/* ---- tokens/spacing.css ---- */
/* IDS · Spacing, sizing, layout, breakpoints (4px base) */
:root {
  --space-0: 0px;
  --space-px: 1px;
  --space-0-5: 2px;
  --space-1: 4px;
  --space-1-5: 6px;
  --space-2: 8px;
  --space-2-5: 10px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-7: 28px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;

  /* Semantic spacing */
  --gap-inline: var(--space-2);      /* icon ↔ label, chip groups */
  --gap-stack: var(--space-3);       /* form fields, list rows */
  --gap-section: var(--space-6);     /* between cards / sections */
  --pad-card: var(--space-5);
  --pad-card-dense: var(--space-4);
  --pad-page-x: var(--space-8);
  --pad-page-y: var(--space-6);

  /* Control heights */
  --control-xs: 24px;
  --control-sm: 32px;
  --control-md: 36px;
  --control-lg: 44px;                /* minimum touch target on mobile */

  /* Icon sizes */
  --icon-xs: 12px;
  --icon-sm: 14px;
  --icon-md: 16px;
  --icon-lg: 20px;
  --icon-xl: 24px;
  --icon-stroke: 1.75; /* @kind other */

  /* Shell dimensions */
  --shell-sidebar: 248px;
  --shell-sidebar-collapsed: 64px;
  --shell-rail: 56px;
  --shell-topbar: 56px;
  --shell-bottomnav: 64px;
  --shell-panel: 360px;              /* right inspector / AI panel */
  --shell-drawer: 480px;
  --content-max: 1440px;
  --content-reading: 720px;

  /* Grid */
  --grid-cols-desktop: 12; /* @kind other */  --grid-gutter-desktop: 24px;
  --grid-cols-tablet: 8; /* @kind other */    --grid-gutter-tablet: 16px;
  --grid-cols-mobile: 4; /* @kind other */    --grid-gutter-mobile: 16px;

  /* Breakpoints (reference values — use the literal px in @media) */
  --bp-sm: 640px;    /* large phone */
  --bp-md: 768px;    /* tablet portrait */
  --bp-lg: 1024px;   /* tablet landscape / small laptop */
  --bp-xl: 1280px;   /* laptop */
  --bp-2xl: 1536px;  /* desktop */
}

/* ---- tokens/shape.css ---- */
/* IDS · Radius, borders, brand geometry */
:root {
  /* Radius — derived from the logo's core square (≈8% corner) and its sharp strokes. Moderate, never bubbly. */
  --radius-none: 0px;
  --radius-xs: 3px;      /* core-square markers, checkbox */
  --radius-sm: 6px;      /* badges, tags, small controls, menu items */
  --radius-md: 8px;      /* buttons, inputs, nav items */
  --radius-lg: 12px;     /* cards, panels, popovers */
  --radius-xl: 16px;     /* dialogs, drawers, large containers */
  --radius-2xl: 20px;    /* mobile sheets */
  --radius-full: 999px;  /* avatars, pills, switches */

  --border-width: 1px;
  --border-width-strong: 1.5px;
  --border-width-focus: 2px;

  /* Brand geometry */
  --brand-slant: 52deg; /* @kind other */                /* angle of the logo's parallel strokes */
  --core-square: 8px;                  /* the logo's "core" dot as a UI marker */
  --core-square-radius: 2px;
  --hatch: repeating-linear-gradient(-52deg, currentColor 0 1.5px, transparent 1.5px 6px); /* @kind other */
  --dot-grid: radial-gradient(circle, var(--border-strong) 1px, transparent 1.2px); /* @kind other */
  --dot-grid-size: 20px 20px; /* @kind other */
}

/* ---- tokens/elevation.css ---- */
/* IDS · Elevation (shadow + z-index). Shadows are navy-tinted and restrained:
   resting cards use a border, not a shadow. Shadow appears only when something floats. */
:root {
  --shadow-none: none;
  --shadow-xs: 0 1px 2px rgba(3, 44, 67, 0.05);
  --shadow-sm: 0 1px 2px rgba(3, 44, 67, 0.05), 0 1px 3px rgba(3, 44, 67, 0.07);
  --shadow-md: 0 6px 16px -4px rgba(3, 44, 67, 0.12), 0 2px 4px -2px rgba(3, 44, 67, 0.06);
  --shadow-lg: 0 16px 40px -12px rgba(3, 44, 67, 0.22), 0 4px 10px -4px rgba(3, 44, 67, 0.08);
  --shadow-xl: 0 28px 72px -16px rgba(3, 44, 67, 0.32);
  --shadow-focus: 0 0 0 3px var(--focus-ring-color);
  --shadow-inset: inset 0 1px 2px rgba(3, 44, 67, 0.06);

  /* Elevation roles */
  --elevation-0: var(--shadow-none);   /* cards, tables (bordered) */
  --elevation-1: var(--shadow-sm);     /* raised: hover cards, sticky headers, kanban drag */
  --elevation-2: var(--shadow-md);     /* overlay: menus, popovers, comboboxes, tooltips */
  --elevation-3: var(--shadow-lg);     /* modal: dialogs, drawers, command menu */
  --elevation-4: var(--shadow-xl);     /* toasts over modals */

  --z-base: 0; /* @kind other */
  --z-raised: 10; /* @kind other */
  --z-sticky: 100; /* @kind other */
  --z-shell: 200; /* @kind other */
  --z-dropdown: 1000; /* @kind other */
  --z-overlay: 1100; /* @kind other */
  --z-modal: 1200; /* @kind other */
  --z-toast: 1300; /* @kind other */
  --z-tooltip: 1400; /* @kind other */
}
[data-theme="dark"] {
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 8px 20px -6px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.04);
  --shadow-lg: 0 20px 48px -12px rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(255, 255, 255, 0.05);
  --shadow-xl: 0 32px 80px -16px rgba(0, 0, 0, 0.8), 0 0 0 1px rgba(255, 255, 255, 0.06);
}

/* ---- tokens/motion.css ---- */
/* IDS · Motion. Quick, precise, functional. No bounces, no springs on data. */
:root {
  --ease-standard: cubic-bezier(0.2, 0, 0, 1); /* @kind other */      /* most UI transitions */
  --ease-enter: cubic-bezier(0, 0, 0.2, 1); /* @kind other */         /* elements appearing */
  --ease-exit: cubic-bezier(0.4, 0, 1, 1); /* @kind other */          /* elements leaving */
  --ease-emphasized: cubic-bezier(0.3, 0, 0, 1); /* @kind other */    /* sheets, drawers, large panels */
  --ease-linear: linear; /* @kind other */                            /* progress, streaming, spinners */

  --dur-instant: 80ms; /* @kind other */    /* hover/press color */
  --dur-fast: 120ms; /* @kind other */      /* toggles, checkbox, tooltip */
  --dur-base: 180ms; /* @kind other */      /* menus, popovers, tabs indicator */
  --dur-slow: 260ms; /* @kind other */      /* dialogs, drawers, sheets */
  --dur-slower: 400ms; /* @kind other */    /* page-level, charts drawing in */

  --motion-hover: background-color var(--dur-instant) var(--ease-standard), border-color var(--dur-instant) var(--ease-standard), color var(--dur-instant) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard); /* @kind other */
}
@media (prefers-reduced-motion: reduce) {
  :root { --dur-fast: 0ms; /* @kind other */ --dur-base: 0ms; /* @kind other */ --dur-slow: 0ms; /* @kind other */ --dur-slower: 0ms; /* @kind other */ }
}

/* ---- css/actions.css ---- */
/* IDS · Actions — Button, IconButton, SplitButton, Menu, Fab */
.inf-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:36px;min-width:36px;padding:0 14px;border-radius:var(--radius-md);border:1px solid transparent;font:600 13px/1 var(--font-sans);letter-spacing:.005em;cursor:pointer;white-space:nowrap;user-select:none;position:relative;text-decoration:none;transition:var(--motion-hover),transform var(--dur-instant) var(--ease-standard);background:transparent;color:var(--text-primary)}
.inf-btn:hover{text-decoration:none}
.inf-btn:active:not(:disabled){transform:translateY(.5px)}
.inf-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.inf-btn:disabled,.inf-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
.inf-btn--xs{height:24px;min-width:24px;padding:0 8px;gap:4px;font-size:12px;border-radius:var(--radius-sm)}
.inf-btn--sm{height:32px;min-width:32px;padding:0 12px;gap:6px}
.inf-btn--lg{height:44px;min-width:44px;padding:0 18px;font-size:15px;border-radius:10px}
.inf-btn--icon{padding:0;width:36px}.inf-btn--icon.inf-btn--xs{width:24px}.inf-btn--icon.inf-btn--sm{width:32px}.inf-btn--icon.inf-btn--lg{width:44px}
.inf-btn--block{width:100%}
.inf-btn--primary{background:var(--accent);color:var(--text-on-brand)}
.inf-btn--primary:hover:not(:disabled){background:var(--accent-hover);color:var(--text-on-brand)}
.inf-btn--primary:active:not(:disabled){background:var(--accent-active)}
.inf-btn--ink{background:var(--neutral-action);color:var(--text-inverse)}
.inf-btn--ink:hover:not(:disabled){background:var(--neutral-action-hover);color:var(--text-inverse)}
.inf-btn--secondary{background:var(--surface-1);color:var(--text-primary);border-color:var(--border-default);box-shadow:var(--shadow-xs)}
.inf-btn--secondary:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong);color:var(--text-strong)}
.inf-btn--secondary:active:not(:disabled){background:var(--surface-3)}
.inf-btn--subtle{background:var(--accent-subtle);color:var(--accent-fg)}
.inf-btn--subtle:hover:not(:disabled){background:var(--accent-subtle-hover);color:var(--accent-fg)}
.inf-btn--ghost{background:transparent;color:var(--text-secondary)}
.inf-btn--ghost:hover:not(:disabled){background:var(--hover-overlay);color:var(--text-primary)}
.inf-btn--ghost:active:not(:disabled){background:var(--press-overlay)}
.inf-btn--danger{background:var(--danger-solid);color:#fff}
.inf-btn--danger:hover:not(:disabled){background:var(--red-700);color:#fff}
.inf-btn--danger-ghost{background:transparent;color:var(--danger-fg)}
.inf-btn--danger-ghost:hover:not(:disabled){background:var(--danger-bg);color:var(--danger-fg)}
.inf-btn--link{background:none;padding:0;height:auto;min-width:0;color:var(--text-link);font-weight:600}
.inf-btn--link:hover:not(:disabled){color:var(--text-link-hover);text-decoration:underline;text-underline-offset:2px}
.inf-btn[data-loading="true"]{cursor:progress}
.inf-btn[data-loading="true"] > :not(.inf-spinner){opacity:.0}
.inf-btn[data-loading="true"] > .inf-spinner{position:absolute}
.inf-btn[aria-pressed="true"]{background:var(--selected-bg);color:var(--selected-fg)}
.inf-btn .inf-btn__badge{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:2px;background:var(--danger-solid);box-shadow:0 0 0 2px var(--surface-1)}

/* Split button */
.inf-split{display:inline-flex;align-items:stretch;position:relative}
.inf-split > .inf-btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}
.inf-split > .inf-btn:last-of-type{border-top-left-radius:0;border-bottom-left-radius:0;padding:0;width:32px;min-width:0}.inf-split > .inf-btn--sm:last-of-type{width:28px}
.inf-split > .inf-btn--primary:last-of-type{box-shadow:inset 1px 0 0 rgba(255,255,255,.22)}
.inf-split > .inf-btn--ink:last-of-type{box-shadow:inset 1px 0 0 rgba(255,255,255,.18)}
.inf-split > .inf-btn--secondary:last-of-type{margin-left:-1px}

/* Button group */
.inf-btn-group{display:inline-flex}
.inf-btn-group > .inf-btn{border-radius:0;margin-left:-1px}
.inf-btn-group > .inf-btn:first-child{border-radius:var(--radius-md) 0 0 var(--radius-md);margin-left:0}
.inf-btn-group > .inf-btn:last-child{border-radius:0 var(--radius-md) var(--radius-md) 0}

/* Menu (dropdown / contextual) */
.inf-menu{min-width:200px;padding:4px;background:var(--surface-overlay);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--elevation-2);animation:inf-pop-in var(--dur-base) var(--ease-enter);z-index:var(--z-dropdown)}
.inf-menu__label{padding:8px 8px 4px;font:var(--type-overline);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-tertiary)}
.inf-menu__item{display:flex;align-items:center;gap:10px;width:100%;height:32px;padding:0 8px;border:0;background:none;border-radius:var(--radius-sm);font:500 13px/1 var(--font-sans);color:var(--text-primary);cursor:pointer;text-align:left;transition:var(--motion-hover)}
.inf-menu__item:hover,.inf-menu__item[data-active="true"]{background:var(--surface-3)}
.inf-menu__item:focus-visible{outline:none;background:var(--surface-3)}
.inf-menu__item svg{color:var(--text-tertiary)}
.inf-menu__item--danger{color:var(--danger-fg)}
.inf-menu__item--danger svg{color:var(--danger-fg)}
.inf-menu__item--danger:hover{background:var(--danger-bg)}
.inf-menu__item:disabled{color:var(--text-disabled);cursor:not-allowed;background:none}
.inf-menu__hint{margin-left:auto;font:var(--type-caption);color:var(--text-tertiary)}
.inf-menu__sep{height:1px;margin:4px -4px;background:var(--border-subtle)}

/* FAB — the logo's rounded square, scaled up */
.inf-fab{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:56px;min-width:56px;padding:0 18px;border:0;border-radius:16px;background:var(--accent);color:#fff;font:600 14px/1 var(--font-sans);box-shadow:var(--shadow-lg);cursor:pointer;transition:var(--motion-hover),transform var(--dur-fast) var(--ease-standard)}
.inf-fab:hover{background:var(--accent-hover);transform:translateY(-1px)}
.inf-fab:focus-visible{outline:none;box-shadow:var(--shadow-lg),var(--shadow-focus)}
.inf-fab--icon{padding:0;width:56px}
.inf-fab--ink{background:var(--neutral-action);color:var(--text-inverse)}
.inf-fab--ink:hover{background:var(--neutral-action-hover)}

/* ---- css/forms.css ---- */
/* IDS · Forms */
.inf-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.inf-field__label{display:flex;align-items:center;gap:4px;font:var(--type-label);color:var(--text-primary)}
.inf-field__req{color:var(--danger-fg)}
.inf-field__opt{margin-left:auto;font:var(--type-caption);color:var(--text-tertiary);font-weight:400}
.inf-field__hint{font:400 12px/16px var(--font-sans);color:var(--text-tertiary)}
.inf-field__error{display:flex;align-items:center;gap:6px;font:500 12px/16px var(--font-sans);color:var(--danger-fg)}

.inf-control{display:flex;align-items:center;gap:8px;height:36px;padding:0 12px;background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);transition:var(--motion-hover);color:var(--text-primary);min-width:0;position:relative}
.inf-control:hover{border-color:var(--border-strong)}
.inf-control:focus-within{border-color:var(--border-focus);box-shadow:var(--shadow-focus)}
.inf-control[data-invalid="true"]{border-color:var(--danger-solid)}
.inf-control[data-invalid="true"]:focus-within{box-shadow:0 0 0 3px rgba(229,72,77,.22)}
.inf-control[data-disabled="true"]{background:var(--surface-3);border-color:var(--border-default);color:var(--text-disabled);box-shadow:none;cursor:not-allowed}
.inf-control[data-readonly="true"]{background:var(--surface-2);box-shadow:none}
.inf-control--sm{height:32px;padding:0 10px}
.inf-control--lg{height:44px;padding:0 14px}
.inf-control > svg{flex:none;color:var(--text-tertiary)}
.inf-control__input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;font:400 14px/20px var(--font-sans);color:inherit;padding:0}
.inf-control__input::placeholder{color:var(--text-tertiary)}
.inf-control__input:disabled{cursor:not-allowed;color:var(--text-disabled)}
.inf-control__affix{flex:none;font:500 13px/1 var(--font-sans);color:var(--text-tertiary)}
.inf-control__affix--box{align-self:stretch;display:flex;align-items:center;margin:-1px 0;padding:0 10px;background:var(--surface-2);border-left:1px solid var(--border-default)}
.inf-control__affix--box:first-child{margin-left:-12px;border-left:0;border-right:1px solid var(--border-default);border-radius:var(--radius-md) 0 0 var(--radius-md)}
.inf-control__affix--box:last-child{margin-right:-12px;border-radius:0 var(--radius-md) var(--radius-md) 0}
.inf-control--textarea{height:auto;align-items:stretch;padding:10px 12px}
.inf-control--textarea textarea{resize:vertical;min-height:72px;line-height:20px}
.inf-control--select{cursor:pointer}
.inf-control--select select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:20px}
.inf-control--select .inf-control__chev{position:absolute;right:10px;pointer-events:none;color:var(--text-tertiary)}
.inf-control--multi{height:auto;min-height:36px;flex-wrap:wrap;padding:4px 8px;gap:4px}
.inf-control--multi .inf-control__input{height:26px;min-width:80px;padding:0 4px}
.inf-control__count{font:var(--type-caption);color:var(--text-tertiary)}

/* Listbox (combobox, select, autocomplete) */
.inf-listbox{position:absolute;left:0;right:0;top:calc(100% + 4px);max-height:264px;overflow:auto;padding:4px;background:var(--surface-overlay);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--elevation-2);z-index:var(--z-dropdown);animation:inf-pop-in var(--dur-base) var(--ease-enter)}
.inf-option{display:flex;align-items:center;gap:10px;min-height:34px;padding:6px 8px;border-radius:var(--radius-sm);font:500 13px/18px var(--font-sans);color:var(--text-primary);cursor:pointer}
.inf-option:hover,.inf-option[data-active="true"]{background:var(--surface-3)}
.inf-option[aria-selected="true"]{color:var(--selected-fg)}
.inf-option__check{margin-left:auto;color:var(--accent)}
.inf-option__meta{font:400 12px/16px var(--font-sans);color:var(--text-tertiary)}
.inf-listbox__empty{padding:16px 8px;text-align:center;font:var(--type-body-sm);color:var(--text-tertiary)}
.inf-listbox mark{background:none;color:var(--text-brand);font-weight:700}

/* Checkbox & radio */
.inf-choice{display:inline-flex;align-items:flex-start;gap:10px;cursor:pointer;font:500 13px/18px var(--font-sans);color:var(--text-primary)}
.inf-choice__desc{display:block;font:400 12px/16px var(--font-sans);color:var(--text-tertiary);margin-top:2px}
.inf-choice[data-disabled="true"]{cursor:not-allowed;color:var(--text-disabled)}
.inf-check,.inf-radio{appearance:none;-webkit-appearance:none;flex:none;margin:1px 0 0;width:16px;height:16px;border:1.5px solid var(--border-strong);background:var(--surface-1);cursor:pointer;transition:var(--motion-hover);display:grid;place-content:center}
.inf-check{border-radius:4px}
.inf-radio{border-radius:50%}
.inf-check:hover,.inf-radio:hover{border-color:var(--accent)}
.inf-check:focus-visible,.inf-radio:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.inf-check:checked,.inf-check:indeterminate{background:var(--accent);border-color:var(--accent)}
.inf-check:checked::after{content:"";width:9px;height:5px;border:2px solid #fff;border-top:0;border-right:0;transform:translateY(-1px) rotate(-45deg)}
.inf-check:indeterminate::after{content:"";width:8px;height:2px;background:#fff;border-radius:1px}
.inf-radio:checked{border:5px solid var(--accent)}
.inf-check:disabled,.inf-radio:disabled{background:var(--surface-3);border-color:var(--border-default);cursor:not-allowed}

/* Switch */
.inf-switch{appearance:none;-webkit-appearance:none;flex:none;position:relative;width:34px;height:20px;margin:0;border-radius:999px;background:var(--neutral-300);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard)}
.inf-switch::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(3,44,67,.25);transition:transform var(--dur-fast) var(--ease-standard)}
.inf-switch:checked{background:var(--accent)}
.inf-switch:checked::after{transform:translateX(14px)}
.inf-switch:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.inf-switch:disabled{opacity:.45;cursor:not-allowed}
.inf-switch--sm{width:28px;height:16px}
.inf-switch--sm::after{width:12px;height:12px}
.inf-switch--sm:checked::after{transform:translateX(12px)}
[data-theme="dark"] .inf-switch{background:var(--neutral-700)}

/* Slider */
.inf-slider{-webkit-appearance:none;appearance:none;width:100%;height:20px;background:transparent;cursor:pointer;margin:0}
.inf-slider::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:linear-gradient(to right,var(--accent) 0 var(--pct,50%),var(--surface-3) var(--pct,50%))}
.inf-slider::-moz-range-track{height:4px;border-radius:999px;background:var(--surface-3)}
.inf-slider::-moz-range-progress{height:4px;border-radius:999px;background:var(--accent)}
.inf-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-6px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:var(--shadow-sm);transition:transform var(--dur-fast)}
.inf-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--accent)}
.inf-slider:active::-webkit-slider-thumb{transform:scale(1.15)}
.inf-slider:focus-visible{outline:none}
.inf-slider:focus-visible::-webkit-slider-thumb{box-shadow:var(--shadow-focus)}

/* OTP */
.inf-otp{display:flex;gap:8px}
.inf-otp__cell{width:44px;height:52px;text-align:center;font:600 20px/1 var(--font-mono);color:var(--text-strong);background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-md);outline:0;box-shadow:var(--shadow-xs);transition:var(--motion-hover);caret-color:var(--accent)}
.inf-otp__cell:focus{border-color:var(--border-focus);box-shadow:var(--shadow-focus)}
.inf-otp__sep{align-self:center;width:8px;height:2px;background:var(--border-strong);border-radius:1px}
.inf-otp[data-invalid="true"] .inf-otp__cell{border-color:var(--danger-solid)}

/* File drop */
.inf-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;text-align:center;border:1.5px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-2);color:var(--text-secondary);cursor:pointer;transition:var(--motion-hover)}
.inf-drop:hover{border-color:var(--accent);background:var(--accent-subtle)}
.inf-drop[data-dragging="true"]{border-color:var(--accent);border-style:solid;background:var(--accent-subtle);box-shadow:var(--shadow-focus)}
.inf-drop__icon{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--radius-md);background:var(--surface-1);border:1px solid var(--border-default);color:var(--accent)}
.inf-drop__title{font:600 14px/20px var(--font-sans);color:var(--text-primary)}
.inf-drop__title b{color:var(--text-brand)}
.inf-drop__hint{font:400 12px/16px var(--font-sans);color:var(--text-tertiary)}

/* Segmented control */
.inf-seg{display:inline-flex;padding:3px;gap:2px;background:var(--surface-3);border-radius:var(--radius-md)}
.inf-seg__item{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:28px;padding:0 12px;border:0;border-radius:6px;background:none;font:600 13px/1 var(--font-sans);color:var(--text-secondary);cursor:pointer;transition:var(--motion-hover);white-space:nowrap}
.inf-seg__item:hover{color:var(--text-primary)}
.inf-seg__item[aria-pressed="true"]{background:var(--surface-1);color:var(--text-strong);box-shadow:var(--shadow-sm)}
.inf-seg--sm .inf-seg__item{height:24px;padding:0 10px;font-size:12px}
.inf-seg--block{display:flex}
.inf-seg--block .inf-seg__item{flex:1}

/* Calendar / date picker */
.inf-cal{width:280px;padding:12px;background:var(--surface-overlay);border:1px solid var(--border-default);border-radius:var(--radius-lg)}
.inf-cal--float{position:absolute;top:calc(100% + 4px);left:0;box-shadow:var(--elevation-2);z-index:var(--z-dropdown);animation:inf-pop-in var(--dur-base) var(--ease-enter)}
.inf-cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.inf-cal__title{font:600 14px/20px var(--font-display);color:var(--text-strong)}
.inf-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.inf-cal__dow{height:28px;display:grid;place-items:center;font:600 11px/1 var(--font-sans);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}
.inf-cal__day{height:34px;border:0;background:none;border-radius:var(--radius-sm);font:500 13px/1 var(--font-sans);color:var(--text-primary);cursor:pointer;position:relative;font-variant-numeric:tabular-nums;transition:var(--motion-hover)}
.inf-cal__day:hover{background:var(--surface-3)}
.inf-cal__day[data-outside="true"]{color:var(--text-disabled)}
.inf-cal__day[data-today="true"]{color:var(--text-brand);font-weight:700}
.inf-cal__day[data-today="true"]::after{content:"";position:absolute;bottom:4px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:1px;background:var(--accent)}
.inf-cal__day[data-in-range="true"]{background:var(--accent-subtle);border-radius:0;color:var(--accent-fg)}
.inf-cal__day[data-selected="true"]{background:var(--accent);color:#fff;border-radius:var(--radius-sm)}
.inf-cal__day[data-selected="true"]::after{background:#fff}
.inf-cal__foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border-subtle)}

/* Multi-step form progress lives in navigation (Stepper) */
.inf-fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--gap-stack)}
.inf-form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}

/* ---- css/navigation.css ---- */
/* IDS · Navigation */
/* Sidebar */
.inf-sidebar{display:flex;flex-direction:column;width:var(--shell-sidebar);height:100%;flex:none;background:var(--surface-1);border-right:1px solid var(--border-default);padding:14px 12px 12px;gap:4px;overflow:hidden;transition:width var(--dur-slow) var(--ease-emphasized)}
.inf-sidebar[data-collapsed="true"]{width:var(--shell-sidebar-collapsed);padding-left:10px;padding-right:10px}
.inf-sidebar__brand{display:flex;align-items:center;gap:10px;height:36px;padding:0 6px;margin-bottom:10px}
.inf-sidebar__brand img{height:24px;width:auto}
.inf-sidebar__toggle{margin-left:auto;flex:none;width:24px;height:24px;display:grid;place-items:center;border:1px solid var(--border-default);border-radius:7px;background:var(--surface-1);color:var(--text-tertiary);cursor:pointer;transition:var(--motion-hover)}
.inf-sidebar__toggle:hover{color:var(--accent);border-color:var(--aqua-300)}
.inf-sidebar[data-collapsed="true"] .inf-sidebar__brand{flex-direction:column;justify-content:center;gap:10px;height:auto;padding:0;margin-bottom:14px}
.inf-sidebar[data-collapsed="true"] .inf-sidebar__toggle{margin:0}
.inf-sidebar--inverse .inf-sidebar__toggle{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1);color:rgba(255,255,255,.6)}
.inf-sidebar--inverse .inf-sidebar__toggle:hover{color:#fff;border-color:var(--aqua-400)}
.inf-sidebar__scroll{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:2px;margin:0 -4px;padding:0 4px}
.inf-sidebar__group{display:flex;flex-direction:column;gap:2px;padding-top:14px}
.inf-sidebar__group:first-child{padding-top:0}
.inf-sidebar__label{height:24px;display:flex;align-items:center;padding:0 10px;font:var(--type-overline);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-tertiary);white-space:nowrap}
.inf-sidebar[data-collapsed="true"] .inf-sidebar__label{visibility:hidden;height:8px}
.inf-sidebar__foot{display:flex;flex-direction:column;gap:2px;padding-top:10px;border-top:1px solid var(--border-subtle)}
.inf-nav-item{display:flex;align-items:center;gap:10px;height:36px;padding:0 10px;border:0;background:none;border-radius:var(--radius-md);font:500 14px/1 var(--font-sans);color:var(--text-secondary);cursor:pointer;text-decoration:none;white-space:nowrap;position:relative;transition:var(--motion-hover);width:100%;text-align:left}
.inf-nav-item:hover{background:var(--surface-3);color:var(--text-primary);text-decoration:none}
.inf-nav-item:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.inf-nav-item svg{flex:none;color:var(--text-tertiary);transition:color var(--dur-instant)}
.inf-nav-item:hover svg{color:var(--text-secondary)}
.inf-nav-item[aria-current="page"]{background:var(--selected-bg);color:var(--selected-fg);font-weight:600}
.inf-nav-item[aria-current="page"] svg{color:var(--accent)}
.inf-nav-item__label{flex:1;overflow:hidden;text-overflow:ellipsis}
.inf-nav-item__meta{margin-left:auto;font:600 11px/1 var(--font-sans);color:var(--text-tertiary);font-variant-numeric:tabular-nums}
.inf-nav-item__chev{margin-left:auto;transition:transform var(--dur-fast) var(--ease-standard)}
.inf-nav-item[aria-expanded="true"] .inf-nav-item__chev{transform:rotate(90deg)}
.inf-nav-sub{display:flex;flex-direction:column;gap:2px;margin-left:19px;padding-left:10px;border-left:1px solid var(--border-default)}
.inf-nav-sub .inf-nav-item{height:32px;font-size:13px}
.inf-sidebar[data-collapsed="true"] .inf-nav-item{justify-content:center;padding:0}
.inf-sidebar[data-collapsed="true"] .inf-nav-item__label,.inf-sidebar[data-collapsed="true"] .inf-nav-item__meta,.inf-sidebar[data-collapsed="true"] .inf-nav-item__chev{display:none}
/* Inverse (navy) sidebar — for ERP/admin/operations products */
.inf-sidebar--inverse{background:var(--navy-900);border-right-color:var(--navy-900);color:#fff}
.inf-sidebar--inverse .inf-sidebar__label{color:rgba(255,255,255,.42)}
.inf-sidebar--inverse .inf-sidebar__foot{border-top-color:rgba(255,255,255,.08)}
.inf-sidebar--inverse .inf-nav-item{color:rgba(255,255,255,.68)}
.inf-sidebar--inverse .inf-nav-item svg{color:rgba(255,255,255,.5)}
.inf-sidebar--inverse .inf-nav-item:hover{background:rgba(255,255,255,.06);color:#fff}
.inf-sidebar--inverse .inf-nav-item[aria-current="page"]{background:rgba(255,255,255,.1);color:#fff}
.inf-sidebar--inverse .inf-nav-item[aria-current="page"] svg{color:var(--aqua-300)}
.inf-sidebar--inverse .inf-nav-item[aria-current="page"]::before{content:"";position:absolute;left:-12px;top:50%;width:4px;height:16px;margin-top:-8px;border-radius:0 2px 2px 0;background:var(--aqua-500)}
.inf-sidebar--inverse .inf-nav-sub{border-left-color:rgba(255,255,255,.12)}

/* Rail (icon-only primary nav, for multi-product switching) */
.inf-rail{display:flex;flex-direction:column;align-items:center;gap:6px;width:var(--shell-rail);padding:12px 0;background:var(--navy-900);flex:none}
.inf-rail__item{width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:10px;background:none;color:rgba(255,255,255,.6);cursor:pointer;position:relative;transition:var(--motion-hover)}
.inf-rail__item:hover{background:rgba(255,255,255,.08);color:#fff}
.inf-rail__item[aria-current="page"]{background:var(--aqua-600);color:#fff}

/* Topbar */
.inf-topbar{display:flex;align-items:center;gap:12px;height:var(--shell-topbar);padding:0 20px;background:var(--surface-1);border-bottom:1px solid var(--border-default);flex:none;position:relative;z-index:var(--z-sticky)}
.inf-topbar--flush{background:transparent;border-bottom-color:transparent}
.inf-topbar > :first-child{min-width:0;overflow:hidden}
.inf-topbar .inf-crumbs{flex-wrap:nowrap;white-space:nowrap}
.inf-topbar__title{font:600 16px/1 var(--font-display);color:var(--text-strong);white-space:nowrap}
.inf-topbar__spacer{flex:1}
.inf-topbar__actions{display:flex;align-items:center;gap:4px}
.inf-search-trigger{display:flex;align-items:center;gap:8px;height:34px;width:min(360px,100%);padding:0 6px 0 10px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-2);color:var(--text-tertiary);font:400 13px/1 var(--font-sans);cursor:pointer;transition:var(--motion-hover)}
.inf-search-trigger:hover{border-color:var(--border-strong);background:var(--surface-1)}
.inf-search-trigger span{flex:1;text-align:left}

/* Tabs */
.inf-tabs{display:flex;align-items:stretch;gap:20px;border-bottom:1px solid var(--border-default);overflow-x:auto;scrollbar-width:none}
.inf-tabs::-webkit-scrollbar{display:none}
.inf-tab{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0;border:0;background:none;font:600 13px/1 var(--font-sans);color:var(--text-secondary);cursor:pointer;position:relative;white-space:nowrap;transition:color var(--dur-instant)}
.inf-tab:hover{color:var(--text-primary)}
.inf-tab:focus-visible{outline:none;color:var(--text-primary);box-shadow:inset 0 0 0 2px var(--focus-ring-color);border-radius:4px}
.inf-tab[aria-selected="true"]{color:var(--text-strong)}
.inf-tab[aria-selected="true"]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:var(--accent)}
.inf-tab__count{min-width:18px;height:18px;padding:0 5px;display:inline-grid;place-items:center;border-radius:5px;background:var(--surface-3);font:600 11px/1 var(--font-sans);color:var(--text-secondary)}
.inf-tab[aria-selected="true"] .inf-tab__count{background:var(--accent-subtle);color:var(--accent-fg)}
.inf-tabs--pill{gap:4px;border-bottom:0}
.inf-tabs--pill .inf-tab{height:32px;padding:0 12px;border-radius:var(--radius-md)}
.inf-tabs--pill .inf-tab:hover{background:var(--hover-overlay)}
.inf-tabs--pill .inf-tab[aria-selected="true"]{background:var(--surface-1);box-shadow:var(--shadow-sm),0 0 0 1px var(--border-default)}
.inf-tabs--pill .inf-tab[aria-selected="true"]::after{display:none}

/* Breadcrumbs */
.inf-crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:4px;font:500 13px/20px var(--font-sans);color:var(--text-tertiary);list-style:none;margin:0;padding:0}
.inf-crumbs a{color:var(--text-secondary)}
.inf-crumbs a:hover{color:var(--text-primary);text-decoration:none}
.inf-crumbs [aria-current="page"]{color:var(--text-strong);font-weight:600}
.inf-crumbs svg{color:var(--text-disabled)}

/* Pagination */
.inf-pager{display:flex;align-items:center;gap:4px;font:500 13px/1 var(--font-sans);color:var(--text-secondary)}
.inf-pager__btn{min-width:32px;height:32px;padding:0 8px;display:inline-grid;place-items:center;border:0;background:none;border-radius:var(--radius-md);font:600 13px/1 var(--font-sans);color:var(--text-secondary);cursor:pointer;font-variant-numeric:tabular-nums;transition:var(--motion-hover)}
.inf-pager__btn:hover:not(:disabled){background:var(--surface-3);color:var(--text-primary)}
.inf-pager__btn[aria-current="page"]{background:var(--selected-bg);color:var(--selected-fg)}
.inf-pager__btn:disabled{color:var(--text-disabled);cursor:not-allowed}
.inf-pager__info{margin-right:auto;color:var(--text-tertiary)}

/* Bottom navigation (mobile) — active item gets the logo's "tittle" square */
.inf-bottomnav{display:flex;align-items:stretch;height:var(--shell-bottomnav);padding:0 8px env(safe-area-inset-bottom);background:var(--surface-1);border-top:1px solid var(--border-default)}
.inf-bottomnav__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:44px;border:0;background:none;font:600 11px/1 var(--font-sans);color:var(--text-tertiary);cursor:pointer;position:relative}
.inf-bottomnav__item[aria-current="page"]{color:var(--text-strong)}
.inf-bottomnav__item[aria-current="page"] svg{color:var(--accent)}
.inf-bottomnav__item[aria-current="page"]::before{content:"";position:absolute;top:6px;left:calc(50% + 9px);width:6px;height:6px;border-radius:1.5px;background:var(--accent)}
.inf-bottomnav__badge{position:absolute;top:8px;left:calc(50% + 4px);min-width:16px;height:16px;padding:0 4px;border-radius:5px;background:var(--danger-solid);color:#fff;font:700 10px/16px var(--font-sans);text-align:center}
.inf-bottomnav__fab{width:48px;height:48px;align-self:center;flex:none;margin:0 6px;display:grid;place-items:center;border:0;border-radius:14px;background:var(--accent);color:#fff;box-shadow:var(--shadow-md);cursor:pointer}

/* Command menu */
.inf-cmd{width:min(640px,100%);background:var(--surface-overlay);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--elevation-3);overflow:hidden;animation:inf-pop-in var(--dur-base) var(--ease-enter)}
.inf-cmd__search{display:flex;align-items:center;gap:10px;height:56px;padding:0 16px;border-bottom:1px solid var(--border-subtle)}
.inf-cmd__search input{flex:1;border:0;outline:0;background:none;font:400 16px/1 var(--font-sans);color:var(--text-primary)}
.inf-cmd__search input::placeholder{color:var(--text-tertiary)}
.inf-cmd__list{max-height:360px;overflow:auto;padding:6px}
.inf-cmd__group{padding:8px 10px 4px;font:var(--type-overline);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-tertiary)}
.inf-cmd__item{display:flex;align-items:center;gap:12px;height:40px;padding:0 10px;border-radius:var(--radius-md);font:500 14px/1 var(--font-sans);color:var(--text-primary);cursor:pointer}
.inf-cmd__item svg{color:var(--text-tertiary)}
.inf-cmd__item[data-active="true"]{background:var(--surface-3)}
.inf-cmd__item[data-active="true"] svg{color:var(--accent)}
.inf-cmd__item--ai{color:var(--ai-fg)}
.inf-cmd__item--ai svg{color:var(--ai-solid)}
.inf-cmd__meta{margin-left:auto;display:flex;gap:4px;align-items:center;font:var(--type-caption);color:var(--text-tertiary)}
.inf-cmd__foot{display:flex;align-items:center;gap:16px;height:40px;padding:0 16px;border-top:1px solid var(--border-subtle);background:var(--surface-2);font:500 12px/1 var(--font-sans);color:var(--text-tertiary)}
.inf-cmd__foot span{display:inline-flex;align-items:center;gap:6px}

/* Stepper */
.inf-stepper{display:flex;align-items:center;gap:12px;list-style:none;margin:0;padding:0}
.inf-step{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.inf-step:last-child{flex:none}
.inf-step__mark{flex:none;width:28px;height:28px;display:grid;place-items:center;border-radius:8px;border:1.5px solid var(--border-strong);background:var(--surface-1);font:700 12px/1 var(--font-sans);color:var(--text-tertiary)}
.inf-step__text{display:flex;flex-direction:column;gap:2px;min-width:0}
.inf-step__title{font:600 13px/16px var(--font-sans);color:var(--text-secondary);white-space:nowrap}
.inf-step__desc{font:400 12px/16px var(--font-sans);color:var(--text-tertiary);white-space:nowrap}
.inf-step__line{flex:1;height:2px;min-width:16px;border-radius:1px;background:var(--border-default)}
.inf-step[data-state="current"] .inf-step__mark{border-color:var(--accent);color:var(--accent-fg);box-shadow:0 0 0 3px var(--focus-ring-color)}
.inf-step[data-state="current"] .inf-step__title{color:var(--text-strong)}
.inf-step[data-state="done"] .inf-step__mark{border-color:var(--accent);background:var(--accent);color:#fff}
.inf-step[data-state="done"] .inf-step__title{color:var(--text-primary)}
.inf-step[data-state="done"] .inf-step__line{background:var(--accent)}
.inf-step[data-state="error"] .inf-step__mark{border-color:var(--danger-solid);color:var(--danger-fg)}
.inf-stepper--vertical{flex-direction:column;align-items:stretch;gap:0}
.inf-stepper--vertical .inf-step{flex-direction:column;align-items:flex-start;gap:0}
.inf-sidebar[data-collapsed="true"] .inf-sidebar__scroll{scrollbar-width:none}
.inf-sidebar[data-collapsed="true"] .inf-sidebar__scroll::-webkit-scrollbar{display:none}

/* ---- css/data.css ---- */
/* IDS · Data display */
/* Card */
.inf-card{background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-lg);display:flex;flex-direction:column;min-width:0;position:relative}
.inf-card--pad{padding:var(--pad-card)}
.inf-card--dense{padding:var(--pad-card-dense)}
.inf-card--sunken{background:var(--surface-2);border-color:var(--border-subtle)}
.inf-card--brand{background:var(--surface-brand);border-color:transparent;color:var(--text-on-brand)}
.inf-card--brand .inf-card__title,.inf-card--brand .inf-card__sub{color:inherit}
.inf-card--brand .inf-card__sub{opacity:.78}
.inf-card--ink{background:var(--navy-900);border-color:transparent;color:#fff}
.inf-card--ink .inf-card__title{color:#fff}
.inf-card--ink .inf-card__sub{color:rgba(255,255,255,.64)}
.inf-card--interactive{cursor:pointer;transition:var(--motion-hover)}
.inf-card--interactive:hover{border-color:var(--border-strong);box-shadow:var(--elevation-1)}
.inf-card--selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.inf-card__head{display:flex;align-items:flex-start;gap:12px;padding:var(--pad-card) var(--pad-card) 0}
.inf-card--pad > .inf-card__head,.inf-card--dense > .inf-card__head{padding:0}
.inf-card__titles{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.inf-card__title{font:var(--type-h4);color:var(--text-strong)}
.inf-card__sub{font:400 13px/18px var(--font-sans);color:var(--text-tertiary)}
.inf-card__actions{display:flex;align-items:center;gap:4px;margin:-4px -6px 0 0}
.inf-card__body{padding:var(--pad-card);flex:1;min-width:0}
.inf-card--pad > .inf-card__body,.inf-card--dense > .inf-card__body{padding:16px 0 0}
.inf-card__foot{display:flex;align-items:center;gap:8px;padding:12px var(--pad-card);border-top:1px solid var(--border-subtle)}

/* KPI */
.inf-kpi{display:flex;flex-direction:column;gap:10px;padding:18px 20px;background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-lg);min-width:0}
.inf-kpi__head{display:flex;align-items:center;gap:8px;font:500 13px/18px var(--font-sans);color:var(--text-secondary)}
.inf-kpi__icon{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:var(--surface-3);color:var(--text-secondary);flex:none}
.inf-kpi__row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.inf-kpi__value{font:var(--type-metric);letter-spacing:var(--tracking-display);color:var(--text-strong);font-variant-numeric:tabular-nums;white-space:nowrap}
.inf-kpi__value small{font-size:.6em;font-weight:500;color:var(--text-tertiary);margin-left:2px}
.inf-kpi__foot{display:flex;align-items:center;gap:6px;font:400 12px/16px var(--font-sans);color:var(--text-tertiary)}
.inf-delta{display:inline-flex;align-items:center;gap:2px;height:20px;padding:0 6px;border-radius:5px;font:700 11px/1 var(--font-sans);font-variant-numeric:tabular-nums}
.inf-delta--up{background:var(--success-bg);color:var(--success-fg)}
.inf-delta--down{background:var(--danger-bg);color:var(--danger-fg)}
.inf-delta--flat{background:var(--neutral-bg);color:var(--neutral-fg)}

/* Table */
.inf-table-wrap{width:100%;overflow:auto;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-1);position:relative}
.inf-table{width:100%;border-collapse:separate;border-spacing:0;font:400 13px/18px var(--font-sans);color:var(--text-primary)}
.inf-table th{position:sticky;top:0;z-index:1;height:38px;padding:0 12px;background:var(--surface-2);border-bottom:1px solid var(--border-default);font:600 12px/16px var(--font-sans);color:var(--text-secondary);text-align:left;white-space:nowrap;user-select:none}
.inf-table th[data-sortable="true"]{cursor:pointer}
.inf-table th[data-sortable="true"]:hover{color:var(--text-primary)}
.inf-table th .inf-sort{display:inline-flex;vertical-align:middle;margin-left:4px;color:var(--text-disabled)}
.inf-table th[aria-sort="ascending"] .inf-sort,.inf-table th[aria-sort="descending"] .inf-sort{color:var(--accent)}
.inf-table td{height:52px;padding:0 12px;border-bottom:1px solid var(--border-subtle);vertical-align:middle}
.inf-table tr:last-child td{border-bottom:0}
.inf-table tbody tr{transition:background var(--dur-instant)}
.inf-table tbody tr:hover{background:var(--surface-2)}
.inf-table tbody tr[aria-selected="true"]{background:var(--selected-bg)}
.inf-table--dense td{height:40px}
.inf-table td.inf-num,.inf-table th.inf-num{text-align:right;font-variant-numeric:tabular-nums}
.inf-table .inf-cell-check{width:44px;padding-right:0}
.inf-table .inf-cell-strong{font-weight:600;color:var(--text-strong)}
.inf-table .inf-cell-sub{display:block;font-size:12px;color:var(--text-tertiary)}
.inf-bulkbar{display:flex;align-items:center;gap:8px;height:48px;padding:0 8px 0 16px;background:var(--navy-900);color:#fff;border-radius:var(--radius-lg);box-shadow:var(--elevation-3);font:600 13px/1 var(--font-sans);animation:inf-pop-in var(--dur-base) var(--ease-enter)}
.inf-bulkbar .inf-btn--ghost{color:rgba(255,255,255,.8)}
.inf-bulkbar .inf-btn--ghost:hover{background:rgba(255,255,255,.08);color:#fff}
.inf-bulkbar__sep{width:1px;height:20px;background:rgba(255,255,255,.14);margin:0 4px}
.inf-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}

/* Progress */
.inf-progress{display:flex;flex-direction:column;gap:6px;min-width:0}
.inf-progress__head{display:flex;justify-content:space-between;gap:8px;font:500 13px/18px var(--font-sans);color:var(--text-primary)}
.inf-progress__head span:last-child{color:var(--text-secondary);font-variant-numeric:tabular-nums}
.inf-progress__track{height:6px;border-radius:999px;background:var(--surface-3);overflow:hidden;position:relative}
.inf-progress__track--hatch{background:transparent;color:var(--border-strong);background-image:var(--hatch)}
.inf-progress__fill{height:100%;border-radius:999px;background:var(--accent);transition:width var(--dur-slower) var(--ease-standard)}
.inf-progress--sm .inf-progress__track{height:4px}
.inf-progress--lg .inf-progress__track{height:10px}
.inf-progress--success .inf-progress__fill{background:var(--success-solid)}
.inf-progress--warning .inf-progress__fill{background:var(--warning-solid)}
.inf-progress--danger .inf-progress__fill{background:var(--danger-solid)}
.inf-progress--indeterminate .inf-progress__fill{width:35% !important;animation:inf-indet 1.3s var(--ease-standard) infinite}
@keyframes inf-indet{0%{transform:translateX(-100%)}100%{transform:translateX(300%)}}
.inf-ticks{display:flex;gap:3px;height:24px;align-items:stretch}
.inf-ticks i{flex:1 1 0;min-width:2px;border-radius:2px;background:var(--surface-3)}
.inf-ticks i[data-on="true"]{background:var(--accent)}
.inf-ticks i[data-on="partial"]{background:var(--aqua-300)}
.inf-ring{position:relative;display:inline-grid;place-items:center;flex:none}
.inf-ring svg{transform:rotate(-90deg)}
.inf-ring__label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font:600 18px/1 var(--font-display);color:var(--text-strong);font-variant-numeric:tabular-nums}
.inf-ring__label small{font:500 11px/14px var(--font-sans);color:var(--text-tertiary);margin-top:2px}

/* List */
.inf-list{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}
.inf-list__item{display:flex;align-items:center;gap:12px;min-height:52px;padding:8px 12px;border-bottom:1px solid var(--border-subtle);transition:background var(--dur-instant)}
.inf-list__item:last-child{border-bottom:0}
.inf-list--interactive .inf-list__item{cursor:pointer;border-radius:var(--radius-md);border-bottom:0}
.inf-list--interactive .inf-list__item:hover{background:var(--surface-3)}
.inf-list__item[aria-selected="true"]{background:var(--selected-bg)}
.inf-list__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.inf-list__title{font:600 13px/18px var(--font-sans);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inf-list__desc{font:400 12px/16px var(--font-sans);color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inf-list__meta{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:4px;font:500 12px/16px var(--font-sans);color:var(--text-tertiary)}

/* Timeline / activity feed */
.inf-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.inf-tl{display:grid;grid-template-columns:28px 1fr;column-gap:12px;position:relative;padding-bottom:18px}
.inf-tl:last-child{padding-bottom:0}
.inf-tl::before{content:"";position:absolute;left:13.5px;top:30px;bottom:2px;width:1px;background:var(--border-default)}
.inf-tl:last-child::before{display:none}
.inf-tl__mark{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:var(--surface-3);color:var(--text-secondary);position:relative;z-index:1}
.inf-tl__mark--brand{background:var(--accent-subtle);color:var(--accent-fg)}
.inf-tl__mark--ai{background:var(--navy-900);color:#fff}
.inf-tl__mark--success{background:var(--success-bg);color:var(--success-fg)}
.inf-tl__mark--warning{background:var(--warning-bg);color:var(--warning-fg)}
.inf-tl__mark--danger{background:var(--danger-bg);color:var(--danger-fg)}
.inf-tl__mark--dot{background:none}
.inf-tl__mark--dot::after{content:"";width:8px;height:8px;border-radius:2px;background:var(--accent)}
.inf-tl__body{min-width:0;padding-top:4px}
.inf-tl__title{font:500 13px/20px var(--font-sans);color:var(--text-primary)}
.inf-tl__title b{font-weight:700;color:var(--text-strong)}
.inf-tl__time{font:400 12px/16px var(--font-sans);color:var(--text-tertiary)}
.inf-tl__content{margin-top:8px}

/* Kanban */
.inf-board{display:flex;gap:12px;align-items:flex-start;overflow-x:auto;padding-bottom:8px}
.inf-col{flex:0 0 280px;display:flex;flex-direction:column;gap:8px;padding:8px;background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);max-height:100%}
.inf-col__head{display:flex;align-items:center;gap:8px;padding:6px 6px 4px}
.inf-col__title{font:700 13px/18px var(--font-sans);color:var(--text-strong)}
.inf-col__count{font:600 12px/1 var(--font-sans);color:var(--text-tertiary)}
.inf-col__total{margin-left:auto;font:600 12px/1 var(--font-sans);color:var(--text-secondary);font-variant-numeric:tabular-nums}
.inf-col__cards{display:flex;flex-direction:column;gap:8px;overflow-y:auto}
.inf-col[data-drop="true"]{border-color:var(--accent);border-style:dashed;background:var(--accent-subtle)}
.inf-kcard{display:flex;flex-direction:column;gap:10px;padding:12px;background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:grab;transition:var(--motion-hover)}
.inf-kcard:hover{border-color:var(--border-strong);box-shadow:var(--elevation-1)}
.inf-kcard[data-dragging="true"]{transform:rotate(1.5deg);box-shadow:var(--elevation-2);cursor:grabbing}
.inf-kcard__org{font:500 12px/16px var(--font-sans);color:var(--text-tertiary)}
.inf-kcard__title{font:600 14px/20px var(--font-sans);color:var(--text-strong)}
.inf-kcard__value{font:600 18px/1 var(--font-display);color:var(--text-strong);font-variant-numeric:tabular-nums}
.inf-kcard__foot{display:flex;align-items:center;gap:8px;font:500 12px/16px var(--font-sans);color:var(--text-tertiary)}

/* Month calendar */
.inf-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface-1)}
.inf-month__dow{padding:8px 10px;font:600 11px/16px var(--font-sans);letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary);background:var(--surface-2);border-bottom:1px solid var(--border-default)}
.inf-month__cell{min-height:96px;padding:6px;border-right:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:3px;min-width:0}
.inf-month__cell:nth-child(7n){border-right:0}
.inf-month__date{width:24px;height:24px;display:grid;place-items:center;border-radius:6px;font:600 12px/1 var(--font-sans);color:var(--text-secondary);font-variant-numeric:tabular-nums}
.inf-month__cell[data-outside="true"]{background:var(--surface-2)}
.inf-month__cell[data-outside="true"] .inf-month__date{color:var(--text-disabled)}
.inf-month__cell[data-today="true"] .inf-month__date{background:var(--accent);color:#fff}
.inf-event{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:5px;font:600 11px/14px var(--font-sans);background:var(--accent-subtle);color:var(--accent-fg);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}
.inf-event--teal{background:var(--teal-50);color:var(--teal-600)}
.inf-event--amber{background:var(--warning-bg);color:var(--warning-fg)}
.inf-event--ink{background:var(--navy-900);color:#fff}
.inf-event--muted{background:var(--surface-3);color:var(--text-secondary)}

/* Empty state */
.inf-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:40px 24px;max-width:420px;margin:0 auto}
.inf-empty__art{width:56px;height:56px;display:grid;place-items:center;margin-bottom:10px;border-radius:14px;background:var(--surface-1);border:1px solid var(--border-default);color:var(--accent);position:relative;box-shadow:var(--shadow-sm)}
.inf-empty__art::after{content:"";position:absolute;top:-4px;right:-4px;width:10px;height:10px;border-radius:2.5px;background:var(--accent);box-shadow:0 0 0 3px var(--bg-app)}
.inf-empty__title{font:var(--type-h3);color:var(--text-strong)}
.inf-empty__desc{font:400 14px/20px var(--font-sans);color:var(--text-secondary);text-wrap:pretty}
.inf-empty__actions{display:flex;gap:8px;margin-top:12px}

/* Charts */
.inf-chart{width:100%;display:block;overflow:visible}
.inf-chart text{font:500 11px/1 var(--font-sans);fill:var(--viz-axis)}
.inf-legend{display:flex;flex-wrap:wrap;gap:14px;font:500 12px/16px var(--font-sans);color:var(--text-secondary)}
.inf-legend span{display:inline-flex;align-items:center;gap:6px}
.inf-legend i{width:8px;height:8px;border-radius:2px;display:inline-block}

/* Filter bar & chips live in content.css (Tag/Chip) */
.inf-filterbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}

/* KPI tones — mix white + aqua + navy cards to lift key numbers (one brand + one ink per row max) */
.inf-kpi{position:relative;overflow:hidden}
.inf-kpi--brand{background:var(--aqua-600);border-color:var(--aqua-600);color:#fff}
.inf-kpi--ink{background:var(--navy-900);border-color:var(--navy-900);color:#fff}
.inf-kpi--tint{background:var(--aqua-50);border-color:var(--aqua-100)}
.inf-kpi--brand .inf-kpi__value,.inf-kpi--ink .inf-kpi__value{color:#fff}
.inf-kpi--brand .inf-kpi__head,.inf-kpi--ink .inf-kpi__head{color:rgba(255,255,255,.78)}
.inf-kpi--brand .inf-kpi__foot,.inf-kpi--ink .inf-kpi__foot{color:rgba(255,255,255,.66)}
.inf-kpi--brand .inf-kpi__icon,.inf-kpi--ink .inf-kpi__icon{background:rgba(255,255,255,.14);color:#fff}
.inf-kpi--tint .inf-kpi__icon{background:var(--surface-1);color:var(--accent-fg)}
.inf-kpi--brand .inf-delta--up,.inf-kpi--ink .inf-delta--up{background:rgba(95,215,150,.18);color:#8EEDB8}
.inf-kpi--brand .inf-delta--down,.inf-kpi--ink .inf-delta--down{background:rgba(247,131,138,.2);color:#FFB3B8}
.inf-kpi > *{position:relative;z-index:1}
/* geometric pattern — 52° logo slant / dot field, top-right, fades out */
.inf-kpi__pattern{position:absolute;z-index:0;right:-20px;top:-20px;width:150px;height:150px;pointer-events:none;-webkit-mask-image:radial-gradient(circle at 80% 20%,#000 0,transparent 70%);mask-image:radial-gradient(circle at 80% 20%,#000 0,transparent 70%)}
.inf-kpi__pattern[data-p="hatch"]{background-image:repeating-linear-gradient(-52deg,currentColor 0 2px,transparent 2px 9px);color:var(--aqua-200)}
.inf-kpi__pattern[data-p="dots"]{background-image:radial-gradient(currentColor 1.6px,transparent 1.8px);background-size:10px 10px;color:var(--aqua-300)}
.inf-kpi__pattern[data-p="strokes"]{right:-10px;top:-14px;width:120px;height:120px;background:linear-gradient(-52deg,transparent 0 30%,currentColor 30% 44%,transparent 44% 56%,currentColor 56% 70%,transparent 70%);color:var(--aqua-100);opacity:.9}
.inf-kpi--brand .inf-kpi__pattern,.inf-kpi--ink .inf-kpi__pattern{color:rgba(255,255,255,.16)}
.inf-kpi--ink .inf-kpi__pattern[data-p="strokes"]{color:rgba(10,126,128,.55)}
/* NotchCard — wavy carved corner (SVG path) */
.inf-notch{position:relative;min-width:0;color:var(--text-primary)}
.inf-notch__bg{position:absolute;inset:0;overflow:visible;pointer-events:none;z-index:0}
.inf-notch__bg path{fill:var(--surface-1);stroke:var(--border-default);stroke-width:1}
.inf-notch--brand{color:#fff}.inf-notch--brand .inf-notch__bg path{fill:var(--aqua-600);stroke:var(--aqua-600)}
.inf-notch--ink{color:#fff}.inf-notch--ink .inf-notch__bg path{fill:var(--navy-900);stroke:var(--navy-900)}
.inf-notch--tint .inf-notch__bg path{fill:var(--aqua-50);stroke:var(--aqua-100)}
.inf-notch__clip{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.inf-notch__body{position:relative;z-index:1;height:100%;box-sizing:border-box}
.inf-notch__actions{position:absolute;top:0;right:0;display:flex;gap:6px;z-index:2}
.inf-notch__btn{flex:none;border:0;border-radius:50%;display:grid;place-items:center;cursor:pointer;background:var(--surface-1);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--border-default);transition:var(--motion-hover)}
.inf-notch__btn:hover{background:var(--accent);color:#fff;box-shadow:none}
.inf-notch__btn[data-tone="brand"]{background:var(--accent);color:#fff;box-shadow:none}
.inf-notch__btn[data-tone="brand"]:hover{background:var(--aqua-700)}
.inf-notch__btn[data-tone="ink"]{background:var(--navy-900);color:#fff;box-shadow:none}
.inf-notch__btn[data-tone="ink"]:hover{background:var(--accent)}
.inf-notch__btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.inf-kpi.inf-kpi--bare{background:transparent;border-color:transparent;border-radius:0;overflow:visible}
.inf-notch .inf-kpi__pattern{top:auto;bottom:-24px;-webkit-mask-image:radial-gradient(circle at 80% 80%,#000 0,transparent 70%);mask-image:radial-gradient(circle at 80% 80%,#000 0,transparent 70%)}
.inf-notch--brand .inf-kpi__pattern,.inf-notch--ink .inf-kpi__pattern{color:rgba(255,255,255,.16)}
.inf-notch--ink .inf-kpi__pattern[data-p="strokes"]{color:rgba(10,126,128,.55)}
[data-theme="dark"] .inf-notch--tint .inf-notch__bg path{fill:rgba(10,126,128,.12);stroke:rgba(10,126,128,.24)}
[data-theme="dark"] .inf-notch--ink .inf-notch__bg path{fill:#0c2433;stroke:#12303f}
[data-theme="dark"] .inf-notch .inf-kpi__pattern{color:rgba(31,184,178,.22)}
[data-theme="dark"] .inf-notch--brand .inf-kpi__pattern,[data-theme="dark"] .inf-notch--ink .inf-kpi__pattern{color:rgba(255,255,255,.12)}
/* Table card — header band + footer for richer tables */
.inf-table-card{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-1);overflow:hidden}
.inf-table-card__head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--border-subtle)}
.inf-table-card__title{font:var(--type-h4);color:var(--text-strong)}
.inf-table-card .inf-table-wrap{border:0;border-radius:0}
.inf-table-card__foot{display:flex;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid var(--border-subtle);background:var(--surface-2)}
[data-theme="dark"] .inf-kpi--tint{background:rgba(10,126,128,.12);border-color:rgba(10,126,128,.24)}
[data-theme="dark"] .inf-kpi--ink{background:#0c2433;border-color:#12303f}
.inf-kpi--compact{padding:14px;gap:8px;border-radius:14px}.inf-kpi--compact .inf-kpi__value{font-size:22px;line-height:26px}.inf-kpi--compact .inf-kpi__head{font-size:12px}.inf-kpi--compact .inf-kpi__icon{width:24px;height:24px;border-radius:7px}
[data-theme="dark"] .inf-kpi__pattern{color:rgba(31,184,178,.22)}
[data-theme="dark"] .inf-kpi--brand .inf-kpi__pattern,[data-theme="dark"] .inf-kpi--ink .inf-kpi__pattern{color:rgba(255,255,255,.12)}
.inf-kpi--tint .inf-kpi__pattern,.inf-kpi:not(.inf-kpi--brand):not(.inf-kpi--ink) .inf-kpi__pattern{opacity:.7}

/* KPI row — charts shrink instead of overflowing the card */
.inf-kpi__row{min-width:0}
.inf-kpi__value{flex:none}
.inf-kpi__row > :not(.inf-kpi__value){min-width:0!important;flex-shrink:1!important;max-width:100%}
.inf-kpi__row > svg{max-width:100%}
.inf-kpi__row > .inf-spark{margin-right:3px}
.inf-kpi__head > span:last-child{min-width:0}
.inf-notch .inf-kpi--compact .inf-kpi__head{padding-right:calc(var(--notch-w) - 6px)!important}
/* Card inside a notch */
.inf-card.inf-card--bare{background:transparent;border-color:transparent;box-shadow:none}
.inf-notch .inf-card--bare > .inf-card__head{padding-right:calc(var(--notch-w) - 8px)}
.inf-notch--brand .inf-card--bare,.inf-notch--ink .inf-card--bare{color:#fff}
[data-theme="dark"] .inf-kpi.inf-kpi--bare,[data-theme="dark"] .inf-card.inf-card--bare{background:transparent;border-color:transparent;box-shadow:none}

/* Panel models — gauge, meter, pattern columns, sources, leaderboard, funnel, goal, tasks, deal */
.inf-gauge{position:relative;display:flex;flex-direction:column;align-items:center;margin:0 auto}
.inf-gauge svg line{stroke-width:4;stroke-linecap:round}
.inf-gauge__on{stroke:var(--aqua-600)}
.inf-gauge__off{stroke:var(--border-default)}
.inf-gauge__label{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center}
.inf-gauge__label b{font:500 34px/38px var(--font-display);color:var(--text-strong);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.inf-gauge__label span{font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.inf-meter{display:flex;flex-direction:column;gap:8px}
.inf-meter__head{display:flex;align-items:baseline;font:500 13px/18px var(--font-sans);color:var(--text-secondary)}
.inf-meter__head span{flex:1}.inf-meter__head b{font-weight:600;color:var(--text-strong)}
.inf-meter__track{position:relative;height:14px;border-radius:999px;background:repeating-linear-gradient(-52deg,var(--border-strong) 0 1.5px,transparent 1.5px 6px)}
.inf-meter__fill{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,var(--aqua-600),var(--aqua-300))}
.inf-meter__handle{position:absolute;top:50%;width:12px;height:24px;border-radius:6px;transform:translate(-50%,-50%);background:var(--surface-1);box-shadow:inset 0 0 0 2px var(--aqua-600),var(--shadow-sm)}
.inf-pcols{display:flex;align-items:flex-end;gap:10px}
.inf-pcols__col{flex:1;min-width:0;display:flex;flex-direction:column;align-items:stretch;gap:8px}
.inf-pcols__label{font:500 13px/18px var(--font-sans);color:var(--text-strong);text-align:center}
.inf-pcols__block{position:relative;display:grid;place-items:center;border-radius:10px}
.inf-pcols__block[data-p="hatch"]{background:repeating-linear-gradient(52deg,var(--aqua-400) 0 2px,transparent 2px 9px);box-shadow:inset 0 0 0 1px var(--aqua-200)}
.inf-pcols__block[data-p="dots"]{background:radial-gradient(var(--aqua-400) 1.3px,transparent 1.6px) 0 0/9px 9px;box-shadow:inset 0 0 0 1px var(--aqua-200)}
.inf-pcols__block[data-p="solid"]{background:var(--navy-900);border-radius:999px}
.inf-pcols__block em{font:600 18px/1 var(--font-display);font-style:normal;color:var(--aqua-700);background:var(--surface-1);padding:5px 10px;border-radius:8px;font-variant-numeric:tabular-nums}
[data-theme="dark"] .inf-pcols__block[data-p="solid"]{background:var(--neutral-0)}
[data-theme="dark"] .inf-pcols__block em{color:var(--aqua-300)}
.inf-srcbars{display:flex;flex-direction:column;gap:14px}
.inf-srcbars__row{display:flex;align-items:center;gap:10px}
.inf-srcbars__row>i{width:3px;align-self:stretch;border-radius:2px;flex:none}
.inf-srcbars__txt{flex:1;min-width:0;display:flex;flex-direction:column}
.inf-srcbars__txt b{font:500 14px/20px var(--font-sans);color:var(--text-strong)}
.inf-srcbars__txt span{font:400 12px/16px var(--font-sans);color:var(--text-tertiary)}
.inf-srcbars__pct{font:600 12px/16px var(--font-sans);color:var(--text-strong);padding:4px 8px;border-radius:8px;background:var(--surface-2);font-variant-numeric:tabular-nums}
.inf-leader{display:flex;flex-direction:column}
.inf-leader__row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-subtle,var(--border-default))}
.inf-leader__row:last-child{border-bottom:0}
.inf-leader__rank{width:20px;display:grid;place-items:center;font:600 12px/1 var(--font-sans);color:var(--text-tertiary)}
.inf-leader__rank[data-r="1"]{color:var(--amber-500)}
.inf-leader__rank[data-r="2"]{color:var(--neutral-400)}
.inf-leader__rank[data-r="3"]{color:color-mix(in oklch,var(--amber-500) 55%,var(--navy-900))}
.inf-leader__who{flex:1;min-width:0;display:flex;flex-direction:column}
.inf-leader__who b{font:600 14px/20px var(--font-sans);color:var(--text-strong)}
.inf-leader__who span{display:inline-flex;align-items:center;gap:4px;font:500 12px/16px var(--font-sans);color:var(--text-tertiary)}
.inf-leader__val{font:600 15px/20px var(--font-display);color:var(--text-strong);font-variant-numeric:tabular-nums}
.inf-funnel{display:flex;flex-direction:column;gap:12px}
.inf-funnel__row{display:grid;grid-template-columns:96px minmax(0,1fr) auto;align-items:center;gap:12px}
.inf-funnel__label{font:500 14px/20px var(--font-sans);color:var(--text-strong)}
.inf-funnel__track{height:28px;border-radius:8px;background:var(--surface-brand-subtle);display:flex}
.inf-funnel__track>span{height:100%;border-radius:8px;display:flex;align-items:center;padding:0 10px;box-sizing:border-box;font:600 12px/1 var(--font-sans)}
.inf-funnel__val{font:600 13px/18px var(--font-sans);color:var(--text-strong);text-align:right;min-width:72px;font-variant-numeric:tabular-nums}
.inf-goal{display:flex;flex-direction:column;gap:18px;padding:18px;border-radius:20px;background:var(--aqua-500);color:#fff}
.inf-goal__title{font:600 17px/22px var(--font-display)}
.inf-goal__period,.inf-goal__sm{font:400 12px/16px var(--font-sans);color:rgba(255,255,255,.8)}
.inf-goal__main{display:flex;align-items:center;gap:18px}
.inf-goal__pct{display:block;font:600 24px/28px var(--font-display)}
.inf-goal__value{font:600 26px/32px var(--font-display);letter-spacing:-.01em}
.inf-goal__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.inf-goal__stats b{display:block;font:600 16px/22px var(--font-display)}
.inf-goal__stats span{font:400 12px/16px var(--font-sans);color:rgba(255,255,255,.8)}
.inf-goal__elapsed{display:flex;flex-direction:column;gap:8px}
.inf-goal__elapsed>div{display:flex;justify-content:space-between;font:500 13px/18px var(--font-sans)}
.inf-goal__bar{height:4px;border-radius:2px;background:rgba(255,255,255,.3)}
.inf-goal__bar span{display:block;height:100%;border-radius:2px;background:#fff}
.inf-tasks{display:flex;flex-direction:column}
.inf-tasks__sum{display:flex;align-items:center;gap:14px;padding:14px;border-radius:14px;background:var(--surface-brand-subtle);margin-bottom:6px}
.inf-tasks__sum b{display:block;font:600 15px/20px var(--font-sans);color:var(--text-strong)}
.inf-tasks__sum span{font:400 12px/16px var(--font-sans);color:var(--text-secondary)}
.inf-tasks__row{display:flex;align-items:center;gap:12px;min-height:44px;padding:0;border:0;border-bottom:1px solid var(--border-default);background:none;cursor:pointer;text-align:left}
.inf-tasks__row:last-child{border-bottom:0}
.inf-tasks__box{width:20px;height:20px;border-radius:6px;flex:none;display:grid;place-items:center;box-shadow:inset 0 0 0 1.5px var(--border-strong);color:#fff}
.inf-tasks__row[data-done="true"] .inf-tasks__box{background:var(--accent);box-shadow:none}
.inf-tasks__label{flex:1;min-width:0;font:500 14px/20px var(--font-sans);color:var(--text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inf-tasks__row[data-done="true"] .inf-tasks__label{color:var(--text-tertiary);text-decoration:line-through}
.inf-tasks__time{font:500 13px/18px var(--font-sans);color:var(--text-secondary);font-variant-numeric:tabular-nums}
.inf-deal{display:flex;flex-direction:column;gap:14px;padding:14px;border-radius:14px;background:var(--surface-1);box-shadow:inset 0 0 0 1px var(--border-default)}
.inf-deal__head{display:flex;align-items:center;gap:12px}
.inf-deal__ini{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--accent-subtle);color:var(--accent-fg);font:600 13px/1 var(--font-sans);flex:none}
.inf-deal__who{flex:1;min-width:0;display:flex;flex-direction:column}
.inf-deal__who b{font:600 15px/20px var(--font-sans);color:var(--text-strong)}
.inf-deal__who span{font:400 13px/18px var(--font-sans);color:var(--text-tertiary)}
.inf-deal__more{width:32px;height:32px;border:0;border-radius:8px;background:none;color:var(--text-secondary);display:grid;place-items:center;cursor:pointer}
.inf-deal__more:hover{background:var(--surface-2)}
.inf-deal__grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.inf-deal__grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.inf-deal__k{font:400 12px/16px var(--font-sans);color:var(--text-tertiary)}
.inf-deal__owner{display:inline-flex;align-items:center;gap:6px;font:500 13px/18px var(--font-sans);color:var(--text-strong)}
.inf-deal__v{font:600 14px/20px var(--font-sans);color:var(--text-strong);font-variant-numeric:tabular-nums}
.inf-mscroll{scrollbar-width:none}.inf-mscroll::-webkit-scrollbar{display:none}

/* CRM — contacts, score, health, stage, insights, meeting, profile card */
.inf-score{position:relative;display:inline-grid;place-items:center;flex:none}
.inf-score svg{position:absolute;inset:0}
.inf-score__track{fill:none;stroke:var(--surface-3)}
.inf-score b{position:relative;font-family:var(--font-sans);font-weight:600;color:var(--text-strong);font-variant-numeric:tabular-nums}
.inf-crow{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--surface-1);box-shadow:inset 0 0 0 1px var(--border-default);cursor:pointer;transition:var(--motion-hover);min-width:0}
.inf-crow:hover{box-shadow:inset 0 0 0 1px var(--border-strong)}
.inf-crow[data-selected="true"]{background:var(--surface-brand-subtle);box-shadow:inset 0 0 0 1.5px var(--aqua-400)}
.inf-crow__check{width:18px;height:18px;flex:none;border:0;border-radius:5px;padding:0;display:grid;place-items:center;background:none;box-shadow:inset 0 0 0 1.5px var(--border-strong);color:#fff;cursor:pointer}
.inf-crow__check[aria-pressed="true"]{background:var(--accent);box-shadow:none}
.inf-crow__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.inf-crow__top{display:flex;align-items:center;gap:6px;min-width:0}
.inf-crow__top b{font:600 14px/20px var(--font-sans);color:var(--text-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inf-crow__src{width:18px;height:18px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--accent-subtle);color:var(--accent-fg)}
.inf-crow__meta{display:flex;gap:6px;min-width:0;font:400 12px/16px var(--font-sans);color:var(--text-tertiary)}
.inf-crow__meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inf-crow__meta span+span::before{content:"•";margin-right:6px}
.inf-crow__meta span:last-child{flex:1;min-width:0}
.inf-crow__act{width:34px;height:34px;flex:none;border:0;border-radius:10px;display:grid;place-items:center;background:var(--surface-2);color:var(--text-secondary);cursor:pointer;transition:var(--motion-hover)}
.inf-crow__act:hover{background:var(--accent-subtle);color:var(--accent-fg)}
.inf-crow__act[data-tone="brand"]{background:var(--accent-subtle);color:var(--accent-fg);box-shadow:inset 0 0 0 1px var(--aqua-300)}
.inf-crow[data-compact="true"]{padding:8px 10px;gap:10px}
.inf-health{display:flex;align-items:center;gap:16px;padding:18px;border-radius:16px;background:var(--surface-1);box-shadow:inset 0 0 0 1px var(--border-default)}
.inf-health__txt{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.inf-health__txt b{font:500 36px/42px var(--font-display);color:var(--text-strong);letter-spacing:-.02em}
.inf-health__txt span{font:400 14px/20px var(--font-sans);color:var(--text-secondary)}
.inf-health__txt em{margin-top:12px;font:600 12px/16px var(--font-sans);font-style:normal;padding:4px 10px;border-radius:999px;background:var(--success-bg);color:var(--success-fg)}
.inf-health__txt em[data-down="true"]{background:var(--danger-bg);color:var(--danger-fg)}
.inf-health__chart{width:150px;height:auto;overflow:visible;flex:none}
.inf-health__grid{stroke:var(--border-default);stroke-dasharray:2 3}
.inf-health__line{fill:none;stroke:var(--aqua-600);stroke-width:2;stroke-linejoin:round}
.inf-health__dot{fill:var(--aqua-600);stroke:var(--surface-1);stroke-width:2}
.inf-health__tip{fill:var(--surface-3)}
.inf-health__chart text{font:600 9px/1 var(--font-sans);fill:var(--text-strong)}
.inf-health__chart .inf-health__day{font-weight:500;fill:var(--text-tertiary)}
.inf-stagebar{display:flex;align-items:flex-start;gap:8px;width:100%}
.inf-stagebar__step{display:flex;flex-direction:column;align-items:center;gap:6px;flex:none}
.inf-stagebar__dot{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--surface-1);box-shadow:inset 0 0 0 1.5px var(--border-strong);color:#fff}
.inf-stagebar__step[data-state="done"] .inf-stagebar__dot{background:var(--aqua-600);box-shadow:none}
.inf-stagebar__step[data-state="now"] .inf-stagebar__dot{box-shadow:inset 0 0 0 2px var(--aqua-600),0 0 0 5px var(--accent-subtle)}
.inf-stagebar__label{font:500 12px/16px var(--font-sans);color:var(--text-secondary);white-space:nowrap}
.inf-stagebar__step[data-state="now"] .inf-stagebar__label{color:var(--text-strong);font-weight:600}
.inf-stagebar__ticks{flex:1;min-width:24px;height:28px;display:flex;align-items:center;gap:3px}
.inf-stagebar__ticks i{flex:1 1 0;min-width:2px;height:18px;border-radius:2px;background:var(--border-default)}
.inf-stagebar__ticks[data-on="true"] i{background:var(--aqua-600)}
.inf-insights{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:18px;background:linear-gradient(160deg,var(--surface-brand-subtle),var(--surface-1) 70%);box-shadow:inset 0 0 0 1px var(--border-default)}
.inf-insights__head{display:flex;align-items:center;gap:12px;margin-bottom:4px}
.inf-insights__head>span:nth-child(2){flex:1;display:flex;flex-direction:column}
.inf-insights__head b{font:600 15px/20px var(--font-sans);color:var(--text-strong)}
.inf-insights__head span span{font:400 13px/18px var(--font-sans);color:var(--text-secondary)}
.inf-insights__head button{border:0;background:none;color:var(--text-secondary);cursor:pointer;padding:4px}
.inf-insights__ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--navy-900);color:#fff;flex:none}
.inf-insights__row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--surface-1);font:400 13px/18px var(--font-sans);color:var(--text-secondary)}
.inf-insights__row b{color:var(--text-strong);font-weight:600}
.inf-insights__row svg{color:var(--text-tertiary);flex:none}
.inf-insights__stack{display:inline-flex;flex:none}
.inf-insights__stack>*{margin-left:-6px;border-radius:50%;box-shadow:0 0 0 2px var(--surface-1)}
.inf-insights__stack>*:first-child{margin-left:0}
.inf-meet{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:16px;background:var(--surface-1);box-shadow:inset 0 0 0 1px var(--border-default)}
.inf-meet__head{display:flex;align-items:flex-start;gap:8px}
.inf-meet__head>span{flex:1;display:flex;flex-direction:column}
.inf-meet__head b{font:600 15px/20px var(--font-sans);color:var(--text-strong)}
.inf-meet__head span span{font:400 12px/16px var(--font-sans);color:var(--text-tertiary)}
.inf-meet__chips{display:flex;gap:6px;flex-wrap:wrap}
.inf-meet__chips span{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--border-default);font:500 12px/16px var(--font-sans);color:var(--text-secondary)}
.inf-meet__foot{display:flex;align-items:center;justify-content:space-between}
.inf-meet__more{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--navy-900);color:#fff;font:600 11px/1 var(--font-sans)}
.inf-pcard{border-radius:20px;overflow:hidden;background:var(--surface-1);box-shadow:inset 0 0 0 1px var(--border-default)}
.inf-pcard__cover{position:relative;height:96px;background:var(--navy-900);background-image:repeating-linear-gradient(52deg,rgba(255,255,255,.06) 0 2px,transparent 2px 14px),linear-gradient(135deg,var(--navy-900),var(--aqua-700))}
.inf-pcard__edit{position:absolute;right:12px;top:12px;width:32px;height:32px;border:0;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.14);color:#fff;cursor:pointer}
.inf-pcard__body{display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 18px 18px;text-align:center}
.inf-pcard__avatar{margin-top:-46px;border-radius:50%;box-shadow:0 0 0 4px var(--surface-1);display:flex}
.inf-pcard__name{display:flex;align-items:center;gap:6px;margin-top:8px}
.inf-pcard__name b{font:600 20px/26px var(--font-display);color:var(--text-strong)}
.inf-pcard__role,.inf-pcard__mail{font:400 13px/18px var(--font-sans);color:var(--text-tertiary)}
.inf-pcard__comp{width:100%;margin-top:12px;padding:12px;border-radius:12px;box-shadow:inset 0 0 0 1px var(--border-default);text-align:left}
.inf-pcard__comp>div{display:flex;justify-content:space-between;font:500 13px/18px var(--font-sans);color:var(--text-secondary);margin-bottom:8px}
.inf-pcard__comp b{color:var(--text-strong)}
.inf-pcard__bar{display:block;height:6px;border-radius:3px;background:var(--aqua-100)}
.inf-pcard__bar span{display:block;height:100%;border-radius:3px;background:var(--aqua-600)}
.inf-pcard__sec{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding-top:14px;margin-top:10px;border-top:1px solid var(--border-default);text-align:left}
.inf-pcard__k{display:inline-flex;align-items:center;gap:6px;font:500 13px/18px var(--font-sans);color:var(--text-secondary)}
.inf-pcard__chips{display:flex;gap:6px;flex-wrap:wrap}
.inf-pcard__chips span{padding:5px 12px;border-radius:999px;background:var(--surface-2);font:500 12px/16px var(--font-sans);color:var(--text-strong)}
.inf-pcard__status{display:inline-flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border-radius:10px;box-shadow:inset 0 0 0 1px var(--border-default);font:500 13px/18px var(--font-sans);color:var(--text-strong)}
.inf-pcard__status i{width:8px;height:8px;border-radius:50%;background:var(--success-solid)}
.inf-pcard__link{display:flex;align-items:center;gap:8px;width:100%;padding:8px 6px 8px 12px;border-radius:999px;background:var(--surface-2);font:500 13px/18px var(--font-sans);color:var(--text-strong);box-sizing:border-box}
.inf-pcard__link span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inf-pcard__link button{border:0;background:var(--surface-1);width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:var(--text-secondary);cursor:pointer}
.inf-pcard__actions{display:flex;gap:8px;width:100%;margin-top:16px}
.inf-mscroll>*{flex-shrink:0}

/* ---- css/feedback.css ---- */
/* IDS · Feedback & overlays */
/* Alert (inline) — full tinted box, never a colored left-border-only card */
.inf-alert{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--info-border);background:var(--info-bg);border-radius:var(--radius-md);color:var(--text-primary)}
.inf-alert__icon{flex:none;margin-top:1px;color:var(--info-fg)}
.inf-alert__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.inf-alert__title{font:600 13px/18px var(--font-sans);color:var(--text-strong)}
.inf-alert__text{font:400 13px/18px var(--font-sans);color:var(--text-secondary)}
.inf-alert__actions{display:flex;gap:8px;margin-top:8px}
.inf-alert__close{flex:none;margin:-4px -6px -4px 0}
.inf-alert--success{border-color:var(--success-border);background:var(--success-bg)}
.inf-alert--success .inf-alert__icon{color:var(--success-fg)}
.inf-alert--warning{border-color:var(--warning-border);background:var(--warning-bg)}
.inf-alert--warning .inf-alert__icon{color:var(--warning-fg)}
.inf-alert--danger{border-color:var(--danger-border);background:var(--danger-bg)}
.inf-alert--danger .inf-alert__icon{color:var(--danger-fg)}
.inf-alert--neutral{border-color:var(--border-default);background:var(--surface-2)}
.inf-alert--neutral .inf-alert__icon{color:var(--text-secondary)}
.inf-alert--ai{border-color:var(--ai-border);background:var(--ai-bg)}
.inf-alert--ai .inf-alert__icon{color:var(--ai-solid)}

/* Banner (page/app level) */
.inf-banner{display:flex;align-items:center;justify-content:center;gap:12px;min-height:40px;padding:8px 16px;font:500 13px/18px var(--font-sans);background:var(--navy-900);color:#fff}
.inf-banner a{color:var(--aqua-200);font-weight:700}
.inf-banner--brand{background:var(--accent)}
.inf-banner--brand a{color:#fff;text-decoration:underline}
.inf-banner--warning{background:var(--warning-bg);color:var(--warning-fg);border-bottom:1px solid var(--warning-border)}
.inf-banner--warning a{color:var(--warning-fg)}
.inf-banner--danger{background:var(--danger-solid)}
.inf-banner__close{margin-left:auto}

/* Toast */
.inf-toast-region{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px;z-index:var(--z-toast);pointer-events:none}
.inf-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:12px;width:360px;max-width:calc(100vw - 32px);padding:12px 12px 12px 14px;background:var(--surface-overlay);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--elevation-4);animation:inf-pop-in var(--dur-slow) var(--ease-emphasized)}
.inf-toast__icon{flex:none;margin-top:1px}
.inf-toast__body{flex:1;min-width:0}
.inf-toast__title{font:600 13px/18px var(--font-sans);color:var(--text-strong)}
.inf-toast__text{font:400 13px/18px var(--font-sans);color:var(--text-secondary);margin-top:2px}
.inf-toast__action{flex:none;align-self:center}
.inf-toast--inverse{background:var(--navy-900);border-color:var(--navy-900)}
.inf-toast--inverse .inf-toast__title{color:#fff}
.inf-toast--inverse .inf-toast__text{color:rgba(255,255,255,.7)}
.inf-toast--inverse .inf-btn--link{color:var(--aqua-200)}

/* Overlay scaffolding */
.inf-scrim{position:fixed;inset:0;background:var(--surface-scrim);z-index:var(--z-overlay);animation:inf-fade-in var(--dur-base) var(--ease-enter);display:grid;place-items:center;padding:24px}
.inf-scrim--inline{position:absolute}
.inf-dialog{width:min(480px,100%);max-height:calc(100vh - 48px);display:flex;flex-direction:column;background:var(--surface-overlay);border-radius:var(--radius-xl);box-shadow:var(--elevation-3);z-index:var(--z-modal);animation:inf-pop-in var(--dur-slow) var(--ease-emphasized);overflow:hidden}
.inf-dialog--sm{width:min(400px,100%)}
.inf-dialog--lg{width:min(720px,100%)}
.inf-dialog__head{display:flex;align-items:flex-start;gap:12px;padding:20px 20px 0}
.inf-dialog__icon{flex:none;width:40px;height:40px;display:grid;place-items:center;border-radius:10px;background:var(--accent-subtle);color:var(--accent-fg)}
.inf-dialog__icon--danger{background:var(--danger-bg);color:var(--danger-fg)}
.inf-dialog__icon--warning{background:var(--warning-bg);color:var(--warning-fg)}
.inf-dialog__titles{flex:1;min-width:0;padding-top:2px}
.inf-dialog__title{font:var(--type-h3);color:var(--text-strong)}
.inf-dialog__desc{font:400 14px/20px var(--font-sans);color:var(--text-secondary);margin-top:4px;text-wrap:pretty}
.inf-dialog__body{padding:16px 20px;overflow:auto;display:flex;flex-direction:column;gap:var(--gap-stack)}
.inf-dialog__foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--border-subtle);background:var(--surface-2)}
.inf-dialog__foot--plain{border-top:0;background:none;padding-top:4px}

/* Drawer (side sheet) & Sheet (mobile bottom) */
.inf-drawer{position:fixed;top:0;right:0;bottom:0;width:min(var(--shell-drawer),100vw);display:flex;flex-direction:column;background:var(--surface-overlay);box-shadow:var(--elevation-3);z-index:var(--z-modal);animation:inf-slide-in-right var(--dur-slow) var(--ease-emphasized)}
.inf-drawer--inline{position:absolute}
.inf-drawer__head{display:flex;align-items:center;gap:12px;height:60px;padding:0 16px 0 20px;border-bottom:1px solid var(--border-subtle);flex:none}
.inf-drawer__title{flex:1;font:var(--type-h3);color:var(--text-strong)}
.inf-drawer__body{flex:1;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:var(--gap-section)}
.inf-drawer__foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--border-subtle);flex:none}
.inf-sheet{position:absolute;left:0;right:0;bottom:0;max-height:88%;display:flex;flex-direction:column;background:var(--surface-overlay);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;box-shadow:var(--elevation-3);z-index:var(--z-modal);animation:inf-slide-in-up var(--dur-slow) var(--ease-emphasized);padding-bottom:env(safe-area-inset-bottom)}
.inf-sheet__grip{width:36px;height:4px;border-radius:2px;background:var(--border-strong);margin:8px auto 4px;flex:none}
.inf-sheet__head{display:flex;align-items:center;gap:8px;padding:8px 20px 12px}
.inf-sheet__title{flex:1;font:var(--type-h3);color:var(--text-strong)}
.inf-sheet__body{overflow:auto;padding:0 20px 20px;display:flex;flex-direction:column;gap:12px}

/* Tooltip & popover */
.inf-tip-anchor{position:relative;display:inline-flex}
.inf-tooltip{position:absolute;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);padding:6px 8px;background:var(--navy-900);color:#fff;border-radius:var(--radius-sm);font:500 12px/16px var(--font-sans);white-space:nowrap;z-index:var(--z-tooltip);box-shadow:var(--shadow-md);pointer-events:none;animation:inf-fade-in var(--dur-fast) var(--ease-enter)}
.inf-tooltip--bottom{bottom:auto;top:calc(100% + 6px)}
.inf-tooltip kbd{margin-left:6px;padding:1px 4px;border-radius:3px;background:rgba(255,255,255,.14);font:500 11px/1 var(--font-mono)}
[data-theme="dark"] .inf-tooltip{background:#fff;color:var(--navy-900)}
.inf-popover{position:absolute;top:calc(100% + 6px);left:0;min-width:240px;padding:14px;background:var(--surface-overlay);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--elevation-2);z-index:var(--z-dropdown);animation:inf-pop-in var(--dur-base) var(--ease-enter)}
.inf-popover--right{left:auto;right:0}

/* Skeleton & spinner */
.inf-skel{display:block;border-radius:6px;background:linear-gradient(90deg,var(--surface-3) 0,var(--surface-2) 40%,var(--surface-3) 80%) var(--surface-3);background-size:800px 100%;animation:inf-shimmer 1.4s linear infinite}
.inf-skel--text{height:12px}
.inf-skel--title{height:18px;width:40%}
.inf-skel--circle{border-radius:50%}
.inf-spinner{display:inline-block;flex:none;width:var(--s,16px);height:var(--s,16px);border-radius:50%;border:2px solid currentColor;border-right-color:transparent;opacity:.85;animation:inf-spin .7s linear infinite}

/* Notification popup */
.inf-notif{background:var(--surface-overlay);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--elevation-3);overflow:hidden;display:flex;flex-direction:column;max-height:560px;animation:inf-pop-in var(--dur-base) var(--ease-enter);z-index:var(--z-dropdown)}
.inf-notif__head{display:flex;align-items:center;gap:8px;padding:14px 12px 12px 16px;border-bottom:1px solid var(--border-subtle)}
.inf-notif__title{font:600 15px/20px var(--font-display);color:var(--text-strong)}
.inf-notif__list{overflow:auto;padding:6px;display:flex;flex-direction:column;gap:2px}
.inf-notif__item{position:relative;display:flex;gap:12px;padding:10px 12px;border-radius:12px;transition:background var(--dur-instant)}
.inf-notif__item:hover{background:var(--surface-2)}
.inf-notif__item[data-unread="true"]{background:var(--aqua-25)}
.inf-notif__item[data-unread="true"]::after{content:"";position:absolute;top:14px;right:12px;width:7px;height:7px;border-radius:2px;background:var(--accent)}
.inf-notif__icon{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--surface-3);color:var(--text-secondary)}
.inf-notif__icon[data-tone="brand"]{background:var(--accent-subtle);color:var(--accent-fg)}
.inf-notif__icon[data-tone="ai"]{background:var(--navy-900);color:#fff}
.inf-notif__icon[data-tone="success"]{background:var(--success-bg);color:var(--success-fg)}
.inf-notif__icon[data-tone="warning"]{background:var(--warning-bg);color:var(--warning-fg)}
.inf-notif__icon[data-tone="danger"]{background:var(--danger-bg);color:var(--danger-fg)}
.inf-notif__icon[data-tone="info"]{background:var(--info-bg);color:var(--info-fg)}
.inf-notif__row{display:flex;align-items:baseline;gap:8px;padding-right:14px}
.inf-notif__name{flex:1;font:600 13px/18px var(--font-sans);color:var(--text-strong)}
.inf-notif__time{font:500 11px/14px var(--font-sans);color:var(--text-tertiary);white-space:nowrap}
.inf-notif__text{font:400 13px/18px var(--font-sans);color:var(--text-secondary);margin-top:1px}
.inf-notif__meta{font:500 11px/16px var(--font-sans);color:var(--text-tertiary);margin-top:2px}
.inf-notif__foot{display:flex;align-items:center;padding:10px 16px;border-top:1px solid var(--border-subtle);background:var(--surface-2)}
[data-theme="dark"] .inf-notif__item[data-unread="true"]{background:rgba(10,126,128,.1)}

/* ---- css/content.css ---- */
/* IDS · Content — avatar, badge, tag/chip, status, attachment, code, kbd */
.inf-avatar{position:relative;flex:none;width:var(--s,32px);height:var(--s,32px);border-radius:50%;display:inline-grid;place-items:center;background:var(--aqua-100);color:var(--aqua-800);font:700 calc(var(--s,32px) * .38)/1 var(--font-sans);letter-spacing:-.01em;user-select:none}
.inf-avatar img{width:100%;height:100%;border-radius:inherit;object-fit:cover}
.inf-avatar--square{border-radius:calc(var(--s,32px) * .26)}
.inf-avatar[data-tone="1"]{background:var(--aqua-100);color:var(--aqua-800)}
.inf-avatar[data-tone="2"]{background:var(--teal-100);color:var(--teal-600)}
.inf-avatar[data-tone="3"]{background:var(--amber-100);color:var(--amber-700)}
.inf-avatar[data-tone="4"]{background:var(--blue-100);color:var(--blue-700)}
.inf-avatar[data-tone="5"]{background:var(--ocean-100);color:var(--ocean-700)}
.inf-avatar[data-tone="6"]{background:var(--navy-900);color:#fff}
.inf-avatar__presence{position:absolute;right:-1px;bottom:-1px;width:calc(var(--s,32px) * .3);height:calc(var(--s,32px) * .3);min-width:8px;min-height:8px;border-radius:50%;border:2px solid var(--surface-1);background:var(--presence-offline)}
.inf-avatar__presence[data-status="online"]{background:var(--presence-online)}
.inf-avatar__presence[data-status="busy"]{background:var(--presence-busy)}
.inf-avatar__presence[data-status="away"]{background:var(--presence-away)}
.inf-avatar-group{display:inline-flex;align-items:center}
.inf-avatar-group .inf-avatar{box-shadow:0 0 0 2px var(--surface-1);margin-left:calc(var(--s,32px) * -.28)}
.inf-avatar-group .inf-avatar:first-child{margin-left:0}
.inf-avatar-group .inf-avatar--more{background:var(--surface-3);color:var(--text-secondary);font-size:calc(var(--s,32px) * .32)}

/* Badge — counts and short status */
.inf-badge{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:18px;height:18px;padding:0 6px;border-radius:5px;font:700 11px/1 var(--font-sans);font-variant-numeric:tabular-nums;white-space:nowrap;background:var(--neutral-bg);color:var(--neutral-fg)}
.inf-badge--brand{background:var(--accent);color:#fff}
.inf-badge--danger{background:var(--danger-solid);color:#fff}
.inf-badge--ink{background:var(--navy-900);color:#fff}
.inf-badge--outline{background:transparent;box-shadow:inset 0 0 0 1px var(--border-default)}
.inf-badge--lg{height:22px;padding:0 8px;font-size:12px;border-radius:6px}

/* Tag (status / category label) */
.inf-tag{flex:none;display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:var(--radius-sm);font:600 12px/1 var(--font-sans);white-space:nowrap;background:var(--neutral-bg);color:var(--neutral-fg);max-width:100%}
.inf-tag--sm{height:18px;padding:0 6px;font-size:11px;gap:4px;border-radius:5px}
.inf-tag--lg{height:26px;padding:0 10px;font-size:13px}
.inf-tag--brand{background:var(--accent-subtle);color:var(--accent-fg)}
.inf-tag--success{background:var(--success-bg);color:var(--success-fg)}
.inf-tag--warning{background:var(--warning-bg);color:var(--warning-fg)}
.inf-tag--danger{background:var(--danger-bg);color:var(--danger-fg)}
.inf-tag--info{background:var(--info-bg);color:var(--info-fg)}
.inf-tag--ai{background:var(--ai-bg);color:var(--ai-fg);box-shadow:inset 0 0 0 1px var(--ai-border)}
.inf-tag--ink{background:var(--navy-900);color:#fff}
.inf-tag--outline{background:transparent;box-shadow:inset 0 0 0 1px var(--border-default);color:var(--text-secondary)}
.inf-tag__dot{width:6px;height:6px;border-radius:1.5px;background:currentColor;flex:none}
.inf-tag__x{display:inline-grid;place-items:center;width:16px;height:16px;margin-right:-4px;border:0;border-radius:4px;background:none;color:inherit;opacity:.6;cursor:pointer;padding:0}
.inf-tag__x:hover{opacity:1;background:rgba(0,0,0,.06)}

/* Chip (filter / selectable) */
.inf-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1px solid var(--border-default);border-radius:999px;background:var(--surface-1);font:600 13px/1 var(--font-sans);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:var(--motion-hover)}
.inf-chip:hover{border-color:var(--border-strong);color:var(--text-primary)}
.inf-chip[aria-pressed="true"]{background:var(--selected-bg);border-color:var(--aqua-300);color:var(--selected-fg)}
.inf-chip__value{color:var(--text-strong)}
.inf-chip--dashed{border-style:dashed}

/* Status indicator — the core square */
.inf-status{display:inline-flex;align-items:center;gap:8px;font:500 13px/18px var(--font-sans);color:var(--text-primary);white-space:nowrap}
.inf-status__sq{width:8px;height:8px;border-radius:2px;flex:none;background:var(--neutral-solid)}
.inf-status[data-tone="success"] .inf-status__sq{background:var(--success-solid)}
.inf-status[data-tone="warning"] .inf-status__sq{background:var(--warning-solid)}
.inf-status[data-tone="danger"] .inf-status__sq{background:var(--danger-solid)}
.inf-status[data-tone="info"] .inf-status__sq{background:var(--info-solid)}
.inf-status[data-tone="brand"] .inf-status__sq{background:var(--accent)}
.inf-status[data-pulse="true"] .inf-status__sq{animation:inf-pulse-core 1.4s var(--ease-standard) infinite}

/* Attachment */
.inf-attach{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 8px;min-width:0;background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:var(--motion-hover)}
.inf-attach:hover{border-color:var(--border-strong)}
.inf-attach__icon{flex:none;width:34px;height:38px;display:grid;place-items:center;border-radius:6px;background:var(--accent-subtle);color:var(--accent-fg);font:800 9px/1 var(--font-sans);letter-spacing:.04em;position:relative}
.inf-attach__icon[data-kind="pdf"]{background:var(--red-50);color:var(--red-700)}
.inf-attach__icon[data-kind="xls"],.inf-attach__icon[data-kind="csv"]{background:var(--green-50);color:var(--green-700)}
.inf-attach__icon[data-kind="doc"]{background:var(--blue-50);color:var(--blue-700)}
.inf-attach__icon[data-kind="img"]{background:var(--amber-50);color:var(--amber-700)}
.inf-attach__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.inf-attach__name{font:600 13px/18px var(--font-sans);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inf-attach__meta{font:400 12px/16px var(--font-sans);color:var(--text-tertiary)}
.inf-attach__bar{height:3px;border-radius:2px;background:var(--surface-3);overflow:hidden;margin-top:4px}
.inf-attach__bar i{display:block;height:100%;background:var(--accent);border-radius:2px}
.inf-attach--compact{padding:4px 8px 4px 4px;gap:8px;border-radius:var(--radius-sm)}
.inf-attach--compact .inf-attach__icon{width:24px;height:24px;font-size:7px;border-radius:4px}

/* Code block — always on navy, regardless of theme */
.inf-code{background:var(--navy-950);color:#E2EEF0;border-radius:var(--radius-lg);overflow:hidden;font:var(--type-code)}
.inf-code__head{display:flex;align-items:center;gap:8px;height:38px;padding:0 8px 0 14px;border-bottom:1px solid rgba(255,255,255,.08);font:500 12px/1 var(--font-sans);color:rgba(255,255,255,.6)}
.inf-code__head .inf-btn--ghost{color:rgba(255,255,255,.6)}
.inf-code__head .inf-btn--ghost:hover{background:rgba(255,255,255,.08);color:#fff}
.inf-code pre{margin:0;padding:14px 16px;overflow:auto;font:inherit;counter-reset:ln}
.inf-code__ln{display:block}
.inf-code--numbered .inf-code__ln::before{counter-increment:ln;content:counter(ln);display:inline-block;width:2.2em;margin-right:12px;text-align:right;color:rgba(255,255,255,.28)}
.inf-code .tk-k{color:#8FE2DB}.inf-code .tk-s{color:#8EE3B5}.inf-code .tk-n{color:#F5B54A}.inf-code .tk-c{color:rgba(255,255,255,.4)}.inf-code .tk-p{color:#7DB0FA}
.inf-inline-code{padding:1px 5px;border-radius:4px;background:var(--surface-3);font:500 .9em/1 var(--font-mono);color:var(--text-strong)}

/* Kbd */
.inf-kbd{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:5px;background:var(--surface-1);box-shadow:inset 0 0 0 1px var(--border-default),0 1px 0 var(--border-default);font:600 11px/1 var(--font-sans);color:var(--text-secondary)}

/* Logo */
.inf-logo{display:inline-flex;align-items:center;flex:none}
.inf-logo img{height:100%;width:auto}
.inf-logo__dark{display:none}
[data-theme="dark"] .inf-logo__light{display:none}
[data-theme="dark"] .inf-logo__dark{display:block}
