.nav { flex-shrink: 0; background: var(--surface); border-bottom: 1px solid var(--border); overflow: hidden; display: flex; align-items: center; justify-content: flex-end; position: relative; } .fadeOverlay { position: absolute; top: 0; right: 42px; /* 8px margin + 26px width + 8px gap */ height: 100%; width: 40px; background: linear-gradient(to right, transparent, var(--surface)); pointer-events: none; z-index: 5; } /* Horizontal scroll container — no visible scrollbar */ .track { display: flex; flex: 1; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; -ms-overflow-style: none; gap: 4px; padding: 8px 10px; } .track::-webkit-scrollbar { display: none; } .track { cursor: grab; } .track.dragging { cursor: grabbing; } .track.dragging * { pointer-events: none; /* Prevent text selection and hover states while dragging */ } .collapseWrap { flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; margin: 0 8px; background: transparent; border: none; border-radius: 4px; cursor: pointer; color: var(--text-3); font-size: 11px; transition: background 0.15s, color 0.15s; user-select: none; } .collapseWrap:hover { background: var(--surface2); color: var(--text); } /* ── Tab button ────────────────────────────────────────────────────────────── */ .tab { position: relative; display: flex; flex-direction: column; flex-shrink: 0; gap: 8px; padding: 9px 16px 10px; min-width: 210px; background: none; border: 1px solid var(--border); border-radius: var(--radius); cursor: pointer; color: var(--text-2); font-family: var(--sans); text-align: left; transition: background 0.15s, border-color 0.15s, box-shadow 0.15s; } .tab:hover { background: var(--surface2); border-color: var(--border2); } .tab.active { background: var(--bdim, rgba(63,185,80,0.10)); border-color: color-mix(in srgb, var(--bcolor) 45%, transparent); box-shadow: 0 0 0 1px color-mix(in srgb, var(--bcolor) 20%, transparent) inset; } /* ── Top row ───────────────────────────────────────────────────────────────── */ .tabTop { display: flex; align-items: flex-start; gap: 10px; } .icon { font-size: 18px; line-height: 1; flex-shrink: 0; margin-top: 1px; } .text { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; } .name { font-size: 15px; font-weight: 700; letter-spacing: -0.1px; color: var(--text); } .tab.active .name { color: var(--bcolor, var(--green)); } .tagline { font-size: 11px; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* Count badge: stacked number + percentage */ .countWrap { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; flex-shrink: 0; } .countNum { font-family: var(--mono); font-size: 12px; font-weight: 700; color: var(--bcolor, var(--text-2)); opacity: 0.9; } .countPct { font-family: var(--mono); font-size: 10px; color: var(--text-3); } .tab.active .countPct { color: var(--bcolor, var(--text-3)); opacity: 0.7; } /* Bundle reset button */ .bundleResetBtn { flex-shrink: 0; background: none; border: none; cursor: pointer; font-size: 14px; color: var(--text-3); padding: 2px 5px; border-radius: 4px; line-height: 1; margin-left: 2px; transition: color 0.12s, background 0.12s; } .bundleResetBtn:hover { color: var(--red); background: var(--red-dim); } /* ── Inline progress track ─────────────────────────────────────────────────── */ .progressTrack { width: 100%; height: 3px; background: var(--surface3); border-radius: 2px; overflow: hidden; } .tab.active .progressTrack { background: color-mix(in srgb, var(--bcolor) 25%, var(--border2)); } .progressFill { height: 100%; background: var(--bcolor, var(--green)); border-radius: 2px; transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1); } /* Glow on active tab's fill */ .tab.active .progressFill { box-shadow: 0 0 6px color-mix(in srgb, var(--bcolor) 60%, transparent); } /* Locked tab during exam */ .tab.locked { opacity: 0.4; cursor: not-allowed; filter: grayscale(0.5); } /* Start Exam button */ .examBtn { flex-shrink: 0; background: var(--blue-dim); border: 1px solid color-mix(in srgb, var(--blue) 35%, transparent); color: var(--blue); border-radius: 5px; padding: 3px 8px; font-size: 11px; font-weight: 700; font-family: var(--sans); cursor: pointer; opacity: 0; transition: opacity 0.15s, background 0.15s, transform 0.1s; white-space: nowrap; } .tab:hover .examBtn { opacity: 1; } .examBtn:hover { background: var(--blue); color: #fff; transform: scale(1.05); } /* In-exam badge */ .examBadge { flex-shrink: 0; background: rgba(252,196,25,0.15); border: 1px solid rgba(252,196,25,0.35); color: var(--amber); border-radius: 5px; padding: 3px 8px; font-size: 10px; font-weight: 700; white-space: nowrap; }