/* ── theme tokens (generated by darkify) ── */
:root {
  --tm-bd-0e1b2c: #0e1b2c;
  --tm-bd-0f6e78: #0f6e78;
  --tm-bd-12805c: #12805c;
  --tm-bd-1f5a64: #1f5a64;
  --tm-bd-2b4763: #2b4763;
  --tm-bd-4f46e5: #4f46e5;
  --tm-bd-7a2f1d: #7a2f1d;
  --tm-bd-a5f3fc: #a5f3fc;
  --tm-bd-a7f3d0: #a7f3d0;
  --tm-bd-b5ddcd: #b5ddcd;
  --tm-bd-b8c5c7: #b8c5c7;
  --tm-bd-bae6fd: #bae6fd;
  --tm-bd-bbf7d0: #bbf7d0;
  --tm-bd-bfdbfe: #bfdbfe;
  --tm-bd-bfe3d2: #bfe3d2;
  --tm-bd-c7d2fe: #c7d2fe;
  --tm-bd-c9d6d8: #c9d6d8;
  --tm-bd-dfe7e8: #dfe7e8;
  --tm-bd-e2e8f0: #e2e8f0;
  --tm-bd-e9d5ff: #e9d5ff;
  --tm-bd-eef3f3: #eef3f3;
  --tm-bd-f1f5f9: #f1f5f9;
  --tm-bd-f3d9a8: #f3d9a8;
  --tm-bd-f4c3ae: #f4c3ae;
  --tm-bd-f6c6c0: #f6c6c0;
  --tm-bd-f8fafc: #f8fafc;
  --tm-bd-fde68a: #fde68a;
  --tm-bd-fecaca: #fecaca;
  --tm-bd-fecdd3: #fecdd3;
  --tm-bd-fed7aa: #fed7aa;
  --tm-bd-fee2e2: #fee2e2;
  --tm-bg-047857: #047857;
  --tm-bg-0a5960: #0a5960;
  --tm-bg-0b1f24: #0b1f24;
  --tm-bg-0f6e4a: #0f6e4a;
  --tm-bg-0f6e78: #0f6e78;
  --tm-bg-10b981: #10b981;
  --tm-bg-12343b: #12343b;
  --tm-bg-12805c: #12805c;
  --tm-bg-13414a: #13414a;
  --tm-bg-1d4ed8: #1d4ed8;
  --tm-bg-1e4fb8: #1e4fb8;
  --tm-bg-2b4763: #2b4763;
  --tm-bg-4338ca: #4338ca;
  --tm-bg-475569: #475569;
  --tm-bg-4a1d13: #4a1d13;
  --tm-bg-4f46e5: #4f46e5;
  --tm-bg-5fd3c8: #5fd3c8;
  --tm-bg-6366f1: #6366f1;
  --tm-bg-6d28d9: #6d28d9;
  --tm-bg-8a5a00: #8a5a00;
  --tm-bg-b23a0b: #b23a0b;
  --tm-bg-b45309: #b45309;
  --tm-bg-bae6fd: #bae6fd;
  --tm-bg-bbf7d0: #bbf7d0;
  --tm-bg-be123c: #be123c;
  --tm-bg-c2410c: #c2410c;
  --tm-bg-c7d2fe: #c7d2fe;
  --tm-bg-cbd5e1: #cbd5e1;
  --tm-bg-d1fae5: #d1fae5;
  --tm-bg-dbeafe: #dbeafe;
  --tm-bg-dcfce7: #dcfce7;
  --tm-bg-e0eeee: #e0eeee;
  --tm-bg-e0f2fe: #e0f2fe;
  --tm-bg-e11d48: #e11d48;
  --tm-bg-e2e8f0: #e2e8f0;
  --tm-bg-e6f4ee: #e6f4ee;
  --tm-bg-e6f4ef: #e6f4ef;
  --tm-bg-e7eceb: #e7eceb;
  --tm-bg-ecfdf5: #ecfdf5;
  --tm-bg-ecfeff: #ecfeff;
  --tm-bg-ede9fe: #ede9fe;
  --tm-bg-eef2f7: #eef2f7;
  --tm-bg-eef2ff: #eef2ff;
  --tm-bg-ef4444: #ef4444;
  --tm-bg-eff6ff: #eff6ff;
  --tm-bg-f0f9ff: #f0f9ff;
  --tm-bg-f0fdf4: #f0fdf4;
  --tm-bg-f1f5f9: #f1f5f9;
  --tm-bg-f3f6f6: #f3f6f6;
  --tm-bg-f3f9f9: #f3f9f9;
  --tm-bg-f59e0b: #f59e0b;
  --tm-bg-f8fafc: #f8fafc;
  --tm-bg-faf5ff: #faf5ff;
  --tm-bg-fafafa: #fafafa;
  --tm-bg-fafbfb: #fafbfb;
  --tm-bg-fbfcfc: #fbfcfc;
  --tm-bg-fde8e6: #fde8e6;
  --tm-bg-fdede6: #fdede6;
  --tm-bg-fdf1dc: #fdf1dc;
  --tm-bg-fecaca: #fecaca;
  --tm-bg-fee2e2: #fee2e2;
  --tm-bg-fef2f2: #fef2f2;
  --tm-bg-fef3c7: #fef3c7;
  --tm-bg-fef9c3: #fef9c3;
  --tm-bg-ffe4e6: #ffe4e6;
  --tm-bg-fff1f2: #fff1f2;
  --tm-bg-fff7ed: #fff7ed;
  --tm-bg-fff8f8: #fff8f8;
  --tm-bg-fffbeb: #fffbeb;
  --tm-bg-ffffff: #ffffff;
  --tm-fg-0369a1: #0369a1;
  --tm-fg-047857: #047857;
  --tm-fg-065f46: #065f46;
  --tm-fg-075985: #075985;
  --tm-fg-0b1f24: #0b1f24;
  --tm-fg-0b5c3c: #0b5c3c;
  --tm-fg-0e1b2c: #0e1b2c;
  --tm-fg-0e7490: #0e7490;
  --tm-fg-0f172a: #0f172a;
  --tm-fg-0f4f56: #0f4f56;
  --tm-fg-0f6e4a: #0f6e4a;
  --tm-fg-0f6e78: #0f6e78;
  --tm-fg-10b981: #10b981;
  --tm-fg-12805c: #12805c;
  --tm-fg-15263a: #15263a;
  --tm-fg-15803d: #15803d;
  --tm-fg-166534: #166534;
  --tm-fg-1d4ed8: #1d4ed8;
  --tm-fg-1e293b: #1e293b;
  --tm-fg-1e3a8a: #1e3a8a;
  --tm-fg-1f2937: #1f2937;
  --tm-fg-1f2f3a: #1f2f3a;
  --tm-fg-2b3d4f: #2b3d4f;
  --tm-fg-2d5a73: #2d5a73;
  --tm-fg-334155: #334155;
  --tm-fg-33444d: #33444d;
  --tm-fg-374151: #374151;
  --tm-fg-38bdf8: #38bdf8;
  --tm-fg-4338ca: #4338ca;
  --tm-fg-475569: #475569;
  --tm-fg-4f46e5: #4f46e5;
  --tm-fg-4f5f68: #4f5f68;
  --tm-fg-5b6b70: #5b6b70;
  --tm-fg-6366f1: #6366f1;
  --tm-fg-64748b: #64748b;
  --tm-fg-6b21a8: #6b21a8;
  --tm-fg-78350f: #78350f;
  --tm-fg-7a4a00: #7a4a00;
  --tm-fg-7c2d12: #7c2d12;
  --tm-fg-7c3aed: #7c3aed;
  --tm-fg-8a5a00: #8a5a00;
  --tm-fg-8fa3af: #8fa3af;
  --tm-fg-92400e: #92400e;
  --tm-fg-94a3b8: #94a3b8;
  --tm-fg-991b1b: #991b1b;
  --tm-fg-9b1c12: #9b1c12;
  --tm-fg-9ee2e0: #9ee2e0;
  --tm-fg-9f1239: #9f1239;
  --tm-fg-9fb0b6: #9fb0b6;
  --tm-fg-9fb3bf: #9fb3bf;
  --tm-fg-b23a0b: #b23a0b;
  --tm-fg-b45309: #b45309;
  --tm-fg-b91c1c: #b91c1c;
  --tm-fg-be123c: #be123c;
  --tm-fg-c2410c: #c2410c;
  --tm-fg-c9d3d1: #c9d3d1;
  --tm-fg-c9d4d8: #c9d4d8;
  --tm-fg-c9dadc: #c9dadc;
  --tm-fg-cbd5e1: #cbd5e1;
  --tm-fg-dc2626: #dc2626;
  --tm-fg-e0a63a: #e0a63a;
  --tm-fg-e4eae9: #e4eae9;
  --tm-fg-e6eef0: #e6eef0;
  --tm-fg-e7eceb: #e7eceb;
  --tm-fg-ef4444: #ef4444;
  --tm-fg-f59e0b: #f59e0b;
  --tm-fg-fbc4ae: #fbc4ae;
  --tm-fg-fde68a: #fde68a;
  --tm-fg-ffffff: #ffffff;
}
.dark {
  --tm-bd-0e1b2c: #0e1b2c;
  --tm-bd-0f6e78: #0f6e78;
  --tm-bd-12805c: #12805c;
  --tm-bd-1f5a64: #1f5a64;
  --tm-bd-2b4763: #2b4763;
  --tm-bd-4f46e5: #4f46e5;
  --tm-bd-7a2f1d: #7a2f1d;
  --tm-bd-a5f3fc: #215d63;
  --tm-bd-a7f3d0: #246145;
  --tm-bd-b5ddcd: #345145;
  --tm-bd-b8c5c7: #334155;
  --tm-bd-bae6fd: #214d63;
  --tm-bd-bbf7d0: #236239;
  --tm-bd-bfdbfe: #213f63;
  --tm-bd-bfe3d2: #335243;
  --tm-bd-c7d2fe: #212e63;
  --tm-bd-c9d6d8: #334155;
  --tm-bd-dfe7e8: #334155;
  --tm-bd-e2e8f0: #36404f;
  --tm-bd-e9d5ff: #412163;
  --tm-bd-eef3f3: #1e293b;
  --tm-bd-f1f5f9: #324252;
  --tm-bd-f3d9a8: #604c24;
  --tm-bd-f4c3ae: #613624;
  --tm-bd-f6c6c0: #602b24;
  --tm-bd-f8fafc: #1e293b;
  --tm-bd-fde68a: #635621;
  --tm-bd-fecaca: #632121;
  --tm-bd-fecdd3: #632129;
  --tm-bd-fed7aa: #634521;
  --tm-bd-fee2e2: #632121;
  --tm-bg-047857: #047857;
  --tm-bg-0a5960: #0a5960;
  --tm-bg-0b1f24: #0b1f24;
  --tm-bg-0f6e4a: #0f6e4a;
  --tm-bg-0f6e78: #0f6e78;
  --tm-bg-10b981: #10b981;
  --tm-bg-12343b: #12343b;
  --tm-bg-12805c: #12805c;
  --tm-bg-13414a: #13414a;
  --tm-bg-1d4ed8: #1d4ed8;
  --tm-bg-1e4fb8: #1e4fb8;
  --tm-bg-2b4763: #2b4763;
  --tm-bg-4338ca: #222131;
  --tm-bg-475569: #475569;
  --tm-bg-4a1d13: #4a1d13;
  --tm-bg-4f46e5: #1f1e34;
  --tm-bg-5fd3c8: #21312f;
  --tm-bg-6366f1: #1d1d35;
  --tm-bg-6d28d9: #271f33;
  --tm-bg-8a5a00: #8a5a00;
  --tm-bg-b23a0b: #b23a0b;
  --tm-bg-b45309: #b45309;
  --tm-bg-bae6fd: #1c2d36;
  --tm-bg-bbf7d0: #1e3425;
  --tm-bg-be123c: #be123c;
  --tm-bg-c2410c: #c2410c;
  --tm-bg-c7d2fe: #1c2136;
  --tm-bg-cbd5e1: #25282d;
  --tm-bg-d1fae5: #1d3429;
  --tm-bg-dbeafe: #1c2736;
  --tm-bg-dcfce7: #1d3525;
  --tm-bg-e0eeee: #252d2d;
  --tm-bg-e0f2fe: #1c2b36;
  --tm-bg-e11d48: #e11d48;
  --tm-bg-e2e8f0: #24282d;
  --tm-bg-e6f4ee: #232e2a;
  --tm-bg-e6f4ef: #232e2a;
  --tm-bg-e7eceb: #334155;
  --tm-bg-ecfdf5: #1d3429;
  --tm-bg-ecfeff: #1c3436;
  --tm-bg-ede9fe: #211c36;
  --tm-bg-eef2f7: #24282e;
  --tm-bg-eef2ff: #1c2236;
  --tm-bg-ef4444: #351d1d;
  --tm-bg-eff6ff: #1c2736;
  --tm-bg-f0f9ff: #1e293b;
  --tm-bg-f0fdf4: #1e3425;
  --tm-bg-f1f5f9: #23292f;
  --tm-bg-f3f6f6: #1e293b;
  --tm-bg-f3f9f9: #242e2e;
  --tm-bg-f59e0b: #362c1c;
  --tm-bg-f8fafc: #0f172a;
  --tm-bg-faf5ff: #0f172a;
  --tm-bg-fafafa: #0f172a;
  --tm-bg-fafbfb: #0f172a;
  --tm-bg-fbfcfc: #0f172a;
  --tm-bg-fde8e6: #351f1d;
  --tm-bg-fdede6: #35241d;
  --tm-bg-fdf1dc: #362c1c;
  --tm-bg-fecaca: #361c1c;
  --tm-bg-fee2e2: #361c1c;
  --tm-bg-fef2f2: #1e293b;
  --tm-bg-fef3c7: #36311c;
  --tm-bg-fef9c3: #36341c;
  --tm-bg-ffe4e6: #361c1e;
  --tm-bg-fff1f2: #1e293b;
  --tm-bg-fff7ed: #362a1c;
  --tm-bg-fff8f8: #0f172a;
  --tm-bg-fffbeb: #36311c;
  --tm-bg-ffffff: #0f172a;
  --tm-fg-0369a1: #41b9fb;
  --tm-fg-047857: #43f9c5;
  --tm-fg-065f46: #49f3c4;
  --tm-fg-075985: #47b8f5;
  --tm-fg-0b1f24: #69bed3;
  --tm-fg-0b5c3c: #52eaae;
  --tm-fg-0e1b2c: #6997d3;
  --tm-fg-0e7490: #4ecbee;
  --tm-fg-0f172a: #6988d3;
  --tm-fg-0f4f56: #5ad5e2;
  --tm-fg-0f6e4a: #54e8b0;
  --tm-fg-0f6e78: #53dbe9;
  --tm-fg-10b981: #4df0ba;
  --tm-fg-12805c: #55e7b7;
  --tm-fg-15263a: #699ad3;
  --tm-fg-15803d: #59e48d;
  --tm-fg-166534: #60dc8f;
  --tm-fg-1d4ed8: #547be8;
  --tm-fg-1e293b: #6991d3;
  --tm-fg-1e3a8a: #6080dc;
  --tm-fg-1f2937: #6995d3;
  --tm-fg-1f2f3a: #69a8d3;
  --tm-fg-2b3d4f: #699ed3;
  --tm-fg-2d5a73: #69add3;
  --tm-fg-334155: #e2e8f0;
  --tm-fg-33444d: #e2e8f0;
  --tm-fg-374151: #e2e8f0;
  --tm-fg-38bdf8: #44c1f8;
  --tm-fg-4338ca: #6e66d6;
  --tm-fg-475569: #cbd5e1;
  --tm-fg-4f46e5: #5d55e7;
  --tm-fg-4f5f68: #cbd5e1;
  --tm-fg-5b6b70: #cbd5e1;
  --tm-fg-6366f1: #6366f1;
  --tm-fg-64748b: #cbd5e1;
  --tm-fg-6b21a8: #a45ddf;
  --tm-fg-78350f: #e98953;
  --tm-fg-7a4a00: #ffb33d;
  --tm-fg-7c2d12: #e67b56;
  --tm-fg-7c3aed: #894def;
  --tm-fg-8a5a00: #ffbc3d;
  --tm-fg-8fa3af: #7c8ba1;
  --tm-fg-92400e: #ee8b4e;
  --tm-fg-94a3b8: #7c8ba1;
  --tm-fg-991b1b: #e25a5a;
  --tm-fg-9b1c12: #eb5d51;
  --tm-fg-9ee2e0: #9de3e1;
  --tm-fg-9f1239: #eb517c;
  --tm-fg-9fb0b6: #7c8ba1;
  --tm-fg-9fb3bf: #7c8ba1;
  --tm-fg-b23a0b: #f47948;
  --tm-fg-b45309: #f69246;
  --tm-fg-b91c1c: #e65757;
  --tm-fg-be123c: #ee4e75;
  --tm-fg-c2410c: #f47a48;
  --tm-fg-c9d3d1: #7c8ba1;
  --tm-fg-c9d4d8: #7c8ba1;
  --tm-fg-c9dadc: #7c8ba1;
  --tm-fg-cbd5e1: #bfd4ed;
  --tm-fg-dc2626: #e45858;
  --tm-fg-e0a63a: #e5b358;
  --tm-fg-e4eae9: #e4eae9;
  --tm-fg-e6eef0: #e6eef0;
  --tm-fg-e7eceb: #e7eceb;
  --tm-fg-ef4444: #f04c4c;
  --tm-fg-f59e0b: #f7b545;
  --tm-fg-fbc4ae: #fbc4ae;
  --tm-fg-fde68a: #fde68a;
  --tm-fg-ffffff: #ffffff;
}
/* ── end theme tokens ── */

/*
 * TideStat panel theme overrides (Filament v4, light mode).
 * Loaded from AdminPanelProvider via the panels::head.end render hook.
 * Goal: every surface has a visible edge — cards, card headers, table
 * headers and rows are separated by borders, so text never sits loose on
 * the canvas.
 */
:root {
    /* Nautical theme — chart ink, tide teal, buoy orange (mockup: TideStat UI Redesign). */
    --tm-font: 'Archivo', ui-sans-serif, system-ui, sans-serif;
    --tm-mono: 'IBM Plex Mono', ui-monospace, monospace;
    --tm-ink: #0e1b2c;
    --tm-ink-2: #172a40;
    --tm-ink-line: #22384f;
    --tm-tide: #0f6e78;
    --tm-tide-light: #5fc4c9;
    --tm-buoy: #c2410c;
    --tm-canvas: #e4eae9;
    --tm-surface: #ffffff;
    --tm-surface-sunken: #f3f6f5;
    --tm-border: #c9d3d1;
    --tm-divider: #dde4e2;
    --tm-row: #eef2f1;
    --tm-text-muted: #4d5f6b;
    --tm-shadow: 0 1px 2px rgba(14, 27, 44, .06), 0 6px 16px -8px rgba(14, 27, 44, .18);
    --tm-gap: 1.25rem;
    /* Text roles: ink and tide are also dark-sidebar / button backgrounds, so text gets its own tokens. */
    --tm-text: var(--tm-ink);
    --tm-tide-text: var(--tm-tide);
}

/* Dark mode (Filament adds .dark to <html>). Matches Filament's slate dark theme;
   the sidebar keeps its own ink colours in both modes. */
.dark {
    --tm-canvas: #0b1220;
    --tm-surface: #0f172a;
    --tm-surface-sunken: #162033;
    --tm-border: #334155;
    --tm-divider: #1e293b;
    --tm-row: #131c2e;
    --tm-text-muted: #94a3b8;
    --tm-text: #e2e8f0;
    --tm-tide-text: #5fc4c9;
    --tm-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 6px 16px -8px rgba(0, 0, 0, .6);
}

body, .fi-sidebar, .fi-topbar, [class*="fi-"] { font-family: var(--tm-font) !important; }
/* Numbers read best in a mono face. */
.fi-wi-stats-overview-stat-value, .fi-ta-text-item-label.tabular, .tm-mono { font-family: var(--tm-mono) !important; }

/* ── Canvas & chrome ─────────────────────────────────────────────────── */
body, .fi-body, .fi-main-ctn, .fi-main { background-color: var(--tm-canvas) !important; }

.fi-topbar, .fi-topbar > div {
    background-color: var(--tm-surface) !important;
    border-bottom: 1px solid var(--tm-border) !important;
}

/* Brand (logo view: resources/views/filament/brand.blade.php) */
.tm-brand { display: inline-flex; align-items: center; gap: .55rem; color: var(--tm-text); }
.tm-brand-mark { width: 1.6rem; height: 1.6rem; color: var(--tm-tide-text); }
.tm-brand-name { font-weight: 750; font-stretch: 112%; font-size: 1.1rem; letter-spacing: -.01em; }

/* Sidebar: chart-ink panel, light text, light pill for the active item. */
.fi-sidebar { background-color: var(--tm-ink) !important; border-right: 1px solid var(--tm-ink-line) !important; }
.fi-sidebar-header { background-color: var(--tm-ink) !important; border-bottom: 1px solid var(--tm-ink-line) !important; box-shadow: none !important; }
.fi-sidebar .tm-brand, .fi-sidebar .tm-brand-name { color: var(--tm-fg-e7eceb); }
.fi-sidebar .tm-brand-mark { color: var(--tm-tide-light); }
.fi-sidebar-nav { background: transparent !important; }
.fi-sidebar-nav-groups { gap: 0 !important; }
.fi-sidebar-group + .fi-sidebar-group,
.fi-sidebar-item + .fi-sidebar-group { border-top: 1px solid var(--tm-ink-line); margin-top: .5rem; padding-top: .75rem; }
.fi-sidebar-item-btn { border-radius: .45rem !important; }
.fi-sidebar-item-label, .fi-sidebar-item-icon, .fi-sidebar-group-btn, .fi-sidebar-group-label,
.fi-sidebar-group-collapse-btn, .fi-sidebar-group-dropdown-trigger-btn, .fi-sidebar .fi-icon-btn { color: var(--tm-fg-c9d4d8) !important; }
.fi-sidebar-group-label {
    font-size: .68rem !important; font-weight: 650 !important; color: var(--tm-fg-8fa3af) !important;
    text-transform: uppercase; letter-spacing: .1em; font-stretch: 85%;
}
.fi-sidebar-item-btn:hover, .fi-sidebar-item-btn:focus-visible { background-color: var(--tm-ink-2) !important; }
.fi-sidebar-item.fi-active > .fi-sidebar-item-btn { background-color: var(--tm-bg-e7eceb) !important; }
.fi-sidebar-item.fi-active .fi-sidebar-item-label, .fi-sidebar-item.fi-active .fi-sidebar-item-icon { color: var(--tm-text) !important; font-weight: 650; }
.fi-sidebar-item-grouped-border-part { background-color: var(--tm-ink-line) !important; }
.fi-sidebar .fi-badge { font-family: var(--tm-mono); }
/* Tenant switcher sits on the ink panel too. */
.fi-sidebar .fi-tenant-menu-trigger, .fi-sidebar .fi-tenant-menu-trigger * { color: var(--tm-fg-e7eceb) !important; }
.fi-sidebar .fi-tenant-menu-trigger { background: var(--tm-ink-2) !important; border: 1px solid var(--tm-bd-2b4763) !important; border-radius: .5rem; }

/* Page header sits on its own rule line above the content. */
.fi-page-header-main-ctn { border-bottom: 1px solid var(--tm-border); padding-bottom: 1.25rem; margin-bottom: 0.25rem; }

/* ── Cards ───────────────────────────────────────────────────────────── */
.fi-section:not(.fi-section-not-contained),
.fi-ta-ctn,
.fi-wi-stats-overview-stat {
    background-color: var(--tm-surface) !important;
    border: 1px solid var(--tm-border) !important;
    border-radius: 0.75rem !important;
    box-shadow: var(--tm-shadow) !important;
    overflow: hidden;
}

/* Card headers: tinted bar with a divider underneath. */
.fi-section:not(.fi-section-not-contained) > .fi-section-header,
.fi-ta-header-ctn {
    background-color: var(--tm-surface-sunken) !important;
    border-bottom: 1px solid var(--tm-divider) !important;
}
.fi-section-header-heading, .fi-ta-header-heading { font-weight: 650 !important; letter-spacing: -0.005em; }

/* ── Tables ──────────────────────────────────────────────────────────── */
.fi-ta-header-cell, .fi-ta-actions-header-cell, .fi-ta-empty-header-cell {
    background-color: var(--tm-surface-sunken) !important;
    border-bottom: 1px solid var(--tm-border) !important;
}
.fi-ta-header-cell, .fi-ta-header-cell button, .fi-ta-header-cell span {
    font-size: 0.7rem !important; font-weight: 650 !important;
    text-transform: uppercase; letter-spacing: 0.06em; color: var(--tm-text-muted) !important;
}
.fi-ta-row + .fi-ta-row { border-top: 1px solid var(--tm-divider) !important; }
.fi-ta-row:hover { background-color: var(--tm-bg-f8fafc) !important; }
.fi-ta-ctn .fi-pagination, .fi-ta-footer-ctn { border-top: 1px solid var(--tm-divider) !important; }

/* ── Stats ───────────────────────────────────────────────────────────── */
.fi-wi-stats-overview { gap: 1rem !important; }
.fi-wi-stats-overview-stat-label {
    font-size: 0.72rem !important; font-weight: 650 !important;
    text-transform: uppercase; letter-spacing: 0.07em; color: var(--tm-text-muted) !important;
}
.fi-wi-stats-overview-stat-value { font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.fi-wi-stats-overview-stat-description { border-top: 1px solid var(--tm-divider); padding-top: 0.5rem; margin-top: 0.25rem; }

/* Widget grid spacing */
.fi-wi { gap: var(--tm-gap) !important; }

/* ── Plan bar (dashboard) ────────────────────────────────────────────── */
.tm-planbar {
    display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.25rem;
    background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: 0.75rem;
    box-shadow: var(--tm-shadow); padding: 0.625rem 0.875rem;
}
.tm-planbar-badge {
    font-size: 0.7rem; font-weight: 750; text-transform: uppercase; letter-spacing: 0.08em;
    color: var(--tm-fg-ffffff); background: var(--tm-bg-475569); border-radius: 999px; padding: 0.3rem 0.75rem; white-space: nowrap;
}
.tm-plan-starter { background: var(--tm-bg-1d4ed8); } .tm-plan-growth { background: var(--tm-bg-047857); } .tm-plan-agency { background: var(--tm-bg-6d28d9); }
.tm-planbar-price { font-weight: 600; opacity: 0.85; margin-left: 0.25rem; text-transform: none; letter-spacing: 0; }
.tm-planbar-stats { display: flex; flex-wrap: wrap; margin: 0; flex: 1 1 420px; min-width: 0; }
.tm-planbar-stats > div { display: flex; flex-direction: column; padding: 0 1rem; border-left: 1px solid var(--tm-divider); }
.tm-planbar-stats > div:first-child { border-left: 0; padding-left: 0.25rem; }
.tm-planbar-stats dt { font-size: 0.65rem; font-weight: 650; text-transform: uppercase; letter-spacing: 0.07em; color: var(--tm-text-muted); }
.tm-planbar-stats dd { margin: 0; font-size: 0.85rem; font-weight: 600; color: var(--tm-fg-0f172a); font-variant-numeric: tabular-nums; }
.tm-planbar-locked {
    display: inline-flex; align-items: center; gap: 0.35rem; min-height: 2.25rem; padding: 0 0.75rem;
    font-size: 0.8rem; font-weight: 600; color: var(--tm-fg-334155); background: var(--tm-surface-sunken);
    border: 1px solid var(--tm-border); border-radius: 0.5rem; cursor: pointer;
}
.tm-planbar-locked:hover { background: var(--tm-bg-eef2f7); }
.tm-planbar-icon { width: 1rem; height: 1rem; }
.tm-planbar-cta {
    min-height: 2.25rem; padding: 0 1rem; font-size: 0.8rem; font-weight: 700; color: var(--tm-fg-ffffff);
    background: var(--primary-600, var(--tm-bg-4f46e5)); border: 0; border-radius: 0.5rem; cursor: pointer;
}
.tm-planbar-cta:hover { background: var(--primary-700, var(--tm-bg-4338ca)); }

/* ── 30-day uptime bars (Sites table) ────────────────────────────────── */
.tm-uptime { display: flex; align-items: center; gap: 0.6rem; }
.tm-uptime-bars { display: flex; align-items: flex-end; gap: 2px; height: 1.4rem; }
.tm-uptime-bar { display: block; width: 4px; border-radius: 1px; }
.tm-uptime-up { height: 100%; background: var(--tm-bg-10b981); }
.tm-uptime-degraded { height: 70%; background: var(--tm-bg-f59e0b); }
.tm-uptime-down { height: 45%; background: var(--tm-bg-e11d48); }
.tm-uptime-none { height: 30%; background: var(--tm-bg-cbd5e1); }
.tm-uptime-pct { font-size: 0.8rem; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--tm-fg-0f172a); min-width: 3.5rem; }

/* ── Top issues widget ───────────────────────────────────────────────── */
.tm-issues { list-style: none; margin: -0.5rem -1.5rem; padding: 0; }
.tm-issues > li + li { border-top: 1px solid var(--tm-divider); }
.tm-issue { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.75rem 1.5rem; }
.tm-issue:hover { background: var(--tm-bg-f8fafc); }
.tm-issue-body { display: flex; flex-direction: column; gap: 0.15rem; min-width: 0; flex: 1; text-decoration: none; color: inherit; }
a.tm-issue-body:hover .tm-issue-title { text-decoration: underline; }
.tm-issue-title { font-size: 0.875rem; font-weight: 600; color: var(--tm-fg-0f172a); }
.tm-issue-meta { font-size: 0.75rem; color: var(--tm-text-muted); }
.tm-issue-detail { font-size: 0.75rem; color: var(--tm-fg-64748b); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tm-sev {
    flex: none; font-size: 0.62rem; font-weight: 750; letter-spacing: 0.06em; text-transform: uppercase;
    padding: 0.2rem 0.45rem; border-radius: 0.35rem; color: var(--tm-fg-ffffff); margin-top: 0.1rem;
}
.tm-sev-critical { background: var(--tm-bg-be123c); }
.tm-sev-warning { background: var(--tm-bg-b45309); }
.tm-sev-opportunity { background: var(--tm-bg-1d4ed8); }
.tm-empty { display: flex; align-items: center; gap: 0.6rem; color: var(--tm-text-muted); font-size: 0.875rem; }
.tm-empty-icon { width: 1.5rem; height: 1.5rem; color: var(--tm-fg-10b981); }
.tm-muted { margin: 0; font-size: 0.8rem; color: var(--tm-text-muted); }

/* ── What changed widget ─────────────────────────────────────────────── */
.tm-change-site + .tm-change-site { border-top: 1px solid var(--tm-divider); margin-top: 1rem; padding-top: 1rem; }
.tm-change-name { font-size: 0.875rem; font-weight: 650; margin-bottom: 0.6rem; }
.tm-change-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); gap: 0.5rem; margin: 0 0 0.6rem; }
.tm-change { border: 1px solid var(--tm-divider); border-radius: 0.5rem; padding: 0.5rem 0.65rem; background: var(--tm-surface-sunken); }
.tm-change dt { font-size: 0.65rem; font-weight: 650; text-transform: uppercase; letter-spacing: 0.07em; color: var(--tm-text-muted); }
.tm-change dd { margin: 0.15rem 0 0; display: flex; align-items: baseline; gap: 0.4rem; }
.tm-change-value { font-size: 1.25rem; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--tm-fg-0f172a); }
.tm-delta { font-size: 0.72rem; font-weight: 650; }
.tm-delta-up { color: var(--tm-fg-047857); } .tm-delta-down { color: var(--tm-fg-be123c); } .tm-delta-flat, .tm-delta-none { color: var(--tm-fg-64748b); font-weight: 500; }
.tm-change-new { display: flex; align-items: center; gap: 0.5rem; font-size: 0.8rem; color: var(--tm-fg-334155); }

/* Fix-list tabs, actions and lifecycle pills */
.tm-tabs { display: flex; gap: 0.25rem; margin: -0.25rem 0 0.75rem; border-bottom: 1px solid var(--tm-divider); }
.tm-tab {
    display: inline-flex; align-items: center; gap: 0.35rem; min-height: 2.25rem; padding: 0 0.75rem;
    font-size: 0.8rem; font-weight: 600; color: var(--tm-text-muted); background: none; border: 0;
    border-bottom: 2px solid transparent; margin-bottom: -1px; cursor: pointer;
}
.tm-tab-active { color: var(--tm-fg-0f172a); border-bottom-color: var(--primary-600, var(--tm-bd-4f46e5)); }
.tm-tab-count { font-size: 0.7rem; font-variant-numeric: tabular-nums; background: var(--tm-surface-sunken); border: 1px solid var(--tm-divider); border-radius: 999px; padding: 0 0.4rem; }
.tm-issue-actions { display: flex; gap: 0.35rem; flex: none; }
.tm-btn {
    min-height: 2rem; padding: 0 0.65rem; font-size: 0.75rem; font-weight: 600; color: var(--tm-fg-0f172a);
    background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: 0.4rem; cursor: pointer;
}
.tm-btn:hover { background: var(--tm-surface-sunken); }
.tm-btn-quiet { border-color: transparent; color: var(--tm-text-muted); }
.tm-btn[disabled] { opacity: 0.5; cursor: wait; }
.tm-pill { margin-left: 0.35rem; font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; padding: 0.1rem 0.4rem; border-radius: 999px; vertical-align: middle; }
.tm-pill-regressed { background: var(--tm-bg-ffe4e6); color: var(--tm-fg-9f1239); border: 1px solid var(--tm-bd-fecdd3); }
.tm-pill-pending { background: var(--tm-bg-e0f2fe); color: var(--tm-fg-075985); border: 1px solid var(--tm-bd-bae6fd); }
.tm-sev-resolved { background: var(--tm-bg-047857); }
.tm-issues-more { margin-top: 0.75rem; }

/* Impact area chip in the fix list — what fixing the issue improves. */
.tm-area { display: inline-block; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; padding: 0.05rem 0.4rem; border-radius: 0.3rem; margin-right: 0.35rem; border: 1px solid; }
.tm-area-indexing { color: var(--tm-fg-9f1239); background: var(--tm-bg-fff1f2); border-color: var(--tm-bd-fecdd3); }
.tm-area-ranking { color: var(--tm-fg-1e3a8a); background: var(--tm-bg-eff6ff); border-color: var(--tm-bd-bfdbfe); }
.tm-area-click-through { color: var(--tm-fg-6b21a8); background: var(--tm-bg-faf5ff); border-color: var(--tm-bd-e9d5ff); }
.tm-area-experience { color: var(--tm-fg-065f46); background: var(--tm-bg-ecfdf5); border-color: var(--tm-bd-a7f3d0); }
.tm-area-sharing { color: var(--tm-fg-475569); background: var(--tm-bg-f8fafc); border-color: var(--tm-bd-e2e8f0); }
.tm-area-ai-search { color: var(--tm-fg-0e7490); background: var(--tm-bg-ecfeff); border-color: var(--tm-bd-a5f3fc); }

/* Layout helper: widget root with class tm-row-span-2 spans two grid rows (lg+). */
@media (min-width: 1024px) {
    /* v4 renders widgets straight into a .fi-grid (no .fi-wi wrapper). */
    .fi-grid > .tm-row-span-2 { grid-row: span 2; }
}

/* ══ Redesign v2 components ══════════════════════════════════════════ */
.tm-kicker { font-size: .66rem; font-weight: 650; text-transform: uppercase; letter-spacing: .09em; font-stretch: 85%; color: var(--tm-text-muted); }
.tm-kicker-light { color: var(--tm-fg-9fb3bf); }
.tm-small { font-size: .75rem; }
.tm-strong { font-weight: 650; }
.tm-pad-top { margin-top: .6rem; }
.tm-num { text-align: right; font-family: var(--tm-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.tm-tone-good { color: var(--tm-fg-0f6e4a); } .tm-tone-warn { color: var(--tm-fg-8a5a00); } .tm-tone-bad { color: var(--tm-fg-b23a0b); } .tm-tone-muted { color: var(--tm-text-muted); }
.tm-delta-flat { color: var(--tm-text-muted); }

/* KPI strip: dial cell on ink + ruled cells */
.tm-strip {
    display: grid; grid-template-columns: minmax(220px, 1.3fr) repeat(5, minmax(140px, 1fr));
    background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: .75rem; overflow: hidden; box-shadow: var(--tm-shadow);
}
@media (max-width: 1200px) { .tm-strip { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); } }
.tm-strip-dial { display: flex; gap: .85rem; align-items: center; padding: .85rem 1rem; background: var(--tm-ink); color: var(--tm-fg-e7eceb); }
.tm-dial {
    --tm-pct: 0%; width: 60px; height: 60px; border-radius: 50%; flex: none; display: grid; place-items: center;
    background: conic-gradient(var(--tm-tide-light) 0 var(--tm-pct), var(--tm-bg-2b4763) var(--tm-pct) 100%);
}
.tm-dial span { width: 46px; height: 46px; border-radius: 50%; background: var(--tm-ink); display: grid; place-items: center; font-family: var(--tm-mono); font-weight: 600; font-size: 1.05rem; }
.tm-dial-text { display: flex; flex-direction: column; gap: .1rem; }
.tm-dial-title { font-weight: 650; }
.tm-dial-note { font-size: .72rem; color: var(--tm-tide-light); }
.tm-strip-cell { display: flex; flex-direction: column; gap: .2rem; padding: .85rem 1rem; border-left: 1px solid var(--tm-divider); }
.tm-strip-value { font-family: var(--tm-mono); font-size: 1.45rem; font-weight: 600; letter-spacing: -.02em; color: var(--tm-text); }
.tm-strip-note { font-size: .75rem; border-top: 1px solid var(--tm-row); padding-top: .3rem; }

/* Plan bar v2: ink badge cell + ruled stat cells */
.tm-planbar { padding: 0 !important; gap: 0 !important; align-items: stretch !important; overflow: hidden; }
.tm-planbar-badge { display: flex; align-items: center; border-radius: 0 !important; padding: .55rem 1rem !important; background: var(--tm-ink) !important; font-family: var(--tm-mono); }
.tm-planbar-stats > div { padding: .45rem 1rem !important; border-left: 1px solid var(--tm-divider) !important; justify-content: center; }
.tm-planbar-stats > div:first-child { padding-left: 1rem !important; }
.tm-planbar-stats dd { font-family: var(--tm-mono); }
.tm-planbar-locked, .tm-planbar-cta { margin: .45rem .5rem .45rem 0; align-self: center; }
.tm-planbar-locked { margin-left: auto; }
.tm-planbar-cta { background: var(--tm-tide) !important; }

/* Ruled tables inside sections */
.tm-table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.tm-table caption { text-align: left; padding: .6rem 0 .3rem; }
.tm-table th { font-size: .66rem; font-weight: 650; text-transform: uppercase; letter-spacing: .07em; color: var(--tm-text-muted); text-align: left; padding: .4rem .5rem; background: var(--tm-surface-sunken); border-bottom: 1px solid var(--tm-divider); }
.tm-table th.tm-num { text-align: right; }
.tm-table td { padding: .45rem .5rem; border-bottom: 1px solid var(--tm-row); vertical-align: top; }
.tm-table tr:last-child td { border-bottom: 0; }

/* Search & traffic metric cells */
.tm-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: -.25rem -1.5rem .25rem; border-bottom: 1px solid var(--tm-divider); }
.tm-metric { display: flex; flex-direction: column; gap: .25rem; padding: .5rem 1.5rem .75rem; border-right: 1px solid var(--tm-row); }
.tm-metric:last-child { border-right: 0; }
.tm-metric-value { font-family: var(--tm-mono); font-size: 1.15rem; font-weight: 600; }
.tm-spark { width: 100%; height: 26px; }
.tm-spark polyline { stroke: var(--tm-tide-text); stroke-width: 2; stroke-linejoin: round; }

/* Section headers on dashboard widgets read like the mockup */
.fi-wi .fi-section-header { padding-top: .6rem !important; padding-bottom: .6rem !important; }
.fi-wi .fi-section-header-heading { font-size: .92rem !important; }

/* Buttons in the primary colour use the deep tide teal with white text */
.fi-btn.fi-color-primary:not(.fi-btn-outlined) { background-color: var(--tm-tide) !important; color: var(--tm-fg-ffffff) !important; }

/* ── Fix list page ───────────────────────────────────────────────────── */
.tm-fix { display: flex; flex-direction: column; gap: 1rem; }
.tm-fix-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: .75rem; }
.tm-fix-tabs { margin: 0; flex: 1 1 auto; }
.tm-fix-summary { display: flex; border: 1px solid var(--tm-border); border-radius: .5rem; background: var(--tm-surface); overflow: hidden; font-size: .8rem; }
.tm-fix-summary > span { padding: .4rem .75rem; border-left: 1px solid var(--tm-divider); }
.tm-fix-summary > span:first-child { border-left: 0; }
.tm-fix-summary strong { font-family: var(--tm-mono); }
.tm-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.tm-chip { min-height: 2rem; padding: 0 .75rem; border-radius: .4rem; font-size: .78rem; font-weight: 600; background: var(--tm-surface); color: var(--tm-text); border: 1px solid var(--tm-border); cursor: pointer; }
.tm-chip-on { background: var(--tm-ink); color: var(--tm-fg-ffffff); border-color: var(--tm-text); }
.tm-card { background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: .75rem; overflow: hidden; box-shadow: var(--tm-shadow); }
.tm-scroll { overflow-x: auto; }
.tm-fix-table { min-width: 980px; }
.tm-fix-table td { padding: .6rem .75rem; border-left: 1px solid var(--tm-row); }
.tm-fix-table td:first-child, .tm-fix-table th:first-child { padding-left: 1rem; border-left: 0; }
.tm-fix-table th { padding: .55rem .75rem; border-bottom-color: var(--tm-border); }
.tm-fix-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin-top: .25rem; }
.tm-fix-detail { margin-top: .5rem; padding: .6rem .75rem; background: var(--tm-surface-sunken); border: 1px solid var(--tm-divider); border-radius: .4rem; font-size: .8rem; }
.tm-fix-detail p { margin: 0 0 .35rem; }
.tm-row-regressed td { background: var(--tm-bg-fff8f8); }
.tm-brief { margin-top: .75rem; padding-top: .75rem; border-top: 1px dashed var(--tm-divider); }
.tm-brief-card { background: var(--tm-bg-ffffff); border: 1px solid var(--tm-border); border-radius: .6rem; padding: 1rem 1.1rem 1.05rem; box-shadow: 0 1px 2px rgba(14,27,44,.05); }
.tm-brief-head { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin-bottom: .7rem; }
.tm-brief-tag { font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--tm-fg-ffffff); background: var(--tm-ink); padding: .18rem .55rem; border-radius: 999px; }
.tm-brief-chip { font-size: .68rem; font-weight: 600; color: var(--tm-fg-33444d); background: var(--tm-surface-sunken); border: 1px solid var(--tm-divider); padding: .14rem .5rem; border-radius: 999px; }
.tm-brief-chip-high { color: var(--tm-fg-0b5c3c); background: var(--tm-bg-e6f4ee); border-color: var(--tm-bd-bfe3d2); }
.tm-brief-chip-medium { color: var(--tm-fg-7a4a00); background: var(--tm-bg-fdf1dc); border-color: var(--tm-bd-f3d9a8); }
.tm-brief-chip-low { color: var(--tm-fg-9b1c12); background: var(--tm-bg-fde8e6); border-color: var(--tm-bd-f6c6c0); }
.tm-brief-date { margin-left: auto; font-size: .7rem; color: var(--tm-text-muted); }
.tm-brief-summary { margin: 0 0 .8rem; font-size: .92rem; font-weight: 700; line-height: 1.45; color: var(--tm-text); }
.tm-brief-section { margin: 0 0 .85rem; }
.tm-brief-section p { margin: 0; font-size: .82rem; line-height: 1.55; color: var(--tm-fg-33444d); }
.tm-brief-label { font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; color: var(--tm-tide-text); margin-bottom: .3rem; }
.tm-brief-steps { margin: 0; padding: 0; list-style: none; counter-reset: tmstep; display: flex; flex-direction: column; gap: .45rem; }
.tm-brief-steps li { counter-increment: tmstep; position: relative; padding-left: 1.85rem; font-size: .82rem; line-height: 1.5; color: var(--tm-fg-1f2f3a); }
.tm-brief-steps li::before { content: counter(tmstep); position: absolute; left: 0; top: .02rem; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: var(--tm-bg-e0eeee); color: var(--tm-tide-text); font-size: .68rem; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.tm-brief-warning { margin: 0 0 .8rem; padding: .45rem .65rem; font-size: .75rem; color: var(--tm-fg-7c2d12); background: var(--tm-bg-fff7ed); border: 1px solid var(--tm-bd-fed7aa); border-radius: .4rem; }
.tm-brief-block { margin: 0 0 .7rem; border: 1px solid var(--tm-border); border-radius: .5rem; background: var(--tm-bg-ffffff); overflow: hidden; }
.tm-brief-block-head { display: flex; justify-content: space-between; align-items: center; padding: .35rem .6rem .35rem .75rem; border-bottom: 1px solid var(--tm-divider); background: var(--tm-surface-sunken); }
.tm-brief-block-head .tm-brief-label { margin: 0; color: var(--tm-fg-4f5f68); }
.tm-brief-copy { font: inherit; font-size: .7rem; font-weight: 600; color: var(--tm-tide-text); background: var(--tm-bg-ffffff); border: 1px solid var(--tm-border); border-radius: .35rem; padding: .25rem .65rem; cursor: pointer; }
.tm-brief-copy:hover { border-color: var(--tm-tide); }
.tm-brief-block pre { margin: 0; padding: .7rem .8rem; font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: .74rem; line-height: 1.6; white-space: pre-wrap; word-break: break-word; max-height: 18rem; overflow: auto; color: var(--tm-fg-0e1b2c); background: var(--tm-bg-fbfcfc); }
.tm-brief-block pre.tm-brief-copytext { font-family: inherit; font-size: .82rem; }
.tm-brief-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem; margin-top: .9rem; padding-top: .75rem; border-top: 1px solid var(--tm-divider); font-size: .72rem; color: var(--tm-text-muted); }
.tm-brief-regen { border: 1px solid var(--tm-border); background: var(--tm-bg-ffffff); color: var(--tm-text); font-weight: 600; }
.tm-brief-regen:hover { border-color: var(--tm-tide); color: var(--tm-tide-text); }
.tm-actions-cell { text-align: right; white-space: nowrap; }
.tm-btn-primary { background: var(--tm-tide); color: var(--tm-fg-ffffff); border-color: var(--tm-tide); }
.tm-btn-primary:hover { background: var(--tm-bg-0a5960); }
.tm-status { font-size: .65rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: .15rem .5rem; border-radius: 999px; border: 1px solid; white-space: nowrap; }
.tm-status-open { color: var(--tm-text-muted); background: var(--tm-surface-sunken); border-color: var(--tm-divider); }
.tm-status-regressed { color: var(--tm-fg-9f1239); background: var(--tm-bg-ffe4e6); border-color: var(--tm-bd-fecdd3); }
.tm-status-fixed { color: var(--tm-fg-075985); background: var(--tm-bg-e0f2fe); border-color: var(--tm-bd-bae6fd); }
.tm-status-resolved { color: var(--tm-fg-0f6e4a); background: var(--tm-bg-e6f4ef); border-color: var(--tm-bd-b5ddcd); }
.tm-status-ignored { color: var(--tm-fg-475569); background: var(--tm-bg-f8fafc); border-color: var(--tm-bd-e2e8f0); }
.tm-sev-resolved { background: var(--tm-bg-047857); }
.tm-pad-top-xs { margin-top: .25rem; }
.tm-empty-row { text-align: center; padding: 1.75rem !important; color: var(--tm-text-muted); }
.tm-link { font-size: .8rem; font-weight: 600; color: var(--tm-tide-text); text-decoration: none; }
.tm-link:hover { text-decoration: underline; }

/* Cards in the same dashboard row share a height, so row bottoms line up
   instead of leaving ragged canvas beside a shorter card. */
@media (min-width: 1024px) {
    .fi-grid > .fi-wi-widget { display: flex; flex-direction: column; }
    /* Only stretch the card containers — never a widget's own layout (strip, plan bar). */
    .fi-grid > .fi-wi-widget > .fi-section,
    .fi-grid > .fi-wi-widget > .fi-ta { flex: 1 1 auto; }
    .fi-grid > .fi-wi-widget > .fi-ta { display: flex; flex-direction: column; }
    .fi-grid > .fi-wi-widget > .fi-ta > .fi-ta-ctn { flex: 1 1 auto; }
}

/* ── Site health (redesign) ──────────────────────────────────────────── */
.tm-hero { position: relative; overflow: hidden; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem;
    background: var(--tm-ink); color: var(--tm-fg-e7eceb); border-radius: .75rem; padding: 1rem 1.25rem; margin-bottom: 1.25rem; box-shadow: var(--tm-shadow); }
.tm-hero-waves { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .35; stroke: var(--tm-fg-2d5a73); stroke-width: 1; pointer-events: none; }
.tm-hero-main { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.tm-hero-pill { display: inline-flex; align-items: center; gap: .4rem; background: var(--tm-bg-13414a); color: var(--tm-fg-9ee2e0); border: 1px solid var(--tm-bd-1f5a64); border-radius: 999px; padding: .2rem .7rem; font-size: .75rem; font-weight: 650; }
.tm-hero-pill-down { background: var(--tm-bg-4a1d13); color: var(--tm-fg-fbc4ae); border-color: var(--tm-bd-7a2f1d); }
.tm-hero-dot { width: .4rem; height: .4rem; border-radius: 50%; background: currentColor; }
.tm-hero-url { color: var(--tm-fg-ffffff); font-weight: 650; text-decoration: none; }
.tm-hero-url:hover { text-decoration: underline; }
.tm-hero-meta { color: var(--tm-fg-9fb3bf); font-size: .78rem; }
.tm-hero-dial { position: relative; display: flex; align-items: center; gap: .75rem; }

.tm-scorestrip { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    background: var(--tm-surface); border: 1px solid var(--tm-border); border-radius: .75rem; overflow: hidden; box-shadow: var(--tm-shadow); margin-bottom: 1.25rem; }
/* Score cells are twice as wide as vital cells: 3 scores fill a row of 6. */
.tm-scorestrip .tm-score { grid-column: span 2; }
@media (max-width: 640px) { .tm-scorestrip .tm-score { grid-column: auto; } }
.tm-score, .tm-vital { padding: .75rem .9rem; border-right: 1px solid var(--tm-divider); border-bottom: 1px solid var(--tm-row); }
.tm-score { display: flex; align-items: center; gap: .7rem; }
.tm-score-text { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.tm-ring { --tm-pct: 0%; --tm-ring: #94a3b8; width: 50px; height: 50px; border-radius: 50%; flex: none; display: grid; place-items: center;
    background: conic-gradient(var(--tm-ring) 0 var(--tm-pct), var(--tm-divider) var(--tm-pct) 100%); }
.tm-ring span { width: 38px; height: 38px; border-radius: 50%; background: var(--tm-bg-ffffff); display: grid; place-items: center; font-family: var(--tm-mono); font-weight: 600; }
.tm-vital { display: flex; flex-direction: column; gap: .15rem; }
.tm-vital-value { font-family: var(--tm-mono); font-size: 1.1rem; font-weight: 600; color: var(--tm-text); }
.tm-vital-value.tm-tone-good { color: var(--tm-fg-0f6e4a); } .tm-vital-value.tm-tone-warn { color: var(--tm-fg-8a5a00); } .tm-vital-value.tm-tone-bad { color: var(--tm-fg-b23a0b); }

.tm-checks { margin-bottom: 1.25rem; }
.tm-card-head { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .6rem 1.25rem; background: var(--tm-surface-sunken); border-bottom: 1px solid var(--tm-border); }
.tm-card-head h2 { margin: 0; font-size: .92rem; font-weight: 680; }
.tm-area-tabs { display: flex; flex-wrap: wrap; border-bottom: 1px solid var(--tm-divider); background: var(--tm-bg-fafbfb); }
.tm-area-tab { display: inline-flex; align-items: center; gap: .4rem; min-height: 2.5rem; padding: 0 1rem; font-size: .82rem; font-weight: 600; color: var(--tm-text-muted);
    background: none; border: 0; border-right: 1px solid var(--tm-divider); border-bottom: 2px solid transparent; margin-bottom: -1px; cursor: pointer; }
.tm-area-tab-on { background: var(--tm-bg-ffffff); color: var(--tm-text); border-bottom-color: var(--tm-tide-text); }
.tm-count { font-family: var(--tm-mono); font-size: .7rem; padding: 0 .4rem; border-radius: 999px; border: 1px solid var(--tm-bd-b5ddcd); background: var(--tm-bg-e6f4ef); color: var(--tm-fg-0f6e4a); }
.tm-count-bad { border-color: var(--tm-bd-f4c3ae); background: var(--tm-bg-fdede6); color: var(--tm-fg-b23a0b); }
.tm-checks-table td { padding: .55rem .75rem; }
.tm-checks-table td:first-child { padding-left: 1.25rem; width: 1.5rem; }
.tm-checks-table td:last-child { padding-right: 1.25rem; border-left: 1px solid var(--tm-row); width: 9rem; }
.tm-check { display: inline-grid; place-items: center; width: 1.15rem; height: 1.15rem; border-radius: 50%; color: var(--tm-fg-ffffff); font-size: .7rem; font-weight: 700; }
.tm-check-pass { background: var(--tm-bg-0f6e4a); } .tm-check-critical { background: var(--tm-bg-b23a0b); } .tm-check-warning { background: var(--tm-bg-8a5a00); } .tm-check-opportunity { background: var(--tm-bg-1e4fb8); }

/* Platform panel: brand suffix + impersonation banner */
.tm-brand-suffix { margin-left: .4rem; font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: .62rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--tm-fg-ffffff); background: var(--tm-bg-c2410c); padding: .12rem .45rem; border-radius: 999px; }
.tm-impersonating { position: sticky; top: 0; z-index: 50; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .5rem 1rem; padding: .55rem 1rem; background: var(--tm-bg-c2410c); color: var(--tm-fg-ffffff); font-size: .85rem; font-weight: 600; }
.tm-impersonating button { font: inherit; font-weight: 700; color: var(--tm-fg-c2410c); background: var(--tm-bg-ffffff); border: 0; border-radius: .4rem; padding: .3rem .8rem; cursor: pointer; }
.tm-impersonating button:focus-visible { outline: 3px solid var(--tm-bd-0e1b2c); outline-offset: 2px; }

/* ── No top bar (panel ->topbar(false)): user menu and search live in the ink sidebar ── */
.fi-sidebar .fi-user-menu-trigger { color: var(--tm-fg-e7eceb) !important; border-radius: .5rem; }
.fi-sidebar .fi-user-menu-trigger:hover { background-color: var(--tm-ink-2) !important; }
.fi-sidebar .fi-user-menu-trigger-text, .fi-sidebar .fi-user-menu-trigger .fi-icon { color: var(--tm-fg-e7eceb) !important; }
.fi-sidebar .fi-input-wrp { background-color: var(--tm-ink-2) !important; border-color: var(--tm-bd-2b4763) !important; }
.fi-sidebar .fi-input-wrp input { color: var(--tm-fg-e7eceb) !important; }
.fi-sidebar .fi-input-wrp input::placeholder, .fi-sidebar .fi-input-wrp .fi-icon { color: var(--tm-fg-8fa3af) !important; }

/* Site health tiles that open their report. */
a.tm-tile-link { color: inherit; text-decoration: none; cursor: pointer; transition: background-color .15s; }
a.tm-tile-link:hover { background-color: var(--tm-surface-sunken, var(--tm-bg-f3f6f6)); }
a.tm-tile-link:hover .tm-strong, a.tm-tile-link:hover .tm-kicker { color: var(--tm-tide-text); }
a.tm-tile-link:focus-visible { outline: 2px solid var(--tm-tide); outline-offset: -2px; }

/* Sidebar foot plan summary (resources/views/filament/sidebar-plan.blade.php). */
.tm-side-plan { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .5rem; margin: 1rem .25rem .25rem; padding: .6rem .75rem; border: 1px solid var(--tm-bd-2b4763); border-radius: .6rem; background: var(--tm-ink-2); color: var(--tm-fg-c9d4d8); font-size: .75rem; text-decoration: none; }
.tm-side-plan:hover { border-color: var(--tm-tide-light); }
.tm-side-plan-badge { font-family: var(--tm-mono); font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--tm-text); background: var(--tm-bg-e7eceb); padding: .1rem .4rem; border-radius: .3rem; }
.tm-side-plan-usage { font-family: var(--tm-mono); color: var(--tm-fg-e7eceb); }
.tm-side-plan-link { flex-basis: 100%; color: var(--tm-tide-light); font-weight: 600; }
