/* ThinkaBell Enhanced Tool Components
   ================================
   Modern UI/UX enhancements for writing and calculator tools
   Includes: animated metric cards, progress bars, gauges,
   chart bars, keyboard hints, and glassmorphism effects.
   ================================ */

/* ── Enhanced Metric Card System ────────────────────────── */
/* ── Progress Ring / Gauge ──────────────────────────────── */
/* ── Horizontal Progress Bar ────────────────────────────── */
/* ── Distribution Bar Chart ─────────────────────────────── */
/* ── Keyword / Tag Cloud ────────────────────────────────── */
/* ── Readability Score Panel ────────────────────────────── */
/* ── Calculator Keypad Enhancements ─────────────────────── */
/* ── Enhanced Buttons for Tools ─────────────────────────── */
/* ── Analysis Section Cards ─────────────────────────────── */
/* ── Quick Action Bar ───────────────────────────────────── */
/* ── Live Analysis Badge ────────────────────────────────── */
/* ── Insight Callouts ───────────────────────────────────── */
/* ── Responsive adjustments ─────────────────────────────── */
/* ── Dark mode overrides ────────────────────────────────── */
/* ═══ Next-Generation Tool Components ═══════════════════════
   Segmented controls, goal rings, quality score bars,
   refined calculator keypad, and status chips.
   ========================================================== */

/* ── Segmented Control (mode toggles) ───────────────────── */
/* ── Goal Progress Strip (writing targets) ──────────────── */
/* ── Horizontal Quality / Score Bars ────────────────────── */
/* ── Status Chips ───────────────────────────────────────── */
/* ── Compact fact / phrase row ──────────────────────────── */
/* ── Modern Calculator Keypad ───────────────────────────── */
/* ── Dark mode additions ────────────────────────────────── */
/* ── Citation Generator ───────────────────────────────────── */
/* ── GPA Calculator ────────────────────────────────────────── */
/* ── Citation Checker &amp; Corrector ────────────────────────── */
/* ── Citation Validator ────────────────────────────────────── */
/* -- LearnTube Pro -- */

.tb-metric-card {
  position: relative;
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 1.25rem 1rem;
  text-align: center;
  box-shadow: var(--shadow-sm);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  overflow: hidden;
  animation: tbCardIn .5s ease both;
  animation-delay: calc(var(--card-index, 0) * 60ms);
}
.tb-metric-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(99,102,241,.12);
  border-color: rgba(99,102,241,.35);
}
.tb-metric-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--amber), var(--amber-dark));
  opacity: 0;
  transition: opacity .3s ease;
}
.tb-metric-card:hover::before { opacity: 1; }
.tb-metric-card__icon {
  width: 2.5rem; height: 2.5rem;
  margin: 0 auto .5rem;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, rgba(99,102,241,.1), rgba(79,70,229,.08));
  color: var(--amber-dark);
  font-size: 1.25rem;
}
.tb-metric-card__label {
  margin: 0;
  color: var(--slate);
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.tb-metric-card__value {
  margin: .4rem 0 0;
  font-family: var(--font-mono);
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--amber-dark);
  line-height: 1.1;
}
.tb-metric-card__value--green { color: var(--success); }
.tb-metric-card__value--blue { color: var(--amber); }
.tb-metric-card__value--orange { color: var(--warning); }
.tb-metric-card__value--red { color: var(--danger); }
.tb-metric-card__value--purple { color: var(--amber-dark); }
.tb-metric-card__sub { margin: .3rem 0 0; color: var(--slate); font-size: .75rem; }
.tb-gauge {
  --value: 50;
  --size: 120px;
  --thickness: 10px;
  position: relative;
  width: var(--size);
  height: var(--size);
  margin: .5rem auto;
  border-radius: 50%;
  background: conic-gradient(
    var(--gauge-color, var(--amber)) calc(var(--value) * 1%),
    var(--moss-light) 0
  );
  display: flex; align-items: center; justify-content: center;
  transition: background .4s ease;
}
.tb-gauge::before {
  content: '';
  position: absolute;
  inset: var(--thickness);
  background: var(--white);
  border-radius: 50%;
}
.tb-gauge__value {
  position: relative;
  z-index: 1;
  font-family: var(--font-mono);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--ink);
}
.tb-gauge__label {
  position: absolute;
  bottom: -1.75rem;
  left: 50%;
  transform: translateX(-50%);
  font-size: .75rem;
  color: var(--slate);
  white-space: nowrap;
}
.tb-gauge-wrap { padding-bottom: 1.5rem; position: relative; }
.tb-progress-track {
  height: 6px;
  background: var(--moss-light);
  border-radius: var(--radius-full);
  overflow: hidden;
  margin: .5rem 0;
}
.tb-progress-fill {
  height: 100%;
  border-radius: var(--radius-full);
  background: linear-gradient(90deg, var(--amber), var(--amber-dark));
  transition: width .5s cubic-bezier(.4, 0, .2, 1);
  position: relative;
  min-width: 2px;
}
.tb-progress-fill--green { background: linear-gradient(90deg, var(--success), var(--success)); }
.tb-progress-fill--yellow { background: linear-gradient(90deg, var(--warning), var(--warning)); }
.tb-progress-fill--orange { background: linear-gradient(90deg, var(--warning), var(--danger)); }
.tb-progress-fill--red { background: linear-gradient(90deg, var(--danger), var(--danger)); }
.tb-dist-chart {
  display: grid;
  align-items: end;
  gap: .5rem;
  height: 120px;
  margin: 1rem 0 .5rem;
  padding: 0 .25rem;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
}
.tb-dist-bar {
  background: linear-gradient(180deg, var(--amber), var(--amber-dark));
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
  min-height: 4px;
  position: relative;
  transition: height .5s cubic-bezier(.4, 0, .2, 1);
  animation: tbBarGrow .5s ease both;
}
.tb-dist-bar:nth-child(2n) { background: linear-gradient(180deg, var(--amber), var(--amber-dark)); }
.tb-dist-bar:nth-child(3n) { background: linear-gradient(180deg, var(--amber-dark), var(--amber)); }
.tb-dist-bar__label {
  position: absolute;
  bottom: -1.4rem;
  left: 50%;
  transform: translateX(-50%);
  font-size: .7rem;
  color: var(--slate);
  white-space: nowrap;
}
.tb-dist-bar__val {
  position: absolute;
  top: -1.5rem;
  left: 50%;
  transform: translateX(-50%);
  font-size: .7rem;
  font-weight: 600;
  color: var(--amber-dark);
  font-family: var(--font-mono);
}
.tb-tag-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .75rem;
}
.tb-tag {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .35rem .75rem;
  border-radius: var(--radius-full);
  background: var(--moss-light);
  border: 1px solid var(--border);
  font-size: .8rem;
  font-weight: 500;
  color: var(--ink);
  transition: all .2s ease;
}
.tb-tag:hover {
  border-color: var(--amber);
  background: rgba(99,102,241,.08);
  color: var(--amber-dark);
  transform: translateY(-1px);
}
.tb-tag strong {
  font-family: var(--font-mono);
  font-size: .75rem;
  color: var(--amber-dark);
}
.tb-tag--hot { font-size: 1rem; font-weight: 600; border-color: rgba(99,102,241,.3); }
.tb-tag--warm { font-size: .9rem; }
.tb-score-panel {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
  padding: 1rem;
  background: var(--moss-light);
  border-radius: var(--radius-lg);
  margin-top: .75rem;
}
.tb-score-panel__details { flex: 1; min-width: 200px; }
.tb-score-panel__details p { margin: 0 0 .5rem; font-size: .88rem; color: var(--slate); }
.tb-score-panel__details strong { color: var(--ink); }
.tb-calc {
    max-width: 380px;
    margin: 0 auto;
}
.tb-calc-display {
    width: 100%;
    padding: 1.25rem 1.5rem;
    font-family: var(--font-mono);
    font-size: 1.8rem;
    text-align: right;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--white);
    color: var(--ink);
    margin-bottom: .75rem;
    box-shadow: inset 0 2px 6px rgba(0,0,0,.04);
    caret-color: var(--amber);
    letter-spacing: .02em;
}
.tb-calc-display:focus {
  border-color: var(--amber);
  box-shadow: 0 0 0 3px rgba(99,102,241,.15);
  outline: none;
}
.tb-calc-history {
  margin-top: 1.25rem;
  max-height: 220px;
  overflow-y: auto;
  padding-right: .25rem;
}
.tb-calc-history-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    padding: .6rem .75rem;
    margin-bottom: .4rem;
    background: var(--moss-light);
    border-radius: var(--radius-md);
    border-left: 3px solid var(--amber);
    animation: tbFadeIn .3s ease both;
    font-size: .85rem;
    transition: background .2s ease;
    cursor: pointer;
}
.tb-calc-history-item:hover {
    background: var(--paper);
    border-left-color: var(--amber-dark);
}
.tb-calc-history-item .expr {
  color: var(--slate);
  font-family: var(--font-mono);
  font-size: .8rem;
  overflow-wrap: anywhere;
}
.tb-calc-history-item .result {
  color: var(--amber-dark);
  font-weight: 700;
  font-family: var(--font-mono);
  white-space: nowrap;
}
.tb-calc-kbd-hint {
  margin-top: .75rem;
  padding: .6rem .9rem;
  background: var(--moss-light);
  border-radius: var(--radius-md);
  font-size: .78rem;
  color: var(--slate);
  border: 1px dashed var(--border);
  text-align: center;
}
.tb-calc-kbd-hint kbd {
  display: inline-block;
  padding: .1rem .45rem;
  background: var(--white);
  border: 1px solid var(--border);
  border-bottom-width: 2px;
  border-radius: 4px;
  font-family: var(--font-mono);
  font-size: .72rem;
  color: var(--ink);
  margin: 0 .15rem;
}
.tb-tool-btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .7rem 1.25rem;
  border-radius: var(--radius-md);
  font-weight: 600;
  font-size: .9rem;
  min-height: 44px;
  cursor: pointer;
  border: none;
  transition: all .25s ease;
  position: relative;
  overflow: hidden;
}
.tb-tool-btn--primary {
  background: linear-gradient(135deg, var(--amber), var(--amber-dark));
  color: #fff;
  box-shadow: 0 2px 8px rgba(79,70,229,.3);
}
.tb-tool-btn--primary:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(79,70,229,.35);
}
.tb-tool-btn--primary:active:not(:disabled) { transform: translateY(0); }
.tb-tool-btn--secondary {
  background: var(--white);
  color: var(--ink);
  border: 1px solid var(--border);
}
.tb-tool-btn--secondary:hover:not(:disabled) {
  border-color: var(--amber);
  color: var(--amber-dark);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(99,102,241,.1);
}
.tb-tool-btn--ghost {
  background: transparent;
  color: var(--amber-dark);
  border: 1px solid transparent;
}
.tb-tool-btn--ghost:hover { background: rgba(99,102,241,.08); }
.tb-tool-btn:disabled {
  opacity: .5;
  cursor: not-allowed;
  transform: none;
}
.tb-analysis-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 1.25rem 1.5rem;
  margin-top: 1.25rem;
  box-shadow: var(--shadow-sm);
  transition: box-shadow .25s ease, border-color .25s ease;
  animation: tbCardIn .5s ease both;
  animation-delay: calc(var(--card-index, 0) * 50ms);
}
.tb-analysis-card:hover {
  box-shadow: 0 8px 24px rgba(99,102,241,.08);
  border-color: rgba(99,102,241,.25);
}
.tb-analysis-card__header {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin: 0 0 .75rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ink);
}
.tb-analysis-card__header svg {
  width: 1.25rem; height: 1.25rem;
  color: var(--amber-dark);
  flex-shrink: 0;
}
.tb-quick-actions {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  margin-top: .75rem;
}
.tb-quick-action {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .4rem .8rem;
  border-radius: var(--radius-md);
  background: var(--moss-light);
  border: 1px solid var(--border);
  font-size: .8rem;
  font-weight: 500;
  color: var(--ink);
  cursor: pointer;
  transition: all .2s ease;
  min-height: 36px;
}
.tb-quick-action:hover {
  background: rgba(99,102,241,.1);
  border-color: var(--amber);
  color: var(--amber-dark);
}
.tb-quick-action svg { width: .9rem; height: .9rem; }
.tb-live-badge {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .3rem .75rem;
  border-radius: var(--radius-full);
  background: linear-gradient(135deg, var(--success), var(--success));
  color: #fff;
  font-size: .78rem;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(16,185,129,.25);
  animation: tbPulseGlow 2s ease infinite;
}
.tb-live-dot {
  width: 6px; height: 6px;
  background: #fff;
  border-radius: 50%;
  animation: tbLivePulse 1.5s ease infinite;
}
.tb-insight {
  padding: .75rem 1rem;
  border-radius: var(--radius-md);
  margin-top: .75rem;
  font-size: .85rem;
  line-height: 1.6;
  border-left: 4px solid var(--amber);
  background: var(--moss-light);
  color: var(--ink);
}
.tb-insight--success {
  border-left-color: var(--success);
  background: var(--success-bg);
}
.tb-insight--warning {
  border-left-color: var(--warning);
  background: var(--warning-bg);
}
.tb-insight--danger {
  border-left-color: var(--danger);
  background: var(--danger-bg);
}
.tb-insight--info {
  border-left-color: var(--amber);
  background: var(--moss-light);
}
.tb-insight strong { color: var(--ink); }
.tb-seg {
  display: inline-flex;
  background: var(--moss-light);
  border: 1px solid var(--border);
  border-radius: var(--radius-full);
  padding: 3px;
  gap: 2px;
  flex-wrap: wrap;
}
.tb-seg__btn {
  border: 0;
  background: transparent;
  color: var(--slate);
  font: 600 .78rem var(--font-sans);
  padding: .38rem .9rem;
  border-radius: calc(var(--radius-full) - 3px);
  cursor: pointer;
  min-height: 32px;
  white-space: nowrap;
  transition: background .2s ease, color .2s ease, box-shadow .2s ease;
}
.tb-seg__btn:hover { color: var(--amber-dark); }
.tb-seg__btn[aria-pressed="true"], .tb-seg__btn.is-active {
  background: var(--white);
  color: var(--amber-dark);
  box-shadow: var(--shadow-sm);
}
.tb-goal {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 1rem 1.25rem;
  margin-top: 1rem;
  background: linear-gradient(135deg, rgba(99,102,241,.06), rgba(79,70,229,.04));
  border: 1px solid rgba(99,102,241,.18);
  border-radius: var(--radius-lg);
  position: relative;
  overflow: hidden;
}
.tb-goal::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 0 100%, rgba(99,102,241,.08), transparent 55%);
  pointer-events: none;
}
.tb-goal__ring {
  position: relative;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: conic-gradient(var(--amber) calc(var(--p, 0) * 1%), var(--white) 0);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: inset 0 0 0 1px var(--border);
  transition: background .4s ease;
  flex-shrink: 0;
}
.tb-goal__ring::before {
  content: '';
  position: absolute;
  inset: 8px;
  background: var(--white);
  border-radius: 50%;
}
.tb-goal__ring span {
  position: relative;
  z-index: 1;
  font-family: var(--font-mono);
  font-size: .78rem;
  font-weight: 700;
  color: var(--amber-dark);
}
.tb-goal__info { display: flex; flex-direction: column; gap: .15rem; min-width: 160px; flex: 1; }
.tb-goal__title { font-weight: 600; font-size: .85rem; color: var(--ink); }
.tb-goal__sub { font-size: .76rem; color: var(--slate); }
.tb-goal__controls { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.tb-goal input[type="number"] {
  width: 88px;
  padding: .38rem .55rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  font: 500 .85rem var(--font-mono);
  background: var(--white);
  color: var(--ink);
  text-align: center;
  min-height: 36px;
}
.tb-goal input[type="number"]:focus {
  border-color: var(--amber);
  box-shadow: 0 0 0 3px rgba(99,102,241,.15);
  outline: none;
}
.tb-bars { display: grid; gap: .45rem; margin-top: .6rem; }
.tb-bar {
  display: grid;
  grid-template-columns: 118px 1fr 46px;
  align-items: center;
  gap: .6rem;
  font-size: .78rem;
  color: var(--slate);
}
.tb-bar__label { text-align: right; font-weight: 500; }
.tb-bar__track {
  height: 8px;
  background: var(--moss-light);
  border-radius: var(--radius-full);
  overflow: hidden;
}
.tb-bar__fill {
  height: 100%;
  width: 0%;
  border-radius: var(--radius-full);
  background: linear-gradient(90deg, var(--amber), var(--amber-dark));
  transition: width .6s cubic-bezier(.4, 0, .2, 1);
  position: relative;
}
.tb-bar__fill::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent);
  transform: translateX(-100%);
  animation: tbSheenSweep 2.5s ease infinite;
}
@keyframes tbSheenSweep {
  from { transform: translateX(-100%); }
  to { transform: translateX(100%); }
}
.tb-bar__value { font-family: var(--font-mono); font-weight: 600; color: var(--ink); text-align: left; }
.tb-chip {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .22rem .6rem;
  border-radius: var(--radius-full);
  font-size: .72rem;
  font-weight: 600;
  background: var(--moss-light);
  border: 1px solid var(--border);
  color: var(--slate);
}
.tb-chip--hot { background: var(--danger-bg); border-color: var(--danger); color: var(--danger-text); }
.tb-chip--ok { background: var(--success-bg); border-color: var(--success); color: var(--success-text); }
.tb-chip--warn { background: var(--warning-bg); border-color: var(--warning); color: var(--warning-text); }
.tb-chip--brand { background: var(--moss-light); border-color: var(--border); color: var(--amber-dark); }
.tb-phrase {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .45rem .8rem;
  border-radius: var(--radius-md);
  background: var(--moss-light);
  border: 1px solid var(--border);
  font-size: .8rem;
  color: var(--ink);
}
.tb-phrase b { color: var(--amber-dark); font-family: var(--font-mono); }
.calc-keypad { display: grid; grid-template-columns: repeat(5, 1fr); gap: .5rem; }
.calc-keypad--funcs { margin-top: .5rem; }
.tb-key {
  height: 54px;
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
  background: var(--white);
  color: var(--ink);
  font: 600 1rem var(--font-sans);
  cursor: pointer;
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
  box-shadow: 0 2px 0 rgba(0,0,0,.04);
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
}
.tb-key:hover { border-color: var(--amber); box-shadow: 0 4px 12px rgba(99,102,241,.12); transform: translateY(-2px); }
.tb-key:active { transform: translateY(0) scale(.97); box-shadow: none; }
.tb-key--num { font-family: var(--font-mono); font-weight: 600; font-size: 1.15rem; }
.tb-key--op { color: var(--amber-dark); background: linear-gradient(135deg, rgba(99,102,241,.09), rgba(79,70,229,.06)); font-weight: 700; font-size: 1.1rem; }
.tb-key--fn { font-size: .74rem; font-weight: 600; color: var(--moss); background: var(--moss-light); }
.tb-key--eq { background: linear-gradient(135deg, var(--success), var(--success)); color: #fff; border: none; box-shadow: 0 3px 0 rgba(5,150,105,.4); font-size: 1.25rem; }
.tb-key--eq:hover { border: none; background: linear-gradient(135deg, var(--success), var(--success)); box-shadow: 0 5px 16px rgba(16,185,129,.4); }
.tb-key--clear { background: linear-gradient(135deg, var(--danger), var(--danger)); color: #fff; border: none; box-shadow: 0 3px 0 rgba(220,38,38,.4); }
.tb-key--clear:hover { border: none; background: linear-gradient(135deg, var(--danger), var(--danger)); box-shadow: 0 5px 16px rgba(239,68,68,.35); }
.tb-key--back { color: var(--slate); }
.tb-key--pressed { transform: translateY(0) scale(.96); }
.tb-calc-display--result { color: var(--amber-dark); }
.tb-calc-preview {
  font-family: var(--font-mono);
  font-size: .78rem;
  color: var(--slate);
  text-align: right;
  min-height: 1.2em;
  margin: -0.4rem 0 .5rem;
  overflow-wrap: anywhere;
}
.tb-calc-status { display: flex; align-items: center; justify-content: space-between; gap: .5rem; flex-wrap: wrap; margin-bottom: .6rem; }
.tb-calc-history-empty { color: var(--slate); font-size: .85rem; margin: 0; }
.author-row { display: grid; grid-template-columns: 2fr 2fr 1fr auto; gap: .5rem; align-items: end; margin-bottom: .5rem; }
.author-row input { width: 100%; }
.author-row .btn { min-width: 40px; padding: .5rem; }
#authors-section > label { display: block; font-weight: 600; margin-bottom: .35rem; }
#authors-section > .btn { margin-top: .25rem; }
.gpa-row { margin-bottom: .75rem; }
.gpa-row-grid { display: grid; grid-template-columns: 2fr 1fr 1fr auto; gap: .5rem; align-items: end; }
.gpa-cell label { display: block; font-weight: 600; margin-bottom: .25rem; font-size: .9rem; }
.gpa-cell input, .gpa-cell select { width: 100%; }
.gpa-cell--remove { display: flex; align-items: end; }
.gpa-cell--remove .btn { min-width: 40px; }
#cc-results { margin-top: 1.5rem; }
.cc-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: .75rem; margin-bottom: 1.5rem; }
.cc-summary-card { padding: 1rem; border-radius: var(--radius-md); text-align: center; background: var(--white); border: 1px solid var(--border); }
.cc-summary-card__value { font-size: 1.75rem; font-weight: 700; font-family: var(--font-mono, 'JetBrains Mono', monospace); line-height: 1.2; }
.cc-summary-card__label { font-size: .82rem; color: var(--slate); margin-top: .15rem; }
.cc-citation-card { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 1.25rem; margin-bottom: .85rem; }
.cc-citation-card:last-child { margin-bottom: 0; }
.cc-citation-text { font-family: var(--font-mono, 'JetBrains Mono', monospace); font-size: .82rem; padding: .75rem; background: var(--paper); border: 1px solid var(--border); border-radius: var(--radius-sm); margin-bottom: .75rem; word-break: break-word; line-height: 1.5; }
.cc-citation-header { display: flex; align-items: center; gap: .75rem; margin-bottom: .6rem; flex-wrap: wrap; }
.cc-citation-num { font-weight: 600; font-size: .9rem; color: var(--ink); }
.cc-status-badge { display: inline-block; padding: .2rem .7rem; border-radius: 999px; font-size: .75rem; font-weight: 600; letter-spacing: .01em; }
.cc-status-ok { background: var(--success-bg); color: var(--success-text); }
.cc-status-warn { background: var(--warning-bg); color: var(--warning-text); }
.cc-status-err { background: var(--danger-bg); color: var(--danger-text); }
.cc-issues { margin: 0; padding: 0; list-style: none; }
.cc-issue { padding: .45rem .65rem; margin-bottom: .35rem; border-radius: var(--radius-sm); font-size: .85rem; line-height: 1.45; }
.cc-issue:last-child { margin-bottom: 0; }
.cc-issue--error { background: var(--danger-bg); border-left: 3px solid var(--danger); }
.cc-issue--warning { background: var(--warning-bg); border-left: 3px solid var(--warning); }
.cc-issue--info { background: var(--moss-light); border-left: 3px solid var(--amber); }
.cc-issue__type { font-weight: 600; text-transform: uppercase; font-size: .7rem; letter-spacing: .04em; }
.cc-issue--error .cc-issue__type { color: var(--danger-text); }
.cc-issue--warning .cc-issue__type { color: var(--warning-text); }
.cc-issue--info .cc-issue__type { color: var(--amber-dark); }
.cc-issue__fix { display: block; margin-top: .15rem; color: var(--slate); font-style: italic; font-size: .82rem; }
.cc-no-issues { color: var(--slate); font-size: .9rem; font-style: italic; }
.cc-help { margin-top: .75rem; padding: .75rem 1rem; background: var(--success-bg); border: 1px solid var(--success); border-radius: var(--radius-md); font-size: .88rem; color: var(--success-text); }
.cc-help a { color: var(--success-text); text-decoration: underline; }
.cv-summary { display: flex; gap: 1rem; flex-wrap: wrap; margin: 1.5rem 0; }
.cv-summary-card { flex: 1; min-width: 120px; text-align: center; padding: 1.25rem 1rem; background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-md); }
.cv-summary-card__value { font-size: 2rem; font-weight: 700; font-family: var(--font-mono); }
.cv-summary-card__label { font-size: .85rem; color: var(--slate); margin-top: .25rem; }
.cv-citation { padding: 1rem; border-radius: var(--radius-md); margin-bottom: .75rem; border: 1px solid var(--border); background: var(--white); }
.cv-citation--good { border-left: 4px solid var(--success); }
.cv-citation--fair { border-left: 4px solid var(--warning); }
.cv-citation--poor { border-left: 4px solid var(--danger); }
.cv-citation__text { font-family: var(--font-mono); font-size: .875rem; line-height: 1.5; margin-bottom: .5rem; word-break: break-word; }
.cv-citation__number { font-size: .8rem; color: var(--slate); margin-bottom: .25rem; }
.cv-citation__score { font-size: .85rem; font-weight: 600; margin-bottom: .4rem; }
.cv-citation__checks { display: flex; flex-wrap: wrap; gap: .4rem .75rem; font-size: .8rem; }
.cv-check { display: flex; align-items: center; gap: .25rem; }
.cv-check--pass { color: var(--success); }
.cv-check--fail { color: var(--danger); }
.cv-empty { text-align: center; padding: 2.5rem 1rem; color: var(--slate); font-size: .95rem; }
.cv-results-wrap { display: none; }
.cv-results-wrap--visible { display: block; }
.cv-score-good { color: var(--success); }
.cv-score-fair { color: var(--warning); }
.cv-score-poor { color: var(--danger); }
.cv-style-badge { display: inline-block; font-size: .75rem; padding: .15rem .55rem; border-radius: 999px; background: var(--moss-light); color: var(--slate); font-weight: 600; margin-left: .5rem; }
.lt-tabs{display:flex;gap:.25rem;border-bottom:2px solid var(--border);max-width:72rem;margin:1rem auto 0;padding:0 clamp(1rem,4vw,2rem);overflow-x:auto;flex-wrap:nowrap}
.lt-tab{padding:.6rem 1.2rem;border:none;background:none;font:inherit;font-size:.9rem;font-weight:500;color:var(--slate);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all var(--transition);min-height:44px;white-space:nowrap;display:inline-flex;align-items:center;gap:.4rem}
.lt-tab:hover{color:var(--ink)}
.lt-tab[aria-selected="true"],.lt-tab.active{color:var(--amber-dark);border-bottom-color:var(--amber);font-weight:600}
.lt-tab svg{width:1rem;height:1rem}
.lt-panel{display:none;max-width:72rem;margin:0 auto;padding:1.5rem clamp(1rem,4vw,2rem)}
.lt-panel.active{display:block}
.lt-search-row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem}
.lt-search{flex:1;min-width:200px;position:relative}
.lt-search input{width:100%;padding:.7rem 1rem .7rem 2.5rem;border:1px solid var(--border);border-radius:var(--radius-md);font:inherit;font-size:.95rem;background:var(--white);transition:border-color var(--transition),box-shadow var(--transition)}
.lt-search input:focus{border-color:var(--amber);box-shadow:0 0 0 3px rgba(99,102,241,.15);outline:2px solid var(--amber);outline-offset:2px}
.lt-search svg{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:1rem;height:1rem;color:var(--slate);pointer-events:none}
.lt-search-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.7rem 1.3rem;border:none;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--amber),var(--amber-dark));color:#fff;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition);min-height:44px}
.lt-search-btn:hover{box-shadow:0 2px 8px rgba(99,102,241,.35);transform:translateY(-1px)}
.lt-categories{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.5rem}
.lt-cat-chip{padding:.4rem 1rem;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--white);font:inherit;font-size:.82rem;color:var(--moss);cursor:pointer;transition:all var(--transition);min-height:36px}
.lt-cat-chip:hover{border-color:var(--amber);color:var(--amber-dark)}
.lt-cat-chip.selected{background:var(--amber);color:#fff;border-color:var(--amber)}
.lt-video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:1rem}
.lt-video-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition);cursor:pointer;position:relative}
.lt-video-card:hover{border-color:var(--amber);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.lt-video-card__thumb{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:var(--moss-light)}
.lt-video-card__body{padding:.75rem 1rem 1rem}
.lt-video-card__title{font-size:.9rem;font-weight:600;margin:0 0 .25rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lt-video-card__channel{font-size:.78rem;color:var(--slate);margin:0 0 .4rem}
.lt-video-card__meta{font-size:.75rem;color:var(--moss);display:flex;gap:.75rem;align-items:center}
.lt-video-card__bookmark{position:absolute;top:.5rem;right:.5rem;background:rgba(255,255,255,.9);border:none;border-radius:50%;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--slate);transition:all var(--transition);z-index:2}
.lt-video-card__bookmark:hover{color:var(--amber-dark)}
.lt-video-card__bookmark.saved{color:var(--warning)}
.lt-video-card__bookmark svg{width:1rem;height:1rem}
.lt-loading{text-align:center;padding:2rem;color:var(--slate)}
.lt-loading::after{content:"";display:inline-block;width:1.5rem;height:1.5rem;border:2px solid var(--border);border-top-color:var(--amber);border-radius:50%;animation:lt-spin .6s linear infinite;margin-left:.5rem;vertical-align:middle}
.lt-error{text-align:center;padding:1.5rem;color:var(--danger);font-size:.9rem}
.lt-empty{text-align:center;padding:2rem;color:var(--slate);font-size:.95rem}
.lt-video-count{font-size:.85rem;color:var(--slate);margin-bottom:.75rem}
.lt-channel-section{margin-bottom:2rem}
.lt-channel-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}
.lt-channel-avatar{width:2.5rem;height:2.5rem;border-radius:50%;object-fit:cover}
.lt-channel-name{font-weight:600;font-size:.95rem;margin:0}
.lt-channel-subs{font-size:.78rem;color:var(--slate);margin:0}
.lt-channel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));gap:.75rem}
.lt-channel-card{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition)}
.lt-channel-card:hover{border-color:var(--amber);box-shadow:var(--shadow-sm)}
.lt-channel-card img{width:3rem;height:3rem;border-radius:50%;object-fit:cover}
.lt-channel-card__info{flex:1;min-width:0}
.lt-channel-card__name{font-size:.9rem;font-weight:600;margin:0 0 .15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lt-channel-card__desc{font-size:.78rem;color:var(--slate);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lt-tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));gap:1rem;margin-top:1rem}
.lt-tools-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1.25rem}
.lt-tools-card h3{font-family:var(--font-display);font-size:1rem;margin:0 0 .5rem}
.lt-tools-card p{color:var(--slate);font-size:.85rem;margin:0 0 1rem;line-height:1.5}
.lt-saved-item{display:flex;gap:.75rem;padding:.75rem;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:.5rem;align-items:center}
.lt-saved-item img{width:4rem;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-sm)}
.lt-saved-item__info{flex:1;min-width:0}
.lt-saved-item__title{font-size:.9rem;font-weight:600;margin:0 0 .2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lt-saved-item__meta{font-size:.78rem;color:var(--slate);margin:0}
.lt-saved-item__remove{background:none;border:none;cursor:pointer;color:var(--slate);padding:.25rem;flex-shrink:0}
.lt-saved-item__remove:hover{color:var(--danger)}
.lt-saved-item__remove svg{width:1rem;height:1rem}
.lt-saved-empty{text-align:center;padding:2rem;color:var(--slate)}
.lt-url-input{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}
.lt-url-input input{flex:1;min-width:200px;padding:.7rem 1rem;border:1px solid var(--border);border-radius:var(--radius-md);font:inherit;font-size:.9rem}
.lt-url-input input:focus{border-color:var(--amber);outline:2px solid var(--amber);outline-offset:2px}
@keyframes tbCardIn {
from { opacity: 0; transform: translateY(16px) scale(.98); }
to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes tbBarGrow {
from { transform: scaleY(0); transform-origin: bottom; }
to { transform: scaleY(1); transform-origin: bottom; }
}
@keyframes tbLivePulse {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: .5; transform: scale(.7); }
}
@media (max-width: 600px) {
.tb-metric-card__value { font-size: 1.25rem; }
.tb-metric-card__icon { width: 2rem; height: 2rem; font-size: 1rem; }
.tb-score-panel { flex-direction: column; align-items: center; text-align: center; }
.tb-score-panel__details { min-width: 100%; }
.tb-dist-chart { height: 90px; gap: .25rem; }
.tb-dist-bar__val { font-size: .6rem; top: -1.2rem; }
.tb-dist-bar__label { font-size: .6rem; bottom: -1.1rem; }
}
@media (prefers-color-scheme: dark) {
.tb-metric-card__sub, .tb-dist-bar__label, .tb-gauge__label { color: var(--slate); }
.tb-calc-display { background: var(--moss-light); border-color: var(--border); }
.tb-calc-history-item { background: var(--moss-light); }
.tb-calc-history-item:hover { background: var(--paper); }
}
@media (max-width: 480px) {
.tb-key { height: 48px; }
.tb-calc-display { font-size: 1.6rem; }
.tb-calc-display--result { font-size: 1.6rem; }
.calc-keypad { gap: .35rem; }
.tb-goal { gap: .75rem; }
}
@media (prefers-color-scheme: dark) {
.tb-goal__ring { background: conic-gradient(var(--amber) calc(var(--p, 0) * 1%), var(--moss-light) 0); }
.tb-goal__ring::before { background: var(--white); }
.tb-goal input[type="number"] { background: var(--moss-light); }
.tb-key { background: var(--white); box-shadow: 0 2px 0 rgba(0,0,0,.25); }
.tb-key--fn { background: var(--moss-light); }
.tb-bar__fill::after { background: linear-gradient(90deg, transparent, rgba(255,255,255,.12), transparent); }
}
@media (max-width: 600px) {
.author-row { grid-template-columns: 1fr 1fr; }
.author-row .btn { grid-column: span 2; }
}
@media (max-width: 600px) {
.gpa-row-grid { grid-template-columns: 1fr 1fr; }
.gpa-cell--remove { grid-column: span 2; justify-self: end; }
}
@media (max-width: 600px) {
.cc-summary { grid-template-columns: repeat(2, 1fr); }
.cc-citation-header { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 600px) {
.cv-summary { flex-direction: column; }
.cv-citation__checks { flex-direction: column; gap: .25rem; }
}
@keyframes lt-spin{
to{transform:rotate(360deg)}
}
@media(max-width:600px){.lt-video-grid{grid-template-columns:1fr}.lt-channel-grid{grid-template-columns:1fr}.lt-tools-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.lt-video-card,.lt-video-card:hover{transform:none}}