/**
 * ConFab Frontend Styles - Modern Version with Session Type System
 * FILE: assets/css/style.css
 *
 * Modern CSS with custom properties, systematic theming, responsive design,
 * and semantic session type styling (normal/featured/alternate).
 *
 * @package confab
 * @subpackage Assets\CSS
 * @since 2.0.0
 */

/* ==========================================================================
   CSS CUSTOM PROPERTIES & THEME FOUNDATION
   ========================================================================== */

:root {
  /* Base Sizing & Spacing */
  --confab-border-radius: 4px;
  --confab-border-radius-large: 8px;
  --confab-spacing-xs: 0.25rem;
  --confab-spacing-sm: 0.5rem;
  --confab-spacing-md: 1rem;
  --confab-spacing-lg: 1.5rem;
  --confab-spacing-xl: 2rem;

  /* Typography Scale */
  --confab-font-size-sm: 0.875rem;
  --confab-font-size-base: 1rem;
  --confab-font-size-lg: 1.125rem;
  --confab-font-size-xl: 1.25rem;
  --confab-font-size-2xl: 1.5rem;
  --confab-font-size-3xl: 1.75rem;

  /* Animation & Transitions */
  --confab-transition-fast: 0.15s ease;
  --confab-transition-base: 0.2s ease;
  --confab-transition-slow: 0.3s ease;

  /* Shadows */
  --confab-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.1);
  --confab-shadow-base: 0 4px 6px rgba(0, 0, 0, 0.1);
  --confab-shadow-lg: 0 8px 15px rgba(0, 0, 0, 0.15);
}

/* ==========================================================================
   LIGHT THEME (DEFAULT)
   ==========================================================================

.confab-color-scheme-light,
.confab-schedule:not([class*="confab-color-scheme-"]) {
  --confab-primary: #007cba;
  --confab-primary-hover: #005a87;

  --confab-bg-primary: #f2faff;
  --confab-bg-secondary: #e9f8ff;
  --confab-bg-tertiary: #d8f2ff;
  --confab-bg-muted: #dee2e6;

  --confab-text-primary: #212529;
  --confab-text-secondary: #495057;
  --confab-text-muted: #6c757d;

  --confab-border-primary: #32383e;
  --confab-border-secondary: #495057;

  --confab-session-featured: #d6eefa;
  --confab-session-featured-hover: #c1e3f1;
  --confab-session-alternate: #fff4e6;
  --confab-session-alternate-hover: #ffebd3;
}

 ==========================================================================
   DARK THEME
   ==========================================================================

.confab-color-scheme-dark {
  --confab-primary: #0073aa;
  --confab-primary-hover: #005177;

  --confab-bg-primary: #212529;
  --confab-bg-secondary: #383c41;
  --confab-bg-tertiary: #4e5863;
  --confab-bg-muted: #495057;

  --confab-text-primary: #e9ecef;
  --confab-text-secondary: #cbd5e0;
  --confab-text-muted: #a0aec0;

  --confab-border-primary: #dee2e6;
  --confab-border-secondary: #e9ecef;

  --confab-session-featured: #37464b;
  --confab-session-featured-hover: #5c757c;
  --confab-session-alternate: #504949;
  --confab-session-alternate-hover: #696262;
}

*/

/* ==========================================================================
   CLASSIC THEME (DEFAULT)
   ========================================================================== */
.confab-color-scheme-light,
.confab-schedule:not([class*="confab-color-scheme-"]) {
  --confab-primary: #4a5568;
  --confab-primary-hover: #2d3748;

  --confab-bg-primary: #fbfdff;
  --confab-bg-secondary: #f0f2f4;
  --confab-bg-tertiary: #e8ebed;
  --confab-bg-muted: #dee2e6;

  --confab-text-primary: #212529;
  --confab-text-secondary: #495057;
  --confab-text-muted: #6c757d;

  --confab-border-primary: #32383e;
  --confab-border-secondary: #495057;

  --confab-session-featured: #e8eef2;
  --confab-session-featured-hover: #dae3e9;
  --confab-session-alternate: #f5f1eb;
  --confab-session-alternate-hover: #ede7df;
}

.confab-color-scheme-dark {
  --confab-primary: #6b7280;
  --confab-primary-hover: #4b5563;

  --confab-bg-primary: #212529;
  --confab-bg-secondary: #383c41;
  --confab-bg-tertiary: #4e5863;
  --confab-bg-muted: #495057;

  --confab-text-primary: #e9ecef;
  --confab-text-secondary: #cbd5e0;
  --confab-text-muted: #a0aec0;

  --confab-border-primary: #dee2e6;
  --confab-border-secondary: #e9ecef;

  --confab-session-featured: #3a4247;
  --confab-session-featured-hover: #4a5459;
  --confab-session-alternate: #464340;
  --confab-session-alternate-hover: #565350;
}

/* ==========================================================================
   EARTHTONES THEME
   ========================================================================== */

.confab-color-scheme-earthtones {
  --confab-primary: #8b4513;
  --confab-primary-hover: #5d2f09;

  --confab-bg-primary: #faf8f6;
  --confab-bg-secondary: #f3ede3;
  --confab-bg-tertiary: #ede8e0;
  --confab-bg-muted: #e5ddd5;

  --confab-text-primary: #3e2723;
  --confab-text-secondary: #5d4037;
  --confab-text-muted: #8d6e63;

  --confab-border-primary: #5d4037;
  --confab-border-secondary: #6d4c41;

  --confab-session-featured: #ecdcc7;
  --confab-session-featured-hover: #e4d1b4;
  --confab-session-alternate: #e8f5e9;
  --confab-session-alternate-hover: #d4e7d6;
}

.confab-color-scheme-earthtones-dark {
  --confab-primary: #cd853f;
  --confab-primary-hover: #a0522d;

  --confab-bg-primary: #2e2419;
  --confab-bg-secondary: #493a2c;
  --confab-bg-tertiary: #665548;
  --confab-bg-muted: #5d4037;

  --confab-text-primary: #f3eae3;
  --confab-text-secondary: #e7dcd8;
  --confab-text-muted: #cab3aa;

  --confab-border-primary: #d7ccc8;
  --confab-border-secondary: #bcaaa4;

  --confab-session-featured: #5d4037;
  --confab-session-featured-hover: #6d4c41;
  --confab-session-alternate: #2d3e2d;
  --confab-session-alternate-hover: #3d4e3d;
}

/* ==========================================================================
   JEWELTONES THEME
   ========================================================================== */

.confab-color-scheme-jeweltones {
  --confab-primary: #663399;
  --confab-primary-hover: #4a1a66;

  --confab-bg-primary: #fafafa;
  --confab-bg-secondary: #f3e5f5;
  --confab-bg-tertiary: #e9cfee;
  --confab-bg-muted: #ce93d8;

  --confab-text-primary: #4a148c;
  --confab-text-secondary: #6a1b9a;
  --confab-text-muted: #8e24aa;

  --confab-border-primary: #4a148c;
  --confab-border-secondary: #6a1b9a;

  --confab-session-featured: #e1bee7;
  --confab-session-featured-hover: #d4a5db;
  --confab-session-alternate: #fff9c4;
  --confab-session-alternate-hover: #fff59d;
}

.confab-color-scheme-jeweltones-dark {
  --confab-primary: #ab47bc;
  --confab-primary-hover: #8e24aa;

  --confab-bg-primary: #1a0d1f;
  --confab-bg-secondary: #35223f;
  --confab-bg-tertiary: #4d2f57;
  --confab-bg-muted: #4a148c;

  --confab-text-primary: #e8d8ed;
  --confab-text-secondary: #e1bee7;
  --confab-text-muted: #ce93d8;

  --confab-border-primary: #e1bee7;
  --confab-border-secondary: #ce93d8;

  --confab-session-featured: #4a148c;
  --confab-session-featured-hover: #5a249c;
  --confab-session-alternate: #4a3f2a;
  --confab-session-alternate-hover: #5a4f3a;
}

/* ==========================================================================
   PASTELS THEME
   ========================================================================== */

.confab-color-scheme-pastels {
  --confab-primary: #6b7fd4;
  --confab-primary-hover: #4a5bb5;

  --confab-bg-primary: #f9fafa;
  --confab-bg-secondary: #f2f3f8;
  --confab-bg-tertiary: #e1eafa;
  --confab-bg-muted: #d9e7fd;

  --confab-text-primary: #2c3e50;
  --confab-text-secondary: #4a5568;
  --confab-text-muted: #718096;

  --confab-border-primary: #4a5568;
  --confab-border-secondary: #718096;

  --confab-session-featured: #e8f0fe;
  --confab-session-featured-hover: #d9e7fd;
  --confab-session-alternate: #fce4ec;
  --confab-session-alternate-hover: #f8bbd0;
}

.confab-color-scheme-pastels-dark {
  --confab-primary: #9ca3f5;
  --confab-primary-hover: #7c85e8;

  --confab-bg-primary: #1a1f2e;
  --confab-bg-secondary: #2d3748;
  --confab-bg-tertiary: #5f6a7e;
  --confab-bg-muted: #718096;

  --confab-text-primary: #e2e8f0;
  --confab-text-secondary: #cbd5e0;
  --confab-text-muted: #a0aec0;

  --confab-border-primary: #e2e8f0;
  --confab-border-secondary: #cbd5e0;

  --confab-session-featured: #4a5568;
  --confab-session-featured-hover: #5a6578;
  --confab-session-alternate: #3d2e3d;
  --confab-session-alternate-hover: #4d3e4d;
}

/* ==========================================================================
   OCEAN THEME
   ========================================================================== */

.confab-color-scheme-ocean {
  --confab-primary: #0077be;
  --confab-primary-hover: #005a87;

  --confab-bg-primary: #fafefe;
  --confab-bg-secondary: #f0f9ff;
  --confab-bg-tertiary: #e0f2fe;
  --confab-bg-muted: #b3e5fc;

  --confab-text-primary: #0d3d56;
  --confab-text-secondary: #0277bd;
  --confab-text-muted: #0288d1;

  --confab-border-primary: #1e3a46;
  --confab-border-secondary: #2c5f74;

  --confab-session-featured: #b3e5fc;
  --confab-session-featured-hover: #81d4fa;
  --confab-session-alternate: #ffe0b2;
  --confab-session-alternate-hover: #ffcc80;
}

.confab-color-scheme-ocean-dark {
  --confab-primary: #29b6f6;
  --confab-primary-hover: #039be5;

  --confab-bg-primary: #0a1a24;
  --confab-bg-secondary: #102027;
  --confab-bg-tertiary: #204657;
  --confab-bg-muted: #2c5f74;

  --confab-text-primary: #b3d9ea;
  --confab-text-secondary: #81d4fa;
  --confab-text-muted: #4fc3f7;

  --confab-border-primary: #b3e5fc;
  --confab-border-secondary: #81d4fa;

  --confab-session-featured: #1e3a46;
  --confab-session-featured-hover: #2e4a56;
  --confab-session-alternate: #2d2416;
  --confab-session-alternate-hover: #3d3426;
}

/* ==========================================================================
   FOREST THEME
   ========================================================================== */

.confab-color-scheme-forest {
  --confab-primary: #2e7d32;
  --confab-primary-hover: #1b5e20;

  --confab-bg-primary: #fafffe;
  --confab-bg-secondary: #f1f8e9;
  --confab-bg-tertiary: #e8f5e8;
  --confab-bg-muted: #c8e6c9;

  --confab-text-primary: #1b5e20;
  --confab-text-secondary: #2e7d32;
  --confab-text-muted: #388e3c;

  --confab-border-primary: #2d452d;
  --confab-border-secondary: #3e5b3e;

  --confab-session-featured: #c8e6c9;
  --confab-session-featured-hover: #a5d6a7;
  --confab-session-alternate: #ffecb3;
  --confab-session-alternate-hover: #ffe082;
}

.confab-color-scheme-forest-dark {
  --confab-primary: #66bb6a;
  --confab-primary-hover: #4caf50;

  --confab-bg-primary: #0f1b0f;
  --confab-bg-secondary: #1b2e1b;
  --confab-bg-tertiary: #3e5f3e;
  --confab-bg-muted: #3e5b3e;

  --confab-text-primary: #c8e6c9;
  --confab-text-secondary: #a5d6a7;
  --confab-text-muted: #81c784;

  --confab-border-primary: #c8e6c9;
  --confab-border-secondary: #a5d6a7;

  --confab-session-featured: #2d452d;
  --confab-session-featured-hover: #3d553d;
  --confab-session-alternate: #3d2d1a;
  --confab-session-alternate-hover: #4d3d2a;
}

/* ==========================================================================
   AUTUMN THEME
   ========================================================================== */

.confab-color-scheme-autumn {
  --confab-primary: #cb6843;
  --confab-primary-hover: #b55937;

  --confab-bg-primary: #fffaf7;
  --confab-bg-secondary: #fef0eb;
  --confab-bg-tertiary: #f5ddd3;
  --confab-bg-muted: #e8ccbe;

  --confab-text-primary: #6b3620;
  --confab-text-secondary: #8b4528;
  --confab-text-muted: #a55534;

  --confab-border-primary: #8b4528;
  --confab-border-secondary: #a55534;

  --confab-session-featured: #edcfbe;
  --confab-session-featured-hover: #e0bda8;
  --confab-session-alternate: #d4ead9;
  --confab-session-alternate-hover: #c0e0c7;
}

.confab-color-scheme-autumn-dark {
  --confab-primary: #e8845f;
  --confab-primary-hover: #d9724d;

  --confab-bg-primary: #1a0f0a;
  --confab-bg-secondary: #2d1d15;
  --confab-bg-tertiary: #4a2f1f;
  --confab-bg-muted: #8b4528;

  --confab-text-primary: #f5ddd3;
  --confab-text-secondary: #edcfbe;
  --confab-text-muted: #e8845f;

  --confab-border-primary: #f5ddd3;
  --confab-border-secondary: #edcfbe;

  --confab-session-featured: #5a3f2f;
  --confab-session-featured-hover: #6a4f3f;
  --confab-session-alternate: #1a3d2d;
  --confab-session-alternate-hover: #2a4d3d;
}

/* ==========================================================================
   TERRACOTTA THEME
   ========================================================================== */

.confab-color-scheme-terracotta {
  --confab-primary: #e67e22;
  --confab-primary-hover: #d35400;

  --confab-bg-primary: #fffaf5;
  --confab-bg-secondary: #fff0e5;
  --confab-bg-tertiary: #ffe4d1;
  --confab-bg-muted: #fcd5b8;

  --confab-text-primary: #7c3d10;
  --confab-text-secondary: #9a4d15;
  --confab-text-muted: #c26419;

  --confab-border-primary: #9a4d15;
  --confab-border-secondary: #c26419;

  --confab-session-featured: #f5d9bf;
  --confab-session-featured-hover: #edc9a5;
  --confab-session-alternate: #e8f8fb;
  --confab-session-alternate-hover: #d4eff5;
}

.confab-color-scheme-terracotta-dark {
  --confab-primary: #ff9a56;
  --confab-primary-hover: #ff8533;

  --confab-bg-primary: #1a110a;
  --confab-bg-secondary: #2d1e12;
  --confab-bg-tertiary: #4a311d;
  --confab-bg-muted: #7c3d10;

  --confab-text-primary: #ffe4d1;
  --confab-text-secondary: #f5d9bf;
  --confab-text-muted: #ff9a56;

  --confab-border-primary: #ffe4d1;
  --confab-border-secondary: #f5d9bf;

  --confab-session-featured: #5a3f28;
  --confab-session-featured-hover: #6a4f38;
  --confab-session-alternate: #0f262a;
  --confab-session-alternate-hover: #1a3f47;
}

/* ==========================================================================
   Burgundy THEME
   ========================================================================== */

.confab-color-scheme-burgundy {
  --confab-primary: #b91c4a;
  --confab-primary-hover: #9f1239;

  --confab-bg-primary: #faf7f8;
  --confab-bg-secondary: #f5e8ed;
  --confab-bg-tertiary: #ead4dc;
  --confab-bg-muted: #ddc0cb;

  --confab-text-primary: #6d1230;
  --confab-text-secondary: #881337;
  --confab-text-muted: #a3164a;

  --confab-border-primary: #881337;
  --confab-border-secondary: #a3164a;

  --confab-session-featured: #e2c8d3;
  --confab-session-featured-hover: #d5b5c2;
  --confab-session-alternate: #fef4db;
  --confab-session-alternate-hover: #fde9c0;
}

.confab-color-scheme-burgundy-dark {
  --confab-primary: #fb7185;
  --confab-primary-hover: #f43f5e;

  --confab-bg-primary: #1a0a0f;
  --confab-bg-secondary: #2d1520;
  --confab-bg-tertiary: #4a2030;
  --confab-bg-muted: #881337;

  --confab-text-primary: #ead4dc;
  --confab-text-secondary: #e2c8d3;
  --confab-text-muted: #fb7185;

  --confab-border-primary: #ead4dc;
  --confab-border-secondary: #e2c8d3;

  --confab-session-featured: #5a3040;
  --confab-session-featured-hover: #6a4050;
  --confab-session-alternate: #3d3520;
  --confab-session-alternate-hover: #4d4530;
}

/* ==========================================================================
   SANGUINE THEME
   ========================================================================== */

.confab-color-scheme-sanguine {
  --confab-primary: #d32f2f;
  --confab-primary-hover: #b71c1c;

  --confab-bg-primary: #fff9f8;
  --confab-bg-secondary: #ffebee;
  --confab-bg-tertiary: #fad6d8;
  --confab-bg-muted: #f0bdc0;

  --confab-text-primary: #6d1b1b;
  --confab-text-secondary: #8b2020;
  --confab-text-muted: #b92626;

  --confab-border-primary: #8b2020;
  --confab-border-secondary: #b92626;

  --confab-session-featured: #f5cfd1;
  --confab-session-featured-hover: #edb8bb;
  --confab-session-alternate: #faf6e8;
  --confab-session-alternate-hover: #f5edd3;
}

.confab-color-scheme-sanguine-dark {
  --confab-primary: #ef5350;
  --confab-primary-hover: #e53935;

  --confab-bg-primary: #1a0a0a;
  --confab-bg-secondary: #2d1515;
  --confab-bg-tertiary: #4a2020;
  --confab-bg-muted: #6d1b1b;

  --confab-text-primary: #fad6d8;
  --confab-text-secondary: #f5cfd1;
  --confab-text-muted: #ef5350;

  --confab-border-primary: #fad6d8;
  --confab-border-secondary: #f5cfd1;

  --confab-session-featured: #5a2828;
  --confab-session-featured-hover: #6a3838;
  --confab-session-alternate: #3d3820;
  --confab-session-alternate-hover: #4d4830;
}

/* ==========================================================================
   HONEY THEME
   ========================================================================== */

.confab-color-scheme-honey {
  --confab-primary: #b8860b;
  --confab-primary-hover: #9a7209;

  --confab-bg-primary: #fffef5;
  --confab-bg-secondary: #fefaeb;
  --confab-bg-tertiary: #f5efd5;
  --confab-bg-muted: #e8dfc0;

  --confab-text-primary: #5c4a0a;
  --confab-text-secondary: #6d5b10;
  --confab-text-muted: #8b7314;

  --confab-border-primary: #6d5b10;
  --confab-border-secondary: #8b7314;

  --confab-session-featured: #ead9b8;
  --confab-session-featured-hover: #dccaa0;
  --confab-session-alternate: #e5e0f5;
  --confab-session-alternate-hover: #d6cfe8;
}

.confab-color-scheme-honey-dark {
  --confab-primary: #facc15;
  --confab-primary-hover: #eab308;

  --confab-bg-primary: #1a1810;
  --confab-bg-secondary: #2d2520;
  --confab-bg-tertiary: #4a3f30;
  --confab-bg-muted: #6d5b10;

  --confab-text-primary: #f5efd5;
  --confab-text-secondary: #ead9b8;
  --confab-text-muted: #facc15;

  --confab-border-primary: #f5efd5;
  --confab-border-secondary: #ead9b8;

  --confab-session-featured: #5a4f40;
  --confab-session-featured-hover: #6a5f50;
  --confab-session-alternate: #2d2f4a;
  --confab-session-alternate-hover: #3d3f5a;
}

/* ==========================================================================
   SUNRISE THEME
   ========================================================================== */

.confab-color-scheme-sunrise {
  --confab-primary: #d9683c;
  --confab-primary-hover: #c25530;

  --confab-bg-primary: #fff9f5;
  --confab-bg-secondary: #fff0e8;
  --confab-bg-tertiary: #ffe3d5;
  --confab-bg-muted: #fcd2be;

  --confab-text-primary: #7c3a20;
  --confab-text-secondary: #9a4a2c;
  --confab-text-muted: #b85c38;

  --confab-border-primary: #9a4a2c;
  --confab-border-secondary: #b85c38;

  --confab-session-featured: #f5d4c1;
  --confab-session-featured-hover: #ebc3ad;
  --confab-session-alternate: #f0e5f5;
  --confab-session-alternate-hover: #e3d5eb;
}

.confab-color-scheme-sunrise-dark {
  --confab-primary: #ff8c5a;
  --confab-primary-hover: #ff7843;

  --confab-bg-primary: #1a100a;
  --confab-bg-secondary: #2d1f15;
  --confab-bg-tertiary: #4a331f;
  --confab-bg-muted: #7c3a20;

  --confab-text-primary: #ffe3d5;
  --confab-text-secondary: #f5d4c1;
  --confab-text-muted: #ff8c5a;

  --confab-border-primary: #ffe3d5;
  --confab-border-secondary: #f5d4c1;

  --confab-session-featured: #5a3f2f;
  --confab-session-featured-hover: #6a4f3f;
  --confab-session-alternate: #3d2f4a;
  --confab-session-alternate-hover: #4d3f5a;
}

/* ==========================================================================
   LAGOON THEME
   ========================================================================== */

.confab-color-scheme-lagoon {
  --confab-primary: #00b8d4;
  --confab-primary-hover: #0097a7;

  --confab-bg-primary: #f7fcfd;
  --confab-bg-secondary: #e8f8fb;
  --confab-bg-tertiary: #d4eff5;
  --confab-bg-muted: #bde5ed;

  --confab-text-primary: #0a4955;
  --confab-text-secondary: #0d5f6d;
  --confab-text-muted: #00838f;

  --confab-border-primary: #0d5f6d;
  --confab-border-secondary: #00838f;

  --confab-session-featured: #b8e6ef;
  --confab-session-featured-hover: #a0dbe6;
  --confab-session-alternate: #fce8f3;
  --confab-session-alternate-hover: #f9d5e8;
}

.confab-color-scheme-lagoon-dark {
  --confab-primary: #26c6da;
  --confab-primary-hover: #00acc1;

  --confab-bg-primary: #0a1618;
  --confab-bg-secondary: #0f262a;
  --confab-bg-tertiary: #1a3f47;
  --confab-bg-muted: #0d5f6d;

  --confab-text-primary: #d4eff5;
  --confab-text-secondary: #b8e6ef;
  --confab-text-muted: #26c6da;

  --confab-border-primary: #d4eff5;
  --confab-border-secondary: #b8e6ef;

  --confab-session-featured: #2a5560;
  --confab-session-featured-hover: #3a6570;
  --confab-session-alternate: #4a2d3d;
  --confab-session-alternate-hover: #5a3d4d;
}

/* ==========================================================================
   TABLE LAYOUT BASE
   ========================================================================== */

.confab-layout-table {
  width: 100%;
  border-spacing: 0;
  border-collapse: collapse;
  table-layout: fixed;
  margin-bottom: 0;
  background: var(--confab-bg-primary);
  color: var(--confab-text-primary);
}

@media (max-width: 700px) {
  .confab-layout-table {
    border: none;
  }
}

/* Table Headers */
.confab-layout-table thead th {
  background: var(--confab-bg-tertiary);
  color: var(--confab-text-primary);
  border-bottom: none;
  font-weight: 600;
  padding: var(--confab-spacing-md) var(--confab-spacing-sm);
  border: 1px solid var(--confab-border-primary);
  border-bottom: none;
  font-size: var(--confab-font-size-sm);
}

@media (max-width: 700px) {
  .confab-layout-table thead {
    display: none;
  }
}

/* Table Body */
.confab-layout-table tbody,
.confab-layout-table tr,
.confab-layout-table td,
.confab-layout-table th {
  text-align: center;
  vertical-align: top;
}

@media (max-width: 700px) {

  .confab-layout-table tbody,
  .confab-layout-table tr,
  .confab-layout-table td,
  .confab-layout-table th {
    display: block;
  }
}

/* Table Rows - Alternating Pattern */
.confab-layout-table tbody tr:nth-child(odd) {
  background: var(--confab-bg-primary);
}

.confab-layout-table tbody tr:nth-child(even) {
  background: var(--confab-bg-secondary);
}

@media (max-width: 700px) {
  .confab-layout-table tr {
    border: 1px solid var(--confab-border-primary);
    border-radius: var(--confab-border-radius);
    margin-bottom: var(--confab-spacing-md);
    box-shadow: var(--confab-shadow-sm);
  }

  .confab-layout-table .confab-time {
    font-size: var(--confab-font-size-xl);
    padding: 0 var(--confab-spacing-md);
    background: var(--confab-bg-secondary);
    border-radius: var(--confab-border-radius) var(--confab-border-radius) 0 0;
    width: 100%;
    min-width: 100%;
    max-width: 100%;
    border: none !important;
    border-bottom: 1px solid var(--confab-border-primary) !important;
  }

  .confab-layout-table tbody td[class*="confab-session-type-"] {
    border: none !important;
  }

  .confab-layout-table [class*="confab-session-type-"]:before {
    color: var(--confab-text-muted);
    content: attr(data-track-title);
    border-bottom: 1px dashed var(--confab-border-secondary);
    border-top: 1px dashed var(--confab-border-secondary);
    display: block;
    font-size: var(--confab-font-size-lg);
    line-height: 1;
    margin-bottom: var(--confab-spacing-sm);
    padding: var(--confab-spacing-xs) var(--confab-spacing-md);
    background: var(--confab-bg-secondary);
  }
}

/* Table Cells */
.confab-layout-table tr td {
  padding: var(--confab-spacing-sm) var(--confab-spacing-md);
  border: none;
  white-space: pre-wrap;
  word-break: break-word;
  transition: background-color var(--confab-transition-fast);
}

/* Cell Hover - Universal Tertiary Background */
.confab-layout-table tbody td:not(.confab-session-empty):hover {
  background: var(--confab-bg-tertiary);
}

/* Empty Sessions - Base */
.confab-layout-table .confab-session-empty {
  border-right: 1px solid var(--confab-border-primary);
}

/* Empty cell alternation - match normal sessions */
.confab-layout-table tbody tr:nth-child(odd) .confab-session-empty {
  background: var(--confab-bg-primary);
}

.confab-layout-table tbody tr:nth-child(even) .confab-session-empty {
  background: var(--confab-bg-secondary);
}

/* Empty cell hover - match normal sessions */
.confab-layout-table tbody .confab-session-empty:hover {
  background: var(--confab-bg-tertiary) !important;
}

/* Bordered style - ensure borders show on empty cells */
.confab-table-style-bordered .confab-session-empty {
  border-right: 1px solid var(--confab-border-primary);
  border-top: 1px solid var(--confab-border-primary);
}

@media (max-width: 700px) {
  .confab-layout-table .confab-session-empty {
    display: none;
  }
}

/* Time Column */
.confab-layout-table .confab-time {
  width: 105px;
  min-width: 105px;
  max-width: 105px;
  border: 1px solid var(--confab-border-primary);
  border-bottom: 0;
  font-weight: 600;
  color: var(--confab-text-secondary);
}

.confab-layout-table .confab-col-time {
  width: 105px;
  min-width: 105px;
  max-width: 105px;
}

@media (max-width: 700px) {
  .confab-layout-table .confab-time {
    font-size: var(--confab-font-size-xl);
    padding: 0 var(--confab-spacing-md);
    background: var(--confab-bg-secondary);
    border-radius: var(--confab-border-radius) var(--confab-border-radius) 0 0;
    width: 100%;
    min-width: 100%;
    max-width: 100%;
  }

  .confab-layout-table .confab-col-time {
    width: 100%;
    min-width: 100%;
    max-width: 100%;
  }
}

/* Session Type Base Styling */
.confab-layout-table [class*="confab-session-type-"] {
  border-right: 1px solid var(--confab-border-primary);
  border-top: 1px solid var(--confab-border-primary);
}

/* Featured Sessions - Override Row Pattern */
.confab-layout-table .confab-session-type-featured {
  background: var(--confab-session-featured) !important;
}

.confab-layout-table .confab-session-type-featured:hover {
  background: var(--confab-session-featured-hover) !important;
}

/* Alternate Sessions - Override Row Pattern */
.confab-layout-table .confab-session-type-alternate {
  background: var(--confab-session-alternate) !important;
}

.confab-layout-table .confab-session-type-alternate:hover {
  background: var(--confab-session-alternate-hover) !important;
}

/* Global Sessions Spanning All Tracks */
.confab-layout-table .confab-global-session td {
  padding: var(--confab-spacing-md) 0 !important;
}

/* Session Content */
.confab-layout-table .confab-session-cell-content h3 {
  font-size: var(--confab-font-size-lg);
  margin-bottom: var(--confab-spacing-xs);
  color: var(--confab-text-primary);
}

/* Excerpt Paragraphs */
.confab-layout-table .confab-session-cell-content p {
  font-size: var(--confab-font-size-sm);
  color: var(--confab-text-secondary);
  line-height: 1.5;
  margin: 0;
}

@media (max-width: 700px) {
  .confab-layout-table .confab-session-title {
    display: block;
    padding: var(--confab-spacing-md);
  }

  .confab-layout-table .confab-session-type-normal {
    line-height: 1.4;
    margin-bottom: var(--confab-spacing-md);
  }
}

/* Track Descriptions & Speakers */
.confab-layout-table .confab-track-description,
.confab-layout-table .confab-session-speakers,
.confab-layout-table .confab-session-location {
  color: var(--confab-text-secondary);
  font-size: var(--confab-font-size-sm);
  color: var(--confab-text-muted);
  font-style: italic;
}

@media (max-width: 700px) {

  .confab-layout-table .confab-session-speakers,
  .confab-layout-table .confab-session-location {
    display: block;
    padding-left: var(--confab-spacing-lg);
  }

  .confab-layout-table [class*="confab-session-type-"]:before {
    color: var(--confab-text-muted);
    content: attr(data-track-title);
    border-bottom: 1px dashed var(--confab-border-secondary);
    border-top: 1px dashed var(--confab-border-secondary);
    display: block;
    font-size: var(--confab-font-size-lg);
    line-height: 1;
    margin-bottom: var(--confab-spacing-sm);
    padding: var(--confab-spacing-xs) var(--confab-spacing-md);
    background: var(--confab-bg-secondary);
  }

  .confab-layout-table .confab-global-session [class*="confab-session-type-"]:before {
    display: none;
  }
}

/* Links */
.confab-layout-table a {
  color: var(--confab-primary);
  text-decoration: none;
  transition: color var(--confab-transition-fast);
}

.confab-layout-table a:hover {
  color: var(--confab-primary-hover);
  text-decoration: underline;
}

/* ==========================================================================
   TABLE STYLE VARIATIONS
   ========================================================================== */

/* Bordered Table Style (Default) */
.confab-table-style-bordered {
  border-bottom: 1px solid var(--confab-border-primary);
}

/* Borderless Table Style */
.confab-table-style-borderless {
  border: none;
  background: transparent;
}

.confab-table-style-borderless thead th,
.confab-table-style-borderless tbody td {
  border: none !important;
}

.confab-table-style-borderless thead th {
  background: var(--confab-bg-tertiary);
  color: var(--confab-text-primary);
  border-bottom: 2px solid var(--confab-border-primary) !important;
}

.confab-table-style-borderless .confab-time {
  border: none !important;
}

.confab-table-style-borderless [class*="confab-session-type-"] {
  border: none !important;
}

/* Rounded Table Style */
.confab-table-style-rounded {
  border-spacing: 8px;
  border-collapse: separate;
  border: none;
  background: transparent;
}

.confab-table-style-rounded thead th {
  border-radius: var(--confab-border-radius);
  border: 1px solid var(--confab-border-primary);
  background: var(--confab-bg-tertiary);
  color: var(--confab-text-primary);
}

.confab-table-style-rounded tbody td {
  border-radius: var(--confab-border-radius);
  border: 1px solid var(--confab-border-primary);
}

/* Disable row-level backgrounds for rounded style */
.confab-table-style-rounded tbody tr:nth-child(odd),
.confab-table-style-rounded tbody tr:nth-child(even) {
  background: transparent !important;
}

/* Normal session cells - alternating backgrounds */
.confab-table-style-rounded tbody tr:nth-child(odd) td.confab-session-type-normal {
  background: var(--confab-bg-primary);
}

.confab-table-style-rounded tbody tr:nth-child(even) td.confab-session-type-normal {
  background: var(--confab-bg-secondary);
}

/* Normal session hover */
.confab-table-style-rounded tbody td.confab-session-type-normal:hover {
  background: var(--confab-bg-tertiary) !important;
}

/* Time column - alternating backgrounds */
.confab-table-style-rounded tbody tr:nth-child(odd) .confab-time {
  background: var(--confab-bg-primary);
}

.confab-table-style-rounded tbody tr:nth-child(even) .confab-time {
  background: var(--confab-bg-secondary);
}

/* Time column hover */
.confab-table-style-rounded .confab-time:hover {
  background: var(--confab-bg-tertiary) !important;
}

/* Empty cells - alternating backgrounds to match row */
.confab-table-style-rounded tbody tr:nth-child(odd) .confab-session-empty {
  background: var(--confab-bg-primary);
  border: 1px solid var(--confab-border-primary);
}

.confab-table-style-rounded tbody tr:nth-child(even) .confab-session-empty {
  background: var(--confab-bg-secondary);
  border: 1px solid var(--confab-border-primary);
}

/* Empty cell hover */
.confab-table-style-rounded .confab-session-empty:hover {
  background: var(--confab-bg-tertiary) !important;
}

/* Featured sessions for rounded tables */
.confab-table-style-rounded .confab-session-type-featured {
  background: var(--confab-session-featured) !important;
}

.confab-table-style-rounded .confab-session-type-featured:hover {
  background: var(--confab-session-featured-hover) !important;
}

/* Alternate sessions for rounded tables */
.confab-table-style-rounded .confab-session-type-alternate {
  background: var(--confab-session-alternate) !important;
}

.confab-table-style-rounded .confab-session-type-alternate:hover {
  background: var(--confab-session-alternate-hover) !important;
}

/* ==========================================================================
   Mobile 
   ========================================================================== */

@media (max-width: 700px) {
  .confab-table-style-rounded {
    border-spacing: 0;
    border-collapse: collapse;
  }

  .confab-table-style-rounded tbody td {
    border-radius: 0;
    border: none;
  }
}

/* ==========================================================================
   TAB NAVIGATION COMPONENTS
   ========================================================================== */

.confab-tabs {
  margin-bottom: var(--confab-spacing-lg);
}

.confab-tabs-list {
  display: flex;
  border-bottom: 2px solid var(--confab-border-primary);
  margin-bottom: var(--confab-spacing-lg);
  border-radius: var(--confab-border-radius) var(--confab-border-radius) 0 0;
  overflow: hidden;
}

.confab-tabs-list-button {
  background: var(--confab-bg-secondary);
  border: none;
  padding: var(--confab-spacing-md) var(--confab-spacing-lg);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  font-size: var(--confab-font-size-base);
  color: var(--confab-text-secondary);
  transition: all var(--confab-transition-base);
  position: relative;
}

.confab-tabs-list-button:hover {
  background: var(--confab-bg-muted);
  color: var(--confab-text-primary);
}

.confab-tabs .confab-tabs-list-button[aria-selected="true"] {
  border-bottom-color: var(--confab-primary) !important;
  color: var(--confab-primary) !important;
  font-weight: 600;
  background: var(--confab-bg-primary);
}

.confab-tabs .confab-tabs-list-button[aria-selected="true"]:hover {
  color: var(--confab-primary-hover) !important;
  border-bottom-color: var(--confab-primary-hover) !important;
}

.confab-tabs-panel[hidden] {
  display: none;
}

/* Mobile Tab Layout */
@media (max-width: 700px) {
  .confab-tabs-list {
    flex-direction: column;
    border-bottom: none;
    border-radius: var(--confab-border-radius);
    overflow: hidden;
    box-shadow: var(--confab-shadow-sm);
  }

  .confab-tabs-list-button {
    border-bottom: 1px solid var(--confab-border-primary);
    border-right: none;
    text-align: left;
  }

  .confab-tabs .confab-tabs-list-button[aria-selected="true"] {
    border-bottom-color: var(--confab-border-primary) !important;
    border-left: 3px solid var(--confab-primary) !important;
    background: var(--confab-bg-primary);
  }
}

/* ==========================================================================
   GRID LAYOUT COMPONENTS
   ========================================================================== */

/* Time Slot Container - Two Column Layout on Desktop */
.confab-grid-time-slot {
  display: flex;
  gap: var(--confab-spacing-md);
  margin-bottom: var(--confab-spacing-md);
  align-items: stretch;
  /* Changed from flex-start */
}

/* Time Label - Left Column */
.confab-grid-time-label {
  flex: 0 0 120px;
  font-size: var(--confab-font-size-lg);
  font-weight: 600;
  color: var(--confab-text-secondary);
  padding: var(--confab-spacing-md);
  background: var(--confab-bg-secondary);
  border-radius: var(--confab-border-radius);
  text-align: center;
  transition: all var(--confab-transition-base);
}

.confab-grid-time-label:hover {
  box-shadow: var(--confab-shadow-lg);
  transform: translateY(-2px);
}

/* Track/Global Containers - Right Column */
.confab-grid-tracks,
.confab-grid-global {
  flex: 1;
}

/* Track Container - Desktop Grid */
.confab-grid-tracks {
  display: grid;
  gap: var(--confab-spacing-md);
  align-items: start;
}

/* Global Session Container */
.confab-grid-global {
  display: block;
}

/* Track Cell - Individual Session Card */
.confab-grid-track-cell {
  background: var(--confab-bg-primary);
  border-radius: var(--confab-border-radius);
  padding: var(--confab-spacing-lg);
  box-shadow: var(--confab-shadow-sm);
  transition: all var(--confab-transition-base);
  height: 100%;
}

/* Show track label on all sessions except global */
.confab-grid-track-cell::before {
  content: attr(data-track);
  display: block;
  font-size: var(--confab-font-size-sm);
  font-weight: 600;
  color: var(--confab-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding-bottom: var(--confab-spacing-sm);
  margin-bottom: var(--confab-spacing-sm);
  border-bottom: 1px dashed var(--confab-border-secondary);
}

/* Hide track label for global sessions */
.confab-grid-global .confab-grid-track-cell::before {
  display: none;
}

.confab-grid-track-cell:hover {
  box-shadow: var(--confab-shadow-lg);
}

/* Session Type Styling - Featured */
.confab-grid-track-cell.confab-session-type-featured {
  background: var(--confab-session-featured);
}

.confab-grid-track-cell.confab-session-type-featured:hover {
  background: var(--confab-session-featured-hover) !important;
}

/* Session Type Styling - Alternate */
.confab-grid-track-cell.confab-session-type-alternate {
  background: var(--confab-session-alternate);
}

.confab-grid-track-cell.confab-session-type-alternate:hover {
  background: var(--confab-session-alternate-hover) !important;
}

/* Normal session and time card hover - tertiary background */
.confab-grid-track-cell.confab-session-type-normal:hover,
.confab-grid-time-label:hover {
  background: var(--confab-bg-tertiary) !important;
}

/* Empty Grid Cells */
.confab-grid-empty {
  background: var(--confab-bg-primary);
  border-radius: var(--confab-border-radius);
  padding: var(--confab-spacing-lg);
  box-shadow: var(--confab-shadow-sm);
  transition: all var(--confab-transition-base);
  height: 100%;
  min-height: 100px;
}

.confab-grid-empty:hover {
  box-shadow: var(--confab-shadow-lg);
  transform: translateY(-2px);
}

/* Alternating backgrounds for normal sessions and time labels */
.confab-grid-time-slot:nth-child(odd) .confab-grid-time-label,
.confab-grid-time-slot:nth-child(odd) .confab-grid-track-cell.confab-session-type-normal,
.confab-grid-time-slot:nth-child(odd) .confab-grid-empty {
  background: var(--confab-bg-primary);
}

.confab-grid-time-slot:nth-child(even) .confab-grid-time-label,
.confab-grid-time-slot:nth-child(even) .confab-grid-track-cell.confab-session-type-normal,
.confab-grid-time-slot:nth-child(even) .confab-grid-empty {
  background: var(--confab-bg-secondary);
}

/* Session Card Content */
.confab-grid-session-card {
  display: flex;
  flex-direction: column;
  gap: var(--confab-spacing-xs);
}

.confab-grid-session-time {
  font-size: var(--confab-font-size-sm);
  font-weight: 600;
  color: var(--confab-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.confab-grid-session-card .confab-grid-session-title {
  font-size: var(--confab-font-size-lg);
  margin: 0;
  color: var(--confab-text-primary);
}

.confab-grid-session-title a {
  color: var(--confab-primary);
  text-decoration: none;
  transition: color var(--confab-transition-fast);
}

.confab-grid-session-title a:hover {
  color: var(--confab-primary-hover);
  text-decoration: underline;
}

.confab-grid-session-excerpt,
.confab-grid-session-content {
  font-size: var(--confab-font-size-sm);
  color: var(--confab-text-secondary);
  line-height: 1.5;
  margin: 0 !important;
}

.confab-grid-session-speakers,
.confab-grid-session-location {
  font-size: var(--confab-font-size-sm);
  color: var(--confab-text-muted);
  font-style: italic;
  margin: 0 !important;
}

.confab-grid-session-speakers strong,
.confab-grid-session-location strong {
  font-style: normal;
}


/* Grid Style Variations */

/* Borderless Grid Style */
.confab-table-style-borderless.confab-layout-grid .confab-grid-track-cell,
.confab-table-style-borderless.confab-layout-grid .confab-grid-empty,
.confab-table-style-borderless.confab-layout-grid .confab-grid-time-label {
  border: none !important;
  box-shadow: none;
}

.confab-table-style-borderless.confab-layout-grid .confab-grid-track-cell:hover,
.confab-table-style-borderless.confab-layout-grid .confab-grid-empty:hover {
  box-shadow: none;
}

/* Rounded Grid Style */
.confab-table-style-rounded.confab-layout-grid .confab-grid-tracks {
  gap: var(--confab-spacing-lg);
}

.confab-table-style-rounded.confab-layout-grid .confab-grid-track-cell,
.confab-table-style-rounded.confab-layout-grid .confab-grid-empty,
.confab-table-style-rounded.confab-layout-grid .confab-grid-time-label {
  border-radius: var(--confab-border-radius-large);
}

/* Mobile Responsive - Stack to Single Column */
@media (max-width: 782px) {
  .confab-grid-time-slot {
    flex-direction: column;
    gap: var(--confab-spacing-sm);
  }

  .confab-grid-time-label {
    flex: 1;
    font-size: var(--confab-font-size-2xl);
    position: sticky;
    top: 0;
    z-index: 10;
    box-shadow: var(--confab-shadow-sm);
  }

  .confab-grid-tracks {
    grid-template-columns: 1fr !important;
  }

  .confab-grid-track-cell {
    position: relative;
  }

  /* Show track label on mobile */
  .confab-grid-track-cell::before {
    content: attr(data-track);
    display: block;
    font-size: var(--confab-font-size-sm);
    font-weight: 600;
    color: var(--confab-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding-bottom: var(--confab-spacing-sm);
    margin-bottom: var(--confab-spacing-sm);
    border-bottom: 1px dashed var(--confab-border-secondary);
  }

  /* Hide track label for global sessions */
  .confab-grid-global .confab-grid-track-cell::before {
    display: none;
  }
}

/* ==========================================================================
   EMPTY STATE STYLING
   Displays user-friendly message when no sessions are scheduled for a date.
   Two-tone design using featured and alternate session colors for visual interest.
   ========================================================================== */
.confab-empty-state {
  display: flex;
  flex-direction: column;
  border-radius: var(--confab-border-radius);
  overflow: hidden;
  box-shadow: var(--confab-shadow-sm);
  min-height: 120px;
  margin-bottom: var(--confab-spacing-lg);
}

.confab-schedule .confab-empty-state-header {
  flex: 1;
  background: var(--confab-session-featured) !important;
  padding: var(--confab-spacing-md);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  transition: background-color var(--confab-transition-base);
}

.confab-schedule .confab-empty-state-header:hover {
  background: var(--confab-session-featured-hover) !important;
}

.confab-schedule .confab-empty-state-header h2 {
  font-size: var(--confab-font-size-2xl);
  color: var(--confab-text-primary) !important;
  margin: 0 0 var(--confab-spacing-xs) 0 !important;
  font-weight: 700;
  background: transparent !important;
}

.confab-schedule .confab-empty-state-subtitle {
  font-size: var(--confab-font-size-base);
  color: var(--confab-text-secondary) !important;
  font-weight: 400;
  font-style: italic;
}

.confab-schedule .confab-empty-state-message {
  flex: 1;
  background: var(--confab-session-alternate) !important;
  padding: var(--confab-spacing-md);
  font-size: var(--confab-font-size-lg);
  color: var(--confab-text-primary) !important;
  display: flex;
  align-items: center;
  transition: background-color var(--confab-transition-base);
}

.confab-schedule .confab-empty-state-message:hover {
  background: var(--confab-session-alternate-hover) !important;
}

.confab-schedule .confab-empty-state-message strong {
  color: var(--confab-text-primary) !important;
}

/* ==========================================================================
   UTILITY CLASSES
   ========================================================================== */

.confab-promo {
  text-align: right;
  color: var(--confab-text-muted);
  font-size: var(--confab-font-size-sm);
}

/* ==========================================================================
   ACCESSIBILITY ENHANCEMENTS
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
    animation: none !important;
  }
}

/* Focus states */
.confab-tabs-list-button:focus {
  outline: 2px solid var(--confab-primary);
  outline-offset: 2px;
}

.confab-layout-table a:focus {
  outline: 2px solid var(--confab-primary);
  outline-offset: 1px;
  border-radius: 2px;
}