/* Built by bin/rails assets:build_css - base/, layout/, components/, pages/ included automatically */

/* === base/tokens.css === */
/*
 * Design Tokens - TDS (Trailhead Design System) Pixel-Perfect Implementation
 * Color primitives, semantic tokens, spacing, typography, and theming
 * Based on original Salesforce Trailhead TDS
 */

:root {
  /* -------------------------------------------------------------------------
     TDS Color Primitives - Exact HSL values from original TDS
     ------------------------------------------------------------------------- */
  --tds-color-white-h: 0;
  --tds-color-white-s: 0%;
  --tds-color-white-l: 100%;
  --tds-color-white: hsl(var(--tds-color-white-h), var(--tds-color-white-s), var(--tds-color-white-l));

  --tds-color-fog-h: 0;
  --tds-color-fog-s: 0%;
  --tds-color-fog-l: 89.80392156862746%;
  --tds-color-fog: hsl(var(--tds-color-fog-h), var(--tds-color-fog-s), var(--tds-color-fog-l));

  --tds-color-gray-neutral-h: 0;
  --tds-color-gray-neutral-s: 0%;
  --tds-color-gray-neutral-l: 78.82352941176471%;
  --tds-color-gray-neutral: hsl(var(--tds-color-gray-neutral-h), var(--tds-color-gray-neutral-s), var(--tds-color-gray-neutral-l));

  --tds-color-sand-h: 0;
  --tds-color-sand-s: 0%;
  --tds-color-sand-l: 95.29411764705881%;
  --tds-color-sand: hsl(var(--tds-color-sand-h), var(--tds-color-sand-s), var(--tds-color-sand-l));

  --tds-color-ice-h: 216;
  --tds-color-ice-s: 22.727272727272734%;
  --tds-color-ice-l: 74.11764705882354%;
  --tds-color-ice: hsl(var(--tds-color-ice-h), var(--tds-color-ice-s), var(--tds-color-ice-l));

  --tds-color-granite-h: 0;
  --tds-color-granite-s: 0%;
  --tds-color-granite-l: 68.23529411764706%;
  --tds-color-granite: hsl(var(--tds-color-granite-h), var(--tds-color-granite-s), var(--tds-color-granite-l));

  --tds-color-stormcloud-h: 0;
  --tds-color-stormcloud-s: 0%;
  --tds-color-stormcloud-l: 57.647058823529406%;
  --tds-color-stormcloud: hsl(var(--tds-color-stormcloud-h), var(--tds-color-stormcloud-s), var(--tds-color-stormcloud-l));

  --tds-color-fraggle-h: 0;
  --tds-color-fraggle-s: 0%;
  --tds-color-fraggle-l: 45.490196078431374%;
  --tds-color-fraggle: hsl(var(--tds-color-fraggle-h), var(--tds-color-fraggle-s), var(--tds-color-fraggle-l));

  --tds-color-meteorite-h: 0;
  --tds-color-meteorite-s: 0%;
  --tds-color-meteorite-l: 36.07843137254902%;
  --tds-color-meteorite: hsl(var(--tds-color-meteorite-h), var(--tds-color-meteorite-s), var(--tds-color-meteorite-l));

  --tds-color-black-h: 0;
  --tds-color-black-s: 0%;
  --tds-color-black-l: 9.411764705882353%;
  --tds-color-black: hsl(var(--tds-color-black-h), var(--tds-color-black-s), var(--tds-color-black-l));

  /* TDS Blue Colors */
  --tds-color-foundation-blue-h: 218.82352941176464;
  --tds-color-foundation-blue-s: 100%;
  --tds-color-foundation-blue-l: 96.66666666666667%;
  --tds-color-foundation-blue: hsl(var(--tds-color-foundation-blue-h), var(--tds-color-foundation-blue-s), var(--tds-color-foundation-blue-l));

  --tds-color-ocean-h: 206.57142857142856;
  --tds-color-ocean-s: 99.05660377358491%;
  --tds-color-ocean-l: 41.56862745098039%;
  --tds-color-ocean: hsl(var(--tds-color-ocean-h), var(--tds-color-ocean-s), var(--tds-color-ocean-l));

  --tds-color-vibrant-ocean-h: 207.63157894736844;
  --tds-color-vibrant-ocean-s: 100%;
  --tds-color-vibrant-ocean-l: 55.294117647058826%;
  --tds-color-vibrant-ocean: hsl(var(--tds-color-vibrant-ocean-h), var(--tds-color-vibrant-ocean-s), var(--tds-color-vibrant-ocean-l));

  /* TDS Midnight (official design system token) */
  --tds-color-midnight-h: 212.9032258064516;
  --tds-color-midnight-s: 93.93939393939394%;
  --tds-color-midnight-l: 19.411764705882355%;
  --tds-color-midnight: hsl(var(--tds-color-midnight-h), var(--tds-color-midnight-s), var(--tds-color-midnight-l));

  /* Legacy Trailhead Midnight (#16325c - used in .th-bg--midnight) */
  --tds-color-midnight-legacy-h: 216;
  --tds-color-midnight-legacy-s: 61.403508771929836%;
  --tds-color-midnight-legacy-l: 22.352941176470587%;
  --tds-color-midnight-legacy: hsl(var(--tds-color-midnight-legacy-h), var(--tds-color-midnight-legacy-s), var(--tds-color-midnight-legacy-l));

  --tds-color-azure-h: 209.625;
  --tds-color-azure-s: 87.91208791208793%;
  --tds-color-azure-l: 35.686274509803916%;
  --tds-color-azure: hsl(var(--tds-color-azure-h), var(--tds-color-azure-s), var(--tds-color-azure-l));

  --tds-color-clear-sky-h: 205.090909090909;
  --tds-color-clear-sky-s: 98.21428571428572%;
  --tds-color-clear-sky-l: 78.03921568627452%;
  --tds-color-clear-sky: hsl(var(--tds-color-clear-sky-h), var(--tds-color-clear-sky-s), var(--tds-color-clear-sky-l));

  --tds-color-sky-h: 218.82352941176464;
  --tds-color-sky-s: 100%;
  --tds-color-sky-l: 96.66666666666667%;
  --tds-color-sky: hsl(var(--tds-color-sky-h), var(--tds-color-sky-s), var(--tds-color-sky-l));

  /* TDS Green Colors */
  --tds-color-evergreen-h: 139.53488372093022;
  --tds-color-evergreen-s: 48.31460674157303%;
  --tds-color-evergreen-l: 34.90196078431373%;
  --tds-color-evergreen: hsl(var(--tds-color-evergreen-h), var(--tds-color-evergreen-s), var(--tds-color-evergreen-l));

  --tds-color-vibrant-green-h: 150.76923076923077;
  --tds-color-vibrant-green-s: 58.2089552238806%;
  --tds-color-vibrant-green-l: 13.137254901960786%;
  --tds-color-vibrant-green: hsl(var(--tds-color-vibrant-green-h), var(--tds-color-vibrant-green-s), var(--tds-color-vibrant-green-l));

  /* TDS Red Colors */
  --tds-color-ruby-h: 354.0331491712707;
  --tds-color-ruby-s: 94.76439790575915%;
  --tds-color-ruby-l: 37.450980392156865%;
  --tds-color-ruby: hsl(var(--tds-color-ruby-h), var(--tds-color-ruby-s), var(--tds-color-ruby-l));

  --tds-color-pearl-h: 11.249999999999943;
  --tds-color-pearl-s: 88.88888888888893%;
  --tds-color-pearl-l: 96.47058823529412%;
  --tds-color-pearl: hsl(var(--tds-color-pearl-h), var(--tds-color-pearl-s), var(--tds-color-pearl-l));

  /* TDS Other Colors */
  --tds-color-sunshine-h: 32;
  --tds-color-sunshine-s: 97.56097560975611%;
  --tds-color-sunshine-l: 48.23529411764705%;
  --tds-color-sunshine: hsl(var(--tds-color-sunshine-h), var(--tds-color-sunshine-s), var(--tds-color-sunshine-l));

  --tds-color-lemon-chiffon-h: 42.22222222222223;
  --tds-color-lemon-chiffon-s: 77.14285714285714%;
  --tds-color-lemon-chiffon-l: 93.13725490196079%;
  --tds-color-lemon-chiffon: hsl(var(--tds-color-lemon-chiffon-h), var(--tds-color-lemon-chiffon-s), var(--tds-color-lemon-chiffon-l));

  --tds-color-warning-60-h: 39.40298507462688;
  --tds-color-warning-60-s: 99.01477832512316%;
  --tds-color-warning-60-l: 39.80392156862745%;
  --tds-color-warning-60: hsl(var(--tds-color-warning-60-h), var(--tds-color-warning-60-s), var(--tds-color-warning-60-l));

  /* TDS Semantic Colors */
  --tds-color-brand-h: 206.57142857142856;
  --tds-color-brand-s: 99.05660377358491%;
  --tds-color-brand-l: 41.56862745098039%;
  --tds-color-brand: hsl(var(--tds-color-brand-h), var(--tds-color-brand-s), var(--tds-color-brand-l));

  /* Success/Completed Green - Exact value from original TDS (#048149) */
  --tds-color-success: #048149;
  /* Alternative success green for vertical line (#068149) */
  --tds-color-success-line: #068149;
  --tds-color-success: hsl(var(--tds-color-success-h), var(--tds-color-success-s), var(--tds-color-success-l));

  --tds-color-destructive-h: 354.0331491712707;
  --tds-color-destructive-s: 94.76439790575915%;
  --tds-color-destructive-l: 37.450980392156865%;
  --tds-color-destructive: hsl(var(--tds-color-destructive-h), var(--tds-color-destructive-s), var(--tds-color-destructive-l));

  /* TDS Stencil Colors (loading states) */
  --tds-color-stencil-light-h: 0;
  --tds-color-stencil-light-s: 0%;
  --tds-color-stencil-light-l: 94.50980392156862%;
  --tds-color-stencil-light: hsl(var(--tds-color-stencil-light-h), var(--tds-color-stencil-light-s), var(--tds-color-stencil-light-l));

  --tds-color-stencil-dark-h: 0;
  --tds-color-stencil-dark-s: 0%;
  --tds-color-stencil-dark-l: 92.54901960784314%;
  --tds-color-stencil-dark: hsl(var(--tds-color-stencil-dark-h), var(--tds-color-stencil-dark-s), var(--tds-color-stencil-dark-l));

  /* TDS Role-Based Theme Colors */
  --tds-color-architect-light-h: 252;
  --tds-color-architect-light-s: 100%;
  --tds-color-architect-light-l: 99.01960784313727%;
  --tds-color-architect-light: hsl(var(--tds-color-architect-light-h), var(--tds-color-architect-light-s), var(--tds-color-architect-light-l));

  --tds-color-architect-dark-h: 180;
  --tds-color-architect-dark-s: 100%;
  --tds-color-architect-dark-l: 15.686274509803921%;
  --tds-color-architect-dark: hsl(var(--tds-color-architect-dark-h), var(--tds-color-architect-dark-s), var(--tds-color-architect-dark-l));

  --tds-color-commerce-light-h: 105;
  --tds-color-commerce-light-s: 24.999999999999957%;
  --tds-color-commerce-light-l: 96.86274509803921%;
  --tds-color-commerce-light: hsl(var(--tds-color-commerce-light-h), var(--tds-color-commerce-light-s), var(--tds-color-commerce-light-l));

  --tds-color-commerce-dark-h: 114.66666666666669;
  --tds-color-commerce-dark-s: 27.272727272727277%;
  --tds-color-commerce-dark-l: 32.35294117647059%;
  --tds-color-commerce-dark: hsl(var(--tds-color-commerce-dark-h), var(--tds-color-commerce-dark-s), var(--tds-color-commerce-dark-l));

  --tds-color-developer-light-h: 209.9999999999999;
  --tds-color-developer-light-s: 50%;
  --tds-color-developer-light-l: 96.078431372549%;
  --tds-color-developer-light: hsl(var(--tds-color-developer-light-h), var(--tds-color-developer-light-s), var(--tds-color-developer-light-l));

  --tds-color-developer-dark-h: 226.1538461538462;
  --tds-color-developer-dark-s: 98.11320754716982%;
  --tds-color-developer-dark-l: 20.784313725490193%;
  --tds-color-developer-dark: hsl(var(--tds-color-developer-dark-h), var(--tds-color-developer-dark-s), var(--tds-color-developer-dark-l));

  --tds-color-trailblazer-light-h: 40;
  --tds-color-trailblazer-light-s: 27.272727272727202%;
  --tds-color-trailblazer-light-l: 97.84313725490196%;
  --tds-color-trailblazer-light: hsl(var(--tds-color-trailblazer-light-h), var(--tds-color-trailblazer-light-s), var(--tds-color-trailblazer-light-l));

  --tds-color-trailblazer-dark-h: 94.83870967741933;
  --tds-color-trailblazer-dark-s: 40.25974025974026%;
  --tds-color-trailblazer-dark-l: 15.098039215686274%;
  --tds-color-trailblazer-dark: hsl(var(--tds-color-trailblazer-dark-h), var(--tds-color-trailblazer-dark-s), var(--tds-color-trailblazer-dark-l));

  --tds-color-admin-light-h: 185.4545454545455;
  --tds-color-admin-light-s: 57.894736842105246%;
  --tds-color-admin-light-l: 96.27450980392156%;
  --tds-color-admin-light: hsl(var(--tds-color-admin-light-h), var(--tds-color-admin-light-s), var(--tds-color-admin-light-l));

  --tds-color-admin-dark-h: 89.67741935483872;
  --tds-color-admin-dark-s: 57.05521472392638%;
  --tds-color-admin-dark-l: 31.960784313725487%;
  --tds-color-admin-dark: hsl(var(--tds-color-admin-dark-h), var(--tds-color-admin-dark-s), var(--tds-color-admin-dark-l));

  --tds-color-starter-light-h: 192;
  --tds-color-starter-light-s: 55.555555555555536%;
  --tds-color-starter-light-l: 96.4705882352941%;
  --tds-color-starter-light: hsl(var(--tds-color-starter-light-h), var(--tds-color-starter-light-s), var(--tds-color-starter-light-l));

  --tds-color-starter-dark-h: 196.07142857142856;
  --tds-color-starter-dark-s: 71.79487179487178%;
  --tds-color-starter-dark-l: 30.58823529411765%;
  --tds-color-starter-dark: hsl(var(--tds-color-starter-dark-h), var(--tds-color-starter-dark-s), var(--tds-color-starter-dark-l));

  --tds-color-careers-light-h: 225;
  --tds-color-careers-light-s: 33.33333333333325%;
  --tds-color-careers-light-l: 97.6470588235294%;
  --tds-color-careers-light: hsl(var(--tds-color-careers-light-h), var(--tds-color-careers-light-s), var(--tds-color-careers-light-l));

  --tds-color-careers-dark-h: 220.23529411764707;
  --tds-color-careers-dark-s: 49.70760233918128%;
  --tds-color-careers-dark-l: 33.529411764705884%;
  --tds-color-careers-dark: hsl(var(--tds-color-careers-dark-h), var(--tds-color-careers-dark-s), var(--tds-color-careers-dark-l));

  --tds-color-work-light-h: 40.00000000000006;
  --tds-color-work-light-s: 52.941176470588225%;
  --tds-color-work-light-l: 96.66666666666666%;
  --tds-color-work-light: hsl(var(--tds-color-work-light-h), var(--tds-color-work-light-s), var(--tds-color-work-light-l));

  --tds-color-work-dark-h: 220.23529411764707;
  --tds-color-work-dark-s: 49.70760233918128%;
  --tds-color-work-dark-l: 33.529411764705884%;
  --tds-color-work-dark: hsl(var(--tds-color-work-dark-h), var(--tds-color-work-dark-s), var(--tds-color-work-dark-l));

  --tds-color-salesforce-light-h: 196.36363636363626;
  --tds-color-salesforce-light-s: 100%;
  --tds-color-salesforce-light-l: 97.84313725490196%;
  --tds-color-salesforce-light: hsl(var(--tds-color-salesforce-light-h), var(--tds-color-salesforce-light-s), var(--tds-color-salesforce-light-l));

  --tds-color-salesforce-dark-h: 194.43037974683546;
  --tds-color-salesforce-dark-s: 100%;
  --tds-color-salesforce-dark-l: 15.490196078431373%;
  --tds-color-salesforce-dark: hsl(var(--tds-color-salesforce-dark-h), var(--tds-color-salesforce-dark-s), var(--tds-color-salesforce-dark-l));

  /* TDS Theme Colors (contextual, defaults to midnight/sand) */
  --tds-color-theme-dark-h: var(--tds-color-midnight-h);
  --tds-color-theme-dark-s: var(--tds-color-midnight-s);
  --tds-color-theme-dark-l: var(--tds-color-midnight-l);
  --tds-color-theme-dark: hsl(var(--tds-color-theme-dark-h), var(--tds-color-theme-dark-s), var(--tds-color-theme-dark-l));

  --tds-color-theme-light-h: var(--tds-color-sand-h);
  --tds-color-theme-light-s: var(--tds-color-sand-s);
  --tds-color-theme-light-l: var(--tds-color-sand-l);
  --tds-color-theme-light: hsl(var(--tds-color-theme-light-h), var(--tds-color-theme-light-s), var(--tds-color-theme-light-l));

  /* -------------------------------------------------------------------------
     Legacy Color Primitives (for backward compatibility)
     ------------------------------------------------------------------------- */
  --blue-50: #f3f8ff;
  --blue-100: #eaf5fe;
  --blue-200: #d4ebfd;
  --blue-600: #1b96ff;
  --blue-700: #0176d3;
  --blue-800: #0a3e8b;
  --blue-900: #0b3173;
  --blue-950: #032d60;

  --gray-50: #fafafa;
  --gray-100: #f3f3f3;
  --gray-200: #e5e5e5;
  --gray-300: #c9c9c9;
  --gray-400: #aeaeae;
  --gray-500: #706e6b;
  --gray-600: #444444;
  --gray-700: #333333;
  --gray-800: #252525;
  --gray-900: #181818;

  --green-100: #def0d8;
  --green-500: #2e844a;
  --green-600: #22683a;

  --orange-100: #fef0e1;
  --orange-500: #fe9339;
  --orange-700: #b45309;

  --red-500: #ea001e;

  /* Trailhead Brand Colors */
  --trailhead-blue: #00a1df;
  --trailhead-blue-dark: #00407e;
  --trailhead-blue-light: rgba(0, 161, 223, 0.05);
  --trailhead-navy: #032d60;
  --trailhead-cyan: #1b96ff;
  --trailhead-teal: #04a49c;
  --trailhead-purple: #9050e9;
  --trailhead-orange: #ff6d3d;
  --trailhead-gradient-start: #032d60;
  --trailhead-gradient-end: #0b5cab;
  --sf-brand-blue: #00a1e0;

  /* Legacy simplified color vars */
  --tds-color-ocean-dark: #0b5cab;
  --tds-color-ocean-light: #eef4ff;
  --tds-color-ocean-lighter: #d8e6fe;
  --tds-color-navy: #001e5b;

  /* electric blue */
  --tds-color-electric-blue-10: #001642;
  --tds-color-electric-blue-15: #001E5B;
  --tds-color-electric-blue-20: #002775;
  --tds-color-electric-blue-30: #022AC0;
  --tds-color-electric-blue-40: #0250D9;
  --tds-color-electric-blue-50: #066AFE;
  --tds-color-electric-blue-60: #4992FE;
  --tds-color-electric-blue-65: #5F9FFE;
  --tds-color-electric-blue-70: #7CB1FE;
  --tds-color-electric-blue-80: #A8CBFF;
  --tds-color-electric-blue-90: #D6E6FF;
  --tds-color-electric-blue-95: #EDF4FF;

  /* -------------------------------------------------------------------------
     TDS Font Sizes - Exact values
     ------------------------------------------------------------------------- */
  --tds-font-size-xs: 12px;
  --tds-font-size-sm: 14px;
  --tds-font-size-md: 16px;
  --tds-font-size-lg: 18px;
  --tds-font-size-xl: 20px;
  --tds-font-size-2xl: 24px;
  --tds-font-size-3xl: 28px;
  --tds-font-size-4xl: 32px;
  --tds-font-size-5xl: 36px;
  --tds-font-size-6xl: 40px;
  --tds-font-size-7xl: 44px;
  --tds-font-size-8xl: 48px;

  /* -------------------------------------------------------------------------
     TDS Spacing Scale - Exact values from original
     ------------------------------------------------------------------------- */
  --tds-spacing-0: 0px;
  --tds-spacing-1: 4px;
  --tds-spacing-2: 8px;
  --tds-spacing-2-5: 10px;
  --tds-spacing-3: 12px;
  --tds-spacing-4: 16px;
  --tds-spacing-5: 20px;
  --tds-spacing-6: 24px;
  --tds-spacing-8: 32px;
  --tds-spacing-10: 40px;
  --tds-spacing-12: 48px;
  --tds-spacing-16: 64px;
  --tds-spacing-20: 80px;
  --tds-spacing-24: 96px;
  --tds-spacing-32: 128px;
  --tds-spacing-40: 160px;
  --tds-spacing-48: 192px;
  --tds-spacing-px: 16px;

  /* -------------------------------------------------------------------------
     TDS Border Radius - Exact values
     ------------------------------------------------------------------------- */
  --tds-radius-none: 0px;
  --tds-radius-sm: 2px;
  --tds-radius-md: 4px;
  --tds-radius-lg: 8px;
  --tds-radius-lg-2: 12px;
  --tds-radius-xl: 16px;
  --tds-radius-full: 9999px;

  /* -------------------------------------------------------------------------
     TDS Shadows - Exact values
     ------------------------------------------------------------------------- */
  --tds-shadow-none: none;
  --tds-shadow-xxs: 0 1px 3px 1px rgba(24, 24, 24, 0.06);
  --tds-shadow-xs: 0 2px 4px 1px rgba(24, 24, 24, 0.16), 0 0 2px 0 rgba(24, 24, 24, 0.08);
  --tds-shadow-sm: 0 8px 12px -2px rgba(24, 24, 24, 0.16), 0 2px 8px -2px rgba(24, 24, 24, 0.08);
  --tds-shadow-md: 0 16px 32px -4px rgba(24, 24, 24, 0.16), 0 12px 24px -4px rgba(24, 24, 24, 0.08);
  --tds-shadow-lg: 0 24px 48px -4px rgba(24, 24, 24, 0.20);
  --tds-shadow-focus: 0 0 0 3px rgba(1, 118, 211, 0.15);


  /* -------------------------------------------------------------------------
     TDS Line Heights - Exact values
     ------------------------------------------------------------------------- */
  --tds-line-height-none: 16px;
  --tds-line-height-tight: 18px;
  --tds-line-height-snug: 20px;
  --tds-line-height-normal: 24px;
  --tds-line-height-relaxed: 26px;
  --tds-line-height-loose: 32px;

  /* -------------------------------------------------------------------------
     TDS Font Weights
     ------------------------------------------------------------------------- */
  --tds-font-weight-light: 300;
  --tds-font-weight-regular: 400;
  --tds-font-weight-semibold: 600;
  --tds-font-weight-bold: 700;

  /* -------------------------------------------------------------------------
     TDS Animation Durations
     ------------------------------------------------------------------------- */
  --tds-duration-xshort: 75ms;
  --tds-duration-short: 150ms;
  --tds-duration-normal: 250ms;
  --tds-duration-long: 400ms;
  --tds-duration-xlong: 600ms;

  /* -------------------------------------------------------------------------
     TDS Container Widths
     ------------------------------------------------------------------------- */
  --tds-container-sm: 480px;
  --tds-container-md: 768px;
  --tds-container-lg: 1024px;
  --tds-container-xl: 1280px;

  /* -------------------------------------------------------------------------
     TDS Breakpoints
     ------------------------------------------------------------------------- */
  --tds-breakpoint-sm: 30rem;
  --tds-breakpoint-md: 48rem;
  --tds-breakpoint-lg: 64rem;

  /* -------------------------------------------------------------------------
     TDS Z-Index Scale
     ------------------------------------------------------------------------- */
  --tds-z-index-negative: -1;
  --tds-z-index-default: 0;
  --tds-z-index-foreground: 1;
  --tds-z-index-page-1: 1100;
  --tds-z-index-page-2: 1200;
  --tds-z-index-page-3: 1300;
  --tds-z-index-page-4: 1400;
  --tds-z-index-page-5: 1500;
  --tds-z-index-page-6: 1600;
  --tds-z-index-page-7: 1700;
  --tds-z-index-page-8: 1800;
  --tds-z-index-page-9: 1900;
  --tds-z-index-header: 3000;
  --tds-z-index-tooltip: 6000;
  --tds-z-index-menu: 7000;
  --tds-z-index-overlay: 29998;
  --tds-z-index-modal: 29999;
  --tds-z-index-toast: 10000;

  /* -------------------------------------------------------------------------
     TDS Accessibility
     ------------------------------------------------------------------------- */
  --tds-a11y-outline: transparent solid 2px;
  --tds-a11y-outline-offset: 5px;
  --tds-a11y-outline-transition: outline-offset var(--tds-duration-short) linear;
  --tds-a11y-outline-focus: var(--tds-color-brand) solid 2px;
  --tds-a11y-outline-color-focus: var(--tds-color-brand);
  --tds-a11y-outline-offset-focus: 2px;

  /* -------------------------------------------------------------------------
     TDS Page Grid
     ------------------------------------------------------------------------- */
  --tds-page-grid-column-gap: var(--tds-spacing-12); /* 48px - used as sidebar padding */
  --tds-page-grid-row-gap: var(--tds-spacing-5);
  --tds-page-sidebar-width: 352px; /* Matches original Trailhead sidebar content width */
  --tds-page-main-max-width: 768px; /* Matches original Trailhead main content */
  --tds-page-container-width: var(--tds-container-xl);

  /* -------------------------------------------------------------------------
     TDS Font Family
     ------------------------------------------------------------------------- */
  --tds-font-family-sans: "Salesforce Sans", system-ui, -apple-system, sans-serif;
  --tds-font-family-heading: "AvantGarde-Demi", system-ui, -apple-system, sans-serif;
  --tds-font-family-mono: ui-monospace, SFMono-Regular, monospace;

  --tds-links-image-height: 1.5rem;

  --purple-50: #f3e8ff;
  --purple-500: #9050e9;















  /* -------------------------------------------------------------------------
     Semantic Tokens - Light Theme (default)
     ------------------------------------------------------------------------- */

  /* Backgrounds */
  --color-bg: #ffffff;
  --color-bg-alt: #f3f3f3;
  --color-bg-subtle: #fafafa;
  --color-bg-inverse: #032d60;
  --color-bg-accent: #0176d3;
  --color-bg-accent-hover: #1b96ff;
  --color-bg-success: #def0d8;
  --color-bg-warning: #fef0e1;
  --color-bg-error: #fef2f2;
  --color-border-error: #fecaca;
  --color-bg-hover: rgba(0, 0, 0, 0.04);
  --color-bg-active: rgba(0, 0, 0, 0.08);
  --color-bg-layout: #f4f6f9;
  --color-bg-accent-light: #f3f8ff;

  /* Borders */
  --color-border: #e5e5e5;
  --color-border-strong: #c9c9c9;
  --color-border-accent: #0176d3;
  --color-border-success: rgba(46, 132, 74, 0.3);

  /* -------------------------------------------------------------------------
     Surfaces & Component Colors
     ------------------------------------------------------------------------- */
  --surface-sidebar: #f8f9fb;
  --surface-main: #f5f6f8;
  --surface-card: #ffffff;
  --surface-subtle: #f9fafb;
  --border-card: #e1e5ea;
  --border-muted: #d0d6e0;
  --tile-bg: #f5f9ff;
  --tile-border: #dbe7f6;
  --confidence-bg: #f3f7ff;
  --confidence-border: #cfe0ff;
  --success-bg: #f1fff6;
  --heading-accent: #032d60;
  --draft-bg: #f3f7ff;
  --draft-border: rgba(27, 110, 243, 0.12);
  --generated-bg: #f2f7ff;
  --generated-outline: rgba(27, 110, 243, 0.18);
  --accent-soft: #eaf5fe;
  --progress-track: #eaf5fe;
  --scrollbar-track: #eef1f5;
  --scrollbar-thumb: #c1c9d6;
  --scrollbar-thumb-hover: #aab4c4;

  /* Trailhead Preview Surfaces */
  --trl-surface: #ffffff;
  --trl-surface-alt: #f4f7fb;
  --trl-surface-soft: #eef1f6;
  --trl-border: #d8dde6;
  --trl-border-strong: #c7d3e5;
  --trl-pill-bg: #f4f6f9;
  --trl-pill-border: #d8dde6;
  --trl-pill-filter-bg: var(--tds-color-ocean-light);
  --trl-pill-filter-text: var(--tds-color-ocean-dark);
  --trl-pill-filter-hover-bg: var(--tds-color-ocean-lighter);
  --trl-pill-filter-border: var(--tds-color-ocean-dark);
  --trl-accent-bg: #0b5cab;
  --trl-accent-hover: #084b93;
  --trl-accent-icon: #0b5cab;
  --trl-timeline-line: #d8dde6;
  --trl-node-border: #c7d3e5;
  --trl-node-icon: #8a99ad;
  --trl-discover-icon-bg: #eaf2ff;
  --trl-discover-icon-bg-purple: #f2eaff;
  --trl-heading: #032d60;
  --trl-app-btn-bg: #181818;
  --trl-app-btn-bg-hover: #333333;
  --trl-app-btn-text: #ffffff;
  --trl-badge-header-bg: var(--tds-color-navy);
  --trl-badge-arc-bg: var(--tds-color-white);
  --trl-badge-border: var(--tds-color-fog);
  --trl-badge-shadow: var(--tds-shadow-sm);
  --trl-badge-check-bg: var(--tds-color-success);
  --trl-badge-check-border: var(--tds-color-white);
  --trl-badge-check-shadow: var(--tds-shadow-none);
  --trl-badge-tag-bg: var(--tds-color-sand);
  --trl-badge-tag-text: var(--tds-color-meteorite);
  --trl-badge-title: var(--tds-color-black);
  --trl-badge-desc: var(--tds-color-meteorite);
  --trl-badge-link: var(--tds-color-ocean);
  --trl-badge-btn-border: var(--tds-color-ocean);
  --trl-badge-btn-text: var(--tds-color-ocean);
  --trl-badge-btn-bg: var(--tds-color-white);
  --trl-badge-btn-hover-bg: var(--tds-color-sand);
  --trl-badge-btn-hover-border: var(--tds-color-ocean);
  --trl-badge-btn-hover-text: var(--tds-color-ocean);
  --trl-taxonomy-heading: var(--tds-color-meteorite);
  --trl-taxonomy-text: var(--tds-color-meteorite);
  --trl-taxonomy-link: var(--tds-color-ocean);
  --trl-series-link: var(--tds-color-ocean);
  --trl-locale-bg: var(--tds-color-sand);
  --trl-locale-text: var(--tds-color-meteorite);
  --trl-locale-link: var(--tds-color-ocean);
  --trl-locale-icon: var(--tds-color-meteorite);
  --trl-module-title: var(--tds-color-midnight);
  --trl-module-desc: var(--tds-color-black);
  --trl-module-meta: var(--tds-color-meteorite);
  --trl-module-border: var(--tds-color-fog);
  --trl-module-border-strong: var(--tds-color-granite);
  --trl-module-node-bg: var(--tds-color-white);
  --trl-module-node-border: var(--tds-color-fog);
  --trl-module-node-icon: var(--tds-color-meteorite);

  --trl-btn-bg: var(--tds-color-white);
  --trl-btn-border: var(--tds-color-ocean);
  --trl-btn-text: var(--tds-color-ocean);
  --trl-btn-hover-bg: var(--tds-color-sand);
  --trl-btn-hover-border: var(--tds-color-ocean);
  --trl-btn-hover-text: var(--tds-color-ocean);
  --trl-btn-font-size: var(--tds-font-size-md);
  --trl-btn-line-height: var(--tds-line-height-snug);
  --trl-btn-padding-y: var(--tds-spacing-2);
  --trl-btn-padding-x: var(--tds-spacing-4);
  --trl-btn-radius: var(--tds-radius-md);
  --trl-btn-gap: var(--tds-spacing-2);
  --trl-btn-min-height: 40px;

  --trl-stats-bg: var(--tds-color-sand);
  --trl-stats-text: var(--tds-color-theme-dark);
  --trl-stats-divider: var(--tds-color-fog);
  --trl-banner-bg: var(--tds-color-theme-dark);
  --trl-banner-text: var(--tds-color-white);

  /* Announcement/Banner specific tokens */
  --trl-announcement-bg: var(--tds-color-theme-dark);
  --trl-announcement-text: var(--tds-color-white);
  --trl-announcement-link: var(--tds-color-white);

  /* -------------------------------------------------------------------------
     Layout Dimensions
     ------------------------------------------------------------------------- */
  --topbar-h: 4.5rem;
  --topbar-bg: #002775;

  --subbar-bg: var(--tds-color-white);
  --subbar-h: 4rem;
  
  --sidebar-w: 23rem;
  --panel-w: 23rem;

  /* -------------------------------------------------------------------------
     Enhanced Animations
     ------------------------------------------------------------------------- */
  --ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  --ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);

  /* Gradients */
  --gradient-brand: linear-gradient(135deg, var(--tds-color-midnight) 0%, var(--tds-color-ocean) 100%);
  --gradient-shine: linear-gradient(135deg, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0) 50%);
  --gradient-subtle: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0) 100%);
}



/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Dark Theme */
[data-theme="dark"] {
  color-scheme: dark;

  /* TDS Color Primitives */
  --tds-color-white: black;
  --tds-color-sand: #181818;
  --tds-color-fog: #5C5C5C;
  --tds-color-granite: #747474;
  --tds-color-stormcloud: #939393;
  --tds-color-fraggle: #AEAEAE;
  --tds-color-meteorite: #E5E5E5;
  --tds-color-black: white;

  --tds-color-sky: #181818;
  --tds-color-ocean: #1B96FF;
  --tds-color-midnight: #FFFFFF; /* check */
  --tds-color-evergreen: #3BA755;
  --tds-color-sunshine: #FE9339;
  --tds-color-ruby: #EA001E;


  --color-bg: #1a1a1a;
  --color-bg-alt: #252525;
  --color-bg-subtle: #2a2a2a;
  --color-bg-inverse: #0b3173;
  --color-bg-accent: #1b96ff;
  --color-bg-accent-hover: #4aa3ff;
  --color-bg-success: #1f2a22;
  --color-bg-warning: #2f2417;
  --color-bg-error: #2d1f1f;
  --color-border-error: #5c3333;
  --color-bg-hover: rgba(255, 255, 255, 0.06);
  --color-bg-active: rgba(255, 255, 255, 0.1);
  --color-bg-layout: #15181d;
  --color-bg-accent-light: rgba(100, 181, 255, 0.12);

  --color-border: #3a3a3a;
  --color-border-strong: #505050;
  --color-border-accent: #64b5ff;

  --surface-sidebar: #1d1f23;
  --surface-main: #1a1b1e;
  --surface-card: #1f2125;
  --surface-subtle: #23252a;
  --border-card: #2f3339;
  --border-muted: #3a3f46;
  --tile-bg: #1e2a3a;
  --tile-border: #2c3f56;
  --confidence-bg: #1c2a3c;
  --confidence-border: #2a3b52;
  --success-bg: #1f2a22;
  --heading-accent: #c0d8ff;
  --draft-bg: #1a2738;
  --draft-border: rgba(100, 181, 255, 0.25);
  --generated-bg: #182538;
  --generated-outline: rgba(100, 181, 255, 0.28);
  --accent-soft: #1c2a3c;
  --progress-track: #24324a;
  --scrollbar-track: #1a1c20;
  --scrollbar-thumb: #3a3f46;
  --scrollbar-thumb-hover: #4a515a;

  --topbar-bg: var(--tds-color-white);
  --subbar-bg: hsl(0, 0%, 4.7058823529%);

  --trl-surface: #141922;
  --trl-surface-alt: #0f1319;
  --trl-surface-soft: #1c2431;
  --trl-border: #2b3440;
  --trl-border-strong: #354152;
  --trl-pill-bg: #1b2330;
  --trl-pill-border: #2b3440;
  --trl-pill-filter-bg: var(--trl-surface-soft);
  --trl-pill-filter-text: var(--tds-color-ocean);
  --trl-pill-filter-hover-bg: var(--trl-accent-bg);
  --trl-pill-filter-border: var(--color-border-accent);
  --trl-accent-bg: #1b3d6b;
  --trl-accent-hover: #24507f;
  --trl-accent-icon: #7fb3ff;
  --trl-timeline-line: #2b3440;
  --trl-node-border: #354152;
  --trl-node-icon: #7f90a8;
  --trl-discover-icon-bg: #1a2636;
  --trl-discover-icon-bg-purple: #2b2340;
  --trl-heading: #dbe6f4;
  --trl-app-btn-bg: #0b0f14;
  --trl-app-btn-bg-hover: #1a1f27;
  --trl-app-btn-text: var(--tds-color-white);

  --trl-btn-bg: transparent;
  --trl-btn-border: var(--tds-color-ocean);
  --trl-btn-text: var(--tds-color-ocean);
  --trl-btn-hover-bg: rgba(100, 181, 255, 0.12);
  --trl-btn-hover-border: var(--tds-color-ocean);
  --trl-btn-hover-text: var(--tds-color-ocean);

  --trl-stats-bg: var(--trl-pill-bg);
  --trl-stats-text: var(--tds-color-fog);
  --trl-stats-divider: var(--trl-pill-border);
  --trl-banner-bg: var(--trl-accent-bg);
  --trl-banner-text: var(--tds-color-white);
  --trl-taxonomy-heading: var(--tds-color-gray-neutral);
  --trl-taxonomy-text: var(--tds-color-gray-neutral);
  --trl-taxonomy-link: var(--tds-color-ocean);
  --trl-series-link: var(--tds-color-ocean);
  --trl-locale-bg: var(--trl-surface-soft);
  --trl-locale-text: var(--tds-color-gray-neutral);
  --trl-locale-link: var(--tds-color-ocean);
  --trl-locale-icon: var(--tds-color-gray-neutral);
  --trl-module-title: var(--tds-color-fog);
  --trl-module-desc: var(--tds-color-fog);
  --trl-module-meta: var(--tds-color-gray-neutral);
  --trl-module-border: var(--trl-border);
  --trl-module-border-strong: var(--trl-border-strong);
  --trl-module-node-bg: var(--trl-surface);
  --trl-module-node-border: var(--trl-border);
  --trl-module-node-icon: var(--tds-color-gray-neutral);
}

/* Auto dark mode based on system preference */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --color-bg: #1a1a1a;
    --color-bg-alt: #252525;
    --color-bg-subtle: #2a2a2a;
    --color-bg-inverse: #0b3173;
    --color-bg-accent: #1b96ff;
    --color-bg-accent-hover: #4aa3ff;
    --color-bg-success: #1f2a22;
    --color-bg-warning: #2f2417;
    --color-bg-error: #2d1f1f;
    --color-border-error: #5c3333;
    --color-bg-hover: rgba(255, 255, 255, 0.06);
    --color-bg-active: rgba(255, 255, 255, 0.1);
    --color-bg-layout: #15181d;
    --color-bg-accent-light: rgba(100, 181, 255, 0.12);

    --color-border: #3a3a3a;
    --color-border-strong: #505050;
    --color-border-accent: #64b5ff;

    --surface-sidebar: #1d1f23;
    --surface-main: #1a1b1e;
    --surface-card: #1f2125;
    --surface-subtle: #23252a;
    --border-card: #2f3339;
    --border-muted: #3a3f46;
    --tile-bg: #1e2a3a;
    --tile-border: #2c3f56;
    --confidence-bg: #1c2a3c;
    --confidence-border: #2a3b52;
    --success-bg: #1f2a22;
    --heading-accent: #c0d8ff;
    --draft-bg: #1a2738;
    --draft-border: rgba(100, 181, 255, 0.25);
    --generated-bg: #182538;
    --generated-outline: rgba(100, 181, 255, 0.28);
    --accent-soft: #1c2a3c;
    --progress-track: #24324a;
    --scrollbar-track: #1a1c20;
    --scrollbar-thumb: #3a3f46;
    --scrollbar-thumb-hover: #4a515a;

    --topbar-bg: var(--color-bg);

    --trl-surface: #141922;
    --trl-surface-alt: #0f1319;
    --trl-surface-soft: #1c2431;
    --trl-border: #2b3440;
    --trl-border-strong: #354152;
    --trl-pill-bg: #1b2330;
    --trl-pill-border: #2b3440;
    --trl-pill-filter-bg: var(--trl-surface-soft);
    --trl-pill-filter-text: var(--tds-color-ocean);
    --trl-pill-filter-hover-bg: var(--trl-accent-bg);
    --trl-pill-filter-border: var(--color-border-accent);
    --trl-accent-bg: #1b3d6b;
    --trl-accent-hover: #24507f;
    --trl-accent-icon: #7fb3ff;
    --trl-timeline-line: #2b3440;
    --trl-node-border: #354152;
    --trl-node-icon: #7f90a8;
    --trl-discover-icon-bg: #1a2636;
    --trl-discover-icon-bg-purple: #2b2340;
    --trl-heading: #dbe6f4;
    --trl-app-btn-bg: #0b0f14;
    --trl-app-btn-bg-hover: #1a1f27;
    --trl-app-btn-text: var(--tds-color-white);

    --trl-btn-bg: transparent;
    --trl-btn-border: var(--tds-color-ocean);
    --trl-btn-text: var(--tds-color-ocean);
    --trl-btn-hover-bg: rgba(100, 181, 255, 0.12);
    --trl-btn-hover-border: var(--tds-color-ocean);
    --trl-btn-hover-text: var(--tds-color-ocean);

    --trl-stats-bg: var(--trl-pill-bg);
    --trl-stats-text: var(--tds-color-fog);
    --trl-stats-divider: var(--trl-pill-border);
    --trl-banner-bg: var(--trl-accent-bg);
    --trl-banner-text: var(--tds-color-white);
    --trl-taxonomy-heading: var(--tds-color-gray-neutral);
    --trl-taxonomy-text: var(--tds-color-gray-neutral);
    --trl-taxonomy-link: var(--tds-color-ocean);
    --trl-series-link: var(--tds-color-ocean);
    --trl-locale-bg: var(--trl-surface-soft);
    --trl-locale-text: var(--tds-color-gray-neutral);
    --trl-locale-link: var(--tds-color-ocean);
    --trl-locale-icon: var(--tds-color-gray-neutral);
    --trl-module-title: var(--tds-color-fog);
    --trl-module-desc: var(--tds-color-fog);
    --trl-module-meta: var(--tds-color-gray-neutral);
    --trl-module-border: var(--trl-border);
    --trl-module-border-strong: var(--trl-border-strong);
    --trl-module-node-bg: var(--trl-surface);
    --trl-module-node-border: var(--trl-border);
    --trl-module-node-icon: var(--tds-color-gray-neutral);
  }
}

/* ==========================================================================
   Role-Based Theme Overrides
   Apply these classes to override theme colors for different learning paths
   ========================================================================== */

.theme--architect {
  --tds-color-theme-dark: var(--tds-color-architect-dark);
  --tds-color-theme-light: var(--tds-color-architect-light);
}

.theme--commerce {
  --tds-color-theme-dark: var(--tds-color-commerce-dark);
  --tds-color-theme-light: var(--tds-color-commerce-light);
}

.theme--developer {
  --tds-color-theme-dark: var(--tds-color-developer-dark);
  --tds-color-theme-light: var(--tds-color-developer-light);
}

.theme--trailblazer {
  --tds-color-theme-dark: var(--tds-color-trailblazer-dark);
  --tds-color-theme-light: var(--tds-color-trailblazer-light);
}

.theme--admin {
  --tds-color-theme-dark: var(--tds-color-admin-dark);
  --tds-color-theme-light: var(--tds-color-admin-light);
}

.theme--starter {
  --tds-color-theme-dark: var(--tds-color-starter-dark);
  --tds-color-theme-light: var(--tds-color-starter-light);
}

.theme--careers {
  --tds-color-theme-dark: var(--tds-color-careers-dark);
  --tds-color-theme-light: var(--tds-color-careers-light);
}

.theme--work {
  --tds-color-theme-dark: var(--tds-color-work-dark);
  --tds-color-theme-light: var(--tds-color-work-light);
}

.theme--salesforce {
  --tds-color-theme-dark: var(--tds-color-salesforce-dark);
  --tds-color-theme-light: var(--tds-color-salesforce-light);
}


/* === base/fonts.css === */
/*
 * Font Loading
 * Salesforce Sans and display font family definitions
 * Based on Trailhead Design System (TDS)
 */

/* =========================================================================
   Salesforce Sans - Primary body/UI font (Regular + Bold)
   Local files with CDN fallback
   ========================================================================= */

/* Regular (400) - body text */
@font-face {
  font-family: "Salesforce Sans";
  src: url("/fonts/SalesforceSans-Regular.woff2") format("woff2"),
       url("/fonts/SalesforceSans-Regular.woff") format("woff"),
       url("https://a.sfdcstatic.com/shared/fonts/salesforce-sans/SalesforceSans-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Regular Italic (400) */
@font-face {
  font-family: "Salesforce Sans";
  src: url("/fonts/SalesforceSans-Italic.woff2") format("woff2"),
       url("/fonts/SalesforceSans-Italic.woff") format("woff"),
       url("https://a.sfdcstatic.com/shared/fonts/salesforce-sans/SalesforceSans-Italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

/* Bold (700) */
@font-face {
  font-family: "Salesforce Sans";
  src: url("/fonts/SalesforceSans-Bold.woff2") format("woff2"),
       url("/fonts/SalesforceSans-Bold.woff") format("woff"),
       url("https://a.sfdcstatic.com/shared/fonts/salesforce-sans/SalesforceSans-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* Bold Italic (700) */
@font-face {
  font-family: "Salesforce Sans";
  src: url("/fonts/SalesforceSans-BoldItalic.woff2") format("woff2"),
       url("/fonts/SalesforceSans-BoldItalic.woff") format("woff"),
       url("https://a.sfdcstatic.com/shared/fonts/salesforce-sans/SalesforceSans-BoldItalic.woff2") format("woff2");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

/* =========================================================================
   AvantGarde-Demi - Headings (h1–h6)
   Local files with CDN fallback
   ========================================================================= */

@font-face {
  font-family: "AvantGarde-Demi";
  src: url("/fonts/AvantGarde-Demi.woff2") format("woff2"),
       url("https://a.sfdcstatic.com/shared/fonts/avant-garde/AvantGardeForSalesforceW05-Dm.woff2") format("woff2"),
       url("https://a.sfdcstatic.com/shared/fonts/avant-garde/AvantGardeForSalesforceW05-Dm.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}



/* === base/reset.css === */
/*
 * Reset & Base Styles
 * CSS reset and foundational element styles
 */

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

[hidden] {
  display: none !important;
}

html {
  height: 100%;
  color-scheme: light;
  -webkit-text-size-adjust: 100%;
}

body {
  height: 100%;
  font-family: var(--tds-font-family-sans);
  font-size: var(--tds-font-size-md);
  line-height: var(--tds-line-height-normal);
  color: var(--tds-color-black);
  background: var(--tds-color-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Headings use AvantGarde-Demi */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--tds-font-family-heading);
  font-weight: normal;
  line-height: normal;
}

.builder-shell {
  height: 100%;
  overflow: hidden;
}

.body--dashboard {
  background: var(--surface-main);
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
textarea,
select {
  font: inherit;
  color: inherit;
  background: none;
  border: none;
}

button {
  cursor: pointer;
}

img,
svg {
  display: block;
  max-width: 100%;
}

ul,
ol {
  list-style: none;
}

/* Turbo frames must not break layout */
turbo-frame {
  display: contents;
}


/* === layout/main.css === */
/*
 * Main (Center Column)
 *
 * Pattern: scroll-parent with main__inner as scroll-area
 * Structure: .main > .canvas (main_banner + main__inner) | aside.panel
 */

.main {
  position: relative;
  z-index: 1;
}

.main > .canvas {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  background: var(--tds-color-white);
}

.main__inner {
  /* Scroll area - takes remaining space and scrolls */
  flex: 1 1 0%;         /* Grow, shrink, with 0 base */
  height: 100%;
  max-height: 100%;
  min-height: 0;        /* Critical: allows shrinking below content size */
  overflow-x: hidden;
  overflow-y: auto;     /* Enable vertical scrolling */
  overscroll-behavior: contain;
  scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
  scrollbar-width: thin;
  background: var(--tds-color-sand);
}

.main__inner::-webkit-scrollbar {
  width: 10px;
}

.main__inner::-webkit-scrollbar-track {
  background: var(--scrollbar-track);
}

.main__inner::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
  border-radius: 999px;
  border: 2px solid var(--scrollbar-track);
}

.main__inner::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover);
}

/* Inline Preview Banner - outside main__inner, full width */
.main .preview-banner--inline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-spacing-4);
  width: 100%;
  max-width: none;
  padding: var(--tds-spacing-3) var(--tds-spacing-5);
  margin: 0;
  border-radius: 0;
  box-shadow: none;
  background: var(--color-bg-accent-light);
  border-bottom: 1px solid var(--border-muted);
  flex-shrink: 0;
  color: var(--tds-color-ocean);
  font-size: var(--tds-font-size-sm);
}

.main .preview-banner--inline .preview-banner__text {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  font-weight: var(--tds-font-weight-semibold);
}

.main .preview-banner--inline .preview-banner__text .icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.main .preview-banner--inline .publish-actions {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  flex-shrink: 0;
}

/* Preview Device Modes */
.main__inner[data-preview-device="mobile"] {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: var(--color-bg-alt);
}

/* Mobile preview container */
.main__inner[data-preview-device="mobile"] > .trl-preview {
  max-width: 375px;
  width: 100%;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
  border-radius: 16px;
  overflow: hidden;
}


#trail_editor {
  margin: 0 auto;
  max-width: 64rem;
  min-width: 32rem;
  padding: var(--tds-spacing-8);
}

.trl-preview {
  height: 100vh;
  overflow: auto;
  padding: var(--tds-spacing-8);
  background: var(--tds-color-white);
}

/* Insights: no fixed height — content sets height; .main__inner scrolls only when content overflows */
.insights {
  height: 100%;
  padding: var(--tds-spacing-8);
  background: var(--tds-color-white);
  overflow: auto;
}

/* === layout/panel.css === */
/*
 * Panel (Right Column)
 *
 * Pattern: scroll-parent with panel__wrap as scroll-area
 * Structure: .panel > .panel__wrap (scrolls)
 */

.panel {
  /* Grid item with scroll-parent pattern */
  display: flex;
  flex-direction: column;
  width: 23rem;
  height: 100%;         /* Fill grid cell (row is minmax(0, 1fr)) */
  max-height: 100%;
  min-height: 0;        /* Critical: allows shrinking below content size */
  overflow: hidden;     /* Contain children, establish scroll boundary */
  position: relative;
  z-index: 2;
  background: var(--tds-color-white);
}

.panel__wrap {
  /* Scroll area - takes remaining space and scrolls */
  flex: 1 1 0%;         /* Grow, shrink, with 0 base */
  height: 100%;
  max-height: 100%;
  min-height: 0;        /* Critical: allows shrinking below content size */
  overflow-x: hidden;
  overflow-y: auto;     /* Enable vertical scrolling */
  overscroll-behavior: contain;
  scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
  scrollbar-width: thin;

  /* Content spacing */
  padding: var(--tds-spacing-6);
}

.panel__wrap::-webkit-scrollbar {
  width: 10px;
}

.panel__wrap::-webkit-scrollbar-track {
  background: var(--scrollbar-track);
}

.panel__wrap::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
  border-radius: 999px;
  border: 2px solid var(--scrollbar-track);
}

.panel__wrap::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover);
}


/* === layout/shell.css === */
/*
 * Shell Layout
 * Root container and main structural layout
 *
 * SCROLLING PATTERN (must be followed consistently):
 * ═══════════════════════════════════════════════════
 *
 * For scrolling to work in CSS Grid/Flexbox, EVERY ancestor must constrain height.
 * Default behavior (min-height: auto) prevents scrolling by expanding to fit content.
 *
 * PATTERN FOR SCROLL CONTAINERS:
 *
 * .scroll-parent {
 *   display: flex;
 *   flex-direction: column;
 *   min-height: 0;        ← Required: allows shrinking below content height
 *   overflow: hidden;     ← Required: establishes scroll boundary
 * }
 *
 * .scroll-area {
 *   flex: 1;              ← Takes available space
 *   min-height: 0;        ← Required: allows shrinking
 *   overflow-y: auto;     ← Enables scrolling
 * }
 *
 * .fixed-header-or-footer {
 *   flex-shrink: 0;       ← Prevents shrinking
 * }
 *
 * FOR CSS GRID:
 * - All grid children need min-height: 0
 * - Use 1fr for flexible rows/columns
 *
 * HIERARCHY IN THIS APP:
 * html/body (100%) → .shell (100vh) → .content (1fr) → columns → scroll areas
 */

/* Shell - topbar full width, then sidebar | content side by side */
.shell {
  display: grid;
  grid-template-rows: var(--topbar-h) minmax(0, 1fr);
  grid-template-columns: var(--sidebar-w) 1fr;
  height: 100vh;
  height: 100dvh;
  min-height: 0;
  overflow: hidden;
  transition: grid-template-columns 0.2s ease;
}

.shell > .topbar {
  grid-column: 1 / -1;
}

.shell > * {
  min-height: 0;
  min-width: 0;
}

/* Content: subbar row + main row; main contains canvas | panel */
.content {
  display: grid;
  grid-template-rows: var(--subbar-h) minmax(0, 1fr);
  grid-template-columns: 1fr;
  height: 100%;
  max-height: 100%;
  min-height: 0;
  overflow: hidden;
}

.content > * {
  min-height: 0;
  min-width: 0;
}

/* Main: canvas (trail) | panel when present */
.main {
  display: grid;
  grid-template-columns: 1fr var(--panel-w);
  grid-template-rows: minmax(0, 1fr);
  min-height: 0;
  overflow: hidden;
}

.content--2col .main {
  grid-template-columns: 1fr;
}

.main > * {
  min-height: 0;
  min-width: 0;
}


/* === layout/sidebar.css === */
/*
 * Sidebar (Agentforce chat panel)
 *
 * Structure: .sidebar > header.subbar__section--start (logo) + .chat (scrolls)
 */

.sidebar {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 100%;
  min-height: 0;
  overflow: hidden;
  position: relative;
  z-index: 1;
  width: var(--sidebar-w);
  background: var(--tds-color-white);
  border-right: 1px solid var(--color---tds-color-fog);
}

/* Sidebar header (Agentforce logo + controls) */
.sidebar > .subbar__section--start {
  flex-shrink: 0;
  height: var(--subbar-h);
  background: var(--subbar-bg);
  padding: 0 var(--tds-spacing-4) 0 var(--tds-spacing-6);
  box-shadow: var(--tds-shadow-xs);
  z-index: var(--tds-z-index-default);
}

/* Chat fills remaining space */
.sidebar > .sidebar__chat {
  flex: 1 1 0%;
  min-height: 0;
  overflow: hidden;
  border-right: 1px solid var(--tds-color-sand);
}

.sidebar__when-expanded {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: 1;
  min-width: 0;
}

/* Expand button to the left of tabs (only visible when sidebar collapsed) */
.sidebar__expand-inline {
  display: none;
  flex-shrink: 0;
  align-items: center;
  margin-right: var(--tds-spacing-8);
}

.shell[data-sidebar-collapsed="true"] .sidebar__expand-inline {
  display: flex;
}

/* Expand (Agentforce) icon: ocean on hover */
.sidebar__expand-inline .btn--icon:hover .icon {
  filter: brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2476%) hue-rotate(186deg);
}

/* Tabs stay left-aligned; expand button sits immediately left of them when visible */
.subbar__tabs-group .tabs {
  flex: 0 1 auto;
}

/* When collapsed: sidebar column disappears */
.shell[data-sidebar-collapsed="true"] {
  --sidebar-w: 0;
}

.shell[data-sidebar-collapsed="true"] .sidebar {
  width: 0;
  min-width: 0;
  overflow: hidden;
  border-right-width: 0;
}


/* === layout/subbar.css === */
/*
 * Subbar sections
 * --start: sidebar header (logo); --main: content row (tabs + end buttons)
 */

/* Tabs row inside .content */
.content > .subbar__section--main {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: var(--subbar-h);
  background: var(--subbar-bg);
  box-shadow: var(--tds-shadow-xs);
  padding: 0 var(--tds-spacing-8) 0 var(--tds-spacing-6);
  z-index: 2;
}

.subbar__section {
  display: flex;
  align-items: center;
  height: 100%;
}

.subbar__section--start {
  justify-content: space-between;
  overflow: hidden;
  min-width: 0;
}

.subbar__tabs-group {
  display: flex;
  align-items: center;
  flex: 1;
  height: 100%;
  min-width: 0;
  overflow: hidden;
}

.subbar__section--main {
  flex: 1;
  min-width: 0;
}

.subbar__section--end {
  justify-content: flex-end;
  gap: var(--tds-spacing-6);
  flex-shrink: 0;
  border-left: none;
}

.subbar__brand {
  display: block;
  width: 112px;
  height: 22px;
  object-fit: contain;
}

.subbar__controls {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-1);
}

/* Sidebar header: Collapse + More buttons (topbar-style on white) */
.sidebar .subbar__controls .btn--icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border-radius: 0;
  color: var(--tds-color-meteorite);
}

.sidebar .subbar__controls .btn--icon:hover:not(:disabled) {
  background: var(--tds-color-sky);
  border-radius: var(--tds-radius-full);
  color: var(--tds-color-ocean);
}

.sidebar .subbar__controls .btn--icon .icon {
  width: 20px;
  height: 20px;
  pointer-events: none;
}

/* Recolor icon (img) to ocean on hover; SVGs use fixed fill so we use filter */
.sidebar .subbar__controls .btn--icon:hover:not(:disabled) .icon {
  filter: brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2476%) hue-rotate(186deg);
}

.sidebar .subbar__controls .btn--icon:disabled .icon {
  opacity: 0.5;
}

/* Subbar right (undo, redo, versions): same states as sidebar collapse/agentforce icons */
.content .subbar__section--end .subbar__controls .btn--icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border-radius: 0;
  color: var(--tds-color-meteorite, #706e6b);
}

.content .subbar__section--end .subbar__controls .btn--icon:hover:not(:disabled) {
  background: var(--tds-color-sky);
  border-radius: var(--tds-radius-full);
  color: var(--tds-color-ocean);
}

.content .subbar__section--end .subbar__controls .btn--icon .icon {
  width: 20px;
  height: 20px;
  pointer-events: none;
}

.content .subbar__section--end .subbar__controls .btn--icon:hover:not(:disabled) .icon {
  filter: brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2476%) hue-rotate(186deg);
}

.content .subbar__section--end .subbar__controls .btn--icon:disabled .icon {
  opacity: 0.5;
}

/* Version dropdown in subbar: anchor menu to the right so it stays on screen */
.subbar__version-dropdown.version-dropdown {
  position: relative;
}

.subbar__version-dropdown .dropdown__menu--subbar {
  right: 0;
  left: auto;
  margin-top: var(--tds-spacing-1);
}

.publish-workflow {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-3);
}

/* Tabs */
.tabs {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  height: 100%;
  max-height: var(--subbar-h);
  overflow: hidden;
}

.tab {
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 var(--tds-spacing-6);
  font-family: var(--tds-font-family-heading);
  font-size: var(--tds-font-size-xl);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-meteorite);
  transition: color var(--tds-duration-normal);
}

.tab:hover {
  color: var(--tds-color-ocean);
}

.tab[aria-current="page"] {
  color: var(--tds-color-ocean);
}

.tab[aria-current="page"]::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 4px;
  background: var(--tds-color-ocean);
}


/* === layout/topbar.css === */
/*
 * Top Bar
 * Primary navigation header
 */

.topbar {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  height: var(--topbar-h);
  gap: var(--tds-spacing-4);
  padding: 0 var(--tds-spacing-4);
  color: white;
  background: var(--topbar-bg);
}

.topbar__section {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-3);
  min-width: 0;
}

.topbar__section--center {
  justify-content: center;
}

.topbar__section--end {
  justify-content: flex-end;
}

.topbar__logo {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-4);
}

.topbar__logo-icon {
  width: var(--tds-spacing-8);  /* 2rem / 32px */
  height: var(--tds-spacing-8);
  flex-shrink: 0;
  display: block;
}

/* Language toggle */
.lang-toggle {
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  letter-spacing: 0.5px;
}

/* Override TDS heading color and size so topbar text stays visible and correct size (preview tab loads tds-components) */
.topbar .tds-heading {
  color: inherit;
}

.topbar .topbar__title.tds-heading {
  font-size: 1.125rem;
}

.topbar .topbar__trail-name.tds-heading {
  font-size: var(--tds-font-size-xl); /* 20px */
}

.topbar__title {
  font-family: var(--tds-font-family-sans);
  font-size: var(--tds-font-size-lg);
  font-weight: bold;
  white-space: nowrap;
}

.topbar__trail-name {
  font-family: var(--tds-font-family-heading);
  font-size: var(--tds-font-size-xl); /* 20px */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 520px;
}

.topbar .pill {
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(255, 255, 255, 0.6);
  color: var(--topbar-bg);
}

/* Topbar icon buttons: 44×44 hit area, 20×20 icon */
.topbar .btn--icon {
  width: var(--tds-font-size-7xl);  /* 44px */
  height: var(--tds-font-size-7xl);
}

.topbar .btn--icon .icon {
  width: var(--tds-font-size-xl);   /* 20px */
  height: var(--tds-font-size-xl);
}


/* === components/accordion.css === */
/*
 * Accordion
 * Expandable content sections using details/summary
 */


.accordion__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: var(--tds-spacing-3);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-black);
  cursor: pointer;
  list-style: none;
  transition: background var(--tds-duration-normal);
}

.accordion__trigger::-webkit-details-marker {
  display: none;
}

.accordion__trigger:hover {
  background: var(--color-bg-hover);
}

.accordion__trigger::after {
  content: "";
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--tds-color-fraggle);
  border-bottom: 2px solid var(--tds-color-fraggle);
  transform: rotate(45deg);
  transition: transform var(--tds-duration-normal);
}

.accordion[open] .accordion__trigger::after {
  transform: rotate(-135deg);
}

.accordion__content {
  padding: 0 var(--tds-spacing-3) var(--tds-spacing-3);
  font-size: var(--tds-font-size-sm);
  line-height: var(--tds-line-height-snug);
}

/* Accordion inside panel (using details/summary) */
.card.accordion {
  border-bottom: 1px solid var(--tds-color-fog);
  box-shadow: none;
  border-radius: var(--tds-radius-none);
}

.card.accordion > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-spacing-3);
  padding: var(--tds-spacing-3);
  font-weight: var(--tds-font-weight-bold);
  font-size: var(--tds-font-size-md);
  cursor: pointer;
  list-style: none;
  transition: background-color var(--tds-duration-normal);
}

.card.accordion > summary::-webkit-details-marker {
  display: none;
}

.card.accordion > summary:hover {
  background-color: var(--tds-color-sand);
}

/* Chevron indicator for card accordions */
.card.accordion > summary::after {
  content: "";
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--tds-color-meteorite);
  border-bottom: 2px solid var(--tds-color-meteorite);
  transform: rotate(45deg);
  transition: transform var(--tds-duration-normal);
  flex-shrink: 0;
}

.card.accordion[open] > summary::after {
  transform: rotate(-135deg);
}

.card.accordion p {
  margin: var(--tds-spacing-2) 0 var(--tds-spacing-4);
}

.card.accordion a {
  display: block;
  color: var(--tds-color-ocean);
  font-weight: var(--tds-font-weight-semibold);
  transition: color var(--tds-duration-normal);
}

.card.accordion a:hover {
  text-decoration: underline;
}

/* === components/builder.css === */
/*
 * Builder Page Components
 * Segment controls, trail cards, milestones, steps
 */

/* Segment control */
.segment {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-6);
}

.segment__item {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  padding: var(--tds-spacing-1) var(--tds-spacing-4);
  border-radius: var(--tds-radius-full);
  border: 2px dashed transparent;
  font-weight: var(--tds-font-weight-bold);
  font-size: var(--tds-font-size-sm);
  line-height: var(--tds-line-height-snug);
  color: var(--tds-color-meteorite);
}

/* active state */
.segment__item--active {
  background-color: var(--tds-color-ocean);
  color: var(--tds-color-white);
  cursor: default;
}

/* ghost state */
.segment__item--ghost {
  border-color: var(--tds-color-granite);
}

.segment__item--ghost:hover {
  border-color: var(--tds-color-metorite);
  color: var(--tds-color-black);
  background-color: var(--tds-color-fog);
}


/* Trail card (main editable card) */
.trail-card {
  margin-bottom: var(--tds-spacing-8);
  overflow: hidden;
}

.trail-card__body {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--tds-spacing-6);
  padding: var(--tds-spacing-5) var(--tds-spacing-5) var(--tds-spacing-6);
  align-items: start;
}

.trail-card__icon-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--tds-spacing-2);
}

.trail-card__icon {
  width: 5rem;
  height: 5rem;
  border-radius: var(--tds-radius-lg);
  background: var(--tds-color-midnight);
  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
}

.trail-card__icon img {
  width: 4rem;
  height: 4rem;
}

.trail-card__icon-actions {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--tds-spacing-2);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--tds-duration-long);
}

.trail-card__icon:hover .trail-card__icon-actions {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.trail-card__icon-btn {
  width: 32px;
  height: 32px;
  border-radius: var(--tds-radius-lg);
  background: rgba(255, 255, 255, 0.2);
  color: white;
  display: grid;
  place-items: center;
  backdrop-filter: blur(4px);
}

.trail-card__icon-btn:hover {
  background: rgba(255, 255, 255, 0.4);
}

.trail-card__icon-btn svg {
  width: 16px;
  height: 16px;
}

.trail-card__fields {
  display: grid;
  gap: var(--tds-spacing-4);
}

/* Metric tiles */
.metric-tiles {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tds-spacing-2);
  padding: 0 var(--tds-spacing-5) var(--tds-spacing-5);
}

.metric-tile {
  flex: 1 1 auto;
  min-width: 150px;
  background: var(--tds-color-sky);
  border-radius: var(--tds-radius-md);
  padding: var(--tds-spacing-3) var(--tds-spacing-4);
}

.metric-tile__label {
  display: block;
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-midnight);
}

.metric-tile__value {
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
}

.metric-tile__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-spacing-2);
}

.metric-tile__edit {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-ocean);
}

.metric-tile__edit:hover {
  text-decoration: underline;
}

/* Milestone */
.milestone {
  margin-bottom: var(--tds-spacing-8);
}

.milestone__header {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-4);
  padding: var(--tds-spacing-5);
  border-radius: var(--tds-radius-xl) var(--tds-radius-xl) 0 0;
  cursor: pointer;
  list-style: none;
}

.milestone__header::-webkit-details-marker {
  display: none;
}

.milestone__drag-handle {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  color: var(--tds-color-fraggle);
  cursor: grab;
  transition: opacity var(--tds-duration-normal);
  flex-shrink: 0;
}

.milestone__drag-handle:active {
  cursor: grabbing;
}

.milestone__drag-handle svg {
  width: 20px;
  height: 20px;
}

.milestone__chevron {
  width: 20px;
  height: 20px;
  color: var(--tds-color-ocean);
  transition: transform var(--tds-duration-normal);
}

.milestone[open] .milestone__chevron {
  transform: rotate(0deg);
}

.milestone:not([open]) .milestone__chevron {
  transform: rotate(-90deg);
}

.milestone__title {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-4);
  font-weight: var(--tds-font-weight-bold);
  color: var(--heading-accent);
}

.milestone__collapsed-info {
  display: none;
  align-items: center;
  gap: var(--tds-spacing-4);
  flex: 1;
  min-width: 0;
}

.milestone:not([open]) .milestone__collapsed-info {
  display: flex;
}

.milestone__arrow {
  width: 16px;
  height: 16px;
  color: var(--tds-color-fraggle);
}

.milestone__collapsed-title {
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-black);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.milestone__actions {
  margin-left: auto;
}

.milestone__body {
  display: grid;
  gap: var(--tds-spacing-4);
  padding: 0 var(--tds-spacing-5) var(--tds-spacing-4);
}

.milestone__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--tds-spacing-5) var(--tds-spacing-4);
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-metorite);
  line-height: var(--tds-line-height-normal);
}

.milestone__points {
  font-weight: var(--tds-font-weight-semibold);
}

.milestone__add-step {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--tds-spacing-2);
  width: 100%;
  height: 56px;
  color: var(--tds-color-ocean);
  font-weight: var(--tds-font-weight-bold);
  border-top: 1px solid var(--color-border);
  border-radius: 0 0 var(--tds-radius-xl) var(--tds-radius-xl);
  transition: background var(--tds-duration-normal);
}

.milestone__add-step:hover {
  background: var(--color-bg-hover);
}

/* Step list */
.step-list {
  list-style: none;
}

.step {
  display: grid;
  grid-template-columns: 32px 1fr auto;
  gap: var(--tds-spacing-4);
  padding: var(--tds-spacing-4) var(--tds-spacing-5);
  border-top: 1px solid var(--tds-color-fog);
  background-color: var(--tds-color-white);
  transition: background var(--tds-duration-normal);
}

.step:hover {
  background-color: var(--tds-color-sky);
}

.step--generated {
  background: var(--generated-bg);
  outline: 2px solid var(--generated-outline);
  outline-offset: -2px;
}

.step__drag-handle {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  color: var(--tds-color-fraggle);
  cursor: grab;
  transition: opacity var(--tds-duration-normal);
  flex-shrink: 0;
}

.step__drag-handle:active {
  cursor: grabbing;
}

.step__drag-handle svg {
  width: 20px;
  height: 20px;
}

.step__content {
  cursor: pointer;
  min-width: 0;
}

.step__kind {
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-fraggle);
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  margin-bottom: var(--tds-spacing-1);
}

.step__type-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  font-weight: var(--tds-font-weight-semibold);
}

.step__type-icon {
  width: 14px;
  height: 14px;
}

.step__type-badge--badge,
.step__type-badge--generated-badge {
  color: var(--tds-color-ocean);
}

.step__type-badge--video {
  color: var(--red-500);
}

.step__type-badge--knowledge-article {
  color: var(--tds-color-evergreen);
}

.step__status {
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-bold);
  padding: 2px var(--tds-spacing-2);
  border-radius: var(--tds-radius-full);
  background: var(--color-bg-hover);
  color: var(--tds-color-fraggle);
}

.step__status--pending {
  background: var(--color-bg-warning);
  color: var(--tds-color-sunshine);
}

.step__title {
  font-weight: var(--tds-font-weight-bold);
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-ocean);
}

.step__title:hover {
  text-decoration: underline;
}

.step__title--link {
  text-decoration: none;
  cursor: pointer;
}

.step__title--link:hover {
  text-decoration: underline;
}

.step__desc {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-fraggle);
  margin-top: var(--tds-spacing-1);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.step__source {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  margin-top: var(--tds-spacing-2);
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-fraggle);
}

.step__source-dot {
  width: 8px;
  height: 8px;
  border-radius: var(--tds-radius-full);
  background: var(--tds-color-ocean);
}

.step__aside {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-3);
  align-self: start;
  padding-top: var(--tds-spacing-1);
}

.step__time {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-fraggle);
  white-space: nowrap;
}

.step__complete {
  color: var(--tds-color-ocean);
  font-weight: var(--tds-font-weight-semibold);
  font-size: var(--tds-font-size-sm);
  white-space: nowrap;
}

.step__complete:hover {
  text-decoration: underline;
}

/* Dropdown button */
.dropdown-btn {
  display: grid;
  place-items: center;
  width: 2.375rem;
  height: 2.375rem;
  border-radius: var(--tds-radius-md);
  border: 2px solid var(--tds-color-ocean);
  background-color: var(--tds-color-white);
  color: var(--tds-color-ocean);
}

.dropdown-btn:hover {
  background-color: var(--tds-color-sky);
  border-color: var(--tds-color-midnight);
  color: var(--tds-color-midnight);
}

.dropdown-btn--accent {
  border-color: var(--color-border-accent);
  color: var(--tds-color-ocean);
}

.dropdown-btn--accent:hover {
  background: var(--accent-soft);
}

/* Add milestone button */
.add-milestone {
  display: flex;
  justify-content: center;
  margin-bottom: var(--tds-spacing-8);
}

.add-milestone__btn {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  padding: 6px var(--tds-spacing-3);
  border: 2px solid var(--tds-color-ocean);
  border-radius: var(--tds-radius-md);
  background-color: var(--tds-color-white);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  line-height: var(--tds-line-height-snug);
  color: var(--tds-color-ocean);
}

.add-milestone__btn:hover {
  color: var(--tds-color-midnight);
  background-color: var(--tds-color-sky);
  border-color: var(--tds-color-midnight);
}

.add-milestone__btn--lg {
  padding: 0.375rem var(--tds-spacing-3);
  font-size: var(--tds-font-size-md);
}


/* Build page layout */
.build__top {
  display: flex;
  justify-content: center;
  gap: var(--tds-spacing-3);
  margin-bottom: var(--tds-spacing-8);
}

.build__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--tds-spacing-8) 0;
}

.build__empty-text {
  color: var(--tds-color-metorite);
  margin-bottom: var(--tds-spacing-4);
  text-align: center;
}

/* Version dropdown */
.version-dropdown {
  position: relative;
}

.dropdown__menu {
  position: absolute;
  top: 100%;
  right: 0;
  min-width: 200px;
  margin-top: var(--tds-spacing-1);
  padding: var(--tds-spacing-2);
  background: var(--surface-card);
  border: 1px solid var(--border-muted);
  border-radius: var(--tds-radius-lg-2);
  box-shadow: var(--tds-shadow-sm);
  z-index: 100;
}

.dropdown__menu[hidden] {
  display: none;
}

.dropdown__item {
  display: block;
  padding: var(--tds-spacing-2) var(--tds-spacing-3);
  color: var(--tds-color-black);
  font-size: var(--tds-font-size-sm);
  border-radius: var(--tds-radius-lg);
  text-decoration: none;
}

.dropdown__item:hover {
  background: var(--color-bg-hover);
}

.dropdown__item--version {
  display: flex;
  justify-content: space-between;
  gap: var(--tds-spacing-2);
}

.dropdown__divider {
  margin: var(--tds-spacing-2) 0;
  border: none;
  border-top: 1px solid var(--border-muted);
}

/* Drag and drop states */
.step--dragging,
.milestone--dragging {
  opacity: 0.5;
  outline: 2px dashed var(--color-border-accent);
  outline-offset: -2px;
}

.step--drag-over {
  background: var(--accent-soft);
  border-top: 2px solid var(--color-border-accent);
}

.milestone--drag-over {
  background: var(--accent-soft);
}

/* Milestone drag placement: show where the card will land */
.milestone--drop-before {
  box-shadow: 0 -4px 0 0 var(--tds-color-ocean);
}

.milestone--drop-after {
  box-shadow: 0 4px 0 0 var(--tds-color-ocean);
}

/* Expandable search details in chat */
.search-details {
  margin-top: var(--tds-spacing-2);
  border: 1px solid var(--border-muted);
  border-radius: var(--tds-radius-lg-2);
  background: var(--surface-subtle);
  overflow: hidden;
}

.search-details summary {
  padding: var(--tds-spacing-2) var(--tds-spacing-3);
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-fraggle);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
}

.search-details summary:hover {
  background: var(--color-bg-hover);
}

.search-details summary::marker {
  content: "";
}

.search-details summary::before {
  content: "";
  width: 0;
  height: 0;
  border-left: 5px solid currentColor;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  transition: transform var(--tds-duration-normal);
}

.search-details[open] summary::before {
  transform: rotate(90deg);
}

.search-details__content {
  padding: var(--tds-spacing-3);
  border-top: 1px solid var(--border-muted);
}

.search-details__query {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-fraggle);
  margin-bottom: var(--tds-spacing-2);
}

.search-details__results {
  list-style: none;
}

.search-details__result {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--tds-spacing-2);
  padding: var(--tds-spacing-2) 0;
  border-bottom: 1px solid var(--border-muted);
  font-size: var(--tds-font-size-sm);
}

.search-details__result:last-child {
  border-bottom: none;
}

.search-details__title {
  font-weight: var(--tds-font-weight-semibold);
  color: var(--tds-color-black);
}

.search-details__confidence {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  font-size: var(--tds-font-size-xs);
  padding: 2px var(--tds-spacing-2);
  border-radius: var(--tds-radius-full);
}

.search-details__confidence--high {
  background: var(--color-bg-success);
  color: var(--tds-color-evergreen);
}

.search-details__confidence--medium {
  background: var(--color-bg-warning);
  color: var(--tds-color-sunshine);
}

.search-details__confidence--low {
  background: var(--color-bg-hover);
  color: var(--tds-color-fraggle);
}

.search-details__level {
  font-size: var(--tds-font-size-xs);
  margin-left: var(--tds-spacing-2);
}

.search-details__more {
  font-size: var(--tds-font-size-xs);
  margin-top: var(--tds-spacing-2);
}

/* Status badges */
.status-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  padding: var(--tds-spacing-1) var(--tds-spacing-3);
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-bold);
  border-radius: var(--tds-radius-full);
  line-height: var(--tds-line-height-tight);
}

.status-badge--draft {
  background: hsla(0, 0%, 100%, 0.2);
}

.status-badge--preview {
  background: var(--color-bg-warning);
  color: var(--tds-color-sunshine);
}

.status-badge--published {
  background: var(--color-bg-success);
  color: var(--tds-color-evergreen);
}

.status-badge--archived {
  background: var(--color-bg-hover);
  color: var(--tds-color-fraggle);
}

/* Status indicator dot */
.status-dot {
  width: 8px;
  height: 8px;
  border-radius: var(--tds-radius-full);
}

.status-dot--draft {
  background: var(--tds-color-fraggle);
}

.status-dot--preview {
  background: var(--tds-color-sunshine);
}

.status-dot--published {
  background: var(--tds-color-evergreen);
}

/* Preview mode banner */
.preview-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--tds-spacing-3) var(--tds-spacing-4);
  background: var(--color-bg-warning);
  color: var(--tds-color-sunshine);
  border-radius: var(--tds-radius-lg-2);
  margin-bottom: var(--tds-spacing-4);
}

.preview-banner__text {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  font-weight: var(--tds-font-weight-semibold);
}

/* Publish workflow */
.publish-actions {
  display: flex;
  gap: var(--tds-spacing-2);
}

/* Error state */
.error-message {
  display: flex;
  align-items: flex-start;
  gap: var(--tds-spacing-3);
}

.error-message__icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  color: var(--tds-color-ruby);
}

.error-message__content {
  flex: 1;
}

.error-message__title {
  font-weight: var(--tds-font-weight-semibold);
  margin-bottom: var(--tds-spacing-1);
  color: var(--tds-color-ruby);
}

.error-message__text {
  font-size: var(--tds-font-size-sm);
  opacity: 0.9;
  color: var(--tds-color-ruby);
}

.error-message__actions {
  margin-top: var(--tds-spacing-2);
  display: flex;
  gap: var(--tds-spacing-2);
}

.btn--retry {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  padding: var(--tds-spacing-1) var(--tds-spacing-3);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-semibold);
  background: var(--color-bg);
  border: 1px solid var(--color-border-error);
  border-radius: var(--tds-radius-lg);
}

.btn--retry:hover {
  background: var(--color-bg-hover);
}

/* Metric tiles - animate value changes */
.metric-tile__value {
  transition: transform var(--tds-duration-short) var(--ease-spring), color 0.3s ease;
}

/* Enhanced hover states
.milestone__header {
  transition: background var(--tds-duration-normal), box-shadow var(--tds-duration-normal);
}

.milestone:hover .milestone__header {
  background: var(--color-bg-subtle);
}

.step {
  transition: background var(--tds-duration-normal), transform var(--tds-duration-normal), box-shadow var(--tds-duration-normal);
}

.step:hover {
  transform: translateX(2px);
  box-shadow: -2px 0 0 0 var(--color-border-accent);
}

 */

/* Generated step special styling */
.step--generated {
  position: relative;
}

.step--generated::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    rgba(1, 118, 211, 0.04) 0%,
    rgba(1, 118, 211, 0) 100%);
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--tds-duration-normal) ease;
}

.step--generated:hover::before {
  opacity: 1;
}


/* Milestone add step button 
.milestone__add-step {
  transition: all var(--tds-duration-normal);
}

.milestone__add-step:hover {
  background: var(--accent-soft);
  color: var(--tds-color-ocean);
}

.milestone__add-step .icon {
  transition: transform var(--tds-duration-normal);
}

.milestone__add-step:hover .icon {
  transform: scale(1.1);
}
*/
/* Step type badge animations 
.step__type-badge {
  transition: transform var(--tds-duration-normal);
}

.step:hover .step__type-badge {
  transform: translateX(2px);
}

.step__type-icon {
  transition: transform var(--tds-duration-normal);
}

.step:hover .step__type-icon {
  transform: scale(1.1);
}
*/

/* Disabled/muted states for new trail form */
.segment__item:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.segment__item--ghost:disabled:hover {
  border-color: var(--border-muted);
  color: var(--tds-color-fraggle);
}

.metric-tiles--muted {
  opacity: 0.6;
}

.metric-tiles--muted .metric-tile {
  background: var(--surface-subtle);
}

/* New trail CTA section */
.new-trail-form {
  display: contents;
}

.new-trail-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--tds-spacing-4);
  padding: var(--tds-spacing-6);
  text-align: center;
}

.new-trail-cta__text {
  color: var(--tds-color-stormcloud);
  font-size: var(--tds-font-size-sm);
  max-width: 360px;
}

.new-trail-cta__demo {
  margin-top: var(--tds-spacing-4);
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-fraggle);
}

.new-trail-cta__demo a {
  color: var(--tds-color-ocean);
  text-decoration: none;
}

.new-trail-cta__demo a:hover {
  text-decoration: underline;
}

/* Disabled sparkle buttons */
.sparkle:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.trail-card__icon-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.trail-card__icon-btn:disabled:hover {
  background: rgba(255, 255, 255, 0.2);
}

/* ==========================================================================
   Inline Edit Styles
   ========================================================================== */

.inline-edit {
  position: relative;
}

.inline-edit__wrapper {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
}

.inline-edit__input {
  flex: 1;
  transition: border-color var(--tds-duration-short) ease, box-shadow 0.2s ease;
}

.inline-edit__input:focus {
  outline: none;
  border-color: var(--color-border-accent);
  box-shadow: 0 0 0 3px rgba(1, 118, 211, 0.15);
}

.inline-edit__input--error {
  border-color: var(--color-border-error) !important;
  box-shadow: 0 0 0 3px rgba(194, 57, 52, 0.15) !important;
}

.inline-edit__status {
  position: absolute;
  right: 34px;
  top: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

.inline-edit__icon {
  width: 14px;
  height: 14px;
  color: var(--tds-color-fraggle);
}

.inline-edit__icon--success {
  color: var(--tds-color-evergreen);
}

.inline-edit__icon--error {
  color: var(--tds-color-ruby);
}

.inline-edit__status--editing .inline-edit__icon {
  color: var(--tds-color-ocean);
}

.inline-edit__status--saving .inline-edit__icon {
  color: var(--tds-color-ocean);
}

.inline-edit__error {
  display: block;
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-ruby);
}

.inline-edit__error[hidden] {
  display: none;
}

/* Inline edit for inputs and textareas */
.inline-edit .form__input,
.inline-edit .form__textarea {
  padding-right: var(--tds-spacing-8);
}

/* Status indicator positioned inside input */
.inline-edit--compact .inline-edit__status {
  position: absolute;
  right: var(--tds-spacing-2);
  top: 50%;
  transform: translateY(-50%);
}

/* Character count */
.inline-edit__char-count {
  position: absolute;
  right: var(--tds-spacing-3);
  bottom: var(--tds-spacing-2);
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-fraggle);
  pointer-events: none;
}

.inline-edit__char-count--warning {
  color: var(--tds-color-sunshine);
}

.inline-edit__char-count--error {
  color: var(--tds-color-ruby);
}


/* ==========================================================================
   Step Editor Modal
   ========================================================================== */

.modal {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: var(--z-modal, 1000);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--tds-spacing-4);
}

.modal[hidden] {
  display: none;
}

.modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(2px);
}

[data-theme="dark"] .modal__backdrop {
  background: rgba(0, 0, 0, 0.7);
}

.modal__content {
  position: relative;
  width: 100%;
  max-width: 480px;
  background: var(--surface-card);
  border: 1px solid var(--border-muted);
  border-radius: var(--tds-radius-xl);
  box-shadow: var(--shadow-xl);
  overflow: hidden;
}

@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(16px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--tds-spacing-4) var(--tds-spacing-5);
  border-bottom: 1px solid var(--border-muted);
  background: var(--surface-subtle);
}

.modal__title {
  margin: 0;
  font-size: var(--tds-font-size-md);
  font-weight: var(--tds-font-weight-semibold);
  color: var(--tds-color-black);
}

.modal__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: none;
  border-radius: var(--tds-radius-lg);
  background: transparent;
  color: var(--tds-color-fraggle);
  cursor: pointer;
  transition: background var(--tds-duration-normal), color var(--tds-duration-normal);
}

.modal__close:hover {
  background: var(--color-bg-hover);
  color: var(--tds-color-black);
}

.modal__close:focus-visible {
  outline: 2px solid var(--color-border-accent);
  outline-offset: 2px;
}

.modal__body {
  padding: var(--tds-spacing-5);
}

.modal__body .field {
  margin-bottom: var(--tds-spacing-4);
}

.modal__body .field:last-child {
  margin-bottom: 0;
}

.modal__body .label {
  display: block;
  margin-bottom: var(--tds-spacing-1);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-semibold);
  color: var(--tds-color-black);
}

.modal__body .input,
.modal__body .select,
.modal__body .textarea {
  width: 100%;
  padding: var(--tds-spacing-2) var(--tds-spacing-3);
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-black);
  background-color: var(--tds-color-white);
  border: 1px solid var(--tds-color-fog);
  border-radius: var(--tds-radius-lg);
  transition: border-color var(--tds-duration-short), background-color var(--tds-duration-short);
}

.modal__body .input:focus,
.modal__body .select:focus,
.modal__body .textarea:focus {
  outline: none;
  border-color: var(--color-border-accent);
  box-shadow: 0 0 0 3px rgba(1, 118, 211, 0.15);
}

.modal__body .select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23666'%3E%3Cpath d='M6 8l4 4 4-4' stroke='currentColor' stroke-width='2' stroke-linecap='round' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right var(--tds-spacing-2) center;
  background-size: 20px;
  padding-right: var(--tds-spacing-8);
}

.modal__body .textarea {
  resize: vertical;
  min-height: 100px;
}

.modal__status {
  margin-top: var(--tds-spacing-3);
  padding: var(--tds-spacing-2) var(--tds-spacing-3);
  font-size: var(--tds-font-size-sm);
  border-radius: var(--tds-radius-lg);
  text-align: center;
}

.modal__status[hidden] {
  display: none;
}

.modal__status--loading {
  background: var(--color-bg-hover);
  color: var(--tds-color-fraggle);
}

.modal__status--success {
  background: var(--color-bg-success);
  color: var(--tds-color-evergreen);
}

.modal__status--error {
  background: var(--color-bg-error);
  color: var(--tds-color-ruby);
}

.modal__footer {
  display: flex;
  justify-content: flex-end;
  gap: var(--tds-spacing-3);
  padding: var(--tds-spacing-4) var(--tds-spacing-5);
  border-top: 1px solid var(--border-muted);
  background: var(--surface-subtle);
}

/* Modal open body state */
body.modal-open {
  overflow: hidden;
}

/* Step actions dropdown positioning */
.step__actions {
  position: relative;
}

.step__actions .dropdown__menu {
  min-width: 140px;
}

.step__actions .dropdown__menu--end {
  right: 0;
  left: auto;
}

.dropdown__item {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  cursor: pointer;
}

.dropdown__item--danger {
  color: var(--tds-color-ruby);
}

.dropdown__item--danger:hover {
  background: var(--color-bg-error);
}

/* Expanded step state */
.step--expanded {
  background: var(--surface-subtle);
}

.step--expanded .step__desc {
  -webkit-line-clamp: unset;
  display: block;
}

/* Tab nav: animated underline for active/hover */
.builder__nav-link {
  position: relative;
}

.builder__nav-link::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 3px;
  background: var(--tds-color-ocean);
  border-radius: 3px 3px 0 0;
  transition: width var(--tds-duration-short) ease;
}

.builder__nav-link--active::after,
.builder__nav-link:hover::after {
  width: 100%;
}


/* === components/buttons.css === */
/*
 * Buttons
 * All button variants and icon buttons
 */

.btn {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--tds-spacing-2);
  padding: var(--tds-spacing-2) var(--tds-spacing-3);
  font-weight: var(--tds-font-weight-bold);
  font-size: var(--tds-font-size-md);
  line-height: var(--tds-line-height-normal);
  border-radius: var(--tds-radius-md);
  border: 2px solid transparent;
  cursor: pointer;
  white-space: nowrap;
}

.btn:hover {
  background-color: var(--tds-color-sky);
  border-color: var(--tds-color-midnight);
  color: var(--tds-color-midnight);
}


/* primary */
.btn--primary {
  background-color: var(--tds-color-ocean);
  border-color: transparent;
  color: var(--tds-color-white);
}

.btn--primary:hover {
  background-color: var(--tds-color-midnight);
  color: var(--tds-color-white);
}


/* secondary */
.btn--outline {
  border-color: var(--tds-color-ocean);
  color: var(--tds-color-ocean);
}

.btn--outline:hover {
  background-color: var(--tds-color-sky);
  border-color: var(--tds-color-midnight);
  color: var(--tds-color-midnight);
}

/* tertiary */
.btn--ghost {
  background-color: transparent;
  border-color: transparent;
}

.btn--ghost:hover {
  background-color: var(--tds-color-sky);
  border-color: transparent;
  color: var(--tds-color-midnight);
}

/* active */
.btn--active {
  background-color: var(--color-bg-active);
  color: var(--tds-color-ocean);
}

.btn--active:hover {
  background-color: var(--color-bg-active);
}

/* size */
.btn--sm {
  padding: var(--tds-spacing-1) var(--tds-spacing-2);
  font-size: var(--tds-font-size-sm);
}

.btn--lg {
  padding: var(--tds-spacing-3) var(--tds-spacing-6);
  font-size: var(--tds-font-size-md);
}

.btn--full {
  width: 100%;
}

/* icon */
.btn--icon {
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: var(--tds-radius-full);
}

.btn--icon-sm {
  width: 28px;
  height: 28px;
}

.btn--icon-only {
  width: 36px;
  height: 36px;
  padding: 0;
}

/* compact */
.btn--compact {
  padding: var(--tds-spacing-1) var(--tds-spacing-3);
  font-size: var(--tds-font-size-sm);
}

/* flex */
.btn--flex {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-2);
}

/* Icon buttons for topbar (light on dark) */
.btn--topbar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: transparent;
  border: none;
  color: var(--tds-color-white);
  cursor: pointer;
}

.btn--topbar:hover {
  background-color: #022AC0;
  border-radius: var(--tds-radius-full);
}

.btn--topbar:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.btn--topbar:disabled:hover {
  background-color: transparent;
  transform: none;
}

.btn--topbar .icon {
  pointer-events: none;
}

/* Disabled button states */
.btn:disabled,
.btn--ghost:disabled {
  background-color: var(--tds-color-granite);
  border-color: transparent;
  color: var(--tds-color-white);
  cursor: not-allowed;
  pointer-events: auto;
}


/* Theme Toggle */
.theme-toggle__icon {
  display: none;
}

.theme-toggle[data-theme-mode="light"] .theme-toggle__icon--sun,
.theme-toggle[data-theme-mode="dark"] .theme-toggle__icon--moon {
  display: block;
}

/* Icon */
.icon {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.icon--sm {
  width: 14px;
  height: 14px;
}

.icon--lg {
  width: 24px;
  height: 24px;
}

/* Ripple and loading (keyframes in bundle) */
.btn::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  padding-bottom: 100%;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.3);
  opacity: 0;
}

.btn:active::after {
  animation: ripple 0.4s ease-out;
}

.btn--loading {
  position: relative;
  color: transparent;
  pointer-events: none;
}

.btn--loading::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 16px;
  margin: -8px 0 0 -8px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
}

.btn--primary.btn--loading::before {
  border-color: rgba(255, 255, 255, 0.3);
  border-top-color: white;
}


/* === components/cards.css === */
/*
 * Cards
 * Card container and variants
 */

.card {
  background: var(--tds-color-white);
  border-radius: var(--tds-radius-xl);
  box-shadow: var(--tds-shadow-xxs);
}

[data-theme="dark"] .card {
  box-shadow: none;
}

.card__header {
  padding: var(--tds-spacing-4);
  border-bottom: 1px solid var(--color-border);
}

.card__body {
  padding: var(--tds-spacing-4);
}

.card__footer {
  padding: var(--tds-spacing-4);
  border-top: 1px solid var(--color-border);
}

[data-theme="dark"] .card__header,
[data-theme="dark"] .card__footer {
  border-color: var(--trl-border);
}

/* Card modifiers for panel */
.card--confidence {
  background: var(--tds-color-sky);
  margin-bottom: var(--tds-spacing-6);
  box-shadow: none;
}

/* Mini card (inside accordion) */
.mini-card {
  margin-top: var(--tds-spacing-3);
  padding: var(--tds-spacing-3);
  background: var(--color-bg-alt);
  border-radius: var(--tds-radius-lg);
  border: 1px solid var(--color-border);
}

.mini-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--tds-spacing-2);
  margin-bottom: var(--tds-spacing-2);
}

.mini-card__title {
  font-weight: var(--tds-font-weight-bold);
  font-size: var(--tds-font-size-sm);
}

.mini-card__link {
  color: var(--tds-color-ocean);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-semibold);
}

.mini-card__link:hover {
  text-decoration: underline;
}

.mini-card__list {
  margin-top: var(--tds-spacing-2);
  padding-left: var(--tds-spacing-4);
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-stormcloud);
}

/* Bubble Card (inside message) */
.bubble-card {
  margin-top: var(--tds-spacing-3);
  padding: var(--tds-spacing-3);
  border-radius: var(--tds-radius-lg-2);
  border: 1px solid var(--border-card);
  background: var(--surface-subtle);
}

.bubble-card--success {
  background: var(--success-bg);
  border-color: var(--color-border-success);
}

.bubble-card__title {
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-black);
  margin-bottom: var(--tds-spacing-2);
}

.bubble-card__subtitle {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-fraggle);
  margin-top: var(--tds-spacing-1);
}

.bubble-card__body {
  padding: var(--tds-spacing-2);
  background: var(--surface-card);
  border: 1px solid var(--border-card);
  border-radius: var(--tds-radius-lg);
}

.bubble-card__label {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-fraggle);
}

.bubble-card__value {
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-black);
  margin-top: var(--tds-spacing-1);
}

.bubble-card__list {
  margin-top: var(--tds-spacing-2);
  padding-left: var(--tds-spacing-4);
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-stormcloud);
}

.bubble-card__footer {
  margin-top: var(--tds-spacing-3);
  display: flex;
  justify-content: flex-end;
}

.bubble-card__status {
  margin-top: var(--tds-spacing-3);
  padding-top: var(--tds-spacing-3);
  border-top: 1px solid var(--color-border);
}


/* === components/chat.css === */
/*
 * Chat Components
 * Chat container, messages, composer, and avatar
 */

 /* Avatar */
 .avatar {
  position: relative;
  display: grid;
  flex-shrink: 0;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: var(--tds-radius-full);
}

.avatar--agent {
  background-color: var(--tds-color-electric-blue-90);
  color: var(--tds-color-electric-blue-40);
}

.avatar__icon {
  width: 20px;
  height: 20px;
}

/* Chat Container */
.chat {
  /* Flex child of .sidebar - fills available space */
  display: flex;
  flex-direction: column;
  flex: 1 1 0%;         /* Grow, shrink, with 0 base (important for flex sizing) */
  min-height: 0;        /* Critical: allows shrinking below content size */
  overflow: hidden;     /* Contain scroll area */
  height: 100%;
}

.chat__messages {
  /* Scroll area - takes remaining space and scrolls */
  flex: 1 1 0%;         /* Grow, shrink, with 0 base */
  min-height: 0;        /* Critical: allows shrinking below content size */
  padding: var(--tds-spacing-4);
  overflow: hidden;
  overflow-y: auto;     /* Enable vertical scrolling */
  overscroll-behavior: contain;
  scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
  scrollbar-width: thin;
  align-content: end;
}

.chat__messages::-webkit-scrollbar {
  width: 10px;
}

.chat__messages::-webkit-scrollbar-track {
  background: var(--scrollbar-track);
}

.chat__messages::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
  border-radius: var(--tds-radius-full);
  border: 2px solid var(--scrollbar-track);
}

.chat__messages::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover);
}

.chat__timestamp {
  display: flex;
  justify-content: center;
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
  margin: var(--tds-spacing-2) 0 var(--tds-spacing-3);
}

.chat__composer {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-2);
  padding: var(--tds-spacing-4);
  border-top: 1px solid var(--tds-color-fog);
  align-items: center;
  flex-shrink: 0;
}

.chat__composer .chat__input {
  width: 100%;
}

.chat__composer > .btn:first-of-type {
  grid-row: 2;
  grid-column: 1;
}

.chat__composer .chat__actions {
  position: absolute;
  right: 1.5rem;
  bottom: 1.5rem;
  left: 1.5rem;
}

.chat__input {
  font-size: var(--tds-font-size-sm);
  line-height: var(--tds-line-height-snug);
  color: var(--tds-color-black);
  border: 1px solid var(--tds-color-fraggle);
  border-radius: var(--tds-radius-md);
  padding: var(--tds-spacing-3) var(--tds-spacing-4) var(--tds-spacing-16);
  transition: background-color var(--tds-duration-short), border-color var(--tds-duration-short);
}

.chat__input::placeholder {
  color: var(--tds-color-meteorite);
}

.chat__input:hover {
  border-color: var(--tds-color-meteorite);
}

.chat__input:focus {
  outline: none;
  border-color: var(--tds-color-midnight);
  background-color: var(--tds-color-sky);
  box-shadow: var(--tds-shadow-focus);
}

.chat__actions {
  display: grid;
  grid-template-columns: 1fr auto auto; /* 3 columns: flexible + 2 auto */
  align-items: center;
}

.chat__actions .btn--ghost:nth-child(1) {
  justify-self: start;
}

.chat__actions .btn--ghost:nth-child(2),
.chat__actions .btn--ghost:nth-child(3) {
  justify-self: end;
}






/* Message */
.message {
  display: flex;
  gap: var(--tds-spacing-3);
  margin-bottom: var(--tds-spacing-4);
}

.message:last-child {
  margin-bottom: 0;
}

.message__content {
  min-width: 0;
}

.message__bubble {
  margin-bottom: var(--tds-spacing-1);
  border-radius: var(--tds-radius-lg);
  font-size: var(--tds-font-size-sm);
  line-height: var(--tds-line-height-normal);
}

.message__meta {
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
}

.message__greeting {
  margin-bottom: var(--tds-spacing-2);
}

.message__p {
  margin-top: var(--tds-spacing-3);
}

.message__p:first-child {
  margin-top: 0;
}

.message__actions {
  display: flex;
  gap: var(--tds-spacing-2);
  margin-top: var(--tds-spacing-3);
}

/* Signal (status indicator) */
.signal {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.signal__score {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  width: 100%;
  margin-right: var(--tds-spacing-1);
}

.signal__score-text {
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-regular);
  color: var(--tds-color-meteorite);
  white-space: nowrap;
}

.signal--check {
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-semibold);
  color: var(--tds-color-evergreen);
}

.signal__icon {
  width: 16px;
  height: 16px;
}

.signal__dot {
  width: 8px;
  height: 8px;
  border-radius: var(--tds-radius-full);
  background: var(--tds-color-evergreen);
}

.signal__dot--warn {
  background: var(--tds-color-sunshine);
}



/* User messages */
.message--user {
  direction: rtl;
  margin-left: 3rem;
}

.message--user .message__content {
  direction: ltr;
  text-align: left;
}

.message--user .message__bubble {
  padding: var(--tds-spacing-2) var(--tds-spacing-4);
  color: var(--tds-color-midnight);
  background-color: var(--tds-color-sky);
}

.message--user .message__meta {
  text-align: right;
}

/* Error messages */
.message--error .message__bubble {
  color: var(--tds-color-ruby);
}

.message__bubble--error {
  color: var(--tds-color-ruby) !important;
}

/* Thinking indicator */
.message--thinking .message__bubble {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-2);
}

.thinking-dots {
  display: inline-flex;
  gap: 4px;
}

.thinking-dots span {
  width: 6px;
  height: 6px;
  border-radius: var(--tds-radius-full);
  background: var(--tds-color-fraggle);
  animation: thinking-bounce 1.4s infinite ease-in-out both;
}

.thinking-dots span:nth-child(1) {
  animation-delay: -0.32s;
}

.thinking-dots span:nth-child(2) {
  animation-delay: -0.16s;
}

@keyframes thinking-bounce {
  0%, 80%, 100% {
    transform: scale(0);
  }
  40% {
    transform: scale(1);
  }
}

/* Markdown content styling */
.message__bubble--markdown {
  /* Reset spacing for markdown content */
}

.message__bubble--markdown p {
  margin: 0 0 0.75em 0;
}

.message__bubble--markdown p:last-child {
  margin-bottom: 0;
}

.message__bubble--markdown h1,
.message__bubble--markdown h2,
.message__bubble--markdown h3,
.message__bubble--markdown h4 {
  margin: 1em 0 0.5em 0;
  font-weight: var(--tds-font-weight-semibold);
  line-height: 1.3;
  color: var(--tds-color-black);
}

.message__bubble--markdown h1:first-child,
.message__bubble--markdown h2:first-child,
.message__bubble--markdown h3:first-child,
.message__bubble--markdown h4:first-child {
  margin-top: 0;
}

.message__bubble--markdown h1 { font-size: 1.25em; }
.message__bubble--markdown h2 { font-size: 1.125em; }
.message__bubble--markdown h3 { font-size: 1em; }
.message__bubble--markdown h4 { font-size: 0.9375em; }

.message__bubble--markdown ul,
.message__bubble--markdown ol {
  margin: 0.5em 0;
  padding-left: 1.5em;
}

.message__bubble--markdown li {
  margin: 0.25em 0;
}

.message__bubble--markdown ul li {
  list-style-type: disc;
}

.message__bubble--markdown ol li {
  list-style-type: decimal;
}

.message__bubble--markdown code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.875em;
  background: var(--color-bg-muted, rgba(0, 0, 0, 0.05));
  padding: 0.125em 0.375em;
  border-radius: var(--tds-radius-lg);
}

.message__bubble--markdown pre {
  margin: 0.75em 0;
  padding: 0.75em 1em;
  background: var(--color-bg-muted, rgba(0, 0, 0, 0.05));
  border-radius: var(--tds-radius-lg-2);
  overflow-x: auto;
}

.message__bubble--markdown pre code {
  background: none;
  padding: 0;
  font-size: 0.8125em;
}

.message__bubble--markdown blockquote {
  margin: 0.75em 0;
  padding: 0.5em 1em;
  border-left: 3px solid var(--color-border-accent);
  background: var(--color-bg-muted, rgba(0, 0, 0, 0.025));
  color: var(--tds-color-stormcloud);
}

.message__bubble--markdown blockquote p {
  margin: 0;
}

.message__bubble--markdown table {
  width: 100%;
  border-collapse: collapse;
  margin: 0.75em 0;
  font-size: 0.875em;
}

.message__bubble--markdown th,
.message__bubble--markdown td {
  padding: 0.5em 0.75em;
  border: 1px solid var(--color-border);
  text-align: left;
}

.message__bubble--markdown th {
  background: var(--color-bg-muted, rgba(0, 0, 0, 0.05));
  font-weight: var(--tds-font-weight-semibold);
}

.message__bubble--markdown a {
  color: var(--tds-color-ocean);
  text-decoration: underline;
}

.message__bubble--markdown a:hover {
  text-decoration: none;
}

.message__bubble--markdown strong {
  font-weight: var(--tds-font-weight-semibold);
}

.message__bubble--markdown em {
  font-style: italic;
}

.message__bubble--markdown hr {
  border: none;
  border-top: 1px solid var(--color-border);
  margin: 1em 0;
}

.message__bubble--markdown mark {
  background: #fef08a;
  padding: 0.0625em 0.25em;
  border-radius: 2px;
}

.message__bubble--markdown del {
  text-decoration: line-through;
  color: var(--tds-color-fraggle);
}

/* Chat empty state */
.chat-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  padding: var(--tds-spacing-6);
  text-align: center;
}

.chat-empty-state__greeting {
  font-size: var(--tds-font-size-md);
  font-weight: var(--tds-font-weight-semibold);
  color: var(--tds-color-black);
  margin-bottom: var(--tds-spacing-2);
}

.chat-empty-state__hint {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-fraggle);
  max-width: 280px;
  margin-bottom: var(--tds-spacing-4);
}

.chat-empty-state__suggestions {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-2);
  width: 100%;
  max-width: 300px;
  margin-top: var(--tds-spacing-4);
}

/* Hint text for chat messages */
.message__hint {
  margin-top: var(--tds-spacing-4);
  color: var(--tds-color-meteorite);
  font-size: var(--tds-font-size-sm);
  line-height: var(--tds-line-height-snug);
  font-style: italic;
}

/* Suggestion chips in empty state */
.suggestion-chip {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  padding: var(--tds-spacing-1) var(--tds-spacing-3);
  color: var(--tds-color-ocean);
  background-color: var(--tds-color-white);
  border: 1px solid var(--tds-color-ocean);
  border-radius: var(--tds-radius-md);
  font-size: var(--tds-font-size-sm);
  line-height: var(--tds-line-height-tight);
  cursor: pointer;
  text-align: left;
  z-index: 0;
}

.suggestion-chip:hover {
  color: var(--tds-color-midnight);
  background-color: var(--tds-color-sky);
  border-color: var(--color-border-midnight);
}

.suggestion-chip__icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  color: var(--tds-color-ocean);
}


/* === components/forms.css === */
/*
 * Forms
 * Form fields, inputs, and form-related components
 */

.field {
  display: grid;
  gap: var(--tds-spacing-1);
}

.label {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-black);
}

.input,
.textarea {
  width: 100%;
  padding: .625rem var(--tds-spacing-4);
  font-size: var(--tds-font-size-md);
  line-height: var(--tds-line-height-snug);
  color: var(--tds-color-black);
  background-color: var(--tds-color-white);
  border: 1px solid var(--tds-color-fraggle);
  border-radius: var(--tds-radius-md);
  transition: background-color var(--tds-duration-short), border-color var(--tds-duration-short);
}

.input:hover,
.textarea:hover {
  border-color: var(--tds-color-meteorite);
}

.input:focus,
.textarea:focus {
  outline: none;
  background-color: var(--tds-color-sky);
  border-color: var(--tds-color-midnight);
  box-shadow: var(--tds-shadow-focus);
}

.input {
  height: 2.75rem;
}

.textarea {
  min-height: 5rem;
  max-height: 10rem;
  resize: vertical;
}

/* Field with sparkle button */
.field--sparkle {
  position: relative;
}

.field--sparkle .input,
.field--sparkle .textarea {
  padding-right: 4rem; /* room for the save progress icon and sparkle button */
}


.sparkle {
  position: absolute;
  right: 0.625rem;
  width: 1.5rem;
  height: 1.5rem;
  display: grid;
  place-items: center;
  border-radius: var(--tds-radius-md);
  transition: background-color var(--tds-duration-normal);
}

.sparkle__icon {
  width: 1rem;
  height: 1rem;
  display: block;
  pointer-events: none;
}

.sparkle:hover {
  background-color: var(--tds-color-electric-blue-90);
}

.field--sparkle .sparkle {
  top: 2.25rem;
}

.inline-edit__wrapper .sparkle {
  top: 0.625rem;
}


/* === components/panel.css === */
/*
 * Panel Components
 * Right panel UI elements
 */

.panel__stack {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-0);
}

.panel__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--tds-spacing-4) var(--tds-spacing-4) var(--tds-spacing-1);
  font-size: var(--tds-font-size-md);
  font-weight: var(--tds-font-weight-bold);
}

.panel__body {
  padding: 0 var(--tds-spacing-4) var(--tds-spacing-4);
  font-size: var(--tds-font-size-sm);
  line-height: var(--tds-line-height-snug);
}

.panel__body p {
  margin: var(--tds-spacing-2) 0 var(--tds-spacing-4);
}

.panel__body .metrics {
  margin-bottom: 0;
}

.panel__quote {
  margin: var(--tds-spacing-3) 0 0 0;
  padding: var(--tds-spacing-3) var(--tds-spacing-4);
  background: var(--tds-color-sand);
  border-radius: var(--tds-radius-xl);
  font-style: italic;
}

.card.accordion .panel__quote p {
  margin: 0;
}

.panel__actions {
  margin-top: var(--tds-spacing-4);
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-2);
}

.panel__rows {
  margin: var(--tds-spacing-3) 0;
}

.panel__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--tds-spacing-3);
  padding: var(--tds-spacing-2) 0;
}

.panel__row:last-child {
  border-bottom: none;
}

.panel__row dd {
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-semibold);
  text-align: right;
}

.panel__row dd a {
  text-align: right;
}

.panel-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--tds-spacing-3);
  padding: var(--tds-spacing-2) 0;
}

.panel-row:last-child {
  border-bottom: none;
}

.panel-row dt {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-stormcloud);
}

.panel-row dd {
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-semibold);
}

/* Panel mini card */
.panel-mini {
  margin-top: var(--tds-spacing-3);
  padding: var(--tds-spacing-3);
  background: var(--color-bg-alt);
  border-radius: var(--tds-radius-lg);
  border: 1px solid var(--tds-color-fog);
}

.panel-mini__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--tds-spacing-2);
  margin-bottom: var(--tds-spacing-2);
}

.panel-mini__title {
  font-weight: var(--tds-font-weight-bold);
  font-size: var(--tds-font-size-sm);
}

.panel-mini__link {
  color: var(--tds-color-ocean);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-semibold);
}

.panel-mini__link:hover {
  text-decoration: underline;
}

.panel-mini__list {
  margin-top: var(--tds-spacing-2);
  padding-left: var(--tds-spacing-4);
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-stormcloud);
}

/* Metrics */
.metrics {
  display: grid;
  gap: var(--tds-spacing-3);
  margin-bottom: var(--tds-spacing-4);
}

.metric {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--tds-spacing-2);
  font-size: var(--tds-font-size-sm);
}

.metric__value {
  font-weight: var(--tds-font-weight-semibold);
}

/* Stars */
.stars {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}

.star {
  width: 16px;
  height: 16px;
  color: var(--color-border-strong);
}

.star--filled {
  color: var(--tds-color-sunshine);
}

/* Progress */
.progress {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: var(--tds-spacing-2);
}

/* Blue - Default */
.progress__bar {
  height: 12px;
  border: 1px solid var(--tds-color-ocean);
  border-radius: var(--tds-radius-full);
  background-color: var(--tds-color-white);
  overflow: hidden;
}

.progress__fill {
  height: 100%;
  width: var(--progress, 50%);
  background-color: var(--tds-color-ocean);
  border-radius: var(--tds-radius-full);
  transition: width var(--tds-duration-normal) ease;
}

/* Green - Success */
.progress--success .progress__bar {
  background-color: var(--tds-color-foundation-green, #EBF7E6);
  border-color: var(--tds-color-evergreen);
}

.progress--success .progress__fill {
  background-color: var(--tds-color-evergreen);
}

/* Orange - Mid */
.progress--mid .progress__bar {
  background-color: var(--tds-color-foundation-orange, #FFF1EA);
  border-color: var(--tds-color-sunshine);
}

.progress--mid .progress__fill {
  background-color: var(--tds-color-sunshine);
}

/* Orange - Really bad */
.progress--fail .progress__bar {
  background-color: var(--tds-color-foundation-red, #FEF1EE);
  border-color: var(--tds-color-ruby);
}

.progress--fail .progress__fill {
  background-color: var(--tds-color-ruby);
}

/* Action links */
.panel__link-centered {
  display: block;
  text-align: center;
  margin-top: var(--tds-spacing-2);
}

/* ============================================
   Insight Panels - LLM-powered micro-interactions
   ============================================ */

.insight-panel {
  container-type: inline-size;
}

.insight-accordion {
  transition: box-shadow var(--tds-duration-short) ease;
}

.insight-accordion[open] {
  box-shadow: var(--tds-shadow-xs);
}

/* Insight header with signal and score */
.insight-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-spacing-2);
  width: 100%;
}

.insight-meta {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
}

.insight-score {
  font-weight: var(--tds-font-weight-semibold);
  font-size: var(--tds-font-size-sm);
  padding: var(--tds-spacing-1) var(--tds-spacing-2);
  border-radius: var(--tds-radius-lg);
  background: var(--color-bg-alt);
}

.insight-score--success {
  background: var(--color-bg-success);
  color: var(--green-700);
}

.insight-score--warning {
  background: var(--color-bg-warning);
  color: var(--orange-700);
}

.insight-score--error {
  background: var(--color-bg-error);
  color: var(--red-700);
}

.insight-score--neutral {
  background: var(--color-bg-alt);
  color: var(--tds-color-stormcloud);
}

/* Score trend indicator */
.insight-trend {
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-bold);
}

.insight-trend--up {
  color: var(--green-600);
}

.insight-trend--down {
  color: var(--red-600);
}

/* Analyzing status */
.insight-status {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-stormcloud);
}

.insight-status--analyzing {
  color: var(--blue-600);
}

/* Insight body content */
.insight-body {
  font-size: var(--tds-font-size-sm);
  line-height: var(--tds-line-height-relaxed);
}

.insight-headline {
  font-weight: var(--tds-font-weight-semibold);
  color: var(--tds-color-black);
  margin-bottom: var(--tds-spacing-2);
}

.insight-reasoning {
  color: var(--tds-color-stormcloud);
  margin-bottom: var(--tds-spacing-3);
}

/* Insight metrics grid */
.insight-metrics {
  display: grid;
  gap: var(--tds-spacing-2);
  margin-bottom: var(--tds-spacing-3);
  padding: var(--tds-spacing-2);
  background: var(--color-bg-alt);
  border-radius: var(--tds-radius-lg);
}

.insight-metrics .metric {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--tds-spacing-2);
}

.insight-metrics .metric__label {
  color: var(--tds-color-stormcloud);
  font-size: var(--tds-font-size-xs);
}

.insight-metrics .metric__value {
  font-weight: var(--tds-font-weight-semibold);
  font-size: var(--tds-font-size-sm);
}

.insight-metrics .metric__benchmark {
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-fraggle);
  margin-left: var(--tds-spacing-1);
}

/* Insight suggestions list */
.insight-suggestions {
  list-style: disc;
  padding-left: var(--tds-spacing-4);
  margin-bottom: var(--tds-spacing-3);
  color: var(--tds-color-stormcloud);
  font-size: var(--tds-font-size-sm);
}

.insight-suggestions li {
  margin-bottom: var(--tds-spacing-1);
}

/* Insight actions container */
.insight-actions {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-2);
  margin-top: var(--tds-spacing-3);
  padding-top: var(--tds-spacing-3);
  border-top: 1px solid var(--tds-color-fog);
}

.insight-actions--secondary {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tds-spacing-2);
}

/* Action button styles */
.insight-action {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  transition: all var(--tds-duration-short) ease;
}

.insight-action--agent {
  /* Highlight AI actions with subtle accent */
}

.insight-action--agent:hover {
  background: var(--color-bg-accent);
}

/* Stale state indicator */
.insight-stale {
  text-align: center;
  padding: var(--tds-spacing-4);
}

.insight-stale p {
  margin-bottom: var(--tds-spacing-3);
}

/* Loading skeleton */
.insight-skeleton {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-2);
}

.skeleton {
  background: linear-gradient(90deg, var(--color-bg-alt) 25%, var(--color-bg) 50%, var(--color-bg-alt) 75%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s infinite;
  border-radius: var(--tds-radius-lg);
}

.skeleton--text {
  height: 1em;
  width: 100%;
}

.skeleton--short {
  width: 60%;
}

.skeleton--metrics {
  height: 4em;
}

@keyframes skeleton-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Signal dot states */
.signal__dot--success {
  background: var(--green-500);
}

.signal__dot--warning {
  background: var(--orange-500);
}

.signal__dot--error {
  background: var(--red-500);
}

.signal__dot--neutral {
  background: var(--color-border-strong);
}

.signal__dot--stale {
  opacity: 0.5;
  background: var(--color-border-strong);
}

.signal__dot--pulse {
  animation: pulse-dot 1.5s infinite;
}

@keyframes pulse-dot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.2); }
}

/* Button states */
.btn--loading {
  position: relative;
  color: transparent;
}

.btn--loading::after {
  content: "";
  position: absolute;
  width: 1em;
  height: 1em;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: btn-spinner 0.6s linear infinite;
}

.btn--success {
  background: var(--green-500) !important;
  border-color: var(--green-500) !important;
  color: white !important;
}

.btn--error {
  background: var(--red-500) !important;
  border-color: var(--red-500) !important;
  color: white !important;
}

@keyframes btn-spinner {
  to { transform: rotate(360deg); }
}

/* Confidence indicator */
.insight-confidence {
  margin-top: var(--tds-spacing-2);
  padding: var(--tds-spacing-2);
  background: var(--color-bg-warning);
  border-radius: var(--tds-radius-lg);
}

/* Timestamp */
.insight-timestamp {
  margin-top: var(--tds-spacing-2);
  font-size: var(--tds-font-size-xs);
}

/* Small spinner for status indicator */
.spinner--sm {
  width: 12px;
  height: 12px;
  border: 2px solid var(--blue-200);
  border-top-color: var(--blue-600);
  border-radius: 50%;
  animation: btn-spinner 0.6s linear infinite;
}

/* Reset + style for horizontal rules */
hr.reset {
  margin-bottom: var(--tds-spacing-4);
  height: 1px;
  border: none;
  background-color: var(--tds-color-fog);
}


/* === components/pills.css === */
/*
 * Pills & Tags
 * Pill badges and tag components
 */

.pill {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  padding: var(--tds-spacing-1) var(--tds-spacing-3);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-regular);
  border-radius: var(--tds-radius-full);
  background: var(--tds-color-sand);
  white-space: nowrap;
}

.pill--success {
  background: var(--green-100);
  border-color: var(--color-border-success);
  color: var(--tds-color-evergreen);
}

.pill--neutral {
  background: var(--gray-100);
  border-color: var(--color-border);
  color: var(--tds-color-stormcloud);
}

.tag {
  display: inline-block;
  padding: var(--tds-spacing-2) var(--tds-spacing-4);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  border-radius: var(--tds-radius-full);
  background: var(--blue-100);
  color: var(--blue-800);
}


/* === components/tds/alert.css === */
/* ==========================================================================
   TDS Alert/Banner Component
   Alert banner for announcements and notifications
   ========================================================================== */

.tds-alert {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-spacing-4, 1rem);
  padding: var(--tds-spacing-4, 1rem) var(--tds-spacing-5, 1.25rem);
  border-radius: var(--tds-radius-lg, 0.5rem);
  background-color: var(--tds-color-foundation-blue, #e5f1fd);
  border: 1px solid var(--tds-color-azure, #1b96ff);
}

/* Variants */
.tds-alert--info {
  background-color: var(--tds-color-foundation-blue, #e5f1fd);
  border-color: var(--tds-color-azure, #1b96ff);
}

.tds-alert--success {
  background-color: var(--tds-color-evergreen-light, #e6f7e9);
  border-color: var(--tds-color-evergreen, #2e844a);
}

.tds-alert--warning {
  background-color: #fff8e6;
  border-color: var(--tds-color-tangerine, #fe9339);
}

.tds-alert--error {
  background-color: #fce4e4;
  border-color: var(--tds-color-error, #ea001e);
}

.tds-alert--brand {
  background: linear-gradient(135deg, var(--tds-color-azure, #1b96ff) 0%, var(--tds-color-brand, #0176d3) 100%);
  border-color: transparent;
  color: var(--tds-color-white, #fff);
}

/* Dark/Info Banner variant (matches Trailhead info-banner) */
.tds-alert--dark,
.tds-info-banner {
  background-color: var(--tds-color-midnight);
  border-radius: 16px;
  padding: 16px 20px;
  border: none;
  color: var(--tds-color-white);
  flex-direction: column;
  align-items: flex-start;
}

.tds-alert--dark .tds-alert__header,
.tds-info-banner__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
  width: 100%;
}

.tds-info-banner__top-right-cta-link {
  color: var(--tds-color-white);
  font-size: var(--tds-font-size-sm);
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
}

.tds-info-banner__top-right-cta-link:hover,
.tds-info-banner__top-right-cta-link:visited,
.tds-info-banner__top-right-cta-link:active,
.tds-info-banner__top-right-cta-link:focus,
.tds-info-banner__top-right-cta-link:focus-visible {
  color: var(--tds-color-white);
}

.tds-alert--dark .tds-alert__title,
.tds-info-banner__title {
  color: var(--tds-color-white);
  font-size: var(--tds-font-size-md);
  font-weight: 600;
  margin: 0;
}

.tds-info-banner__content-wrapper {
  position: relative;
  width: 100%;
}

.tds-alert--dark .tds-alert__text,
.tds-info-banner__content {
  color: var(--tds-color-white);
  font-size: var(--tds-font-size-md);
  line-height: 1.5;
  margin: 0;
}

.tds-info-banner__content {
  overflow: hidden;
  transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: height;
}

.tds-alert--dark .tds-alert__text a,
.tds-info-banner__content a {
  color: var(--tds-color-white);
  text-decoration: underline;
}

.tds-alert--dark .tds-alert__text a:hover,
.tds-info-banner__content a:hover {
  text-decoration: none;
}

.tds-info-banner__content:not(.expanded) {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.tds-info-banner__content.expanded {
  height: auto;
}

.tds-alert--dark .tds-alert__cta,
.tds-info-banner__cta {
  margin-top: 16px;
  font-size: var(--tds-font-size-sm);
  font-weight: 600;
  color: var(--tds-color-white);
}

.tds-info-banner__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  width: 100%;
}

.tds-info-banner__read-more {
  margin-top: 16px;
}

.tds-info-banner__read-more.hidden {
  display: none;
}

.tds-info-banner__read-more-button {
  background: none;
  border: none;
  color: var(--tds-color-white);
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  padding: 4px 0;
  text-decoration: none;
}

.tds-info-banner__read-more-button:hover {
  color: var(--tds-color-white);
}

/* Content area */
.tds-alert__content {
  flex: 1;
  min-width: 0;
}

.tds-alert__title {
  font-weight: var(--tds-font-weight-bold, 700);
  font-size: var(--tds-font-size-md, 1rem);
  color: var(--tds-color-midnight, #032d60);
  margin: 0 0 var(--tds-spacing-1, 0.25rem) 0;
}

.tds-alert--brand .tds-alert__title {
  color: var(--tds-color-white, #fff);
}

.tds-alert__text {
  font-size: var(--tds-font-size-sm, 0.875rem);
  color: var(--tds-color-meteorite, #706e6b);
  margin: 0;
  line-height: 1.5;
}

.tds-alert--brand .tds-alert__text {
  color: rgba(255, 255, 255, 0.9);
}

/* Actions area */
.tds-alert__actions {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2, 0.5rem);
  flex-shrink: 0;
}

/* Dark mode support */
[data-theme="dark"] .tds-alert {
  background-color: var(--color-surface-raised, #2a2a2a);
  border-color: var(--color-border, #5c5c5c);
}

[data-theme="dark"] .tds-alert--info {
  background-color: rgba(27, 150, 255, 0.15);
  border-color: var(--tds-color-ocean, #1b96ff);
}

[data-theme="dark"] .tds-alert--success {
  background-color: rgba(46, 132, 74, 0.15);
  border-color: var(--tds-color-evergreen, #2e844a);
}

[data-theme="dark"] .tds-alert--warning {
  background-color: rgba(254, 147, 57, 0.15);
  border-color: var(--tds-color-tangerine, #fe9339);
}

[data-theme="dark"] .tds-alert--error {
  background-color: rgba(234, 0, 30, 0.15);
  border-color: var(--tds-color-error, #ea001e);
}

[data-theme="dark"] .tds-alert--brand {
  background: linear-gradient(135deg, rgba(27, 150, 255, 0.3) 0%, rgba(1, 118, 211, 0.3) 100%);
}

[data-theme="dark"] .tds-alert__title {
  color: var(--tds-color-black, #fff);
}

[data-theme="dark"] .tds-alert__text {
  color: var(--tds-color-stormcloud, #b0adab);
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */

/* Locale disclaimer / note variant (matches Trailhead .trail-locale-disclaimer-container) */
.tds-alert--note,
.tds-locale-disclaimer {
  background-color: var(--tds-color-sand);
  color: var(--tds-color-meteorite);
  border-radius: 8px;
  padding: 12px;
  margin-top: 32px;
  display: flex;
  gap: 8px;
  align-self: stretch;
  font-size: 14px;
  line-height: 20px;
  align-items: baseline;
  border: none;
}

.tds-alert--note svg,
.tds-locale-disclaimer svg {
  fill: var(--tds-color-meteorite);
  flex-shrink: 0;
}

.tds-alert--note a,
.tds-locale-disclaimer a {
  color: var(--tds-color-ocean);
  text-decoration: underline;
}

[data-theme="dark"] .tds-alert--note,
[data-theme="dark"] .tds-locale-disclaimer {
  background-color: var(--trl-surface-soft);
  color: var(--tds-color-stormcloud);
}

[data-theme="dark"] .tds-alert--note svg,
[data-theme="dark"] .tds-locale-disclaimer svg {
  fill: var(--tds-color-stormcloud);
}

/* Responsive */
@media (max-width: 640px) {
  .tds-alert {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
  }

  .tds-alert__actions {
    justify-content: center;
    margin-top: var(--tds-spacing-3, 0.75rem);
  }

  [dir="rtl"] .tds-alert {
    flex-direction: column;
  }
}


/* === components/tds/badge_card.css === */
/* ==========================================================================
   TDS Badge Card Component
   Hero card displaying badge/trail information with image and actions
   ========================================================================== */

.tds-badge-card {
  width: 352px;
  max-width: 100%;
  background-color: var(--tds-color-white);
  border-radius: var(--tds-radius-xl);
  overflow: hidden;
  box-shadow: var(--tds-card_box-shadow, var(--tds-shadow-xs));
  border: none;
}

[data-theme="dark"] .tds-badge-card {
  background-color: var(--trl-surface);
  box-shadow: none;
  border: 1px solid var(--trl-border);
}

.tds-badge-card__header {
  background: var(--tds-badge-card-header-bg, var(--tds-color-navy));
  display: flex;
  justify-content: center;
  align-items: center;
  height: 4rem;
  position: relative;
  z-index: 1;
}

[data-theme="dark"] .tds-badge-card__header {
  background: var(--tds-color-midnight);
}

.tds-badge-card__header-arc {
  position: absolute;
  background: var(--tds-color-white);
  width: 100%;
  height: 25px;
  top: 2.5rem;
  left: 0;
  z-index: 0;
  clip-path: polygon(0% 98%, 0% 2%, 0% 2%, .711% 4.688%, 2.75% 11.984%, 5.977% 22.736%, 10.25% 35.792%, 15.43% 50%, 21.375% 64.208%, 27.945% 77.264%, 35% 88.016%, 42.398% 95.312%, 50% 98%, 50% 98%, 57.602% 95.312%, 65% 88.016%, 72.055% 77.264%, 78.625% 64.208%, 84.57% 50%, 89.75% 35.792%, 94.023% 22.736%, 97.25% 11.984%, 99.289% 4.688%, 100% 2%, 100% 98%, 0% 98%);
}

[data-theme="dark"] .tds-badge-card__header-arc {
  background: var(--trl-surface);
}

.tds-badge-card__badge {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 2;
}

.tds-badge-card__badge-img {
  width: 90px;
  height: 90px;
  object-fit: contain;
  border-radius: var(--tds-radius-lg);
  margin-bottom: -4rem;
}

.tds-badge-card__complete {
  position: absolute;
  top: -0.25rem;
  right: -0.75rem;
  width: 32px;
  height: 32px;
  border-radius: var(--tds-radius-full);
  background-color: var(--tds-color-evergreen);
  border: 3px solid var(--tds-color-white);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--tds-color-white);
}

.tds-badge-card__complete svg {
  width: 16px;
  height: 16px;
}

[dir="rtl"] .tds-badge-card__complete {
  right: auto;
  left: -0.75rem;
}

.tds-badge-card__body {
  margin-top: var(--tds-spacing-6);
  padding: var(--tds-spacing-5);
}

.tds-badge-card__eyebrow {
  display: inline-block;
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-meteorite);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: var(--tds-spacing-2);
}

[data-theme="dark"] .tds-badge-card__eyebrow {
  color: var(--tds-color-stormcloud);
}

.tds-badge-card__tag {
  display: inline-block;
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-meteorite);
  background-color: var(--tds-color-sand);
  padding: 0.4rem 0.75rem;
  border-radius: var(--tds-radius-xl);
  line-height: 1.5;
}

[data-theme="dark"] .tds-badge-card__tag {
  background-color: var(--trl-pill-bg);
  color: var(--tds-color-stormcloud);
}

.tds-badge-card__title {
  font-family: var(--tds-font-family-sans);
  font-size: var(--tds-font-size-xl);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-black);
  margin: 0 0 var(--tds-spacing-1) 0;
  line-height: 1.3;
}

[data-theme="dark"] .tds-badge-card__title {
  color: var(--tds-color-black);
}

.tds-badge-card__desc {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-meteorite);
  line-height: 1.5;
  margin: 0 0 var(--tds-spacing-3) 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--trl-desc-lines, 4);
  overflow: hidden;
}

.is-expanded .tds-badge-card__desc {
  -webkit-line-clamp: unset;
  overflow: visible;
}

[data-theme="dark"] .tds-badge-card__desc {
  color: var(--tds-color-stormcloud);
}

.tds-badge-card__actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--tds-spacing-3);
  margin-top: var(--tds-spacing-3);
}

.tds-badge-card__action-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: var(--tds-spacing-3);
  margin-bottom: var(--tds-spacing-3);
  gap: var(--tds-spacing-3);
}

.tds-badge-card__content-header {
  margin-top: var(--tds-spacing-2);
}

.tds-badge-card__read-more {
  background: none;
  border: none;
  color: var(--tds-color-ocean);
  cursor: pointer;
  display: inline-block;
  font-size: inherit;
  font-weight: var(--tds-font-weight-bold);
  padding: 0;
}

.tds-badge-card__read-more:hover {
  text-decoration: underline;
}

.tds-badge-card__actions .tds-button {
  justify-content: center;
  width: 100%;
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */
[dir="rtl"] .tds-badge-card__body {
  text-align: right;
}

@media (max-width: 480px) {
  .tds-badge-card__badge-img {
    width: 90px;
    height: 90px;
  }
  .tds-badge-card__complete {
    width: 32px;
    height: 32px;
    top: -4px;
    right: -4px;
  }
  .tds-badge-card__complete svg {
    width: 16px;
    height: 16px;
  }
}

@media (max-width: 800px) {
  .tds-badge-card__body {
    padding: 2rem 1rem;
  }
}

@media (max-width: 30rem) {
  .tds-badge-card__actions {
    grid-template-columns: 1fr;
  }
}

.tds-badge-card--small .tds-badge-card__header {
  min-height: 120px;
  padding: var(--tds-spacing-4);
}

.tds-badge-card--small .tds-badge-card__badge-img {
  width: 80px;
  height: 80px;
}

.tds-badge-card--small .tds-badge-card__body {
  padding: var(--tds-spacing-4);
}

.tds-badge-card--small .tds-badge-card__title {
  font-size: var(--tds-font-size-lg);
}

.tds-badge-card--horizontal {
  display: flex;
  flex-direction: row;
}

.tds-badge-card--horizontal .tds-badge-card__header {
  flex-shrink: 0;
  width: 200px;
  min-height: auto;
}

.tds-badge-card--horizontal .tds-badge-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

@media (max-width: 640px) {
  .tds-badge-card--horizontal {
    flex-direction: column;
  }
  .tds-badge-card--horizontal .tds-badge-card__header {
    width: 100%;
  }
}

/* ==========================================================================
   Trail Preview Badge Card
   ========================================================================== */

.trl-badge-card {
  width: 352px;
  max-width: 100%;
  background: var(--tds-color-white);
  border-radius: var(--tds-radius-xl);
  overflow: hidden;
  box-shadow: var(--tds-card_box-shadow, var(--tds-shadow-xs));
  border: none;
}

[data-theme="dark"] .trl-badge-card {
  background: var(--trl-surface);
  border: 1px solid var(--trl-border);
  box-shadow: var(--tds-shadow-xs);
}

.trl-badge-card__top {
  background: var(--tds-color-navy);
  height: 4rem;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 1;
  border-radius: 20px 20px 0 0;
}

[data-theme="dark"] .trl-badge-card__top {
  background: var(--blue-900);
}

.trl-badge-card__top::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 2.5rem;
  height: 25px;
  background: var(--tds-color-white);
  z-index: 0;
  clip-path: polygon(
    0% 98%, 0% 2%, 0% 2%, 0.711% 4.688%, 2.75% 11.984%, 5.977% 22.736%,
    10.25% 35.792%, 15.43% 50%, 21.375% 64.208%, 27.945% 77.264%,
    35% 88.016%, 42.398% 95.312%, 50% 98%, 50% 98%, 57.602% 95.312%,
    65% 88.016%, 72.055% 77.264%, 78.625% 64.208%, 84.57% 50%,
    89.75% 35.792%, 94.023% 22.736%, 97.25% 11.984%, 99.289% 4.688%,
    100% 2%, 100% 98%, 0% 98%
  );
}

[data-theme="dark"] .trl-badge-card__top::after {
  background: var(--trl-surface);
}

.trl-badge-card__badge {
  width: 90px;
  height: 90px;
  position: relative;
  z-index: 1;
}

.trl-badge-card__badge-svg {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  border-radius: var(--tds-radius-lg);
  margin-bottom: -4rem;
}

.trl-badge-card__complete {
  position: absolute;
  top: -0.25rem;
  right: -0.75rem;
  width: 26px;
  height: 26px;
  background: var(--tds-color-success);
  border-radius: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 3px solid var(--tds-color-white);
}

[dir="rtl"] .trl-badge-card__complete {
  right: auto;
  left: -0.75rem;
}

[data-theme="dark"] .trl-badge-card__complete {
  border-color: var(--trl-surface);
}

.trl-badge-card__complete svg {
  width: 12px;
  height: 12px;
  color: var(--tds-color-white);
}

.trl-badge-card__bottom {
  margin-top: var(--tds-spacing-6);
  padding: 2rem 1rem;
  background: var(--tds-color-white);
  border-radius: 0 0 var(--tds-radius-lg) var(--tds-radius-lg);
}

[data-theme="dark"] .trl-badge-card__bottom {
  background: var(--trl-surface);
}

.trl-badge-card__content-header {
  margin-top: var(--tds-spacing-2);
}

.trl-badge-card__eyebrow {
  display: block;
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-meteorite);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: var(--tds-spacing-3);
}

[data-theme="dark"] .trl-badge-card__eyebrow {
  color: var(--tds-color-stormcloud);
}

.trl-badge-card__action-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--tds-spacing-2);
}

.trl-badge-card__tag {
  display: inline-block;
  align-content: center;
  background: var(--tds-color-sand);
  color: var(--tds-color-meteorite);
  font-size: 0.75rem;
  font-weight: var(--tds-font-weight-bold);
  padding: 0.4rem 0.75rem;
  border-radius: var(--tds-radius-xl);
  line-height: 1.5;
}

[data-theme="dark"] .trl-badge-card__tag {
  background: var(--trl-pill-bg);
  color: var(--tds-color-stormcloud);
}

.trl-badge-card__title {
  font-family: "AvantGarde-Demi", var(--tds-font-family-sans);
  font-size: var(--tds-font-size-xl);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-black);
  line-height: 1.3;
  margin: 0 0 var(--tds-spacing-2) 0;
  hyphens: auto;
  word-wrap: break-word;
}

[data-theme="dark"] .trl-badge-card__title {
  color: var(--tds-color-black);
}

.trl-badge-card__desc {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-meteorite);
  line-height: 1.5;
  margin: 0 0 var(--tds-spacing-3) 0;
  display: -webkit-box;
  -webkit-line-clamp: var(--trl-desc-lines, 4);
  -webkit-box-orient: vertical;
  overflow: hidden;
}

[data-theme="dark"] .trl-badge-card__desc {
  color: var(--tds-color-stormcloud);
}

.trl-badge-card.is-expanded .trl-badge-card__desc {
  -webkit-line-clamp: unset;
  max-height: none;
}

.trl-badge-card__more {
  display: inline-block;
  background: none;
  border: none;
  color: var(--tds-color-ocean);
  font-size: var(--tds-font-size-md);
  font-weight: var(--tds-font-weight-bold);
  padding: 0;
  cursor: pointer;
  margin-bottom: 0;
  text-decoration: none;
}

.trl-badge-card__more:hover {
  text-decoration: underline;
}

.trl-badge-card__more:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

[data-theme="dark"] .trl-badge-card__more {
  color: var(--tds-color-ocean);
}

.trl-badge-card__actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--tds-spacing-3);
  margin-top: var(--tds-spacing-3);
}

@container (max-width: 800px) {
  .trl-badge-card,
  .tds-badge-card {
    width: 100%;
    max-width: none;
    margin-left: -1em;
    margin-right: -1em;
    width: calc(100% + 2em);
    box-shadow: none;
    border-radius: 0;
  }

  .trl-badge-card__top,
  .tds-badge-card__top {
    border-radius: 0;
  }
}

@media screen and (max-width: 800px) {
  .trl-badge-card,
  .tds-badge-card {
    width: 100%;
    max-width: none;
    margin-left: -1em;
    margin-right: -1em;
    width: calc(100% + 2em);
    box-shadow: none;
    border-radius: 0;
  }

  .trl-badge-card__top,
  .tds-badge-card__top {
    border-radius: 0;
  }
}

@media (max-width: 48rem) {
  .trl-badge-card__top {
    padding: var(--tds-spacing-6);
  }

  .trl-badge-card__badge {
    width: 100px;
    height: 100px;
  }

  .trl-badge-card__title {
    font-size: var(--tds-font-size-lg);
  }
}


/* === components/tds/button.css === */
/* ==========================================================================
   TDS Button Component
   Ported from th-components-main/src/elements/tds/buttonStyles
   ========================================================================== */

.tds-button {
  --dark-1: 5%;
  --dark-2: 15%;

  align-items: center;
  -moz-appearance: none;
  -webkit-appearance: none;
  -webkit-font-smoothing: var(--tds-button_font-smoothing, inherit);
  border: var(--tds-button_border, 2px solid transparent);
  background-color: var(--tds-button_background-color, transparent);
  border-radius: var(--tds-button_border-radius, var(--tds-radius-md));
  box-shadow: var(--tds-button_box-shadow, none);
  color: var(--tds-button_color, inherit);
  cursor: pointer;
  display: inline-flex;
  justify-content: center;
  font-family: var(--tds-button_font-family, inherit);
  font-weight: var(--tds-button_font-weight, bold);
  letter-spacing: var(--tds-button_letter-spacing, normal);
  line-height: var(--tds-button_line-height, var(--tds-line-height-tight));
  font-size: var(--tds-button_font-size, var(--tds-font-size-md));
  padding: var(--tds-button_padding, 0.625rem var(--tds-spacing-4));
  text-align: center;
  text-decoration: none;
  outline: var(--tds-a11y-outline);
  outline-offset: var(--tds-button_outline-offset, var(--tds-a11y-outline-offset));
  transition: var(--tds-button_transition, var(--tds-a11y-outline-transition));
  user-select: none;
  white-space: nowrap;
  gap: var(--tds-spacing-2);
}

/* Base variant - text only, no background */
.tds-button--base {
  color: var(--tds-color-brand);
  background-color: transparent;
  padding: 0 !important;
  border: none;
  box-shadow: none;
}

.tds-button--base:hover:not(.tds-button--disabled),
.tds-button--base:focus:not(.tds-button--disabled) {
  color: var(--tds-color-brand);
  text-decoration: underline;
}

/* Neutral variant - outlined */
.tds-button--neutral {
  color: var(--tds-color-brand);
  background-color: var(--tds-button_background-color, var(--tds-color-white));
  border-color: var(--tds-color-brand);
}

.tds-button--neutral:hover:not(.tds-button--disabled),
.tds-button--neutral:focus:not(.tds-button--disabled),
.tds-button--neutral:active:not(.tds-button--disabled) {
  color: var(--tds-color-midnight);
  border-color: var(--tds-color-midnight);
  background-color: var(--tds-color-moon-white);
}

/* Brand variant - primary action */
.tds-button--brand {
  color: var(--tds-color-white);
  background-color: var(--tds-color-brand);
  border-color: transparent;
}

.tds-button--brand:hover:not(.tds-button--disabled),
.tds-button--brand:focus:not(.tds-button--disabled),
.tds-button--brand:active:not(.tds-button--disabled) {
  background-color: var(--tds-color-midnight);
}

/* Tertiary variant - subtle */
.tds-button--tertiary {
  color: var(--tds-button_color, var(--tds-color-meteorite));
  background-color: var(--tds-button_background-color, var(--tds-color-white));
  border: var(--tds-button_border);
}

.tds-button--tertiary:hover:not(.tds-button--disabled),
.tds-button--tertiary:focus:not(.tds-button--disabled),
.tds-button--tertiary:active:not(.tds-button--disabled) {
  color: var(--tds-button_color-hover, var(--tds-color-midnight));
  background-color: var(--tds-button_background-color-hover, var(--tds-color-moon-white));
}

/* Success variant */
.tds-button--success {
  color: var(--tds-color-white);
  background-color: var(--tds-color-evergreen);
  border-color: transparent;
}

.tds-button--success:hover:not(.tds-button--disabled),
.tds-button--success:focus:not(.tds-button--disabled),
.tds-button--success:active:not(.tds-button--disabled) {
  background-color: var(--tds-color-vibrant-green);
}

/* Destructive variant */
.tds-button--destructive {
  color: var(--tds-color-white);
  background-color: var(--tds-button_background-color, var(--tds-color-ruby));
  border-color: transparent;
}

.tds-button--destructive:hover:not(.tds-button--disabled),
.tds-button--destructive:focus:not(.tds-button--disabled),
.tds-button--destructive:active:not(.tds-button--disabled) {
  background-color: var(--tds-button_background-color-hover, var(--tds-color-rosewood));
}

/* Destructive Inverse variant */
.tds-button--destructive-inverse {
  border: var(--tds-color-destructive) 2px solid;
  color: var(--tds-color-destructive);
  background-color: var(--tds-color-white);
}

.tds-button--destructive-inverse:hover:not(.tds-button--disabled),
.tds-button--destructive-inverse:focus:not(.tds-button--disabled),
.tds-button--destructive-inverse:active:not(.tds-button--disabled) {
  color: var(--tds-color-destructive);
  background-color: var(--tds-color-pearl);
}

/* Inverse variant - for dark backgrounds */
.tds-button--inverse {
  color: var(--tds-color-white);
  border-color: var(--tds-color-white);
  background-color: transparent;
}

.tds-button--inverse:hover:not(.tds-button--disabled) {
  background-color: hsla(var(--tds-color-black-h), var(--tds-color-black-s), var(--tds-color-black-l), 0.35);
}

/* Bare variant - minimal styling */
.tds-button--bare {
  color: var(--tds-color-meteorite);
  background-color: transparent;
  border: none;
}

.tds-button--bare:hover:not(.tds-button--disabled),
.tds-button--bare:focus:not(.tds-button--disabled) {
  background-color: var(--tds-button_background-color-hover, var(--tds-color-sand));
}

/* Bare Inverse variant */
.tds-button--bare-inverse {
  color: var(--tds-color-white);
  background-color: transparent;
  border: none;
}

.tds-button--bare-inverse:hover:not(.tds-button--disabled) {
  background-color: hsla(var(--tds-color-black-h), var(--tds-color-black-s), var(--tds-color-black-l), 0.35);
}

/* Disabled state */
.tds-button--disabled,
.tds-button[disabled],
.tds-button[aria-disabled="true"] {
  color: var(--tds-color-white);
  border: 1px solid var(--tds-color-granite);
  background: var(--tds-color-granite);
  pointer-events: none;
  cursor: not-allowed;
  outline: none;
}

/* Size variants */
.tds-button--small {
  font-size: var(--tds-font-size-sm);
  padding: 0.375rem var(--tds-spacing-3);
}

.tds-button--large {
  font-size: var(--tds-font-size-lg);
  padding: var(--tds-spacing-3) var(--tds-spacing-5);
}

/* Circle variant */
.tds-button--circle {
  border-radius: 50%;
  padding: var(--tds-spacing-3);
}

.tds-button--circle.tds-button--small {
  padding: var(--tds-spacing-2);
}

.tds-button--circle.tds-button--large {
  padding: var(--tds-spacing-4);
}

/* Icon inside button */
.tds-button__icon {
  margin-inline-end: var(--tds-spacing-2);
  margin-inline-start: calc(var(--tds-spacing-1) * -1);
}

/* Focus state */
.tds-button:focus:not(.tds-button--disabled),
.tds-button:active:not(.tds-button--disabled) {
  outline: var(--tds-button_outline-focus, var(--tds-a11y-outline-focus));
  outline-offset: var(--tds-button_outline-offset-focus, var(--tds-a11y-outline-offset-focus));
}

/* Spinner animation */
.tds-button__spinner {
  animation: tds-button-rotation 2s infinite linear;
}

@keyframes tds-button-rotation {
  from { transform: rotate(0deg); }
  to { transform: rotate(359deg); }
}

/* Dark mode adjustments */
[data-theme="dark"] .tds-button--neutral {
  background-color: transparent;
  border-color: var(--tds-color-ocean);
  color: var(--tds-color-ocean);
}

[data-theme="dark"] .tds-button--neutral:hover:not(.tds-button--disabled),
[data-theme="dark"] .tds-button--neutral:focus:not(.tds-button--disabled) {
  background-color: rgba(100, 181, 255, 0.12);
  border-color: var(--tds-color-ocean);
  color: var(--tds-color-ocean);
}

[data-theme="dark"] .tds-button--tertiary {
  background-color: transparent;
  color: var(--tds-color-stormcloud);
}

[data-theme="dark"] .tds-button--tertiary:hover:not(.tds-button--disabled) {
  background-color: var(--trl-surface-soft);
  color: var(--tds-color-black);
}

[data-theme="dark"] .tds-button--bare {
  color: var(--tds-color-stormcloud);
}

[data-theme="dark"] .tds-button--bare:hover:not(.tds-button--disabled) {
  background-color: var(--trl-surface-soft);
  color: var(--tds-color-black);
}

[data-theme="dark"] .tds-button--base {
  color: var(--tds-color-ocean);
}

/* RTL support */
[dir="rtl"] .tds-button__icon {
  margin-inline-end: calc(var(--tds-spacing-1) * -1);
  margin-inline-start: var(--tds-spacing-2);
}



/* === components/tds/button_link.css === */
/* ==========================================================================
   TDS Button Link Component
   Extends button styles for anchor elements
   ========================================================================== */

.tds-button-link {
  /* Inherits all .tds-button styles */
  text-decoration: none;
}

.tds-button-link:hover,
.tds-button-link:focus,
.tds-button-link:active {
  text-decoration: none;
}

/* Visited state shouldn't change appearance */
.tds-button-link:visited {
  color: inherit;
}



/* === components/tds/card.css === */
/* ==========================================================================
   TDS Card Component
   Ported from th-components-main/src/elements/tds/card
   Generic card container with header, content, and footer slots
   ========================================================================== */

.tds-card {
  background-color: var(--tds-card_background-color, var(--tds-color-white));
  border-radius: var(--tds-card_border-radius, var(--tds-radius-xl));
  border: var(--tds-card_border, none);
  box-shadow: var(--tds-card_box-shadow, var(--tds-shadow-xxs, 0 1px 3px rgba(0, 0, 0, 0.08)));
  height: var(--tds-card_height, auto);
  display: var(--tds-card_display, block);
  overflow: hidden;
}

[data-theme="dark"] .tds-card {
  background-color: var(--trl-surface);
  border: 1px solid var(--trl-border);
  box-shadow: none;
}

/* Variants */
.tds-card--transparent {
  background-color: transparent;
  border: none;
  box-shadow: none;
  padding: var(--tds-card_padding, var(--tds-spacing-5) 0 0 0);
}

.tds-card--bordered {
  border: 1px solid var(--tds-color-fog);
}

[data-theme="dark"] .tds-card--bordered {
  border-color: var(--trl-border);
}

.tds-card--elevated {
  box-shadow: var(--tds-shadow-md, 0 4px 12px rgba(0, 0, 0, 0.1));
}

/* ==========================================================================
   Card Header
   ========================================================================== */

.tds-card__header {
  align-items: flex-start;
  display: grid;
  grid-template-areas: "title action" "description description";
  grid-template-columns: 1fr auto;
  grid-template-rows: auto;
  padding: var(--tds-card_header-padding, var(--tds-spacing-5));
  border-bottom: var(--tds-card_header-border-bottom, none);
  margin-bottom: var(--tds-card_header-margin-bottom, 0);
}

.tds-card--small .tds-card__header {
  grid-template-areas: "title" "description" "action";
  grid-auto-columns: auto;
  grid-template-rows: auto auto auto;
}

.tds-card__header-icon {
  font-size: var(--tds-card_header-title-img-font-size, var(--tds-font-size-xl));
  height: 25px;
  width: 25px;
  grid-area: title;
  margin-inline-end: var(--tds-spacing-3);
}

.tds-card__title {
  font-size: var(--tds-card_header-title-font-size, var(--tds-font-size-xl));
  color: var(--tds-card_header-title-color, var(--tds-color-midnight));
  font-family: var(--tds-card_header-title-font-family, "AvantGarde-Demi", sans-serif);
  font-weight: normal;
  grid-area: title;
  letter-spacing: var(--tds-card_header-title-letter-spacing);
  line-height: var(--tds-card_header-title-line-height, var(--tds-line-height-normal, 1.5));
  text-align: var(--tds-card_header-title-text-align, start);
  max-width: var(--tds-card_header-title-max-width, 600px);
  margin: var(--tds-card_header-title-margin, 0);
}

[data-theme="dark"] .tds-card__title {
  color: var(--tds-color-black);
}

.tds-card__description {
  color: var(--tds-card_header-description-color, var(--tds-color-meteorite));
  font-size: var(--tds-card_header-description-font-size, var(--tds-font-size-sm));
  grid-area: description;
  margin-top: var(--tds-spacing-2);
  max-width: var(--tds-card_header-description-max-width, 600px);
  line-height: var(--tds-card_header-description-line-height, var(--tds-line-height-snug, 1.4));
  text-align: var(--tds-card_header-description-text-align, start);
}

[data-theme="dark"] .tds-card__description {
  color: var(--tds-color-stormcloud);
}

.tds-card__description a {
  color: var(--tds-card_header-description-link-color, var(--tds-color-ocean));
}

[data-theme="dark"] .tds-card__description a {
  color: var(--tds-color-ocean);
}

.tds-card__description a:hover {
  text-decoration: underline;
}

.tds-card__action {
  grid-area: action;
}

.tds-card--small .tds-card__action {
  display: flex;
  margin-top: var(--tds-spacing-3);
}

/* ==========================================================================
   Card Content
   ========================================================================== */

.tds-card__content {
  padding: 0;
}

.tds-card--padded .tds-card__content {
  padding: 0 var(--tds-spacing-5) var(--tds-spacing-5) var(--tds-spacing-5);
}

.tds-card--padded:not(:has(.tds-card__header)) .tds-card__content {
  padding-top: var(--tds-spacing-5);
}

/* ==========================================================================
   Card Footer
   ========================================================================== */

.tds-card__footer {
  align-items: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-top: 1px solid var(--tds-color-fog);
  padding: var(--tds-spacing-2);
}

[data-theme="dark"] .tds-card__footer {
  border-color: var(--trl-border);
}

.tds-card--small .tds-card__footer {
  flex-direction: column;
  align-items: flex-start;
}

.tds-card__cta {
  align-self: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: var(--tds-card_cta-width, 100%);
}

/* ==========================================================================
   Module Card Variant
   Expandable card for trail modules/milestones
   ========================================================================== */

.tds-module-card {
  background: var(--tds-color-white);
  border: 1px solid #e5e5e5;
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  overflow: hidden;
  width: 100%;
  margin-bottom: 24px;
}

[data-theme="dark"] .tds-module-card {
  background: var(--trl-surface);
  border-color: var(--trl-border);
  box-shadow: none;
}

.tds-module-card[data-expanded="true"] {
  border-color: #d4d4d4;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

[data-theme="dark"] .tds-module-card[data-expanded="true"] {
  border-color: var(--trl-border-strong);
}

/* Module Header */
.tds-module-card__header {
  padding: 20px;
}

.tds-module-card__title {
  font-family: "AvantGarde-Demi", var(--tds-font-family-sans);
  font-size: var(--tds-font-size-xl);
  font-weight: 600;
  color: var(--tds-color-midnight);
  margin: 0 0 5px 0;
  line-height: 1.4;
}

[data-theme="dark"] .tds-module-card__title {
  color: var(--tds-color-black);
}

.tds-module-card__desc {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-black);
  margin: 0;
  line-height: 24px;
}

[data-theme="dark"] .tds-module-card__desc {
  color: var(--tds-color-black);
}

.tds-module-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 16px 0 -4px 0;
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-module-card__meta {
  color: var(--tds-color-stormcloud);
}

/* Module Toggle */
.tds-module-card__toggle {
  display: flex;
  align-items: center;
  gap: 0;
  background: transparent;
  border: none;
  border-top: 1px solid var(--tds-color-fog);
  color: var(--tds-color-ocean);
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  padding: 16px 20px;
  min-height: 50px;
  width: 100%;
  text-decoration: none;
  text-align: start;
}

[data-theme="dark"] .tds-module-card__toggle {
  color: var(--tds-color-ocean);
  border-color: var(--trl-border);
}

.tds-module-card__toggle:hover span {
  text-decoration: underline;
}

.tds-module-card__toggle-icon {
  transition: transform var(--tds-duration-short) ease;
  flex-shrink: 0;
  margin-inline-end: 10px;
}

.tds-module-card[data-expanded="true"] .tds-module-card__toggle-icon {
  transform: rotate(180deg);
}

[dir="rtl"] .tds-module-card__toggle-icon {
  transform: scaleX(-1);
}

[dir="rtl"] .tds-module-card[data-expanded="true"] .tds-module-card__toggle-icon {
  transform: scaleX(-1) rotate(180deg);
}

/* Module Content */
.tds-module-card__content {
  padding: 0;
  border-top: 1px solid var(--tds-color-fog);
  max-height: 0;
  overflow: hidden;
  visibility: hidden;
  transition: max-height 0.5s ease, visibility 0.5s;
}

[data-theme="dark"] .tds-module-card__content {
  border-color: var(--trl-border);
}

.tds-module-card[data-expanded="true"] .tds-module-card__content {
  visibility: visible;
  max-height: 5000px;
}


/* === components/tds/child_summary.css === */
/* ==========================================================================
   TDS Child Summary Component
   ========================================================================== */

.tds-child-summary {
  list-style: none;
  padding: 0;
  margin: 0;
}

.tds-child-summary__item {
  display: flex;
  gap: var(--tds-spacing-3);
  padding: var(--tds-spacing-4) var(--tds-spacing-5);
  border-bottom: 1px solid var(--tds-color-fog);
}

[data-theme="dark"] .tds-child-summary__item {
  border-color: var(--trl-border);
}

.tds-child-summary__item:last-child {
  border-bottom: none;
}

.tds-child-summary__icon {
  width: 24px;
  height: 24px;
  border-radius: var(--tds-radius-full);
  background-color: var(--tds-color-sand);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-child-summary__icon {
  background-color: var(--trl-surface-soft);
  color: var(--tds-color-stormcloud);
}

.tds-child-summary__icon svg {
  width: 14px;
  height: 14px;
}

.tds-child-summary__icon--complete {
  background-color: var(--tds-color-evergreen);
  color: var(--tds-color-white);
}

.tds-child-summary__icon--locked {
  background-color: var(--tds-color-fog);
  color: var(--tds-color-fraggle);
}

[data-theme="dark"] .tds-child-summary__icon--locked {
  background-color: var(--trl-surface-soft);
  color: var(--tds-color-fraggle);
}

.tds-child-summary__body {
  flex: 1;
  min-width: 0;
}

.tds-child-summary__type {
  display: block;
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: var(--tds-spacing-1);
}

[data-theme="dark"] .tds-child-summary__type {
  color: var(--tds-color-stormcloud);
}

.tds-child-summary__title {
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
  text-decoration: none;
}

[data-theme="dark"] .tds-child-summary__title {
  color: var(--tds-color-black);
}

.tds-child-summary__title:hover {
  color: var(--tds-color-brand);
  text-decoration: underline;
}

[data-theme="dark"] .tds-child-summary__title:hover {
  color: var(--tds-color-ocean);
}

.tds-child-summary__subtitle {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  margin: var(--tds-spacing-1) 0 0 0;
  line-height: 1.4;
}

[data-theme="dark"] .tds-child-summary__subtitle {
  color: var(--tds-color-stormcloud);
}

.tds-child-summary__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tds-spacing-2);
  margin-top: var(--tds-spacing-2);
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-child-summary__meta {
  color: var(--tds-color-stormcloud);
}

.tds-child-summary__item--complete .tds-child-summary__title {
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-child-summary__item--complete .tds-child-summary__title {
  color: var(--tds-color-stormcloud);
}

.tds-child-summary__item--locked {
  opacity: 0.6;
}

/* Trail preview variant: match legacy milestone-step styling */
.tds-module-card--trail .tds-child-summary__type {
  font-size: var(--tds-font-size-sm);
  text-transform: none;
  letter-spacing: normal;
  margin-bottom: 0;
}

.tds-module-card--trail .tds-child-summary__item {
  gap: 16px;
  padding: 20px;
}

.tds-module-card--trail .tds-child-summary__title {
  display: flex;
  font-size: var(--tds-font-size-lg);
  font-weight: 600;
  color: var(--tds-color-ocean);
  line-height: 24px;
  margin: 5px 0;
}

[data-theme="dark"] .tds-module-card--trail .tds-child-summary__title {
  color: var(--tds-color-ocean);
}

.tds-module-card--trail .tds-child-summary__subtitle {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  margin: 0;
  line-height: 1.5;
}

[data-theme="dark"] .tds-module-card--trail .tds-child-summary__subtitle {
  color: var(--tds-color-stormcloud);
}

.tds-module-card--trail .tds-child-summary__meta {
  margin-top: 16px;
  font-size: var(--tds-font-size-sm);
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 0;
}

.tds-module-card--trail .tds-child-summary__meta > span:first-child {
  font-weight: 700;
}

.tds-module-card--trail .tds-child-summary__item--complete .tds-child-summary__title {
  color: var(--tds-color-ocean);
}

[data-theme="dark"] .tds-module-card--trail .tds-child-summary__item--complete .tds-child-summary__title {
  color: var(--tds-color-ocean);
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */
[dir="rtl"] .tds-child-summary__body {
  text-align: right;
}


/* === components/tds/content_header.css === */
/* ==========================================================================
   TDS Content Header Component
   Ported from th-components-main/src/elements/tds/contentHeader
   Page header with background, icon/badge, title, and actions
   Used for: Trail detail pages, Badge pages, Module pages
   ========================================================================== */

.tds-content-header {
  --tds-content-header_background-height-default: 160px;
  --tds-content-header_content-offset-top-default: -80px;
  --tds-content-icon_image-size: 96px;

  background: var(--tds-color-white);
  position: relative;
}

[data-theme="dark"] .tds-content-header {
  background: var(--trl-surface);
}

/* Background Area */
.tds-content-header__bg {
  background-color: var(--tds-color-navy, var(--tds-color-fog));
  background-position: var(--tds-content-header_background-position, center bottom);
  background-size: var(--tds-content-header_background-size, cover);
  height: var(--tds-content-header_background-height, var(--tds-content-header_background-height-default));
  position: relative;
}

[data-theme="dark"] .tds-content-header__bg {
  background-color: var(--blue-900);
}

/* Curved arc overlay */
.tds-content-header__bg::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 40px;
  background: var(--tds-color-white);
  clip-path: ellipse(55% 100% at 50% 100%);
}

[data-theme="dark"] .tds-content-header__bg::after {
  background: var(--trl-surface);
}

/* Content Container */
.tds-content-header__content {
  margin: var(--tds-content-header_content-offset-top, var(--tds-content-header_content-offset-top-default)) auto 0;
  max-width: var(--tds-content-header_content-max-width, var(--tds-container-xl, 1280px));
  padding: var(--tds-spacing-6);
  position: relative;
  z-index: 1;
}

/* Icon/Badge */
.tds-content-header__icon {
  width: var(--tds-content-icon_image-size);
  height: var(--tds-content-icon_image-size);
  margin: 0 auto var(--tds-spacing-4);
  position: relative;
}

.tds-content-header__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: var(--tds-radius-lg);
}

/* Completion indicator */
.tds-content-header__complete {
  position: absolute;
  top: -0.25rem;
  right: -0.75rem;
  width: 26px;
  height: 26px;
  background: var(--tds-color-success);
  border-radius: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 3px solid var(--tds-color-white);
}

[dir="rtl"] .tds-content-header__complete {
  right: auto;
  left: -0.75rem;
}

[data-theme="dark"] .tds-content-header__complete {
  border-color: var(--trl-surface);
}

.tds-content-header__complete svg {
  width: 12px;
  height: 12px;
  color: var(--tds-color-white);
}

/* Eyebrow/Tag */
.tds-content-header__eyebrow {
  display: block;
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-meteorite);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: var(--tds-spacing-2);
  text-align: center;
}

[data-theme="dark"] .tds-content-header__eyebrow {
  color: var(--tds-color-stormcloud);
}

/* Title */
.tds-content-header__title {
  font-family: "AvantGarde-Demi", var(--tds-font-family-sans);
  font-size: var(--tds-font-size-2xl);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-black);
  line-height: 1.3;
  margin: 0 0 var(--tds-spacing-2) 0;
  text-align: center;
}

[data-theme="dark"] .tds-content-header__title {
  color: var(--tds-color-black);
}

/* Description */
.tds-content-header__desc {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-meteorite);
  line-height: 1.5;
  margin: 0 auto var(--tds-spacing-4);
  text-align: center;
  max-width: 600px;
}

[data-theme="dark"] .tds-content-header__desc {
  color: var(--tds-color-stormcloud);
}

/* Actions */
.tds-content-header__actions {
  display: flex;
  justify-content: center;
  gap: var(--tds-spacing-3);
  margin-top: var(--tds-spacing-4);
}


/* === components/tds/content_icon.css === */
/* ==========================================================================
   TDS Content Icon Component
   Ported from th-components-main/src/elements/tds/contentIcon
   ========================================================================== */

.tds-content-icon {
  display: flex;
  align-items: center;
  flex-direction: column;
  text-decoration: none;
  padding: var(--tds-content-icon_container-padding, 0);
}

.tds-content-icon__image-container {
  background-color: var(--tds-content-icon_background-color, var(--background-color));
  height: var(--tds-content-icon_image-size, var(--image-size));
  width: var(--tds-content-icon_image-size, var(--image-size));
  position: relative;
  display: block;
}

/* Variant: Circle */
.tds-content-icon__image-container--circle {
  border-radius: var(--tds-content-icon_border-radius, var(--tds-radius-full));
}

/* Variant: Rounded */
.tds-content-icon__image-container--rounded {
  border-radius: var(--tds-content-icon_border-radius, var(--tds-radius-lg));
}

/* Image */
.tds-content-icon__image {
  border-radius: inherit;
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
  padding: var(--tds-content-icon_image-padding, var(--image-padding));
}

/* Completion checkmark icon */
.tds-content-icon__check {
  align-self: center;
  color: var(--tds-color-white);
  display: flex;
  background-color: var(--tds-color-success, var(--tds-color-evergreen));
  border-radius: var(--tds-radius-full);
  border: 3px solid var(--tds-color-white);
  box-sizing: border-box;
  justify-content: center;
  align-items: center;
  height: var(--tds-content-icon_check-size, var(--check-size));
  width: var(--tds-content-icon_check-size, var(--check-size));
  position: absolute;
  right: -10px;
  top: -4px;
}

[dir="rtl"] .tds-content-icon__check {
  right: auto;
  left: -10px;
}

[data-theme="dark"] .tds-content-icon__check {
  border-color: var(--trl-surface);
}

/* Check icon sizes by parent size */
.tds-content-icon--small .tds-content-icon__check,
.tds-content-icon--medium .tds-content-icon__check {
  --check-size: var(--tds-content-icon_check-size, 30px);
}

.tds-content-icon--large .tds-content-icon__check,
.tds-content-icon--xlarge .tds-content-icon__check {
  --check-size: var(--tds-content-icon_check-size, 38px);
}

.tds-content-icon__check-svg {
  height: 60%;
  width: 60%;
}

/* Size variants */
.tds-content-icon--small {
  --image-size: 48px;
}

.tds-content-icon--medium {
  --image-size: 64px;
}

.tds-content-icon--large {
  --image-size: 96px;
}

.tds-content-icon--xlarge {
  --image-size: 128px;
}

/* Text label below icon */
.tds-content-icon__text {
  margin-top: var(--tds-spacing-2);
  text-align: center;
  color: var(--tds-color-black);
  transition: color 0.1s linear;
}

[data-theme="dark"] .tds-content-icon__text {
  color: var(--tds-color-black);
}

a.tds-content-icon:hover .tds-content-icon__text {
  color: var(--tds-color-azure);
  text-decoration: underline;
}

[data-theme="dark"] a.tds-content-icon:hover .tds-content-icon__text {
  color: var(--tds-color-ocean);
}



/* === components/tds/content_progress.css === */
/* ==========================================================================
   TDS Content Progress Component
   Ported from th-components-main/src/elements/tds/contentProgress
   ========================================================================== */

.tds-content-progress {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-1);
}

.tds-content-progress__text {
  color: var(--tds-color-meteorite);
  font-size: var(--tds-font-size-sm);
}

[data-theme="dark"] .tds-content-progress__text {
  color: var(--tds-color-stormcloud);
}

/* Progress bar */
.tds-content-progress__bar {
  height: 4px;
  background-color: var(--tds-color-fog);
  border-radius: var(--tds-radius-full);
  overflow: hidden;
  flex: 1;
  min-width: 60px;
}

[data-theme="dark"] .tds-content-progress__bar {
  background-color: var(--trl-border);
}

.tds-content-progress__fill {
  height: 100%;
  background-color: var(--tds-color-success, var(--tds-color-evergreen));
  border-radius: var(--tds-radius-full);
  transition: width var(--tds-duration-normal) ease;
}

/* Compact variant */
.tds-content-progress--compact {
  flex-direction: row;
}

.tds-content-progress--compact .tds-content-progress__text {
  order: 1;
}

/* Completion state */
.tds-content-progress--completed .tds-content-progress__text {
  color: var(--tds-color-success);
}

[data-theme="dark"] .tds-content-progress--completed .tds-content-progress__text {
  color: var(--tds-color-success);
}

/* Completion icon */
.tds-content-progress__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  color: var(--tds-color-success);
}

.tds-content-progress__icon svg {
  width: 100%;
  height: 100%;
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */



/* === components/tds/content_summary.css === */
/* ==========================================================================
   TDS Content Summary Component
   Ported from th-components-main/src/elements/tds/contentSummary
   ========================================================================== */

.tds-content-summary {
  display: flex;
  gap: var(--tds-spacing-4);
}

/* Horizontal (default) layout */
.tds-content-summary--horizontal {
  flex-direction: row;
  align-items: flex-start;
}

/* Vertical layout */
.tds-content-summary--vertical {
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* Image container */
.tds-content-summary__image {
  flex-shrink: 0;
}

/* Body content */
.tds-content-summary__body {
  flex: 1;
  min-width: 0;
}

/* Title */
.tds-content-summary__title {
  font-family: var(--tds-font-family-heading);
  font-size: var(--tds-font-size-lg);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-black);
  margin: 0 0 var(--tds-spacing-1) 0;
  line-height: 1.3;
}

.tds-content-summary__title a {
  color: inherit;
  text-decoration: none;
}

.tds-content-summary__title a:hover {
  color: var(--tds-color-brand);
  text-decoration: underline;
}

[data-theme="dark"] .tds-content-summary__title {
  color: var(--tds-color-black);
}

[data-theme="dark"] .tds-content-summary__title a:hover {
  color: var(--tds-color-ocean);
}

/* Description */
.tds-content-summary__description {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  line-height: 1.5;
  margin: 0 0 var(--tds-spacing-2) 0;
}

[data-theme="dark"] .tds-content-summary__description {
  color: var(--tds-color-stormcloud);
}

/* Meta information */
.tds-content-summary__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--tds-spacing-2);
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-content-summary__meta {
  color: var(--tds-color-stormcloud);
}

.tds-content-summary__meta-left {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
}

.tds-content-summary__meta-right {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
}

/* Actions slot */
.tds-content-summary__actions {
  margin-top: var(--tds-spacing-3);
  display: flex;
  gap: var(--tds-spacing-2);
}

/* Size variants */
.tds-content-summary--small .tds-content-summary__title {
  font-size: var(--tds-font-size-md);
}

.tds-content-summary--large .tds-content-summary__title {
  font-size: var(--tds-font-size-xl);
}

/* Compact variant */
.tds-content-summary--compact {
  gap: var(--tds-spacing-3);
}

.tds-content-summary--compact .tds-content-summary__title {
  font-size: var(--tds-font-size-sm);
}

.tds-content-summary--compact .tds-content-summary__description {
  font-size: var(--tds-font-size-xs);
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */



/* === components/tds/discover_card.css === */
/* ==========================================================================
   TDS Discover Card Component
   ========================================================================== */

.tds-discover-card {
  display: flex;
  flex-direction: column;
  background-color: var(--tds-color-white);
  border-radius: var(--tds-radius-lg);
  padding: var(--tds-spacing-4);
  text-decoration: none;
  text-align: left;
}

[data-theme="dark"] .tds-discover-card {
  background-color: var(--trl-surface);
  border: 1px solid var(--trl-border);
}

.tds-discover-card:hover {
  text-decoration: none;
}

[data-theme="dark"] .tds-discover-card:hover {
  border-color: var(--tds-color-ocean);
}

.tds-discover-card:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

.tds-discover-card__icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-bottom: var(--tds-spacing-3);
  background: var(--tds-color-foundation-blue);
}

[data-theme="dark"] .tds-discover-card__icon {
  background: var(--trl-surface-soft);
}

.tds-discover-card__icon svg,
.tds-discover-card__icon img {
  height: 24px;
  width: 24px;
  color: var(--tds-color-ocean);
}

[data-theme="dark"] .tds-discover-card__icon svg {
  color: var(--tds-color-ocean);
}

/* Purple icon variant */
.tds-discover-card__icon--purple {
  background: rgba(147, 51, 234, 0.15);
}

.tds-discover-card__icon--purple svg {
  color: #9333ea;
}

[data-theme="dark"] .tds-discover-card__icon--purple {
  background: rgba(147, 51, 234, 0.15);
}

[data-theme="dark"] .tds-discover-card__icon--purple svg {
  color: #a855f7;
}

/* Green icon variant */
.tds-discover-card__icon--green {
  background: rgba(46, 132, 74, 0.15);
}

.tds-discover-card__icon--green svg {
  color: var(--tds-color-evergreen);
}

[data-theme="dark"] .tds-discover-card__icon--green {
  background: rgba(46, 132, 74, 0.15);
}

[data-theme="dark"] .tds-discover-card__icon--green svg {
  color: #4ade80;
}

/* Orange icon variant */
.tds-discover-card__icon--orange {
  background: rgba(234, 88, 12, 0.15);
}

.tds-discover-card__icon--orange svg {
  color: #ea580c;
}

[data-theme="dark"] .tds-discover-card__icon--orange {
  background: rgba(234, 88, 12, 0.15);
}

[data-theme="dark"] .tds-discover-card__icon--orange svg {
  color: #fb923c;
}

.tds-discover-card__title {
  font-size: var(--tds-font-size-lg);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-ocean);
  margin: 0;
  line-height: 1.3;
}

[data-theme="dark"] .tds-discover-card__title {
  color: var(--tds-color-ocean);
}

.tds-discover-card:hover .tds-discover-card__title {
  text-decoration: underline;
}

.tds-discover-card__desc {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-meteorite);
  line-height: 1.5;
  margin-top: var(--tds-spacing-2);
  flex: 1;
}

[data-theme="dark"] .tds-discover-card__desc {
  color: var(--tds-color-stormcloud);
}

.tds-discover-card__meta {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  margin-top: var(--tds-spacing-4);
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-discover-card__meta {
  color: var(--tds-color-stormcloud);
}

.tds-discover-card__arrow {
  width: 16px;
  height: 16px;
  color: var(--tds-color-brand);
  margin-top: var(--tds-spacing-3);
  transition: transform var(--tds-duration-short) ease;
}

[data-theme="dark"] .tds-discover-card__arrow {
  color: var(--tds-color-ocean);
}

.tds-discover-card:hover .tds-discover-card__arrow {
  transform: translateX(4px);
}

[dir="rtl"] .tds-discover-card:hover .tds-discover-card__arrow {
  transform: translateX(-4px);
}

.tds-discover-card--image {
  padding: 0;
  overflow: hidden;
}

.tds-discover-card__image {
  width: 100%;
  height: 160px;
  object-fit: cover;
}

.tds-discover-card--image .tds-discover-card__content {
  padding: var(--tds-spacing-4);
}

.tds-discover-card--horizontal {
  flex-direction: row;
  align-items: center;
  gap: var(--tds-spacing-4);
}

.tds-discover-card--horizontal .tds-discover-card__icon {
  margin-bottom: 0;
  flex-shrink: 0;
}

.tds-discover-card--horizontal .tds-discover-card__content {
  flex: 1;
}

/* ==========================================================================
   Trail Preview Discover Section
   ========================================================================== */

.trl-discover {
  background: var(--tds-color-white);
  padding: var(--tds-spacing-5) var(--tds-spacing-6) var(--tds-spacing-10);
}

[data-theme="dark"] .trl-discover {
  background: var(--trl-surface);
}

.trl-discover__inner {
  max-width: 960px;
  margin: 0 auto;
}

.trl-discover__title {
  font-size: var(--tds-font-size-lg);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
  margin: 0 0 var(--tds-spacing-2) 0;
}

[data-theme="dark"] .trl-discover__title {
  color: var(--tds-color-black);
}

.trl-discover__subtitle {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  line-height: 1.6;
  margin: 0 0 var(--tds-spacing-5) 0;
  max-width: 680px;
}

[data-theme="dark"] .trl-discover__subtitle {
  color: var(--tds-color-stormcloud);
}

.trl-discover__grid {
  display: flex;
  flex-wrap: wrap;
  column-gap: var(--tds-spacing-5);
  row-gap: var(--tds-spacing-10);
  margin-bottom: var(--tds-spacing-5);
}

.trl-discover-card {
  display: flex;
  flex-direction: column;
  flex: 0 0 calc(33.33% - 15px);
  box-sizing: border-box;
  padding: var(--tds-spacing-4);
  background: var(--tds-color-white);
  border: 1px solid transparent;
  border-radius: var(--tds-radius-lg);
  text-decoration: none;
  text-align: left;
  transition: all var(--tds-duration-short) ease;
}

[data-theme="dark"] .trl-discover-card {
  background: var(--trl-surface);
  border: 1px solid var(--trl-border);
}

.trl-discover-card:hover {
  border-color: var(--tds-color-azure);
  box-shadow: var(--tds-shadow-xs);
}

.trl-discover-card:hover .trl-discover-card__title {
  text-decoration: underline;
}

[data-theme="dark"] .trl-discover-card:hover {
  border-color: var(--tds-color-ocean);
}

.trl-discover-card__icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-bottom: var(--tds-spacing-3);
  background: var(--tds-color-foundation-blue);
}

[data-theme="dark"] .trl-discover-card__icon {
  background: var(--trl-surface-soft);
}

.trl-discover-card__icon svg,
.trl-discover-card__icon img {
  width: 24px;
  height: 24px;
  color: var(--tds-color-ocean);
}

[data-theme="dark"] .trl-discover-card__icon svg {
  color: var(--tds-color-ocean);
}

.trl-discover-card__icon--purple {
  background: rgba(147, 51, 234, 0.15);
}

[data-theme="dark"] .trl-discover-card__icon--purple {
  background: rgba(147, 51, 234, 0.15);
}

.trl-discover-card__icon--purple svg {
  color: #9333ea;
}

.trl-discover-card__icon--green {
  background: rgba(46, 132, 74, 0.15);
}

[data-theme="dark"] .trl-discover-card__icon--green {
  background: rgba(46, 132, 74, 0.15);
}

.trl-discover-card__icon--green svg {
  color: var(--tds-color-evergreen);
}

.trl-discover-card__icon--orange {
  background: rgba(234, 88, 12, 0.15);
}

[data-theme="dark"] .trl-discover-card__icon--orange {
  background: rgba(234, 88, 12, 0.15);
}

.trl-discover-card__icon--orange svg {
  color: #ea580c;
}

.trl-discover-card__title {
  font-size: var(--tds-font-size-lg);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-ocean);
  margin: 0;
}

[data-theme="dark"] .trl-discover-card__title {
  color: var(--tds-color-ocean);
}

.trl-discover-card__desc {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-meteorite);
  line-height: 1.5;
  margin-top: var(--tds-spacing-2);
}

[data-theme="dark"] .trl-discover-card__desc {
  color: var(--tds-color-stormcloud);
}

.trl-discover__more {
  display: block;
  margin: 0 auto;
  background: none;
  border: none;
  color: var(--tds-color-ocean);
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-semibold);
  cursor: pointer;
}

[data-theme="dark"] .trl-discover__more {
  color: var(--tds-color-ocean);
}

.trl-discover__more:hover {
  text-decoration: underline;
}

@media (max-width: 80rem) {
  .trl-discover__grid .trl-discover-card {
    flex: 0 0 calc(50% - 10px);
  }
}

@media (max-width: 48rem) {
  .trl-discover__grid {
    flex-direction: column;
    row-gap: var(--tds-spacing-2);
  }

  .trl-discover__grid .trl-discover-card {
    flex: 1 1 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .trl-discover-card {
    transition: none !important;
  }
}

.tds-discover-card--horizontal .tds-discover-card__title {
  margin-bottom: var(--tds-spacing-1);
}

.tds-discover-card--compact {
  padding: var(--tds-spacing-4);
}

.tds-discover-card--compact .tds-discover-card__icon {
  width: 40px;
  height: 40px;
  margin-bottom: var(--tds-spacing-3);
}

.tds-discover-card--compact .tds-discover-card__icon svg {
  width: 20px;
  height: 20px;
}

.tds-discover-card--compact .tds-discover-card__title {
  font-size: var(--tds-font-size-md);
}

.tds-discover-card--compact .tds-discover-card__desc {
  font-size: var(--tds-font-size-xs);
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */

.tds-discover-grid {
  display: flex;
  column-gap: var(--tds-spacing-5);
  row-gap: var(--tds-spacing-10);
  flex-direction: row;
  flex-wrap: wrap;
}

.tds-discover-grid .tds-discover-card {
  flex: 0 0 calc(33.33% - 15px);
  box-sizing: border-box;
}

@media (max-width: 768px) {
  .tds-discover-grid .tds-discover-card {
    flex: 0 0 calc(50% - 10px);
  }
}

@media (max-width: 520px) {
  .tds-discover-grid {
    flex-direction: column;
    row-gap: var(--tds-spacing-2);
  }

  .tds-discover-grid .tds-discover-card {
    flex: 1 1 100%;
  }
}


/* === components/tds/footer.css === */
/* ==========================================================================
   TDS Footer Component
   Ported from th-components-main/src/elements/tds/footer
   ========================================================================== */

.tds-footer {
  background-color: var(--tds-color-white);
  padding: var(--tds-spacing-10) var(--tds-spacing-6);
  border-top: 1px solid var(--tds-color-fog);
}

[data-theme="dark"] .tds-footer {
  background-color: var(--trl-surface);
  border-color: var(--trl-border);
}

.tds-footer__inner {
  max-width: var(--tds-container-xl);
  margin: 0 auto;
}

/* Footer links grid */
.tds-footer-links {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--tds-spacing-8);
  margin-bottom: var(--tds-spacing-8);
}

.tds-footer-links__section {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-3);
}

.tds-footer-links__heading {
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

[data-theme="dark"] .tds-footer-links__heading {
  color: var(--tds-color-black);
}

.tds-footer-links__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-2);
}

.tds-footer-links__link {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  text-decoration: none;
  transition: color var(--tds-duration-short) ease;
}

.tds-footer-links__link:hover {
  color: var(--tds-color-brand);
  text-decoration: underline;
}

[data-theme="dark"] .tds-footer-links__link {
  color: var(--tds-color-stormcloud);
}

[data-theme="dark"] .tds-footer-links__link:hover {
  color: var(--tds-color-ocean);
}

/* Footer global section */
.tds-footer-global {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-spacing-4);
  padding-top: var(--tds-spacing-6);
  border-top: 1px solid var(--tds-color-fog);
}

[data-theme="dark"] .tds-footer-global {
  border-color: var(--trl-border);
}

/* Copyright */
.tds-footer-global__copyright {
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-footer-global__copyright {
  color: var(--tds-color-stormcloud);
}

/* Legal links */
.tds-footer-global__legal {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tds-spacing-4);
}

.tds-footer-global__legal-link {
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
  text-decoration: none;
}

.tds-footer-global__legal-link:hover {
  text-decoration: underline;
}

[data-theme="dark"] .tds-footer-global__legal-link {
  color: var(--tds-color-stormcloud);
}

/* Social links */
.tds-footer__social {
  display: flex;
  gap: var(--tds-spacing-3);
}

.tds-footer__social-link {
  width: 36px;
  height: 36px;
  background-color: var(--tds-color-brand);
  border-radius: var(--tds-radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--tds-color-white);
  text-decoration: none;
  transition: background-color var(--tds-duration-short) ease, transform var(--tds-duration-short) ease;
}

.tds-footer__social-link:hover {
  background-color: var(--tds-color-midnight);
  transform: scale(1.05);
}

.tds-footer__social-link:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

.tds-footer__social-link svg {
  width: 18px;
  height: 18px;
}

/* Language selector */
.tds-footer__language {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-1);
}

.tds-footer__language-link {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-1);
}

.tds-footer__language-link:hover {
  text-decoration: underline;
}

[data-theme="dark"] .tds-footer__language-link {
  color: var(--tds-color-stormcloud);
}

.tds-footer__language-icon {
  width: 16px;
  height: 16px;
}

/* App download buttons */
.tds-footer__apps {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--tds-spacing-4);
  margin-bottom: var(--tds-spacing-6);
  padding-bottom: var(--tds-spacing-6);
  border-bottom: 1px solid var(--tds-color-fog);
}

[data-theme="dark"] .tds-footer__apps {
  border-color: var(--trl-border);
}

.tds-footer__apps-label {
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
}

[data-theme="dark"] .tds-footer__apps-label {
  color: var(--tds-color-black);
}

.tds-footer__apps-buttons {
  display: flex;
  gap: var(--tds-spacing-3);
}

.tds-footer__app-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  padding: var(--tds-spacing-2) var(--tds-spacing-4);
  background-color: var(--tds-color-black);
  color: var(--tds-color-white);
  border-radius: var(--tds-radius-md);
  text-decoration: none;
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-bold);
  transition: background-color var(--tds-duration-short) ease;
}

.tds-footer__app-btn:hover {
  background-color: var(--gray-700);
}

.tds-footer__app-btn svg {
  width: 20px;
  height: 20px;
}

/* RTL support */
[dir="rtl"] .tds-footer-links {
  direction: rtl;
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */

/* Responsive */
@media (max-width: 48rem) {
  .tds-footer-links {
    grid-template-columns: repeat(2, 1fr);
  }

  .tds-footer-global {
    flex-direction: column;
    align-items: flex-start;
  }

  .tds-footer__apps {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 30rem) {
  .tds-footer-links {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Trail Preview Footer
   ========================================================================== */

.trl-footer {
  background: var(--tds-color-white);
  padding: 40px 24px 24px;
  border-top: 1px solid #e5e5e5;
}

[data-theme="dark"] .trl-footer {
  background: var(--trl-surface);
  border-color: var(--trl-border);
}

.trl-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
}

.trl-footer__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 48px;
  margin-bottom: 40px;
}

.trl-footer__section {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-4);
}

.trl-footer__heading {
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
  margin: 0;
}

[data-theme="dark"] .trl-footer__heading {
  color: var(--tds-color-black);
}

.trl-footer__links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-3);
}

.trl-footer__links a {
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
  text-decoration: none;
  transition: color var(--tds-duration-short) ease;
}

[data-theme="dark"] .trl-footer__links a {
  color: var(--tds-color-stormcloud);
}

.trl-footer__links a:hover {
  color: var(--tds-color-ocean);
  text-decoration: underline;
}

[data-theme="dark"] .trl-footer__links a:hover {
  color: var(--tds-color-ocean);
}

.trl-footer__apps {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-4);
  padding-bottom: var(--tds-spacing-6);
  border-bottom: 1px solid var(--tds-color-fog);
  margin-bottom: var(--tds-spacing-6);
}

[data-theme="dark"] .trl-footer__apps {
  border-color: var(--trl-border);
}

.trl-footer__apps-label {
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-semibold);
  color: var(--tds-color-midnight);
}

[data-theme="dark"] .trl-footer__apps-label {
  color: var(--tds-color-black);
}

.trl-footer__apps-btns {
  display: flex;
  gap: var(--tds-spacing-3);
}

.trl-footer__app-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  padding: var(--tds-spacing-2) var(--tds-spacing-4);
  background: var(--tds-color-black);
  color: var(--tds-color-white);
  border-radius: var(--tds-radius-md);
  text-decoration: none;
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-semibold);
  transition: background var(--tds-duration-short) ease;
}

.trl-footer__app-btn svg {
  width: 20px;
  height: 20px;
}

.trl-footer__app-btn:hover {
  background: var(--gray-700);
}

.trl-footer__social {
  display: flex;
  gap: var(--tds-spacing-3);
  justify-content: flex-end;
  padding-bottom: var(--tds-spacing-6);
  border-bottom: 1px solid var(--tds-color-fog);
  margin-bottom: var(--tds-spacing-6);
}

[data-theme="dark"] .trl-footer__social {
  border-color: var(--trl-border);
}

.trl-footer__social-link {
  width: 40px;
  height: 40px;
  background: var(--tds-color-ocean);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--tds-color-white);
  text-decoration: none;
  transition: background var(--tds-duration-short) ease, transform var(--tds-duration-short) ease;
}

.trl-footer__social-link[aria-label*="Facebook"] {
  background: #1877F2;
}

.trl-footer__social-link[aria-label*="Twitter"] {
  background: #000000;
}

.trl-footer__social-link[aria-label*="LinkedIn"] {
  background: #0A66C2;
}

.trl-footer__social-link[aria-label*="Trailblazer"] {
  background: #00A1E0;
}

.trl-footer__social-link[aria-label*="Podcast"] {
  background: #FF6D3D;
}

.trl-footer__social-link:hover {
  background: var(--tds-color-azure);
}

.trl-footer__social-link svg {
  width: 20px;
  height: 20px;
}

.trl-footer__legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-spacing-4);
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .trl-footer__legal {
  color: var(--tds-color-stormcloud);
}

.trl-footer__copyright {
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .trl-footer__copyright {
  color: var(--tds-color-stormcloud);
}

.trl-footer__legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tds-spacing-4);
}

.trl-footer__legal-links a {
  color: var(--tds-color-meteorite);
  text-decoration: none;
  transition: color var(--tds-duration-short) ease;
}

[data-theme="dark"] .trl-footer__legal-links a {
  color: var(--tds-color-stormcloud);
}

.trl-footer__legal-links a:hover {
  text-decoration: underline;
}

.trl-footer__lang {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  color: var(--tds-color-meteorite);
  cursor: pointer;
}

[data-theme="dark"] .trl-footer__lang {
  color: var(--tds-color-stormcloud);
}

.trl-footer__lang svg {
  width: 16px;
  height: 16px;
}

.trl-footer__lang-link {
  color: var(--tds-color-meteorite);
  text-decoration: none;
  font-size: var(--tds-font-size-sm);
}

[data-theme="dark"] .trl-footer__lang-link {
  color: var(--tds-color-stormcloud);
}

.trl-footer__lang-link:hover {
  text-decoration: underline;
}

@media (max-width: 80rem) {
  .trl-footer__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--tds-spacing-8);
  }
}

@media (max-width: 48rem) {
  .trl-footer__grid {
    grid-template-columns: 1fr;
    gap: var(--tds-spacing-6);
  }

  .trl-footer__apps {
    flex-direction: column;
    align-items: flex-start;
  }

  .trl-footer__social {
    justify-content: flex-start;
  }

  .trl-footer__legal {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .trl-footer__social-link {
    transition: none !important;
  }
}


/* === components/tds/global_header.css === */
/* ==========================================================================
   TDS Global Header Component
   ========================================================================== */

.tds-global-header {
  background-color: var(--tds-color-white);
  border-bottom: 1px solid var(--tds-color-fog);
  position: sticky;
  top: 0;
  z-index: var(--tds-z-index-sticky);
}

[data-theme="dark"] .tds-global-header {
  background-color: var(--trl-surface);
  border-color: var(--trl-border);
}

.tds-global-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* No max-width - header spans full viewport like original Trailhead */
  padding: var(--tds-spacing-3) var(--tds-spacing-5);
  gap: var(--tds-spacing-4);
}

.tds-global-header__logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
}

.tds-global-header__logo-icon {
  width: 28px;
  height: 28px;
  color: var(--tds-color-brand);
}

[data-theme="dark"] .tds-global-header__logo-icon {
  color: var(--tds-color-ocean);
}

.tds-global-header__nav {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  flex: 1;
  justify-content: center;
}

.tds-global-header__nav-link {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  text-decoration: none;
  padding: var(--tds-spacing-2) var(--tds-spacing-3);
  border-radius: var(--tds-radius-md);
  transition: color var(--tds-duration-short) ease, background-color var(--tds-duration-short) ease;
  white-space: nowrap;
}

[data-theme="dark"] .tds-global-header__nav-link {
  color: var(--tds-color-stormcloud);
}

.tds-global-header__nav-link:hover {
  color: var(--tds-color-brand);
  background-color: var(--tds-color-sand);
}

[data-theme="dark"] .tds-global-header__nav-link:hover {
  color: var(--tds-color-ocean);
  background-color: var(--trl-surface-soft);
}

.tds-global-header__nav-link:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

.tds-global-header__actions {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-3);
  flex-shrink: 0;
}

.tds-global-header__search {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  padding: var(--tds-spacing-2) var(--tds-spacing-3);
  border-radius: var(--tds-radius-md);
  cursor: pointer;
  transition: background-color var(--tds-duration-short) ease;
}

[data-theme="dark"] .tds-global-header__search {
  color: var(--tds-color-stormcloud);
}

.tds-global-header__search:hover {
  background-color: var(--tds-color-sand);
}

[data-theme="dark"] .tds-global-header__search:hover {
  background-color: var(--trl-surface-soft);
}

.tds-global-header__search svg {
  width: 16px;
  height: 16px;
}

.tds-global-header__phone {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--tds-radius-full);
  background: transparent;
  border: none;
  color: var(--tds-color-meteorite);
  cursor: pointer;
  transition: background-color var(--tds-duration-short) ease;
}

[data-theme="dark"] .tds-global-header__phone {
  color: var(--tds-color-stormcloud);
}

.tds-global-header__phone:hover {
  background-color: var(--tds-color-sand);
}

[data-theme="dark"] .tds-global-header__phone:hover {
  background-color: var(--trl-surface-soft);
}

.tds-global-header__phone svg {
  width: 18px;
  height: 18px;
}

.tds-global-header__avatar {
  width: 32px;
  height: 32px;
  border-radius: var(--tds-radius-full);
  overflow: hidden;
}

.tds-global-header__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tds-theme-toggle {
  display: flex;
  gap: var(--tds-spacing-1);
  background-color: var(--tds-color-sand);
  border-radius: var(--tds-radius-md);
  padding: 2px;
}

[data-theme="dark"] .tds-theme-toggle {
  background-color: var(--trl-surface-soft);
}

.tds-theme-toggle__btn {
  padding: var(--tds-spacing-1) var(--tds-spacing-2) !important;
  font-size: var(--tds-font-size-xs) !important;
  border: none !important;
  background-color: transparent !important;
}

.tds-theme-toggle__btn:hover {
  background-color: var(--tds-color-fog) !important;
}

[data-theme="dark"] .tds-theme-toggle__btn:hover {
  background-color: rgba(255, 255, 255, 0.1) !important;
}

.tds-theme-toggle__btn--active {
  background-color: var(--tds-color-white) !important;
  box-shadow: var(--tds-shadow-sm);
}

[data-theme="dark"] .tds-theme-toggle__btn--active {
  background-color: var(--trl-surface) !important;
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */

@media (max-width: 800px) {
  .tds-global-header__nav {
    display: none;
  }
  .tds-global-header__search span {
    display: none;
  }
}

@media (max-width: 640px) {
  .tds-global-header__inner {
    padding: var(--tds-spacing-2) var(--tds-spacing-3);
  }
  .tds-global-header__actions {
    gap: var(--tds-spacing-2);
  }
  .tds-theme-toggle {
    display: none;
  }
}



/* === components/tds/heading.css === */
/* ==========================================================================
   TDS Heading Component
   Ported from th-components-main/src/elements/tds/heading
   ========================================================================== */

.tds-heading {
  font-family: var(--tds-heading_font-family, var(--tds-font-family-heading));
  font-weight: var(--tds-heading_font-weight, normal);
  color: var(--tds-heading_color, var(--tds-color-midnight));
  margin: 0;
  line-height: 1.3;
}

/* Heading level sizes */
.tds-heading--h1 {
  font-size: var(--tds-heading-font-size, var(--tds-font-size-2xl)); /* 24px */
}

.tds-heading--h2 {
  font-size: var(--tds-heading-font-size, var(--tds-font-size-xl)); /* 20px */
}

.tds-heading--h3 {
  font-size: var(--tds-heading-font-size, var(--tds-font-size-lg)); /* 18px */
}

.tds-heading--h4 {
  font-size: var(--tds-heading-font-size, var(--tds-font-size-md)); /* 16px */
}

.tds-heading--h5 {
  font-size: var(--tds-heading-font-size, var(--tds-font-size-sm)); /* 14px */
}

.tds-heading--h6 {
  font-size: var(--tds-heading-font-size, var(--tds-font-size-xs)); /* 12px */
}

/* Dark mode */
[data-theme="dark"] .tds-heading {
  color: var(--tds-heading_color, var(--tds-color-black));
}

/* RTL support */
[dir="rtl"] .tds-heading {
  text-align: right;
}



/* === components/tds/icon.css === */
/* ==========================================================================
   TDS Icon Component
   Ported from th-components-main/src/elements/tds/icon
   ========================================================================== */

.tds-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  fill: var(--tds-icon_fill, currentColor);
  stroke: var(--tds-icon_stroke);
  stroke-width: var(--tds-icon_stroke-width);
}

.tds-icon svg {
  display: block;
  fill: inherit;
  stroke: inherit;
  stroke-width: inherit;
  height: var(--tds-icon_size, var(--icon-size, 1em));
  width: var(--tds-icon_size, var(--icon-size, 1em));
}

/* Size variants */
.tds-icon--x-small {
  --icon-size: var(--tds-spacing-3); /* 12px */
}

.tds-icon--small {
  --icon-size: var(--tds-spacing-4); /* 16px */
}

.tds-icon--medium {
  --icon-size: var(--tds-spacing-5); /* 20px */
}

.tds-icon--large {
  --icon-size: var(--tds-spacing-6); /* 24px */
}

.tds-icon--xlarge {
  --icon-size: var(--tds-spacing-10); /* 40px */
}

/* Assistive text for screen readers */
.tds-icon__assistive-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* RTL support - flip directional icons */
[dir="rtl"] .tds-icon--flip-rtl {
  transform: scaleX(-1);
}

/* Dark mode adjustments */
[data-theme="dark"] .tds-icon {
  color: inherit;
}



/* === components/tds/modal.css === */
/* ==========================================================================
   TDS Modal Component
   Ported from th-components-main/src/elements/tds/modal
   ========================================================================== */

.tds-modal {
  position: var(--tds-position, fixed);
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: var(--tds-z-index-modal);
  display: none;
}

.tds-modal--open {
  display: block;
}

/* Backdrop */
.tds-modal__backdrop {
  position: var(--tds-position, fixed);
  z-index: var(--tds-z-index-overlay);
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: hsla(var(--tds-color-meteorite-h), var(--tds-color-meteorite-s), var(--tds-color-meteorite-l), 0.75);
}

[data-theme="dark"] .tds-modal__backdrop {
  background-color: rgba(0, 0, 0, 0.8);
}

/* Container */
.tds-modal__container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 0 auto;
  padding: var(--tds-spacing-12) 0 var(--tds-spacing-2);
  width: calc(100% - var(--tds-spacing-4) * 2);
  height: 100%;
  position: relative;
  z-index: calc(var(--tds-z-index-modal) + 1);
}

@media screen and (min-width: 48rem) {
  .tds-modal__container {
    width: 80%;
    max-width: var(--tds-modal_container-max-width, 40rem);
    min-width: var(--tds-modal_container-min-width, 20rem);
  }

  /* Size variants */
  .tds-modal--x-small .tds-modal__container {
    width: 40%;
    max-width: 30rem;
    min-width: 20rem;
  }

  .tds-modal--small .tds-modal__container {
    width: 60%;
    max-width: 52.0625rem;
    min-width: 40rem;
  }

  .tds-modal--medium .tds-modal__container {
    width: 70%;
    max-width: 75rem;
    min-width: 40rem;
  }

  .tds-modal--large .tds-modal__container {
    width: 90%;
    max-width: none;
    min-width: 40rem;
  }
}

/* Header */
.tds-modal__header {
  background-color: var(--tds-color-white);
  border-top-right-radius: var(--tds-radius-xl);
  border-top-left-radius: var(--tds-radius-xl);
  border-bottom: var(--tds-modal_header-border-bottom, none);
  padding: var(--tds-modal_header-padding, var(--tds-spacing-8) var(--tds-spacing-6) var(--tds-spacing-8) var(--tds-spacing-8));
  text-align: var(--tds-modal_header-text-align, left);
}

[dir="rtl"] .tds-modal__header {
  text-align: var(--tds-modal_header-text-align, right);
}

[data-theme="dark"] .tds-modal__header {
  background-color: var(--trl-surface);
}

.tds-modal__header-main {
  display: flex;
  position: relative;
  align-items: flex-start;
}

/* Heading */
.tds-modal__heading {
  flex: 1 1 auto;
  font-family: var(--tds-font-family-heading);
  font-size: var(--tds-font-size-xl);
  font-weight: normal;
  color: var(--tds-color-midnight);
  margin: 0;
}

[data-theme="dark"] .tds-modal__heading {
  color: var(--tds-color-black);
}

/* Tagline */
.tds-modal__tagline {
  margin-top: var(--tds-spacing-2);
  color: var(--tds-modal_tagline-color, inherit);
}

[data-theme="dark"] .tds-modal__tagline {
  color: var(--tds-color-stormcloud);
}

/* Close button */
.tds-modal__close {
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  border-radius: var(--tds-spacing-1);
  border: 1px solid transparent;
  color: var(--tds-color-brand);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: inherit;
  line-height: inherit;
  width: 1.25rem;
  height: 1.25rem;
  flex: 0 1 auto;
  margin-inline-start: auto;
  text-decoration: none;
  user-select: none;
  white-space: normal;
  z-index: var(--tds-modal-close-z-index, 1000);
  padding: 0;
}

.tds-modal__close:focus {
  outline-color: currentColor;
}

.tds-modal__close:active {
  color: var(--tds-color-fog);
}

.tds-modal__close:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

[data-theme="dark"] .tds-modal__close {
  color: var(--tds-color-ocean);
}

/* Content */
.tds-modal__content {
  background-color: var(--tds-color-white);
  overflow: var(--tds-modal_content-overflow, hidden);
  overflow-y: var(--tds-modal_content-overflow-y, auto);
  padding: var(--tds-modal_content-padding, var(--tds-spacing-8));
  min-height: var(--tds-modal_content-min-height, var(--tds-spacing-24));
}

[data-theme="dark"] .tds-modal__content {
  background-color: var(--trl-surface);
}

/* Content with no footer - apply border radius */
.tds-modal--no-footer .tds-modal__content {
  border-bottom-right-radius: var(--tds-radius-xl);
  border-bottom-left-radius: var(--tds-radius-xl);
  box-shadow: 0 1px 0 0 hsla(var(--tds-color-black-h), var(--tds-color-black-s), var(--tds-color-black-l), 0.1);
}

/* Footer */
.tds-modal__footer {
  background-color: var(--tds-modal_footer-background-color, var(--tds-color-sand));
  border-top: var(--tds-modal_footer-border-top, 2px solid var(--tds-color-fog));
  border-bottom-right-radius: var(--tds-radius-xl);
  border-bottom-left-radius: var(--tds-radius-xl);
  padding: var(--tds-modal_footer-padding, var(--tds-spacing-6) var(--tds-spacing-8));
  text-align: right;
  box-shadow: 0 1px 0 0 hsla(var(--tds-color-black-h), var(--tds-color-black-s), var(--tds-color-black-l), 0.1);
}

[dir="rtl"] .tds-modal__footer {
  text-align: left;
}

[data-theme="dark"] .tds-modal__footer {
  background-color: var(--trl-surface-soft);
  border-color: var(--trl-border);
}

/* Footer button spacing */
.tds-modal__footer .tds-button + .tds-button {
  margin-inline-start: var(--tds-spacing-4);
}

/* Full-screen variant */
.tds-modal--full-screen .tds-modal__container {
  min-width: 100%;
  padding: 0;
}

.tds-modal--full-screen .tds-modal__header {
  border-top-right-radius: 0;
  border-top-left-radius: 0;
  padding: var(--tds-modal_header-padding, var(--tds-spacing-5) var(--tds-spacing-8) 0 0);
}

.tds-modal--full-screen .tds-modal__header-main {
  align-items: center;
}

.tds-modal--full-screen .tds-modal__content {
  height: 100%;
  border-radius: 0;
  padding-top: 52px;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: bottom;
  backdrop-filter: blur(10px);
}

@media (max-height: 680px) {
  .tds-modal--full-screen .tds-modal__content {
    padding-top: 24px;
  }
}

.tds-modal--full-screen .tds-modal__close {
  color: var(--tds-color-brand);
  top: 20px;
  right: 25px;
  height: 2rem;
  width: 2rem;
}

[dir="rtl"] .tds-modal--full-screen .tds-modal__close {
  right: auto;
  left: 25px;
}

/* Toast area for announcements */
.tds-modal__toast {
  position: absolute;
  z-index: var(--tds-z-index-negative);
}

/* Full height variant */
.tds-modal--full-height .tds-modal__content {
  height: 100%;
}

/* Animation */
@keyframes tds-modal-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes tds-modal-slide-up {
  from {
    transform: translateY(20px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

.tds-modal--open .tds-modal__backdrop {
  animation: tds-modal-fade-in var(--tds-duration-normal) ease;
}

.tds-modal--open .tds-modal__container {
  animation: tds-modal-slide-up var(--tds-duration-normal) ease;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .tds-modal--open .tds-modal__backdrop,
  .tds-modal--open .tds-modal__container {
    animation: none;
  }
}



/* === components/tds/module_card.css === */
/* ==========================================================================
   TDS Module Card Component
   ========================================================================== */

.tds-module-card {
  display: flex;
  gap: var(--tds-spacing-4);
  position: relative;
}

.tds-module-card__node {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  margin-top: var(--tds-spacing-5);
}

.tds-module-card__node-icon {
  width: 30px;
  height: 30px;
  border-radius: var(--tds-radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  z-index: 1;
  background-color: var(--tds-color-white);
}

/* Incomplete state - empty circle with border */
.tds-module-card__node-icon--incomplete {
  width: 30px;
  height: 30px;
  margin-top: 3px;
  border: 3px solid var(--tds-color-fog);
  border-radius: var(--tds-radius-full);
  background-color: var(--tds-color-white);
}

[data-theme="dark"] .tds-module-card__node-icon--incomplete {
  background-color: var(--trl-surface);
  border-color: var(--trl-border);
}

/* Available/In-progress state */
.tds-module-card__node-icon--available {
  margin-top: 3px;
  border: 3px solid var(--tds-color-fog);
  background-color: var(--tds-color-white);
}

[data-theme="dark"] .tds-module-card__node-icon--available {
  background-color: var(--trl-surface);
  border-color: var(--trl-border);
}

/* Completed state - green circle with check */
.tds-module-card__node-icon--completed {
  background-color: var(--tds-color-evergreen);
  color: var(--tds-color-white);
  width: 31px;
  height: 31px;
  padding: 7px 8px;
  box-sizing: border-box;
}

.tds-module-card__node-icon--completed svg {
  width: 100%;
  height: 100%;
}

/* Locked state - gray circle with lock icon */
.tds-module-card__node-icon--locked {
  margin-top: 3px;
  background-color: var(--tds-color-fog);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-module-card__node-icon--locked {
  background-color: var(--trl-surface-soft);
  color: var(--tds-color-fraggle);
}

.tds-module-card__node-icon--locked svg {
  width: 14px;
  height: 14px;
  fill: var(--tds-color-meteorite);
}

.tds-module-card__line {
  flex: 1;
  width: 2px;
  background-color: var(--tds-color-fog);
  margin-top: -2px;
  min-height: 20px;
}

[data-theme="dark"] .tds-module-card__line {
  background-color: var(--trl-border);
}

.tds-module-card--completed .tds-module-card__line {
  background-color: var(--tds-color-success-line);
}

.tds-module-card--last .tds-module-card__line,
.tds-module-card:last-of-type .tds-module-card__line {
  display: none;
}

.trl-modules--completed .tds-module-card--last .tds-module-card__line,
.trl-modules--completed .tds-module-card:last-of-type .tds-module-card__line {
  display: block;
  margin-bottom: -18px;
}

.tds-module-card__content {
  flex: 1;
  background-color: var(--tds-color-white);
  border: 1px solid var(--tds-color-fog);
  border-radius: var(--tds-radius-lg-2);
  overflow: hidden;
  margin-bottom: var(--tds-spacing-6);
}

[data-theme="dark"] .tds-module-card__content {
  background-color: var(--trl-surface);
  border: 1px solid var(--trl-border);
}

.tds-module-card[data-expanded="true"] .tds-module-card__content,
.tds-module-card--expanded .tds-module-card__content {
  border: 1px solid var(--tds-color-granite);
  box-shadow: var(--tds-shadow-xs);
}

.tds-module-card__header {
  padding: var(--tds-spacing-5);
}

.tds-module-card__title {
  font-family: "AvantGarde-Demi", var(--tds-font-family-heading);
  font-size: var(--tds-font-size-xl);
  font-weight: var(--tds-font-weight-semibold);
  color: var(--tds-color-midnight);
  margin: 0 0 var(--tds-spacing-1) 0;
  line-height: 1.3;
}

[data-theme="dark"] .tds-module-card__title {
  color: var(--tds-color-black);
}

.tds-module-card__desc {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-black);
  line-height: var(--tds-spacing-6);
  margin: 0 0 var(--tds-spacing-3) 0;
}

[data-theme="dark"] .tds-module-card__desc {
  color: var(--tds-color-stormcloud);
}

.tds-module-card__meta {
  display: flex;
  justify-content: space-between;
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  margin-top: var(--tds-spacing-4);
}

[data-theme="dark"] .tds-module-card__meta {
  color: var(--tds-color-stormcloud);
}

.tds-module-card__meta span {
  display: inline-flex;
  align-items: center;
}

.tds-module-card__points {
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-module-card__points {
  color: var(--tds-color-ocean);
}

.tds-module-card__body {
  display: none;
  border-top: 1px solid var(--tds-color-fog);
}

[data-theme="dark"] .tds-module-card__body {
  border-color: var(--trl-border);
}

.tds-module-card[data-expanded="true"] .tds-module-card__body,
.tds-module-card--expanded .tds-module-card__body {
  display: block;
}

.tds-module-card__empty {
  padding: var(--tds-spacing-6);
  text-align: center;
  color: var(--tds-color-meteorite);
  font-size: var(--tds-font-size-sm);
}

[data-theme="dark"] .tds-module-card__empty {
  color: var(--tds-color-stormcloud);
}

.tds-module-card__toggle {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  width: 100%;
  height: 3.125rem;
  padding: var(--tds-spacing-4) var(--tds-spacing-5);
  background-color: transparent;
  border: none;
  border-top: 1px solid var(--tds-color-fog);
  color: var(--tds-color-ocean);
  font-size: var(--tds-font-size-md);
  font-weight: var(--tds-font-weight-semibold);
  cursor: pointer;
  transition: background-color var(--tds-duration-short) ease;
}

[data-theme="dark"] .tds-module-card__toggle {
  border-color: var(--trl-border);
  color: var(--tds-color-ocean);
}

.tds-module-card__toggle:hover {
  text-decoration: underline;
}

[data-theme="dark"] .tds-module-card__toggle:hover {
  text-decoration: underline;
}

.tds-module-card__toggle:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

.tds-module-card__toggle-icon {
  transition: transform var(--tds-duration-short) ease;
}

.tds-module-card[data-expanded="true"] .tds-module-card__toggle-icon,
.tds-module-card--expanded .tds-module-card__toggle-icon {
  transform: rotate(180deg);
}

.tds-module-card--locked .tds-module-card__title {
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .tds-module-card--locked .tds-module-card__title {
  color: var(--tds-color-fraggle);
}

.tds-module-card--locked .tds-module-card__content {
  opacity: 0.7;
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */
[dir="rtl"] .tds-module-card__header {
  text-align: right;
}

/* Hide node and vertical line on tablet/mobile like original Trailhead */
@media (max-width: 1020px) {
  .tds-module-card__node,
  .tds-module-card__line {
    display: none;
  }
  .tds-module-card {
    gap: 0;
  }
}

@media (max-width: 480px) {
  .tds-module-card {
    gap: var(--tds-spacing-3);
  }
  .tds-module-card__node {
    width: 32px;
  }
  .tds-module-card__node-icon {
    width: 32px;
    height: 32px;
  }
  .tds-module-card__header {
    padding: var(--tds-spacing-4);
  }
  .tds-module-card__title {
    font-size: var(--tds-font-size-md);
  }
}


/* === components/tds/pill.css === */
/* ==========================================================================
   TDS Pill/Tag Component
   Matches original Trailhead th-pill_filter styling
   ========================================================================== */

.tds-pill,
.tds-pill_filter {
  display: inline-block;
  border-radius: var(--tds-radius-full);
  font-weight: var(--tds-font-weight-bold);
  line-height: var(--tds-line-height-tight);
  padding: var(--tds-spacing-1) var(--tds-spacing-3);
  font-size: var(--tds-font-size-xs);
  text-decoration: none;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all var(--tds-duration-short) ease;
}

/* Default pill (neutral) */
.tds-pill {
  color: var(--tds-color-meteorite, #706e6b);
  background: var(--tds-color-sand, #f4f6f9);
}

/* Skill variant (blue) */
.tds-pill--skill,
.tds-pill_filter {
  color: var(--tds-color-azure);
  background: var(--tds-color-foundation-blue);
}

.tds-pill--skill:hover,
.tds-pill--skill:active,
.tds-pill--skill:focus,
.tds-pill_filter:hover,
.tds-pill_filter:active,
.tds-pill_filter:focus {
  background: var(--tds-color-clear-sky);
  text-decoration: underline;
}

.tds-pill--skill:active,
.tds-pill--skill:focus,
.tds-pill_filter:active,
.tds-pill_filter:focus {
  border: 1px solid var(--tds-color-azure);
}

.tds-pill--skill:focus-visible,
.tds-pill_filter:focus-visible {
  outline: var(--tds-a11y-outline-focus, 2px solid #0176d3);
  outline-offset: var(--tds-a11y-outline-offset-focus, 2px);
}

/* Product variant (same as skill - blue style) */
.tds-pill--product {
  color: var(--tds-color-azure);
  background: var(--tds-color-foundation-blue);
}

.tds-pill--product:hover,
.tds-pill--product:active,
.tds-pill--product:focus {
  background: var(--tds-color-clear-sky);
  text-decoration: underline;
}

.tds-pill--product:active,
.tds-pill--product:focus {
  border: 1px solid var(--tds-color-azure);
}

.tds-pill--product:focus-visible {
  outline: var(--tds-a11y-outline-focus, 2px solid #0176d3);
  outline-offset: var(--tds-a11y-outline-offset-focus, 2px);
}

/* Link variant */
.tds-pill--link {
  cursor: pointer;
  color: var(--tds-color-brand, #0176d3);
}

.tds-pill--link:hover {
  text-decoration: underline;
}

/* Bare variant (no background) */
.tds-pill--bare {
  background: transparent;
}

/* Small size */
.tds-pill--small {
  padding: 0.25rem 0.5rem;
  font-size: 0.625rem;
}

/* Large size */
.tds-pill--large {
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
}

/* Pill label */
.tds-pill__label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Remove button (for dismissible pills) */
.tds-pill__remove {
  color: inherit;
  opacity: 0.7;
  border: none;
  background-color: transparent;
  padding: 2px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-inline-start: 4px;
}

.tds-pill__remove:hover,
.tds-pill__remove:focus {
  opacity: 1;
}

.tds-pill__remove svg {
  width: 12px;
  height: 12px;
}

/* Pill container */
.tds-pill-container {
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-top: var(--tds-spacing-3);
}

.tds-pill-li {
  display: inline-block;
}

/* Dark mode support */
[data-theme="dark"] .tds-pill {
  color: var(--tds-color-stormcloud, #b0adab);
  background: var(--trl-pill-bg, rgba(255, 255, 255, 0.1));
}

[data-theme="dark"] .tds-pill:hover {
  background: var(--trl-surface-soft, rgba(255, 255, 255, 0.15));
}

[data-theme="dark"] .tds-pill--skill,
[data-theme="dark"] .tds-pill--product,
[data-theme="dark"] .tds-pill_filter {
  background: var(--trl-pill-bg, rgba(27, 150, 255, 0.15));
  color: var(--tds-color-ocean, #1b96ff);
}

[data-theme="dark"] .tds-pill--skill:hover,
[data-theme="dark"] .tds-pill--skill:active,
[data-theme="dark"] .tds-pill--skill:focus,
[data-theme="dark"] .tds-pill--product:hover,
[data-theme="dark"] .tds-pill--product:active,
[data-theme="dark"] .tds-pill--product:focus,
[data-theme="dark"] .tds-pill_filter:hover,
[data-theme="dark"] .tds-pill_filter:active,
[data-theme="dark"] .tds-pill_filter:focus {
  background: var(--trl-surface-soft, rgba(27, 150, 255, 0.25));
}

[data-theme="dark"] .tds-pill--skill:active,
[data-theme="dark"] .tds-pill--skill:focus,
[data-theme="dark"] .tds-pill--product:active,
[data-theme="dark"] .tds-pill--product:focus,
[data-theme="dark"] .tds-pill_filter:active,
[data-theme="dark"] .tds-pill_filter:focus {
  border-color: var(--tds-color-ocean, #1b96ff);
}

/* RTL support */
[dir="rtl"] .tds-pill {
  margin-inline-end: var(--tds-spacing-1, 0.25rem);
  margin-inline-start: 0;
}



/* === components/tds/select.css === */
/* ==========================================================================
   TDS Select Component
   Ported from th-components-main/src/elements/tds/select
   ========================================================================== */

.tds-select {
  display: flex;
  flex-direction: column;
}

.tds-select__wrapper {
  position: relative;
  display: inline-flex;
  width: 100%;
}

.tds-select__control {
  appearance: none;
  -webkit-appearance: none;
  background-color: var(--tds-color-white);
  border: 1px solid var(--tds-color-granite);
  border-radius: var(--tds-radius-md);
  color: var(--tds-color-black);
  cursor: pointer;
  font-family: inherit;
  font-size: var(--tds-font-size-sm);
  line-height: var(--tds-line-height-normal);
  padding: var(--tds-spacing-2) var(--tds-spacing-10) var(--tds-spacing-2) var(--tds-spacing-3);
  min-width: 120px;
  transition: border-color var(--tds-duration-short) ease, box-shadow var(--tds-duration-short) ease;
}

[dir="rtl"] .tds-select__control {
  padding: var(--tds-spacing-2) var(--tds-spacing-3) var(--tds-spacing-2) var(--tds-spacing-10);
}

.tds-select__control:hover {
  border-color: var(--tds-color-brand);
}

.tds-select__control:focus {
  outline: none;
  border-color: var(--tds-color-brand);
  box-shadow: 0 0 0 2px var(--tds-color-foundation-blue);
}

.tds-select__control:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

[data-theme="dark"] .tds-select__control {
  background-color: var(--trl-surface);
  border-color: var(--trl-border);
  color: var(--tds-color-black);
}

[data-theme="dark"] .tds-select__control:hover {
  border-color: var(--tds-color-ocean);
}

[data-theme="dark"] .tds-select__control:focus {
  border-color: var(--tds-color-ocean);
  box-shadow: 0 0 0 2px var(--trl-surface-soft);
}

/* Dropdown icon */
.tds-select__icon {
  position: absolute;
  right: var(--tds-spacing-3);
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--tds-color-meteorite);
  width: 12px;
  height: 12px;
}

[dir="rtl"] .tds-select__icon {
  right: auto;
  left: var(--tds-spacing-3);
}

[data-theme="dark"] .tds-select__icon {
  color: var(--tds-color-stormcloud);
}

/* Disabled state */
.tds-select--disabled .tds-select__control {
  background-color: var(--tds-color-fog);
  border-color: var(--tds-color-granite);
  color: var(--tds-color-stormcloud);
  cursor: not-allowed;
}

[data-theme="dark"] .tds-select--disabled .tds-select__control {
  background-color: var(--trl-surface-soft);
  color: var(--tds-color-fraggle);
}

/* Size variants */
.tds-select--small .tds-select__control {
  font-size: var(--tds-font-size-xs);
  padding: var(--tds-spacing-1) var(--tds-spacing-8) var(--tds-spacing-1) var(--tds-spacing-2);
}

.tds-select--large .tds-select__control {
  font-size: var(--tds-font-size-md);
  padding: var(--tds-spacing-3) var(--tds-spacing-12) var(--tds-spacing-3) var(--tds-spacing-4);
}

/* Error state */
.tds-select--error .tds-select__control {
  border-color: var(--tds-color-destructive);
}

.tds-select--error .tds-select__control:focus {
  box-shadow: 0 0 0 2px var(--tds-color-pearl);
}

/* Label */
.tds-select__label {
  display: block;
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-meteorite);
  margin-bottom: var(--tds-spacing-1);
}

[data-theme="dark"] .tds-select__label {
  color: var(--tds-color-stormcloud);
}

/* Help text */
.tds-select__help {
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
  margin-top: var(--tds-spacing-1);
}

[data-theme="dark"] .tds-select__help {
  color: var(--tds-color-stormcloud);
}

.tds-select--error .tds-select__help {
  color: var(--tds-color-destructive);
}



/* === components/tds/series_link.css === */
/* ==========================================================================
   TDS Series Link Component
   ========================================================================== */

.tds-series-link {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-brand);
  text-decoration: none;
  padding: var(--tds-spacing-3) 0;
  transition: color var(--tds-duration-short) ease;
}

[data-theme="dark"] .tds-series-link {
  color: var(--tds-color-ocean);
}

.tds-series-link:hover {
  text-decoration: underline;
}

.tds-series-link:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

.tds-series-link__icon {
  width: 16px;
  height: 16px;
  transition: transform var(--tds-duration-short) ease;
  flex-shrink: 0;
}

.tds-series-link:hover .tds-series-link__icon {
  transform: translateX(4px);
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */
[dir="rtl"] .tds-series-link__icon {
  transform: scaleX(-1);
}

[dir="rtl"] .tds-series-link:hover .tds-series-link__icon {
  transform: scaleX(-1) translateX(-4px);
}

.tds-series-link--large {
  font-size: var(--tds-font-size-md);
  padding: var(--tds-spacing-4) 0;
}

.tds-series-link--large .tds-series-link__icon {
  width: 20px;
  height: 20px;
}

.tds-series-link--small {
  font-size: var(--tds-font-size-xs);
  padding: var(--tds-spacing-2) 0;
}

.tds-series-link--small .tds-series-link__icon {
  width: 12px;
  height: 12px;
}

.tds-series-link--block {
  display: flex;
  width: 100%;
  justify-content: space-between;
  padding: var(--tds-spacing-4);
  background-color: var(--tds-color-sand);
  border-radius: var(--tds-radius-md);
}

[data-theme="dark"] .tds-series-link--block {
  background-color: var(--trl-surface-soft);
}

.tds-series-link--block:hover {
  background-color: var(--tds-color-fog);
  text-decoration: none;
}

[data-theme="dark"] .tds-series-link--block:hover {
  background-color: rgba(255, 255, 255, 0.1);
}

/* ==========================================================================
   Trail Preview Series Link
   ========================================================================== */

.trl-series-link {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  color: var(--tds-color-ocean);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-semibold);
  text-decoration: none;
  margin-top: var(--tds-spacing-8);
}

.trl-series-link:hover {
  text-decoration: underline;
}

[data-theme="dark"] .trl-series-link {
  color: var(--tds-color-ocean);
}

.trl-series-link svg {
  width: 16px;
  height: 16px;
}


/* === components/tds/stats_bar.css === */
/* ==========================================================================
   TDS Stats Bar Component
   ========================================================================== */

.tds-stats-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-evenly;
  padding: var(--tds-spacing-4) 0;
  background-color: var(--tds-color-sand);
  border-radius: var(--tds-radius-full);
  font-size: var(--tds-font-size-sm);
}

[data-theme="dark"] .tds-stats-bar {
  background-color: var(--trl-surface);
  border: 1px solid var(--trl-border);
}

.tds-stats-bar__item {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--tds-color-midnight);
  font-weight: var(--tds-font-weight-bold);
}

.tds-stats-bar__icon {
  width: 16px;
  height: 16px;
  margin-right: var(--tds-spacing-2);
  flex-shrink: 0;
}

[data-theme="dark"] .tds-stats-bar__icon {
  color: var(--tds-color-ocean);
}

.tds-stats-bar__value {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-midnight);
  white-space: nowrap;
}

[data-theme="dark"] .tds-stats-bar__value {
  color: var(--tds-color-stormcloud);
}

.tds-stats-bar__item--completed .tds-stats-bar__value {
  color: var(--tds-color-evergreen);
  font-weight: var(--tds-font-weight-bold);
}

[data-theme="dark"] .tds-stats-bar__item--completed .tds-stats-bar__value {
  color: var(--tds-color-success);
}

.tds-stats-bar__divider {
  width: 1px;
  height: 16px;
  background-color: var(--tds-color-fog);
  flex-shrink: 0;
}

[data-theme="dark"] .tds-stats-bar__divider {
  background-color: var(--trl-border);
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */

/* Tablet breakpoint - 2x2 grid layout */
@media screen and (max-width: 1224px) and (min-width: 801px),
(max-width: 680px) {
  .tds-stats-bar {
    flex-wrap: wrap;
    border-radius: var(--tds-radius-lg-2);
  }
  .tds-stats-bar__item {
    padding: var(--tds-spacing-3) var(--tds-spacing-6);
    width: 50%;
  }
  .tds-stats-bar__item:first-child {
    border-bottom: 1px solid var(--tds-color-fog);
    border-right: 1px solid var(--tds-color-fog);
  }
  .tds-stats-bar__item:nth-child(3) {
    border-bottom: 1px solid var(--tds-color-fog);
  }
  .tds-stats-bar__item:nth-child(5) {
    border-right: 1px solid var(--tds-color-fog);
  }
  .tds-stats-bar__divider {
    display: none;
  }
  [dir="rtl"] .tds-stats-bar__item:first-child {
    border-right: none;
    border-left: 1px solid var(--tds-color-fog);
  }
  [dir="rtl"] .tds-stats-bar__item:nth-child(5) {
    border-right: none;
    border-left: 1px solid var(--tds-color-fog);
  }
}

/* Mobile breakpoint */
@media screen and (max-width: 640px) {
  .tds-stats-bar {
    padding: var(--tds-spacing-2) var(--tds-spacing-4);
    border-radius: var(--tds-radius-lg-2);
  }
  .tds-stats-bar__icon {
    display: none;
  }
  [dir="rtl"] .tds-stats-bar {
    align-items: flex-end;
  }
}

/* ==========================================================================
   Trail Preview Stats Bar
   ========================================================================== */

.trl-stats-bar {
  display: flex;
  align-items: center;
  justify-content: space-evenly;
  flex-wrap: nowrap;
  background: var(--tds-color-sand);
  border-radius: var(--tds-radius-full);
  padding: var(--tds-spacing-4) 0;
  margin-bottom: var(--tds-spacing-8);
  font-size: var(--tds-font-size-sm);
  gap: 0;
}

[data-theme="dark"] .trl-stats-bar {
  background: var(--trl-surface-soft);
}

.trl-stats-bar__item {
  display: flex;
  align-items: center;
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
  justify-content: center;
  text-align: center;
  padding: 0 var(--tds-spacing-5);
  white-space: nowrap;
}

[data-theme="dark"] .trl-stats-bar__item {
  color: var(--tds-color-black);
}

.trl-stats-bar__icon {
  width: 16px;
  height: 16px;
  color: var(--tds-color-midnight);
  flex-shrink: 0;
  margin-inline-end: var(--tds-spacing-2);
}

[data-theme="dark"] .trl-stats-bar__icon {
  color: var(--tds-color-black);
}

.trl-stats-bar__value {
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
  white-space: nowrap;
}

[data-theme="dark"] .trl-stats-bar__value {
  color: var(--tds-color-black);
}

.trl-stats-bar__divider {
  width: 1px;
  height: 16px;
  background: var(--tds-color-fog);
  flex-shrink: 0;
}

[data-theme="dark"] .trl-stats-bar__divider {
  background: var(--trl-border);
}

@container (max-width: 600px) {
  .trl-stats-bar {
    flex-wrap: wrap;
    border-radius: var(--tds-radius-lg-2);
    padding: 0;
  }

  .trl-stats-bar__item {
    padding: var(--tds-spacing-3) var(--tds-spacing-6);
    width: 50%;
  }

  .trl-stats-bar__item:first-child {
    border-bottom: 1px solid var(--tds-color-fog);
    border-inline-end: 1px solid var(--tds-color-fog);
  }

  .trl-stats-bar__item:nth-child(3) {
    border-bottom: 1px solid var(--tds-color-fog);
  }

  .trl-stats-bar__item:nth-child(5) {
    border-inline-end: 1px solid var(--tds-color-fog);
  }

  .trl-stats-bar__divider {
    display: none;
  }

  .trl-stats-bar__icon {
    display: none;
  }
}

.tds-stats-bar--compact {
  padding: var(--tds-spacing-3) var(--tds-spacing-4);
  gap: var(--tds-spacing-1);
}

.tds-stats-bar--compact .tds-stats-bar__icon {
  width: 16px;
  height: 16px;
}

.tds-stats-bar--compact .tds-stats-bar__value {
  font-size: var(--tds-font-size-xs);
}

.tds-stats-bar--inline {
  background-color: transparent;
  box-shadow: none;
  padding: 0;
  border: none;
}

[data-theme="dark"] .tds-stats-bar--inline {
  background-color: transparent;
  border: none;
}


/* === components/tds/tally.css === */
/* ==========================================================================
   TDS Tally Component
   Ported from th-components-main/src/elements/tds/tally
   Displays statistics with large count numbers and labels
   ========================================================================== */

/* Single Tally */
.tds-tally {
  display: inline-flex;
  flex-direction: column;
  text-decoration: none;
  line-height: 1;
  text-align: center;
}

.tds-tally:hover {
  text-decoration: none;
}

.tds-tally dd {
  margin-inline-start: 0;
}

.tds-tally__count {
  font-size: var(--tds-font-size-3xl, 1.875rem);
  font-weight: bold;
  color: var(--tds-tally-color, var(--tds-color-midnight));
  font-family: "AvantGarde-Demi", sans-serif;
}

a > .tds-tally__count--neutral,
.tds-tally--link .tds-tally__count {
  color: var(--tds-color-ocean);
}

.tds-tally__count--brand {
  color: var(--tds-color-ocean);
}

.tds-tally__count--success {
  color: var(--tds-color-evergreen);
}

.tds-tally__label {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-tally-color, var(--tds-color-meteorite));
  margin-top: var(--tds-spacing-1);
}

/* Dark mode */
[data-theme="dark"] .tds-tally__count {
  color: var(--tds-tally-color, var(--tds-color-black));
}

[data-theme="dark"] .tds-tally__label {
  color: var(--tds-tally-color, var(--tds-color-stormcloud));
}

[data-theme="dark"] .tds-tally__count--brand,
[data-theme="dark"] a > .tds-tally__count--neutral {
  color: var(--tds-color-ocean);
}

/* ==========================================================================
   TDS Tally List Component
   Horizontal list of tally items with dividers
   ========================================================================== */

.tds-tally-list {
  background-color: var(--tds-color-white);
  justify-content: center;
  display: flex;
  padding: var(--tds-spacing-6) 0;
  border-radius: var(--tds-radius-xl);
  margin: var(--tds-spacing-8) 0;
}

[data-theme="dark"] .tds-tally-list {
  background-color: var(--trl-surface-soft);
}

.tds-tally-list__item {
  text-align: center;
  border-inline-end: 2px solid var(--tds-tally-border-color, #F1F3FB);
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 2rem;
}

[data-theme="dark"] .tds-tally-list__item {
  border-color: var(--trl-border);
}

.tds-tally-list__item:last-child {
  border-inline-end: 0;
}

/* Responsive: Stack on mobile */
@media screen and (max-width: 760px) {
  .tds-tally-list {
    flex-direction: column;
  }

  .tds-tally-list__item {
    border-inline-end: none;
    border-bottom: 1px solid var(--tds-tally-border-color, #F1F3FB);
    display: grid;
    height: 80px;
    padding: var(--tds-spacing-4) 0;
  }

  .tds-tally-list__item:last-child {
    border-bottom: none;
  }
}

/* RTL Support */
[dir="rtl"] .tds-tally-list__item {
  border-inline-end: 2px solid var(--tds-tally-border-color, #F1F3FB);
  border-inline-start: none;
}

[dir="rtl"] .tds-tally-list__item:last-child {
  border-inline-end: none;
}

/* ==========================================================================
   TDS Stats Bar Variant
   Compact horizontal stats display (used in Trail preview)
   ========================================================================== */

.tds-stats-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  background: var(--tds-color-sand);
  border-radius: 56px;
  padding: 14px 24px;
  margin-bottom: var(--tds-spacing-8);
  font-size: 14px;
  gap: 0;
}

[data-theme="dark"] .tds-stats-bar {
  background: var(--trl-surface-soft);
}

.tds-stats-bar__item {
  display: flex;
  align-items: center;
  font-weight: 700;
  color: var(--tds-color-midnight);
  justify-content: center;
  text-align: center;
  padding: 0 20px;
  white-space: nowrap;
}

[data-theme="dark"] .tds-stats-bar__item {
  color: var(--tds-color-black);
}

.tds-stats-bar__icon {
  width: 16px;
  height: 16px;
  color: var(--tds-color-midnight);
  flex-shrink: 0;
  margin-inline-end: 6px;
}

[data-theme="dark"] .tds-stats-bar__icon {
  color: var(--tds-color-black);
}

.tds-stats-bar__value {
  font-size: 14px;
  font-weight: 700;
  color: var(--tds-color-midnight);
  white-space: nowrap;
}

[data-theme="dark"] .tds-stats-bar__value {
  color: var(--tds-color-black);
}

.tds-stats-bar__divider {
  width: 1px;
  height: 16px;
  background: #c9c9c9;
  flex-shrink: 0;
}

[data-theme="dark"] .tds-stats-bar__divider {
  background: var(--trl-border);
}

/* Stats bar responsive */
@container (max-width: 600px) {
  .tds-stats-bar {
    flex-wrap: wrap;
    border-radius: 12px;
    padding: 0;
  }

  .tds-stats-bar__item {
    padding: var(--tds-spacing-3) var(--tds-spacing-6);
    width: 50%;
  }

  .tds-stats-bar__item:first-child {
    border-bottom: 1px solid var(--tds-color-fog);
    border-inline-end: 1px solid var(--tds-color-fog);
  }

  .tds-stats-bar__item:nth-child(3) {
    border-bottom: 1px solid var(--tds-color-fog);
  }

  .tds-stats-bar__item:nth-child(5) {
    border-inline-end: 1px solid var(--tds-color-fog);
  }

  .tds-stats-bar__divider {
    display: none;
  }

  .tds-stats-bar__icon {
    display: none;
  }
}


/* === components/tds/taxonomy_section.css === */
/* ==========================================================================
   TDS Taxonomy Section Component
   ========================================================================== */

.tds-taxonomy {
  margin-bottom: var(--tds-spacing-6);
}

.tds-taxonomy__title {
  color: var(--tds-color-meteorite);
  font-weight: var(--tds-font-weight-bold);
  font-size: var(--tds-font-size-md);
  margin: 0 0 var(--tds-spacing-2) 0;
}

[data-theme="dark"] .tds-taxonomy__title {
  color: var(--tds-color-black);
}

.tds-taxonomy__subtitle {
  color: var(--tds-color-meteorite);
  font-size: var(--tds-font-size-sm);
  margin: 0 0 var(--tds-spacing-4) 0;
  line-height: 1.5;
}

[data-theme="dark"] .tds-taxonomy__subtitle {
  color: var(--tds-color-stormcloud);
}

.tds-taxonomy__subtitle a {
  text-decoration: underline;
}

[data-theme="dark"] .tds-taxonomy__subtitle a {
  color: var(--tds-color-ocean);
}

.tds-taxonomy__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tds-spacing-2);
  margin-bottom: var(--tds-spacing-3);
}

.tds-taxonomy__tag--hidden {
  display: none;
}

.tds-taxonomy[data-expanded="true"] .tds-taxonomy__tag--hidden,
.tds-taxonomy--expanded .tds-taxonomy__tag--hidden {
  display: inline-block;
}

.tds-taxonomy__toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-brand);
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: color var(--tds-duration-short) ease;
}

[data-theme="dark"] .tds-taxonomy__toggle {
  color: var(--tds-color-ocean);
}

.tds-taxonomy__toggle:hover {
  text-decoration: underline;
}

.tds-taxonomy__toggle:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

.tds-taxonomy__toggle--hidden {
  display: none;
}

.tds-taxonomy__toggle-icon {
  width: 12px;
  height: 12px;
  transition: transform var(--tds-duration-short) ease;
}

.tds-taxonomy[data-expanded="true"] .tds-taxonomy__toggle-icon,
.tds-taxonomy--expanded .tds-taxonomy__toggle-icon {
  transform: rotate(180deg);
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */

.tds-taxonomy--compact {
  margin-bottom: var(--tds-spacing-4);
}

.tds-taxonomy--compact .tds-taxonomy__title {
  font-size: var(--tds-font-size-md);
  margin-bottom: var(--tds-spacing-1);
}

.tds-taxonomy--compact .tds-taxonomy__tags {
  gap: var(--tds-spacing-1);
  margin-bottom: var(--tds-spacing-2);
}

.tds-taxonomy--inline {
  margin-bottom: 0;
}

.tds-taxonomy--inline .tds-taxonomy__title {
  display: none;
}

.tds-taxonomy--inline .tds-taxonomy__tags {
  margin-bottom: 0;
}

/* ==========================================================================
   Trail Preview Taxonomy
   ========================================================================== */

.trl-taxonomy {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-1);
  margin-top: var(--tds-spacing-4);
}

.trl-taxonomy__title {
  font-size: var(--tds-font-size-md);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-meteorite);
  margin: 0;
  padding-bottom: var(--tds-spacing-1);
}

[data-theme="dark"] .trl-taxonomy__title {
  color: var(--tds-color-stormcloud);
}

.trl-taxonomy__subtitle {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  margin: 0;
  line-height: 1.4;
}

[data-theme="dark"] .trl-taxonomy__subtitle {
  color: var(--tds-color-stormcloud);
}

.trl-taxonomy__subtitle a {
  color: var(--tds-color-ocean);
  text-decoration: underline;
}

[data-theme="dark"] .trl-taxonomy__subtitle a {
  color: var(--tds-color-ocean);
}

.trl-taxonomy__tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin-top: var(--tds-spacing-4);
  gap: 0;
}

.trl-taxonomy__toggle {
  display: inline-block;
  background: none;
  border: none;
  color: var(--tds-color-ocean);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-semibold);
  padding: 0;
  cursor: pointer;
  text-align: start;
  margin-top: var(--tds-spacing-2);
}

.trl-taxonomy__toggle:hover {
  text-decoration: underline;
}

[data-theme="dark"] .trl-taxonomy__toggle {
  color: var(--tds-color-ocean);
}


/* === components/tds/toaster.css === */
/* ==========================================================================
   TDS Toaster Component
   Ported from th-components-main/src/elements/tds/toaster
   ========================================================================== */

.tds-toaster {
  position: fixed;
  bottom: var(--tds-spacing-6);
  right: var(--tds-spacing-6);
  z-index: var(--tds-z-index-toast);
  display: flex;
  flex-direction: column-reverse;
  gap: var(--tds-spacing-2);
  pointer-events: none;
}

[dir="rtl"] .tds-toaster {
  right: auto;
  left: var(--tds-spacing-6);
}

/* Toast message */
.tds-toast {
  display: flex;
  align-items: flex-start;
  gap: var(--tds-spacing-3);
  padding: var(--tds-spacing-4);
  background-color: var(--tds-color-white);
  border-radius: var(--tds-radius-lg);
  box-shadow: var(--tds-shadow-lg);
  min-width: 280px;
  max-width: 400px;
  pointer-events: auto;
  animation: tds-toast-slide-in var(--tds-duration-normal) ease;
}

[data-theme="dark"] .tds-toast {
  background-color: var(--trl-surface);
  border: 1px solid var(--trl-border);
}

@keyframes tds-toast-slide-in {
  from {
    transform: translateX(100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

[dir="rtl"] .tds-toast {
  animation-name: tds-toast-slide-in-rtl;
}

@keyframes tds-toast-slide-in-rtl {
  from {
    transform: translateX(-100%);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

.tds-toast--exiting {
  animation: tds-toast-slide-out var(--tds-duration-short) ease forwards;
}

@keyframes tds-toast-slide-out {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(100%);
    opacity: 0;
  }
}

[dir="rtl"] .tds-toast--exiting {
  animation-name: tds-toast-slide-out-rtl;
}

@keyframes tds-toast-slide-out-rtl {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(-100%);
    opacity: 0;
  }
}

/* Toast icon */
.tds-toast__icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tds-toast__icon svg {
  width: 100%;
  height: 100%;
}

/* Toast content */
.tds-toast__content {
  flex: 1;
  min-width: 0;
}

.tds-toast__title {
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-black);
  margin: 0 0 var(--tds-spacing-1) 0;
}

[data-theme="dark"] .tds-toast__title {
  color: var(--tds-color-black);
}

.tds-toast__message {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  margin: 0;
  line-height: 1.4;
}

[data-theme="dark"] .tds-toast__message {
  color: var(--tds-color-stormcloud);
}

/* Toast close button */
.tds-toast__close {
  flex-shrink: 0;
  appearance: none;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: var(--tds-spacing-1);
  color: var(--tds-color-meteorite);
  border-radius: var(--tds-radius-sm);
  transition: color var(--tds-duration-short) ease, background-color var(--tds-duration-short) ease;
}

.tds-toast__close:hover {
  color: var(--tds-color-black);
  background-color: var(--tds-color-fog);
}

.tds-toast__close:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

[data-theme="dark"] .tds-toast__close {
  color: var(--tds-color-stormcloud);
}

[data-theme="dark"] .tds-toast__close:hover {
  color: var(--tds-color-black);
  background-color: var(--trl-surface-soft);
}

.tds-toast__close svg {
  width: 14px;
  height: 14px;
}

/* Toast variants */
.tds-toast--success .tds-toast__icon {
  color: var(--tds-color-success);
}

.tds-toast--error .tds-toast__icon {
  color: var(--tds-color-destructive);
}

.tds-toast--warning .tds-toast__icon {
  color: var(--tds-color-warning-60);
}

.tds-toast--info .tds-toast__icon {
  color: var(--tds-color-brand);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .tds-toast {
    animation: none;
  }

  .tds-toast--exiting {
    animation: none;
    opacity: 0;
  }
}

/* Responsive */
@media (max-width: 30rem) {
  .tds-toaster {
    left: var(--tds-spacing-4);
    right: var(--tds-spacing-4);
    bottom: var(--tds-spacing-4);
  }

  [dir="rtl"] .tds-toaster {
    left: var(--tds-spacing-4);
    right: var(--tds-spacing-4);
  }

  .tds-toast {
    max-width: none;
    min-width: auto;
    width: 100%;
  }
}



/* === components/tds/trail_timeline.css === */
/* ==========================================================================
   Trail Modules Timeline (Trail Preview)
   ========================================================================== */

.trl-modules {
  position: relative;
  padding-inline-start: 0;
}

/* Vertical line is now on each module */
.trl-modules__line {
  display: none;
}

/* Vertical line for each module node - exact TDS values */
.trl-module__line {
  width: 2px;
  background: #e2e2e2;
  flex-grow: 1;
  margin-top: -2px;
  min-height: 20px;
  margin-left: 14.5px;
  margin-right: 14.5px;
}

[data-theme="dark"] .trl-module__line {
  background: var(--trl-border);
}

.trl-module--completed .trl-module__line {
  background: var(--tds-color-success-line);
}

/* Ensure completed modules have green line in dark mode */
[data-theme="dark"] .trl-module--completed .trl-module__line {
  background: var(--tds-color-success-line);
}

/* Hide line on last milestone when trail is not completed */
.trl-module--last .trl-module__line {
  display: none;
}

/* Show line on last milestone if trail is completed */
.trl-modules--completed .trl-module--last .trl-module__line {
  display: block;
}


/* RTL support for module line */
[dir="rtl"] .trl-module__line {
  order: -1;
}

/* Module Item (milestone-wrapper style) */
.trl-module {
  position: relative;
  display: flex;
  gap: var(--tds-spacing-4);
  margin-bottom: 0;
  padding-inline-start: 47px; /* 31px node + 16px gap */
  padding-bottom: var(--tds-spacing-6);
}

.trl-module:last-of-type {
  margin-bottom: 0;
}

/* Timeline Node (milestone-check-icon style) */
.trl-module__node {
  position: absolute;
  inset-inline-start: 0;
  top: 0;
  bottom: 0;
  width: 31px; /* Exact TDS: 14.5px + 2px + 14.5px = 31px */
  height: auto; /* Override application.css height: 26px */
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  padding-top: var(--tds-spacing-5);
  background: none; /* Container is transparent, icon has the background */
  border: none; /* Container has no border, icon has the border */
  border-radius: 0; /* Override application.css border-radius */
}

.trl-module--completion .trl-module__node {
  padding-top: 0;
}

/* Node circle is now replaced by the icon wrapper */
.trl-module__node-circle {
  display: none;
}

.trl-module__node svg {
  width: 14px;
  height: 14px;
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .trl-module__node svg {
  color: var(--tds-color-stormcloud);
}

/* Module icon wrapper */
.trl-module__icon {
  width: 30px;
  height: 30px;
  min-height: 30px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: var(--tds-color-white);
  border: 3px solid var(--tds-color-fog);
  margin-top: 3px;
}

[data-theme="dark"] .trl-module__icon {
  background: var(--trl-surface);
  border-color: var(--trl-border);
}

/* Completed module checkmark - green circle with white checkmark */
.trl-module__icon--completed {
  background: var(--tds-color-success);
  border: none;
  width: 31px;
  height: 31px;
  padding: 7px 8px;
  box-sizing: border-box;
  margin-top: 0;
}

/* Ensure green background in dark mode */
[data-theme="dark"] .trl-module__icon--completed {
  background: var(--tds-color-success);
  border: none;
}

.trl-module__icon--completed svg {
  width: 100%;
  height: 100%;
  color: var(--tds-color-white);
}

.trl-module--completed .trl-module__node svg {
  color: var(--tds-color-white);
  width: 100%;
  height: 100%;
}

/* Locked module icon - gray circle with lock icon */
.trl-module__icon--locked {
  background: var(--tds-color-fog);
  border: none;
}

.trl-module__icon--locked svg {
  width: 14px;
  height: 14px;
  color: var(--tds-color-fraggle);
  fill: var(--tds-color-fraggle);
}

[data-theme="dark"] .trl-module__icon--locked {
  background: var(--trl-surface-soft);
}

.trl-module--locked .trl-module__node svg {
  color: var(--tds-color-fraggle);
  fill: var(--tds-color-fraggle);
}

/* Module Card (milestone-container style) */
.trl-module__card {
  display: flex;
  flex-direction: column;
  gap: 0;
  background: var(--tds-color-white);
  border: 1px solid var(--tds-color-fog);
  border-radius: var(--tds-radius-lg-2);
  overflow: hidden;
  width: 100%;
  margin-bottom: 0;
}

.trl-module__card[data-expanded="true"] {
  border-color: var(--tds-color-granite);
  box-shadow: var(--tds-shadow-xs);
}

[data-theme="dark"] .trl-module__card {
  background: var(--trl-surface);
  border-color: var(--trl-border);
  box-shadow: none;
}

[data-theme="dark"] .trl-module__card[data-expanded="true"] {
  border-color: var(--trl-border-strong);
}

/* Module Header (milestone-header style) */
.trl-module__header {
  padding: var(--tds-spacing-5);
}

.trl-module__info {
  width: 100%;
}

/* Milestone title (milestone-title style) */
.trl-module__title {
  font-family: "AvantGarde-Demi", var(--tds-font-family-sans);
  font-size: var(--tds-font-size-xl);
  font-weight: var(--tds-font-weight-semibold);
  color: var(--tds-color-midnight);
  margin: 0 0 var(--tds-spacing-1) 0;
  line-height: 1.4;
  cursor: default;
}

[data-theme="dark"] .trl-module__title {
  color: var(--tds-color-black);
}

/* Milestone description (milestone-description style) */
.trl-module__desc {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-black);
  margin: 0;
  line-height: var(--tds-spacing-6);
}

[data-theme="dark"] .trl-module__desc {
  color: var(--tds-color-black);
}

/* Milestone footer (milestone-footer style) */
.trl-module__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: var(--tds-spacing-4) 0 -4px 0;
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .trl-module__meta {
  color: var(--tds-color-stormcloud);
}

.trl-module__points {
  color: var(--tds-color-meteorite);
  font-weight: var(--tds-font-weight-semibold);
}

[data-theme="dark"] .trl-module__points {
  color: var(--tds-color-stormcloud);
}

.trl-module__steps {
  color: var(--tds-color-meteorite);
  text-align: end;
}

[data-theme="dark"] .trl-module__steps {
  color: var(--tds-color-stormcloud);
}

/* Show/Hide Details Toggle (milestone-details-drawer style) */
.trl-module__card .trl-module__toggle {
  display: flex;
  align-items: center;
  gap: 0;
  background: transparent;
  border: none;
  border-top: 1px solid var(--tds-color-fog);
  color: var(--tds-color-ocean);
  font-size: var(--tds-font-size-md);
  font-weight: var(--tds-font-weight-semibold);
  cursor: pointer;
  padding: var(--tds-spacing-4) var(--tds-spacing-5);
  min-height: 3.125rem;
  width: 100%;
  margin: 0;
  align-self: stretch;
  justify-content: center;
  border-radius: 0;
  text-decoration: none;
  text-align: center;
}

.trl-module__toggle-text {
  margin-inline-start: var(--tds-spacing-3);
}

[dir="rtl"] .trl-module__card .trl-module__toggle {
  flex-direction: row-reverse;
  justify-content: center;
}

[data-theme="dark"] .trl-module__toggle {
  color: var(--tds-color-ocean);
  border-color: var(--trl-border);
}

.trl-module__toggle-icon {
  transition: transform var(--tds-duration-short) ease;
  flex-shrink: 0;
}

.trl-module__card[data-expanded="true"] .trl-module__toggle-icon {
  transform: rotate(180deg);
}

[dir="rtl"] .trl-module__toggle-icon {
  transform: scaleX(-1);
}

[dir="rtl"] .trl-module__card[data-expanded="true"] .trl-module__toggle-icon {
  transform: scaleX(-1) rotate(180deg);
}

.trl-module__toggle:hover .trl-module__toggle-text {
  text-decoration: underline;
}

.trl-module__toggle:focus {
  outline: none;
}

.trl-module__toggle:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

/* Module Content (expanded) - milestone-steps style */
.trl-module__content {
  padding: 0;
  border-top: 1px solid var(--tds-color-fog);
  max-height: 0;
  overflow: hidden;
  visibility: hidden;
  transition: max-height 0.5s ease, visibility 0.5s;
}

.trl-module__card[data-expanded="true"] .trl-module__content {
  visibility: visible;
  max-height: 5000px;
}

[data-theme="dark"] .trl-module__content {
  border-color: var(--trl-border);
}

.trl-module__empty {
  padding: var(--tds-spacing-5);
  color: var(--tds-color-meteorite);
  font-size: var(--tds-font-size-sm);
}

[data-theme="dark"] .trl-module__empty {
  color: var(--tds-color-stormcloud);
}

/* Locked Module State */
.trl-module--locked .trl-module__card {
  border-style: solid;
  background: var(--tds-color-white);
}

[data-theme="dark"] .trl-module--locked .trl-module__card {
  background: var(--trl-surface);
}

/* ==========================================================================
   Sub-steps (units within a module) - milestone-step style
   ========================================================================== */

.trl-substeps {
  list-style: none;
  padding: 0;
  margin: 0;
}

.trl-substep {
  display: flex;
  padding: var(--tds-spacing-5);
  border-bottom: 1px solid var(--tds-color-fog);
}

[data-theme="dark"] .trl-substep {
  border-color: var(--trl-border);
}

.trl-substep:last-child {
  border-bottom: none;
}

/* milestone-step check icon */
.trl-substep__check {
  width: 30px;
  height: 30px;
  background: var(--tds-color-sand);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 3px;
}

[data-theme="dark"] .trl-substep__check {
  background: var(--trl-surface-soft);
}

.trl-substep--completed .trl-substep__check {
  background: var(--tds-color-success);
}

.trl-substep__check svg {
  width: 14px;
  height: 14px;
  color: var(--tds-color-white);
}

/* milestone-info style */
.trl-substep__body {
  flex: 1;
  margin-inline-start: var(--tds-spacing-4);
}

/* milestone-step-type style */
.trl-substep__type {
  display: block;
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  margin-bottom: 0;
}

[data-theme="dark"] .trl-substep__type {
  color: var(--tds-color-stormcloud);
}

/* milestone-step-title style */
.trl-substep__title {
  display: flex;
  font-size: var(--tds-font-size-lg);
  font-weight: var(--tds-font-weight-semibold);
  color: var(--tds-color-ocean);
  text-decoration: none;
  margin: var(--tds-spacing-1) 0;
  line-height: var(--tds-spacing-6);
  transition: color var(--tds-duration-short) ease;
}

[data-theme="dark"] .trl-substep__title {
  color: var(--tds-color-ocean);
}

.trl-substep__title:hover {
  text-decoration: underline;
}

.trl-substep__desc {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  line-height: 1.5;
  margin: 0 0 var(--tds-spacing-2) 0;
}

[data-theme="dark"] .trl-substep__desc {
  color: var(--tds-color-stormcloud);
}

.trl-substep__meta {
  display: flex;
  justify-content: space-between;
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  margin-top: var(--tds-spacing-4);
}

.trl-substep__meta > span:first-child {
  font-weight: var(--tds-font-weight-bold);
}

[data-theme="dark"] .trl-substep__meta {
  color: var(--tds-color-stormcloud);
}

/* Locked substep state */
.trl-substep--locked .trl-substep__title {
  color: var(--tds-color-meteorite);
  pointer-events: none;
  text-decoration: none;
}

[data-theme="dark"] .trl-substep--locked .trl-substep__title {
  color: var(--tds-color-fraggle);
}

.trl-substep--locked .trl-substep__desc {
  color: var(--tds-color-stormcloud);
}

[data-theme="dark"] .trl-substep--locked .trl-substep__desc {
  color: var(--tds-color-fraggle);
}

.trl-substep--locked .trl-substep__check {
  background: var(--tds-color-fog);
}

.trl-substep--locked .trl-substep__check svg {
  fill: var(--tds-color-fraggle);
  color: var(--tds-color-fraggle);
}

[data-theme="dark"] .trl-substep--locked .trl-substep__check {
  background: var(--trl-surface-soft);
}

[data-theme="dark"] .trl-substep--locked .trl-substep__check svg {
  fill: var(--tds-color-fraggle);
  color: var(--tds-color-fraggle);
}

/* ==========================================================================
   Completion Message
   ========================================================================== */

.trl-module--completion {
  margin-bottom: 0;
  padding-bottom: 0;
}

.trl-module--completion .trl-completion-msg {
  padding: 0;
  margin: 0;
}

.trl-completion-msg__content {
  padding-top: 0;
}

/* Hide nodes/lines on tablet/mobile like legacy */
@media (max-width: 1020px) {
  .trl-module__node,
  .trl-module__line {
    display: none;
  }

  .trl-module {
    gap: 0;
    padding-inline-start: 0;
  }
}

@media (max-width: 48rem) {
  .trl-module__toggle {
    width: calc(100% + 40px);
    margin: 0 -20px;
  }
}

.trl-completion-msg__title {
  font-family: "AvantGarde-Demi", var(--tds-font-family-sans);
  font-size: var(--tds-font-size-xl);
  font-weight: var(--tds-font-weight-semibold);
  color: var(--tds-color-midnight);
  margin: 0 0 var(--tds-spacing-1) 0;
}

[data-theme="dark"] .trl-completion-msg__title {
  color: var(--tds-color-black);
}

.trl-completion-msg__text {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-black);
  line-height: var(--tds-spacing-6);
  margin: 0 0 var(--tds-spacing-2) 0;
}

[data-theme="dark"] .trl-completion-msg__text {
  color: var(--tds-color-black);
}

.trl-completion-msg__date {
  display: block;
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .trl-completion-msg__date {
  color: var(--tds-color-stormcloud);
}

[dir="rtl"] .trl-completion-msg__content {
  text-align: right;
}

@media (prefers-reduced-motion: reduce) {
  .trl-module__toggle-icon {
    transition: none;
  }
}


/* === components/tds/trailhead_header.css === */
/* ==========================================================================
   TDS Trailhead Header Component
   ========================================================================== */

.tds-trailhead-header {
  background-color: var(--tds-color-white);
  border-bottom: 1px solid var(--tds-color-fog);
}

[data-theme="dark"] .tds-trailhead-header {
  background-color: var(--trl-surface);
  border-color: var(--trl-border);
}

.tds-trailhead-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* No max-width - header spans full viewport like original Trailhead */
  padding: var(--tds-spacing-4) var(--tds-spacing-5);
  gap: var(--tds-spacing-6);
}

.tds-trailhead-header__logo {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  text-decoration: none;
  flex-shrink: 0;
}

.tds-trailhead-header__logo-icon {
  width: 36px;
  height: 36px;
}

.tds-trailhead-header__logo-text {
  font-family: var(--tds-font-family-heading);
  font-size: var(--tds-font-size-xl);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
}

[data-theme="dark"] .tds-trailhead-header__logo-text {
  color: var(--tds-color-black);
}

.tds-trailhead-header__nav {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  flex: 1;
}

.tds-trailhead-header__nav-link {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  font-size: var(--tds-font-size-md);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
  text-decoration: none;
  padding: var(--tds-spacing-2) var(--tds-spacing-3);
  border-radius: var(--tds-radius-md);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: color var(--tds-duration-short) ease, background-color var(--tds-duration-short) ease;
  white-space: nowrap;
}

[data-theme="dark"] .tds-trailhead-header__nav-link {
  color: var(--tds-color-black);
}

.tds-trailhead-header__nav-link:hover {
  color: var(--tds-color-brand);
  background-color: var(--tds-color-sand);
}

/* ==========================================================================
   Trail Preview Theme Toggle
   ========================================================================== */

.trl-theme-toggle {
  display: inline-flex;
  gap: 0;
  padding: 2px;
  border: 1px solid #e5e5e5;
  border-radius: 4px;
  background: #f3f3f3;
  height: 32px;
}

[data-theme="dark"] .trl-theme-toggle {
  background: var(--trl-surface-soft);
  border-color: var(--trl-border);
}

.trl-theme-toggle__btn {
  border: none;
  background: transparent;
  color: #444444;
  font-family: "Salesforce Sans", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 3px;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}

.trl-theme-toggle__btn:hover {
  background: #e5e5e5;
  color: #032d60;
}

.trl-theme-toggle__btn:focus {
  outline: none;
}

.trl-theme-toggle__btn:focus-visible {
  outline: 2px solid #0176d3;
  outline-offset: 1px;
}

.trl-theme-toggle__btn--active,
[data-theme="light"] .trl-theme-toggle__btn:first-child,
[data-theme="dark"] .trl-theme-toggle__btn:last-child {
  background: #ffffff;
  color: #032d60;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

[data-theme="dark"] .trl-theme-toggle__btn {
  color: var(--tds-color-stormcloud);
}

[data-theme="dark"] .trl-theme-toggle__btn:hover {
  background: var(--trl-surface);
  color: var(--tds-color-black);
}

[data-theme="dark"] .trl-theme-toggle__btn--active,
[data-theme="dark"] .trl-theme-toggle__btn:last-child {
  background: var(--trl-surface);
  color: var(--tds-color-black);
}

[data-theme="dark"] .tds-trailhead-header__nav-link:hover {
  color: var(--tds-color-ocean);
  background-color: var(--trl-surface-soft);
}

.tds-trailhead-header__nav-link:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

.tds-trailhead-header__nav-link svg {
  width: 12px;
  height: 12px;
  transition: transform var(--tds-duration-short) ease;
}

.tds-trailhead-header__nav-link[aria-expanded="true"] svg {
  transform: rotate(180deg);
}

.tds-trailhead-header__actions {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-3);
  flex-shrink: 0;
}

.tds-trailhead-header__menu-btn {
  display: none;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--tds-radius-md);
  background: transparent;
  border: none;
  color: var(--tds-color-midnight);
  cursor: pointer;
}

[data-theme="dark"] .tds-trailhead-header__menu-btn {
  color: var(--tds-color-black);
}

.tds-trailhead-header__menu-btn svg {
  width: 24px;
  height: 24px;
}

/* RTL: direction:rtl on parent handles mirroring - don't use row-reverse */

@media (max-width: 800px) {
  .tds-trailhead-header__nav {
    display: none;
  }
  .tds-trailhead-header__menu-btn {
    display: flex;
  }
}

@media (max-width: 640px) {
  .tds-trailhead-header__inner {
    padding: var(--tds-spacing-3) var(--tds-spacing-4);
  }
  .tds-trailhead-header__logo-icon {
    width: 28px;
    height: 28px;
  }
  .tds-trailhead-header__logo-text {
    font-size: var(--tds-font-size-lg);
  }
}


/* === components/tds/truncate.css === */
/* ==========================================================================
   TDS Truncate Component
   Ported from th-components-main/src/elements/tds/truncate
   ========================================================================== */

.tds-truncate {
  display: block;
}

.tds-truncate__content {
  position: relative;
}

.tds-truncate__content:not(.tds-truncate__content--expanded) {
  overflow: hidden;
}

/* Fade truncation style */
.tds-truncate__content--fade:not(.tds-truncate__content--expanded) {
  max-height: var(--tds-truncate_max-height, var(--max-height, 100px));
}

.tds-truncate__content--fade:not(.tds-truncate__content--expanded)::before {
  content: '';
  width: 100%;
  height: 50px;
  position: absolute;
  left: 0;
  bottom: 0;
  background: linear-gradient(rgba(255, 255, 255, 0) 60%, var(--tds-truncate_background-color, var(--tds-color-white)));
  pointer-events: none;
}

[data-theme="dark"] .tds-truncate__content--fade:not(.tds-truncate__content--expanded)::before {
  background: linear-gradient(rgba(20, 25, 34, 0) 60%, var(--tds-truncate_background-color, var(--trl-surface)));
}

/* Clamp truncation style (line-based) */
.tds-truncate__content--clamp:not(.tds-truncate__content--expanded) {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--tds-truncate_lines, var(--clamp-lines, 3));
}

/* Safari fix */
@supports (-webkit-hyphens: none) {
  .tds-truncate__content--clamp:not(.tds-truncate__content--expanded) {
    -webkit-line-clamp: max(var(--tds-truncate_lines, var(--clamp-lines, 3)), 2);
  }
}

/* Show More/Less Button */
.tds-truncate__button {
  margin-top: var(--tds-spacing-2);
}

.tds-truncate__button--text {
  display: inline-flex;
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-brand);
  font-weight: bold;
  background-color: transparent;
  padding: 0;
  border: none;
  cursor: pointer;
}

.tds-truncate__button--text:hover {
  text-decoration: underline;
}

.tds-truncate__button--text:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

[data-theme="dark"] .tds-truncate__button--text {
  color: var(--tds-color-ocean);
}

/* RTL support */
[dir="rtl"] .tds-truncate__content--fade:not(.tds-truncate__content--expanded)::before {
  left: auto;
  right: 0;
}



/* === components/tds/utilities.css === */
/* ==========================================================================
   TDS Page Layout Variables
   From tds-theme-provider.css
   ========================================================================== */
:root {
  /* Page layout tokens - matches original Trailhead */
  --tds-page-grid-column-gap: var(--tds-spacing-12, 48px); /* Used as sidebar padding */
  --tds-page-grid-row-gap: var(--tds-spacing-5, 20px);
  --tds-page-sidebar-width: 352px; /* Original Trailhead sidebar content width */
  --tds-page-main-max-width: 768px; /* Original Trailhead main content */
  --tds-page-container-width: var(--tds-container-xl, 1280px);
}

@media screen and (max-width: 800px) {
  :root {
    --tds-page-grid-column-gap: var(--tds-spacing-5, 20px);
    --tds-page-grid-row-gap: var(--tds-spacing-5, 20px);
  }
}

/* ==========================================================================
   TDS Utility Classes
   Matches utility classes from original Trailhead design system
   ========================================================================== */

/* --------------------------------------------------------------------------
   Color Utilities - Text
   -------------------------------------------------------------------------- */

.tds-color_black {
  color: var(--tds-color-black, #181818);
}

.tds-color_meteorite {
  color: var(--tds-color-meteorite, #5c5c5c);
}

.tds-color_ocean {
  color: var(--tds-color-ocean, #0176d3);
}

.tds-color_white {
  color: var(--tds-color-white, #ffffff);
}

.tds-color_brand {
  color: var(--tds-color-brand, #0176d3);
}

.tds-color_success {
  color: var(--tds-color-success, #2e844a);
}

.tds-color_destructive {
  color: var(--tds-color-destructive, #ba0517);
}

.tds-color_warning {
  color: var(--tds-color-warning-60, #a96404);
}

/* --------------------------------------------------------------------------
   Color Utilities - Background
   -------------------------------------------------------------------------- */

.tds-bg_success {
  background-color: var(--tds-color-success, #2e844a);
}

.tds-bg_brand {
  background-color: var(--tds-color-brand, #0176d3);
}

.tds-bg_destructive {
  background-color: var(--tds-color-destructive, #ba0517);
}

.tds-bg_warning {
  background-color: var(--tds-color-warning-60, #a96404);
}

/* --------------------------------------------------------------------------
   RTL Utilities
   -------------------------------------------------------------------------- */

[dir="rtl"] .icon-flip-rtl {
  transform: scaleX(-1);
}

/* --------------------------------------------------------------------------
   Icon Sizes
   -------------------------------------------------------------------------- */

.trl-icon--xx-small {
  width: 12px;
  height: 12px;
}

.trl-icon--x-small {
  width: 14px;
  height: 14px;
}

.trl-icon--small {
  width: 16px;
  height: 16px;
}

.trl-icon--medium {
  width: 20px;
  height: 20px;
}

.trl-icon--large {
  width: 24px;
  height: 24px;
}

.tds-bg_white {
  background-color: var(--tds-color-white, #ffffff);
}

.tds-bg_sand {
  background-color: var(--tds-color-sand, #f3f3f3);
}

.tds-bg_fog {
  background-color: var(--tds-color-fog, #e5e5e5);
}

/* --------------------------------------------------------------------------
   Fill Utilities (for SVGs)
   -------------------------------------------------------------------------- */

.tds-fill_success {
  fill: var(--tds-color-success, #2e844a);
}

.tds-fill_brand {
  fill: var(--tds-color-brand, #0176d3);
}

.tds-fill_destructive,
.tds-fill_ruby {
  fill: var(--tds-color-destructive, #ba0517);
}

.tds-fill_white {
  fill: var(--tds-color-white, #ffffff);
}

/* --------------------------------------------------------------------------
   Typography Utilities
   -------------------------------------------------------------------------- */

.tds-text_bold {
  font-weight: 700;
}

.tds-text_semibold {
  font-weight: 600;
}

.tds-text_regular {
  font-weight: 400;
}

.tds-text_light {
  font-weight: 300;
}

.tds-text-decoration_underline {
  text-decoration: underline;
}

.tds-text-decoration_none {
  text-decoration: none;
}

.tds-text-align_center {
  text-align: center;
}

.tds-text-align_left {
  text-align: left;
}

.tds-text-align_right {
  text-align: right;
}

/* --------------------------------------------------------------------------
   Accessibility Utilities
   -------------------------------------------------------------------------- */

.tds-helper_assistive-text,
.tds-assistive-text {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  overflow: hidden;
  white-space: nowrap;
}

/* --------------------------------------------------------------------------
   Spacing Utilities
   -------------------------------------------------------------------------- */

.tds-spacing-1 { margin: var(--tds-spacing-1, 4px); }
.tds-spacing-2 { margin: var(--tds-spacing-2, 8px); }
.tds-spacing-3 { margin: var(--tds-spacing-3, 12px); }
.tds-spacing-4 { margin: var(--tds-spacing-4, 16px); }
.tds-spacing-5 { margin: var(--tds-spacing-5, 20px); }
.tds-spacing-6 { margin: var(--tds-spacing-6, 24px); }
.tds-spacing-8 { margin: var(--tds-spacing-8, 32px); }

.tds-m-top_1 { margin-top: var(--tds-spacing-1, 4px); }
.tds-m-top_2 { margin-top: var(--tds-spacing-2, 8px); }
.tds-m-top_3 { margin-top: var(--tds-spacing-3, 12px); }
.tds-m-top_4 { margin-top: var(--tds-spacing-4, 16px); }

.tds-m-bottom_1 { margin-bottom: var(--tds-spacing-1, 4px); }
.tds-m-bottom_2 { margin-bottom: var(--tds-spacing-2, 8px); }
.tds-m-bottom_3 { margin-bottom: var(--tds-spacing-3, 12px); }
.tds-m-bottom_4 { margin-bottom: var(--tds-spacing-4, 16px); }

.tds-p-around_1 { padding: var(--tds-spacing-1, 4px); }
.tds-p-around_2 { padding: var(--tds-spacing-2, 8px); }
.tds-p-around_3 { padding: var(--tds-spacing-3, 12px); }
.tds-p-around_4 { padding: var(--tds-spacing-4, 16px); }

/* --------------------------------------------------------------------------
   Display Utilities
   -------------------------------------------------------------------------- */

.tds-show {
  display: block;
}

.tds-hide {
  display: none;
}

.tds-show_inline {
  display: inline;
}

.tds-show_inline-block {
  display: inline-block;
}

.tds-show_flex {
  display: flex;
}

/* --------------------------------------------------------------------------
   Dark Mode Support for Utilities
   -------------------------------------------------------------------------- */

[data-theme="dark"] .tds-color_black {
  color: var(--tds-color-black, #e5e5e5);
}

[data-theme="dark"] .tds-color_meteorite {
  color: var(--tds-color-stormcloud, #b0adab);
}

[data-theme="dark"] .tds-color_ocean {
  color: var(--tds-color-ocean, #1b96ff);
}

[data-theme="dark"] .tds-bg_white {
  background-color: var(--trl-surface, #1a1a1a);
}

[data-theme="dark"] .tds-bg_sand {
  background-color: var(--trl-surface-soft, rgba(255, 255, 255, 0.05));
}

[data-theme="dark"] .tds-bg_fog {
  background-color: var(--trl-surface-soft, rgba(255, 255, 255, 0.1));
}

/* --------------------------------------------------------------------------
   RTL Support for Utilities
   -------------------------------------------------------------------------- */

[dir="rtl"] .tds-text-align_left {
  text-align: right;
}

[dir="rtl"] .tds-text-align_right {
  text-align: left;
}


/* === pages/dashboard.css === */
/* ==========================================================================
   6. PAGE-SPECIFIC STYLES
   ========================================================================== */

/* -------------------------------------------------------------------------
   Dashboard
   ------------------------------------------------------------------------- */

.dashboard {
  height: 100vh;
  display: grid;
  grid-template-columns: 260px 1fr;
  overflow: hidden;
  background-color: var(--tds-color-white);
}

.dashboard__sidebar {
  border-right: 1px solid var(--border-card);
  background-color: var(--tds-color-white);
  padding: var(--tds-spacing-4) var(--tds-spacing-3);
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-4);
  overflow-y: auto;
  animation: slideInLeft 0.5s var(--ease-out-expo) both;
}

.dashboard__brand {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-spacing-3);
  padding: var(--tds-spacing-1) var(--tds-spacing-2);
}

.dashboard__brand-mark {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
}

.dashboard__brand .theme-toggle {
  border-radius: var(--tds-radius-full);
}

.dashboard__mark {
  width: 28px;
  height: 28px;
  border-radius: var(--tds-radius-lg);
  overflow: hidden;
}

.dashboard__brand-name {
  font-family: var(--tds-font-family-heading);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
}

.dashboard__nav {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-1);
}

.dashboard__nav-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-spacing-2);
  padding: var(--tds-spacing-2);
  border-radius: var(--tds-radius-lg-2);
  border: 1px solid transparent;
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-stormcloud);
  transition: all var(--tds-duration-short) var(--ease-smooth);
  position: relative;
}

.dashboard__nav-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%) scaleY(0);
  width: 3px;
  height: 60%;
  background: var(--tds-color-ocean);
  border-radius: var(--tds-radius-full);
  transition: transform var(--tds-duration-short) var(--ease-spring);
}

.dashboard__nav-item:hover {
  background: var(--color-bg-hover);
  transform: translateX(4px);
}

.dashboard__nav-item:hover::before {
  transform: translateY(-50%) scaleY(1);
}

.dashboard__nav-item--active {
  color: var(--tds-color-ocean);
  background: var(--accent-soft);
  border-color: var(--color-border-accent);
}

.dashboard__nav-item--disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.dashboard__nav-item-content {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
}

.dashboard__nav-icon {
  width: 20px;
  height: 20px;
  color: var(--tds-color-fraggle);
}

.dashboard__nav-item--active .dashboard__nav-icon {
  color: var(--tds-color-ocean);
}

.dashboard__count {
  min-width: 22px;
  height: 22px;
  padding: 0 var(--tds-spacing-1);
  border-radius: var(--tds-radius-full);
  background: var(--accent-soft);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  display: grid;
  place-items: center;
}

.dashboard__recent {
  flex: 1;
}

.dashboard__recent-title {
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-fraggle);
  padding: var(--tds-spacing-2);
}

.dashboard__recent-list {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-2);
  padding: 0 var(--tds-spacing-2);
}

.dashboard__recent-link {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-fraggle);
}

.dashboard__recent-link:hover {
  color: var(--tds-color-black);
}

.dashboard__main {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
}

.dashboard__content {
  flex: 1;
  padding: var(--tds-spacing-10) var(--tds-spacing-10) var(--tds-spacing-12);
  max-width: 1100px;
  margin: 0 auto;
  width: 100%;
  overflow-y: auto;
}

.dashboard__headline {
  font-family: var(--tds-font-family-heading);
  font-size: var(--tds-font-size-3xl);
  letter-spacing: -0.03em;
  text-align: center;
  color: var(--tds-color-midnight);
  background: linear-gradient(135deg, var(--tds-color-midnight) 0%, var(--tds-color-ocean) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: fadeInUp 0.6s var(--ease-out-expo) both;
}

[data-theme="dark"] .dashboard__headline {
  background: linear-gradient(135deg, #fff 0%, var(--tds-color-ocean) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.dashboard__subhead {
  margin-top: var(--tds-spacing-2);
  text-align: center;
  color: var(--tds-color-stormcloud);
  animation: fadeInUp 0.6s var(--ease-out-expo) 0.1s both;
}

.dashboard__prompt {
  margin: var(--tds-spacing-6) auto 0;
  max-width: 760px;
  border-radius: var(--tds-radius-lg);
  box-shadow: var(--shadow-elevated);
  border: 1px solid var(--tds-color-fog);
  background: var(--tds-color-white);
  animation: fadeInUp 0.6s var(--ease-out-expo) 0.2s both;
  transition: box-shadow var(--tds-duration-normal) var(--ease-smooth), transform 0.3s var(--ease-smooth);
}

.dashboard__prompt:focus-within {
  box-shadow: var(--shadow-card-hover), var(--shadow-glow);
  transform: translateY(-2px);
}

.dashboard__prompt-input {
  width: 100%;
  min-height: 92px;
  border: 1px solid var(--tds-color-fog);
  border-radius: var(--tds-radius-md);
  padding: var(--tds-spacing-4);
  background: var(--tds-color-white);
  font-size: var(--tds-font-size-md);
  resize: none;
}

.dashboard__prompt-input:focus {
  outline: none;
  border-color: var(--tds-color-ocean);
  box-shadow: 0 0 0 3px rgba(1, 118, 211, 0.15);
}

.dashboard__prompt-input::placeholder {
  color: var(--tds-color-fraggle);
}

.dashboard__prompt-footer {
  margin-top: var(--tds-spacing-2);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-spacing-3);
  padding: var(--tds-spacing-2) var(--tds-spacing-3) var(--tds-spacing-3);
  border-top: 1px solid var(--tds-color-fog);
}

.dashboard__prompt-meta {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-3);
  flex-wrap: wrap;
}

.dashboard__prompt .pill {
  background: var(--color-bg);
  border-color: var(--color-border-strong);
  font-size: var(--tds-font-size-xs);
  padding: 4px var(--tds-spacing-2);
}

.dashboard__notice {
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-fraggle);
}

.dashboard__notice-link {
  color: var(--tds-color-ocean);
  font-weight: var(--tds-font-weight-bold);
}

.dashboard__notice-link:hover {
  text-decoration: underline;
}

.dashboard__prompt-actions {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
}

.dashboard__prompt-actions .btn--icon {
  width: 24px;
  height: 24px;
}

.dashboard__prompt-actions .btn--primary {
  padding: var(--tds-spacing-1) var(--tds-spacing-4);
  font-size: var(--tds-font-size-sm);
  height: 32px;
}

.dashboard__prompt-actions .btn--primary::after {
  content: "→";
  font-weight: var(--tds-font-weight-bold);
  margin-left: var(--tds-spacing-2);
}

.dashboard__prompt-actions .btn--icon .icon {
  width: 14px;
  height: 14px;
}

.dashboard__section {
  margin-top: var(--tds-spacing-8);
}

.dashboard__section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--tds-spacing-3);
  margin-bottom: var(--tds-spacing-3);
}

.dashboard__section-title {
  font-weight: var(--tds-font-weight-bold);
}

.dashboard__section-link {
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-ocean);
}

.dashboard__section-link:hover {
  text-decoration: underline;
}

.dashboard__draft {
  position: relative;
  max-width: 360px;
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: var(--tds-spacing-3);
  padding: var(--tds-spacing-4);
  align-items: start;
  border: 1px solid var(--tds-color-fog);
  animation: fadeInUp 0.5s var(--ease-out-expo) 0.3s both;
  transition: all var(--tds-duration-normal) var(--ease-smooth);
}

.dashboard__draft:hover {
  border-color: var(--color-border-accent);
  box-shadow: var(--shadow-card-hover);
  transform: translateY(-4px);
}

.dashboard__draft-action {
  position: absolute;
  top: var(--tds-spacing-3);
  right: var(--tds-spacing-3);
}

.dashboard__draft-cover {
  width: 56px;
  height: 56px;
  border-radius: var(--tds-radius-xl);
  background: linear-gradient(135deg, var(--tds-color-midnight), var(--tds-color-ocean));
  display: grid;
  place-items: center;
  transition: transform var(--tds-duration-normal) var(--ease-spring);
  position: relative;
  overflow: hidden;
}

.dashboard__draft-cover::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--gradient-shine);
  opacity: 0;
  transition: opacity var(--tds-duration-normal) ease;
}

.dashboard__draft:hover .dashboard__draft-cover {
  transform: scale(1.08) rotate(-2deg);
}

.dashboard__draft:hover .dashboard__draft-cover::after {
  opacity: 1;
}

.dashboard__draft-cover svg {
  width: 40px;
  height: 40px;
}

.dashboard__draft-title {
  font-weight: var(--tds-font-weight-bold);
  margin-top: 2px;
}

.dashboard__draft-desc {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-fraggle);
  margin-top: var(--tds-spacing-1);
}

.dashboard__draft-footer {
  display: flex;
  gap: var(--tds-spacing-3);
  margin-top: var(--tds-spacing-2);
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-fraggle);
}

/* Templates */
.dashboard__templates {
  margin-top: var(--tds-spacing-8);
}

.dashboard__templates-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--tds-spacing-3);
}

.dashboard__templates-title {
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-black);
}

.dashboard__templates-nav {
  display: flex;
  gap: var(--tds-spacing-2);
}

.dashboard__templates-btn {
  width: 32px;
  height: 32px;
  border-radius: var(--tds-radius-lg);
  border: 1px solid var(--tds-color-fog);
  background: var(--tds-color-white);
  display: grid;
  place-items: center;
  color: var(--tds-color-fraggle);
}

.dashboard__templates-btn:hover {
  background: var(--tds-color-sand);
}

.dashboard__templates-subtitle {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-fraggle);
  margin-bottom: var(--tds-spacing-4);
}

.dashboard__templates-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--tds-spacing-3);
}

.template-card {
  padding: var(--tds-spacing-4);
  cursor: pointer;
  border: 1px solid var(--tds-color-fog);
  background: var(--tds-color-white);
  transition: all var(--tds-duration-normal) cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  border-radius: var(--tds-radius-lg);
}

.template-card::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  background: linear-gradient(135deg, var(--tds-color-ocean), var(--trailhead-purple));
  opacity: 0;
  z-index: -1;
  transition: opacity var(--tds-duration-normal) ease;
}

.template-card:hover {
  border-color: transparent;
  box-shadow: 0 8px 24px -8px rgba(1, 118, 211, 0.25);
  transform: translateY(-4px);
}

.template-card:hover::before {
  opacity: 1;
}

[data-theme="dark"] .dashboard__prompt {
  background: var(--trl-surface);
  border-color: var(--trl-border);
  box-shadow: none;
}

[data-theme="dark"] .dashboard__prompt-input {
  background: var(--trl-surface);
  border-color: var(--trl-border);
  color: var(--tds-color-black);
}

[data-theme="dark"] .dashboard__prompt-input:focus {
  border-color: var(--tds-color-ocean);
  box-shadow: 0 0 0 3px rgba(27, 150, 255, 0.25);
}

[data-theme="dark"] .dashboard__templates-btn {
  background: var(--trl-surface);
  border-color: var(--trl-border);
  color: var(--tds-color-stormcloud);
}

[data-theme="dark"] .dashboard__templates-btn:hover {
  background: var(--trl-surface-soft);
}

[data-theme="dark"] .template-card {
  background: var(--trl-surface);
  border-color: var(--trl-border);
}

[data-theme="dark"] .template-card:hover {
  border-color: transparent;
  box-shadow: 0 8px 24px -8px rgba(27, 150, 255, 0.35);
}

[data-theme="dark"] .template-card:hover::before {
  opacity: 1;
}

.template-card__icon {
  width: 32px;
  height: 32px;
  margin-bottom: var(--tds-spacing-3);
  color: var(--tds-color-ocean);
  transition: transform var(--tds-duration-long);
}

.template-card:hover .template-card__icon {
  transform: scale(1.1);
}

.template-card__title {
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-black);
}

.template-card--disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.template-card--disabled:hover {
  transform: none;
  box-shadow: none;
  border-color: var(--tds-color-fog);
}

.template-card--disabled:hover::before {
  opacity: 0;
}

.dashboard__section-link--disabled {
  color: var(--tds-color-fraggle);
  cursor: default;
  font-size: var(--tds-font-size-sm);
}

.dashboard__templates-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* -------------------------------------------------------------------------
   Preview Page
   ------------------------------------------------------------------------- */

.preview {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: var(--tds-spacing-8);
  align-items: start;
  max-width: 1400px;
  margin: 0 auto;
  padding: var(--tds-spacing-6);
}

.preview__left {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-4);
  position: sticky;
  top: var(--tds-spacing-6);
}

.preview__right {
  min-width: 0;
}

/* Overview Card */
.preview__overview-card {
  overflow: hidden;
}

.preview__overview-header {
  height: 80px;
  background: var(--blue-950);
  position: relative;
}

.preview__overview-arc {
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  line-height: 0;
  color: var(--surface-card);
}

.preview__overview-arc svg {
  display: block;
  width: 100%;
  height: 25px;
}

.preview__overview-badge {
  position: absolute;
  bottom: -40px;
  left: 50%;
  transform: translateX(-50%);
  width: 96px;
  height: 96px;
  background: linear-gradient(135deg, var(--blue-950), var(--blue-700));
  border: 4px solid var(--surface-card);
  border-radius: var(--tds-radius-lg);
  display: grid;
  place-items: center;
  box-shadow: var(--tds-shadow-xs);
  z-index: 10;
}

.preview__overview-badge svg {
  width: 64px;
  height: 64px;
}

.preview__overview-content {
  padding: 56px var(--tds-spacing-6) var(--tds-spacing-6);
  text-align: center;
}

.preview__overview-tag {
  display: inline-block;
  padding: var(--tds-spacing-1) var(--tds-spacing-3);
  background: var(--surface-subtle);
  color: var(--tds-color-stormcloud);
  border: 1px solid var(--border-card);
  border-radius: var(--tds-radius-full);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  margin-bottom: var(--tds-spacing-3);
}

.preview__overview-title {
  font-size: var(--tds-font-size-xl);
  font-weight: var(--tds-font-weight-bold);
  color: var(--heading-accent);
  line-height: var(--tds-line-height-snug);
  margin-bottom: var(--tds-spacing-2);
}

.preview__overview-desc {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-fraggle);
  line-height: var(--tds-line-height-relaxed);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.preview__overview-actions {
  margin-top: var(--tds-spacing-6);
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-3);
}

.preview__overview-secondary {
  display: flex;
  gap: var(--tds-spacing-3);
}

/* Test Section */
.preview__test {
  padding: var(--tds-spacing-5);
}

.preview__test-icon {
  width: 40px;
  height: 40px;
  color: var(--tds-color-ocean);
  margin-bottom: var(--tds-spacing-3);
}

.preview__test-icon svg {
  width: 40px;
  height: 40px;
}

.preview__test-title {
  font-weight: var(--tds-font-weight-bold);
  font-size: var(--tds-font-size-md);
  color: var(--heading-accent);
  margin-bottom: var(--tds-spacing-2);
}

/* Stats Bar */
.preview__stats-bar {
  background: var(--surface-subtle);
  border: 1px solid var(--border-card);
  border-radius: var(--tds-radius-full);
  padding: var(--tds-spacing-4) var(--tds-spacing-6);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-spacing-4);
  margin-bottom: var(--tds-spacing-8);
}

.preview__stat {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  font-weight: var(--tds-font-weight-bold);
}

.preview__stat-icon {
  width: 16px;
  height: 16px;
  color: var(--tds-color-ocean);
}

.preview__stat-divider {
  width: 1px;
  height: 24px;
  background: var(--color-border-strong);
}

/* Timeline */
.preview__timeline {
  padding-left: 48px;
  position: relative;
}

.preview__milestone-wrapper {
  position: relative;
  margin-bottom: var(--tds-spacing-6);
  display: flex;
  gap: var(--tds-spacing-4);
}

.preview__timeline-node {
  position: relative;
  flex-shrink: 0;
}

.preview__timeline-node svg {
  position: relative;
  z-index: 2;
  color: var(--border-muted);
  background: var(--surface-card);
  border-radius: var(--tds-radius-full);
}

.preview__timeline-line {
  position: absolute;
  left: 15px;
  top: 36px;
  bottom: -var(--tds-spacing-6);
  width: 2px;
  background: var(--color-border);
  z-index: 1;
  height: calc(100% + var(--tds-spacing-6));
}

/* Milestone Card (Preview) */
.preview__milestone-card {
  flex: 1;
  border-radius: var(--tds-radius-xl);
  overflow: hidden;
  background: var(--surface-card);
  border: 1px solid var(--border-card);
}

.preview__milestone-card[open] {
  box-shadow: var(--tds-shadow-xs);
  border-color: var(--border-muted);
}

.preview__milestone-summary {
  padding: var(--tds-spacing-6);
  cursor: pointer;
  list-style: none;
}

.preview__milestone-summary::-webkit-details-marker {
  display: none;
}

.preview__milestone-header {
  margin-bottom: var(--tds-spacing-4);
}

.preview__milestone-title {
  font-size: var(--tds-font-size-lg);
  font-weight: var(--tds-font-weight-bold);
  color: var(--heading-accent);
  margin-bottom: var(--tds-spacing-2);
}

.preview__milestone-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-spacing-4);
}

.preview__milestone-toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  color: var(--tds-color-ocean);
  font-weight: var(--tds-font-weight-bold);
}

.preview__toggle-text {
  font-size: var(--tds-font-size-sm);
}

.preview__chevron {
  width: 18px;
  height: 18px;
  transition: transform var(--tds-duration-long);
}

.preview__milestone-card[open] .preview__chevron {
  transform: rotate(180deg);
}

.preview__milestone-meta {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-stormcloud);
}

/* Milestone Content */
.preview__milestone-content {
  border-top: 1px solid var(--border-card);
  background: var(--surface-subtle);
  padding: 0 var(--tds-spacing-6);
}

/* Preview Step */
.preview__step {
  display: flex;
  gap: var(--tds-spacing-4);
  padding: var(--tds-spacing-6) 0;
  border-bottom: 1px solid var(--color-border);
}

.preview__step:last-child {
  border-bottom: none;
}

.preview__step-check {
  padding-top: var(--tds-spacing-1);
}

.preview__step-circle {
  width: 24px;
  height: 24px;
  border-radius: var(--tds-radius-full);
  border: 2px solid var(--color-border-strong);
  background: transparent;
  cursor: pointer;
  transition: border-color var(--tds-duration-normal);
}

.preview__step-circle:hover {
  border-color: var(--color-border-accent);
}

.preview__step-body {
  flex: 1;
  min-width: 0;
}

.preview__step-type {
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-fraggle);
  text-transform: capitalize;
  margin-bottom: var(--tds-spacing-1);
}

.preview__step-title {
  font-size: var(--tds-font-size-lg);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-ocean);
  line-height: var(--tds-line-height-snug);
  margin-bottom: var(--tds-spacing-2);
}

.preview__step-title:hover {
  text-decoration: underline;
  cursor: pointer;
}

.preview__step-desc {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-fraggle);
  line-height: var(--tds-line-height-relaxed);
  margin-bottom: var(--tds-spacing-3);
}

.preview__step-meta {
  display: flex;
  gap: var(--tds-spacing-4);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-stormcloud);
}

.preview__step-favorite {
  color: var(--color-border-strong);
  padding: var(--tds-spacing-1);
  opacity: 0;
  transition: opacity var(--tds-duration-normal), color var(--tds-duration-normal);
}

.preview__step:hover .preview__step-favorite {
  opacity: 1;
}

.preview__step-favorite:hover {
  color: var(--tds-color-ocean);
}

/* About Section */
.preview__about {
  margin-top: var(--tds-spacing-12);
  padding-top: var(--tds-spacing-12);
  border-top: 1px solid var(--color-border);
  max-width: 800px;
}

.preview__about-title {
  font-size: var(--tds-font-size-xl);
  font-weight: var(--tds-font-weight-bold);
  color: var(--heading-accent);
  margin-bottom: var(--tds-spacing-2);
}

/* Skills Section */
.preview__skills {
  margin-top: var(--tds-spacing-12);
}

.preview__skills-title {
  font-size: var(--tds-font-size-xl);
  font-weight: var(--tds-font-weight-bold);
  color: var(--heading-accent);
  margin-bottom: var(--tds-spacing-2);
}

.preview__skills-group {
  margin-top: var(--tds-spacing-6);
}

.preview__skills-label {
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-stormcloud);
  margin-bottom: var(--tds-spacing-3);
}

.preview__tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tds-spacing-2);
}

/* Discover Section */
.preview__discover {
  margin-top: var(--tds-spacing-12);
}

.preview__discover-title {
  font-size: var(--tds-font-size-xl);
  font-weight: var(--tds-font-weight-bold);
  color: var(--heading-accent);
  margin-bottom: var(--tds-spacing-2);
}

.preview__discover-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--tds-spacing-4);
  margin-top: var(--tds-spacing-6);
}

.preview__discover-card {
  padding: var(--tds-spacing-5);
  text-align: center;
}

.preview__discover-icon {
  width: 48px;
  height: 48px;
  margin: 0 auto var(--tds-spacing-4);
  color: var(--tds-color-ocean);
}

.preview__discover-card-title {
  font-weight: var(--tds-font-weight-bold);
  color: var(--heading-accent);
  margin-bottom: var(--tds-spacing-2);
}

/* Preview Footer */
.preview__footer {
  background: var(--blue-950);
  color: var(--tds-color-white);
  padding: var(--tds-spacing-12) var(--tds-spacing-6);
  margin-top: var(--tds-spacing-12);
}

.preview__footer-content {
  max-width: 1200px;
  margin: 0 auto;
}

.preview__footer-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--tds-spacing-8);
  margin-bottom: var(--tds-spacing-10);
}

.preview__footer-section h4 {
  font-weight: var(--tds-font-weight-bold);
  margin-bottom: var(--tds-spacing-4);
}

.preview__footer-section ul {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-2);
}

.preview__footer-section a {
  opacity: 0.8;
  font-size: var(--tds-font-size-sm);
  transition: opacity var(--tds-duration-normal);
}

.preview__footer-section a:hover {
  opacity: 1;
}

.preview__footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--tds-spacing-8) 0;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.preview__footer-apps h4 {
  margin-bottom: var(--tds-spacing-3);
}

.preview__footer-buttons {
  display: flex;
  gap: var(--tds-spacing-3);
}

.preview__app-btn {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  padding: var(--tds-spacing-2) var(--tds-spacing-4);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: var(--tds-radius-lg);
  background: transparent;
  color: white;
  transition: background var(--tds-duration-normal);
}

.preview__app-btn:hover {
  background: rgba(255, 255, 255, 0.1);
}

.preview__app-icon {
  width: 24px;
  height: 24px;
}

.preview__app-btn span {
  display: flex;
  flex-direction: column;
  text-align: left;
  line-height: 1.2;
}

.preview__app-btn small {
  font-size: var(--tds-font-size-xs);
  opacity: 0.8;
}

.preview__footer-social {
  display: flex;
  gap: var(--tds-spacing-2);
}

.preview__social-btn {
  width: 40px;
  height: 40px;
  border-radius: var(--tds-radius-full);
  display: grid;
  place-items: center;
  transition: transform var(--tds-duration-normal);
}

.preview__social-btn:hover {
  transform: scale(1.1);
}

.preview__social-btn svg {
  width: 20px;
  height: 20px;
}

.preview__social-btn--facebook { background: #1877F2; }
.preview__social-btn--twitter { background: #000000; }
.preview__social-btn--linkedin { background: #0A66C2; }

.preview__footer-legal {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: var(--tds-spacing-6);
  font-size: var(--tds-font-size-sm);
  opacity: 0.8;
}

.preview__footer-links {
  display: flex;
  gap: var(--tds-spacing-6);
}

.preview__footer-links a:hover {
  text-decoration: underline;
}







/* -------------------------------------------------------------------------
   Insights Page
   ------------------------------------------------------------------------- */

.insights__header {
  margin-bottom: var(--tds-spacing-8);
}

.insights__header p {
  max-width: 800px;
}

.insights__title {
  margin-bottom: var(--tds-spacing-1);
  font-size: var(--tds-font-size-2xl);
  color: var(--tds-color-midnight);
}

.insights__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--tds-spacing-6);
}

.insights__card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: var(--tds-spacing-4);
  border: 1px solid var(--tds-color-fog);
}

.insights__card header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--tds-spacing-4);
  margin-bottom: var(--tds-spacing-2);
}

.insights__card footer {
  color: var(--tds-color-meteorite);
  font-size: var(--tds-font-size-sm);
  line-height: var(--tds-line-height-tight);
}

.insights__card-title {
  font-weight: var(--tds-font-weight-bold);
}

.insights__toggle {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: var(--tds-radius-full);
  border: 1px solid var(--tds-color-fog);
  background: var(--tds-color-white);
  color: var(--tds-color-ocean);
}

.insights__toggle:hover {
  background: var(--color-bg-hover);
}

.insights__content {
  text-align: center;
}

.insights__big {
  font-size: var(--tds-font-size-2xl);
  font-weight: var(--tds-font-weight-bold);
  margin-bottom: var(--tds-spacing-1);
}

.insights__subtitle {
  color: var(--tds-color-meteorite);
  font-size: var(--tds-font-size-sm);
  line-height: var(--tds-line-height-tight);
}

.insights__bars {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-1);
  margin: 0 var(--tds-spacing-6) var(--tds-spacing-2);
}

.insights__bar {
  display: grid;
  grid-template-columns: 84px 1fr;
  gap: var(--tds-spacing-2);
  align-items: center;
  font-size: var(--tds-font-size-sm);
}

.insights__track {
  height: 12px;
  border-radius: var(--tds-radius-full);
  background: rgba(27, 110, 243, 0.14);
  overflow: hidden;
}

.insights__fill {
  height: 100%;
  background: #6d28d9;
  border-radius: var(--tds-radius-full);
}

.insights__kv {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-1);
  margin: 0 var(--tds-spacing-6) var(--tds-spacing-2);
  font-size: var(--tds-font-size-sm);
}

/* -------------------------------------------------------------------------
   Modal
   ------------------------------------------------------------------------- */

dialog.modal {
  width: min(740px, calc(100% - 40px));
  border: none;
  margin: auto;
  inset: 0;
  background: var(--surface-card);
  color: var(--tds-color-black);
  padding: 0;
  border-radius: var(--tds-radius-xl);
  box-shadow: var(--tds-shadow-sm);
}

dialog.modal::backdrop {
  background: rgba(0, 0, 0, 0.55);
}

.modal__header {
  padding: var(--tds-spacing-4) var(--tds-spacing-5) 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--tds-spacing-3);
}

.modal__title {
  font-weight: var(--tds-font-weight-bold);
  font-size: var(--tds-font-size-lg);
  color: var(--tds-color-black);
}

.modal__close {
  width: 34px;
  height: 34px;
  border-radius: var(--tds-radius-lg);
  display: grid;
  place-items: center;
}

.modal__close:hover {
  background: var(--color-bg-hover);
}

.modal__body {
  padding: var(--tds-spacing-2) var(--tds-spacing-5) var(--tds-spacing-4);
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-stormcloud);
  line-height: var(--tds-line-height-relaxed);
}

.modal__footer {
  padding: var(--tds-spacing-3) var(--tds-spacing-5) var(--tds-spacing-5);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-spacing-3);
}

.modal__drafts {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-3);
  margin-top: var(--tds-spacing-3);
}

.draft {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  gap: var(--tds-spacing-3);
  align-items: center;
  padding: var(--tds-spacing-3);
  border-radius: var(--tds-radius-lg-2);
  background: var(--draft-bg);
  border: 1px solid var(--draft-border);
}

.draft__icon {
  width: 44px;
  height: 44px;
  border-radius: var(--tds-radius-lg-2);
  overflow: hidden;
}

.draft__icon svg {
  width: 44px;
  height: 44px;
}

.draft__title {
  font-weight: var(--tds-font-weight-bold);
}

.draft__meta {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-fraggle);
  margin-top: var(--tds-spacing-1);
}

.draft__time {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-fraggle);
}


/* === pages/trailhead/preview.css === */
/* ==========================================================================
   TRAILHEAD PREVIEW PAGE - TDS Pixel Perfect Implementation
   Based on original Salesforce Trailhead Design System
   Supports: Light/Dark Mode, LTR/RTL
   ========================================================================== */

/* ==========================================================================
   Preview Container
   ========================================================================== */

.trl-preview {
  min-height: 100vh;
  background: var(--tds-color-white);
  font-family: var(--tds-font-family-sans);
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-black);
  line-height: 1.5;
  /* Prevent horizontal overflow from breaking layout */
  overflow-x: hidden;
  max-width: 100%;
  /* Enable container queries for responsive preview */
  container-type: inline-size;
  container-name: preview;
}

[data-theme="dark"] .trl-preview {
  background: var(--trl-surface);
  color: var(--tds-color-black);
}

/* Preview Mode Banner - Shows when viewing a Trail in preview mode */
.trl-preview > .preview-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--tds-spacing-3) var(--tds-spacing-6);
  background: var(--tds-color-warning-light, #fff8e1);
  color: var(--tds-color-warning-dark, #f57c00);
  border-bottom: 2px solid var(--tds-color-warning, #ffc107);
  position: sticky;
  top: 0;
  z-index: 1000;
}

[data-theme="dark"] .trl-preview > .preview-banner {
  background: rgba(255, 193, 7, 0.15);
  color: #ffd54f;
  border-bottom-color: rgba(255, 193, 7, 0.5);
}




/* ==========================================================================
   Inline Preview Mode (Inside Builder)
   When .trl-preview is inside the builder's .main area, show only main content
   ========================================================================== */

.main .trl-preview {
  min-height: auto;
}

/* Hide elements not needed in inline preview */
.main .trl-preview > .trl-header,
.main .trl-preview > .trl-about-section,
.main .trl-preview > .trl-discover,
.main .trl-preview > .trl-landscape,
.main .trl-preview > .trl-footer,
.main .trl-preview > .skip-link {
  display: none !important;
}

/* Preview banner in inline mode - full width at top */
.main .trl-preview > .preview-banner {
  position: relative;
  margin: 0;
  border-radius: 0;
}

.trl-preview > .preview-banner .preview-banner__text {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  font-weight: var(--tds-font-weight-semibold);
}

.trl-preview > .preview-banner .publish-actions {
  display: flex;
  gap: var(--tds-spacing-2);
}

/* Skip Link - Accessibility */
.skip-link {
  position: absolute;
  top: -100%;
  left: 16px;
  background: var(--tds-color-ocean);
  color: var(--tds-color-white);
  padding: var(--tds-spacing-3) var(--tds-spacing-6);
  border-radius: var(--tds-radius-md);
  z-index: 9999;
  font-weight: var(--tds-font-weight-bold);
  text-decoration: none;
  transition: top var(--tds-duration-short) ease;
}

.skip-link:focus {
  top: var(--tds-spacing-4);
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

[dir="rtl"] .skip-link {
  left: auto;
  right: 16px;
}

/* ==========================================================================
   Salesforce Global Header (c360-nav style)
   Matches: https://a.sfdcstatic.com c360-nav web component
   ========================================================================== */

.sf-global-header {
  background: var(--tds-color-white);
  border-bottom: none;
  height: 56px;
  position: sticky;
  top: 0;
  z-index: var(--tds-z-index-header);
  box-shadow: var(--tds-shadow-xxs);
}

[data-theme="dark"] .sf-global-header {
  background: var(--trl-surface);
  box-shadow: var(--tds-shadow-xxs);
}

.sf-global-header__inner {
  width: 100%;
  max-width: 100%;
  padding: 0 var(--tds-spacing-5);
  display: flex;
  align-items: center;
  height: 100%;
  gap: 0;
}

.sf-global-header__logo {
  display: flex;
  align-items: center;
  color: var(--tds-color-ocean);
  text-decoration: none;
  margin-inline-end: var(--tds-spacing-2);
}

.sf-global-header__logo-icon {
  width: 32px;
  height: 32px;
}

.sf-global-header__nav {
  display: flex;
  align-items: center;
  gap: 0;
  flex: 1;
  height: 100%;
}

.sf-global-header__nav-link {
  display: inline-flex;
  align-items: center;
  padding: 0 var(--tds-spacing-4);
  height: 56px;
  color: var(--tds-color-midnight);
  font-family: var(--tds-font-family-sans);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-regular);
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--tds-duration-short) ease;
  border: none;
  background: none;
  cursor: pointer;
}

.sf-global-header__nav-link:hover {
  color: var(--tds-color-ocean);
}

[data-theme="dark"] .sf-global-header__nav-link {
  color: var(--tds-color-black);
}

[data-theme="dark"] .sf-global-header__nav-link:hover {
  color: var(--tds-color-ocean);
}

.sf-global-header__actions {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  margin-inline-start: auto;
}

.sf-global-header__search {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  padding: var(--tds-spacing-2) var(--tds-spacing-4);
  background: var(--tds-color-sand);
  border: 1px solid transparent;
  border-radius: var(--tds-radius-md);
  color: var(--tds-color-meteorite);
  font-family: var(--tds-font-family-sans);
  font-size: var(--tds-font-size-sm);
  cursor: pointer;
  min-width: 180px;
  height: 36px;
  transition: all var(--tds-duration-short) ease;
}

.sf-global-header__search:hover {
  background: var(--tds-color-fog);
}

.sf-global-header__search:focus {
  border-color: var(--tds-color-ocean);
  outline: none;
}

[data-theme="dark"] .sf-global-header__search {
  background: var(--trl-surface-soft);
  border-color: var(--trl-border);
  color: var(--tds-color-stormcloud);
}

.sf-global-header__phone {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: none;
  border: none;
  color: var(--tds-color-midnight);
  cursor: pointer;
  border-radius: var(--tds-radius-md);
  transition: background var(--tds-duration-short) ease;
}

.sf-global-header__phone:hover {
  background: var(--tds-color-sand);
}

[data-theme="dark"] .sf-global-header__phone {
  color: var(--tds-color-black);
}

[data-theme="dark"] .sf-global-header__phone:hover {
  background: var(--trl-surface-soft);
}

.sf-global-header__login {
  font-family: var(--tds-font-family-sans);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
  text-decoration: none;
  padding: var(--tds-spacing-2) var(--tds-spacing-3);
  border-radius: var(--tds-radius-md);
  transition: all var(--tds-duration-short) ease;
}

.sf-global-header__login:hover {
  color: var(--tds-color-ocean);
  background: var(--tds-color-sand);
}

[data-theme="dark"] .sf-global-header__login {
  color: var(--tds-color-black);
}

[data-theme="dark"] .sf-global-header__login:hover {
  color: var(--tds-color-ocean);
  background: var(--trl-surface-soft);
}

.sf-global-header__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 var(--tds-spacing-4);
  height: 36px;
  background: var(--tds-color-ocean);
  color: var(--tds-color-white);
  font-family: var(--tds-font-family-sans);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  text-decoration: none;
  border-radius: var(--tds-radius-md);
  border: none;
  cursor: pointer;
  transition: background var(--tds-duration-short) ease;
}

.sf-global-header__cta:hover {
  background: var(--tds-color-azure);
}

.sf-global-header__avatar {
  width: 32px;
  height: 32px;
  border-radius: var(--tds-radius-full);
  overflow: hidden;
  cursor: pointer;
  border: 2px solid transparent;
  transition: border-color var(--tds-duration-short) ease;
}

.sf-global-header__avatar:hover {
  border-color: var(--tds-color-ocean);
}

.sf-global-header__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ==========================================================================
   Trailhead Header (c360-contextnav style)
   Matches: hgf-c360contextnav web component
   ========================================================================== */

.trl-header {
  background: var(--tds-color-white);
  border-bottom: 1px solid var(--tds-color-fog);
  position: sticky;
  top: 56px; /* Stack below global header (56px) */
  z-index: calc(var(--tds-z-index-header) - 1);
  height: 56px;
}

[data-theme="dark"] .trl-header {
  background: var(--trl-surface);
  border-color: var(--trl-border);
}

.trl-header__inner {
  width: 100%;
  max-width: 100%;
  padding: 0 var(--tds-spacing-5);
  display: flex;
  align-items: center;
  height: 100%;
  gap: 0;
}

.trl-header__logo {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  text-decoration: none;
  color: var(--tds-color-midnight);
  margin-inline-end: var(--tds-spacing-6);
}

[data-theme="dark"] .trl-header__logo {
  color: var(--trl-heading);
}

.trl-header__logo-icon {
  width: 28px;
  height: 28px;
}

.trl-header__logo-text {
  font-family: var(--tds-font-family-heading);
  font-size: var(--tds-font-size-xl);
  font-weight: var(--tds-font-weight-semibold);
  letter-spacing: -0.02em;
  color: var(--tds-color-midnight);
}

[data-theme="dark"] .trl-header__logo-text {
  color: var(--tds-color-black);
}

.trl-header__nav {
  display: flex;
  align-items: center;
  gap: 0;
  flex: 1;
  height: 100%;
}

.trl-header__nav-link {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  padding: 0 var(--tds-spacing-4);
  height: 56px;
  color: var(--tds-color-midnight);
  font-family: var(--tds-font-family-sans);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-regular);
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color var(--tds-duration-short) ease, border-color var(--tds-duration-short) ease;
}

.trl-header__nav-link:hover {
  color: var(--tds-color-ocean);
}

.trl-header__nav-link:focus {
  outline: none;
}

.trl-header__nav-link:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: -2px;
}

/* Active state for context nav */
.trl-header__nav-link--active {
  color: var(--tds-color-ocean);
  border-bottom-color: var(--tds-color-ocean);
  font-weight: var(--tds-font-weight-bold);
}

[data-theme="dark"] .trl-header__nav-link {
  color: var(--tds-color-black);
}

[data-theme="dark"] .trl-header__nav-link:hover,
[data-theme="dark"] .trl-header__nav-link--active {
  color: var(--tds-color-ocean);
}

[data-theme="dark"] .trl-header__nav-link--active {
  border-bottom-color: var(--tds-color-ocean);
}

.trl-header__nav-link svg {
  width: 12px;
  height: 12px;
  opacity: 0.7;
  transition: transform var(--tds-duration-short) ease;
}

/* Dropdown arrow rotation on hover/active */
.trl-header__nav-link:hover svg,
.trl-header__nav-link--active svg {
  opacity: 1;
}

.trl-header__actions {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-3);
  margin-inline-start: auto;
}

.trl-header__actions:empty {
  display: none;
}

/* ==========================================================================
   Main Layout - Two Column Grid (th-content-wrapper / th-content-container)
   ========================================================================== */

.trl-layout {
  background: var(--tds-color-white);
  min-height: calc(100vh - 112px); /* 56px global + 56px context */
  position: relative;
}

[data-theme="dark"] .trl-layout {
  background: var(--trl-surface);
}

.trl-layout__inner {
  max-width: var(--tds-page-container-width, 1280px);
  margin: 0 auto;
  padding: 0 var(--tds-spacing-8) var(--tds-spacing-8);
  display: flex;
  flex-direction: row;
  gap: 0; /* Override application.css grid gap - original Trailhead uses padding on sidebar */
}

/* Enable container queries */
.trl-preview {
  container-type: inline-size;
}

/* Constrained width layout (inside builder preview) */
@container (max-width: 800px) {
  /* Header responsive - hide navigation at narrow widths */
  .trl-header {
    height: auto;
    min-height: 48px;
  }

  .trl-header__inner {
    padding: 0 var(--tds-spacing-3);
    flex-wrap: wrap;
    justify-content: space-between;
  }

  .trl-header__nav {
    display: none; /* Hide full nav on narrow widths */
  }

  .trl-header__logo {
    margin-inline-end: 0;
  }

  .trl-header__logo-text {
    font-size: var(--tds-font-size-md);
  }

  .trl-header__actions {
    gap: var(--tds-spacing-2);
  }

  .trl-header__search {
    min-width: auto;
    padding: var(--tds-spacing-2) var(--tds-spacing-3);
  }

  .trl-header__search span {
    display: none; /* Hide search text, show only icon */
  }

  .trl-layout__inner {
    flex-direction: column;
    padding: var(--tds-spacing-4);
  }

  .trl-sidebar {
    width: 100% !important;
    min-width: auto !important;
    max-width: none !important;
    padding-inline-end: 0 !important;
    margin-bottom: var(--tds-spacing-4);
  }

  .trl-sidebar__inner {
    position: static;
    padding-top: 0;
  }

  .trl-badge-card,
  .tds-badge-card {
    width: 100%;
    max-width: none;
    /* th-content_aside-tile mobile styling */
    margin-left: -1em;
    margin-right: -1em;
    width: calc(100% + 2em);
    box-shadow: none;
    border-radius: 0;
  }

  .trl-badge-card__top,
  .tds-badge-card__top {
    border-radius: 0;
  }

  .trl-main-content {
    padding: 0 0 var(--tds-spacing-6) 0;
  }

  /* Discover grid responsive */
  .trl-discover__grid {
    flex-direction: column;
  }

  .trl-discover__grid .trl-discover-card {
    flex: 1 1 100%;
  }

  /* Footer responsive */
  .trl-footer {
    padding: var(--tds-spacing-6) var(--tds-spacing-4);
  }

  .trl-footer__inner {
    max-width: 100%;
  }

  .trl-footer__grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: var(--tds-spacing-6) !important;
  }

  .trl-footer__apps {
    flex-direction: column;
    align-items: flex-start;
  }

  .trl-footer__social {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .trl-footer__legal {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--tds-spacing-3);
  }

  .trl-footer__legal-links {
    flex-wrap: wrap;
    gap: var(--tds-spacing-2) var(--tds-spacing-4);
  }

  /* Stats bar responsive */
  .trl-stats-bar {
    flex-wrap: wrap;
    border-radius: var(--tds-radius-lg-2);
    padding: 0;
    gap: 0;
  }

  .trl-stats-bar__item {
    flex: 1 1 50%;
    min-width: auto;
    padding: var(--tds-spacing-3);
    justify-content: center;
    border-bottom: 1px solid var(--tds-color-fog, #e5e5e5);
  }

  .trl-stats-bar__item:nth-child(odd) {
    border-inline-end: 1px solid var(--tds-color-fog, #e5e5e5);
  }

  .trl-stats-bar__item:nth-last-child(-n+2) {
    border-bottom: none;
  }

  .trl-stats-bar__divider {
    display: none;
  }

  /* Announcement responsive */
  .trl-announcement {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* Even narrower layout (mobile preview) */
@container (max-width: 500px) {
  .trl-footer__grid {
    grid-template-columns: 1fr !important;
    gap: var(--tds-spacing-5) !important;
  }

  .trl-header__logo-text {
    font-size: var(--tds-font-size-sm);
  }

  .trl-header__search {
    display: none; /* Hide search completely on very narrow */
  }

  .trl-stats-bar__item {
    flex: 1 1 100%;
    border-inline-end: none !important;
  }

  .trl-badge-card__title,
  .tds-badge-card__title {
    font-size: 1.25rem;
  }

  .trl-about-section,
  .trl-discover {
    padding: var(--tds-spacing-6) var(--tds-spacing-4);
  }
}

@media screen and (max-width: 800px) {
  .trl-layout__inner {
    flex-direction: column;
    padding: 0 var(--tds-spacing-4);
  }

  .trl-sidebar {
    width: 100%;
    min-width: auto;
    max-width: none;
    padding-inline-end: 0;
    margin-bottom: var(--tds-spacing-4);
  }

  .trl-sidebar__inner {
    position: static;
    padding-top: 0;
  }

  .trl-badge-card,
  .tds-badge-card {
    width: 100%;
    max-width: none;
    /* th-content_aside-tile mobile styling */
    margin-left: -1em;
    margin-right: -1em;
    width: calc(100% + 2em);
    box-shadow: none;
    border-radius: 0;
  }

  .trl-badge-card__top,
  .tds-badge-card__top {
    border-radius: 0;
  }

  .trl-main-content {
    padding: 0 0 var(--tds-spacing-6) 0;
  }
}

/* ==========================================================================
   Left Sidebar (th-content-container_aside-container)
   ========================================================================== */

.trl-sidebar {
  min-width: 400px; /* 352px content + 48px padding = 400px total like original Trailhead */
  max-width: 400px;
  padding-inline-end: var(--tds-spacing-12, 48px); /* Original Trailhead uses 48px padding */
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: var(--tds-page-grid-row-gap, 20px);
}

.trl-sidebar__inner {
  position: sticky;
  top: 128px; /* Account for sticky headers (56px + 56px) + padding (16px) */
  padding-top: var(--tds-spacing-6);
  display: flex;
  flex-direction: column;
  gap: var(--tds-page-grid-row-gap, 20px);
}

/* ==========================================================================
   Taxonomy Sections (th-content-filter-tags)
   ========================================================================== */

.trl-taxonomy {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-1);
  margin-top: var(--tds-spacing-4);
}

.trl-taxonomy__title {
  font-size: var(--tds-font-size-md);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-meteorite);
  margin: 0;
  padding-bottom: var(--tds-spacing-1);
}

[data-theme="dark"] .trl-taxonomy__title {
  color: var(--tds-color-stormcloud);
}

.trl-taxonomy__subtitle {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  margin: 0;
  line-height: 1.4;
}

[data-theme="dark"] .trl-taxonomy__subtitle {
  color: var(--tds-color-stormcloud);
}

.trl-taxonomy__subtitle a {
  color: var(--tds-color-ocean);
  text-decoration: underline;
}

[data-theme="dark"] .trl-taxonomy__subtitle a {
  color: var(--tds-color-ocean);
}

.trl-taxonomy__tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin-top: var(--tds-spacing-4);
  gap: 0;
}

/* Tags (skill/product pills) - th-pill_filter style - exact TDS colors */
.trl-tag {
  display: inline-block;
  border-radius: var(--tds-radius-full);
  font-weight: var(--tds-font-weight-bold);
  line-height: 1.5;
  padding: 0.4rem 0.75rem;
  font-size: 0.75rem;
  background: var(--tds-color-foundation-blue);
  color: var(--tds-color-azure);
  border: 1px solid transparent;
  text-decoration: none;
  cursor: pointer;
  transition: all var(--tds-duration-short) ease;
  margin-bottom: var(--tds-spacing-3);
  margin-inline-end: var(--tds-spacing-1);
}

.trl-tag:hover,
.trl-tag:active,
.trl-tag:focus {
  background: var(--tds-color-clear-sky);
  text-decoration: underline;
}

.trl-tag:active,
.trl-tag:focus {
  border: 1px solid var(--tds-color-azure);
}

.trl-tag:focus-visible {
  outline: var(--tds-a11y-outline-focus);
  outline-offset: var(--tds-a11y-outline-offset-focus);
}

[data-theme="dark"] .trl-tag {
  background: var(--trl-pill-bg);
  color: var(--tds-color-ocean);
}

[data-theme="dark"] .trl-tag:hover,
[data-theme="dark"] .trl-tag:active,
[data-theme="dark"] .trl-tag:focus {
  background: var(--trl-surface-soft);
}

[data-theme="dark"] .trl-tag:active,
[data-theme="dark"] .trl-tag:focus {
  border-color: var(--tds-color-ocean);
}

.trl-tag--product {
  background: var(--tds-color-foundation-blue);
  color: var(--tds-color-azure);
}

[data-theme="dark"] .trl-tag--product {
  background: var(--trl-pill-bg);
  color: var(--tds-color-ocean);
}

.trl-taxonomy__toggle {
  display: inline-block;
  background: none;
  border: none;
  color: var(--tds-color-ocean);
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-semibold);
  padding: 0;
  cursor: pointer;
  text-align: start;
  margin-top: var(--tds-spacing-2);
}

.trl-taxonomy__toggle:hover {
  text-decoration: underline;
}

[data-theme="dark"] .trl-taxonomy__toggle {
  color: var(--tds-color-ocean);
}

/* ==========================================================================
   Locale Disclaimer
   ========================================================================== */

.trl-locale-disclaimer {
  display: flex;
  gap: var(--tds-spacing-2);
  align-items: baseline;
  background: var(--tds-color-sand);
  color: var(--tds-color-meteorite);
  border-radius: var(--tds-radius-lg);
  padding: var(--tds-spacing-3);
  margin-top: var(--tds-spacing-8);
  font-size: var(--tds-font-size-sm);
  line-height: var(--tds-line-height-snug);
}

[data-theme="dark"] .trl-locale-disclaimer {
  background: var(--trl-surface-soft);
  color: var(--tds-color-stormcloud);
}

.trl-locale-disclaimer__icon {
  color: var(--tds-color-meteorite);
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}

[data-theme="dark"] .trl-locale-disclaimer__icon {
  color: var(--tds-color-stormcloud);
}

.trl-locale-disclaimer__icon svg {
  width: 16px;
  height: 16px;
}

.trl-locale-disclaimer__text {
  flex: 1;
}

.trl-locale-disclaimer__link {
  color: var(--tds-color-ocean);
  text-decoration: underline;
  font-weight: var(--tds-font-weight-semibold);
  margin-inline-start: var(--tds-spacing-1);
}

[data-theme="dark"] .trl-locale-disclaimer__link {
  color: var(--tds-color-ocean);
}

/* ==========================================================================
   Right Main Content (th-content-container_main)
   ========================================================================== */

.trl-main-content {
  display: flex;
  flex-direction: column;
  gap: var(--tds-page-grid-row-gap, 20px);
  padding: var(--tds-spacing-6) 0;
  width: 100%;
  max-width: var(--tds-page-main-max-width, 768px);
  z-index: 1;
}

/* ==========================================================================
   Stats Bar (th-content-stats) - TDS Pixel Perfect
   ========================================================================== */

.trl-stats-bar {
  display: flex;
  align-items: center;
  justify-content: space-evenly;
  flex-wrap: nowrap;
  background: var(--tds-color-sand);
  border-radius: var(--tds-radius-full);
  padding: var(--tds-spacing-4) 0;
  margin-bottom: var(--tds-spacing-8);
  font-size: var(--tds-font-size-sm);
  gap: 0;
}

[data-theme="dark"] .trl-stats-bar {
  background: var(--trl-surface-soft);
}

.trl-stats-bar__item {
  display: flex;
  align-items: center;
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
  justify-content: center;
  text-align: center;
  padding: 0 var(--tds-spacing-5);
  white-space: nowrap;
}

[data-theme="dark"] .trl-stats-bar__item {
  color: var(--tds-color-black);
}

.trl-stats-bar__icon {
  width: 16px;
  height: 16px;
  color: var(--tds-color-midnight);
  flex-shrink: 0;
  margin-inline-end: var(--tds-spacing-2);
}

[data-theme="dark"] .trl-stats-bar__icon {
  color: var(--tds-color-black);
}

.trl-stats-bar__value {
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
  white-space: nowrap;
}

[data-theme="dark"] .trl-stats-bar__value {
  color: var(--tds-color-black);
}

.trl-stats-bar__divider {
  width: 1px;
  height: 16px;
  background: var(--tds-color-fog);
  flex-shrink: 0;
}

[data-theme="dark"] .trl-stats-bar__divider {
  background: var(--trl-border);
}

/* Stats bar responsive */
@container (max-width: 600px) {
  .trl-stats-bar {
    flex-wrap: wrap;
    border-radius: var(--tds-radius-lg-2);
    padding: 0;
  }

  .trl-stats-bar__item {
    padding: var(--tds-spacing-3) var(--tds-spacing-6);
    width: 50%;
  }

  .trl-stats-bar__item:first-child {
    border-bottom: 1px solid var(--tds-color-fog);
    border-inline-end: 1px solid var(--tds-color-fog);
  }

  .trl-stats-bar__item:nth-child(3) {
    border-bottom: 1px solid var(--tds-color-fog);
  }

  .trl-stats-bar__item:nth-child(5) {
    border-inline-end: 1px solid var(--tds-color-fog);
  }

  .trl-stats-bar__divider {
    display: none;
  }

  .trl-stats-bar__icon {
    display: none;
  }
}

/* ==========================================================================
   Announcement Banner (info-banner style)
   ========================================================================== */

.trl-announcement {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  background-color: var(--tds-color-midnight);
  background-color: var(--trl-announcement-bg, var(--tds-color-midnight, #032d60));
  color: var(--tds-color-white);
  color: var(--trl-announcement-text, var(--tds-color-white, #ffffff));
  padding: var(--tds-spacing-4) var(--tds-spacing-5);
  border-radius: var(--tds-radius-xl);
  margin-top: var(--tds-spacing-2);
  margin-bottom: var(--tds-spacing-10);
  gap: var(--tds-spacing-4);
  width: 100%;
  position: relative;
}

[data-theme="dark"] .trl-announcement {
  background: var(--trl-accent-bg);
  color: var(--tds-color-white);
}

.trl-announcement__content {
  flex: 1;
}

.trl-announcement__content strong {
  font-size: var(--tds-font-size-md);
  font-weight: var(--tds-font-weight-semibold);
  display: block;
  margin-bottom: var(--tds-spacing-4);
}

.trl-announcement__content p {
  font-size: var(--tds-font-size-md);
  margin: 0;
  line-height: 1.5;
}

.trl-announcement__btn {
  display: inline-flex;
  align-items: center;
  padding: 0;
  background: none;
  border: none;
  color: var(--trl-announcement-link, var(--tds-color-white));
  font-size: var(--tds-font-size-sm);
  font-weight: var(--tds-font-weight-semibold);
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: color var(--tds-duration-short) ease;
  align-self: flex-start;
  margin-top: 0;
}

.trl-announcement__btn:hover,
.trl-announcement__btn:visited,
.trl-announcement__btn:active,
.trl-announcement__btn:focus {
  color: var(--trl-announcement-link, var(--tds-color-white));
}

.trl-announcement__btn:hover {
  text-decoration: underline;
}

/* ==========================================================================
   About This Trail Section
   ========================================================================== */

.trl-about-section {
  background: var(--tds-color-white);
  padding: var(--tds-spacing-10) var(--tds-spacing-6) var(--tds-spacing-5);
}

[data-theme="dark"] .trl-about-section {
  background: var(--trl-surface);
}

.trl-about-section__inner {
  max-width: 840px;
  margin: 0 auto;
  width: 100%;
}

.trl-about-section__title {
  font-size: var(--tds-font-size-2xl);
  font-weight: var(--tds-font-weight-semibold);
  color: var(--tds-color-midnight);
  margin: var(--tds-spacing-6) 0;
}

[data-theme="dark"] .trl-about-section__title {
  color: var(--tds-color-black);
}

.trl-about-section__text {
  font-size: var(--tds-font-size-lg);
  color: var(--tds-color-meteorite);
  line-height: var(--tds-line-height-relaxed);
  margin: 0;
}

[data-theme="dark"] .trl-about-section__text {
  color: var(--tds-color-stormcloud);
}

/* ==========================================================================
   Discover More Section
   ========================================================================== */

.trl-discover {
  background: var(--tds-color-white);
  padding: var(--tds-spacing-5) var(--tds-spacing-6) var(--tds-spacing-10);
}

[data-theme="dark"] .trl-discover {
  background: var(--trl-surface);
}

.trl-discover__inner {
  max-width: 960px;
  margin: 0 auto;
}

.trl-discover__title {
  font-size: var(--tds-font-size-lg);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
  margin: 0 0 var(--tds-spacing-2) 0;
}

[data-theme="dark"] .trl-discover__title {
  color: var(--tds-color-black);
}

.trl-discover__subtitle {
  font-size: var(--tds-font-size-sm);
  color: var(--tds-color-meteorite);
  line-height: 1.6;
  margin: 0 0 var(--tds-spacing-5) 0;
  max-width: 680px;
}

[data-theme="dark"] .trl-discover__subtitle {
  color: var(--tds-color-stormcloud);
}

.trl-discover__grid {
  display: flex;
  flex-wrap: wrap;
  column-gap: var(--tds-spacing-5);
  row-gap: var(--tds-spacing-10);
  margin-bottom: var(--tds-spacing-5);
}

/* Discover Card */
.trl-discover-card {
  display: flex;
  flex-direction: column;
  flex: 0 0 calc(33.33% - 15px);
  box-sizing: border-box;
  padding: var(--tds-spacing-4);
  background: var(--tds-color-white);
  border: 1px solid transparent;
  border-radius: var(--tds-radius-lg);
  text-decoration: none;
  text-align: left;
  transition: all var(--tds-duration-short) ease;
}

[data-theme="dark"] .trl-discover-card {
  background: var(--trl-surface);
  border: 1px solid var(--trl-border);
}

.trl-discover-card:hover {
  border-color: var(--tds-color-azure);
  box-shadow: var(--tds-shadow-xs);
}

.trl-discover-card:hover .trl-discover-card__title {
  text-decoration: underline;
}

[data-theme="dark"] .trl-discover-card:hover {
  border-color: var(--tds-color-ocean);
}

.trl-discover-card__icon {
  width: 48px;
  height: 48px;
  border-radius: var(--tds-radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-bottom: var(--tds-spacing-3);
  background: linear-gradient(135deg, rgba(27, 150, 255, 0.15) 0%, rgba(1, 118, 211, 0.1) 100%);
}

[data-theme="dark"] .trl-discover-card__icon {
  background: var(--trl-surface-soft);
}

.trl-discover-card__icon svg,
.trl-discover-card__icon img {
  width: 24px;
  height: 24px;
  color: var(--tds-color-ocean);
}

[data-theme="dark"] .trl-discover-card__icon svg {
  color: var(--tds-color-ocean);
}

/* Purple icon variant */
.trl-discover-card__icon--purple {
  background: linear-gradient(135deg, rgba(147, 51, 234, 0.15) 0%, rgba(126, 34, 206, 0.1) 100%);
}

[data-theme="dark"] .trl-discover-card__icon--purple {
  background: rgba(147, 51, 234, 0.15);
}

.trl-discover-card__icon--purple svg {
  color: #9333ea;
}

/* Green icon variant */
.trl-discover-card__icon--green {
  background: linear-gradient(135deg, rgba(46, 132, 74, 0.15) 0%, rgba(34, 116, 60, 0.1) 100%);
}

[data-theme="dark"] .trl-discover-card__icon--green {
  background: rgba(46, 132, 74, 0.15);
}

.trl-discover-card__icon--green svg {
  color: var(--tds-color-evergreen);
}

/* Orange icon variant */
.trl-discover-card__icon--orange {
  background: linear-gradient(135deg, rgba(234, 88, 12, 0.15) 0%, rgba(194, 65, 12, 0.1) 100%);
}

[data-theme="dark"] .trl-discover-card__icon--orange {
  background: rgba(234, 88, 12, 0.15);
}

.trl-discover-card__icon--orange svg {
  color: #ea580c;
}

.trl-discover-card__title {
  font-size: var(--tds-font-size-lg);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-ocean);
  margin: 0;
}

[data-theme="dark"] .trl-discover-card__title {
  color: var(--tds-color-ocean);
}

.trl-discover-card__desc {
  font-size: var(--tds-font-size-md);
  color: var(--tds-color-meteorite);
  line-height: 1.5;
  margin-top: var(--tds-spacing-2);
}

[data-theme="dark"] .trl-discover-card__desc {
  color: var(--tds-color-stormcloud);
}

.trl-discover__more {
  display: block;
  margin: 0 auto;
  background: none;
  border: none;
  color: var(--tds-color-ocean);
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-semibold);
  cursor: pointer;
}

[data-theme="dark"] .trl-discover__more {
  color: var(--tds-color-ocean);
}

.trl-discover__more:hover {
  text-decoration: underline;
}

/* ==========================================================================
   Landscape Illustration
   ========================================================================== */

.trl-landscape {
  width: 100%;
  height: 160px;
  overflow: hidden;
  margin-top: -10px;
}

.trl-landscape__svg {
  width: 100%;
  height: 100%;
}

/* ==========================================================================
   Footer
   ========================================================================== */

.trl-footer {
  background: var(--tds-color-white);
  padding: var(--tds-spacing-10) var(--tds-spacing-6) var(--tds-spacing-6);
  border-top: 1px solid var(--tds-color-fog);
}

[data-theme="dark"] .trl-footer {
  background: var(--trl-surface);
  border-color: var(--trl-border);
}

.trl-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
}

.trl-footer__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--tds-spacing-12);
  margin-bottom: var(--tds-spacing-10);
}

.trl-footer__section {
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-4);
}

.trl-footer__heading {
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-bold);
  color: var(--tds-color-midnight);
  margin: 0;
}

[data-theme="dark"] .trl-footer__heading {
  color: var(--tds-color-black);
}

.trl-footer__links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--tds-spacing-3);
}

.trl-footer__links a {
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
  text-decoration: none;
  transition: color var(--tds-duration-short) ease;
}

[data-theme="dark"] .trl-footer__links a {
  color: var(--tds-color-stormcloud);
}

.trl-footer__links a:hover {
  color: var(--tds-color-ocean);
  text-decoration: underline;
}

[data-theme="dark"] .trl-footer__links a:hover {
  color: var(--tds-color-ocean);
}

/* Footer Apps */
.trl-footer__apps {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-4);
  padding-bottom: var(--tds-spacing-6);
  border-bottom: 1px solid var(--tds-color-fog);
  margin-bottom: var(--tds-spacing-6);
}

[data-theme="dark"] .trl-footer__apps {
  border-color: var(--trl-border);
}

.trl-footer__apps-label {
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-semibold);
  color: var(--tds-color-midnight);
}

[data-theme="dark"] .trl-footer__apps-label {
  color: var(--tds-color-black);
}

.trl-footer__apps-btns {
  display: flex;
  gap: var(--tds-spacing-3);
}

.trl-footer__app-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--tds-spacing-2);
  padding: var(--tds-spacing-2) var(--tds-spacing-4);
  background: var(--tds-color-black);
  color: var(--tds-color-white);
  border-radius: var(--tds-radius-md);
  text-decoration: none;
  font-size: var(--tds-font-size-xs);
  font-weight: var(--tds-font-weight-semibold);
  transition: background var(--tds-duration-short) ease;
}

.trl-footer__app-btn svg {
  width: 20px;
  height: 20px;
}

.trl-footer__app-btn:hover {
  background: var(--gray-700);
}

/* Social Links */
.trl-footer__social {
  display: flex;
  gap: var(--tds-spacing-3);
  justify-content: flex-end;
  padding-bottom: var(--tds-spacing-6);
  border-bottom: 1px solid var(--tds-color-fog);
  margin-bottom: var(--tds-spacing-6);
}

[data-theme="dark"] .trl-footer__social {
  border-color: var(--trl-border);
}

.trl-footer__social-link {
  width: 40px;
  height: 40px;
  background: var(--tds-color-ocean);
  border-radius: var(--tds-radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--tds-color-white);
  text-decoration: none;
  transition: background var(--tds-duration-short) ease, transform var(--tds-duration-short) ease;
}

/* Brand-specific social icon colors */
.trl-footer__social-link[aria-label*="Facebook"] {
  background: #1877F2;
}

.trl-footer__social-link[aria-label*="Twitter"] {
  background: #000000;
}

.trl-footer__social-link[aria-label*="LinkedIn"] {
  background: #0A66C2;
}

.trl-footer__social-link[aria-label*="Trailblazer"] {
  background: #00A1E0;
}

.trl-footer__social-link[aria-label*="Podcast"] {
  background: #FF6D3D;
}

.trl-footer__social-link:hover {
  background: var(--tds-color-azure);
}

.trl-footer__social-link svg {
  width: 20px;
  height: 20px;
}

/* Legal Section */
.trl-footer__legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--tds-spacing-4);
  font-size: var(--tds-font-size-xs);
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .trl-footer__legal {
  color: var(--tds-color-stormcloud);
}

.trl-footer__copyright {
  color: var(--tds-color-meteorite);
}

[data-theme="dark"] .trl-footer__copyright {
  color: var(--tds-color-stormcloud);
}

.trl-footer__legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--tds-spacing-4);
}

.trl-footer__legal-links a {
  color: var(--tds-color-meteorite);
  text-decoration: none;
  transition: color var(--tds-duration-short) ease;
}

[data-theme="dark"] .trl-footer__legal-links a {
  color: var(--tds-color-stormcloud);
}

.trl-footer__legal-links a:hover {
  text-decoration: underline;
}

.trl-footer__lang {
  display: flex;
  align-items: center;
  gap: var(--tds-spacing-1);
  color: var(--tds-color-meteorite);
  cursor: pointer;
}

[data-theme="dark"] .trl-footer__lang {
  color: var(--tds-color-stormcloud);
}

.trl-footer__lang svg {
  width: 16px;
  height: 16px;
}

.trl-footer__lang-link {
  color: var(--tds-color-meteorite);
  text-decoration: none;
  font-size: var(--tds-font-size-sm);
}

[data-theme="dark"] .trl-footer__lang-link {
  color: var(--tds-color-stormcloud);
}

.trl-footer__lang-link:hover {
  text-decoration: underline;
}

/* ==========================================================================
   Icon Sizes
   ========================================================================== */

.trl-icon--xx-small {
  width: 12px;
  height: 12px;
}

.trl-icon--x-small {
  width: 14px;
  height: 14px;
}

.trl-icon--small {
  width: 16px;
  height: 16px;
}

.trl-icon--medium {
  width: 20px;
  height: 20px;
}

.trl-icon--large {
  width: 24px;
  height: 24px;
}

/* ==========================================================================
   Responsive Design
   ========================================================================== */

@media (max-width: 800px) {
  .trl-layout__inner {
    flex-direction: column;
  }

  .trl-sidebar {
    position: static;
    order: -1;
    min-width: auto;
    max-width: none;
    padding-inline-end: 0;
    margin-bottom: var(--tds-spacing-4);
  }

  .trl-sidebar__inner {
    position: static;
    padding-top: 0;
  }

  .trl-badge-card {
    width: 100%;
    max-width: none;
  }

  /* Hide navigation on tablets/mobile - show hamburger instead */
  .sf-global-header__nav {
    display: none;
  }

  .trl-header__nav {
    display: none;
  }

  .sf-global-header__search {
    min-width: auto;
    padding: var(--tds-spacing-2) var(--tds-spacing-3);
  }

  .sf-global-header__search span {
    display: none;
  }

  /* Stack Trailhead header below global when nav hidden */
  .trl-header {
    top: 56px;
  }

  .trl-discover__grid .trl-discover-card {
    flex: 0 0 calc(50% - 10px);
  }

  .trl-footer__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--tds-spacing-8);
  }
}

@media (max-width: 48rem) {
  .trl-layout__inner {
    padding: 0 var(--tds-spacing-4);
  }

  .trl-badge-card__top {
    padding: var(--tds-spacing-6);
  }

  .trl-badge-card__badge {
    width: 100px;
    height: 100px;
  }

  .trl-badge-card__title {
    font-size: var(--tds-font-size-lg);
  }

  .trl-announcement {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--tds-spacing-4);
  }

  .trl-discover__grid {
    flex-direction: column;
    row-gap: var(--tds-spacing-2);
  }

  .trl-discover__grid .trl-discover-card {
    flex: 1 1 100%;
  }

  .trl-footer__grid {
    grid-template-columns: 1fr;
    gap: var(--tds-spacing-6);
  }

  .trl-footer__apps {
    flex-direction: column;
    align-items: flex-start;
  }

  .trl-footer__social {
    justify-content: flex-start;
  }

  .trl-footer__legal {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 30rem) {
  .sf-global-header__inner,
  .trl-header__inner {
    padding: 0 var(--tds-spacing-4);
  }

  .sf-global-header {
    height: 48px;
  }

  .trl-header {
    height: 48px;
    top: 48px;
  }

  .sf-global-header__logo-icon {
    width: 28px;
    height: 28px;
  }

  .sf-global-header__nav-link,
  .trl-header__nav-link {
    height: 48px;
  }

  .trl-theme-toggle {
    height: 28px;
  }

  .trl-theme-toggle__btn {
    padding: 2px var(--tds-spacing-2);
    font-size: 11px;
  }

  /* Keep buttons side-by-side on mobile like original Trailhead */
  .trl-btn {
    width: 100%;
  }

}

/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {
  .sf-global-header,
  .trl-header,
  .trl-footer,
  .trl-announcement,
  .trl-discover,
  .trl-landscape,
  .trl-theme-toggle {
    display: none;
  }

  .trl-layout {
    background: white;
  }

  .trl-layout__inner {
    display: block;
  }

  .trl-sidebar {
    position: static;
  }
}

/* ==========================================================================
   Reduced Motion - WCAG 2.1 AA Compliance
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .trl-discover-card,
  .trl-btn,
  .trl-footer__social-link {
    transition: none !important;
  }
}
