    :root{
      --bg-deep:#0f172a; --bg-body:#F4F5F9; --bg-card:#ffffff;
      --primary:#886CC0; --accent-blue:#38bdf8; --error-red:#ef4444;
      --text-main:#0f172a; --text-muted:#64748b;
      --shadow-node:0 1px 3px rgba(0,0,0,0.12),0 1px 2px rgba(0,0,0,0.24);
      --shadow-raised:0 14px 28px rgba(0,0,0,0.10),0 10px 10px rgba(0,0,0,0.10);
      --font-mono:'Space Mono', monospace;

      --radius-xl:12px; --radius-lg:10px; --radius-md:8px;
      --muted-dark: rgba(226,232,240,0.66);

      --good: #22c55e;

      /* TASK COLOR MEANING (RESTORED) */
      --hub-done-bg: rgba(34, 197, 94, 0.1);
      --hub-done-text: #16a34a;
            --task-blue-bg: rgb(226, 244, 252);
      --task-blue-bd: rgb(186, 230, 253);
      --task-red-bg:  rgb(254, 226, 226);
      --task-red-bd:  rgb(252, 165, 165);
    }

    *{ box-sizing:border-box; }
    body{
      margin:0; font-family:'Inter',sans-serif;
      display:grid; grid-template-columns:80px 1fr 450px;
      height:100vh; overflow:hidden; background:var(--bg-body);
    }


    /* =========================================
       LEFT NAV — REILink Sidebar Style
    ========================================= */

    /* REILink CSS Variables */
    :root {
      --bg-panel-dark: #23292f;
      --border-dark: #30363d;
      --text-secondary-dark: #8b949e;
      --text-primary-dark: #c9d1d9;
      --accent-blue-dark: #58a6ff;
      --bg-hover-dark: #2a3037;
      --radius-md-rl: 0.5em;
    }

    .side-nav {
      width: 80px;
      background: var(--bg-panel-dark);
      padding: 1.5em 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      flex-shrink: 0;
      z-index: 1000;
      border-right: 1px solid var(--border-dark);
      height: 100dvh;
      max-height: 100dvh;
      overflow-y: visible;
      font-size: 16px !important;
      gap: 0;
    }

    .nav-logo {
      width: 44px; height: 44px; border-radius: 14px;
      object-fit: contain;
      margin-bottom: 12px;
      flex-shrink: 0;
    }

    .nav-group {
      width: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
      margin-top: 6px;
      gap: 0;
    }

    /* Each nav item wrapper */
    .nav-btn {
      color: var(--text-secondary-dark);
      font-size: 1.5em;
      border-radius: var(--radius-md-rl);
      cursor: pointer;
      transition: all 0.2s ease;
      position: relative;
      width: 64px;
      height: 64px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      margin-bottom: 0.25em;
      border: none;
      background: transparent;
      outline: none;
    }

    .nav-btn:hover {
      color: var(--text-primary-dark);
      background-color: var(--bg-hover-dark);
      transform: none;
    }

    .nav-btn:active {
      transform: scale(0.97);
    }

    .nav-btn.active {
      color: var(--accent-blue-dark);
      background-color: rgba(88, 166, 255, 0.1);
      box-shadow: none;
      border: none;
    }

    .nav-btn.active::before { display: none; }

    /* Icon label below the icon */
    .nav-btn .nav-label {
      font-size: 0.44em;
      font-weight: 500;
      position: absolute;
      bottom: 8px;
      color: currentColor;
      white-space: nowrap;
      line-height: 1;
      letter-spacing: 0.01em;
    }

    /* Icon itself — give it room above the label */
    .nav-btn i {
      height: 28px;
      display: flex;
      align-items: center;
      font-size: 1em;
      margin-bottom: 14px;
    }

    .nav-spacer { flex: 1; }

    .nav-hint {
      color: rgba(241,245,249,0.25);
      font-size: 0.55rem;
      text-transform: uppercase;
      letter-spacing: 1.4px;
      font-weight: 800;
      margin-top: 10px;
      margin-bottom: 6px;
    }

    /* WORKCENTER */
    .workcenter{
      padding:40px;
      overflow:auto;
      background:
        radial-gradient(900px 520px at 20% 0%, rgba(56,189,248,0.10) 0%, rgba(56,189,248,0.00) 60%),
        radial-gradient(900px 520px at 80% 15%, rgba(136,108,192,0.10) 0%, rgba(136,108,192,0.00) 60%),
        linear-gradient(180deg, rgba(15,23,42,0.03) 0%, rgba(15,23,42,0.00) 65%);
    }

    /* Header: Solid White Ceiling Architecture */
    .header-sys {
      display: flex;
      flex-direction: column;
      justify-content: center;
      background: #ffffff;
      padding: 0 40px;
      border-bottom: 1px solid rgba(15, 23, 42, 0.08);
      position: sticky;
      top: 0;
      left: 0;
      right: 0;
      height: 110px;
      z-index: 100;
      box-shadow: 0 2px 10px rgba(0,0,0,0.02);
      flex-shrink: 0;
      overflow: visible;
    }
    
    
    /* Row 1: The Title Bar */
    .header-row-top {
      display: flex;
      align-items: center;
      width: 100%;
      margin-bottom: 4px;
      white-space: nowrap;
    }

    /* Row 2: The Control Strip */
    .header-row-bottom {
      display: flex;
      align-items: center;
      width: 100%;
      gap: 24px;
    }

    /* Prevent button text wrapping */
    .header-tools .chip {
      white-space: nowrap;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      min-width: fit-content;
    }

    .circle-progress {
      width: 80px;
      height: 80px;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      flex-shrink: 0;
      margin: 0 !important;
      transform: none !important;
    }
    .progress-svg {
      transform: rotate(-90deg);
      width: 80px; height: 80px;
    }
    .progress-svg circle {
      fill: none;
    }
    .progress-svg .track {
      stroke: #f1f5f9;
      stroke-width: 6;
    }
    .progress-svg .bar {
      stroke-width: 6;
      stroke-linecap: round;
      transition: stroke-dashoffset 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .circle-progress span {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      font-family: var(--font-mono);
      font-size: 0.9rem;
      font-weight: 800;
      color: var(--bg-deep);
      z-index: 2;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      height: 100%;
      pointer-events: none;
    }

  /* main container adjustment */
    .workcenter {
      padding: 0;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      height: 100vh;
      min-width: 0; /* Critical for preventing flex-item blowouts */
    }

    /* New scrollable area that starts BELOW the header */
   #weeksRoot {
      flex: 1;
      overflow-y: auto;
      padding: 30px 40px 40px 40px; 
      scroll-behavior: smooth;
    }

 
    
  
    .header-title h1{ margin:0; font-size:1.8rem; letter-spacing:-0.4px; }
    .header-title .sub{ font-size:0.92rem; color:var(--text-muted); font-weight:600; }

    .header-tools{
      margin-left:auto;
      display:flex; align-items:center; gap:14px;
    }

    /* Toggle */
    .toggle-wrap{
      display:flex; align-items:center; gap:10px;
      padding:10px 12px;
      border-radius:12px;
      border:1px solid rgba(15,23,42,0.08);
      background:rgba(15,23,42,0.02);
    }
    .toggle-label{
      font-size:0.75rem;
      font-weight:900;
      letter-spacing:1.1px;
      text-transform:uppercase;
      color:rgba(15,23,42,0.70);
      white-space:nowrap;
    }
    .switch{
      width:46px; height:26px;
      border-radius:999px;
      background:rgba(15,23,42,0.12);
      position:relative;
      cursor:pointer;
      transition:0.18s ease;
      border:1px solid rgba(15,23,42,0.12);
      flex:0 0 auto;
    }
    .switch::after{
      content:"";
      width:20px; height:20px;
      border-radius:50%;
      background:#fff;
      position:absolute; top:50%; left:3px;
      transform:translateY(-50%);
      box-shadow:0 8px 18px rgba(15,23,42,0.16);
      transition:0.18s ease;
    }
    .switch.on{
      background:rgba(56,189,248,0.22);
      border-color:rgba(56,189,248,0.25);
    }
    .switch.on::after{ left:22px; }

/* Precision scaling for header-specific tools */
    .header-tools .switch::after {
      width: 14px;
      height: 14px;
      left: 2px;
    }
    .header-tools .switch.on::after {
      left: 20px;
    }
    .header-tools .chip:hover {
      background: var(--primary) !important;
      color: #fff !important;
      border-color: var(--primary) !important;
    }
    /* Refined Button States for Legibility */
    .header-tools .chip {
      color: var(--text-main) !important; /* Force high-contrast dark text by default */
      font-weight: 800 !important;
      border: 1px solid rgba(15, 23, 42, 0.15) !important;
    }

    .header-tools .chip:disabled {
      opacity: 0.35 !important;
      cursor: not-allowed !important;
      pointer-events: none !important;
      filter: grayscale(1);
      background: rgba(15, 23, 42, 0.05) !important;
      color: var(--text-main) !important;
      border-color: transparent !important;
      transform: none !important;
    }
    .week-nav-strip {
      display: flex;
      gap: 8px;
      margin-top: 8px;
    }
    .nav-circle {
      width: 24px;
      height: 24px;
      border-radius: 50%;
      border: 2px solid #e2e8f0;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 0.65rem;
      font-weight: 900;
      color: #94a3b8;
      cursor: pointer;
      transition: all 0.2s ease;
    }
    .nav-circle.done {
      background: #10b981; /* Consistent emerald green */
      border-color: #059669;
      color: white;
      box-shadow: 0 0 10px rgba(16, 185, 129, 0.4);
    }
    .nav-circle:hover { transform: scale(1.1); border-color: var(--accent-blue); }

/* Week Nav Tooltip Styles */
    .nav-circle { position: relative; }
    .nav-circle::before {
      content: attr(data-tooltip);
      position: absolute;
      top: 32px;
      left: 50%;
      transform: translateX(-50%) translateY(10px);
      background: var(--bg-deep);
      color: #fff;
      padding: 6px 10px;
      border-radius: 6px;
      font-size: 0.65rem;
      font-weight: 700;
      white-space: nowrap;
      opacity: 0;
      pointer-events: none;
      transition: all 0.2s ease;
      z-index: 1000;
      box-shadow: var(--shadow-node);
    }
    .nav-circle:hover::before {
      opacity: 1;
      transform: translateX(-50%) translateY(0);
    }
    .week-header-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      cursor: pointer;
      user-select: none;
      margin: 26px 0 14px;
    }
    .week-header-row:hover .week-label { color: var(--accent-blue); }
   .week-header-row {
      display: inline-flex; /* Shrink-wrap the header to the text */
      align-items: center;
      gap: 12px;
      cursor: pointer;
      user-select: none;
      margin: 26px 0 14px;
      padding: 4px 8px;
      border-radius: 6px;
      transition: background 0.2s ease;
    }
    .week-header-row:hover {
      background: rgba(15, 23, 42, 0.04);
    }
    .triangle {
      width: 0;
      height: 0;
      border-left: 6px solid transparent;
      border-right: 6px solid transparent;
      border-top: 8px solid var(--primary);
      transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
      transform-origin: center 4px;
    }
    /* Hard override to ensure collapse works regardless of grid settings */
    .week-wrap.collapsed .calendar-grid { 
      display: none !important; 
    }
    
    .week-wrap.collapsed .triangle { 
      transform: rotate(-90deg); 
    }

    /* Ensure the spanning tasks (which are absolute) also hide when parent is collapsed */
    .week-wrap.collapsed .task-bar.is-spanning {
      display: none !important;
    }

    .week-label {
      font-size: 0.72rem; font-weight: 900;
      color: var(--primary);
      text-transform: uppercase;
      letter-spacing: 1.7px;
      margin: 0;
    }

    .week-wrap{
  --span-lane-height: 32px;
  --span-top-padding: 6px;
  --span-bottom-clearance: 26px;
  --span-reserve-height: 0px;
  background:rgba(255,255,255,0.0);
  margin-bottom:22px;
  position:relative;
}

  
    /* 6-CARD WEEK ROW: Mon–Fri + Weekend card (equal sizes) */
   .calendar-grid{
  display:grid;
   grid-template-columns: repeat(5, 1fr) 0.7fr; /* Weekend column narrower */
  gap:12px;
  margin-bottom:28px;
  position:relative;
  min-width:1080px;
  /* Ensures the whole grid is a stacking context container */
  isolation:isolate;
}

/* Use a dedicated class to hide original tasks only when spans are active */
    .task-hidden-by-span {
      display: none !important;
    }

    /* Phase-Shift Spanning Styles */
    .task-bar.is-spanning.completed {
      background: rgba(34, 197, 94, 0.15) !important;
      border-color: rgba(34, 197, 94, 0.5) !important;
      border-style: dashed !important;
      color: #166534;
    }

   



   /* Spans container: Now handles multiple vertical lanes */
       /* Spans container: Now handles multiple vertical lanes */
    .span-row {
  position: absolute;
  left: 0;
  right: 0;
  bottom: var(--span-bottom-clearance);
  min-height: var(--span-reserve-height);
  z-index: 20;
  pointer-events: none;
}

    .span-pill{
      height:24px;
      border-radius:999px;
      display:flex; align-items:center;
      padding:0 10px;
      font-size:0.64rem;
      font-weight:900;
      letter-spacing:0.4px;
      color:rgba(15,23,42,0.92);
      overflow:hidden;
      white-space:nowrap;
      text-overflow:ellipsis;
      box-shadow:0 10px 24px rgba(15,23,42,0.12);
      border:1px solid rgba(15,23,42,0.12);
      background: rgba(56,189,248,0.35);
    }
    .span-pill.muted{
      background: rgba(15,23,42,0.06);
      color: rgba(15,23,42,0.70);
    }
    .span-pill.wait{
      opacity:0.45;
      border-style:dashed;
      background: rgba(15,23,42,0.05);
    }

   /* DAY BOXES */
    .day-node{
      background:#fff;
      min-height:240px; /* Taller to support more lanes */
      border-radius:var(--radius-md);
      padding:14px;
      box-shadow:0 1px 3px rgba(0,0,0,0.10);
      display:flex; flex-direction:column; gap:8px;
      transition:0.22s ease;
      cursor:pointer;
      position:relative;
      border:1px solid rgba(15,23,42,0.05);
      /* overflow: visible is required so spans can exit the card boundaries */
      overflow: visible; 
      z-index: 4;
      outline:none;
    }


    .day-node:hover{
      transform:translateY(-3px);
      box-shadow:var(--shadow-node);
      border-color:rgba(15,23,42,0.10);
    }
    .day-node:active{ transform:translateY(-1px) scale(0.995); }
    .day-node.active{
      border-color: var(--accent-blue) !important;
      box-shadow: 0 10px 30px rgba(56, 189, 248, 0.15);
      transform: translateY(-3px);
      z-index: 10;
    }
    /* Weekend card (6th card, equal size) */
    .day-node.weekend-node{
      background: rgba(15, 23, 42, 0.02);
      border: 1px dashed rgba(15, 23, 42, 0.12);
    }
    .weekend-icon{
      display:flex;
      align-items:center;
      justify-content:center;
      margin-top:22px;
      color: rgba(136,108,192,0.95);
    }
    .weekend-caption{
      margin-top:10px;
      text-align:center;
      font-size:0.72rem;
      font-weight:900;
      letter-spacing:0.6px;
      color: rgba(100,116,139,0.95);
    }
    .weekend-subcopy{
      margin-top:10px;
      text-align:center;
      font-size:0.82rem;
      font-weight:700;
      line-height:1.5;
      color: rgba(15,23,42,0.62);
    }
    .weekend-cta{
      margin-top:auto;
      padding-top:6px;
      font-weight:900;
      text-align:center;
      color: rgba(15,23,42,0.70);
    }

    .day-meta{
      font-size:0.78rem;
      font-weight:900;
      color:#cbd5e1;
      display:flex; align-items:center; justify-content:space-between;
      letter-spacing:0.3px;
      z-index: 2;
    }

    .status-pill{
      font-size:0.62rem; font-weight:900;
      letter-spacing:1.1px; text-transform:uppercase;
      padding:5px 8px;
      border-radius:999px;
      border:1px solid rgba(15,23,42,0.10);
      background:rgba(15,23,42,0.03);
      color:rgba(15,23,42,0.55);
      z-index: 2;
      white-space:nowrap;
    }
    .status-pill.inprogress{
      border-color:rgba(56,189,248,0.30);
      background:rgba(56,189,248,0.10);
      color:rgba(15,23,42,0.75);
    }
    .status-pill.complete{
      border-color:rgba(56,189,248,0.40);
      background:rgba(56,189,248,0.18);
      color:rgba(15,23,42,0.90);
    }

    .day-progress{
      margin-top:auto;
      height:7px;
      background:rgba(15,23,42,0.06);
      border-radius:999px;
      overflow:hidden;
      border:1px solid rgba(15,23,42,0.06);
      z-index: 2;
    }
    .day-progress > i{
      display:block; height:100%;
      width:0%;
      background:linear-gradient(90deg, rgba(56,189,248,0.95), rgba(136,108,192,0.85));
      border-radius:999px;
      transition:width 0.25s ease;
    }

    /* TASKS - Skinnier for Lane Management */
    /* Refined Task Styles for Legibility and Spans */
    .task-bar {
      border-radius: 6px;
      padding: 4px 8px;
      font-size: 0.65rem;
      font-weight: 800;
      color: var(--text-main);
      cursor: pointer;
      transition: 0.16s ease;
      display: flex;
      align-items: center !important;
      gap: 6px;
      border: 1px solid rgba(15,23,42,0.06);
      background: rgba(15,23,42,0.03);
      position: relative;
      z-index: 2;
      outline: none;
      min-height: 24px;
    }

    /* Hide original task only when span is active */
    .task-hidden-by-span {
      display: none !important;
    }

   /* Spanning Bar Base: Supports dynamic top/width/left */
       /* Spanning Bar Base: Supports dynamic top/width/left */
    .task-bar.is-spanning {
      position: absolute;
      z-index: 100;
      cursor: pointer;
      pointer-events: auto;
      box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
      border-width: 2px;
      margin: 0;
      display: flex;
      align-items: center;
      height: 24px;
    }

   /* WAIT STATE (DOTTED/TRANSPARENT) */
    .task-bar.wait:not(.completed) {
      background: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(15,23,42,0.05) 10px, rgba(15,23,42,0.05) 20px) !important;
      border-style: dashed !important;
      opacity: 0.7;
    }

    /* TASK TYPE COLORS (RED/BLUE) */
    .task-bar.blocker:not(.completed) { background: var(--task-red-bg) !important; border-color: var(--task-red-bd) !important; }
    .task-bar.parallel:not(.completed) { background: var(--task-blue-bg) !important; border-color: var(--task-blue-bd) !important; }


    /* Completed but still in a 'Wait' period (Dashed Green) */
    .task-bar.completed.wait {
      border-style: dashed !important;
      background: rgba(34, 197, 94, 0.06) !important;
    }

   

   /* Success State: Professional Mint & Emerald (Matches Code 2) */
.task-bar.completed {
  background: rgba(34, 197, 94, 0.15) !important;
  border: 1px solid rgba(34, 197, 94, 0.4) !important;
  color: #166534 !important;
  opacity: 1 !important;
  box-shadow: none !important;
}

.task-bar.completed .task-dot {
  background: #22c55e !important;
  width: 10px !important;
  height: 10px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
  flex-shrink: 0;
  margin-top: 0 !important;
}

.task-bar.completed .task-dot::after {
  content: "\f00c";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  font-size: 6px;
  color: #ffffff !important;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.task-bar.completed .task-title {
  color: #166534 !important;
  text-decoration: none !important;
  font-weight: 800 !important;
}
    
    

    /* COMMAND PANEL (dark) */
    /* COMMAND PANEL (dark) */
    /* ── GROUP MODE VISUALS ───────────────────────────────────────
       A: gold glow pulse on player border
       B: member avatar strip inside expanded player
       D: waveform shifts to green-gold in group mode
    ──────────────────────────────────────────────────────────── */
    #rl-player.rl-group-active {
      border-bottom: 1px solid rgba(251,191,36,0.35);
      animation: rlGroupGlow 2.8s ease-in-out infinite;
      box-shadow: 0 0 0 1.5px rgba(251,191,36,0.15), 0 0 18px rgba(251,191,36,0.10);
    }
    @keyframes rlGroupGlow {
      0%,100% { box-shadow: 0 0 0 1.5px rgba(251,191,36,0.15), 0 0 14px rgba(251,191,36,0.08); }
      50%      { box-shadow: 0 0 0 1.5px rgba(251,191,36,0.40), 0 0 28px rgba(251,191,36,0.20); }
    }
    /* waveform color shift in group mode (D) */
    #rl-player.rl-group-active .rl-wf-bars .rlb   { background: rgba(52,211,153,0.22); }
    #rl-player.rl-group-active .rl-wf-bars .rlb.rlp{ background: linear-gradient(90deg,#34d399,#fbbf24); }
    #rl-player.rl-group-active .rl-wf-bars .rlb.rlc{ background: #fbbf24; box-shadow: 0 0 6px rgba(251,191,36,0.7); }
    #rl-player.rl-group-active .rl-wf-fill         { background: linear-gradient(90deg,rgba(52,211,153,0.14),rgba(251,191,36,0.06)); }
    /* member strip (B) */
    #rl-members-strip {
      display: none;
      align-items: center;
      gap: 8px;
      padding: 8px 20px 4px;
      border-top: 1px solid rgba(251,191,36,0.12);
    }
    #rl-player.rl-group-active #rl-members-strip { display: flex; }
    .rl-member-av {
      display: flex; flex-direction: column; align-items: center; gap: 3px;
      flex-shrink: 0;
    }
    .rl-member-av-circle {
      width: 28px; height: 28px; border-radius: 50%;
      background: linear-gradient(135deg,#0f172a,#1e293b);
      border: 1.5px solid rgba(251,191,36,0.50);
      display: flex; align-items: center; justify-content: center;
      font-size: .52rem; font-weight: 900; color: #f1f5f9;
      position: relative;
      transition: border-color .3s;
    }
    .rl-member-av-circle.rl-me {
      border-color: #fbbf24;
      box-shadow: 0 0 8px rgba(251,191,36,0.45);
    }
    .rl-member-av-circle .rl-online-dot {
      position: absolute; bottom: -1px; right: -1px;
      width: 8px; height: 8px; border-radius: 50%;
      background: #34d399; border: 1.5px solid #0d1525;
      animation: rlDotPulse 2s ease-in-out infinite;
    }
    @keyframes rlDotPulse {
      0%,100% { opacity:1; transform:scale(1); }
      50%      { opacity:.6; transform:scale(.85); }
    }
    .rl-member-av-name {
      font-size: .48rem; font-weight: 700; color: rgba(226,232,240,.40);
      max-width: 34px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
      text-align: center;
    }
    .rl-member-av.rl-me .rl-member-av-name { color: #fbbf24; }
    /* "synced" flash when remote action comes in */
    @keyframes rlSyncFlash {
      0%   { background: rgba(52,211,153,0.25); }
      100% { background: transparent; }
    }
    .rl-sync-flash { animation: rlSyncFlash .6s ease-out both; }
    /* cursor dots on waveform for each member's position (D) */
    .rl-member-cursor {
      position: absolute; top: 0; bottom: 0; width: 2px;
      border-radius: 1px;
      pointer-events: none; z-index: 5;
      transition: left .4s linear;
    }
    .rl-member-cursor::after {
      content: attr(data-name);
      position: absolute; top: -16px; left: 50%;
      transform: translateX(-50%);
      font-size: .45rem; font-weight: 800;
      background: rgba(15,23,42,.9); color: #fbbf24;
      padding: 1px 4px; border-radius: 3px;
      white-space: nowrap; pointer-events: none;
    }
    /* group session label on pill sub */
    #rl-group-session-label {
      display: none; font-size: .60rem; font-weight: 700;
      color: #fbbf24; white-space: nowrap;
    }
    #rl-player.rl-group-active #rl-group-session-label { display: block; }
    #rl-player.rl-group-active .rl-pi-sub { display: none; }
    /* ── END GROUP MODE VISUALS ── */

    /* ── LANGUAGE FLAG TOGGLE ── */
    #rl-lang-toggle { display: flex; align-items: center; flex-shrink: 0; cursor: pointer; user-select: none; }
    .rl-lt-track { position: relative; width: 52px; height: 28px; background: #1e293b; border: 1px solid rgba(255,255,255,.14); border-radius: 99px; flex-shrink: 0; transition: background .22s, border-color .22s; }
    #rl-lang-toggle:not(.lang-es) .rl-lt-track { background: rgba(56,189,248,.12); border-color: rgba(56,189,248,.3); }
    #rl-lang-toggle.lang-es .rl-lt-track { background: rgba(251,191,36,.08); border-color: rgba(251,191,36,.28); }
    .rl-lt-knob { position: absolute; top: 2px; left: 2px; width: 22px; height: 22px; border-radius: 50%; background: #0f172a; box-shadow: 0 1px 5px rgba(0,0,0,.5); display: flex; align-items: center; justify-content: center; transition: transform .22s cubic-bezier(.4,0,.2,1); overflow: hidden; }
    #rl-lang-toggle.lang-es .rl-lt-knob { transform: translateX(24px); }
    .rl-lt-knob .rl-lt-flag-en, .rl-lt-knob .rl-lt-flag-es { position: absolute; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; transition: opacity .15s; }
    #rl-lang-toggle:not(.lang-es) .rl-lt-knob .rl-lt-flag-en { opacity: 1; }
    #rl-lang-toggle:not(.lang-es) .rl-lt-knob .rl-lt-flag-es { opacity: 0; }
    #rl-lang-toggle.lang-es .rl-lt-knob .rl-lt-flag-es { opacity: 1; }
    #rl-lang-toggle.lang-es .rl-lt-knob .rl-lt-flag-en { opacity: 0; }
    #rl-lang-toggle:active { opacity: .8; }
    /* ── END FLAG TOGGLE ── */

    /* ── NARRATION PLAYER ── top of right panel, lesson mode only ── */
    #rl-player{display:none;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,0.08);background:rgba(8,14,26,0.60);font-family:'Inter',sans-serif}
    #rl-player.rl-visible{display:block}
    #rl-pill{display:flex;align-items:center;gap:10px;padding:11px 20px;cursor:pointer;user-select:none;transition:background .18s}
    #rl-pill:hover{background:rgba(56,189,248,.05)}
    .rl-bars{display:flex;align-items:center;gap:2px;height:16px;flex-shrink:0}
    .rl-bars span{display:block;width:2.5px;border-radius:99px;background:#38bdf8;animation:rlIdle 1.6s ease-in-out infinite}
    .rl-bars span:nth-child(1){height:5px;animation-delay:0s}.rl-bars span:nth-child(2){height:13px;animation-delay:.20s}.rl-bars span:nth-child(3){height:8px;animation-delay:.40s}.rl-bars span:nth-child(4){height:14px;animation-delay:.10s}.rl-bars span:nth-child(5){height:5px;animation-delay:.30s}
    @keyframes rlIdle{0%,100%{transform:scaleY(.4);opacity:.4}50%{transform:scaleY(1);opacity:1}}
    .rl-bars.rl-playing span{animation:rlPlay .65s ease-in-out infinite}
    .rl-bars.rl-playing span:nth-child(1){animation-delay:0s}.rl-bars.rl-playing span:nth-child(2){animation-delay:.13s}.rl-bars.rl-playing span:nth-child(3){animation-delay:.07s}.rl-bars.rl-playing span:nth-child(4){animation-delay:.20s}.rl-bars.rl-playing span:nth-child(5){animation-delay:.03s}
    @keyframes rlPlay{0%,100%{transform:scaleY(.2)}50%{transform:scaleY(1)}}
    #rl-pill-info{flex:1;min-width:0}
    .rl-pi-title{font-size:.72rem;font-weight:700;color:#f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .rl-pi-sub{font-size:.60rem;color:rgba(226,232,240,.38);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    #rl-quick{width:28px;height:28px;border-radius:8px;flex-shrink:0;background:#38bdf8;color:#0f172a;border:none;display:flex;align-items:center;justify-content:center;font-size:.72rem;cursor:pointer;box-shadow:0 3px 10px rgba(56,189,248,.30);transition:filter .15s,transform .12s}
    #rl-quick:hover{filter:brightness(1.12)}#rl-quick:active{transform:scale(.93)}
    #rl-chevron{width:20px;height:20px;border-radius:6px;flex-shrink:0;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);color:rgba(226,232,240,.35);font-size:.62rem;display:flex;align-items:center;justify-content:center;transition:all .15s}
    #rl-pill:hover #rl-chevron{color:#f1f5f9;background:rgba(255,255,255,.09)}
    #rl-body{max-height:0;overflow:hidden;transition:max-height .34s cubic-bezier(.4,0,.2,1);border-top:1px solid rgba(255,255,255,.06)}
    #rl-body.rl-open{max-height:230px}
    .rl-wf-wrap{padding:10px 20px 4px;cursor:pointer}
    .rl-wf-track{position:relative;height:34px;background:rgba(255,255,255,.03);border-radius:7px;overflow:hidden;border:1px solid rgba(255,255,255,.06)}
    .rl-wf-fill{position:absolute;top:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(90deg,rgba(56,189,248,.14),rgba(56,189,248,.04));transition:width .12s linear}
    .rl-wf-bars{display:flex;align-items:center;gap:1.5px;height:100%;padding:0 6px;position:relative;z-index:2}
    .rl-wf-bars .rlb{flex:1;border-radius:2px;min-height:2px;max-height:26px;background:rgba(56,189,248,.22)}
    .rl-wf-bars .rlb.rlp{background:rgba(56,189,248,.78)}.rl-wf-bars .rlb.rlc{background:#fff;box-shadow:0 0 5px rgba(255,255,255,.5)}
    .rl-time-row{display:flex;justify-content:space-between;padding:3px 2px 0;font-size:.57rem;color:rgba(226,232,240,.28);font-family:'Space Mono',monospace}
    .rl-ctrl-row{display:flex;align-items:center;gap:4px;padding:6px 20px 5px}
    .rlb-btn{height:28px;min-width:28px;padding:0 6px;border-radius:7px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.04);color:rgba(226,232,240,.48);display:flex;align-items:center;justify-content:center;font-size:.68rem;cursor:pointer;flex-shrink:0;transition:all .15s}
    .rlb-btn:hover{background:rgba(255,255,255,.09);color:#f1f5f9;transform:translateY(-1px)}.rlb-btn:active{transform:scale(.95)}
    .rlb-btn.rl-play-btn{height:32px;min-width:32px;padding:0 9px;border-radius:9px;background:#38bdf8;color:#0f172a;border-color:transparent;font-size:.78rem;box-shadow:0 4px 12px rgba(56,189,248,.28)}
    .rlb-btn.rl-play-btn:hover{filter:brightness(1.10);background:#38bdf8;color:#0f172a}
    .rlb-btn.rl-play-btn.rl-is-playing{background:rgba(56,189,248,.12);color:#38bdf8;border-color:rgba(56,189,248,.25);box-shadow:none}
    .rl-spd-wrap{display:flex;align-items:center;gap:1px;flex-shrink:0;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);border-radius:7px;padding:2px}
    .rl-spd{padding:2px 5px;border-radius:4px;font-size:.54rem;font-weight:700;color:rgba(226,232,240,.36);cursor:pointer;border:none;background:none;font-family:'Space Mono',monospace;transition:all .12s}
    .rl-spd:hover{color:#f1f5f9}.rl-spd.rl-sa{background:#38bdf8;color:#0f172a}
    .rl-vol-row{display:flex;align-items:center;gap:8px;padding:4px 20px 10px}
    .rl-vol-ico{font-size:.7rem;color:rgba(226,232,240,.42);cursor:pointer;flex-shrink:0}
    .rl-vol-sl{flex:1;height:3px;-webkit-appearance:none;appearance:none;background:rgba(255,255,255,.12);border-radius:99px;cursor:pointer;outline:none}
    .rl-vol-sl::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:11px;border-radius:50%;background:#38bdf8;cursor:pointer;box-shadow:0 0 5px rgba(56,189,248,.4)}
    #rl-no-audio{font-size:.60rem;color:rgba(226,232,240,.26);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    #rl-group-btn{flex-shrink:0;width:28px;height:28px;border-radius:7px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);color:rgba(226,232,240,.38);font-size:.72rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .18s;user-select:none}
    #rl-group-btn:hover{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.18);color:rgba(226,232,240,.75)}
    #rl-player.rl-gp-open #rl-body.rl-open{max-height:600px}
    /* ── end narration player ── */

    /* ── AI TUTOR ─────────────────────────────────────────────── */
    #ai-tutor-wrap{display:flex;flex-direction:column;height:100%;background:#0d1525}
    #ai-tutor-context-bar{flex-shrink:0;padding:10px 18px 8px;border-bottom:1px solid rgba(255,255,255,.06);display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:rgba(136,108,192,.06)}
    .ai-ctx-chip{display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:99px;font-size:.57rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;border:1px solid transparent;flex-shrink:0}
    .ai-ctx-chip.lesson{background:rgba(56,189,248,.10);color:#38bdf8;border-color:rgba(56,189,248,.18)}
    .ai-ctx-chip.progress{background:rgba(52,211,153,.10);color:#34d399;border-color:rgba(52,211,153,.18)}
    .ai-ctx-chip.syllabus{background:rgba(136,108,192,.12);color:#886CC0;border-color:rgba(136,108,192,.22)}
    #ai-tutor-messages{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.08) transparent}
    #ai-tutor-messages::-webkit-scrollbar{width:4px}
    #ai-tutor-messages::-webkit-scrollbar-thumb{background:rgba(255,255,255,.10);border-radius:99px}
    .ai-msg{display:flex;flex-direction:column;gap:3px;animation:aiIn .22s cubic-bezier(.4,0,.2,1) both}
    @keyframes aiIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
    .ai-msg-meta{display:flex;align-items:center;gap:6px}
    .ai-msg-avatar{width:22px;height:22px;border-radius:6px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.55rem;font-weight:900}
    .ai-msg-avatar.ai{background:linear-gradient(135deg,rgba(136,108,192,.4),rgba(56,189,248,.3));color:#f1f5f9;border:1px solid rgba(136,108,192,.35)}
    .ai-msg-avatar.you{background:rgba(56,189,248,.15);color:#38bdf8;border:1px solid rgba(56,189,248,.25)}
    .ai-msg-name{font-size:.60rem;font-weight:800;color:rgba(226,232,240,.45)}
    .ai-msg-bubble{font-size:.81rem;line-height:1.7;padding:8px 11px;word-break:break-word}
    .ai-msg-bubble.ai{background:rgba(136,108,192,.10);color:#e2e8f0;border:1px solid rgba(136,108,192,.15);border-radius:4px 10px 10px 10px;margin-left:28px}
    .ai-msg-bubble.you{background:rgba(56,189,248,.10);color:#e2e8f0;border:1px solid rgba(56,189,248,.18);border-radius:10px 4px 10px 10px;margin-left:auto;max-width:90%}
    .ai-msg-bubble.ai p{margin:0 0 7px}.ai-msg-bubble.ai p:last-child{margin:0}
    .ai-msg-bubble.ai ul{margin:5px 0;padding-left:16px}.ai-msg-bubble.ai li{margin-bottom:3px}
    .ai-msg-bubble.ai strong{color:#f1f5f9}
    .ai-msg-bubble.ai code{background:rgba(255,255,255,.08);padding:1px 4px;border-radius:4px;font-size:.76rem}
    .ai-typing{display:flex;gap:4px;align-items:center;padding:8px 11px;margin-left:28px}
    .ai-typing span{width:6px;height:6px;border-radius:50%;background:rgba(136,108,192,.6);animation:aiDot 1.2s ease-in-out infinite}
    .ai-typing span:nth-child(2){animation-delay:.2s}.ai-typing span:nth-child(3){animation-delay:.4s}
    @keyframes aiDot{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-5px)}}
    #ai-quick-prompts{flex-shrink:0;padding:6px 16px 5px;display:flex;gap:4px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.05)}
    .ai-quick-btn{font-size:.58rem;font-weight:700;padding:4px 9px;border-radius:99px;cursor:pointer;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);color:rgba(226,232,240,.48);transition:all .15s;white-space:nowrap}
    .ai-quick-btn:hover{background:rgba(136,108,192,.15);color:#886CC0;border-color:rgba(136,108,192,.3)}
    #ai-compose{flex-shrink:0;padding:7px 14px 11px;border-top:1px solid rgba(255,255,255,.06);background:rgba(8,14,26,.8)}
    #ai-compose-inner{display:flex;gap:5px;align-items:flex-end;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.10);border-radius:11px;padding:7px 7px 7px 11px;transition:border-color .18s}
    #ai-compose-inner:focus-within{border-color:rgba(136,108,192,.45);box-shadow:0 0 0 3px rgba(136,108,192,.07)}
    #ai-input{flex:1;min-height:20px;max-height:100px;background:transparent;border:none;outline:none;resize:none;color:#f1f5f9;font-family:'Inter',sans-serif;font-size:.81rem;line-height:1.55;scrollbar-width:thin}
    #ai-input::placeholder{color:rgba(226,232,240,.25)}
    #ai-send-btn{width:28px;height:28px;border-radius:8px;flex-shrink:0;background:#886CC0;color:#fff;border:none;display:flex;align-items:center;justify-content:center;font-size:.7rem;cursor:pointer;box-shadow:0 3px 9px rgba(136,108,192,.30);transition:filter .15s,transform .12s}
    #ai-send-btn:hover{filter:brightness(1.12)}#ai-send-btn:active{transform:scale(.93)}
    #ai-send-btn:disabled{opacity:.35;cursor:not-allowed;filter:none;transform:none}
    #ai-clear-btn{font-size:.57rem;color:rgba(226,232,240,.22);cursor:pointer;padding:2px 5px;border-radius:4px;border:none;background:none;transition:color .15s}
    #ai-clear-btn:hover{color:rgba(226,232,240,.50)}
    /* ── END AI TUTOR ── */

    /* ── CONTEXTUAL GUIDE ─────────────────────────────────────
       Right-panel coach that updates as student uses the UI.
       Spotlight ring pulses on the element being described.
    ──────────────────────────────────────────────────────────*/

    /* Spotlight ring — positioned over the target element */
    #cg-spotlight {
      position: fixed; pointer-events: none; z-index: 9998;
      border-radius: 12px;
      box-shadow: 0 0 0 4px rgba(56,189,248,0.7), 0 0 0 8px rgba(56,189,248,0.18);
      animation: cgPulse 1.6s ease-in-out infinite;
      transition: top .4s cubic-bezier(.4,0,.2,1),
                  left .4s cubic-bezier(.4,0,.2,1),
                  width .4s cubic-bezier(.4,0,.2,1),
                  height .4s cubic-bezier(.4,0,.2,1),
                  opacity .3s;
      opacity: 0;
    }
    #cg-spotlight.cg-visible { opacity: 1; }
    @keyframes cgPulse {
      0%,100% { box-shadow: 0 0 0 3px rgba(56,189,248,.8), 0 0 0 7px rgba(56,189,248,.15); }
      50%      { box-shadow: 0 0 0 5px rgba(56,189,248,.5), 0 0 0 14px rgba(56,189,248,.08); }
    }

    /* Right-panel guide card */
    #cg-panel {
      flex-shrink: 0;
      border-bottom: 1px solid rgba(255,255,255,.08);
      background: linear-gradient(135deg, rgba(56,189,248,.07), rgba(136,108,192,.05));
      display: none;
    }
    #cg-panel.cg-active { display: block; }

    #cg-bar {
      display: flex; align-items: center; gap: 8px;
      padding: 10px 18px 8px;
    }
    #cg-progress-track {
      flex: 1; height: 3px; background: rgba(255,255,255,.10);
      border-radius: 99px; overflow: hidden;
    }
    #cg-progress-fill {
      height: 100%; background: #38bdf8; border-radius: 99px;
      transition: width .4s cubic-bezier(.4,0,.2,1);
    }
    #cg-step-count {
      font-size: .58rem; font-weight: 800; color: rgba(56,189,248,.70);
      letter-spacing: .06em; white-space: nowrap; flex-shrink: 0;
    }
    #cg-close {
      width: 18px; height: 18px; border-radius: 5px; flex-shrink: 0;
      background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.09);
      color: rgba(226,232,240,.35); font-size: .55rem;
      display: flex; align-items: center; justify-content: center;
      cursor: pointer; transition: all .15s;
    }
    #cg-close:hover { color: #f1f5f9; background: rgba(255,255,255,.10); }

    #cg-content { padding: 4px 18px 14px; }
    #cg-icon {
      font-size: 1.4rem; margin-bottom: 6px; display: block;
    }
    #cg-title {
      font-size: .85rem; font-weight: 800; color: #f1f5f9;
      margin: 0 0 5px; line-height: 1.3;
    }
    #cg-body {
      font-size: .76rem; line-height: 1.65; color: rgba(226,232,240,.55);
      margin: 0 0 10px;
    }
    #cg-body strong { color: #f1f5f9; }
    #cg-action-btn {
      display: inline-flex; align-items: center; gap: 6px;
      padding: 7px 14px; border-radius: 8px; border: none; cursor: pointer;
      font-size: .72rem; font-weight: 800; transition: filter .15s, transform .12s;
      background: #38bdf8; color: #0f172a;
    }
    #cg-action-btn:hover { filter: brightness(1.10); }
    #cg-action-btn:active { transform: scale(.96); }
    #cg-skip-link {
      display: inline-block; margin-left: 10px;
      font-size: .62rem; color: rgba(226,232,240,.25); cursor: pointer;
      transition: color .15s;
    }
    #cg-skip-link:hover { color: rgba(226,232,240,.50); }
    /* ── END CONTEXTUAL GUIDE ── */

    /* ── SYSTEM SETUP GUIDE ─────────────────────────────────
       Pulsing init button on bolt page.
       Sticky guide strip replaces right panel content step-by-step.
    ──────────────────────────────────────────────────────── */

    /* Pulsing "Initialize" button on bolt page */
    #sg-init-btn {
      display: flex; align-items: center; gap: 10px;
      padding: 14px 22px; border-radius: 14px; border: none; cursor: pointer;
      background: linear-gradient(135deg, #38bdf8, #886CC0);
      color: #fff; font-weight: 900; font-size: .88rem;
      letter-spacing: .02em;
      box-shadow: 0 0 0 0 rgba(56,189,248,.6);
      animation: sgInitPulse 2s ease-in-out infinite;
      transition: filter .18s, transform .12s;
      margin-bottom: 24px; width: 100%;
      justify-content: center;
    }
    #sg-init-btn:hover  { filter: brightness(1.12); animation: none; box-shadow: 0 8px 28px rgba(56,189,248,.4); }
    #sg-init-btn:active { transform: scale(.97); }
    #sg-init-btn.sg-hidden { display: none; }
    @keyframes sgInitPulse {
      0%,100% { box-shadow: 0 0 0 0 rgba(56,189,248,.5), 0 6px 20px rgba(56,189,248,.25); }
      50%      { box-shadow: 0 0 0 14px rgba(56,189,248,.0), 0 6px 20px rgba(56,189,248,.35); }
    }

    /* Right panel guide content */
    #sg-guide-panel {
      display: flex; flex-direction: column; height: 100%;
    }
    #sg-guide-header {
      flex-shrink: 0; padding: 22px 28px 16px;
      background: linear-gradient(135deg,rgba(56,189,248,.10),rgba(136,108,192,.08));
      border-bottom: 1px solid rgba(255,255,255,.07);
    }
    #sg-guide-step-tag {
      font-size: .58rem; font-weight: 900; letter-spacing: .10em;
      text-transform: uppercase; color: rgba(56,189,248,.75);
      margin-bottom: 6px;
    }
    #sg-guide-title {
      font-size: 1.45rem; font-weight: 800; color: #f1f5f9;
      letter-spacing: -.3px; margin: 0 0 4px;
    }
    #sg-guide-subtitle {
      font-size: .76rem; color: rgba(226,232,240,.45); margin: 0;
    }
    /* progress bar */
    #sg-guide-prog-wrap {
      flex-shrink: 0; padding: 12px 28px 0;
      border-bottom: 1px solid rgba(255,255,255,.05);
    }
    #sg-guide-prog-row {
      display: flex; align-items: center; gap: 8px; padding-bottom: 10px;
    }
    #sg-guide-prog-track {
      flex: 1; height: 3px; background: rgba(255,255,255,.08); border-radius: 99px; overflow: hidden;
    }
    #sg-guide-prog-fill {
      height: 100%; background: #38bdf8; border-radius: 99px;
      transition: width .5s cubic-bezier(.4,0,.2,1);
    }
    #sg-guide-step-count {
      font-size: .58rem; font-weight: 800; color: rgba(56,189,248,.65);
      white-space: nowrap; flex-shrink: 0;
    }
    /* step dots */
    #sg-guide-dots {
      display: flex; gap: 5px; padding-bottom: 10px;
    }
    .sg-dot {
      height: 5px; border-radius: 99px; transition: all .3s;
      background: rgba(255,255,255,.12);
      flex: 1;
    }
    .sg-dot.sg-done   { background: #34d399; }
    .sg-dot.sg-active { background: #38bdf8; }
    /* scroll body */
    #sg-guide-body {
      flex: 1; overflow-y: auto; padding: 20px 28px;
      scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.08) transparent;
    }
    #sg-guide-body::-webkit-scrollbar { width: 4px; }
    #sg-guide-body::-webkit-scrollbar-thumb { background: rgba(255,255,255,.10); border-radius: 99px; }
    /* content blocks */
    .sg-info-card {
      background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07);
      border-radius: 12px; padding: 14px 16px; margin-bottom: 12px;
      display: flex; align-items: flex-start; gap: 12px;
    }
    .sg-info-icon {
      font-size: 1.25rem; flex-shrink: 0; margin-top: 1px;
    }
    .sg-info-text h3 { margin: 0 0 4px; font-size: .83rem; font-weight: 800; color: #f1f5f9; }
    .sg-info-text p  { margin: 0; font-size: .75rem; line-height: 1.65; color: rgba(226,232,240,.52); }
    .sg-info-text p strong { color: #f1f5f9; }
    .sg-tip {
      display: flex; gap: 9px; align-items: flex-start;
      padding: 9px 13px; border-radius: 10px;
      background: rgba(56,189,248,.07); border: 1px solid rgba(56,189,248,.14);
      margin-bottom: 12px;
    }
    .sg-tip p { margin: 0; font-size: .73rem; line-height: 1.6; color: rgba(226,232,240,.55); }
    .sg-tip p strong { color: #38bdf8; }
    .sg-action-card {
      background: rgba(136,108,192,.08); border: 1px solid rgba(136,108,192,.18);
      border-radius: 12px; padding: 14px 16px; margin-bottom: 12px;
    }
    .sg-action-card .sg-action-label {
      font-size: .58rem; font-weight: 900; text-transform: uppercase;
      letter-spacing: .08em; color: rgba(136,108,192,.80); margin-bottom: 8px;
    }
    .sg-action-card p {
      font-size: .78rem; line-height: 1.65; color: rgba(226,232,240,.65);
      margin: 0 0 10px;
    }
    .sg-field { margin-bottom: 10px; }
    .sg-field label { display: block; font-size: .58rem; font-weight: 900; text-transform: uppercase; letter-spacing: .07em; color: rgba(226,232,240,.38); margin-bottom: 5px; }
    .sg-field input { width: 100%; box-sizing: border-box; padding: 9px 12px; border-radius: 8px; border: 1px solid rgba(255,255,255,.10); background: rgba(255,255,255,.06); color: #f1f5f9; font-size: .82rem; font-family: inherit; outline: none; transition: border-color .18s; }
    .sg-field input:focus { border-color: rgba(56,189,248,.45); }
    .sg-field input::placeholder { color: rgba(226,232,240,.22); }
    /* footer */
    #sg-guide-footer {
      flex-shrink: 0; padding: 14px 28px 20px;
      border-top: 1px solid rgba(255,255,255,.07);
      background: rgba(8,14,26,.6);
      display: flex; align-items: center; justify-content: space-between; gap: 10px;
    }
    #sg-guide-exit {
      font-size: .65rem; color: rgba(226,232,240,.22); background: none; border: none;
      cursor: pointer; transition: color .15s; padding: 0; white-space: nowrap;
    }
    #sg-guide-exit:hover { color: rgba(226,232,240,.50); }
    #sg-guide-next {
      flex: 1; max-width: 220px; padding: 11px 18px; border-radius: 10px;
      font-size: .80rem; font-weight: 800; border: none; cursor: pointer;
      background: #38bdf8; color: #0f172a;
      box-shadow: 0 4px 14px rgba(56,189,248,.25);
      transition: filter .15s, transform .12s;
    }
    #sg-guide-next:hover { filter: brightness(1.10); }
    #sg-guide-next:active { transform: scale(.97); }
    #sg-guide-next.sg-finish { background: #34d399; box-shadow: 0 4px 14px rgba(52,211,153,.25); color: #0f172a; }
    /* ── END SETUP GUIDE ── */

    .command-panel{
      background:var(--bg-deep); color:#f1f5f9;
      display:flex; flex-direction:column;
      box-shadow:-15px 0 45px rgba(0,0,0,0.20);
      border-left:1px solid rgba(255,255,255,0.06);
      height: 100vh;
      position: relative;
      overflow: hidden;
    }


    .panel-header{
      padding:34px 40px 26px;
      border-bottom:1px solid rgba(255,255,255,0.06);
      background:
        radial-gradient(700px 220px at 25% 0%, rgba(56,189,248,0.18) 0%, rgba(56,189,248,0.00) 70%),
        radial-gradient(700px 220px at 80% 0%, rgba(136,108,192,0.16) 0%, rgba(136,108,192,0.00) 70%),
        linear-gradient(180deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0.00) 100%);
    }
    .panel-header h2{ margin:0; font-size:1.8rem; letter-spacing:-0.5px; }
    .panel-header p{ margin:6px 0 0 0; color:rgba(226,232,240,0.55); font-weight:600; }

    .panel-scroll{
      padding:26px 40px 34px;
      flex:1; overflow-y:auto;
      transition:0.18s ease;
      transform:translateY(0px);
      opacity:1;
    }
    .panel-scroll.is-transitioning{ opacity:0; transform:translateY(6px); }

    .label-accent{
      color:var(--accent-blue);
      font-size:0.68rem;
      font-weight:900;
      text-transform:uppercase;
      letter-spacing:1.7px;
      display:block;
      margin-bottom:12px;
    }

    .ai-bubble{
      background:rgba(255,255,255,0.035);
      border-radius:var(--radius-xl);
      padding:18px;
      margin-bottom:20px;
      position:relative;
      border:1px solid rgba(255,255,255,0.06);
      box-shadow:0 18px 40px rgba(0,0,0,0.20);
    }
    .ai-badge{
      position:absolute; top:-10px; left:14px;
      background:var(--accent-blue); color:#000;
      font-size:0.6rem; font-weight:900;
      padding:2px 8px; border-radius:6px;
      letter-spacing:1.0px;
    }
    .ai-row{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
    .ai-icon{
      width:34px; height:34px; border-radius:12px;
      display:grid; place-items:center;
      background:rgba(56,189,248,0.12);
      border:1px solid rgba(56,189,248,0.22);
      color:#fff;
    }
    .ai-title{ font-weight:900; letter-spacing:0.2px; color:#fff; }
    .ai-text{ color:var(--muted-dark); line-height:1.7; font-size:0.94rem; font-weight:500; }

    .metric-row{ display:flex; gap:12px; margin:18px 0 22px; }
    .metric-card{
      background:rgba(255,255,255,0.05);
      padding:14px;
      border-radius:var(--radius-md);
      flex:1;
      border:1px solid rgba(255,255,255,0.06);
    }
    .metric-card span{
      display:block;
      font-size:0.62rem;
      color:rgba(226,232,240,0.60);
      margin-bottom:6px;
      font-weight:900;
      letter-spacing:1.3px;
      text-transform:uppercase;
    }
    .metric-card b{ font-family:var(--font-mono); font-size:1.15rem; color:#fff; }

    .notes-hub{
      background:#000;
      border-radius:var(--radius-xl);
      padding:18px;
      margin-top:20px;
      border:1px solid rgba(255,255,255,0.05);
      box-shadow:0 18px 45px rgba(0,0,0,0.30);
    }
    .ntab-active { color: var(--primary) !important; background: rgba(59,130,246,0.08) !important; }
    .ntab-active i { color: var(--primary) !important; }
    #notes-textarea:focus { border-color: var(--primary) !important; background: inherit !important; }

    textarea{
      width:100%;
      background:transparent;
      border:none;
      color:#cbd5e1;
      outline:none;
      resize:none;
      font-family:inherit;
      line-height:1.65;
      font-size:0.92rem;
    }
    textarea::placeholder{ color:rgba(203,213,225,0.40); }

    .btn-complete{
      background:var(--accent-blue);
      color:#0f172a;
      width:100%;
      padding:16px 18px;
      border:none;
      border-radius:var(--radius-xl);
      font-weight:900;
      cursor:pointer;
      margin-top:18px;
      text-transform:uppercase;
      letter-spacing:1.2px;
      transition:0.16s ease;
      box-shadow:0 18px 45px rgba(56,189,248,0.12);
      outline:none;
    }
    .btn-complete:hover{ transform:translateY(-1px); filter:brightness(1.02); }
    .btn-complete:active{ transform:translateY(0px) scale(0.99); }

    .overview-task-item{
      padding:14px 0;
      border-bottom:1px solid rgba(255,255,255,0.06);
      display:flex; justify-content:space-between; align-items:center;
      gap:14px;
    }

    /* Money Pot UI */
    .money-card{
      background:rgba(255,255,255,0.05);
      border:1px solid rgba(255,255,255,0.06);
      border-radius:14px;
      padding:16px;
      box-shadow:0 18px 40px rgba(0,0,0,0.18);
      margin-bottom:16px;
    }
    .money-top{
      display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
      margin-bottom:12px;
    }
    .money-amt{
      font-family:var(--font-mono);
      font-size:1.35rem;
      font-weight:900;
      color:#fff;
      line-height:1.1;
    }
    .money-sub{
      color:rgba(226,232,240,0.60);
      font-weight:600;
      font-size:0.9rem;
      margin-top:4px;
      line-height:1.4;
    }
    .money-pill{
      font-size:0.62rem; font-weight:900;
      letter-spacing:1.1px; text-transform:uppercase;
      padding:6px 10px;
      border-radius:999px;
      border:1px solid rgba(56,189,248,0.22);
      background:rgba(56,189,248,0.10);
      color:#fff;
      white-space:nowrap;
    }
    .money-bar{
      height:10px;
      background:rgba(226,232,240,0.10);
      border-radius:999px;
      overflow:hidden;
      border:1px solid rgba(255,255,255,0.06);
      margin-bottom:12px;
    }
    .money-bar > i{
      display:block;
      height:100%;
      width:0%;
      background:linear-gradient(90deg, rgba(34,197,94,0.95), rgba(56,189,248,0.85));
      border-radius:999px;
      transition:width 0.25s ease;
    }
    .money-actions{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
    }
    .chip{
      border:1px solid rgba(255,255,255,0.10);
      background:rgba(255,255,255,0.04);
      color:#fff;
      border-radius:999px;
      padding:10px 12px;
      font-weight:900;
      font-size:0.78rem;
      cursor:pointer;
      transition:0.14s ease;
      user-select:none;
      outline:none;
    }
    /* Chips inside the light calendar header use dark styling */
    #header-calendar-tools .chip {
      color: #334155;
      background: rgba(15,23,42,0.05);
      border-color: rgba(15,23,42,0.12);
    }
    #header-calendar-tools .chip:hover {
      background: rgba(15,23,42,0.09);
    }
    /* Nav circles in light header */
    #header-calendar-tools .nav-circle {
      color: #64748b;
      border-color: #e2e8f0;
    }
    #header-calendar-tools .nav-circle:hover,
    #header-calendar-tools .nav-circle.active {
      background: var(--primary);
      color: #fff;
      border-color: var(--primary);
    }
    /* Toggle wrap in light header */
    #header-calendar-tools .toggle-wrap {
      border-color: rgba(15,23,42,0.12) !important;
    }
    #header-calendar-tools .toggle-label {
      color: #64748b !important;
    }
    .chip:hover{ transform:translateY(-1px); background:rgba(255,255,255,0.06); }
    .chip:active{ transform:translateY(0px) scale(0.99); }

    .money-form{
      margin-top:14px;
      display:flex;
      gap:10px;
    }
    .money-input{
      flex:1;
      border-radius:12px;
      border:1px solid rgba(255,255,255,0.10);
      background:rgba(0,0,0,0.35);
      color:#fff;
      padding:12px 12px;
      font-family:var(--font-mono);
      font-weight:800;
      outline:none;
    }
    .money-input::placeholder{ color:rgba(226,232,240,0.35); }
    .money-add{
      border-radius:12px;
      border:1px solid rgba(56,189,248,0.22);
      background:rgba(56,189,248,0.14);
      color:#fff;
      padding:12px 14px;
      font-weight:900;
      cursor:pointer;
      transition:0.14s ease;
      white-space:nowrap;
      outline:none;
    }
    .money-add:hover{ background:rgba(56,189,248,0.20); transform:translateY(-1px); }
    .money-add:active{ transform:translateY(0px) scale(0.99); }

    /* focus */
    .nav-btn:focus-visible,
    .task-bar:focus-visible,
    .day-node:focus-visible,
    .btn-complete:focus-visible,
    .switch:focus-visible,
    .chip:focus-visible,
    .money-input:focus-visible,
    .money-add:focus-visible{
      outline:2px solid rgba(56,189,248,0.55);
      outline-offset:2px;
    }

    /* scrollbars */
    .panel-scroll::-webkit-scrollbar,
    .workcenter::-webkit-scrollbar{ width:10px; height:10px; }
    .panel-scroll::-webkit-scrollbar-thumb,
    .workcenter::-webkit-scrollbar-thumb{
      background:rgba(148,163,184,0.30);
      border-radius:999px;
      border:3px solid rgba(0,0,0,0);
      background-clip:padding-box;
    }
    .panel-scroll::-webkit-scrollbar-thumb:hover,
    .workcenter::-webkit-scrollbar-thumb:hover{
      background:rgba(148,163,184,0.42);
      border:3px solid rgba(0,0,0,0);
      background-clip:padding-box;
    }
    
    
    
    
    
    
    /* ============================================================
       CLEAN UNIFIED UI LOGIC (Padding + Rainbow + Green Button)
       ============================================================ */

    /* 1. CARD ARCHITECTURE & PADDING ENFORCEMENT */
    .day-node {
      padding: 0 !important;
      overflow: visible; /* Changed from hidden to show watermark and spans */
      position: relative;
      display: flex;
      flex-direction: column;
      background: #fff;
      border: 1px solid rgba(15, 23, 42, 0.1) !important;
      min-height: 240px;
    }

/* INDENT FIX: Keep tasks 15px away from card edges */
   
    
   /* Split Card Zones */
    /* Split Card Zones */
.edu-zone {
  position: relative;
      padding: 14px 12px 12px 12px;
  background:
    linear-gradient(180deg, rgba(136, 108, 192, 0.18) 0%, rgba(136, 108, 192, 0.10) 100%),
    linear-gradient(90deg, rgba(136, 108, 192, 0.10) 0%, rgba(136, 108, 192, 0.00) 100%);
  border-top: 1px solid rgba(136, 108, 192, 0.22);
  border-bottom: 1px solid rgba(136, 108, 192, 0.24);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.55), inset 0 -1px 0 rgba(136, 108, 192, 0.10);
  flex-grow: 0;
}



.action-zone {
      padding: 16px 12px calc(20px + var(--span-bottom-clearance) + var(--span-reserve-height)) 12px;
  background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(248,250,252,0.96) 100%);
  border-top: 1px solid rgba(15, 23, 42, 0.06);
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: calc(220px + var(--span-bottom-clearance) + var(--span-reserve-height));
  position: relative;
}

.zone-label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: fit-content;
  font-size: 0.62rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  margin-bottom: 10px;
  padding: 7px 10px;
  border-radius: 999px;
  border: 1px solid transparent;
  line-height: 1;
}

.edu-zone .zone-label {
  color: #5b21b6;
  background: rgba(255,255,255,0.72);
  border-color: rgba(136, 108, 192, 0.22);
  box-shadow: 0 6px 16px rgba(136, 108, 192, 0.10);
}

.action-zone .zone-label {
  color: #0369a1;
  background: rgba(56, 189, 248, 0.10);
  border-color: rgba(56, 189, 248, 0.18);
}

/* Make education tasks stand out against the purple education zone */
.edu-zone .task-bar {
  background: #ffffff !important;
  border: 1px solid rgba(136, 108, 192, 0.25);
  box-shadow: 0 4px 10px rgba(15, 23, 42, 0.05);
}

.edu-zone .task-bar.completed:not(.wait) {
  background: #ecfdf5 !important;
  border-color: #86efac !important;
  box-shadow: 0 4px 10px rgba(16, 185, 129, 0.10);
}


.edu-zone .task-bar:hover {
  box-shadow: 0 6px 14px rgba(15, 23, 42, 0.08);
}
    /* Task styling within zones */
    .day-node .task-bar {
        width: 100% !important;
  margin-left: 0 !important;
      margin-right: 0 !important;
      margin-bottom: 6px;
    }

   

    .day-node .day-progress {
      margin: auto 15px 15px 15px !important;
    }

    /* 2. DULL-TO-VIVID HEADER LOGIC */
    .day-meta {
      padding: 12px 15px;
      margin-bottom: 12px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      background: #cbd5e1; /* Neutral Slate Grey when incomplete */
      transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .day-meta span {
      color: #1e293b !important; /* High contrast dark text on grey */
      font-weight: 800;
      font-size: 0.75rem;
      letter-spacing: 0.5px;
    }

    /* 3. SUCCESS STATE: THE GLOW & WATERMARK */
    .day-node:has(.status-pill.complete) .day-meta {
      background: var(--week-color) !important;
    }

    .day-node:has(.status-pill.complete) .day-meta span {
      color: #ffffff !important; /* Pure white text on vibrant header */
      text-shadow: 0 1px 2px rgba(0,0,0,0.2);
    }

   

    /* THE RAINBOW PALETTE */
    #grid-w1 { --week-color: #2563eb; } /* Blue */
    #grid-w2 { --week-color: #7c3aed; } /* Purple */
    #grid-w3 { --week-color: #dc2626; } /* Red */
    #grid-w4 { --week-color: #ea580c; } /* Orange */
    #grid-w5 { --week-color: #16a34a; } /* Green */
    #grid-w6 { --week-color: #ca8a04; } /* Gold */

  

    /* 5. UNIVERSAL GREEN COMPLETION BUTTON */
    button#btnComplete, .btn-complete {
      background: #22c55e !important; /* Pure Success Green */
      color: #fff !important;
      border: none !important;
      padding: 16px !important;
      font-weight: 900 !important;
      text-transform: uppercase;
      border-radius: 12px !important;
      box-shadow: 0 8px 20px rgba(34, 197, 94, 0.3) !important;
      cursor: pointer;
      width: 100%;
      margin-top: 18px;
    }

    button#btnComplete:hover {
      background: #15803d !important;
      transform: translateY(-1px);
    }
/* High-Contrast Hub Button States */
    .btn-hub-active {
      background: #16a34a !important; /* Slightly darker green for depth */
      color: #ffffff !important; /* Force pure white text */
      border: 1px solid #15803d !important;
      box-shadow: 0 4px 12px rgba(22, 163, 74, 0.2) !important;
      font-weight: 900 !important;
      text-transform: uppercase !important;
    }

    .btn-hub-completed {
      background: rgba(34, 197, 94, 0.15) !important;
      color: #15803d !important;
      border: 2px solid #22c55e !important;
      box-shadow: none !important;
    }
    /* 6. TASK BARS BASE & COMPLETION */
    .task-bar {
      border-radius: 6px;
      padding: 4px 8px;
      font-size: 0.65rem;
      font-weight: 800;
      color: var(--text-main);
      cursor: pointer;
      transition: 0.16s ease;
      display: flex;
      align-items: center !important;
      gap: 6px;
      border: 1px solid rgba(15,23,42,0.06);
      background: rgba(15,23,42,0.03);
      position: relative;
      z-index: 2;
    }

    /* Only allow dashed if specifically in wait mode AND not yet received */
    .task-bar.wait:not(.received), 
    .task-bar.completed.wait {
      border-style: dashed !important;
    }

    /* Ensure spanning bars respect the same solid logic */
    .task-bar.is-spanning.completed:not(.wait) {
      border-style: solid !important;
      background: #ecfdf5 !important;
    }

    .task-bar.blocker { background: var(--task-red-bg); border-color: var(--task-red-bd); }
    .task-bar.parallel { background: var(--task-blue-bg); border-color: var(--task-blue-bd); }

    .task-left { 
      display: flex; 
      align-items: center; 
      gap: 6px;
      flex: 1; 
      min-width: 0; 
    }
    .task-dot { 
      display: none !important; /* Demo'd: Dots removed for horizontal efficiency */
    }
    
    /* Green dot for completed tasks */
    .task-bar.completed .task-dot {
      background: #10b981 !important;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
    }
    .task-bar.completed .task-dot::after {
      content: "\f00c"; font-family: "Font Awesome 6 Free"; font-weight: 900;
      font-size: 5px; color: white; position: absolute;
    }

/* The Container that holds the bar */
.progress-track-container {
  width: 100%;
  height: 6px;
  background: rgba(15, 23, 42, 0.05); /* Recessed "glass" look */
  border-radius: 999px;
  margin-top: 12px;
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, 0.03);
}

/* The container providing the "Grey Limit" */
.progress-track {
  width: 100%;
  height: 8px;
  background: #e2e8f0; /* The grey "end" of the bar */
  border-radius: 999px;
  margin-top: 8px;
  overflow: hidden;
  position: relative;
  border: 1px solid rgba(15, 23, 42, 0.05);
}

/* The actual filling bar */
#moduleProgressBar {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 0%; /* Fills dynamically */
  background: linear-gradient(90deg, var(--primary), var(--accent-blue));
  border-radius: 999px;
  transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 0 12px rgba(56, 189, 248, 0.2);
}

#modulePctText {
  font-family: var(--font-mono);
  font-size: 0.65rem;
  font-weight: 800;
  color: var(--primary);
  letter-spacing: 0.5px;
}

/* Custom Scrollbar Architecture */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

::-webkit-scrollbar-track {
  background: rgba(15, 23, 42, 0.2); /* Deep slate background */
  border-radius: 10px;
}

::-webkit-scrollbar-thumb {
  background: rgba(56, 189, 248, 0.4); /* Glow Blue */
  border-radius: 10px;
  border: 1px solid rgba(56, 189, 248, 0.1);
  transition: all 0.3s ease;
}

::-webkit-scrollbar-thumb:hover {
  background: #38bdf8; /* Full Brightness on hover */
  box-shadow: 0 0 10px rgba(56, 189, 248, 0.5);
}

/* Firefox Support */
* {
  scrollbar-width: thin;
  scrollbar-color: rgba(56, 189, 248, 0.4) transparent;
}



/* Custom Architecture for Dark Scrollbars */
.panel-scroll::-webkit-scrollbar,
#courseContent::-webkit-scrollbar,
#syllabusTree::-webkit-scrollbar,
.workcenter::-webkit-scrollbar {
  width: 6px; /* Ultra-thin profile */
  height: 6px;
}

.panel-scroll::-webkit-scrollbar-track,
#courseContent::-webkit-scrollbar-track,
#syllabusTree::-webkit-scrollbar-track,
.workcenter::-webkit-scrollbar-track {
  background: rgba(15, 23, 42, 0.3); /* Deep slate track */
}

.panel-scroll::-webkit-scrollbar-thumb,
#courseContent::-webkit-scrollbar-thumb,
#syllabusTree::-webkit-scrollbar-thumb,
.workcenter::-webkit-scrollbar-thumb {
  background: rgba(56, 189, 248, 0.3); /* Transparent Accent Blue */
  border-radius: 10px;
  transition: background 0.3s ease;
}

.panel-scroll::-webkit-scrollbar-thumb:hover,
#courseContent::-webkit-scrollbar-thumb:hover,
#syllabusTree::-webkit-scrollbar-thumb:hover,
.workcenter::-webkit-scrollbar-thumb:hover {
  background: rgba(56, 189, 248, 0.8); /* Glow effect on hover */
  box-shadow: 0 0 8px rgba(56, 189, 248, 0.4);
}

/* Firefox Specific Support */
.panel-scroll, #courseContent, #syllabusTree, .workcenter {
  scrollbar-width: thin;
  scrollbar-color: rgba(56, 189, 248, 0.3) transparent;
}

#lessonBody .btn-complete {
  width: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 10px 14px !important;
  min-height: auto !important;
  font-size: 0.72rem !important;
  border-radius: 10px !important;
  margin-top: 10px !important;
  box-shadow: 0 4px 10px rgba(34, 197, 94, 0.16) !important;
}

#lessonBody section[id^="step-"] {
  padding: 0 0 40px 0;
  border-bottom: none;
}

#lessonBody section[id^="step-"] + section[id^="step-"] {
  padding-top: 8px;
}

#lessonBody section[id^="step-"] h3 {
  margin: 0 0 8px 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f172a;
}

#lessonBody section[id^="step-"] p,
#lessonBody section[id^="step-"] li {
  font-size: 0.88rem;
  line-height: 1.8;
  color: #334155;
}

#lessonBody ul, #lessonBody ol {
  font-size: 0.88rem;
  line-height: 1.75;
}
#lessonBody ul li, #lessonBody ol li {
  font-size: 0.88rem;
  line-height: 1.75;
}
#lessonBody ul li::marker, #lessonBody ol li::marker {
  font-size: 0.88rem;
}
