/* ═══════════════════════════════════════════════════════
   FUTURE GRADE SUPPORT — FILAMENT GLASS THEME  v2
   Drop this file in: public/css/filament-glass.css
   Auto-loaded via AdminPanelProvider renderHook.
   ═══════════════════════════════════════════════════════ */

/* ─── 0. TOKENS ──────────────────────────────────────── */
:root {
    --fg-bg:      #060810;
    --fg-sf:      rgba(22,34,62,.80);
    --fg-sf2:     rgba(26,40,72,.90);
    --fg-bd:      rgba(255,255,255,.10);
    --fg-bd2:     rgba(255,255,255,.18);
    --fg-tx:      #eaf0ff;
    --fg-tx2:     #a0b0cc;
    --fg-tx3:     #6070a0;
    --fg-blue:    #5b8df7;
    --fg-blum:    #3a72f4;
    --fg-green:   #1ed47a;
    --fg-yellow:  #f5be30;
    --fg-red:     #f25252;
    --fg-purple:  #b76ef7;
    --fg-orange:  #fd8136;
    --fg-blur:    blur(20px) saturate(160%);
    --fg-blur-lg: blur(36px) saturate(180%);
}

/* ─── 1. GRADIENT CANVAS — targets real body element ─── */
html, body {
    background-color: var(--fg-bg) !important;
    color-scheme: dark !important;
}

body::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse at 16% 20%, rgba(91,141,247,.20) 0%, transparent 52%),
        radial-gradient(ellipse at 84% 80%, rgba(183,110,247,.16) 0%, transparent 52%),
        radial-gradient(ellipse at 72% 6%,  rgba(30,212,122,.08) 0%, transparent 40%),
        radial-gradient(ellipse at 8%  85%, rgba(253,129,54,.07)  0%, transparent 38%);
}

/* Filament wraps everything in fi-layout — keep it above the orbs */
.fi-layout,
.fi-panel-layout,
.fi-simple-layout {
    position: relative;
    z-index: 1;
    background: transparent !important;
}

/* Transparent pass-throughs */
.fi-body,
.fi-page,
.fi-main,
.fi-resource-relation-manager {
    background: transparent !important;
}

/* ─── 2. SIDEBAR ─────────────────────────────────────── */
.fi-sidebar {
    background: rgba(2,4,12,.96) !important;
    backdrop-filter: var(--fg-blur-lg) !important;
    -webkit-backdrop-filter: var(--fg-blur-lg) !important;
    border-right: 1px solid rgba(255,255,255,.08) !important;
    box-shadow: none !important;
}

.fi-sidebar-header {
    background: transparent !important;
    border-bottom: 1px solid rgba(255,255,255,.07) !important;
    padding: 14px !important;
}

/* Brand link — flex row so logo pill and text are side-by-side */
.fi-sidebar-header a {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    text-decoration: none !important;
}

/* Inject "FG" gradient logo before the brand text */
.fi-sidebar-header a::before {
    content: 'FG' !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    background: linear-gradient(135deg, #5b8df7, #9b5cf6) !important;
    border-radius: 8px !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    color: #fff !important;
    flex-shrink: 0 !important;
    box-shadow: 0 4px 14px rgba(91,141,247,.35) !important;
}

/* Brand name text */
.fi-logo,
.fi-brand-name {
    font-size: 12.5px !important;
    font-weight: 700 !important;
    color: #eaf0ff !important;
    letter-spacing: -.01em !important;
    line-height: 1.3 !important;
}

.fi-sidebar-nav {
    background: transparent !important;
}

/* Nav items */
.fi-sidebar-item-button {
    border-radius: 8px !important;
    margin-bottom: 1px !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    color: rgba(255,255,255,.62) !important;
    transition: background .14s, color .14s !important;
    background: transparent !important;
}

.fi-sidebar-item-button:hover {
    background: rgba(255,255,255,.08) !important;
    color: rgba(255,255,255,.92) !important;
}

/* Active: Filament uses aria-current="page" on list pages,
   and bg-gray-100 class on sub-pages (view/edit) of that resource */
.fi-sidebar-item-button[aria-current="page"],
.fi-sidebar-item-button.bg-gray-100,
.fi-sidebar-item.fi-active .fi-sidebar-item-button {
    background: rgba(91,141,247,.20) !important;
    color: #a8c4ff !important;
    font-weight: 600 !important;
}

/* Icon color on active */
.fi-sidebar-item-button[aria-current="page"] svg,
.fi-sidebar-item.fi-active svg {
    color: #5b8df7 !important;
}

/* Group labels */
.fi-sidebar-group-label {
    font-size: 9.5px !important;
    font-weight: 700 !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
    color: rgba(255,255,255,.38) !important;
    padding: 10px 10px 4px !important;
}

/* ─── 3. TOPBAR ──────────────────────────────────────── */
.fi-topbar {
    background: rgba(4,8,20,.88) !important;
    backdrop-filter: blur(24px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
    box-shadow: none !important;
}

.fi-topbar-start,
.fi-topbar-end,
.fi-topbar nav {
    background: transparent !important;
}

/* User avatar in topbar */
.fi-user-avatar {
    background: linear-gradient(135deg, #3a72f4, #8b3af4) !important;
}

/* ─── 4. PAGE HEADER & BREADCRUMBS ───────────────────── */
.fi-header-heading {
    font-size: 22px !important;
    font-weight: 800 !important;
    letter-spacing: -.03em !important;
    color: #eaf0ff !important;
}

.fi-header-subheading {
    color: var(--fg-tx3) !important;
    font-size: 12px !important;
}

.fi-breadcrumbs li span,
.fi-breadcrumbs li a {
    color: rgba(255,255,255,.42) !important;
    font-size: 11.5px !important;
}

.fi-breadcrumbs li a:hover {
    color: var(--fg-blue) !important;
}

/* ─── 5. STATS OVERVIEW WIDGET ───────────────────────── */
.fi-wi-stats-overview {
    gap: 14px !important;
}

.fi-wi-stats-overview-stat {
    background: var(--fg-sf) !important;
    backdrop-filter: var(--fg-blur) !important;
    -webkit-backdrop-filter: var(--fg-blur) !important;
    border: 1px solid var(--fg-bd) !important;
    border-radius: 14px !important;
    box-shadow: none !important;
    position: relative !important;
    overflow: hidden !important;
    transition: border-color .2s, transform .2s !important;
}

.fi-wi-stats-overview-stat:hover {
    border-color: var(--fg-bd2) !important;
    transform: translateY(-2px) !important;
}

/* Colored top accent bar — default blue */
.fi-wi-stats-overview-stat::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 3px !important;
    background: var(--fg-blue) !important;
    border-radius: 14px 14px 0 0 !important;
}

/* Accent bar per color — uses Filament's icon color classes */
.fi-wi-stats-overview-stat:has(.text-success-400)::before,
.fi-wi-stats-overview-stat:has(.text-success-600)::before {
    background: var(--fg-green) !important;
}

.fi-wi-stats-overview-stat:has(.text-warning-400)::before,
.fi-wi-stats-overview-stat:has(.text-warning-600)::before {
    background: var(--fg-yellow) !important;
}

.fi-wi-stats-overview-stat:has(.text-danger-400)::before,
.fi-wi-stats-overview-stat:has(.text-danger-600)::before {
    background: var(--fg-red) !important;
}

/* Stat label */
.fi-wi-stats-overview-stat-label {
    font-size: 10px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .07em !important;
    color: var(--fg-tx2) !important;
}

/* Stat value — big bold number */
.fi-wi-stats-overview-stat-value {
    font-size: 26px !important;
    font-weight: 800 !important;
    letter-spacing: -.03em !important;
    line-height: 1.1 !important;
    color: var(--fg-tx) !important;
    font-variant-numeric: tabular-nums !important;
}

/* Color the value to match the accent */
.fi-wi-stats-overview-stat:has(.text-success-400) .fi-wi-stats-overview-stat-value {
    color: var(--fg-green) !important;
}

.fi-wi-stats-overview-stat:has(.text-warning-400) .fi-wi-stats-overview-stat-value {
    color: var(--fg-yellow) !important;
}

.fi-wi-stats-overview-stat:has(.text-danger-400) .fi-wi-stats-overview-stat-value {
    color: var(--fg-red) !important;
}

.fi-wi-stats-overview-stat:has(.text-primary-400) .fi-wi-stats-overview-stat-value {
    color: var(--fg-blue) !important;
}

/* Stat description */
.fi-wi-stats-overview-stat-description {
    font-size: 11px !important;
    color: var(--fg-tx3) !important;
}

/* Stat icon pill */
.fi-wi-stats-overview-stat-icon-ctn {
    background: rgba(91,141,247,.14) !important;
    border-radius: 8px !important;
    width: 34px !important;
    height: 34px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.fi-wi-stats-overview-stat:has(.text-success-400) .fi-wi-stats-overview-stat-icon-ctn {
    background: rgba(30,212,122,.16) !important;
}

.fi-wi-stats-overview-stat:has(.text-warning-400) .fi-wi-stats-overview-stat-icon-ctn {
    background: rgba(245,190,48,.16) !important;
}

.fi-wi-stats-overview-stat:has(.text-danger-400) .fi-wi-stats-overview-stat-icon-ctn {
    background: rgba(242,82,82,.16) !important;
}

/* ─── 6. SECTIONS / CARDS ────────────────────────────── */
.fi-section {
    background: var(--fg-sf) !important;
    backdrop-filter: var(--fg-blur) !important;
    -webkit-backdrop-filter: var(--fg-blur) !important;
    border: 1px solid var(--fg-bd) !important;
    border-radius: 14px !important;
    box-shadow: none !important;
}

.fi-section-header {
    background: transparent !important;
    border-bottom: 1px solid rgba(255,255,255,.07) !important;
}

.fi-section-header-heading {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--fg-tx) !important;
    letter-spacing: -.01em !important;
}

.fi-section-content,
.fi-section-footer {
    background: transparent !important;
}

/* ─── 7. TABLES ──────────────────────────────────────── */
.fi-ta-ctn {
    background: var(--fg-sf) !important;
    backdrop-filter: var(--fg-blur) !important;
    -webkit-backdrop-filter: var(--fg-blur) !important;
    border: 1px solid var(--fg-bd) !important;
    border-radius: 14px !important;
    box-shadow: none !important;
    overflow: hidden !important;
}

/* Table toolbar */
.fi-ta-header,
.fi-ta-toolbar {
    background: transparent !important;
    border-bottom: 1px solid rgba(255,255,255,.07) !important;
}

/* Column headers */
.fi-table-header-cell {
    background: rgba(0,0,0,.28) !important;
    border-bottom: 1px solid rgba(255,255,255,.07) !important;
    padding: 8px 14px !important;
}

.fi-table-header-cell,
.fi-table-header-cell button,
.fi-table-header-cell span {
    font-size: 10px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .07em !important;
    color: var(--fg-tx2) !important;
}

/* Table rows */
.fi-table-row td {
    color: var(--fg-tx2) !important;
    border-bottom: 1px solid rgba(255,255,255,.05) !important;
    font-size: 12.5px !important;
    padding: 10px 14px !important;
    vertical-align: middle !important;
}

.fi-table-row:last-child td {
    border-bottom: none !important;
}

.fi-table-row:hover td {
    background: rgba(255,255,255,.04) !important;
    color: var(--fg-tx) !important;
    cursor: pointer !important;
}

.fi-table-row[aria-selected="true"] td {
    background: rgba(91,141,247,.10) !important;
}

/* Pagination */
.fi-pagination {
    background: transparent !important;
    border-top: 1px solid rgba(255,255,255,.07) !important;
    color: var(--fg-tx2) !important;
}

.fi-pagination-item-btn {
    color: var(--fg-tx2) !important;
    background: transparent !important;
    border-color: rgba(255,255,255,.12) !important;
}

.fi-pagination-item-btn:hover {
    background: rgba(255,255,255,.07) !important;
    color: var(--fg-tx) !important;
}

/* ══════════════════════════════════════════════
   PLAN CARDS
   ══════════════════════════════════════════════ */
.fg-plans-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 14px;
}
.fg-plan-card {
    background: rgba(18,26,50,.72);
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 18px;
    padding: 20px;
    position: relative;
    backdrop-filter: blur(20px) saturate(160%);
    transition: all .2s;
    overflow: hidden;
}
.fg-plan-card:hover {
    border-color: #5b8df7;
    transform: translateY(-2px);
    box-shadow: 0 8px 32px rgba(0,0,0,.22);
}
.fg-plan-card.fg-featured {
    border-color: #5b8df7;
    background: linear-gradient(135deg, rgba(18,26,50,.72), rgba(91,141,247,.18));
}
.fg-plan-card.fg-featured::before {
    content: 'Most popular';
    position: absolute;
    top: -1px;
    right: 16px;
    background: #5b8df7;
    color: #fff;
    font-size: 9.5px;
    font-weight: 800;
    padding: 3px 10px;
    border-radius: 0 0 8px 8px;
    letter-spacing: .05em;
}
.fg-plan-name {
    font-size: 16px;
    font-weight: 800;
    color: #eaf0ff;
    margin-bottom: 4px;
}
.fg-plan-price {
    font-size: 26px;
    font-weight: 800;
    color: #5b8df7;
    margin-bottom: 14px;
    letter-spacing: -.03em;
    line-height: 1.1;
}
.fg-plan-price span {
    font-size: 13px;
    color: #6070a0;
    font-weight: 400;
}
.fg-plan-feats {
    list-style: none;
    font-size: 12px;
    color: #a0b0cc;
    padding: 0;
    margin: 0;
}
.fg-plan-feats li {
    padding: 4px 0;
    display: flex;
    align-items: flex-start;
    gap: 7px;
}
.fg-plan-feats li::before {
    content: '✓';
    color: #1ed47a;
    font-weight: 800;
    font-size: 11px;
    flex-shrink: 0;
    margin-top: 2px;
}
.fg-plan-footer {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid rgba(255,255,255,.08);
    font-size: 11.5px;
    color: #6070a0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}
.fg-plan-actions a {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 7px;
    font-size: 11.5px;
    font-weight: 500;
    text-decoration: none;
    transition: all .13s;
    background: rgba(255,255,255,.06);
    color: #a0b0cc;
    border: 1px solid rgba(255,255,255,.10);
}
.fg-plan-actions a:hover {
    background: rgba(255,255,255,.12);
    color: #eaf0ff;
}

/* ══════════════════════════════════════════════
   TEAM CARDS
   ══════════════════════════════════════════════ */
.fg-team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 12px;
    padding: 14px;
}
.fg-team-card {
    background: rgba(18,26,50,.72);
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 14px;
    padding: 16px;
    text-align: center;
    backdrop-filter: blur(20px) saturate(160%);
    transition: all .2s;
}
.fg-team-card:hover {
    border-color: rgba(255,255,255,.20);
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0,0,0,.18);
}
.fg-team-av {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    margin: 0 auto 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
    font-weight: 800;
    color: #fff;
}
.fg-team-name {
    font-size: 13px;
    font-weight: 700;
    color: #eaf0ff;
    margin-bottom: 2px;
}
.fg-team-role {
    font-size: 11px;
    color: #6070a0;
    margin-bottom: 11px;
}
.fg-team-stats {
    display: flex;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 8px;
    overflow: hidden;
    font-size: 11px;
}
.fg-ts {
    flex: 1;
    padding: 6px;
    text-align: center;
}
.fg-ts:not(:last-child) {
    border-right: 1px solid rgba(255,255,255,.10);
}
.fg-ts-val {
    font-weight: 700;
    color: #eaf0ff;
    display: block;
    font-size: 13px;
    line-height: 1.3;
}
.fg-ts-lbl {
    color: #6070a0;
    font-size: 9.5px;
}
.fg-team-edit-link {
    display: inline-flex;
    margin-top: 10px;
    padding: 3px 10px;
    border-radius: 7px;
    font-size: 11px;
    font-weight: 500;
    text-decoration: none;
    background: rgba(255,255,255,.06);
    color: #a0b0cc;
    border: 1px solid rgba(255,255,255,.10);
    transition: all .13s;
}
.fg-team-edit-link:hover {
    background: rgba(255,255,255,.12);
    color: #eaf0ff;
}

/* ══════════════════════════════════════════════
   CLIENT USAGE RING
   ══════════════════════════════════════════════ */
.fg-ring-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 0 4px;
}
.fg-ring-wrap {
    position: relative;
    width: 80px;
    height: 80px;
    flex-shrink: 0;
}
.fg-ring-center {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}
.fg-ring-pct {
    font-size: 15px;
    font-weight: 800;
    color: #eaf0ff;
    line-height: 1;
}
.fg-ring-lbl {
    font-size: 9px;
    color: #6070a0;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-top: 2px;
}
.fg-ring-detail { flex: 1; }
.fg-rd-row {
    display: flex;
    justify-content: space-between;
    font-size: 11.5px;
    padding: 3px 0;
}
.fg-rdk { color: #6070a0; }
.fg-rdv { font-weight: 600; color: #eaf0ff; }

/* ══════════════════════════════════════════════
   DASHBOARD CHART WIDGETS
   ══════════════════════════════════════════════ */
.fg-chart-card {
    background: rgba(18,26,50,.72);
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 14px;
    overflow: hidden;
    backdrop-filter: blur(20px) saturate(160%);
}
.fg-chart-hdr {
    padding: 12px 16px;
    border-bottom: 1px solid rgba(255,255,255,.07);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.fg-chart-title {
    font-size: 13px;
    font-weight: 700;
    color: #eaf0ff;
    letter-spacing: -.01em;
}
.fg-chart-sub {
    font-size: 11px;
    color: #6070a0;
}
.fg-mix-legend {
    font-size: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 14px;
}
.fg-mix-row {
    display: flex;
    align-items: center;
    gap: 7px;
}
.fg-mix-dot {
    width: 9px;
    height: 9px;
    border-radius: 2px;
    flex-shrink: 0;
}
.fg-mix-label { color: #a0b0cc; flex: 1; }
.fg-mix-val { font-weight: 700; color: #eaf0ff; }
.fg-mix-total {
    border-top: 1px solid rgba(255,255,255,.08);
    padding-top: 8px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 2px;
}
.fg-mix-total-lbl { color: #6070a0; font-size: 11.5px; font-weight: 600; }
.fg-mix-total-val { font-weight: 800; color: #eaf0ff; font-size: 14px; }

.fi-pagination-item-btn[aria-current="page"] {
    background: rgba(91,141,247,.20) !important;
    color: var(--fg-blue) !important;
    border-color: rgba(91,141,247,.30) !important;
}

/* Empty state */
.fi-ta-empty-state-heading {
    color: var(--fg-tx2) !important;
    font-weight: 700 !important;
}

.fi-ta-empty-state-description {
    color: var(--fg-tx3) !important;
}

/* ─── 8. BADGES ──────────────────────────────────────── */
/* Filament badge base */
.fi-badge {
    font-size: 11px !important;
    font-weight: 600 !important;
    padding: 2px 9px !important;
    border-radius: 99px !important;
    letter-spacing: .01em !important;
}

/* Per-color overrides */
.fi-badge-color-primary,
.fi-badge[class*="primary"] {
    background: rgba(91,141,247,.18) !important;
    color: #8ab4ff !important;
    border-color: rgba(91,141,247,.28) !important;
}

.fi-badge-color-success,
.fi-badge[class*="success"] {
    background: rgba(30,212,122,.16) !important;
    color: #4ef0a2 !important;
    border-color: rgba(30,212,122,.28) !important;
}

.fi-badge-color-warning,
.fi-badge[class*="warning"] {
    background: rgba(245,190,48,.16) !important;
    color: #f7cc5c !important;
    border-color: rgba(245,190,48,.28) !important;
}

.fi-badge-color-danger,
.fi-badge[class*="danger"] {
    background: rgba(242,82,82,.16) !important;
    color: #f88080 !important;
    border-color: rgba(242,82,82,.28) !important;
}

.fi-badge-color-info,
.fi-badge-color-gray,
.fi-badge[class*="gray"] {
    background: rgba(160,176,204,.12) !important;
    color: var(--fg-tx2) !important;
    border-color: rgba(160,176,204,.20) !important;
}

/* ─── 9. FORMS ───────────────────────────────────────── */
.fi-input-wrapper,
.fi-input,
.fi-textarea,
.fi-select-input,
.fi-input-wrapper > input,
.fi-input-wrapper > textarea,
.fi-input-wrapper > select {
    background: rgba(0,0,0,.38) !important;
    border: 1px solid rgba(255,255,255,.11) !important;
    color: var(--fg-tx) !important;
    border-radius: 8px !important;
}

.fi-input:focus,
.fi-textarea:focus,
.fi-select-input:focus,
.fi-input-wrapper > input:focus,
.fi-input-wrapper > textarea:focus {
    border-color: var(--fg-blue) !important;
    box-shadow: 0 0 0 3px rgba(91,141,247,.22) !important;
    outline: none !important;
}

.fi-input::placeholder,
.fi-textarea::placeholder,
.fi-input-wrapper > input::placeholder {
    color: rgba(255,255,255,.26) !important;
}

/* Form labels */
.fi-fo-field-wrp label,
.fi-label,
.fi-fo-field-wrp .fi-fo-field-hint {
    color: var(--fg-tx2) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: .06em !important;
}

.fi-fo-field-hint {
    color: var(--fg-tx3) !important;
}

/* Checkbox + Toggle */
.fi-checkbox-input:checked,
.fi-toggle-input:checked {
    background-color: var(--fg-blue) !important;
    border-color: var(--fg-blue) !important;
}

/* Select option */
.fi-select-input option {
    background: #0e1428;
    color: var(--fg-tx);
}

/* ─── 10. BUTTONS ────────────────────────────────────── */
.fi-btn-color-primary.fi-btn-color-primary {
    background: var(--fg-blue) !important;
    border-color: var(--fg-blum) !important;
    color: #fff !important;
    box-shadow: 0 4px 14px rgba(91,141,247,.28) !important;
    font-weight: 600 !important;
}

.fi-btn-color-primary.fi-btn-color-primary:hover {
    background: var(--fg-blum) !important;
    box-shadow: 0 4px 18px rgba(91,141,247,.38) !important;
}

.fi-btn-color-gray.fi-btn-color-gray {
    background: rgba(255,255,255,.07) !important;
    border: 1px solid rgba(255,255,255,.11) !important;
    color: var(--fg-tx2) !important;
    box-shadow: none !important;
}

.fi-btn-color-gray.fi-btn-color-gray:hover {
    background: rgba(255,255,255,.12) !important;
    color: var(--fg-tx) !important;
}

.fi-btn-color-danger.fi-btn-color-danger {
    background: rgba(242,82,82,.14) !important;
    border-color: rgba(242,82,82,.25) !important;
    color: var(--fg-red) !important;
    box-shadow: none !important;
}

.fi-btn-color-danger.fi-btn-color-danger:hover {
    background: rgba(242,82,82,.22) !important;
}

.fi-btn-color-success.fi-btn-color-success {
    background: rgba(30,212,122,.14) !important;
    border-color: rgba(30,212,122,.25) !important;
    color: var(--fg-green) !important;
}

/* Button sizing */
.fi-btn {
    border-radius: 9px !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    transition: all .13s !important;
}

.fi-btn:active {
    transform: scale(.97) !important;
}

/* ─── 11. MODAL ──────────────────────────────────────── */
.fi-modal-window {
    background: rgba(14,20,44,.94) !important;
    backdrop-filter: blur(36px) saturate(200%) !important;
    -webkit-backdrop-filter: blur(36px) saturate(200%) !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 18px !important;
    box-shadow: 0 25px 80px rgba(0,0,0,.65) !important;
}

.fi-modal-header {
    background: transparent !important;
    border-bottom: 1px solid rgba(255,255,255,.07) !important;
}

.fi-modal-header-heading {
    font-size: 15px !important;
    font-weight: 800 !important;
    color: var(--fg-tx) !important;
    letter-spacing: -.02em !important;
}

.fi-modal-content,
.fi-modal-footer {
    background: transparent !important;
}

.fi-modal-footer {
    border-top: 1px solid rgba(255,255,255,.07) !important;
}

.fi-modal-close-overlay {
    background: rgba(0,0,0,.62) !important;
    backdrop-filter: blur(6px) !important;
    -webkit-backdrop-filter: blur(6px) !important;
}

/* ─── 12. DROPDOWN ───────────────────────────────────── */
.fi-dropdown-list {
    background: rgba(10,15,36,.97) !important;
    backdrop-filter: blur(28px) saturate(160%) !important;
    -webkit-backdrop-filter: blur(28px) saturate(160%) !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 12px !important;
    box-shadow: 0 8px 36px rgba(0,0,0,.55) !important;
}

.fi-dropdown-list-item-label {
    color: var(--fg-tx2) !important;
    font-size: 12.5px !important;
}

.fi-dropdown-list-item-button:hover {
    background: rgba(255,255,255,.07) !important;
    border-radius: 8px !important;
}

.fi-dropdown-list-item-button:hover .fi-dropdown-list-item-label {
    color: var(--fg-tx) !important;
}

/* ─── 13. NOTIFICATIONS ──────────────────────────────── */
.fi-notification {
    background: rgba(14,20,44,.94) !important;
    backdrop-filter: blur(28px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(28px) saturate(180%) !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 14px !important;
    box-shadow: 0 8px 36px rgba(0,0,0,.55) !important;
}

.fi-notification-title {
    color: var(--fg-tx) !important;
    font-weight: 700 !important;
}

.fi-notification-body {
    color: var(--fg-tx2) !important;
}

/* ─── 14. TABS ───────────────────────────────────────── */
.fi-tabs-tab {
    color: var(--fg-tx3) !important;
    border-color: transparent !important;
    font-size: 12px !important;
    font-weight: 500 !important;
}

.fi-tabs-tab:hover {
    color: var(--fg-tx2) !important;
}

.fi-tabs-tab[aria-selected="true"] {
    color: var(--fg-blue) !important;
    border-bottom-color: var(--fg-blue) !important;
    font-weight: 700 !important;
}

/* ─── 15. LOGIN PAGE ─────────────────────────────────── */
.fi-simple-page {
    background: transparent !important;
}

.fi-simple-main {
    background: rgba(14,20,44,.88) !important;
    backdrop-filter: blur(36px) saturate(160%) !important;
    -webkit-backdrop-filter: blur(36px) saturate(160%) !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 18px !important;
    box-shadow: 0 28px 80px rgba(0,0,0,.55) !important;
}

/* Login heading */
.fi-simple-main h1 {
    color: var(--fg-tx) !important;
    font-weight: 800 !important;
}

/* ─── 16. INFOLIST (View page key-value pairs) ────────── */
.fi-in-entry-wrp-label {
    font-size: 10px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .07em !important;
    color: var(--fg-tx2) !important;
}

.fi-in-text-item-label {
    color: var(--fg-tx3) !important;
}

.fi-in-text-item {
    color: var(--fg-tx) !important;
    font-weight: 600 !important;
}

/* ─── 17. RELATION MANAGERS ──────────────────────────── */
/* The tabbed relation managers inside View page */
.fi-res-relation-manager-header {
    background: transparent !important;
}

/* ─── 18. SCROLLBARS ─────────────────────────────────── */
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,.14); border-radius: 99px; }
::-webkit-scrollbar-track { background: transparent; }

/* ─── 19. ICON COLORS ────────────────────────────────── */
/* Ensure nav icons pick up theme colors */
.fi-sidebar-item-button svg {
    color: rgba(255,255,255,.45) !important;
    width: 16px !important;
    height: 16px !important;
    transition: color .14s !important;
}

.fi-sidebar-item-button:hover svg {
    color: rgba(255,255,255,.85) !important;
}

.fi-sidebar-item-button[aria-current="page"] svg,
.fi-sidebar-item.fi-active .fi-sidebar-item-button svg {
    color: var(--fg-blue) !important;
}

/* ─── 20. GENERAL TEXT & BACKGROUND OVERRIDES ────────── */
/* Use only .dark .class-name selectors — avoids false matches
   on Tailwind modifiers like dark:bg-white/5 or hover:bg-gray-100 */

/* Text overrides */
.dark .text-gray-950,
.dark .text-gray-900 {
    color: var(--fg-tx) !important;
}

.dark .text-gray-500,
.dark .text-gray-600 {
    color: var(--fg-tx2) !important;
}

.dark .text-gray-400 {
    color: var(--fg-tx3) !important;
}

/* Card/section background overrides */
.dark .bg-white,
.dark .bg-gray-50 {
    background: rgba(22,34,62,.80) !important;
    backdrop-filter: blur(20px) saturate(160%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(160%) !important;
}

/* Table header row background */
.dark .bg-gray-100:not(.fi-sidebar-item-button) {
    background: rgba(0,0,0,.32) !important;
}

/* Panel/card dark background */
.dark .bg-gray-900 {
    background: rgba(22,34,62,.80) !important;
}

/* Ring/shadow overrides */
.dark .ring-gray-950\/5,
.dark .shadow-sm {
    --tw-ring-color: rgba(255,255,255,.08) !important;
    box-shadow: none !important;
}

/* Borders */
.dark .border-gray-200,
.dark .divide-gray-200,
.dark .ring-gray-950\/5 {
    border-color: rgba(255,255,255,.07) !important;
}

/* ─── 21. RELATION MANAGER TABS ──────────────────────── */
/* Tab container */
.fi-resource-relation-manager {
    background: transparent !important;
}

/* Tabs bar (the Support Log / Studio Specs / Documents row) */
.fi-tabs {
    background: transparent !important;
}

.fi-tabs-tab {
    color: rgba(255,255,255,.45) !important;
    border-color: transparent !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    border-bottom: 2px solid transparent !important;
    transition: color .15s, border-color .15s !important;
}

.fi-tabs-tab:hover {
    color: rgba(255,255,255,.75) !important;
    background: transparent !important;
}

.fi-tabs-tab[aria-selected="true"] {
    color: var(--fg-blue) !important;
    border-bottom-color: var(--fg-blue) !important;
    font-weight: 600 !important;
    background: transparent !important;
}

/* Tabs panel / relation manager content */
.fi-ta-header-toolbar {
    background: transparent !important;
    border-bottom: 1px solid rgba(255,255,255,.07) !important;
}

/* The "Group by" filter select in relation managers */
.fi-ta-filters,
.fi-ta-filter {
    background: transparent !important;
}

.fi-ta-filters select,
.fi-ta-filters input,
.fi-select-input {
    background: rgba(0,0,0,.35) !important;
    border: 1px solid rgba(255,255,255,.10) !important;
    color: var(--fg-tx2) !important;
    border-radius: 8px !important;
    font-size: 12px !important;
}

/* ─── 22. MAIN CONTENT PADDING ───────────────────────── */
/* Give the content area a bit more breathing room */
.fi-main-ctn {
    background: transparent !important;
}

/* ─── 23. PAGE ACTIONS (View page buttons) ────────────── */
.fi-ac-action-group,
.fi-ac-btn-action {
    transition: all .13s !important;
}

/* ─── 24. SIDEBAR NAV — HOVER STATES ─────────────────── */
/* Ensure Tailwind hover classes don't show wrong bg */
.fi-sidebar-item-button.dark\:hover\:bg-white\/5:hover,
.fi-sidebar-item-button:hover {
    background: rgba(255,255,255,.07) !important;
}

/* ─── 25. SECTION HEADER DIVIDER ─────────────────────── */
.fi-section-header {
    padding: 12px 14px !important;
}

/* ─── 26. VIEW PAGE INFOLIST LAYOUT ──────────────────── */
.fi-in-entry-wrp {
    border-bottom: 1px solid rgba(255,255,255,.05) !important;
    padding-bottom: 10px !important;
    margin-bottom: 6px !important;
}

.fi-in-entry-wrp:last-child {
    border-bottom: none !important;
    padding-bottom: 0 !important;
}

/* ─── 27. STUDIO SPECS CARD GRID ─────────────────────── */
.fg-specs-wrap { display: flex; flex-direction: column; gap: 20px; }

.fg-specs-header { display: flex; align-items: center; justify-content: space-between; }
.fg-specs-title  { font-size: .95rem; font-weight: 600; color: #f1f5f9; margin: 0; }

.fg-specs-btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 14px; border-radius: 8px; font-size: .8rem; font-weight: 600;
    background: #5b8df7; color: #fff; border: none; cursor: pointer; line-height: 1;
    transition: background .15s;
}
.fg-specs-btn:hover { background: #4a7cf6; }
.fg-specs-btn svg  { width: 14px; height: 14px; flex-shrink: 0; }

.fg-specs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
    align-items: start;
}

.fg-spec-card {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 12px;
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
}

.fg-spec-cat-header {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 12px; padding-bottom: 10px;
    border-bottom: 1px solid rgba(255,255,255,0.07);
}
.fg-spec-cat-header svg   { flex-shrink: 0; color: #5b8df7; }
.fg-spec-cat-label        { font-size: .83rem; font-weight: 600; color: #f1f5f9; flex: 1; }
.fg-spec-cat-count        { font-size: .72rem; color: rgba(148,163,184,.7); }

.fg-spec-item {
    display: flex; align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 7px 0;
    border-bottom: 1px solid rgba(255,255,255,0.05);
    font-size: .82rem;
}
.fg-spec-item:last-child   { border-bottom: none; padding-bottom: 0; }
.fg-spec-item-name         { color: rgba(148,163,184,1); flex-shrink: 1; min-width: 0; }
.fg-spec-item-right        { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.fg-spec-item-value        { font-weight: 600; color: #f1f5f9; white-space: nowrap; }
.fg-spec-actions           { display: none; gap: 6px; }
.fg-spec-item:hover .fg-spec-actions { display: flex; }
.fg-spec-act-edit   { font-size: .72rem; color: #5b8df7; background: none; border: none; cursor: pointer; padding: 0; }
.fg-spec-act-del    { font-size: .72rem; color: #f25252; background: none; border: none; cursor: pointer; padding: 0; }
.fg-spec-act-edit:hover { text-decoration: underline; }
.fg-spec-act-del:hover  { text-decoration: underline; }

.fg-specs-empty {
    border: 2px dashed rgba(255,255,255,0.1);
    border-radius: 12px; padding: 48px 24px;
    text-align: center;
}
.fg-specs-empty svg { width: 40px; height: 40px; color: rgba(148,163,184,.4); margin: 0 auto 12px; display: block; }
.fg-specs-empty p   { color: rgba(148,163,184,.8); font-size: .85rem; margin: 0 0 4px; }
.fg-specs-empty small { color: rgba(148,163,184,.5); font-size: .76rem; }

/* ─── 28. DASHBOARD WIDGETS ──────────────────────── */
.fg-widget { display: flex; flex-direction: column; gap: 0; min-height: 120px; }

.fg-widget-header {
    display: flex; align-items: center; gap: 8px;
    padding-bottom: 12px; margin-bottom: 4px;
    border-bottom: 1px solid rgba(255,255,255,.07);
}
.fg-widget-header svg  { width: 16px; height: 16px; flex-shrink: 0; }
.fg-widget-title  { font-size: .88rem; font-weight: 600; color: #f1f5f9; flex: 1; }
.fg-widget-count  { font-size: .72rem; color: rgba(148,163,184,.6); }

.fg-widget-empty  {
    display: flex; align-items: center; gap: 8px;
    padding: 24px 0; color: rgba(148,163,184,.6); font-size: .82rem;
}
.fg-widget-empty svg { width: 20px; height: 20px; }
.fg-widget-list   { display: flex; flex-direction: column; }

/* Needs Attention */
.fg-attn-row {
    display: grid;
    grid-template-columns: 1fr auto auto auto;
    align-items: center; gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(255,255,255,.05);
    text-decoration: none;
    transition: background .1s;
}
.fg-attn-row:last-child { border-bottom: none; }
.fg-attn-row:hover { background: rgba(255,255,255,.02); border-radius: 6px; padding-left: 6px; padding-right: 6px; }
.fg-attn-name { font-size: .85rem; font-weight: 600; color: #f1f5f9; }
.fg-attn-meta { display: flex; align-items: center; gap: 6px; }
.fg-attn-plan { font-size: .72rem; color: rgba(148,163,184,.6); }
.fg-attn-badge { font-size: .7rem; font-weight: 600; padding: 2px 8px; border-radius: 20px; white-space: nowrap; }
.fg-attn-bar-wrap { width: 80px; height: 4px; background: rgba(255,255,255,.08); border-radius: 2px; overflow: hidden; }
.fg-attn-bar  { height: 100%; border-radius: 2px; transition: width .3s; }
.fg-attn-hrs  { font-size: .78rem; font-weight: 600; white-space: nowrap; }

/* Upcoming Renewals */
.fg-renewal-row {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid rgba(255,255,255,.05);
    text-decoration: none;
    transition: background .1s;
}
.fg-renewal-row:last-child { border-bottom: none; }
.fg-renewal-row:hover { background: rgba(255,255,255,.02); border-radius: 6px; padding-left: 6px; padding-right: 6px; }
.fg-renewal-info { display: flex; flex-direction: column; gap: 2px; }
.fg-renewal-name { font-size: .85rem; font-weight: 600; color: #f1f5f9; }
.fg-renewal-plan { font-size: .72rem; color: rgba(148,163,184,.6); }
.fg-renewal-right { display: flex; align-items: center; gap: 8px; }
.fg-renewal-date { font-size: .78rem; color: rgba(148,163,184,.7); }
.fg-renewal-days { font-size: .72rem; font-weight: 600; padding: 2px 8px; border-radius: 20px; white-space: nowrap; }

/* Recent Activity */
.fg-activity-row {
    display: grid;
    grid-template-columns: 42px 140px 72px 32px 1fr 90px;
    align-items: center; gap: 10px;
    padding: 9px 0;
    border-bottom: 1px solid rgba(255,255,255,.05);
    text-decoration: none;
    transition: background .1s;
}
.fg-activity-row:last-child { border-bottom: none; }
.fg-activity-row:hover { background: rgba(255,255,255,.02); border-radius: 6px; padding-left: 6px; padding-right: 6px; }
.fg-activity-date   { font-size: .72rem; color: rgba(148,163,184,.6); white-space: nowrap; }
.fg-activity-client { font-size: .82rem; font-weight: 600; color: #f1f5f9; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fg-activity-badge  { font-size: .68rem; font-weight: 600; padding: 2px 7px; border-radius: 20px; text-align: center; }
.fg-activity-dur    { font-size: .78rem; font-weight: 600; color: #5b8df7; white-space: nowrap; }
.fg-activity-desc   { font-size: .78rem; color: rgba(148,163,184,.8); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fg-activity-tech   { font-size: .72rem; color: rgba(148,163,184,.5); text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Most Active */
.fg-active-row {
    display: flex; align-items: center; gap: 12px;
    padding: 9px 0;
    border-bottom: 1px solid rgba(255,255,255,.05);
    text-decoration: none;
    transition: background .1s;
}
.fg-active-row:last-child { border-bottom: none; }
.fg-active-row:hover { background: rgba(255,255,255,.02); border-radius: 6px; padding-left: 6px; padding-right: 6px; }
.fg-active-rank { font-size: .8rem; font-weight: 700; width: 24px; text-align: center; flex-shrink: 0; }
.fg-active-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.fg-active-name { font-size: .83rem; font-weight: 600; color: #f1f5f9; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fg-active-bar-wrap { height: 3px; background: rgba(255,255,255,.08); border-radius: 2px; overflow: hidden; }
.fg-active-bar  { height: 100%; background: #5b8df7; border-radius: 2px; }
.fg-active-hrs  { font-size: .88rem; font-weight: 700; color: #f1f5f9; flex-shrink: 0; }
.fg-active-hrs small { font-size: .65rem; color: rgba(148,163,184,.6); margin-left: 1px; }


/* ─── 27. DASHBOARD WIDGETS ──────────────────────────── */
.fg-widget {
    background: rgba(22,34,62,.70);
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 14px;
    padding: 20px 22px;
    backdrop-filter: blur(20px);
}

.fg-widget-header {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 16px;
}
.fg-widget-header svg { width:18px; height:18px; flex-shrink:0; }
.fg-widget-title {
    font-size: .95rem;
    font-weight: 700;
    color: #eaf0ff;
    letter-spacing: .04em;
    text-transform: uppercase;
    flex: 1;
}
.fg-widget-count {
    font-size: .75rem;
    color: rgba(148,163,184,.6);
    background: rgba(255,255,255,.06);
    border-radius: 20px;
    padding: 2px 10px;
}

.fg-widget-empty {
    color: rgba(148,163,184,.5);
    font-size: .85rem;
    text-align: center;
    padding: 16px 0;
}

.fg-widget-list { display: flex; flex-direction: column; gap: 6px; }

/* Needs Attention rows */
.fg-attn-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 12px;
    background: rgba(255,255,255,.03);
    border-radius: 9px;
    border: 1px solid rgba(255,255,255,.06);
    text-decoration: none;
    transition: background .15s, border-color .15s;
}
.fg-attn-row:hover { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.13); }
.fg-attn-info { flex: 1; min-width: 0; }
.fg-attn-name { font-size:.85rem; font-weight:600; color:#eaf0ff; display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fg-attn-bar-wrap { height:4px; background:rgba(255,255,255,.08); border-radius:4px; margin-top:5px; overflow:hidden; }
.fg-attn-bar { height:100%; border-radius:4px; transition:width .3s; }
.fg-attn-badge {
    font-size:.72rem; font-weight:700; padding:3px 9px; border-radius:20px; white-space:nowrap;
}

/* Upcoming Renewals rows */
.fg-renewal-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    background: rgba(255,255,255,.03);
    border-radius: 9px;
    border: 1px solid rgba(255,255,255,.06);
    text-decoration: none;
    transition: background .15s, border-color .15s;
}
.fg-renewal-row:hover { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.13); }
.fg-renewal-info { flex: 1; min-width: 0; }
.fg-renewal-name { font-size:.85rem; font-weight:600; color:#eaf0ff; display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fg-renewal-plan { font-size:.72rem; color:rgba(148,163,184,.7); }
.fg-renewal-days {
    font-size:.72rem; font-weight:700; padding:3px 9px; border-radius:20px; white-space:nowrap;
}

/* Recent Activity rows */
.fg-activity-row {
    display: grid;
    grid-template-columns: 64px 1fr auto auto;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: rgba(255,255,255,.03);
    border-radius: 9px;
    border: 1px solid rgba(255,255,255,.06);
    text-decoration: none;
    transition: background .15s, border-color .15s;
}
.fg-activity-row:hover { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.13); }
.fg-activity-date { font-size:.75rem; color:rgba(148,163,184,.6); }
.fg-activity-client { font-size:.82rem; font-weight:600; color:#eaf0ff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fg-activity-desc { font-size:.75rem; color:rgba(148,163,184,.7); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fg-activity-cat {
    font-size:.70rem; font-weight:600; padding:2px 8px; border-radius:20px;
    background:rgba(91,141,247,.15); color:#5b8df7; white-space:nowrap;
}
.fg-activity-dur { font-size:.80rem; font-weight:700; color:#eaf0ff; text-align:right; white-space:nowrap; }

/* Most Active rows */
.fg-active-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: rgba(255,255,255,.03);
    border-radius: 9px;
    border: 1px solid rgba(255,255,255,.06);
    text-decoration: none;
    transition: background .15s, border-color .15s;
}
.fg-active-row:hover { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.13); }
.fg-active-rank { font-size:.80rem; font-weight:800; width:24px; text-align:center; flex-shrink:0; }
.fg-active-info { flex: 1; min-width: 0; }
.fg-active-name { font-size:.85rem; font-weight:600; color:#eaf0ff; display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fg-active-bar-wrap { height:3px; background:rgba(255,255,255,.08); border-radius:3px; margin-top:5px; overflow:hidden; }
.fg-active-bar { height:100%; border-radius:3px; background:var(--fg-blue); transition:width .3s; }
.fg-active-hrs { font-size:.85rem; font-weight:700; color:#eaf0ff; flex-shrink:0; }
.fg-active-hrs small { font-size:.70rem; color:rgba(148,163,184,.6); margin-left:1px; }

/* ─── 28. CLIENT DASHBOARD (cd-*) ────────────────────── */

/* Stats row */
.cd-stats-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 20px;
}
@media (max-width: 900px) { .cd-stats-row { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .cd-stats-row { grid-template-columns: 1fr; } }

.cd-stat-card {
    background: rgba(22,34,62,.75);
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 12px;
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    backdrop-filter: blur(20px);
}
.cd-stat-label {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    color: rgba(148,163,184,.6);
    text-transform: uppercase;
}
.cd-stat-value {
    font-size: 1.6rem;
    font-weight: 800;
    color: #eaf0ff;
    line-height: 1.1;
}
.cd-stat-desc {
    font-size: .72rem;
    color: rgba(148,163,184,.5);
}

/* Toolbar: search + filter pills */
.cd-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
    flex-wrap: wrap;
}
.cd-search-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(22,34,62,.80);
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 9px;
    padding: 7px 12px;
    flex: 1;
    min-width: 160px;
    max-width: 320px;
}
.cd-search-wrap svg { width:16px; height:16px; color:rgba(148,163,184,.5); flex-shrink:0; }
.cd-search-input {
    background: transparent;
    border: none;
    outline: none;
    color: #eaf0ff;
    font-size: .85rem;
    width: 100%;
}
.cd-search-input::placeholder { color: rgba(148,163,184,.4); }

.cd-filters { display: flex; gap: 6px; flex-wrap: wrap; }
.cd-filter-pill {
    font-size: .75rem;
    font-weight: 600;
    padding: 5px 13px;
    border-radius: 20px;
    border: 1px solid rgba(255,255,255,.10);
    background: rgba(255,255,255,.04);
    color: rgba(148,163,184,.8);
    cursor: pointer;
    transition: all .15s;
    white-space: nowrap;
}
.cd-filter-pill:hover { background: rgba(255,255,255,.09); color:#eaf0ff; border-color:rgba(255,255,255,.18); }
.cd-filter-active {
    background: rgba(91,141,247,.18) !important;
    border-color: rgba(91,141,247,.45) !important;
    color: #5b8df7 !important;
}

/* Empty state */
.cd-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 48px 24px;
    color: rgba(148,163,184,.4);
}
.cd-empty svg { width:40px; height:40px; }
.cd-empty p { font-size:.9rem; }

/* Cards grid */
.cd-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
    gap: 14px;
    margin-bottom: 24px;
}

.cd-card {
    background: rgba(22,34,62,.75);
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 13px;
    padding: 16px 18px;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    gap: 11px;
    backdrop-filter: blur(20px);
    transition: background .15s, border-color .15s, transform .15s;
    cursor: pointer;
}
.cd-card:hover {
    background: rgba(26,42,80,.85);
    border-color: rgba(91,141,247,.30);
    transform: translateY(-2px);
}

.cd-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.cd-card-name {
    font-size: .92rem;
    font-weight: 700;
    color: #eaf0ff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}
.cd-card-plan {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 3px 9px;
    border-radius: 20px;
    white-space: nowrap;
    flex-shrink: 0;
}

/* Progress */
.cd-card-progress {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.cd-progress-track {
    height: 5px;
    background: rgba(255,255,255,.08);
    border-radius: 5px;
    overflow: hidden;
}
.cd-progress-bar {
    height: 100%;
    border-radius: 5px;
    transition: width .4s ease;
}
.cd-card-hrs {
    font-size: .78rem;
    font-weight: 600;
}

/* Meta row */
.cd-card-meta {
    display: flex;
    align-items: center;
    gap: 14px;
}
.cd-meta-item {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: .74rem;
    color: rgba(148,163,184,.6);
}
.cd-meta-item svg { width:13px; height:13px; flex-shrink:0; }

/* Footer summary bar */
.cd-footer-bar {
    display: flex;
    align-items: center;
    background: rgba(22,34,62,.75);
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 12px;
    padding: 14px 24px;
    backdrop-filter: blur(20px);
    gap: 0;
    flex-wrap: wrap;
}
.cd-footer-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    min-width: 80px;
    gap: 2px;
}
.cd-footer-val {
    font-size: 1.15rem;
    font-weight: 800;
    color: #eaf0ff;
    line-height: 1.1;
}
.cd-footer-label {
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: rgba(148,163,184,.5);
}
.cd-footer-divider {
    width: 1px;
    height: 32px;
    background: rgba(255,255,255,.08);
    flex-shrink: 0;
    margin: 0 8px;
}
@media (max-width: 600px) {
    .cd-footer-bar { gap: 12px; }
    .cd-footer-divider { display: none; }
}

/* ─── 29. CLIENT DASHBOARD (cd-*) ────────────────────── */

/* Stats row */
.cd-stats-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 20px;
}
@media (max-width: 900px) { .cd-stats-row { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .cd-stats-row { grid-template-columns: 1fr; } }

.cd-stat-card {
    background: rgba(22,34,62,.75);
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 12px;
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    backdrop-filter: blur(20px);
}
.cd-stat-label {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    color: rgba(148,163,184,.6);
    text-transform: uppercase;
}
.cd-stat-value {
    font-size: 1.6rem;
    font-weight: 800;
    color: #eaf0ff;
    line-height: 1.1;
}
.cd-stat-desc {
    font-size: .72rem;
    color: rgba(148,163,184,.5);
}

/* Toolbar: search + filter pills */
.cd-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
    flex-wrap: wrap;
}
.cd-search-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(22,34,62,.80);
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 9px;
    padding: 7px 12px;
    flex: 1;
    min-width: 160px;
    max-width: 320px;
}
.cd-search-wrap svg { width:16px; height:16px; color:rgba(148,163,184,.5); flex-shrink:0; }
.cd-search-input {
    background: transparent;
    border: none;
    outline: none;
    color: #eaf0ff;
    font-size: .85rem;
    width: 100%;
}
.cd-search-input::placeholder { color: rgba(148,163,184,.4); }

.cd-filters { display: flex; gap: 6px; flex-wrap: wrap; }
.cd-filter-pill {
    font-size: .75rem;
    font-weight: 600;
    padding: 5px 13px;
    border-radius: 20px;
    border: 1px solid rgba(255,255,255,.10);
    background: rgba(255,255,255,.04);
    color: rgba(148,163,184,.8);
    cursor: pointer;
    transition: all .15s;
    white-space: nowrap;
}
.cd-filter-pill:hover {
    background: rgba(255,255,255,.09);
    color: #eaf0ff;
    border-color: rgba(255,255,255,.18);
}
.cd-filter-active {
    background: rgba(91,141,247,.18) !important;
    border-color: rgba(91,141,247,.45) !important;
    color: #5b8df7 !important;
}

/* Empty state */
.cd-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 48px 24px;
    color: rgba(148,163,184,.4);
}
.cd-empty svg { width:40px; height:40px; }
.cd-empty p { font-size:.9rem; }

/* Cards grid */
.cd-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
    gap: 14px;
    margin-bottom: 24px;
}

.cd-card {
    background: rgba(22,34,62,.75);
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 13px;
    padding: 16px 18px;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    gap: 11px;
    backdrop-filter: blur(20px);
    transition: background .15s, border-color .15s, transform .15s;
    cursor: pointer;
}
.cd-card:hover {
    background: rgba(26,42,80,.85);
    border-color: rgba(91,141,247,.30);
    transform: translateY(-2px);
}

.cd-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.cd-card-name {
    font-size: .92rem;
    font-weight: 700;
    color: #eaf0ff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}
.cd-card-plan {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 3px 9px;
    border-radius: 20px;
    white-space: nowrap;
    flex-shrink: 0;
}

/* Progress */
.cd-card-progress {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.cd-progress-track {
    height: 5px;
    background: rgba(255,255,255,.08);
    border-radius: 5px;
    overflow: hidden;
}
.cd-progress-bar {
    height: 100%;
    border-radius: 5px;
    transition: width .4s ease;
}
.cd-card-hrs {
    font-size: .78rem;
    font-weight: 600;
}

/* Meta row */
.cd-card-meta {
    display: flex;
    align-items: center;
    gap: 14px;
}
.cd-meta-item {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: .74rem;
    color: rgba(148,163,184,.6);
}
.cd-meta-item svg { width:13px; height:13px; flex-shrink:0; }

/* Footer summary bar */
.cd-footer-bar {
    display: flex;
    align-items: center;
    background: rgba(22,34,62,.75);
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 12px;
    padding: 14px 24px;
    backdrop-filter: blur(20px);
    gap: 0;
    flex-wrap: wrap;
}
.cd-footer-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    min-width: 80px;
    gap: 2px;
}
.cd-footer-val {
    font-size: 1.15rem;
    font-weight: 800;
    color: #eaf0ff;
    line-height: 1.1;
}
.cd-footer-label {
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: rgba(148,163,184,.5);
}
.cd-footer-divider {
    width: 1px;
    height: 32px;
    background: rgba(255,255,255,.08);
    flex-shrink: 0;
    margin: 0 8px;
}
@media (max-width: 600px) {
    .cd-footer-bar { gap: 12px; }
    .cd-footer-divider { display: none; }
}

/* ─── 30. RECENT ACTIVITY WIDGET (fg-act-*) ──────────── */
.fg-act-list { display: flex; flex-direction: column; gap: 4px; }

.fg-act-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 14px;
    border-radius: 10px;
    border: 1px solid rgba(255,255,255,.06);
    background: rgba(255,255,255,.025);
    text-decoration: none;
    transition: background .15s, border-color .15s;
}
.fg-act-row:hover {
    background: rgba(255,255,255,.06);
    border-color: rgba(91,141,247,.25);
}

/* Date column */
.fg-act-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 36px;
    flex-shrink: 0;
    background: rgba(255,255,255,.06);
    border-radius: 8px;
    padding: 5px 4px;
    line-height: 1;
    gap: 1px;
}
.fg-act-day {
    font-size: .95rem;
    font-weight: 800;
    color: #eaf0ff;
}
.fg-act-mon {
    font-size: .62rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: rgba(148,163,184,.7);
}

/* Main info */
.fg-act-main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.fg-act-top {
    display: flex;
    align-items: center;
    gap: 8px;
}
.fg-act-client {
    font-size: .88rem;
    font-weight: 700;
    color: #eaf0ff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.fg-act-badge {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 20px;
    white-space: nowrap;
    flex-shrink: 0;
}
.fg-act-desc {
    font-size: .78rem;
    color: rgba(148,163,184,.65);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Right column */
.fg-act-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 3px;
    flex-shrink: 0;
}
.fg-act-dur {
    font-size: .92rem;
    font-weight: 800;
    color: #eaf0ff;
}
.fg-act-tech {
    font-size: .72rem;
    color: rgba(148,163,184,.55);
    white-space: nowrap;
}
