/* ═══════════════════════════════════════════════════════════════
   Sivarr — Panels CSS v5
   All panel-specific styles (chat, home, settings, spaces, etc.)
   Depends on base.css for tokens and layout.css for chrome.
   ═══════════════════════════════════════════════════════════════ */

/* ── PANEL BASE ────────────────────────────────────────────── */
.panel {
  display: none;
  flex: 1;
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
  background: var(--bg);
  animation: fadeUp 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.panel.active {
  display: flex;
}
[data-theme="dark"] .panel {
  background: var(--bg);
}

/* ── VIEW HEADER ───────────────────────────────────────────── */
.view-head {
  height: 54px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  padding: 0 24px;
  gap: 10px;
  flex-shrink: 0;
  background: var(--bg2);
}
[data-theme="dark"] .view-head {
  background: rgba(28, 28, 28, 0.88);
  border-bottom-color: rgba(255, 255, 255, 0.06);
}
.vh-icon {
  font-size: 20px;
  color: var(--text3);
}
.vh-title {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 800;
  color: var(--text1);
  flex: 1;
  letter-spacing: -0.03em;
}

/* ── CONTENT AREA ──────────────────────────────────────────── */
.content {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
  background: var(--bg);
}
.content::-webkit-scrollbar {
  width: 5px;
}
.content::-webkit-scrollbar-thumb {
  background: var(--border);
  border-radius: 3px;
}

/* ── CARDS ─────────────────────────────────────────────────── */
.card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 18px 20px;
  transition: var(--transition);
}
.card:hover {
  box-shadow: var(--shadow2);
  border-color: var(--border2);
}
[data-theme="dark"] .card:hover {
  border-color: rgba(15, 219, 173, 0.15);
  box-shadow:
    0 4px 24px rgba(0, 0, 0, 0.5),
    0 0 0 1px rgba(15, 219, 173, 0.08);
}
.card-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.card-title {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 800;
  color: var(--text1);
  letter-spacing: -0.03em;
}
.card-link {
  font-size: 14px;
  color: var(--teal);
  cursor: pointer;
  font-weight: 600;
}
.card-link:hover {
  text-decoration: underline;
}

/* ── STAT GRID ─────────────────────────────────────────────── */
.stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}
.stat {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 16px 18px;
}
.stat-lbl {
  font-size: 14px;
  color: var(--text3);
  margin-bottom: 5px;
  font-weight: 500;
}
.stat-val {
  font-size: 26px;
  font-weight: 800;
  color: var(--text1);
  line-height: 1;
  letter-spacing: -0.02em;
}
.stat-sub {
  font-size: 13px;
  color: var(--text3);
  margin-top: 5px;
}
.stat-sub.up {
  color: var(--green3);
}
.stat-sub.dn {
  color: var(--red3);
}

/* Grid layouts */
.g2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 16px;
}
.g3l {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 14px;
  margin-bottom: 16px;
}
.g3r {
  display: grid;
  grid-template-columns: 2fr 3fr;
  gap: 14px;
  margin-bottom: 16px;
}
.flex-col {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* ── CHIPS ─────────────────────────────────────────────────── */
.chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
}
.c-teal {
  background: var(--teal2);
  color: var(--teal4);
}
.c-purple {
  background: var(--purple2);
  color: var(--purple3);
}
.c-amber {
  background: var(--amber2);
  color: var(--amber);
}
.c-coral {
  background: var(--coral2);
  color: var(--coral3);
}
.c-green {
  background: var(--green2);
  color: var(--green);
}
.c-red {
  background: var(--red2);
  color: var(--red);
}
.c-gray {
  background: var(--bg3);
  color: var(--text3);
  border: 1px solid var(--border);
}

/* ── PROGRESS ──────────────────────────────────────────────── */
.prog-wrap {
  background: var(--bg3);
  height: 7px;
  border-radius: 4px;
  overflow: hidden;
}
.prog-fill {
  height: 100%;
  border-radius: 4px;
  transition: width 0.4s;
}

/* ── BUTTONS ───────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 14px;
  height: 36px;
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text2);
  font-family: var(--font);
  white-space: nowrap;
}
.btn:hover {
  background: var(--bg3);
  border-color: var(--border2);
}
.btn.primary {
  background: var(--teal);
  color: #fff;
  border-color: var(--teal);
}
.btn.primary:hover {
  background: var(--teal4);
}
.btn.ghost {
  border: none;
  background: transparent;
}
.btn.ghost:hover {
  background: var(--bg3);
}

.btn-start {
  background: var(--teal);
  color: #fff;
  border: none;
  border-radius: var(--radius);
  padding: 11px 22px;
  font-size: 0.92rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.2s;
  font-family: var(--font);
}
.btn-start:hover {
  opacity: 0.88;
}

/* ── NAV TABS ──────────────────────────────────────────────── */
.nav-tabs {
  display: flex;
  border-bottom: 1px solid var(--border);
  overflow-x: auto;
  flex-shrink: 0;
  background: var(--bg2);
}
.nav-tabs::-webkit-scrollbar {
  height: 0;
}
.ntab {
  padding: 0 18px;
  height: 44px;
  display: flex;
  align-items: center;
  font-size: 15px;
  color: var(--text3);
  cursor: pointer;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  transition: var(--transition);
  font-weight: 500;
}
.ntab.on {
  color: var(--text1);
  font-weight: 600;
  border-bottom-color: var(--teal);
}
.ntab:hover:not(.on) {
  color: var(--text2);
  background: var(--bg3);
}

/* ── Sivarr BOX ────────────────────────────────────────────── */
.siva-box {
  background: var(--teal2);
  border-left: 3px solid var(--teal);
  border-radius: 0 var(--radius) var(--radius) 0;
  padding: 14px 16px;
  margin-bottom: 14px;
}
.siva-tag {
  font-size: 13px;
  font-weight: 700;
  color: var(--teal);
  margin-bottom: 5px;
  display: flex;
  align-items: center;
  gap: 5px;
}
.siva-text {
  font-size: 15px;
  color: var(--teal);
  line-height: 1.65;
}

/* ── TASK ROWS ─────────────────────────────────────────────── */
.task-row {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}
.task-row:last-child {
  border-bottom: none;
}
.t-chk {
  width: 18px;
  height: 18px;
  border-radius: 5px;
  border: 1.5px solid var(--border2);
  flex-shrink: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition);
}
.t-chk.done {
  background: var(--teal);
  border-color: var(--teal);
}
.t-chk.done::after {
  content: "";
  width: 9px;
  height: 5px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg) translate(1px, -1px);
  display: block;
}
.t-txt {
  flex: 1;
  font-size: 15px;
  color: var(--text1);
  font-weight: 500;
  line-height: 1.4;
}
.t-txt.done {
  text-decoration: line-through;
  color: var(--text4);
}
.t-due {
  font-size: 13px;
  color: var(--text4);
}

/* ── EMPTY STATES ───────────────────────────────────────────── */
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 24px;
  text-align: center;
  animation: fadeUp 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.es-orb {
  width: 72px;
  height: 72px;
  border-radius: 20px;
  background: var(--bg3);
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  margin-bottom: 20px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}
[data-theme="dark"] .es-orb {
  background: var(--bg3);
  border-color: var(--border2);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.es-icon {
  font-size: 2.5rem;
  margin-bottom: 0.75rem;
  opacity: 0.35;
}
.es-title {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--text1);
  letter-spacing: -0.02em;
  margin-bottom: 8px;
}
.es-text {
  font-size: 0.88rem;
  color: var(--text4);
  line-height: 1.6;
  max-width: 280px;
}
.es-cta {
  margin-top: 20px;
  padding: 10px 22px;
  background: var(--teal);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
  font-family: var(--font);
  transition: all 0.18s;
  box-shadow: 0 0 16px rgba(13, 122, 95, 0.25);
}
.es-cta:hover {
  opacity: 0.88;
  transform: translateY(-1px);
}

/* ── R-CARDS (rich cards) ──────────────────────────────────── */
.r-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 14px;
}
.r-title {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--text1);
  margin-bottom: 0.5rem;
}

/* ── ACTION BUTTONS ────────────────────────────────────────── */
.action-btn {
  padding: 5px 12px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text3);
  font-size: 0.92rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  font-family: var(--font);
}
.action-btn:hover {
  border-color: var(--teal);
  color: var(--teal);
  background: var(--teal2);
}

/* ── FEEDBACK ──────────────────────────────────────────────── */
.feedback-btn {
  display: flex;
  align-items: center;
  gap: 7px;
  width: 100%;
  padding: 9px 12px;
  margin-top: 8px;
  background: none;
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text3);
  font-size: 0.8rem;
  font-weight: 500;
  cursor: pointer;
  font-family: var(--font);
  transition:
    background 0.15s,
    color 0.15s;
}
.feedback-btn:hover {
  background: var(--surface2);
  color: var(--text);
}
.fb-star {
  background: none;
  border: none;
  font-size: 1.6rem;
  cursor: pointer;
  color: var(--border);
  line-height: 1;
  padding: 0;
  transition: color 0.1s;
}
.fb-star.active,
.fb-star:hover {
  color: #f59e0b;
}

/* ── NOTIFICATIONS ─────────────────────────────────────────── */
#notif-panel {
  animation: fadeIn 0.15s ease;
}
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

/* ═══════════════════════════════════════════════════════════════
   HOME PANEL  (#panel-home)
   ═══════════════════════════════════════════════════════════════ */
.home-wrap {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
}
.home-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 14px;
  margin-bottom: 14px;
}

/* ── Sivarr Brief ───────────────────────────────────────────── */
.siva-brief {
  background: var(--card, var(--bg2));
  border: 1px solid var(--border);
  border-radius: var(--radius3);
  padding: 20px 22px;
  margin-bottom: 18px;
  color: var(--text1);
  position: relative;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
[data-theme="dark"] .siva-brief {
  background: var(--card, var(--bg2));
  border: 1px solid var(--border);
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.28);
}
.siva-brief::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(
    ellipse at 100% 0%,
    rgba(13, 122, 95, 0.1) 0%,
    transparent 55%
  );
}
.siva-brief-decor {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
.siva-brief-decor i {
  position: absolute;
  color: var(--teal);
  line-height: 1;
}

.siva-brief-top {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  position: relative;
  z-index: 1;
}
.siva-brief-av {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--teal2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  flex-shrink: 0;
  overflow: hidden;
  border: 1px solid var(--border);
}
.siva-brief-av img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.siva-brief-name {
  font-family: var(--font-display);
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--text1);
  letter-spacing: -0.02em;
}
.siva-brief-action {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text4);
  font-size: 0.9rem;
  padding: 4px;
  line-height: 1;
  border-radius: 6px;
  transition:
    color 0.12s,
    background 0.12s;
}
.siva-brief-action:hover {
  color: var(--teal);
  background: var(--bg3);
}
.siva-brief-badge {
  margin-left: auto;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 3px 11px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--teal);
}
.siva-brief-msg {
  font-size: 1.05rem;
  line-height: 1.6;
  position: relative;
  z-index: 1;
  color: var(--text2);
  font-weight: 400;
}

/* ── Brief decor popover ────────────────────────────────────── */
.brief-decor-pop {
  position: fixed;
  z-index: 9999;
  width: 232px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: var(--shadow3);
  padding: 12px;
  animation: ctxMenuIn 0.12s ease;
}
.bdp-title {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 10px;
}
.bdp-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
}
.bdp-opt {
  aspect-ratio: 1;
  border: 1px solid var(--border);
  background: var(--bg3);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--text2);
  font-size: 16px;
  transition:
    border-color 0.12s,
    color 0.12s,
    background 0.12s;
}
.bdp-opt:hover {
  border-color: var(--teal);
  color: var(--teal);
}
.bdp-opt.sel {
  border-color: var(--teal);
  background: var(--teal2);
  color: var(--teal);
}
.brief-pulse {
  display: inline-block;
  color: var(--text4);
  font-size: 0.85rem;
  animation: briefFade 1.4s ease-in-out infinite;
}
@keyframes briefFade {
  0%,
  100% {
    opacity: 0.4;
  }
  50% {
    opacity: 1;
  }
}

.siva-pills {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
#siva-recent-pills {
  display: contents;
}
.siva-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 5px 12px;
  font-size: 14px;
  color: var(--text2);
  cursor: pointer;
  transition: var(--transition);
  font-family: var(--font);
}
.siva-pill:hover {
  border-color: var(--teal);
  color: var(--teal);
  background: var(--teal2);
}
.sp-add {
  background: var(--teal2);
  border-color: var(--teal);
  color: var(--teal4);
}

/* ── Home Stats ────────────────────────────────────────────── */
.h-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 18px;
}
.h-stat-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 18px;
  transition: var(--transition);
}
.h-stat-card:hover {
  box-shadow: var(--shadow);
}
.h-stat-ic {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  margin-bottom: 12px;
}
.h-stat-val {
  font-family: var(--font-display);
  font-size: 1.9rem;
  font-weight: 900;
  color: var(--text1);
  letter-spacing: -0.04em;
}
.h-stat-lbl {
  font-size: 0.88rem;
  color: var(--text3);
  margin-top: 4px;
}
.h-stat-chg {
  font-size: 0.84rem;
  font-weight: 600;
  margin-top: 5px;
}
.chg-up {
  color: var(--green3);
}
.chg-dn {
  color: var(--red3);
}

.h2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 18px;
}
.h2col-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 18px;
  overflow: hidden;
}
.h-card-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.h-card-title {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 800;
  color: var(--text1);
  letter-spacing: -0.03em;
}
.h-card-link {
  font-size: 0.86rem;
  color: var(--teal);
  font-weight: 600;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font);
}

/* ── Priority Items ──────────────────────────────────────────── */
.priority-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 0;
  border-bottom: 1px solid var(--border);
}
.priority-item:last-child {
  border-bottom: none;
}
.pr-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.pr-text {
  font-size: 1rem;
  color: var(--text2);
  flex: 1;
}
.pr-tag {
  font-size: 0.78rem;
  font-weight: 600;
  border-radius: 20px;
  padding: 3px 9px;
  white-space: nowrap;
}

/* ── Schedule Items ─────────────────────────────────────────── */
.sched-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 7px 0;
  border-bottom: 1px solid var(--border);
}
.sched-item:last-child {
  border-bottom: none;
}
.sched-time {
  font-size: 0.72rem;
  color: var(--text3);
  width: 44px;
  flex-shrink: 0;
  padding-top: 1px;
}
.sched-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 4px;
}
.sched-info {
  flex: 1;
}
.sched-name {
  font-size: 0.82rem;
  color: var(--text1);
  font-weight: 500;
}
.sched-sub {
  font-size: 0.7rem;
  color: var(--text3);
}

/* ── Habit Check Rows ───────────────────────────────────────── */
.habit-check-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid var(--border);
}
.habit-check-row:last-child {
  border-bottom: none;
}
.habit-cb {
  width: 18px;
  height: 18px;
  border-radius: 5px;
  border: 2px solid var(--border2);
  background: var(--bg);
  cursor: pointer;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition);
}
.habit-cb.done {
  background: var(--teal);
  border-color: var(--teal);
  color: #fff;
}
.habit-cb.done::after {
  content: "✓";
  font-size: 0.65rem;
  font-weight: 700;
}
.habit-name {
  font-size: 0.9rem;
  color: var(--text2);
  flex: 1;
  font-weight: 500;
}
.habit-streak {
  font-size: 0.7rem;
  color: var(--amber3);
  font-weight: 600;
}

/* ── Getting Started Guide ──────────────────────────────────── */
.gs-section {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 20px;
  margin-bottom: 18px;
  animation: fadeUp 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.gs-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}
.gs-header-left {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  flex: 1;
  min-width: 0;
}
.gs-badge {
  background: linear-gradient(135deg, var(--teal), var(--accent2));
  color: #fff;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  padding: 3px 8px;
  border-radius: 20px;
  flex-shrink: 0;
  margin-top: 2px;
  text-transform: uppercase;
}
.gs-title {
  font-family: var(--font);
  font-weight: 800;
  font-size: 0.95rem;
  color: var(--text1);
  letter-spacing: -0.02em;
}
.gs-sub {
  font-size: 0.76rem;
  color: var(--muted);
  margin-top: 3px;
}

.gs-progress-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.gs-progress-bar {
  width: 80px;
  height: 5px;
  background: var(--bg3);
  border-radius: 10px;
  overflow: hidden;
}
.gs-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--teal), var(--accent2));
  border-radius: 10px;
  transition: width 0.4s ease;
}
.gs-progress-label {
  font-size: 0.72rem;
  color: var(--muted);
  white-space: nowrap;
}
.gs-dismiss {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg3);
  color: var(--muted);
  font-size: 0.82rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: var(--transition);
}
.gs-dismiss:hover {
  border-color: var(--red3, #ef4444);
  color: var(--red3, #ef4444);
  background: rgba(239, 68, 68, 0.08);
}

/* ═══ Notion-style horizontal scroll row (video "Learn" cards) ═══ */
.gs-videos-wrap {
  display: block;
  overflow-x: auto !important;
  overflow-y: hidden;
  margin: 0 -20px;
  padding: 0 20px 6px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.gs-videos-wrap::-webkit-scrollbar {
  display: none;
}
.gs-videos {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 10px;
  padding-bottom: 2px;
  width: max-content;
}

/* Unified card — icon/thumb band on top, text body below, one shared
   background/border, exactly like Notion's Recently-visited/Learn cards */
.gs-vid-card {
  width: 150px;
  flex: 0 0 auto;
  scroll-snap-align: start;
  border-radius: 12px;
  overflow: hidden;
  background: var(--bg3);
  border: 1px solid var(--border);
  cursor: pointer;
  transition: var(--transition);
}
.gs-vid-card:hover {
  border-color: var(--teal);
}
.gs-vid-card.done .gs-vid-thumb {
  opacity: 0.55;
}
.gs-vid-card.done .gs-vid-done-badge {
  opacity: 1;
}
.gs-vid-card.done .gs-vid-title {
  color: var(--muted);
  text-decoration: line-through;
}

.gs-vid-thumb {
  width: 100%;
  height: 84px;
  background: var(--bg2);
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.gs-vid-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  width: 100%;
  height: 100%;
}
.gs-vid-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.3);
  opacity: 0;
  transition: opacity 0.18s;
  color: #fff;
  font-size: 1.4rem;
}
.gs-vid-card:hover .gs-vid-play {
  opacity: 1;
}
.gs-vid-done-badge {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--teal);
  color: #fff;
  font-size: 0.7rem;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.2s;
}

.gs-vid-body {
  padding: 10px 12px 12px;
}
.gs-vid-title {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color 0.2s;
}
.gs-vid-meta {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.7rem;
  color: var(--muted);
  margin-top: 4px;
}
.gs-vid-meta i {
  font-size: 0.75rem;
}

/* ═══ Quick-tips row — same horizontal-scroll mechanic, not a grid ═══ */
.gs-tips {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 10px;
  margin: 16px -20px 0;
  padding: 0 20px 2px;
  overflow-x: auto !important;
  overflow-y: hidden;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.gs-tips::-webkit-scrollbar {
  display: none;
}
.gs-tip {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: var(--bg3);
  border-radius: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  width: 210px;
  flex: 0 0 auto;
  scroll-snap-align: start;
}
.gs-tip-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
}
.gs-tip-title {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--text1);
}
.gs-tip-desc {
  font-size: 0.7rem;
  color: var(--muted);
  margin-top: 2px;
  line-height: 1.4;
}

/* ═══════════════════════════════════════════════════════════════
   CHAT PANEL  (#panel-chat)
   ═══════════════════════════════════════════════════════════════ */
#panel-chat {
  display: none;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}
#panel-chat.active {
  display: flex;
}

/* ── Chat Header ────────────────────────────────────────────── */
.chat-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 20px 12px;
  border-bottom: 1px solid var(--border);
  background: var(--bg);
  flex-shrink: 0;
}
.chat-header-av {
  width: 40px;
  height: 40px;
  border-radius: 14px;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--teal), var(--accent2));
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--glow-teal);
  position: relative;
}
.chat-header-av::after {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 15px;
  background: linear-gradient(135deg, var(--teal), var(--accent2));
  z-index: -1;
  filter: blur(6px);
  opacity: 0.4;
}
.chat-header-av img {
  width: 22px;
  height: 22px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}
.chat-header-info {
  flex: 1;
  min-width: 0;
}
.chat-header-name {
  font-family: var(--font);
  font-weight: 800;
  font-size: 0.92rem;
  color: var(--text1);
  letter-spacing: -0.02em;
}
.chat-header-status {
  font-size: 0.72rem;
  color: var(--muted, #888);
  margin-top: 1px;
  display: flex;
  align-items: center;
  gap: 5px;
}
.chat-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #22c55e;
  flex-shrink: 0;
  box-shadow: 0 0 6px #22c55e88;
  animation: statusPulse 2.5s ease-in-out infinite;
}
.chat-status-dot.thinking {
  background: var(--accent, #0d7a5f);
  box-shadow: 0 0 6px rgba(13, 122, 95, 0.6);
  animation: statusPulse 0.9s ease-in-out infinite;
}
@keyframes statusPulse {
  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.55;
    transform: scale(0.85);
  }
}
.chat-header-actions {
  display: flex;
  gap: 6px;
}
.chat-hdr-btn {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text3);
  font-size: 0.85rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition);
}
.chat-hdr-btn:hover {
  border-color: var(--teal);
  color: var(--teal);
  background: var(--teal2);
}

/* ── Messages ────────────────────────────────────────────────── */
.chat-msgs {
  flex: 1;
  overflow-y: auto;
  padding: 24px max(20px, calc((100% - var(--chat-max)) / 2)) 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: var(--bg);
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
}
[data-theme="dark"] .chat-msgs {
  background: radial-gradient(
    ellipse 80% 50% at 50% -10%,
    rgba(15, 219, 173, 0.04),
    transparent
  );
}
.chat-msgs::-webkit-scrollbar {
  width: 3px;
}
.chat-msgs::-webkit-scrollbar-thumb {
  background: var(--border);
  border-radius: 3px;
}

/* ── Message Rows ───────────────────────────────────────────── */
.msg {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  max-width: 84%;
  animation: msgSlideIn 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}
.msg.user {
  align-self: flex-end;
  flex-direction: row-reverse;
}
.msg.sivarr {
  align-self: flex-start;
}

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

.msg-av {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 900;
  font-size: 0.65rem;
  margin-bottom: 2px;
  letter-spacing: 0.02em;
}
.msg.sivarr .msg-av {
  background: var(--ai-grad);
  color: #fff;
  box-shadow: var(--ai-glow);
}
.msg.user .msg-av {
  background: var(--bg3);
  border: 1px solid var(--border);
  color: var(--text2);
}

.msg-inner {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.msg.user .msg-inner {
  align-items: flex-end;
}
.msg.sivarr .msg-inner {
  align-items: flex-start;
}

.msg-bub {
  padding: 12px 16px;
  border-radius: 18px;
  font-size: 0.9rem;
  line-height: 1.68;
  word-break: break-word;
  position: relative;
  transition: box-shadow 0.2s;
}
.msg.sivarr .msg-bub {
  background: var(--bg2);
  color: var(--text1);
  border: 1px solid var(--border);
  border-bottom-left-radius: 4px;
  box-shadow: var(--shadow);
}
[data-theme="dark"] .msg.sivarr .msg-bub {
  background: rgba(28, 28, 28, 0.97);
  border-color: rgba(15, 219, 173, 0.12);
  box-shadow:
    0 2px 12px rgba(0, 0, 0, 0.4),
    0 0 0 1px rgba(15, 219, 173, 0.06);
}
.msg.user .msg-bub {
  background: var(--ai-grad);
  color: #fff;
  border-bottom-right-radius: 4px;
  box-shadow: var(--glow-teal);
}
.msg-bub.md-body {
  font-size: 0.9rem;
}

.msg-actions {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  opacity: 0;
  transition: opacity 0.18s;
  height: 0;
  overflow: hidden;
  pointer-events: none;
}
.msg:hover .msg-actions,
.msg-actions:focus-within {
  opacity: 1;
  height: auto;
  pointer-events: auto;
}
.action-btn {
  font-size: 0.7rem;
  padding: 3px 9px;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text3);
  font-family: var(--font);
  cursor: pointer;
  transition: var(--transition);
  font-weight: 600;
}
.action-btn:hover {
  border-color: var(--teal);
  color: var(--teal);
  background: var(--teal2);
}

/* ── Suggestions ────────────────────────────────────────────── */
.chat-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
  opacity: 0;
  animation: fadeUp 0.3s 0.1s forwards;
}
.chat-sug-pill {
  font-size: 0.76rem;
  padding: 5px 12px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text2);
  font-family: var(--font-body);
  cursor: pointer;
  transition: var(--transition);
  line-height: 1.3;
  text-align: left;
}
.chat-sug-pill:hover {
  border-color: var(--teal);
  color: var(--teal);
  background: var(--teal2);
}

.msg-bub.msg-error {
  border-color: var(--coral);
}

/* ── Day Divider ────────────────────────────────────────────── */
.chat-day-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--text4);
  font-size: 0.72rem;
  margin: 8px 0;
  user-select: none;
}
.chat-day-divider::before,
.chat-day-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border);
}

.uncertain {
  font-size: 0.72rem;
  color: var(--amber, #f59e0b);
  margin-top: 4px;
  display: flex;
  align-items: center;
  gap: 4px;
}

/* ── Typing Indicator ───────────────────────────────────────── */
.typing {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 13px 16px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 18px;
  border-bottom-left-radius: 5px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.typing span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: linear-gradient(135deg, #0d7a5f, #534ab7);
  display: inline-block;
  animation: typingBounce 1.2s infinite ease-in-out;
}
.typing span:nth-child(2) {
  animation-delay: 0.18s;
}
.typing span:nth-child(3) {
  animation-delay: 0.36s;
}
@keyframes typingBounce {
  0%,
  80%,
  100% {
    transform: translateY(0) scale(1);
    opacity: 0.5;
  }
  40% {
    transform: translateY(-7px) scale(1.1);
    opacity: 1;
  }
}

/* ── Chat Welcome ───────────────────────────────────────────── */
#chat-welcome {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100%;
  padding: 2.5rem 1.5rem 1rem;
  text-align: center;
  animation: fadeUp 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.chat-welcome-orb {
  width: 92px;
  height: 92px;
  border-radius: 26px;
  background: var(--ai-grad);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.75rem;
  position: relative;
  box-shadow:
    var(--ai-glow),
    0 0 0 1px rgba(255, 255, 255, 0.07);
  animation: orbPulse 3.5s ease-in-out infinite;
}
@keyframes orbPulse {
  0%,
  100% {
    box-shadow:
      var(--ai-glow),
      0 0 0 1px rgba(255, 255, 255, 0.06);
  }
  50% {
    box-shadow:
      0 0 56px rgba(var(--teal-rgb, 13, 122, 95), 0.45),
      0 0 20px rgba(83, 74, 183, 0.3),
      0 0 0 1px rgba(255, 255, 255, 0.1);
  }
}
.chat-welcome-orb::after {
  content: "";
  position: absolute;
  inset: -6px;
  border-radius: 32px;
  background: var(--ai-grad);
  opacity: 0.2;
  filter: blur(16px);
  z-index: -1;
  animation: orbPulse 3.5s ease-in-out infinite;
}
.chat-welcome-orb img {
  width: 50px;
  height: 50px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.chat-welcome-heading {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--text1);
  margin-bottom: 0.4rem;
  line-height: 1.1;
}
.chat-welcome-heading .name-teal {
  background: var(--ai-grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.chat-welcome-sub {
  font-size: 0.95rem;
  color: var(--text3);
  margin-bottom: 2.4rem;
  line-height: 1.6;
}
.chat-welcome-hint {
  font-size: 0.74rem;
  color: var(--text4);
  margin-top: 1.6rem;
  display: flex;
  align-items: center;
  gap: 6px;
}
.chat-welcome-hint::before {
  content: "✦";
  color: var(--teal);
  font-size: 0.6rem;
}

.chat-prompt-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  max-width: 520px;
  width: 100%;
}
.chat-prompt-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 18px 16px 15px;
  text-align: left;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-family: var(--font);
  position: relative;
  overflow: hidden;
}
.chat-prompt-card::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0;
  background: var(
    --cpc-grad,
    linear-gradient(135deg, var(--teal2), transparent)
  );
  transition: opacity 0.2s;
}
.chat-prompt-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow2);
}
.chat-prompt-card:hover {
  border-color: var(--cpc-color, var(--teal));
}
.chat-prompt-card:hover::before {
  opacity: 1;
}
[data-theme="dark"] .chat-prompt-card {
  background: rgba(255, 255, 255, 0.03);
}
[data-theme="dark"] .chat-prompt-card:hover {
  background: rgba(255, 255, 255, 0.06);
}

.cpc-icon-wrap {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  background: var(--cpc-bg, var(--teal2));
  color: var(--cpc-color, var(--teal));
  transition: transform 0.2s;
  position: relative;
}
.chat-prompt-card:hover .cpc-icon-wrap {
  transform: scale(1.08);
}
.cpc-title {
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--text1);
  line-height: 1.2;
  position: relative;
}
.cpc-sub {
  font-size: 0.74rem;
  color: var(--text3);
  line-height: 1.4;
  position: relative;
}

/* ── Chat Bar ────────────────────────────────────────────────── */
.chat-bar {
  position: relative;
  padding: 10px 14px max(16px, env(safe-area-inset-bottom, 16px));
  margin: 0 auto 12px;
  width: calc(100% - 24px);
  max-width: var(--chat-max);
  border: 1px solid var(--border);
  border-radius: 20px;
  background: var(--bg2);
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-shadow:
    0 4px 24px rgba(0, 0, 0, 0.12),
    0 0 0 1px rgba(255, 255, 255, 0.03) inset;
  transition:
    border-color 0.2s,
    box-shadow 0.2s;
}
.chat-bar:focus-within {
  border-color: rgba(13, 122, 95, 0.4);
  box-shadow:
    0 4px 32px rgba(13, 122, 95, 0.12),
    0 0 0 1px rgba(13, 122, 95, 0.15) inset;
}

.chat-action-pills {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.chat-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 11px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--text3);
  font-family: var(--font);
  font-size: 0.76rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.18s;
}
.chat-pill i {
  font-size: 0.82rem;
}
.chat-pill:hover {
  border-color: var(--teal);
  color: var(--teal);
  background: var(--teal2);
  transform: translateY(-1px);
}
.chat-msg-counter {
  font-size: 0.73rem;
  color: var(--text4);
  white-space: nowrap;
}

.chat-input-row {
  display: flex;
  align-items: flex-end;
  gap: 6px;
}
.chat-add-btn {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--bg3);
  color: var(--text3);
  font-size: 1.05rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s;
}
.chat-add-btn:hover,
.chat-add-btn.open {
  border-color: var(--teal);
  color: var(--teal);
  background: var(--teal2);
}

.chat-add-menu {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 0;
  min-width: 240px;
  max-width: min(320px, calc(100vw - 32px));
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 10px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.22);
  display: none;
  flex-direction: column;
  gap: 6px;
  z-index: 200;
}
.chat-add-menu.open {
  display: flex;
}
.cam-section {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 2px 4px 4px;
}
.cam-models {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 5px;
}
.cam-model {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 8px 4px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: none;
  cursor: pointer;
  transition: all 0.15s;
  font-family: var(--font);
}
.cam-model i {
  font-size: 1rem;
  color: var(--text2);
}
.cam-model span {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--text1);
}
.cam-model small {
  font-size: 0.58rem;
  color: var(--muted);
}
.cam-model:hover {
  border-color: var(--accent);
  background: var(--accent2) 10;
}
.cam-active {
  background: linear-gradient(135deg, var(--accent), var(--accent2)) !important;
  border-color: transparent !important;
}
.cam-active i,
.cam-active span,
.cam-active small {
  color: #fff !important;
}
.cam-locked {
  opacity: 0.5;
  cursor: default;
}
.cam-divider {
  height: 1px;
  background: var(--border);
  margin: 2px 0;
}
.cam-actions {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 5px;
}
.cam-action {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 8px 10px;
  border-radius: 9px;
  border: 1px solid var(--border);
  background: none;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text2);
  cursor: pointer;
  transition: all 0.15s;
  font-family: var(--font);
}
.cam-action i {
  font-size: 0.82rem;
}
.cam-action:hover {
  border-color: var(--teal);
  color: var(--teal);
  background: var(--teal2);
}

.chat-input {
  flex: 1;
  background: transparent;
  border: none;
  padding: 6px 4px;
  color: var(--text1);
  font-size: 0.9rem;
  resize: none;
  font-family: var(--font);
  outline: none;
  line-height: 1.55;
  min-height: 36px;
}
.chat-input::placeholder {
  color: var(--text4);
}
.chat-icon-btn {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--bg3);
  color: var(--text3);
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: all 0.18s;
}
.chat-icon-btn:hover {
  border-color: var(--teal);
  color: var(--teal);
  transform: scale(1.05);
}
.chat-icon-btn.active {
  background: var(--coral);
  border-color: var(--coral);
  color: #fff;
}
.chat-send-btn {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: linear-gradient(135deg, #0d7a5f, #534ab7);
  color: #fff;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: all 0.2s;
  font-size: 0.95rem;
  box-shadow: 0 2px 8px rgba(13, 122, 95, 0.3);
}
.chat-send-btn:hover {
  transform: scale(1.08);
  box-shadow: 0 4px 16px rgba(13, 122, 95, 0.4);
}
.chat-send-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.send-btn {
  display: none;
}

/* ── Agent Selector Chips ───────────────────────────────────── */
.agent-selector {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
  padding: 6px 16px 0;
}
.agent-chip {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 5px 11px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: none;
  font-family: var(--font);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--text3);
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
}
.agent-chip.active {
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  border-color: transparent;
  color: #fff;
}
.agent-chip.locked {
  opacity: 0.55;
  cursor: default;
}
.agent-chip:not(.active):not(.locked):hover {
  border-color: var(--accent);
  color: var(--accent);
}
.agent-chip-badge {
  font-size: 0.6rem;
  padding: 1px 5px;
  border-radius: 10px;
  font-weight: 700;
  line-height: 1.4;
}
.agent-chip.active .agent-chip-badge {
  background: #ffffff30;
}
.agent-chip:not(.active) .agent-chip-badge {
  background: var(--accent2) 20;
  color: var(--accent2);
}

/* ── Chat Retry / Error ─────────────────────────────────────── */
.chat-retry-btn {
  display: inline-block;
  margin-top: 7px;
  background: none;
  border: 1px solid var(--coral);
  color: var(--coral);
  border-radius: 8px;
  padding: 3px 12px;
  font-size: 0.76rem;
  cursor: pointer;
  font-family: inherit;
  transition: background 0.15s;
}
.chat-retry-btn:hover {
  background: rgba(255, 80, 80, 0.12);
}

/* ═══════════════════════════════════════════════════════════════
   QUIZ PANEL  (#panel-quiz)
   ═══════════════════════════════════════════════════════════════ */
.quiz-wrap {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
}
.quiz-start-card {
  max-width: 480px;
  margin: 0 auto;
  padding: 2rem;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius3);
  text-align: center;
  box-shadow: var(--shadow2);
}
.quiz-start-card h2 {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--text1);
  margin-bottom: 0.75rem;
}
.quiz-card {
  max-width: 600px;
  margin: 0 auto;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius3);
  padding: 1.5rem;
  box-shadow: var(--shadow2);
}
.quiz-q-text {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text1);
  margin-bottom: 1.25rem;
  line-height: 1.5;
}
.quiz-opt {
  display: block;
  width: 100%;
  padding: 11px 16px;
  background: var(--bg3);
  border: 1.5px solid var(--border);
  border-radius: var(--radius);
  text-align: left;
  font-size: 0.9rem;
  color: var(--text2);
  cursor: pointer;
  margin-bottom: 0.5rem;
  transition: var(--transition);
  font-family: var(--font);
}
.quiz-opt:hover {
  border-color: var(--teal);
  background: var(--teal2);
  color: var(--teal4);
}
.quiz-opt.correct {
  border-color: var(--green3);
  background: var(--green2);
  color: var(--green);
}
.quiz-opt.wrong {
  border-color: var(--red3);
  background: var(--red2);
  color: var(--red);
}
.quiz-meta {
  font-size: 0.78rem;
  color: var(--text4);
}
.quiz-score {
  font-size: 0.88rem;
  color: var(--text3);
  font-weight: 600;
}

/* ── Generate Quiz ──────────────────────────────────────────── */
.quizzes-wrap {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
}

/* ── Ask Notes ──────────────────────────────────────────────── */
.ask-notes-panel {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
}

/* ═══════════════════════════════════════════════════════════════
   STATS / PROGRESS PANEL  (#panel-stats)
   ═══════════════════════════════════════════════════════════════ */
.stats-wrap {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
}
.stat-block {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 16px;
  margin-bottom: 12px;
}
.stats-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 14px;
}
.stat-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-top: 3px solid var(--sc, var(--accent));
  border-radius: var(--radius2);
  padding: 12px 14px;
  transition: var(--transition);
}
.stat-card:hover {
  box-shadow: var(--shadow);
}
.sc-label {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}
.sc-val {
  font-size: 1.7rem;
  font-weight: 800;
  font-family: var(--font);
  line-height: 1;
  letter-spacing: -0.03em;
}

/* ═══════════════════════════════════════════════════════════════
   NOTES / DOC EDITOR PANEL  (#panel-notes)
   ═══════════════════════════════════════════════════════════════ */
#panel-notes {
  flex-direction: row;
  overflow: hidden;
}

.doc-sidebar {
  width: 220px;
  flex-shrink: 0;
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  background: var(--bg);
  overflow: hidden;
}
.doc-sb-top {
  padding: 12px 10px 8px;
  border-bottom: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex-shrink: 0;
}
.doc-new-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  justify-content: center;
  padding: 8px;
  border-radius: var(--radius);
  border: none;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  color: #fff;
  font-family: var(--font);
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
  transition: var(--transition);
}
.doc-new-btn:hover {
  opacity: 0.88;
}
.doc-search-wrap {
  position: relative;
}
.doc-search-icon {
  position: absolute;
  left: 9px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text4);
  font-size: 13px;
  pointer-events: none;
}
.doc-search-input {
  width: 100%;
  padding: 7px 10px 7px 28px;
  box-sizing: border-box;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--text1);
  font-family: var(--font);
  font-size: 0.78rem;
  outline: none;
  transition: var(--transition);
}
.doc-search-input:focus {
  border-color: var(--teal);
}

.doc-list {
  flex: 1;
  overflow-y: auto;
  padding: 6px;
}
.doc-list-empty {
  text-align: center;
  color: var(--text4);
  font-size: 0.75rem;
  padding: 20px 8px;
}
.doc-item {
  padding: 9px 10px;
  border-radius: var(--radius);
  cursor: pointer;
  margin-bottom: 3px;
  transition: var(--transition);
  border: 1px solid transparent;
}
.doc-item:hover {
  background: var(--bg3);
}
.doc-item.active {
  background: var(--teal2);
  border-color: var(--teal);
}
.doc-item-title {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.doc-item.active .doc-item-title {
  color: var(--teal4);
}
.doc-item-meta {
  font-size: 0.7rem;
  color: var(--text4);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.doc-item-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
}
.doc-delete-btn {
  visibility: hidden;
  background: none;
  border: none;
  color: var(--text4);
  font-size: 12px;
  padding: 2px 4px;
  border-radius: 4px;
  cursor: pointer;
  transition: var(--transition);
  flex-shrink: 0;
}
.doc-item:hover .doc-delete-btn {
  visibility: visible;
}
.doc-delete-btn:hover {
  color: var(--red3);
  background: var(--red2);
}

.doc-editor-area {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
}
.doc-empty-state {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 40px;
}
.doc-es-icon {
  font-size: 40px;
}
.doc-es-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text1);
}
.doc-es-sub {
  font-size: 0.8rem;
  color: var(--text3);
  text-align: center;
}
.doc-es-btn {
  padding: 9px 20px;
  border-radius: var(--radius);
  border: none;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  color: #fff;
  font-family: var(--font);
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  margin-top: 4px;
  transition: var(--transition);
}
.doc-es-btn:hover {
  opacity: 0.88;
}

.doc-editor-wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.doc-toolbar {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 8px 16px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
  background: var(--bg2);
  flex-wrap: wrap;
}
.doc-tb-group {
  display: flex;
  align-items: center;
  gap: 2px;
}
.doc-tb-sep {
  width: 1px;
  height: 18px;
  background: var(--border);
  margin: 0 4px;
  flex-shrink: 0;
}
.doc-tb-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  border: none;
  background: transparent;
  color: var(--text3);
  font-family: var(--font);
  cursor: pointer;
  transition: var(--transition);
}
.doc-tb-btn:hover {
  background: var(--bg3);
  color: var(--text1);
}
.doc-tb-btn.active {
  background: var(--teal2);
  color: var(--teal4);
}
.doc-siva-btn {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  border-radius: 20px;
  border: none;
  margin-left: auto;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  color: #fff;
  font-family: var(--font);
  font-size: 0.74rem;
  font-weight: 700;
  cursor: pointer;
  transition: var(--transition);
  flex-shrink: 0;
}
.doc-siva-btn:hover {
  opacity: 0.88;
}

.doc-title-area {
  padding: 16px 24px 6px;
  flex-shrink: 0;
  border-bottom: 1px solid var(--border);
}
.doc-title-input {
  width: 100%;
  border: none;
  outline: none;
  background: transparent;
  font-family: var(--font);
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--text1);
  letter-spacing: -0.03em;
}
.doc-title-input::placeholder {
  color: var(--text4);
}

.doc-content {
  flex: 1;
  overflow-y: auto;
  padding: 16px 24px;
  color: var(--text1);
  font-family: var(--font);
  font-size: 0.9rem;
  line-height: 1.75;
  min-height: 0;
}

.doc-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 24px;
  border-top: 1px solid var(--border);
  flex-shrink: 0;
  background: var(--bg2);
}
.doc-save-status {
  font-size: 0.72rem;
  color: var(--text4);
}
.doc-word-count {
  font-size: 0.72rem;
  color: var(--text4);
}

/* ── ProseMirror (Tiptap) ───────────────────────────────────── */
.ProseMirror {
  outline: none;
  min-height: calc(100% - 8px);
  caret-color: var(--teal);
}
.ProseMirror p.is-editor-empty:first-child::before {
  content: attr(data-placeholder);
  float: left;
  height: 0;
  color: var(--text4);
  pointer-events: none;
}
.ProseMirror h1 {
  font-family: var(--font-display);
  font-size: 1.7rem;
  font-weight: 900;
  margin: 1.1rem 0 0.4rem;
  letter-spacing: -0.03em;
  color: var(--text1);
  line-height: 1.2;
}
.ProseMirror h2 {
  font-family: var(--font-display);
  font-size: 1.3rem;
  font-weight: 800;
  margin: 1rem 0 0.35rem;
  letter-spacing: -0.02em;
}
.ProseMirror h3 {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0.85rem 0 0.3rem;
  color: var(--text2);
}
.ProseMirror p {
  margin: 0.3rem 0;
}
.ProseMirror ul,
.ProseMirror ol {
  padding-left: 1.5rem;
  margin: 0.4rem 0;
}
.ProseMirror li {
  margin: 0.2rem 0;
}
.ProseMirror blockquote {
  border-left: 3px solid var(--teal);
  margin: 0.7rem 0;
  padding: 0.4rem 0.9rem;
  background: var(--teal2);
  border-radius: 0 var(--radius) var(--radius) 0;
  color: var(--text2);
  font-style: italic;
}
.ProseMirror hr {
  border: none;
  border-top: 1px solid var(--border);
  margin: 1.2rem 0;
}
.ProseMirror pre {
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 0.8rem 1rem;
  margin: 0.6rem 0;
  font-family: "Courier New", monospace;
  font-size: 0.82rem;
  overflow-x: auto;
  white-space: pre;
}
.ProseMirror code {
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 1px 6px;
  font-family: "Courier New", monospace;
  font-size: 0.82rem;
}
.ProseMirror strong {
  font-weight: 700;
}
.ProseMirror em {
  font-style: italic;
}
.ProseMirror u {
  text-decoration: underline;
}
.ProseMirror s {
  text-decoration: line-through;
  color: var(--text3);
}
.ProseMirror ::selection {
  background: rgba(13, 122, 95, 0.25);
}
[data-theme="dark"] .ProseMirror ::selection {
  background: rgba(15, 219, 173, 0.2);
}

/* ── Slash Command Menu ─────────────────────────────────────── */
#slash-menu {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 4px;
  box-shadow: var(--shadow3);
  min-width: 220px;
  max-height: 300px;
  overflow-y: auto;
}
.slash-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.12s;
}
.slash-item:hover,
.slash-item.sel {
  background: var(--bg3);
}
.slash-ic {
  width: 30px;
  height: 30px;
  border-radius: 7px;
  flex-shrink: 0;
  background: var(--bg3);
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  color: var(--text2);
}
.slash-lb {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text1);
}
.slash-ds {
  font-size: 0.72rem;
  color: var(--text3);
  margin-top: 1px;
}

/* ── Doc Hub Toolbar ────────────────────────────────────────── */
.dh-toolbar {
  display: flex;
  align-items: center;
  gap: 3px;
  padding: 6px 12px;
  border-bottom: 1px solid var(--border);
  background: var(--bg2);
  flex-shrink: 0;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.dh-toolbar::-webkit-scrollbar {
  display: none;
}
.dh-tool-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 30px;
  border-radius: 6px;
  border: none;
  background: transparent;
  color: var(--text3);
  font-family: var(--font);
  font-size: 0.82rem;
  cursor: pointer;
  transition:
    background 0.12s,
    color 0.12s;
  flex-shrink: 0;
}
.dh-tool-btn:hover {
  background: var(--bg3);
  color: var(--fg);
}
.dh-sep {
  width: 1px;
  height: 18px;
  background: var(--border);
  margin: 0 3px;
  flex-shrink: 0;
}
.dh-font-size-select {
  padding: 3px 6px;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--fg);
  font-size: 0.78rem;
  font-family: var(--font);
  cursor: pointer;
}
.dh-font-size-select:focus {
  outline: none;
  border-color: var(--teal);
}

/* ── Link Modal ─────────────────────────────────────────────── */
.dh-link-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.dh-link-modal-box {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 20px;
  width: 100%;
  max-width: 380px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.dh-link-modal-title {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--fg);
}
.dh-link-input {
  padding: 9px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--fg);
  font-size: 0.84rem;
  font-family: var(--font);
  width: 100%;
}
.dh-link-input:focus {
  outline: none;
  border-color: var(--teal);
}
.dh-link-footer {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}
.dh-link-cancel {
  padding: 7px 16px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: none;
  cursor: pointer;
  font-size: 0.82rem;
  color: var(--fg);
}
.dh-link-insert {
  padding: 7px 18px;
  border-radius: 8px;
  border: none;
  background: var(--teal);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
}

/* ── Note Cards (legacy) ────────────────────────────────────── */
.note-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 13px 15px;
  cursor: pointer;
  transition: var(--transition);
  margin-bottom: 8px;
}
.note-card:hover {
  box-shadow: var(--shadow);
  border-color: var(--border2);
}
.note-tag {
  display: inline-block;
  background: var(--teal2);
  color: var(--teal4);
  border-radius: 20px;
  padding: 2px 9px;
  font-size: 12px;
  font-weight: 600;
  margin-bottom: 6px;
}
.note-text {
  font-size: 16px;
  color: var(--text2);
  line-height: 1.65;
}
.note-date {
  font-size: 14px;
  color: var(--text4);
  margin-top: 6px;
}
.note-tag-pill {
  display: inline-flex;
  align-items: center;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 3px 10px;
  font-size: 13px;
  color: var(--text3);
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
}
.note-tag-pill:hover,
.note-tag-pill.active {
  background: var(--teal2);
  border-color: var(--teal);
  color: var(--teal4);
}

/* ═══════════════════════════════════════════════════════════════
   FLUX / TASKS PANEL  (#panel-flux)
   ═══════════════════════════════════════════════════════════════ */
.sh-col {
  flex-shrink: 0;
  width: 220px;
  display: flex;
  flex-direction: column;
}
.sh-col-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 4px;
  margin-bottom: 8px;
}
.sh-col-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--text2);
}
.sh-col-count {
  font-size: 13px;
  color: var(--text4);
  background: var(--bg3);
  border-radius: 20px;
  padding: 1px 7px;
}
.sh-col-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.sh-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 10px;
  margin-bottom: 8px;
  cursor: pointer;
  transition: var(--transition);
}
.sh-card:hover {
  border-color: var(--teal);
  box-shadow: var(--shadow);
}
.sh-card-title {
  font-size: 14px;
  color: var(--text1);
  margin-bottom: 6px;
  font-weight: 500;
}

.sh-col-body {
  flex: 1;
  overflow-y: auto;
  min-height: 80px;
  background: var(--bg3);
  border-radius: var(--radius);
  padding: 4px;
  border: 1px dashed var(--border2);
}
.sh-col-add {
  width: 100%;
  padding: 7px;
  border: none;
  background: none;
  color: var(--text4);
  font-size: 14px;
  cursor: pointer;
  transition: var(--transition);
  font-family: var(--font);
  border-radius: var(--radius);
  margin-top: 4px;
}
.sh-col-add:hover {
  background: var(--bg3);
  color: var(--teal);
}

.sh-th {
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 600;
  color: var(--text4);
  border-bottom: 1px solid var(--border);
  background: var(--bg2);
  white-space: nowrap;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.sh-td {
  padding: 8px 12px;
  font-size: 14px;
  color: var(--text2);
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
}
.sh-view-btn {
  padding: 5px 11px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text3);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  font-family: var(--font);
}
.sh-view-btn:hover,
.sh-view-btn.active {
  background: var(--teal2);
  border-color: var(--teal);
  color: var(--teal4);
}
.sh-add-task-btn {
  padding: 5px 12px;
  background: var(--teal);
  color: #fff;
  border: none;
  border-radius: var(--radius);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  font-family: var(--font);
  transition: opacity 0.2s;
}
.sh-add-task-btn:hover {
  opacity: 0.88;
}
.sh-filter-opt {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 3px 0;
  font-size: 0.82rem;
  cursor: pointer;
  color: var(--text2);
}
.sh-filter-opt input {
  accent-color: var(--teal);
  cursor: pointer;
}
.sh-ai-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 10px;
}
.sh-ai-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--text2);
  margin-bottom: 6px;
}
.sh-input {
  width: 100%;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 7px 10px;
  color: var(--text1);
  font-size: 0.82rem;
  outline: none;
  transition: var(--transition);
  font-family: var(--font);
}
.sh-input:focus {
  border-color: var(--teal);
  background: var(--bg2);
}
.sh-input::placeholder {
  color: var(--text4);
}
.sh-add-btn {
  padding: 7px 12px;
  background: var(--teal);
  color: #fff;
  border: none;
  border-radius: var(--radius);
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
  font-family: var(--font);
  transition: opacity 0.2s;
}
.sh-add-btn:hover {
  opacity: 0.88;
}
.sh-field-group {
  margin-bottom: 0.875rem;
}
.sh-field-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--text4);
  margin-bottom: 4px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* ── Kanban ──────────────────────────────────────────────────── */
.kanban {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding-bottom: 8px;
  height: 100%;
}
.kb-col {
  flex-shrink: 0;
  width: 210px;
  background: var(--bg3);
  border-radius: var(--radius2);
  padding: 10px;
  display: flex;
  flex-direction: column;
}
.kb-col-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.kb-col-title {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--text2);
}
.kb-col-count {
  font-size: 0.65rem;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 1px 7px;
  color: var(--text4);
}
.kb-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 10px;
  margin-bottom: 6px;
  cursor: grab;
  transition: var(--transition);
}
.kb-card:hover {
  box-shadow: var(--shadow);
}
.kb-card-title {
  font-size: 0.8rem;
  color: var(--text1);
  font-weight: 500;
  margin-bottom: 5px;
}
.kb-card-tag {
  font-size: 0.65rem;
  font-weight: 600;
  border-radius: 20px;
  padding: 2px 7px;
  display: inline-block;
}
.kb-add {
  width: 100%;
  padding: 7px;
  background: none;
  border: none;
  color: var(--text4);
  font-size: 0.75rem;
  cursor: pointer;
  font-family: var(--font);
  border-radius: var(--radius);
  transition: var(--transition);
  margin-top: 2px;
}
.kb-add:hover {
  background: var(--bg2);
  color: var(--teal);
}

/* ── Task Focus Button ──────────────────────────────────────── */
.task-focus-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--text4);
  font-size: 0.72rem;
  cursor: pointer;
  transition: var(--transition);
  flex-shrink: 0;
}
.task-focus-btn:hover {
  background: var(--teal2);
  border-color: var(--teal);
  color: var(--teal4);
}

/* ═══════════════════════════════════════════════════════════════
   STUDY PLAN PANEL  (#panel-studyplan)
   ═══════════════════════════════════════════════════════════════ */
.sp-hrs-btn {
  padding: 6px 12px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text3);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  font-family: var(--font);
}
.sp-hrs-btn:hover,
.sp-hrs-active {
  background: var(--teal2);
  border-color: var(--teal);
  color: var(--teal4);
}

/* ═══════════════════════════════════════════════════════════════
   CLASSES PANEL  (#panel-courses)
   ═══════════════════════════════════════════════════════════════ */
.class-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 14px;
  cursor: pointer;
  transition: var(--transition);
  margin-bottom: 8px;
}
.class-card:hover {
  box-shadow: var(--shadow);
  border-color: var(--border2);
}

/* ═══════════════════════════════════════════════════════════════
   GOALS PANEL  (#panel-goals)
   ═══════════════════════════════════════════════════════════════ */
.gl-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-bottom: 16px;
}
.gl-stat {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px 14px;
  text-align: center;
}
.gl-stat-val {
  font-family: var(--font);
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--text);
  line-height: 1;
}
.gl-stat-lbl {
  font-size: 0.68rem;
  color: var(--muted);
  margin-top: 3px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
}
.gl-stat.overdue .gl-stat-val {
  color: #ef4444;
}
.gl-stat.completed .gl-stat-val {
  color: #22c55e;
}

.gl-filters {
  display: flex;
  gap: 6px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.gl-filter-btn {
  padding: 5px 14px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
  font-family: var(--font);
  transition: var(--transition);
}
.gl-filter-btn.active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.gl-filter-btn:hover:not(.active) {
  border-color: var(--accent);
  color: var(--accent);
}

.gl-add-form {
  max-height: 0;
  overflow: hidden;
  transition:
    max-height 0.35s ease,
    padding 0.35s ease;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 14px;
  margin-bottom: 16px;
  padding: 0 16px;
}
.gl-add-form.open {
  max-height: 460px;
  padding: 16px;
}

.gl-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 10px;
  transition: var(--transition);
}
.gl-card:hover {
  box-shadow: var(--shadow);
  border-color: var(--border2);
}
.gl-card.done {
  opacity: 0.72;
}
.gl-card.done .gl-title {
  text-decoration: line-through;
  color: var(--muted);
}

.gl-title {
  font-family: var(--font);
  font-size: 0.94rem;
  font-weight: 800;
  color: var(--text);
  letter-spacing: -0.01em;
  line-height: 1.3;
}
.gl-prog-wrap {
  height: 5px;
  background: var(--bg3);
  border-radius: 3px;
  overflow: hidden;
  margin: 10px 0 4px;
}
.gl-prog-fill {
  height: 100%;
  border-radius: 3px;
  background: linear-gradient(90deg, var(--accent), var(--accent2));
  transition: width 0.4s ease;
}
.gl-prog-fill.done {
  background: #22c55e;
}
.gl-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.gl-action-btn {
  padding: 4px 11px;
  border-radius: 7px;
  border: 1px solid var(--border);
  background: none;
  color: var(--text2);
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  font-family: var(--font-body);
  transition: var(--transition);
  white-space: nowrap;
}
.gl-action-btn:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: var(--accent) 08;
}
.gl-action-btn.done-btn:hover {
  border-color: #22c55e;
  color: #22c55e;
  background: #22c55e10;
}
.gl-action-btn.del-btn:hover {
  border-color: #ef4444;
  color: #ef4444;
  background: #ef444410;
}
.gl-action-btn.siva-btn {
  color: var(--accent2);
  border-color: var(--accent2) 50;
}
.gl-action-btn.siva-btn:hover {
  color: #fff;
  border-color: transparent;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
}

.gl-edit-form {
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px;
  margin: 8px 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.gl-edit-title {
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.gl-edit-input {
  width: 100%;
  padding: 7px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg2);
  color: var(--text);
  font-size: 0.82rem;
  font-family: inherit;
  outline: none;
  transition: border-color 0.15s;
  box-sizing: border-box;
}
.gl-edit-input:focus {
  border-color: var(--accent);
}
.gl-edit-save {
  flex: 1;
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 7px;
  font-family: var(--font);
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
}
.gl-edit-cancel {
  flex: 1;
  background: none;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 7px;
  color: var(--muted);
  font-family: var(--font);
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
}

/* ── Goals: Progress / Analytics ────────────────────────────── */
.anl-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.anl-lbl {
  font-size: 14px;
  color: var(--text3);
  width: 72px;
  flex-shrink: 0;
  text-align: right;
}
.anl-track {
  flex: 1;
  height: 8px;
  background: var(--bg3);
  border-radius: 4px;
  overflow: hidden;
}
.anl-fill {
  height: 100%;
  border-radius: 4px;
}
.anl-val {
  font-size: 14px;
  font-weight: 600;
  color: var(--text1);
  width: 32px;
  text-align: right;
  flex-shrink: 0;
}

.goal-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 16px;
  margin-bottom: 10px;
  transition: var(--transition);
}
.goal-card:hover {
  box-shadow: var(--shadow);
}
.goal-hd {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.goal-dot {
  width: 10px;
  height: 10px;
  border-radius: 3px;
  flex-shrink: 0;
}
.goal-name {
  font-size: 16px;
  font-weight: 600;
  color: var(--text1);
  flex: 1;
}
.goal-pct {
  font-size: 16px;
  font-weight: 700;
}
.goal-sub {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 10px;
}
.goal-stat {
  background: var(--bg3);
  border-radius: var(--radius);
  padding: 8px;
}
.gs-lbl {
  font-size: 12px;
  color: var(--text4);
  margin-bottom: 2px;
}
.gs-val {
  font-size: 16px;
  font-weight: 700;
  color: var(--text1);
}

/* ═══════════════════════════════════════════════════════════════
   CALENDAR PANEL  (#panel-calendar)
   ═══════════════════════════════════════════════════════════════ */
.cal-layout {
  flex: 1;
  min-height: 0;
  display: flex;
  overflow: hidden;
}

.cal-rail {
  width: 280px;
  flex-shrink: 0;
  border-right: 1px solid var(--border);
  padding: 18px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 18px;
  background: var(--bg2);
}
[data-theme="dark"] .cal-rail {
  background: rgba(255, 255, 255, 0.015);
}

.cal-mini-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.cal-mini-label {
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--text1);
}
.cal-mini-nav {
  width: 24px;
  height: 24px;
  border-radius: 7px;
  border: none;
  background: transparent;
  color: var(--text3);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
}
.cal-mini-nav:hover {
  background: var(--bg3);
  color: var(--text1);
}
.cal-mini-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}
.cm-dh {
  text-align: center;
  font-size: 0.6rem;
  font-weight: 700;
  color: var(--text4);
  padding-bottom: 4px;
}
.cm-day {
  aspect-ratio: 1;
  border: none;
  background: transparent;
  cursor: pointer;
  font-family: var(--font);
  font-size: 0.72rem;
  color: var(--text2);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: var(--transition);
}
.cm-day:hover {
  background: var(--bg3);
}
.cm-day.has::after {
  content: "";
  position: absolute;
  bottom: 3px;
  left: 50%;
  transform: translateX(-50%);
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--teal);
}
.cm-day.today {
  color: var(--teal);
  font-weight: 800;
}
.cm-day.sel {
  background: var(--teal);
  color: #fff;
  font-weight: 700;
}
.cm-day.sel.has::after {
  background: #fff;
}

.cal-reminder {
  border-radius: 14px;
}
.cal-reminder:empty {
  display: none;
}
.cal-reminder {
  background: linear-gradient(135deg, var(--teal), #0f766e);
  color: #fff;
  padding: 16px;
  box-shadow: 0 6px 18px -8px var(--teal);
}
.cal-rem-label {
  font-size: 0.66rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.85;
  display: flex;
  align-items: center;
  gap: 5px;
}
.cal-rem-title {
  font-size: 1rem;
  font-weight: 800;
  margin: 8px 0 4px;
  line-height: 1.25;
}
.cal-rem-when {
  font-size: 0.76rem;
  opacity: 0.9;
}
.cal-rem-btn {
  margin-top: 12px;
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 7px 12px;
  font-family: var(--font);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: var(--transition);
}
.cal-rem-btn:hover {
  background: rgba(255, 255, 255, 0.3);
}
.cal-rem-empty {
  font-size: 0.8rem;
  color: var(--text3);
  display: flex;
  align-items: center;
  gap: 6px;
}

.cal-filters-hd {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--text1);
  margin-bottom: 8px;
}
.cal-filter {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 4px;
  cursor: pointer;
  border-radius: 8px;
  transition: var(--transition);
}
.cal-filter:hover {
  background: var(--bg3);
}
.cal-filter-box {
  width: 16px;
  height: 16px;
  border-radius: 5px;
  border: 1.5px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 11px;
  flex-shrink: 0;
}
.cal-filter.on .cal-filter-box {
  background: var(--c);
  border-color: var(--c);
}
.cal-filter-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.cal-filter-label {
  font-size: 0.82rem;
  color: var(--text2);
}
.cal-filter:not(.on) .cal-filter-label {
  color: var(--text4);
}

.cal-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.cal-main-hd {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.cal-main-nav {
  display: flex;
  align-items: center;
  gap: 8px;
}
.cal-range {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--text1);
  min-width: 170px;
  letter-spacing: -0.02em;
}
.cal-nav-btn {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text2);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  transition: var(--transition);
}
.cal-nav-btn:hover {
  background: var(--bg3);
  color: var(--text1);
}
.cal-seg {
  margin-left: auto;
  display: inline-flex;
  background: var(--bg3);
  border-radius: 9px;
  padding: 3px;
}
.cal-seg button {
  border: none;
  background: transparent;
  color: var(--text3);
  cursor: pointer;
  font-family: var(--font);
  font-size: 0.8rem;
  font-weight: 600;
  padding: 5px 14px;
  border-radius: 7px;
  transition: var(--transition);
}
.cal-seg button.active {
  background: var(--bg);
  color: var(--text1);
  box-shadow: var(--shadow1);
}
.cal-main-body {
  flex: 1;
  min-height: 0;
  display: flex;
}

.cal-tl {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.cw-headrow {
  display: grid;
  grid-template-columns: 56px repeat(var(--cols), 1fr);
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.cw-corner {
  border-right: 1px solid var(--border);
}
.cw-dayhead {
  padding: 8px 6px 6px;
  text-align: center;
  border-right: 1px solid var(--border);
  min-width: 0;
}
.cw-dayhead:last-child {
  border-right: none;
}
.cw-dayname {
  font-size: 0.64rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text4);
}
.cw-daynum {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--text1);
  line-height: 1.2;
}
.cw-dayhead.today .cw-dayname {
  color: var(--teal);
}
.cw-dayhead.today .cw-daynum {
  color: #fff;
  background: var(--teal);
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  font-size: 1.05rem;
}
.cw-allday {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 5px;
  min-width: 0;
}
.cal-chip {
  font-size: 0.64rem;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
}
.cal-allday-more {
  font-size: 0.6rem;
  color: var(--text4);
}
.cw-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  scrollbar-gutter: stable;
}
.cw-grid {
  display: grid;
  grid-template-columns: 56px repeat(var(--cols), 1fr);
}
.cw-gutter {
  border-right: 1px solid var(--border);
}
.cw-hour {
  position: relative;
}
.cw-hour span {
  position: absolute;
  top: -7px;
  right: 6px;
  font-size: 0.64rem;
  color: var(--text4);
  background: var(--bg);
  padding: 0 2px;
}
.cw-hour:first-child span {
  top: 2px;
}
.cw-col {
  position: relative;
  border-right: 1px solid var(--border);
  min-width: 0;
  background-image: repeating-linear-gradient(
    var(--border) 0 1px,
    transparent 1px 100%
  );
}
.cw-col:last-child {
  border-right: none;
}
.cw-col.today {
  background-color: color-mix(in srgb, var(--teal) 5%, transparent);
}
.cw-event {
  position: absolute;
  border-radius: 7px;
  padding: 4px 7px;
  overflow: hidden;
  cursor: pointer;
  box-sizing: border-box;
  transition: filter 0.12s;
}
.cw-event:hover {
  filter: brightness(1.06);
}
.cw-ev-title {
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cw-ev-time {
  font-size: 0.64rem;
  color: var(--text3);
  margin-top: 1px;
}

.cal-month-view {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 16px 20px;
  overflow: hidden;
}
.cal-dow-row {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 1px;
  flex-shrink: 0;
  margin-bottom: 6px;
}
.cal-dh {
  text-align: left;
  padding: 2px 8px;
  font-size: 0.66rem;
  font-weight: 600;
  color: var(--text4);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  grid-auto-rows: minmax(54px, 1fr);
  gap: 1px;
  flex: 1;
  min-height: 0;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
}
.cal-cell {
  background: var(--bg);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  cursor: pointer;
  position: relative;
  transition: var(--transition);
  padding: 6px 7px;
  gap: 3px;
  min-height: 0;
  overflow: hidden;
}
.cal-cell:hover {
  background: var(--bg3);
}
.cal-num {
  font-size: 0.76rem;
  color: var(--text2);
  line-height: 1;
  align-self: flex-start;
}
.cal-cell.today .cal-num {
  background: var(--teal);
  color: #fff;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
}
.cal-cell.other-month {
  background: var(--bg2);
}
.cal-cell.other-month .cal-num {
  color: var(--text4);
}
.cal-pill {
  font-size: 0.67rem;
  line-height: 1.35;
  padding: 1px 6px;
  border-radius: 5px;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cal-more {
  font-size: 0.63rem;
  color: var(--text3);
  padding-left: 3px;
}

.ev-list {
  margin-top: 4px;
}
.ev-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 0;
  border-bottom: 1px solid var(--border);
}
.ev-row:last-child {
  border-bottom: none;
}
.ev-time {
  font-size: 0.72rem;
  color: var(--text3);
  width: 44px;
  flex-shrink: 0;
}
.ev-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.ev-info {
  flex: 1;
}
.ev-name {
  font-size: 0.83rem;
  color: var(--text1);
  font-weight: 500;
}
.ev-sub {
  font-size: 0.7rem;
  color: var(--text3);
}

/* ═══════════════════════════════════════════════════════════════
   HABITS PANEL  (#panel-habits)
   ═══════════════════════════════════════════════════════════════ */
.habits-wrap {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
}
.habit-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 14px;
  margin-bottom: 10px;
  transition: var(--transition);
}
.habit-card:hover {
  box-shadow: var(--shadow);
}
.habit-emoji {
  font-size: 1.3rem;
  flex-shrink: 0;
}
.habit-info {
  flex: 1;
  min-width: 0;
}
.habit-title {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text1);
}
.habit-sub2 {
  font-size: 0.73rem;
  color: var(--text3);
  margin-top: 2px;
}
.habit-pct {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--text1);
}
.hab-card-actions {
  display: flex;
  gap: 2px;
  opacity: 0;
  transition: opacity 0.15s;
}
.habit-card:hover .hab-card-actions {
  opacity: 1;
}
.habit-action-btn {
  background: none;
  border: none;
  color: var(--muted);
  cursor: pointer;
  padding: 4px 5px;
  border-radius: 5px;
  font-size: 0.8rem;
  transition: var(--transition);
}
.habit-action-btn:hover {
  color: var(--accent);
  background: var(--teal2);
}
.hab-heatmap-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 3px;
  margin-top: 10px;
}
.hm-cell {
  aspect-ratio: 1;
  border-radius: 3px;
  background: var(--border);
  transition: background 0.15s;
  cursor: default;
}
.hm-cell.done {
  background: var(--teal);
}
.new-habit-btn {
  width: 100%;
  padding: 11px;
  border-radius: var(--radius2);
  border: 1.5px dashed var(--border2);
  background: transparent;
  color: var(--text3);
  font-family: var(--font);
  font-size: 0.82rem;
  cursor: pointer;
  transition: var(--transition);
  margin-top: 4px;
}
.new-habit-btn:hover {
  border-color: var(--teal);
  color: var(--teal);
  background: var(--teal2);
}

/* ═══════════════════════════════════════════════════════════════
   JOURNAL PANEL  (#panel-journal)
   ═══════════════════════════════════════════════════════════════ */
.journal-wrap {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
}
.journal-prompt {
  background: linear-gradient(135deg, var(--purple2), var(--teal2));
  border: 1px solid var(--purple);
  border-radius: var(--radius2);
  padding: 14px 16px;
  margin-bottom: 16px;
  font-size: 0.85rem;
  color: var(--text1);
  line-height: 1.55;
}
.journal-prompt strong {
  color: var(--purple3);
}
.journal-editor {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 14px;
  margin-bottom: 16px;
}
.journal-editor textarea {
  width: 100%;
  border: none;
  outline: none;
  background: transparent;
  font-family: var(--font);
  font-size: 0.88rem;
  color: var(--text1);
  resize: none;
  line-height: 1.7;
  min-height: 120px;
}
.journal-editor textarea::placeholder {
  color: var(--text4);
}
.journal-entry {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 13px 15px;
  margin-bottom: 8px;
  cursor: pointer;
  transition: var(--transition);
}
.journal-entry:hover {
  box-shadow: var(--shadow);
}
.je-date {
  font-size: 0.76rem;
  color: var(--text4);
  margin-bottom: 5px;
}
.je-text {
  font-size: 0.9rem;
  color: var(--text2);
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.je-mood {
  font-size: 0.75rem;
  margin-top: 6px;
}

/* ═══════════════════════════════════════════════════════════════
   FINANCE PANEL  (#panel-finance)
   ═══════════════════════════════════════════════════════════════ */
.fin-wrap {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 0 0 32px;
}
.fin-tabs {
  display: flex;
  gap: 6px;
  margin-bottom: 2px;
}
.fin-tab {
  padding: 6px 14px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: none;
  color: var(--text3);
  font-family: var(--font);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
}
.fin-tab.active {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}
.fin-tab:not(.active):hover {
  border-color: var(--accent);
  color: var(--accent);
}
.fin-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.fin-stat {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 14px 12px;
  text-align: center;
}
.fin-stat-val {
  font-family: var(--font);
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.fin-stat-lbl {
  font-size: 0.68rem;
  color: var(--text3);
  margin-top: 3px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.fin-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px;
}
.fin-card-title {
  font-family: var(--font);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--text2);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.fin-tx-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.fin-tx {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  transition: background 0.1s;
  cursor: default;
}
.fin-tx:hover {
  background: var(--surface2);
}
.fin-tx-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}
.fin-tx-icon.income {
  background: #0fdbad18;
}
.fin-tx-icon.expense {
  background: #f87171 18;
}
.fin-tx-info {
  flex: 1;
  min-width: 0;
}
.fin-tx-note {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.fin-tx-meta {
  font-size: 0.7rem;
  color: var(--text3);
  margin-top: 1px;
}
.fin-tx-amt {
  font-family: var(--font);
  font-size: 0.88rem;
  font-weight: 700;
  white-space: nowrap;
}
.fin-tx-amt.income {
  color: var(--teal);
}
.fin-tx-amt.expense {
  color: #f87171;
}
.fin-tx-del {
  background: none;
  border: none;
  color: var(--text4);
  cursor: pointer;
  padding: 4px;
  border-radius: 6px;
  opacity: 0;
  transition: opacity 0.1s;
  font-size: 0.8rem;
}
.fin-tx:hover .fin-tx-del {
  opacity: 1;
}
.fin-tx-del:hover {
  color: #f87171;
}
.fin-add-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.fin-add-btn {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 8px 16px;
  border-radius: 10px;
  border: none;
  font-family: var(--font);
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s;
}
.fin-add-btn.income {
  background: #0fdbad18;
  color: var(--teal);
}
.fin-add-btn.income:hover {
  background: #0fdbad30;
}
.fin-add-btn.expense {
  background: #f8717118;
  color: #f87171;
}
.fin-add-btn.expense:hover {
  background: #f8717130;
}
.fin-budget-row {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.fin-budget-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.fin-budget-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.fin-budget-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text2);
  display: flex;
  align-items: center;
  gap: 5px;
}
.fin-budget-nums {
  font-size: 0.72rem;
  color: var(--text3);
}
.fin-budget-bar {
  height: 5px;
  background: var(--border2);
  border-radius: 3px;
  overflow: hidden;
}
.fin-budget-fill {
  height: 100%;
  border-radius: 3px;
  transition: width 0.5s ease;
}
.fin-budget-edit {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 4px;
}
.fin-budget-input {
  flex: 1;
  min-width: 80px;
  padding: 6px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg2);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 0.8rem;
  outline: none;
}
.fin-budget-input:focus {
  border-color: var(--accent);
}
.fin-save-budget {
  padding: 6px 12px;
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-family: var(--font);
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
}
.fin-empty {
  text-align: center;
  padding: 2rem 1rem;
  color: var(--text3);
  font-size: 0.82rem;
}
.fin-bal-card {
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  border-radius: 16px;
  padding: 20px;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.fin-bal-label {
  font-size: 0.72rem;
  font-weight: 600;
  opacity: 0.8;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.fin-bal-amount {
  font-family: var(--font);
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  margin: 4px 0 2px;
}
.fin-bal-sub {
  font-size: 0.72rem;
  opacity: 0.75;
}
.fin-bar-chart {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.fin-bar-row {
  display: grid;
  grid-template-columns: 80px 1fr 60px;
  align-items: center;
  gap: 8px;
}
.fin-bar-cat {
  font-size: 0.72rem;
  color: var(--text3);
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.fin-bar-track {
  height: 6px;
  background: var(--border2);
  border-radius: 3px;
  overflow: hidden;
}
.fin-bar-fill {
  height: 100%;
  border-radius: 3px;
  transition: width 0.5s ease;
}
.fin-bar-pct {
  font-size: 0.7rem;
  color: var(--text3);
  text-align: right;
}

/* ═══════════════════════════════════════════════════════════════
   SKILLS PANEL  (#panel-skills)
   ═══════════════════════════════════════════════════════════════ */
.sk-wrap {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding-bottom: 32px;
}
.sk-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.sk-stat {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 14px 12px;
  text-align: center;
}
.sk-stat-val {
  font-family: var(--font);
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.sk-stat-lbl {
  font-size: 0.68rem;
  color: var(--text3);
  margin-top: 3px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.sk-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: border-color 0.15s;
}
.sk-card:hover {
  border-color: var(--accent);
}
.sk-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
}
.sk-emoji {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  background: var(--surface2);
  flex-shrink: 0;
}
.sk-info {
  flex: 1;
  min-width: 0;
}
.sk-name {
  font-family: var(--font);
  font-size: 0.92rem;
  font-weight: 800;
  color: var(--text);
}
.sk-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 2px;
  flex-wrap: wrap;
}
.sk-cat-badge {
  font-size: 0.65rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 10px;
  background: var(--accent) 18;
  color: var(--accent);
  letter-spacing: 0.03em;
}
.sk-level-label {
  font-size: 0.7rem;
  color: var(--text3);
}
.sk-card-actions {
  display: flex;
  gap: 6px;
  opacity: 0;
  transition: opacity 0.15s;
}
.sk-card:hover .sk-card-actions {
  opacity: 1;
}
.sk-action-btn {
  padding: 5px 10px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: none;
  color: var(--text3);
  font-family: var(--font);
  font-size: 0.72rem;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: all 0.12s;
}
.sk-action-btn:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: var(--teal2);
}
.sk-action-btn.siva {
  border-color: var(--accent2) 60;
  color: var(--accent2);
}
.sk-action-btn.siva:hover {
  background: var(--accent2) 12;
}
.sk-action-btn.danger:hover {
  border-color: #f87171;
  color: #f87171;
  background: #f8717112;
}
.sk-progress-wrap {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sk-progress-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.sk-progress-nums {
  font-size: 0.72rem;
  color: var(--text3);
}
.sk-progress-bar {
  height: 7px;
  background: var(--border2);
  border-radius: 4px;
  overflow: visible;
  position: relative;
}
.sk-progress-fill {
  height: 100%;
  border-radius: 4px;
  transition: width 0.5s ease;
}
.sk-progress-target {
  position: absolute;
  top: -3px;
  width: 3px;
  height: 13px;
  background: var(--text3);
  border-radius: 2px;
  transform: translateX(-50%);
  opacity: 0.6;
}
.sk-sessions {
  display: flex;
  gap: 16px;
}
.sk-session-stat {
  font-size: 0.72rem;
  color: var(--text3);
}
.sk-session-stat strong {
  color: var(--text2);
  font-weight: 700;
}
.sk-empty {
  text-align: center;
  padding: 3rem 1rem;
  color: var(--text3);
}
.sk-empty-icon {
  font-size: 2.5rem;
  margin-bottom: 8px;
}
.sk-empty-title {
  font-family: var(--font);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text2);
  margin-bottom: 4px;
}
.sk-empty-sub {
  font-size: 0.82rem;
}
.sk-filter-row {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.sk-filter-btn {
  padding: 5px 12px;
  border-radius: 16px;
  border: 1px solid var(--border);
  background: none;
  color: var(--text3);
  font-family: var(--font);
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.12s;
}
.sk-filter-btn.active {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}
.sk-filter-btn:not(.active):hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ═══════════════════════════════════════════════════════════════
   COMMUNITY PANEL  (#panel-community)
   ═══════════════════════════════════════════════════════════════ */
.community-wrap {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
}
.feed-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 14px;
  margin-bottom: 10px;
  cursor: pointer;
  transition: var(--transition);
}
.feed-card:hover {
  box-shadow: var(--shadow);
}
.feed-hd {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 10px;
}
.feed-av {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--teal), var(--purple));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  color: #fff;
  font-weight: 700;
  overflow: hidden;
}
.feed-name {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text1);
}
.feed-time {
  font-size: 0.72rem;
  color: var(--text4);
}
.feed-body {
  font-size: 0.83rem;
  color: var(--text2);
  line-height: 1.6;
  margin-bottom: 10px;
}
.feed-tags {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.feed-tag {
  font-size: 0.68rem;
  font-weight: 600;
  border-radius: 20px;
  padding: 2px 9px;
  background: var(--teal2);
  color: var(--teal4);
}
.feed-actions {
  display: flex;
  gap: 10px;
}
.feed-action-btn {
  display: flex;
  align-items: center;
  gap: 5px;
  background: none;
  border: none;
  color: var(--text3);
  font-size: 0.78rem;
  cursor: pointer;
  font-family: var(--font);
  transition: var(--transition);
}
.feed-action-btn:hover {
  color: var(--teal);
}
.feat-badge {
  font-size: 0.65rem;
  font-weight: 700;
  border-radius: 20px;
  padding: 2px 8px;
  background: var(--amber2);
  color: var(--amber);
  border: 1px solid var(--amber3);
}

/* ── Community Composer ──────────────────────────────────────── */
.comm-composer {
  display: flex;
  gap: 10px;
  padding: 14px;
  margin-bottom: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
}
.comm-composer-av {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font);
  font-weight: 800;
  font-size: 0.9rem;
  color: #fff;
}
.comm-composer-body {
  flex: 1;
  min-width: 0;
}
.comm-composer-input {
  width: 100%;
  background: var(--bg2);
  border: 1.5px solid var(--border);
  border-radius: 10px;
  padding: 10px 12px;
  color: var(--text);
  font-family: var(--font-body);
  font-size: 0.88rem;
  resize: none;
  outline: none;
  box-sizing: border-box;
  min-height: 64px;
  transition: border-color 0.15s;
  line-height: 1.5;
}
.comm-composer-input:focus {
  border-color: var(--accent);
}
.comm-composer-footer {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  flex-wrap: wrap;
}
.comm-composer-cat {
  padding: 5px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg2);
  color: var(--text3);
  font-family: var(--font);
  font-size: 0.75rem;
  outline: none;
  cursor: pointer;
}
.comm-char-count {
  font-size: 0.7rem;
  color: var(--text4);
}
.comm-post-btn {
  margin-left: auto;
  padding: 7px 18px;
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-family: var(--font);
  font-size: 0.78rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.15s;
}
.comm-post-btn:hover {
  opacity: 0.85;
}
.comm-post-btn:disabled {
  opacity: 0.45;
  cursor: default;
}
.feed-author-link {
  cursor: pointer;
  color: var(--text1);
  font-weight: 700;
  transition: color 0.12s;
}
.feed-author-link:hover {
  color: var(--accent);
}
.feed-delete-btn {
  background: none;
  border: none;
  color: var(--text4);
  cursor: pointer;
  font-size: 0.72rem;
  padding: 2px 6px;
  border-radius: 5px;
  transition: color 0.12s;
}
.feed-delete-btn:hover {
  color: #f87171;
}

/* ═══════════════════════════════════════════════════════════════
   LIBRARY PANEL  (#panel-library)
   ═══════════════════════════════════════════════════════════════ */
.library-wrap {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
}
.lib-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}
.lib-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 14px;
  cursor: pointer;
  transition: var(--transition);
  text-align: center;
}
.lib-card:hover {
  box-shadow: var(--shadow);
  border-color: var(--teal);
}
.lib-logo {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  margin: 0 auto 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
}
.lib-name {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text1);
  margin-bottom: 4px;
}
.lib-desc {
  font-size: 0.72rem;
  color: var(--text3);
  line-height: 1.4;
  margin-bottom: 10px;
}
.lib-btn {
  display: inline-block;
  padding: 5px 14px;
  border-radius: 20px;
  background: var(--teal2);
  color: var(--teal4);
  border: 1px solid var(--teal);
  font-size: 0.72rem;
  font-weight: 600;
  cursor: pointer;
  font-family: var(--font);
  transition: var(--transition);
}
.lib-btn:hover {
  background: var(--teal);
  color: #fff;
}

/* ── Integration Cards ───────────────────────────────────────── */
.int-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
  margin-bottom: 24px;
}
.int-cat-head {
  grid-column: 1/-1;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  margin-top: 10px;
  padding-bottom: 2px;
  border-bottom: 1px solid var(--border);
}
.int-cat-head:first-child {
  margin-top: 0;
}
.int-card {
  border: 1.5px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: var(--bg2);
}
.int-card.connected {
  border-color: var(--teal);
}
.int-header {
  display: flex;
  align-items: center;
  gap: 10px;
}
.int-logo {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
}
.int-name {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--fg);
}
.int-status {
  font-size: 0.72rem;
  color: var(--muted);
}
.int-status.ok {
  color: var(--teal);
}
.int-btn {
  margin-top: auto;
  padding: 7px 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
}
.int-btn.connected-btn {
  background: var(--teal2);
  color: var(--teal);
  border-color: var(--teal);
}
.int-btn.int-soon {
  background: transparent;
  color: var(--muted);
  border-style: dashed;
  cursor: help;
}
.int-btn.int-soon:hover {
  border-color: var(--muted);
}
.int-btn:hover {
  border-color: var(--teal);
}

/* ═══════════════════════════════════════════════════════════════
   TEMPLATES PANEL  (#panel-templates)
   ═══════════════════════════════════════════════════════════════ */
.tpl-scroll {
  flex: 1;
  overflow-y: auto;
  padding: 1.25rem max(24px, calc((100% - var(--panel-max)) / 2)) 60px;
}
.tpl-search-wrap {
  display: flex;
  align-items: center;
  gap: 7px;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 9px;
  padding: 6px 11px;
  color: var(--text4);
}
.tpl-search-wrap i {
  font-size: 15px;
}
.tpl-search-wrap input {
  border: none;
  background: none;
  outline: none;
  font-family: var(--font);
  font-size: 0.82rem;
  color: var(--text1);
  width: 180px;
}
.tpl-search-wrap input::placeholder {
  color: var(--text4);
}
.tpl-lede {
  font-size: 0.82rem;
  color: var(--text3);
  margin-bottom: 18px;
}
.tpl-filters {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.tpl-chip {
  padding: 6px 14px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text3);
  font-family: var(--font);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
}
.tpl-chip:hover {
  background: var(--bg3);
  color: var(--text1);
}
.tpl-chip.active {
  background: var(--teal2);
  color: var(--teal4);
  border-color: var(--teal);
}
.tpl-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 18px;
}

.tpl-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  overflow: hidden;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  transition: var(--transition);
}
.tpl-card:hover {
  transform: translateY(-2px);
  border-color: var(--border2);
  box-shadow: var(--shadow);
}
.tpl-card:hover .tpl-preview-overlay {
  opacity: 1;
}

.tpl-preview {
  height: 150px;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tpl-preview > i {
  font-size: 46px;
  color: #fff;
  opacity: 0.92;
}
.tpl-preview--weekly {
  background: linear-gradient(145deg, #0d7a5f, #0a5f4a);
}
.tpl-preview--daily {
  background: linear-gradient(145deg, #534ab7, #3d3690);
}
.tpl-preview--habit {
  background: linear-gradient(145deg, #dc6803, #b35402);
}
.tpl-preview--budget {
  background: linear-gradient(145deg, #0d7a5f, #534ab7);
}

.tpl-preview-overlay {
  position: absolute;
  inset: 0;
  background: rgba(8, 8, 17, 0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: var(--transition);
  backdrop-filter: blur(2px);
}
.tpl-preview-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  color: #fff;
  border-radius: 8px;
  padding: 8px 16px;
  font-size: 0.78rem;
  font-weight: 700;
}

.tpl-card-body {
  padding: 14px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 9px;
  flex: 1;
}
.tpl-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.tpl-name {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--text1);
  line-height: 1.3;
}
.tpl-desc {
  font-size: 0.78rem;
  color: var(--text3);
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.tpl-tags {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}
.tpl-tag {
  font-size: 0.66rem;
  padding: 3px 8px;
  border-radius: 6px;
  background: var(--bg3);
  border: 1px solid var(--border);
  color: var(--text3);
}
.tpl-badge {
  font-size: 0.6rem;
  font-weight: 700;
  border-radius: 5px;
  padding: 2px 7px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  flex-shrink: 0;
}
.tpl-badge--new {
  background: var(--teal2);
  color: var(--teal4);
  border: 1px solid var(--teal);
}
.tpl-badge--popular {
  background: rgba(251, 191, 36, 0.14);
  color: #d4860b;
  border: 1px solid rgba(251, 191, 36, 0.4);
}
.tpl-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 10px;
  border-top: 1px solid var(--border);
}
.tpl-type {
  font-size: 0.7rem;
  color: var(--text4);
}
.tpl-use-btn {
  font-size: 0.76rem;
  font-weight: 700;
  padding: 6px 13px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: none;
  color: var(--text2);
  cursor: pointer;
  font-family: var(--font);
  transition: var(--transition);
}
.tpl-use-btn:hover {
  background: var(--teal2);
  border-color: var(--teal);
  color: var(--teal4);
}

/* ── Template Preview Modal ──────────────────────────────────── */
.tpl-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s;
  backdrop-filter: blur(4px);
}
.tpl-modal-backdrop.open {
  opacity: 1;
  pointer-events: all;
}
.tpl-modal {
  width: 980px;
  max-width: 94vw;
  height: 88vh;
  background: var(--bg);
  border: 1px solid var(--border2);
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: translateY(18px) scale(0.98);
  transition: transform 0.25s ease;
  box-shadow: 0 40px 100px rgba(0, 0, 0, 0.5);
}
.tpl-modal-backdrop.open .tpl-modal {
  transform: none;
}
.tpl-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
  gap: 12px;
}
.tpl-modal-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text1);
}
.tpl-modal-desc {
  font-size: 0.76rem;
  color: var(--text3);
  margin-top: 2px;
}
.tpl-modal-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.tpl-modal-use-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 8px 16px;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  font-family: var(--font);
  transition: var(--transition);
}
.tpl-modal-use-btn:hover {
  opacity: 0.9;
}
.tpl-modal-close {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--bg3);
  border: 1px solid var(--border);
  color: var(--text3);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 15px;
  transition: var(--transition);
}
.tpl-modal-close:hover {
  color: var(--text1);
  background: var(--bg2);
}
.tpl-modal-body {
  flex: 1;
  background: #fff;
  position: relative;
  overflow: hidden;
  display: flex;
}
.tpl-iframe-loader {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 12px;
  color: var(--text3);
  font-size: 0.82rem;
  background: var(--bg);
}
.tpl-spinner {
  width: 26px;
  height: 26px;
  -webkit-mask: url(/static/sivarrai.png) center / contain no-repeat;
  mask: url(/static/sivarrai.png) center / contain no-repeat;
  background: linear-gradient(
    115deg,
    var(--teal) 0%,
    var(--teal) 35%,
    #eafff7 50%,
    var(--teal) 65%,
    var(--teal) 100%
  );
  background-size: 280% 100%;
  background-repeat: no-repeat;
  animation:
    sivMiniSweep 1.2s linear infinite,
    sivMiniPulse 2s ease-in-out infinite;
}
@keyframes sivMiniSweep {
  0% {
    background-position: 150% 0;
  }
  100% {
    background-position: -150% 0;
  }
}
@keyframes sivMiniPulse {
  0%,
  100% {
    opacity: 0.85;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.08);
  }
}
@media (prefers-reduced-motion: reduce) {
  .tpl-spinner {
    animation: sivMiniPulse 2s ease-in-out infinite;
  }
}

/* ═══════════════════════════════════════════════════════════════
   MARKETPLACE / AGENTS PANEL  (#panel-marketplace, #panel-agents)
   ═══════════════════════════════════════════════════════════════ */
#panel-marketplace {
  overflow-y: auto !important;
}

/* ── Marketplace ─────────────────────────────────────────────── */
.mkt-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 4px 0 18px;
  flex-wrap: wrap;
  gap: 12px;
}
.mkt-eyebrow {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted2);
  margin-bottom: 5px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.mkt-preview-badge {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
  padding: 2px 7px;
  border-radius: 5px;
  background: rgba(83, 74, 183, 0.14);
  color: var(--accent2);
  border: 1px solid rgba(83, 74, 183, 0.3);
}
.mkt-title {
  font-size: 20px;
  font-weight: 800;
  color: var(--text);
  letter-spacing: -0.3px;
  margin-bottom: 4px;
}
.mkt-sub {
  font-size: 12px;
  color: var(--muted);
}
.mkt-brief-desc {
  font-size: 11px;
  color: var(--muted2);
  line-height: 1.5;
}

.mkt-btn-teal {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: rgba(15, 219, 173, 0.1);
  border: 1px solid rgba(15, 219, 173, 0.25);
  border-radius: 8px;
  color: var(--teal);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: background 0.15s;
}
.mkt-btn-teal:hover {
  background: rgba(15, 219, 173, 0.18);
}
.mkt-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 12px;
  background: transparent;
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--muted);
  font-size: 11.5px;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.15s;
}
.mkt-btn-ghost:hover {
  border-color: var(--border2);
  color: var(--text);
}
.mkt-btn-danger {
  color: #f87171 !important;
  border-color: rgba(239, 68, 68, 0.2) !important;
}
.mkt-btn-danger:hover {
  background: rgba(239, 68, 68, 0.08) !important;
}
.mkt-btn-sm {
  padding: 4px 10px !important;
  font-size: 10.5px !important;
}
.mkt-publish-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 18px;
  background: linear-gradient(135deg, var(--accent2), var(--teal));
  border: none;
  border-radius: 10px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
}
.mkt-generate-btn {
  width: 100%;
  padding: 11px;
  background: linear-gradient(135deg, var(--accent2), var(--teal));
  border: none;
  border-radius: 10px;
  font-size: 12.5px;
  font-weight: 700;
  color: #fff;
  cursor: pointer;
  font-family: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  transition: opacity 0.15s;
}
.mkt-generate-btn:hover {
  opacity: 0.9;
}

.mkt-filter-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.mkt-type-tabs {
  display: flex;
  gap: 3px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 3px;
}
.mkt-type-tab {
  padding: 5px 13px;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 500;
  color: var(--muted);
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.15s;
  white-space: nowrap;
}
.mkt-type-tab.active {
  background: rgba(15, 219, 173, 0.1);
  color: var(--teal);
  font-weight: 600;
}
.mkt-search {
  display: flex;
  align-items: center;
  gap: 7px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 9px;
  padding: 0 12px;
  height: 34px;
  flex: 1;
  max-width: 280px;
}
.mkt-search input {
  background: transparent;
  border: none;
  outline: none;
  color: var(--text);
  font-size: 12px;
  width: 100%;
  font-family: inherit;
}
.mkt-search input::placeholder {
  color: var(--muted2);
}
.mkt-search i {
  color: var(--muted2);
  font-size: 13px;
}
.mkt-sort {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 7px 10px;
  color: var(--muted);
  font-size: 11.5px;
  font-family: inherit;
  outline: none;
  cursor: pointer;
}

.mkt-subnav {
  display: flex;
  border-bottom: 1px solid var(--border);
  margin-bottom: 18px;
}
.mkt-subnav-btn {
  padding: 8px 16px;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.15s;
  display: flex;
  align-items: center;
  gap: 6px;
}
.mkt-subnav-btn.active {
  color: var(--teal);
  border-bottom-color: var(--teal);
}
.mkt-count-badge {
  font-size: 9.5px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 4px;
  background: rgba(15, 219, 173, 0.1);
  color: var(--teal);
  border: 1px solid rgba(15, 219, 173, 0.2);
}

.mkt-category-row {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.mkt-cat-pill {
  padding: 5px 12px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--muted);
  font-size: 11px;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.15s;
  white-space: nowrap;
}
.mkt-cat-pill.active {
  background: rgba(15, 219, 173, 0.1);
  border-color: rgba(15, 219, 173, 0.25);
  color: var(--teal);
}
.mkt-cat-pill--official {
  background: rgba(83, 74, 183, 0.12);
  border-color: rgba(83, 74, 183, 0.3);
  color: var(--accent2);
}

.mkt-featured-strip {
  margin-bottom: 20px;
}
.mkt-featured-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted2);
  margin-bottom: 10px;
}
.mkt-featured-cards {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
}
.mkt-featured-card {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px 16px;
  cursor: pointer;
  flex-shrink: 0;
  transition: border-color 0.15s;
  min-width: 180px;
}
.mkt-featured-card:hover {
  border-color: var(--border2);
}

.mkt-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
}
.mkt-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px;
  cursor: pointer;
  transition:
    border-color 0.15s,
    transform 0.1s;
  display: flex;
  flex-direction: column;
}
.mkt-card:hover {
  border-color: var(--border2);
  transform: translateY(-2px);
}
.mkt-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.mkt-item-icon {
  font-size: 28px;
  line-height: 1;
}
.mkt-item-type-badge {
  font-size: 9px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.mkt-type-extension {
  background: rgba(15, 219, 173, 0.1);
  color: var(--teal);
  border: 1px solid rgba(15, 219, 173, 0.2);
}
.mkt-type-integration {
  background: rgba(83, 74, 183, 0.12);
  color: var(--accent2);
  border: 1px solid rgba(83, 74, 183, 0.25);
}
.mkt-type-template {
  background: rgba(245, 158, 11, 0.1);
  color: #fb923c;
  border: 1px solid rgba(245, 158, 11, 0.2);
}
.mkt-item-name {
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 2px;
}
.mkt-item-author {
  font-size: 10.5px;
  color: var(--muted2);
  margin-bottom: 6px;
}
.mkt-item-desc {
  font-size: 11px;
  color: var(--muted);
  line-height: 1.45;
  flex: 1;
}
.mkt-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 12px;
  gap: 6px;
}
.mkt-item-stats {
  display: flex;
  gap: 8px;
  font-size: 10px;
  color: var(--muted2);
}
.mkt-install-btn {
  padding: 5px 12px;
  background: var(--teal);
  color: #08231d;
  border: none;
  border-radius: 7px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  transition: opacity 0.15s;
  flex-shrink: 0;
}
.mkt-install-btn:hover {
  opacity: 0.85;
}
.mkt-install-btn--installed {
  background: rgba(15, 219, 173, 0.1);
  color: var(--teal);
  border: 1px solid rgba(15, 219, 173, 0.2);
}
.mkt-install-btn.mkt-btn-lg {
  padding: 9px 20px;
  font-size: 12.5px;
}

.mkt-installed-header {
  margin-bottom: 14px;
}
.mkt-section-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
}
.mkt-section-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted2);
  margin-bottom: 8px;
}
.mkt-installed-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  margin-bottom: 8px;
  transition: border-color 0.15s;
}
.mkt-installed-row:hover {
  border-color: var(--border2);
}
.mkt-meta-stat {
  font-size: 11px;
  color: var(--muted2);
}

.mkt-metric-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}
.mkt-metric-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
}
.mkt-metric-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted2);
  margin-bottom: 6px;
}
.mkt-metric-value {
  font-size: 22px;
  font-weight: 800;
  color: var(--text);
  letter-spacing: -0.5px;
  line-height: 1;
}
.mkt-metric-sub {
  font-size: 10.5px;
  color: var(--muted);
  margin-top: 4px;
}

.mkt-reviews-section {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.mkt-review-form {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
}
.mkt-star-row {
  display: flex;
  gap: 4px;
  margin-bottom: 8px;
}
.mkt-star {
  background: transparent;
  border: none;
  font-size: 20px;
  color: rgba(255, 255, 255, 0.2);
  cursor: pointer;
  padding: 0;
  transition: color 0.15s;
  font-family: inherit;
}
.mkt-star--active {
  color: #f59e0b;
}
.mkt-star:hover {
  color: #f59e0b;
}
.mkt-review-input {
  width: 100%;
  min-height: 72px;
  margin: 8px 0;
  resize: vertical;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--border);
  border-radius: 9px;
  padding: 10px 12px;
  color: var(--text);
  font-size: 12px;
  font-family: inherit;
  outline: none;
}
.mkt-review-item {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px;
  margin-bottom: 8px;
}
.mkt-review-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.mkt-review-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--accent2), #7209b7);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  flex-shrink: 0;
}
.mkt-review-author {
  font-size: 12px;
  font-weight: 600;
  color: var(--text);
}
.mkt-review-stars {
  font-size: 11px;
  color: #f59e0b;
  margin-top: 1px;
}
.mkt-review-date {
  font-size: 10px;
  color: var(--muted2);
  margin-left: auto;
}
.mkt-review-body {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.5;
}

.mkt-publish-type-card {
  padding: 14px;
  border: 1.5px solid var(--border);
  border-radius: 10px;
  cursor: pointer;
  text-align: center;
  transition: all 0.15s;
  color: var(--muted);
}
.mkt-publish-type-card:hover {
  border-color: var(--border2);
}
.mkt-publish-type-card.active {
  border-color: var(--teal);
  background: rgba(15, 219, 173, 0.06);
  color: var(--text);
}

.mkt-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.mkt-modal {
  background: var(--card);
  border: 1px solid var(--border2);
  border-radius: 18px;
  width: 100%;
  max-width: 600px;
  max-height: 85vh;
  overflow-y: auto;
  padding: 28px;
  position: relative;
}
.mkt-modal-close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--muted);
  font-size: 14px;
  font-family: inherit;
}
.mkt-modal-header {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.mkt-modal-icon {
  font-size: 40px;
  line-height: 1;
  flex-shrink: 0;
}
.mkt-modal-name {
  font-size: 18px;
  font-weight: 800;
  color: var(--text);
  margin-bottom: 3px;
}
.mkt-modal-author {
  font-size: 11px;
  color: var(--muted2);
  margin-bottom: 6px;
}
.mkt-modal-meta-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.mkt-modal-actions {
  margin-left: auto;
  flex-shrink: 0;
}
.mkt-modal-tabs {
  display: flex;
  border-bottom: 1px solid var(--border);
  margin-bottom: 16px;
}
.mkt-modal-tab {
  padding: 7px 14px;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.15s;
  display: flex;
  align-items: center;
  gap: 5px;
}
.mkt-modal-tab.active {
  color: var(--teal);
  border-bottom-color: var(--teal);
}
.mkt-detail-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.mkt-field {
  display: flex;
  flex-direction: column;
  margin-bottom: 12px;
}
.mkt-field label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted2);
  margin-bottom: 5px;
}
.mkt-field input,
.mkt-field select,
.mkt-field textarea {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--border);
  border-radius: 9px;
  padding: 9px 12px;
  color: var(--text);
  font-size: 12.5px;
  font-family: inherit;
  outline: none;
}
.mkt-field input:focus,
.mkt-field select:focus,
.mkt-field textarea:focus {
  border-color: var(--teal);
}

.mkt-empty-state {
  text-align: center;
  padding: 40px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: var(--muted2);
  font-size: 12px;
}
.mkt-onboard-step {
  font-size: 0.82rem;
  color: var(--muted);
  padding: 6px 0;
  border-bottom: 1px solid var(--border);
  line-height: 1.5;
}
.mkt-onboard-step:last-child {
  border-bottom: none;
}
.mkt-onboard-step strong {
  color: var(--text);
}

/* ── Currency Toggle ─────────────────────────────────────────── */
.mkt-currency-toggle {
  display: flex;
  align-items: center;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 2px;
  gap: 2px;
  flex-shrink: 0;
}
.mkt-currency-opt {
  padding: 4px 10px;
  border-radius: 6px;
  border: none;
  background: none;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--muted);
  cursor: pointer;
  transition: var(--transition);
  font-family: var(--font);
  white-space: nowrap;
}
.mkt-currency-opt.active {
  background: var(--bg);
  color: var(--text);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
}
.mkt-currency-opt.ngn.active {
  color: #22c55e;
}
.mkt-currency-opt.usd.active {
  color: var(--accent);
}
.mkt-price-ngn {
  font-size: 0.72rem;
  color: var(--muted);
  margin-top: 1px;
  font-weight: 600;
}
.mkt-ngn-price {
  font-size: 0.8rem;
  font-weight: 800;
  font-family: var(--font);
  color: #22c55e;
}
.mkt-ngn-price.free {
  color: var(--green, #22c55e);
}

/* ── Paystack Button ─────────────────────────────────────────── */
.mkt-paystack-btn {
  display: flex;
  align-items: center;
  gap: 7px;
  width: 100%;
  padding: 11px 14px;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  font-family: var(--font);
  font-size: 0.88rem;
  font-weight: 700;
  background: #0ba4db;
  color: #fff;
  transition: var(--transition);
  margin-bottom: 8px;
  justify-content: center;
}
.mkt-paystack-btn:hover {
  background: #0991c4;
}
.mkt-paystack-btn .mkt-paystack-logo {
  font-size: 0.72rem;
  background: #fff;
  color: #0ba4db;
  border-radius: 4px;
  padding: 1px 5px;
  font-weight: 900;
  letter-spacing: 0.03em;
}
.mkt-paystack-btn.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.mkt-pay-methods {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 12px;
}
.mkt-pay-method {
  border: 2px solid var(--border);
  border-radius: 10px;
  padding: 12px 10px;
  cursor: pointer;
  text-align: center;
  transition: var(--transition);
  background: var(--bg2);
}
.mkt-pay-method:hover {
  border-color: var(--accent);
}
.mkt-pay-method.active.stripe {
  border-color: var(--accent);
  background: var(--accent) 10;
}
.mkt-pay-method.active.paystack {
  border-color: #0ba4db;
  background: #0ba4db10;
}
.mkt-pay-method-icon {
  font-size: 1.3rem;
  margin-bottom: 4px;
}
.mkt-pay-method-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--text2);
}
.mkt-pay-method-sub {
  font-size: 0.65rem;
  color: var(--muted);
  margin-top: 1px;
}

/* ── Agents Marketplace ──────────────────────────────────────── */
#panel-agents {
  flex-direction: column;
  overflow: hidden;
}

.ag-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 18px;
  height: 52px;
  flex-shrink: 0;
  border-bottom: 1px solid var(--border);
  background: var(--bg);
}
.ag-topbar-left {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ag-topbar-right {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ag-topbar-title {
  font-family: var(--font);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--text);
}
.ag-back-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--muted);
  font-size: 1rem;
  padding: 5px 6px;
  border-radius: 7px;
  transition: var(--transition);
  display: flex;
  align-items: center;
}
.ag-back-btn:hover {
  background: var(--hover);
  color: var(--text);
}
.ag-tb-btn {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 6px 13px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg2);
  color: var(--text2);
  font-family: var(--font);
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
}
.ag-tb-btn:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: var(--bg3);
}
.ag-tb-btn--primary {
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  border-color: transparent;
  color: #fff;
}
.ag-tb-btn--primary:hover {
  opacity: 0.88;
  color: #fff;
}

.ag-view-wrap {
  flex: 1;
  overflow-y: auto;
}
.ag-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  height: 200px;
  color: var(--muted);
  font-size: 0.84rem;
}
.ag-spinner {
  width: 26px;
  height: 26px;
  -webkit-mask: url(/static/sivarrai.png) center / contain no-repeat;
  mask: url(/static/sivarrai.png) center / contain no-repeat;
  background: linear-gradient(
    115deg,
    var(--teal) 0%,
    var(--teal) 35%,
    #eafff7 50%,
    var(--teal) 65%,
    var(--teal) 100%
  );
  background-size: 280% 100%;
  background-repeat: no-repeat;
  animation:
    sivMiniSweep 1.2s linear infinite,
    sivMiniPulse 2s ease-in-out infinite;
}

.ag-market-wrap {
  max-width: 1060px;
  margin: 0 auto;
  padding: 24px 20px 60px;
}

.ag-cats {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 2px;
  margin-bottom: 18px;
  scrollbar-width: none;
}
.ag-cats::-webkit-scrollbar {
  display: none;
}
.ag-cat {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 6px 13px;
  border: 1px solid var(--border);
  border-radius: 20px;
  background: var(--bg2);
  color: var(--text3);
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: var(--transition);
  flex-shrink: 0;
  font-family: var(--font);
}
.ag-cat:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.ag-cat.active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}

.ag-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 20px;
}
.ag-chip {
  padding: 4px 11px;
  border: 1px solid var(--border);
  border-radius: 20px;
  background: var(--bg2);
  color: var(--text3);
  font-size: 0.72rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  font-family: var(--font);
}
.ag-chip:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.ag-chip.active {
  background: var(--accent2, #7c3aed);
  border-color: transparent;
  color: #fff;
}

.ag-featured {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 28px;
  background: var(--bg2);
}
.ag-feat-thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 160px;
  font-size: 3rem;
  position: relative;
}
.ag-feat-thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 60%, var(--bg2));
}
.ag-feat-body {
  padding: 22px 22px 22px 16px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
}
.ag-feat-label {
  font-size: 0.65rem;
  font-weight: 800;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.ag-feat-name {
  font-family: var(--font);
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.ag-feat-desc {
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.5;
}
.ag-feat-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.72rem;
  color: var(--muted);
  margin-top: 2px;
}
.ag-feat-meta strong {
  color: var(--text2);
}
.ag-feat-actions {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}

.ag-section-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.ag-section-title {
  font-family: var(--font);
  font-size: 0.84rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--text);
}
.ag-section-link {
  font-size: 0.72rem;
  color: var(--accent);
  cursor: pointer;
  font-weight: 600;
  background: none;
  border: none;
  padding: 0;
}
.ag-section-link:hover {
  text-decoration: underline;
}

.ag-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 32px;
}
.ag-card {
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--bg2);
  overflow: hidden;
  cursor: pointer;
  transition: var(--transition);
  display: flex;
  flex-direction: column;
}
.ag-card:hover {
  box-shadow: var(--shadow);
  border-color: var(--border2);
  transform: translateY(-2px);
}
.ag-card-thumb {
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  flex-shrink: 0;
}
.ag-card-body {
  padding: 12px 13px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.ag-card-tag {
  font-size: 0.62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.ag-card-name {
  font-family: var(--font);
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ag-card-meta {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.7rem;
  color: var(--muted);
  margin-top: 2px;
}
.ag-mini-av {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  font-size: 0.55rem;
  font-weight: 800;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ag-card-rating {
  color: #f59e0b;
  font-weight: 700;
}
.ag-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 8px;
  border-top: 1px solid var(--border);
}
.ag-price {
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--text);
  font-family: var(--font);
}
.ag-price.free {
  color: var(--green, #22c55e);
}
.ag-get-btn {
  padding: 4px 12px;
  border-radius: 7px;
  border: none;
  cursor: pointer;
  font-size: 0.72rem;
  font-weight: 700;
  font-family: var(--font);
  background: var(--accent);
  color: #fff;
  transition: var(--transition);
}
.ag-get-btn:hover {
  opacity: 0.85;
}
.ag-get-btn.owned {
  background: var(--bg3);
  color: var(--muted);
  cursor: default;
}

.ag-agent-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
  transition: var(--transition);
}
.ag-agent-row:hover {
  background: var(--hover);
  margin: 0 -12px;
  padding: 12px 12px;
  border-radius: 10px;
}
.ag-agent-row:last-child {
  border-bottom: none;
}
.ag-agent-av {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  font-size: 1rem;
  font-weight: 800;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ag-agent-info {
  flex: 1;
  min-width: 0;
}
.ag-agent-name {
  font-size: 0.86rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 5px;
}
.ag-verified-badge {
  color: #4f6ef7;
  font-size: 0.7rem;
}
.ag-agent-stats {
  font-size: 0.72rem;
  color: var(--muted);
  margin-top: 1px;
}

.ag-detail-wrap {
  max-width: 900px;
  margin: 0 auto;
  padding: 24px 20px 60px;
}
.ag-detail-grid {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 20px;
  align-items: start;
}
.ag-detail-thumb {
  height: 160px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3.5rem;
  margin-bottom: 18px;
}
.ag-detail-cat {
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 4px;
}
.ag-detail-name {
  font-family: var(--font);
  font-size: 1.4rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  margin-bottom: 12px;
  line-height: 1.2;
}
.ag-detail-agent-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8rem;
  color: var(--text2);
  margin-bottom: 16px;
}
.ag-detail-agent-av {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  font-size: 0.75rem;
  font-weight: 800;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ag-detail-stars {
  color: #f59e0b;
}
.ag-detail-desc {
  font-size: 0.84rem;
  color: var(--text2);
  line-height: 1.65;
  margin-bottom: 20px;
}
.ag-detail-stats-row {
  display: flex;
  gap: 16px;
  font-size: 0.78rem;
  color: var(--muted);
  padding: 14px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  margin-bottom: 20px;
}
.ag-detail-stats-row strong {
  color: var(--text2);
}
.ag-detail-cta {
  width: 100%;
  padding: 12px;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  font-family: var(--font);
  font-size: 0.88rem;
  font-weight: 700;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  color: #fff;
  transition: var(--transition);
  margin-bottom: 10px;
}
.ag-detail-cta:hover {
  opacity: 0.88;
}
.ag-detail-cta.owned {
  background: var(--bg3);
  color: var(--muted);
  cursor: default;
}
.ag-detail-secondary {
  width: 100%;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg2);
  color: var(--text2);
  font-family: var(--font);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
}
.ag-detail-secondary:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.ag-detail-report {
  width: 100%;
  margin-top: 8px;
  padding: 8px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: none;
  color: var(--muted);
  font-family: var(--font);
  font-size: 0.76rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.ag-detail-report:hover {
  color: var(--red, #dc2626);
  border-color: var(--red, #dc2626);
}
.ag-detail-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 14px;
}
.ag-detail-card-title {
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
  margin-bottom: 12px;
}
.ag-included-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 6px 0;
  font-size: 0.8rem;
  color: var(--text2);
  border-bottom: 1px solid var(--border);
}
.ag-included-item:last-child {
  border-bottom: none;
}
.ag-included-item i {
  color: var(--accent);
  margin-top: 1px;
  flex-shrink: 0;
}
.ag-review-item {
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}
.ag-review-item:last-child {
  border-bottom: none;
}
.ag-review-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 5px;
}
.ag-review-av {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--bg3);
  font-size: 0.65rem;
  font-weight: 800;
  color: var(--text3);
  display: flex;
  align-items: center;
  justify-content: center;
}
.ag-review-name {
  font-size: 0.78rem;
  font-weight: 700;
}
.ag-review-stars {
  font-size: 0.72rem;
  color: #f59e0b;
  margin-left: auto;
}
.ag-review-text {
  font-size: 0.78rem;
  color: var(--text2);
  line-height: 1.5;
}

.ag-profile-wrap {
  max-width: 900px;
  margin: 0 auto;
  padding: 24px 20px 60px;
}
.ag-profile-hero {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 16px;
  margin-bottom: 24px;
}
.ag-profile-av {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  font-size: 1.5rem;
  font-weight: 800;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ag-profile-info {
  flex: 1;
}
.ag-profile-name {
  font-family: var(--font);
  font-size: 1.15rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  gap: 8px;
  letter-spacing: -0.02em;
}
.ag-profile-bio {
  font-size: 0.82rem;
  color: var(--muted);
  margin: 4px 0 12px;
}
.ag-profile-stats {
  display: flex;
  gap: 20px;
  font-size: 0.78rem;
  color: var(--muted);
}
.ag-profile-stats strong {
  color: var(--text2);
  display: block;
  font-size: 1rem;
  font-weight: 800;
}
.ag-follow-btn {
  padding: 8px 18px;
  border-radius: 9px;
  border: none;
  cursor: pointer;
  font-family: var(--font);
  font-size: 0.78rem;
  font-weight: 700;
  background: var(--accent);
  color: #fff;
  transition: var(--transition);
  flex-shrink: 0;
}
.ag-follow-btn.following {
  background: var(--bg3);
  color: var(--text2);
  border: 1px solid var(--border);
}
.ag-follow-btn:hover {
  opacity: 0.85;
}

.ag-apply-wrap {
  max-width: 580px;
  margin: 0 auto;
  padding: 32px 20px 60px;
}
.ag-apply-steps {
  display: flex;
  justify-content: center;
  gap: 0;
  margin-bottom: 32px;
}
.ag-apply-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  flex: 1;
  position: relative;
}
.ag-apply-step::before {
  content: "";
  position: absolute;
  top: 14px;
  left: 50%;
  width: 100%;
  height: 2px;
  background: var(--border);
  z-index: 0;
}
.ag-apply-step:last-child::before {
  display: none;
}
.ag-step-dot {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid var(--border);
  background: var(--bg2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--muted);
  position: relative;
  z-index: 1;
  transition: var(--transition);
}
.ag-apply-step.active .ag-step-dot {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
}
.ag-apply-step.done .ag-step-dot {
  border-color: var(--accent);
  background: var(--accent);
  color: #fff;
}
.ag-step-label {
  font-size: 0.65rem;
  color: var(--muted);
  text-align: center;
  font-weight: 600;
}
.ag-apply-step.active .ag-step-label {
  color: var(--accent);
}
.ag-apply-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 24px;
  margin-bottom: 16px;
}
.ag-apply-title {
  font-family: var(--font);
  font-size: 1.1rem;
  font-weight: 800;
  margin-bottom: 4px;
}
.ag-apply-sub {
  font-size: 0.82rem;
  color: var(--muted);
  margin-bottom: 20px;
}
.ag-field {
  margin-bottom: 14px;
}
.ag-field label {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--text2);
  display: block;
  margin-bottom: 5px;
}
.ag-field input,
.ag-field textarea,
.ag-field select {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--bg3);
  color: var(--text);
  font-family: var(--font);
  font-size: 0.84rem;
  transition: var(--transition);
  box-sizing: border-box;
  resize: vertical;
}
.ag-field input:focus,
.ag-field textarea:focus,
.ag-field select:focus {
  outline: none;
  border-color: var(--accent);
}
.ag-spec-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.ag-spec-chip {
  padding: 5px 12px;
  border: 1px solid var(--border);
  border-radius: 20px;
  background: var(--bg3);
  color: var(--text3);
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  font-family: var(--font);
}
.ag-spec-chip.sel {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.ag-earn-card {
  background: linear-gradient(135deg, var(--accent) 12, var(--accent2) 08);
  border: 1px solid var(--accent) 30;
  border-radius: 12px;
  padding: 14px;
  margin-bottom: 16px;
}
.ag-apply-nav {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 8px;
}
.ag-btn-next {
  padding: 10px 24px;
  border: none;
  border-radius: 9px;
  cursor: pointer;
  font-family: var(--font);
  font-size: 0.84rem;
  font-weight: 700;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  color: #fff;
  transition: var(--transition);
}
.ag-btn-next:hover {
  opacity: 0.88;
}
.ag-btn-back {
  padding: 10px 18px;
  border: 1px solid var(--border);
  border-radius: 9px;
  cursor: pointer;
  font-family: var(--font);
  font-size: 0.84rem;
  font-weight: 600;
  background: var(--bg2);
  color: var(--text2);
  transition: var(--transition);
}
.ag-btn-back:hover {
  border-color: var(--accent);
  color: var(--accent);
}

.ag-dash-wrap {
  max-width: 900px;
  margin: 0 auto;
  padding: 24px 20px 60px;
}
.ag-dash-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--border);
}
.ag-dash-tab {
  padding: 8px 16px;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--muted);
  background: none;
  border: none;
  cursor: pointer;
  transition: var(--transition);
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  font-family: var(--font);
}
.ag-dash-tab.active {
  color: var(--accent);
  border-bottom-color: var(--accent);
}
.ag-dash-tab:hover {
  color: var(--text2);
}
.ag-stat-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-bottom: 24px;
}
.ag-stat-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-top: 3px solid var(--c1, var(--accent));
  border-radius: 12px;
  padding: 14px 12px;
}
.ag-stat-label {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}
.ag-stat-val {
  font-size: 1.4rem;
  font-weight: 800;
  font-family: var(--font);
  letter-spacing: -0.03em;
}
.ag-bar-chart {
  margin-bottom: 24px;
}
.ag-bar-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 5px 0;
  font-size: 0.78rem;
}
.ag-bar-label {
  width: 130px;
  flex-shrink: 0;
  color: var(--text2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ag-bar-track {
  flex: 1;
  height: 7px;
  background: var(--border);
  border-radius: 4px;
  overflow: hidden;
}
.ag-bar-fill {
  height: 100%;
  border-radius: 4px;
  background: linear-gradient(90deg, var(--accent), var(--accent2));
  transition: width 0.6s ease;
}
.ag-bar-val {
  width: 48px;
  text-align: right;
  color: var(--muted);
  flex-shrink: 0;
}
.ag-tpl-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
  margin-bottom: 24px;
}
.ag-tpl-table th {
  text-align: left;
  padding: 8px 10px;
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-bottom: 1px solid var(--border);
}
.ag-tpl-table td {
  padding: 10px;
  border-bottom: 1px solid var(--border);
  color: var(--text2);
}
.ag-tpl-table tr:hover td {
  background: var(--hover);
}
.ag-status-badge {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 20px;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.ag-status-badge.live {
  background: #22c55e20;
  color: #22c55e;
}
.ag-status-badge.draft {
  background: var(--bg3);
  color: var(--muted);
}
.ag-status-badge.review {
  background: #f59e0b20;
  color: #f59e0b;
}
.ag-status-badge.suspended {
  background: #ef444420;
  color: #ef4444;
}
.ag-earnings-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
}
.ag-earnings-table th {
  text-align: left;
  padding: 8px 10px;
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-bottom: 2px solid var(--border);
}
.ag-earnings-table td {
  padding: 9px 10px;
  border-bottom: 1px solid var(--border);
  color: var(--text2);
}
.ag-payout-card {
  background: linear-gradient(135deg, #22c55e12, transparent);
  border: 1px solid #22c55e30;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ag-builder-wrap {
  max-width: 680px;
  margin: 0 auto;
  padding: 24px 20px 60px;
}
.ag-builder-steps {
  display: flex;
  gap: 6px;
  margin-bottom: 24px;
}
.ag-builder-step {
  flex: 1;
  height: 4px;
  border-radius: 2px;
  background: var(--border);
  transition: var(--transition);
}
.ag-builder-step.done {
  background: var(--accent);
}
.ag-builder-step.active {
  background: var(--accent2, #7c3aed);
}
.ag-pricing-toggle {
  display: flex;
  background: var(--bg3);
  border-radius: 9px;
  padding: 3px;
  gap: 3px;
  margin-bottom: 16px;
}
.ag-pricing-opt {
  flex: 1;
  padding: 7px 0;
  text-align: center;
  border: none;
  background: none;
  border-radius: 7px;
  font-family: var(--font);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--muted);
  cursor: pointer;
  transition: var(--transition);
}
.ag-pricing-opt.active {
  background: var(--bg);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  color: var(--text);
}
.ag-preview-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
  max-width: 240px;
}
.ag-color-picker {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
}
.ag-color-swatch {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  cursor: pointer;
  border: 2px solid transparent;
  transition: var(--transition);
}
.ag-color-swatch.sel {
  border-color: var(--text);
  transform: scale(1.1);
}
.ag-contents-check {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ag-content-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--bg3);
  cursor: pointer;
  transition: var(--transition);
}
.ag-content-row:hover {
  border-color: var(--accent);
}
.ag-content-row.sel {
  border-color: var(--accent);
  background: var(--accent) 10;
}
.ag-content-row input[type="checkbox"] {
  accent-color: var(--accent);
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}
.ag-content-icon {
  font-size: 1.1rem;
  flex-shrink: 0;
}
.ag-content-info {
  flex: 1;
}
.ag-content-name {
  font-size: 0.82rem;
  font-weight: 700;
}
.ag-content-desc {
  font-size: 0.7rem;
  color: var(--muted);
}

.ag-dir-wrap {
  max-width: 860px;
  margin: 0 auto;
  padding: 24px 20px 60px;
}
.ag-dir-sort {
  display: flex;
  gap: 8px;
  margin-bottom: 20px;
}
.ag-dir-sort-btn {
  padding: 5px 13px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: var(--bg2);
  color: var(--text3);
  font-size: 0.74rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  font-family: var(--font);
}
.ag-dir-sort-btn.active {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}

.ag-empty {
  text-align: center;
  padding: 60px 20px;
  color: var(--muted);
  font-size: 0.84rem;
}
.ag-empty-icon {
  font-size: 2.4rem;
  margin-bottom: 10px;
}
.ag-launch-hero {
  text-align: center;
  padding: 48px 24px 40px;
  background: var(--card);
  border: 1px dashed var(--border);
  border-radius: 16px;
  margin: 4px 0 8px;
}
.ag-launch-icon {
  font-size: 2.8rem;
  margin-bottom: 14px;
}
.ag-launch-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--fg);
  margin-bottom: 8px;
}
.ag-launch-desc {
  font-size: 0.84rem;
  color: var(--muted);
  max-width: 360px;
  margin: 0 auto 18px;
  line-height: 1.55;
}
.ag-install-success {
  position: fixed;
  bottom: 80px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--green, #22c55e);
  color: #fff;
  border-radius: 30px;
  padding: 10px 22px;
  font-size: 0.84rem;
  font-weight: 700;
  font-family: var(--font);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
  z-index: 9999;
  animation: ag-fadeup 0.3s ease;
  pointer-events: none;
}
@keyframes ag-fadeup {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(10px);
  }
}

.ag-search-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--bg2);
  border: 1.5px solid var(--border);
  border-radius: 10px;
  padding: 8px 12px;
  margin-bottom: 14px;
  transition: border-color 0.2s;
}
.ag-search-bar:focus-within {
  border-color: var(--accent);
}
.ag-search-bar > i {
  color: var(--muted);
  font-size: 0.9rem;
  flex-shrink: 0;
}
.ag-search-bar input {
  flex: 1;
  border: none;
  background: none;
  outline: none;
  font-size: 0.84rem;
  color: var(--text);
  font-family: inherit;
}
.ag-search-bar input::placeholder {
  color: var(--muted);
}
.ag-search-clear {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: none;
  background: var(--muted);
  color: #fff;
  cursor: pointer;
  font-size: 0.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  line-height: 1;
  opacity: 0.65;
  transition: opacity 0.15s;
}
.ag-search-clear:hover {
  opacity: 1;
}

.ag-contents-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ag-content-section {
  border: 1.5px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color 0.2s;
}
.ag-content-section.open {
  border-color: var(--accent);
}
.ag-content-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  cursor: pointer;
  user-select: none;
  background: var(--bg2);
  transition: background 0.15s;
}
.ag-content-header:hover {
  background: var(--bg3);
}
.ag-content-icon {
  font-size: 1.15rem;
  flex-shrink: 0;
}
.ag-content-info {
  flex: 1;
  min-width: 0;
}
.ag-content-name {
  font-size: 0.83rem;
  font-weight: 700;
  color: var(--text);
}
.ag-content-desc {
  font-size: 0.71rem;
  color: var(--muted);
}
.ag-content-count {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--accent);
  background: var(--accent) 15;
  border-radius: 20px;
  padding: 2px 8px;
  white-space: nowrap;
  flex-shrink: 0;
}
.ag-content-chevron {
  font-size: 0.78rem;
  color: var(--muted);
  flex-shrink: 0;
  transition: transform 0.2s;
}
.ag-content-section.open .ag-content-chevron {
  transform: rotate(90deg);
}
.ag-content-editor {
  padding: 12px 14px;
  background: var(--bg);
  border-top: 1px solid var(--border);
}
.ag-items-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-bottom: 10px;
}
.ag-item-row {
  display: flex;
  align-items: center;
  gap: 7px;
}
.ag-item-row input,
.ag-item-row select {
  padding: 6px 9px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: var(--bg2);
  color: var(--text);
  font-size: 0.78rem;
  font-family: inherit;
  outline: none;
  transition: border-color 0.15s;
}
.ag-item-row input:focus,
.ag-item-row select:focus {
  border-color: var(--accent);
}
.ag-item-row input {
  min-width: 0;
}
.ag-item-row select {
  flex-shrink: 0;
}
.ag-item-del {
  width: 26px;
  height: 26px;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: none;
  cursor: pointer;
  color: var(--muted);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: var(--transition);
  font-size: 0.8rem;
}
.ag-item-del:hover {
  background: #ef444410;
  color: #ef4444;
  border-color: #ef444440;
}
.ag-add-item-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 11px;
  border: 1.5px dashed var(--border);
  border-radius: 8px;
  background: none;
  color: var(--accent);
  font-size: 0.75rem;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: var(--transition);
}
.ag-add-item-btn:hover {
  border-color: var(--accent);
  background: var(--accent) 08;
}

/* ── Space Settings Toggles ──────────────────────────────────── */
.sset-toggle-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}
.sset-toggle-row:last-child {
  border-bottom: none;
}
.sset-toggle {
  position: relative;
  display: inline-block;
  width: 36px;
  height: 20px;
  flex-shrink: 0;
  cursor: pointer;
}
.sset-toggle input {
  position: absolute;
  opacity: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
  margin: 0;
  z-index: 1;
}
.sset-toggle-track {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  transition: background 0.2s;
  border: 1px solid var(--border);
}
.sset-toggle input:checked + .sset-toggle-track {
  background: rgba(15, 219, 173, 0.3);
  border-color: rgba(15, 219, 173, 0.4);
}
.sset-toggle-track::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  transition: transform 0.2s;
}
.sset-toggle input:checked + .sset-toggle-track::after {
  transform: translateX(16px);
  background: var(--teal);
}
.sset-toggle-row.sset-row-off {
  opacity: 0.6;
}
.sset-toggle-row.sset-row-off .mkt-item-icon {
  filter: grayscale(1);
}
.sset-int-connect {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 600;
  color: var(--teal);
  cursor: pointer;
  padding: 4px 10px;
  border: 1px solid rgba(15, 219, 173, 0.4);
  border-radius: 999px;
  white-space: nowrap;
}
.sset-int-connect:hover {
  background: rgba(15, 219, 173, 0.12);
}
.sset-int-soon {
  flex-shrink: 0;
  font-size: 10px;
  font-weight: 600;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 4px 8px;
  border: 1px solid var(--border);
  border-radius: 999px;
}
.sset-int-divider {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  margin: 12px 0 2px;
}

.ext-tab-shell {
  padding: 20px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
  max-width: 480px;
  margin: 0 auto;
}
.ext-tab-icon {
  font-size: 36px;
  margin-bottom: 4px;
}
.ext-tab-name {
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
}
.ext-tab-desc {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.5;
}
.ext-pomo-display {
  font-size: 52px;
  font-weight: 800;
  color: var(--text);
  letter-spacing: -2px;
  margin: 14px 0 4px;
  font-variant-numeric: tabular-nums;
}

/* ═══════════════════════════════════════════════════════════════
   ORG SPACE  (#panel-org)
   ═══════════════════════════════════════════════════════════════ */
/* .os-panel must NOT set display — .panel{display:none} and .panel.active{display:flex}
   already control panel visibility; adding display here would break that cascade */
.panel.os-panel {
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}

.os-hero {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 22px 14px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.os-hero-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: var(--teal2);
  color: var(--teal);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  flex-shrink: 0;
  position: relative;
  cursor: pointer;
  overflow: hidden;
}
.os-hero-icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 14px;
}
.os-hero-icon-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 0.7rem;
  opacity: 0;
  transition: opacity 0.15s;
  border-radius: 14px;
  pointer-events: none;
}
.os-hero-icon:hover .os-hero-icon-overlay {
  opacity: 1;
}
.os-hero-info {
  flex: 1;
  min-width: 0;
}
.os-hero-name {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--fg);
}
.os-hero-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 0.78rem;
  color: var(--muted);
  margin-top: 2px;
}
.os-sep {
  color: var(--border);
}
.os-online-badge {
  color: var(--teal);
  display: flex;
  align-items: center;
  gap: 3px;
}
.os-hero-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

.os-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--teal);
  color: #fff;
  border: none;
  cursor: pointer;
  padding: 7px 14px;
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  transition: background 0.15s;
}
.os-btn-primary:hover {
  background: var(--teal4);
}
.os-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: transparent;
  color: var(--muted);
  border: 1px solid var(--border);
  cursor: pointer;
  padding: 7px 14px;
  border-radius: 8px;
  font-size: 0.82rem;
  transition: background 0.15s;
}
.os-btn-ghost:hover {
  background: var(--hover);
  color: var(--fg);
}
.os-btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  color: var(--muted);
  border: 1px solid var(--border);
  cursor: pointer;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  font-size: 1rem;
  transition: background 0.15s;
}
.os-btn-icon:hover {
  background: var(--hover);
  color: var(--fg);
}

.os-tabs {
  display: flex;
  gap: 2px;
  padding: 0 20px;
  border-bottom: 1px solid var(--border);
  overflow-x: auto;
  flex-shrink: 0;
  scrollbar-width: none;
}
.os-tabs::-webkit-scrollbar {
  display: none;
}
.os-tab {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 10px 14px;
  border: none;
  background: transparent;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 500;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  white-space: nowrap;
  transition:
    color 0.15s,
    border-color 0.15s;
}
.os-tab:hover {
  color: var(--fg);
}
.os-tab.on {
  color: var(--teal);
  border-bottom-color: var(--teal);
  font-weight: 600;
}

#panel-org .os-pane {
  display: none !important;
  flex: 1;
  overflow: hidden;
  flex-direction: column;
}
#panel-org .os-pane.on {
  display: flex !important;
}

.os-scroll {
  flex: 1;
  overflow-y: auto;
  padding: 18px 22px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.os-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.os-toolbar-label {
  font-size: 0.8rem;
  color: var(--muted);
}
.os-tool-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 12px;
  border-radius: 7px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--muted);
  font-size: 0.8rem;
  cursor: pointer;
  transition:
    background 0.15s,
    color 0.15s;
}
.os-tool-btn:hover {
  background: var(--hover);
  color: var(--fg);
}
.os-tool-btn.os-tool-active {
  background: var(--teal2);
  color: var(--teal);
  border-color: var(--teal2);
}
.os-tool-btn.os-tool-action {
  background: var(--teal);
  color: #fff;
  border-color: var(--teal);
}
.os-tool-btn.os-tool-action:hover {
  background: var(--teal4);
}

.os-stat-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.os-stat {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
}
.os-stat-lbl {
  font-size: 0.74rem;
  color: var(--muted);
  margin-bottom: 4px;
}
.os-stat-val {
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--fg);
  line-height: 1;
}
.os-stat-sub {
  font-size: 0.72rem;
  color: var(--muted);
  margin-top: 4px;
}
.os-stat-sub.os-s {
  color: var(--teal);
}

.os-grid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.os-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
}
.os-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.os-card-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--fg);
}
.os-card-link {
  font-size: 0.78rem;
  color: var(--teal);
  cursor: pointer;
}
.os-card-link:hover {
  text-decoration: underline;
}
.os-empty {
  font-size: 0.82rem;
  color: var(--muted);
  padding: 8px 0;
}

.os-kanban {
  display: flex;
  gap: 12px;
  min-height: 320px;
  padding: 4px 0 8px;
}
.os-task-list {
  padding: 4px 0 8px;
}
.os-list-group {
  margin-bottom: 16px;
}
.os-list-group-head {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 6px;
  padding: 0 2px;
}
.os-list-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg2);
  margin-bottom: 6px;
  cursor: pointer;
  transition:
    background 0.12s,
    border-color 0.12s;
}
.os-list-row:hover {
  background: var(--bg3);
  border-color: var(--border2, var(--border));
}
.os-list-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--text4);
}
.os-list-dot-todo {
  background: var(--text4);
}
.os-list-dot-inprogress {
  background: var(--amber3, #f59e0b);
}
.os-list-dot-review {
  background: var(--purple2, #8b82e8);
}
.os-list-dot-done {
  background: #22c55e;
}
.os-list-title {
  flex: 1;
  min-width: 0;
  font-size: 0.86rem;
  color: var(--fg);
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.os-list-meta {
  font-size: 0.74rem;
  color: var(--text4);
  flex-shrink: 0;
  white-space: nowrap;
}

.os-col {
  flex: 0 0 230px;
  display: flex;
  flex-direction: column;
  background: var(--hover);
  border-radius: 10px;
  padding: 10px;
}
.os-col-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  padding: 0 2px;
}
.os-col-title {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--fg);
}
.os-col-count {
  font-size: 0.72rem;
  background: var(--border);
  color: var(--muted);
  padding: 1px 7px;
  border-radius: 20px;
}
.os-task-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
  margin-bottom: 6px;
  font-size: 0.82rem;
  color: var(--fg);
  cursor: pointer;
  transition: box-shadow 0.15s;
}
.os-task-card:hover {
  box-shadow: var(--shadow1);
}
.os-task-tag {
  display: inline-block;
  font-size: 0.68rem;
  padding: 1px 7px;
  border-radius: 20px;
  background: var(--teal2);
  color: var(--teal);
  margin-bottom: 5px;
  font-weight: 500;
}
.os-task-title {
  font-weight: 500;
  margin-bottom: 4px;
}
.os-task-meta {
  font-size: 0.72rem;
  color: var(--muted);
  display: flex;
  gap: 8px;
}
.os-add-card-btn {
  margin-top: 4px;
  width: 100%;
  background: transparent;
  border: 1px dashed var(--border);
  color: var(--muted);
  border-radius: 8px;
  padding: 7px;
  font-size: 0.8rem;
  cursor: pointer;
  transition: background 0.15s;
}
.os-add-card-btn:hover {
  background: var(--card);
  color: var(--fg);
}

.os-proj-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
  padding: 4px 0;
}
.os-proj-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  cursor: pointer;
  transition: box-shadow 0.15s;
}
.os-proj-card:hover {
  box-shadow: var(--shadow1);
}
.os-proj-stripe {
  width: 32px;
  height: 4px;
  border-radius: 4px;
  margin-bottom: 10px;
}
.os-proj-name {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--fg);
  margin-bottom: 4px;
}
.os-proj-desc {
  font-size: 0.78rem;
  color: var(--muted);
  margin-bottom: 10px;
}
.os-proj-progress {
  height: 6px;
  background: var(--bg3);
  border-radius: 999px;
  overflow: hidden;
  margin: 10px 0 8px;
}
.os-proj-progress-bar {
  height: 100%;
  border-radius: 999px;
  transition: width 0.3s ease;
}
.os-proj-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.os-proj-badge {
  font-size: 0.68rem;
  padding: 2px 8px;
  border-radius: 20px;
  background: var(--teal2);
  color: var(--teal);
  font-weight: 600;
}
.os-proj-tasks-count {
  font-size: 0.74rem;
  color: var(--muted);
}

.os-docs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
  padding: 4px 0;
}
.os-doc-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  cursor: pointer;
  transition: box-shadow 0.15s;
}
.os-doc-card:hover {
  box-shadow: var(--shadow1);
}
.os-doc-icon {
  font-size: 1.4rem;
  margin-bottom: 8px;
}
.os-doc-name {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--fg);
  margin-bottom: 2px;
}
.os-doc-meta {
  font-size: 0.72rem;
  color: var(--muted);
}

.os-member-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}
.os-member-row:last-child {
  border-bottom: none;
}
.os-member-av {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--teal2);
  color: var(--teal);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  font-weight: 700;
  flex-shrink: 0;
}
.os-member-name {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--fg);
}
.os-member-role {
  font-size: 0.75rem;
  color: var(--muted);
}
.os-member-info {
  flex: 1;
}
.os-member-badge {
  font-size: 0.68rem;
  padding: 2px 8px;
  border-radius: 20px;
  background: var(--purple2);
  color: var(--purple);
  font-weight: 500;
}

.os-invite-box {
  background: var(--card);
  border: 1px dashed var(--border);
  border-radius: 12px;
  padding: 20px;
}
.os-invite-title {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--fg);
  margin-bottom: 4px;
}
.os-invite-sub {
  font-size: 0.78rem;
  color: var(--muted);
  margin-bottom: 12px;
}
.os-invite-row {
  display: flex;
  gap: 8px;
}
.os-invite-input {
  flex: 1;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--fg);
  font-size: 0.85rem;
}
.os-invite-input:focus {
  outline: none;
  border-color: var(--teal);
}

.os-bar-chart {
  display: flex;
  align-items: flex-end;
  gap: 6px;
  height: 80px;
  padding-top: 8px;
}
.os-bar-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
}
.os-bar-fill {
  width: 100%;
  border-radius: 4px 4px 0 0;
  background: var(--teal2);
  min-height: 2px;
  transition: height 0.3s;
}
.os-bar-lbl {
  font-size: 0.62rem;
  color: var(--muted);
}

.os-pane-chat {
  flex-direction: row !important;
  overflow: hidden;
}

.oc-sidebar {
  width: 210px;
  flex-shrink: 0;
  background: var(--bg2);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  padding: 0 0 12px;
  overflow-y: auto;
}
.oc-ws-name {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--fg);
  padding: 14px 14px 8px;
  letter-spacing: 0.03em;
  border-bottom: 1px solid var(--border);
  margin-bottom: 8px;
}
.oc-section-lbl {
  font-size: 0.62rem;
  font-weight: 700;
  color: var(--text4);
  letter-spacing: 0.08em;
  padding: 4px 14px 4px;
}
.oc-ch-item {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 5px 14px;
  cursor: pointer;
  border-radius: 0;
  font-size: 0.82rem;
  color: var(--text3);
  transition: background 0.12s;
}
.oc-ch-item:hover {
  background: var(--bg3);
  color: var(--fg);
}
.oc-ch-item.active {
  background: var(--teal2);
  color: var(--teal);
  font-weight: 600;
}
.oc-ch-hash {
  font-size: 0.9rem;
  opacity: 0.5;
  flex-shrink: 0;
}
.oc-ch-unread {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--amber3, #f59e0b);
  margin-left: auto;
  flex-shrink: 0;
}
.oc-ch-rename {
  flex: 1;
  min-width: 0;
  background: var(--bg);
  border: 1px solid var(--accent);
  border-radius: 4px;
  color: var(--fg);
  font-size: 0.82rem;
  padding: 1px 5px;
  outline: none;
}
.oc-dm-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 14px;
  cursor: pointer;
  font-size: 0.82rem;
  color: var(--text3);
  transition: background 0.12s;
}
.oc-dm-item:hover {
  background: var(--bg3);
  color: var(--fg);
}
.oc-dm-item.active {
  background: var(--teal2);
  color: var(--teal);
  font-weight: 600;
}
.oc-presence-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.oc-presence-dot.online {
  background: #22c55e;
}
.oc-presence-dot.offline {
  background: var(--border);
}
.oc-dm-av {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--purple2);
  color: var(--purple);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
  font-weight: 700;
}

.oc-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-width: 0;
  min-height: 0;
}
.oc-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 20px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
  gap: 12px;
}
.oc-ch-name {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--fg);
}
.oc-ch-desc {
  font-size: 0.72rem;
  color: var(--text4);
  margin-top: 1px;
}
.oc-presence {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
}
.oc-presence-chip {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.68rem;
  color: var(--text3);
  white-space: nowrap;
}

.oc-msgs {
  flex: 1;
  overflow-y: auto;
  padding: 12px 20px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-height: 0;
}
.oc-msg {
  display: flex;
  gap: 14px;
  padding: 6px 0;
  border-radius: 8px;
  transition: background 0.1s;
}
.oc-msg:hover {
  background: var(--bg2);
  padding-left: 8px;
  padding-right: 8px;
  margin: 0 -8px;
}
.oc-msg-av {
  width: 65px;
  height: 65px;
  border-radius: 14px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  font-weight: 700;
  color: #fff;
  margin-top: 1px;
}
.oc-msg-body {
  flex: 1;
  min-width: 0;
}
.oc-msg-meta {
  display: flex;
  align-items: baseline;
  gap: 9px;
  margin-bottom: 3px;
}
.oc-msg-name {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--fg);
}
.oc-msg-time {
  font-size: 0.72rem;
  color: var(--text4);
}
.oc-msg-text {
  font-size: 0.92rem;
  color: var(--text2);
  line-height: 1.6;
  word-break: break-word;
}
.oc-msg-continued {
  padding-top: 1px;
}
.oc-msg-continued .oc-msg-av {
  visibility: hidden;
}
.oc-msg-continued:hover .oc-msg-av {
  visibility: hidden;
}
.oc-chat-empty {
  font-size: 0.84rem;
  color: var(--muted);
  text-align: center;
  padding: 3rem 0;
}

.oc-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 10px 16px 14px;
  padding: 6px 8px 6px 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg2);
  flex-shrink: 0;
}
.oc-input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: var(--fg);
  font-size: 0.88rem;
  font-family: var(--font);
  padding: 4px 0;
}
.oc-input::placeholder {
  color: var(--text4);
}
.oc-bar-icon {
  background: none;
  border: none;
  color: var(--text4);
  cursor: pointer;
  padding: 5px;
  border-radius: 6px;
  font-size: 1rem;
  display: flex;
  align-items: center;
  transition:
    color 0.15s,
    background 0.15s;
}
.oc-bar-icon:hover {
  color: var(--fg);
  background: var(--bg3);
}
.oc-send-btn {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  flex-shrink: 0;
  background: var(--teal);
  color: #fff;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
}
.oc-send-btn:hover {
  background: var(--teal4, #0a6652);
}

.oc-emoji-picker {
  position: absolute;
  bottom: 72px;
  right: 20px;
  z-index: 200;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
  display: grid;
  grid-template-columns: repeat(8, 32px);
  gap: 4px;
}
.oc-emoji-btn-item {
  width: 32px;
  height: 32px;
  background: none;
  border: none;
  border-radius: 6px;
  font-size: 1.1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.1s;
}
.oc-emoji-btn-item:hover {
  background: var(--bg3);
}

.os-briefing-card {
  border-left: 3px solid var(--teal);
}
.os-briefing-text {
  font-size: 0.88rem;
  color: var(--fg);
  line-height: 1.65;
  padding: 6px 0 4px;
  min-height: 40px;
}

.os-goal-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 12px;
}
.os-goal-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.os-goal-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}
.os-goal-title {
  flex: 1;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--fg);
}
.os-goal-badge {
  font-size: 0.68rem;
  padding: 2px 7px;
  border-radius: 20px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.os-goal-pct {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--teal);
  min-width: 36px;
  text-align: right;
}
.os-goal-menu {
  background: none;
  border: none;
  color: var(--muted);
  cursor: pointer;
  padding: 3px 5px;
  border-radius: 6px;
  font-size: 0.85rem;
}
.os-goal-menu:hover {
  background: var(--surface2);
  color: var(--fg);
}
.os-goal-desc {
  font-size: 0.8rem;
  color: var(--muted);
  margin-bottom: 8px;
}
.os-goal-bar-wrap {
  width: 100%;
  height: 6px;
  background: var(--surface2);
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 10px;
}
.os-goal-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--teal), var(--teal4));
  border-radius: 4px;
  transition: width 0.4s;
}

.os-kr-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 4px;
}
.os-kr-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.os-kr-title {
  flex: 1;
  font-size: 0.8rem;
  color: var(--fg);
}
.os-kr-progress {
  display: flex;
  align-items: center;
  gap: 6px;
}
.os-kr-bar {
  width: 80px;
  height: 4px;
  background: var(--surface2);
  border-radius: 3px;
  overflow: hidden;
}
.os-kr-fill {
  height: 100%;
  background: var(--teal);
  border-radius: 3px;
  transition: width 0.3s;
}
.os-kr-val {
  font-size: 0.72rem;
  color: var(--muted);
  white-space: nowrap;
}
.os-kr-add {
  background: none;
  border: 1px dashed var(--border);
  border-radius: 8px;
  color: var(--muted);
  font-size: 0.78rem;
  padding: 5px 10px;
  cursor: pointer;
  margin-top: 4px;
  transition:
    border-color 0.15s,
    color 0.15s;
}
.os-kr-add:hover {
  border-color: var(--teal);
  color: var(--teal);
}

.os-tab-founder {
  color: var(--amber) !important;
}
.os-tab-founder.on,
.os-tab-founder:hover {
  color: var(--amber) !important;
  border-color: var(--amber) !important;
}

.os-stat-green .os-stat-val {
  color: var(--coral);
}
.os-stat-teal .os-stat-val {
  color: var(--teal);
}
.os-stat-blue .os-stat-val {
  color: var(--purple);
}
.founder-form {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 4px;
}
.founder-form label {
  font-size: 0.78rem;
  color: var(--muted);
  font-weight: 500;
  margin-top: 4px;
}
.founder-form input,
.founder-form select {
  margin-bottom: 0;
}
.fd-inv-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.fd-inv-card {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px 12px;
}
.fd-inv-av {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--purple2);
  color: var(--purple);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.85rem;
  flex-shrink: 0;
}
.fd-inv-name {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--fg);
}
.fd-inv-firm {
  font-size: 0.75rem;
  color: var(--muted);
}
.fd-inv-badge {
  font-size: 0.68rem;
  padding: 2px 8px;
  border-radius: 20px;
  font-weight: 600;
  text-transform: capitalize;
  white-space: nowrap;
}

/* ── Org Announcements ───────────────────────────────────────── */
.ann-compose-bar {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.ann-compose-box {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ann-title-input {
  width: 100%;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--fg);
  font-size: 0.88rem;
  font-weight: 600;
  font-family: var(--font);
}
.ann-title-input:focus {
  outline: none;
  border-color: var(--teal);
}
.ann-body-input {
  width: 100%;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--fg);
  font-size: 0.84rem;
  font-family: var(--font);
  resize: none;
  min-height: 56px;
}
.ann-body-input:focus {
  outline: none;
  border-color: var(--teal);
}
.ann-compose-footer {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-top: 4px;
}
.ann-post-btn {
  padding: 7px 18px;
  background: var(--teal);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.15s;
}
.ann-post-btn:hover {
  opacity: 0.85;
}
.ann-pin-toggle {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.78rem;
  color: var(--muted);
  cursor: pointer;
}
.ann-feed {
  flex: 1;
  overflow-y: auto;
  padding: 12px 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ann-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
}
.ann-card.pinned {
  border-color: var(--teal);
  background: var(--teal2, rgba(13, 122, 95, 0.06));
}
.ann-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.ann-pin-badge {
  font-size: 0.6rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 20px;
  background: var(--teal);
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.ann-card-title {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--fg);
  flex: 1;
}
.ann-card-body {
  font-size: 0.83rem;
  color: var(--text3);
  line-height: 1.6;
}
.ann-card-meta {
  font-size: 0.7rem;
  color: var(--muted);
  margin-top: 8px;
}
.ann-del-btn {
  background: none;
  border: none;
  color: var(--muted);
  font-size: 0.8rem;
  cursor: pointer;
  padding: 3px 6px;
  border-radius: 6px;
  transition: color 0.12s;
}
.ann-del-btn:hover {
  color: var(--coral);
}

/* ═══════════════════════════════════════════════════════════════
   PERSONAL SPACE  (#panel-personal)
   ═══════════════════════════════════════════════════════════════ */
#panel-personal .sp-pane,
#panel-academic .sp-pane {
  display: none !important;
}
#panel-personal .sp-pane.on,
#panel-academic .sp-pane.on {
  display: flex !important;
}

.sp-panel {
  flex-direction: column;
  height: 100%;
  overflow: hidden;
}

.sp-hero {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 24px 14px;
  flex-shrink: 0;
  border-bottom: 1px solid var(--border);
}
.sp-hero-icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  flex-shrink: 0;
}
.sp-hero-blue .sp-hero-icon {
  background: var(--blue2, #e6f1fb);
}
.sp-hero-amber .sp-hero-icon {
  background: var(--amber2, #fef6e4);
}

.sp-hero-info {
  flex: 1;
}
.sp-hero-name {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--fg);
  cursor: pointer;
  border-radius: 4px;
  padding: 1px 4px;
  display: inline-block;
}
.sp-hero-name:hover {
  background: var(--hover);
}
.sp-hero-sub {
  font-size: 0.74rem;
  color: var(--muted);
  margin-top: 2px;
}
.sp-hero-actions {
  display: flex;
  gap: 8px;
}
.sp-hero-btn {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 7px 14px;
  border-radius: 8px;
  font-size: 0.8rem;
  font-weight: 600;
  border: none;
  cursor: pointer;
  transition: opacity 0.15s;
}
.sp-hero-btn:hover {
  opacity: 0.85;
}
.sp-hero-blue .sp-hero-btn {
  background: var(--blue, #185fa5);
  color: #fff;
}
.sp-hero-amber .sp-hero-btn {
  background: var(--amber3, #ef9f27);
  color: #fff;
}

.sp-streak {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.75rem;
  color: var(--orange, #f6a623);
  font-weight: 600;
  padding: 4px 8px;
  background: rgba(246, 166, 35, 0.1);
  border-radius: 8px;
}

.sp-tabs {
  display: flex;
  gap: 0;
  flex-shrink: 0;
  border-bottom: 1px solid var(--border);
  overflow-x: auto;
  scrollbar-width: none;
  padding: 0 16px;
}
.sp-tabs::-webkit-scrollbar {
  display: none;
}
.sp-tab {
  padding: 10px 14px;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--muted);
  border: none;
  background: none;
  cursor: pointer;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition:
    color 0.15s,
    border-color 0.15s;
}
.sp-tab:hover {
  color: var(--fg);
}
.sp-tab.on {
  color: var(--fg);
  font-weight: 700;
}
.sp-panel.sp-hero-blue .sp-tab.on {
  border-bottom-color: var(--blue, #185fa5);
}
.sp-panel.sp-hero-amber .sp-tab.on {
  border-bottom-color: var(--amber3, #ef9f27);
}

.sp-pane {
  flex: 1;
  flex-direction: column;
  overflow: hidden;
  min-height: 0;
}
.sp-scroll {
  flex: 1;
  overflow-y: auto;
  padding: 18px 22px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.sp-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 18px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
  gap: 10px;
}
.sp-toolbar-title {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--fg);
}

.sp-stat-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.sp-stat {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  text-align: center;
}
.sp-stat-val {
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--fg);
}
.sp-stat-lbl {
  font-size: 0.68rem;
  color: var(--muted);
  margin-top: 2px;
}

.sp-grid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.sp-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sp-card-title {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--fg);
}
.sp-card-sub {
  font-size: 0.74rem;
  color: var(--muted);
}
.sp-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.sp-card-link {
  font-size: 0.72rem;
  color: var(--muted);
  cursor: pointer;
}
.sp-card-link:hover {
  color: var(--fg);
  text-decoration: underline;
}

.sp-kanban {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  padding-bottom: 8px;
  flex: 1;
}
.sp-kanban::-webkit-scrollbar {
  height: 4px;
}
.sp-kanban::-webkit-scrollbar-thumb {
  background: var(--border);
  border-radius: 2px;
}

.sp-goals-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
}
.sp-goal-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sp-goal-title {
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--fg);
}
.sp-goal-bar-bg {
  height: 5px;
  background: var(--border);
  border-radius: 3px;
  overflow: hidden;
}
.sp-goal-bar-fill {
  height: 100%;
  border-radius: 3px;
  background: var(--blue, #185fa5);
  transition: width 0.3s;
}
.sp-goal-meta {
  font-size: 0.68rem;
  color: var(--muted);
  display: flex;
  justify-content: space-between;
}

.sp-habits-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sp-habit-row {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px 14px;
}
.sp-habit-check {
  width: 20px;
  height: 20px;
  border-radius: 6px;
  flex-shrink: 0;
  border: 2px solid var(--border);
  background: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
}
.sp-habit-check.done {
  background: var(--blue, #185fa5);
  border-color: var(--blue, #185fa5);
  color: #fff;
}
.sp-habit-name {
  flex: 1;
  font-size: 0.84rem;
  color: var(--fg);
}
.sp-habit-streak {
  font-size: 0.7rem;
  color: var(--muted);
}
.sp-hstats {
  display: flex;
  gap: 20px;
}
.sp-hstat {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.sp-hstat-val {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--fg);
}
.sp-hstat-lbl {
  font-size: 0.66rem;
  color: var(--muted);
  margin-top: 1px;
}

.sp-journal-editor {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sp-journal-editor textarea {
  width: 100%;
  min-height: 100px;
  border: none;
  background: transparent;
  color: var(--fg);
  font-size: 0.88rem;
  resize: vertical;
  font-family: inherit;
}
.sp-journal-editor textarea:focus {
  outline: none;
}
.sp-journal-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  justify-content: flex-end;
}
.sp-journal-entries {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sp-journal-entry {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
}
.sp-journal-entry-date {
  font-size: 0.68rem;
  color: var(--muted);
  margin-bottom: 4px;
}
.sp-journal-entry-text {
  font-size: 0.84rem;
  color: var(--fg);
  white-space: pre-wrap;
}

.sp-notes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
}
.sp-note-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px;
  min-height: 110px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: box-shadow 0.15s;
}
.sp-note-card:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}
.sp-note-title {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--fg);
}
.sp-note-preview {
  font-size: 0.76rem;
  color: var(--muted);
  flex: 1;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
}
.sp-note-date {
  font-size: 0.64rem;
  color: var(--muted);
}

.sp-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 8px 16px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 700;
  transition: opacity 0.15s;
}
.sp-btn-primary:hover {
  opacity: 0.85;
}
.sp-btn-blue {
  background: var(--blue, #185fa5);
  color: #fff;
}
.sp-btn-amber {
  background: var(--amber3, #ef9f27);
  color: #fff;
}
.sp-btn-teal {
  background: var(--teal);
  color: #fff;
}
.sp-btn-teal:hover {
  background: var(--teal4, var(--teal));
}
.sp-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 14px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: none;
  cursor: pointer;
  font-size: 0.82rem;
  color: var(--fg);
  transition: background 0.15s;
}
.sp-btn-ghost:hover {
  background: var(--hover);
}
.sp-ic-blue {
  background: var(--blue2, #e6f1fb);
  color: var(--blue, #185fa5);
}
.sp-ic-amber {
  background: var(--amber2, #fef6e4);
  color: var(--amber3, #ef9f27);
}
.sp-hero-meta {
  font-size: 0.74rem;
  color: var(--muted);
  margin-top: 3px;
}
.sp-val-blue {
  color: var(--blue, #185fa5);
}
.sp-val-amber {
  color: var(--amber3, #ef9f27);
}
.sp-tool-btn {
  padding: 6px 12px;
  border-radius: 7px;
  border: 1px solid transparent;
  background: none;
  cursor: pointer;
  font-size: 0.78rem;
  color: var(--muted);
  transition: all 0.15s;
}
.sp-tool-btn:hover {
  background: var(--hover);
  color: var(--fg);
}
.sp-tool-active,
.sp-tool-amber-active {
  background: var(--hover);
  color: var(--fg);
  border-color: var(--border);
}
.sp-empty {
  font-size: 0.8rem;
  color: var(--muted);
  padding: 8px 0;
}
.sp-grid2-journal {
  align-items: start;
}
.sp-journal-left {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sp-journal-right {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.sp-journal-prompt {
  font-size: 0.84rem;
  color: var(--muted);
  font-style: italic;
  padding: 8px 0;
}
.sp-mood-row {
  display: flex;
  gap: 8px;
}
.sp-mood-btn {
  font-size: 1.2rem;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  border-radius: 6px;
  transition: transform 0.15s;
}
.sp-mood-btn:hover {
  transform: scale(1.2);
}
.sp-journal-input {
  width: 100%;
  min-height: 120px;
  padding: 12px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--fg);
  font-size: 0.88rem;
  resize: vertical;
  font-family: inherit;
  box-sizing: border-box;
}
.sp-journal-input:focus {
  outline: none;
  border-color: var(--blue, #185fa5);
}
.sp-input {
  width: 100%;
  padding: 9px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--fg);
  font-size: 0.84rem;
  box-sizing: border-box;
}
.sp-input:focus {
  outline: none;
  border-color: var(--teal);
}
.sp-select {
  width: 100%;
  padding: 9px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--fg);
  font-size: 0.84rem;
}
.sp-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 5px;
}
.sp-tab-amber.on {
  border-bottom-color: var(--amber3, #ef9f27);
  color: var(--fg);
}

/* ═══════════════════════════════════════════════════════════════
   ACADEMIC SPACE  (#panel-academic)
   ═══════════════════════════════════════════════════════════════ */
#panel-academic {
  --bg-card: var(--card);
  --border-color: var(--border);
  --text-primary: var(--text);
  --text-secondary: var(--muted);
  --text-muted: var(--text4);
  --acad-accent: var(--teal);
  --acad-accent-soft: var(--teal2);
  --acad-accent-line: var(--teal3);
  --acad-grad: linear-gradient(135deg, var(--teal), var(--accent2));
}

.acad-role-card {
  background: var(--card);
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  cursor: pointer;
  transition:
    border-color 0.15s,
    background 0.15s;
  text-align: center;
}
.acad-role-card:hover {
  border-color: var(--border2);
  background: rgba(127, 127, 127, 0.04);
}
.acad-role-card--active {
  border-color: var(--teal);
  background: var(--teal2);
}
.acad-role-icon {
  font-size: 28px;
  margin-bottom: 6px;
}
.acad-role-name {
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 4px;
}
.acad-role-desc {
  font-size: 11px;
  color: var(--muted);
  line-height: 1.4;
}

.acad-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 0 10px;
  flex-wrap: wrap;
  gap: 10px;
  border-bottom: 1px solid var(--border-color);
  margin-bottom: 16px;
}
.acad-topbar-left {
  display: flex;
  align-items: center;
  gap: 10px;
}
.acad-topbar-right {
  display: flex;
  align-items: center;
  gap: 8px;
}
.acad-role-pill {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(127, 127, 127, 0.08);
  border: 1px solid var(--border-color);
  font-size: 11px;
  font-weight: 700;
  color: var(--text-secondary);
}
.acad-role-pill--lecturer {
  background: var(--purple2);
  color: var(--purple);
  border-color: var(--purple3);
}
.acad-role-pill--student {
  background: var(--teal2);
  color: var(--teal);
  border-color: var(--teal3);
}
.acad-space-name-label {
  font-size: 16px;
  font-weight: 800;
  color: var(--text-primary);
}
.acad-search-bar {
  display: flex;
  align-items: center;
  gap: 7px;
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 0 12px;
  height: 32px;
}
.acad-search-bar input {
  background: transparent;
  border: none;
  outline: none;
  color: var(--text-primary);
  font-size: 12px;
  width: 180px;
  font-family: inherit;
}
.acad-search-bar input::placeholder {
  color: var(--text-muted);
}
.acad-topbar-btn {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--text-secondary);
  font-size: 15px;
  transition: background 0.15s;
  font-family: inherit;
}
.acad-topbar-btn:hover {
  background: rgba(127, 127, 127, 0.08);
  color: var(--text-primary);
}

.acad-welcome-banner {
  background: var(--acad-grad);
  border-radius: 14px;
  padding: 22px 28px;
  position: relative;
  overflow: hidden;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.acad-welcome-banner::before {
  content: "";
  position: absolute;
  top: -40px;
  right: -40px;
  width: 220px;
  height: 220px;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 50%;
  pointer-events: none;
}
.acad-welcome-eyebrow {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: rgba(255, 255, 255, 0.7);
  text-transform: uppercase;
  margin-bottom: 6px;
}
.acad-welcome-headline {
  font-size: 17px;
  font-weight: 700;
  color: #fff;
  line-height: 1.35;
}
.acad-welcome-sub {
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.7);
  margin-top: 4px;
}
.acad-welcome-ctas {
  display: flex;
  gap: 8px;
  margin-top: 12px;
  flex-wrap: wrap;
}
.acad-welcome-stat-cluster {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  z-index: 1;
}

.acad-metric-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}
.acad-metric-card {
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 14px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: border-color 0.15s;
}
.acad-metric-card:hover {
  border-color: var(--border2);
}
.acad-metric-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
}
.acad-icon-teal {
  background: var(--teal2);
  color: var(--teal);
}
.acad-icon-purple {
  background: var(--purple2);
  color: var(--purple);
}
.acad-icon-orange {
  background: var(--amber2);
  color: var(--amber3);
}
.acad-icon-gold {
  background: var(--amber2);
  color: var(--amber3);
}
.acad-metric-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  text-transform: uppercase;
}
.acad-metric-value {
  font-size: 24px;
  font-weight: 800;
  color: var(--text-primary);
  letter-spacing: -0.5px;
  line-height: 1;
}
.acad-metric-value span {
  font-size: 13px;
  font-weight: 500;
  color: var(--text-secondary);
}

.acad-tab-bar {
  display: flex;
  gap: 2px;
  padding: 0 16px;
  border-bottom: 1px solid var(--border);
  overflow-x: auto;
  flex-shrink: 0;
  scrollbar-width: none;
  background: transparent;
  border-radius: 0;
}
.acad-tab-bar::-webkit-scrollbar {
  display: none;
}
.acad-tab {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 10px 14px;
  border: none;
  border-radius: 0;
  background: transparent;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition:
    color 0.18s ease,
    border-color 0.18s ease;
}
.acad-tab:hover:not(.active) {
  color: var(--fg);
  background: transparent;
}
.acad-tab.active {
  background: transparent;
  border: none;
  border-bottom: 2px solid var(--acad-accent);
  color: var(--acad-accent);
  font-weight: 600;
  border-radius: 0;
}
.acad-tab-content {
  animation: acadFadeIn 0.18s ease;
}
@keyframes acadFadeIn {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.acad-tab-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  gap: 8px;
  flex-wrap: wrap;
}
.acad-segment-ctrl {
  display: flex;
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 3px;
  gap: 2px;
}
.acad-seg {
  padding: 5px 14px;
  border-radius: 6px;
  font-size: 11.5px;
  font-weight: 500;
  color: var(--text-secondary);
  background: transparent;
  border: none;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.15s;
}
.acad-seg.active {
  background: var(--acad-accent-soft);
  color: var(--acad-accent);
  font-weight: 600;
}

.acad-card {
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 14px;
  overflow: hidden;
}
.acad-card-header {
  padding: 13px 16px 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--border-color);
  flex-wrap: wrap;
  gap: 6px;
}
.acad-card-title {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--text-primary);
}
.acad-card-badge {
  font-size: 9.5px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 4px;
  background: var(--acad-accent-soft);
  color: var(--acad-accent);
  border: 1px solid var(--acad-accent-line);
}
.acad-badge-red {
  background: var(--red2);
  color: var(--red3);
  border: 1px solid var(--red2);
}
.acad-card-body {
  padding: 14px 16px;
}
.acad-ai-badge {
  font-size: 9px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 4px;
  background: var(--acad-grad);
  color: #fff;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.acad-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.acad-split-3 {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 14px;
}
.acad-col-span-1 {
  grid-column: span 1;
}
.acad-col-span-2 {
  grid-column: span 2;
}
.acad-col-span-full {
  grid-column: 1/-1;
}

.acad-btn-teal {
  padding: 7px 16px;
  background: var(--acad-accent-soft);
  border: 1px solid var(--acad-accent-line);
  border-radius: 8px;
  color: var(--acad-accent);
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
  font-family: inherit;
}
.acad-btn-teal:hover {
  background: var(--acad-accent-line);
}
.acad-btn-ghost {
  padding: 7px 14px;
  background: transparent;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  color: var(--text-secondary);
  font-size: 11.5px;
  cursor: pointer;
  transition: background 0.15s;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.acad-btn-ghost:hover {
  background: rgba(127, 127, 127, 0.06);
  color: var(--text-primary);
}
.acad-btn-sm {
  padding: 4px 10px !important;
  font-size: 10.5px !important;
}
.acad-generate-btn {
  width: 100%;
  padding: 11px;
  background: var(--acad-grad);
  border: none;
  border-radius: 10px;
  font-size: 12.5px;
  font-weight: 700;
  color: #fff;
  cursor: pointer;
  margin-bottom: 12px;
  transition: opacity 0.15s;
  font-family: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}
.acad-generate-btn:hover {
  opacity: 0.9;
}
.acad-generate-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.acad-action-btn {
  font-size: 10px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid var(--border-color);
  color: var(--text-secondary);
  background: rgba(127, 127, 127, 0.05);
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.acad-action-btn:hover {
  border-color: var(--acad-accent);
  color: var(--acad-accent);
}
.acad-action-btn--teal {
  border-color: var(--acad-accent-line);
  color: var(--acad-accent);
  background: var(--acad-accent-soft);
}
.acad-action-btn--red {
  border-color: var(--red2);
  color: var(--red3);
  background: var(--red2);
}
.acad-action-btn--orange {
  border-color: var(--amber2);
  color: var(--amber3);
  background: var(--amber2);
}

.acad-tag {
  font-size: 9.5px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 4px;
}
.acad-tag--red {
  background: var(--red2);
  color: var(--red3);
  border: 1px solid var(--red2);
}
.acad-tag--orange {
  background: var(--amber2);
  color: var(--amber3);
  border: 1px solid var(--amber2);
}
.acad-tag--blue {
  background: var(--blue2);
  color: var(--blue);
  border: 1px solid var(--blue2);
}
.acad-tag--teal {
  background: var(--teal2);
  color: var(--teal);
  border: 1px solid var(--teal3);
}
.acad-tag--purple {
  background: var(--purple2);
  color: var(--purple);
  border: 1px solid var(--purple3);
}

.acad-priority-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border-color);
}
.acad-priority-item:last-child {
  border-bottom: none;
}
.acad-priority-meta {
  flex: 1;
}
.acad-priority-title {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.3;
}
.acad-priority-title--done {
  text-decoration: line-through;
  opacity: 0.5;
}
.acad-priority-sub {
  font-size: 10.5px;
  color: var(--text-secondary);
  margin-top: 2px;
}
.acad-priority-tags {
  display: flex;
  gap: 5px;
  margin-top: 5px;
  flex-wrap: wrap;
}
.acad-priority-actions {
  display: flex;
  gap: 5px;
  margin-top: 7px;
  flex-wrap: wrap;
}

.acad-checkbox {
  width: 16px;
  height: 16px;
  border-radius: 4px;
  border: 1.5px solid var(--border2);
  flex-shrink: 0;
  margin-top: 1px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  color: #fff;
  transition: background 0.15s;
  user-select: none;
}
.acad-checkbox--checked {
  background: var(--acad-accent);
  border-color: var(--acad-accent);
}

.acad-brief-desc {
  font-size: 11px;
  color: var(--text-muted);
  line-height: 1.5;
  margin-bottom: 12px;
}
.acad-ai-result {
  background: rgba(127, 127, 127, 0.04);
  border-radius: 10px;
  border: 1px solid var(--border-color);
  overflow: hidden;
}
.acad-ai-result-header {
  padding: 9px 14px;
  background: var(--acad-accent-soft);
  border-bottom: 1px solid var(--border-color);
  display: flex;
  align-items: center;
  gap: 8px;
}
.acad-ai-dot {
  width: 6px;
  height: 6px;
  background: var(--acad-accent);
  border-radius: 50%;
  animation: acadPulse 2s infinite;
}
@keyframes acadPulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.4;
  }
}
.acad-ai-result-title {
  font-size: 11px;
  font-weight: 700;
  color: var(--acad-accent);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.acad-ai-section {
  padding: 10px 14px;
  border-bottom: 1px solid var(--border-color);
}
.acad-ai-section:last-child {
  border-bottom: none;
}
.acad-ai-section-text {
  font-size: 11.5px;
  color: var(--text-secondary);
  line-height: 1.55;
}
.acad-ai-textarea {
  width: 100%;
  background: rgba(127, 127, 127, 0.05);
  border: 1px solid var(--border-color);
  border-radius: 9px;
  padding: 10px 14px;
  color: var(--text-primary);
  font-size: 12px;
  font-family: inherit;
  outline: none;
  resize: vertical;
  min-height: 80px;
  margin-bottom: 10px;
  transition: border-color 0.15s;
}
.acad-ai-textarea:focus {
  border-color: var(--acad-accent);
}
.acad-label {
  font-size: 10.5px;
  font-weight: 600;
  color: var(--text-muted);
  display: block;
  margin-bottom: 5px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.acad-data-grid {
  width: 100%;
  border-collapse: collapse;
  font-size: 11.5px;
}
.acad-data-grid th {
  text-align: left;
  padding: 9px 14px;
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  text-transform: uppercase;
  border-bottom: 1px solid var(--border-color);
  background: rgba(127, 127, 127, 0.03);
}
.acad-data-grid td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--border-color);
  color: var(--text-secondary);
  vertical-align: middle;
}
.acad-data-grid tr:last-child td {
  border-bottom: none;
}
.acad-data-grid tr:hover td {
  background: rgba(127, 127, 127, 0.03);
}
.acad-table-empty {
  text-align: center;
  padding: 32px;
  color: var(--text-muted);
  font-size: 12px;
}
.acad-module-name {
  font-weight: 600;
  color: var(--text-primary);
  font-size: 12px;
}
.acad-module-code {
  font-size: 10px;
  font-family: monospace;
  background: rgba(127, 127, 127, 0.06);
  padding: 2px 6px;
  border-radius: 4px;
  color: var(--text-secondary);
  border: 1px solid var(--border-color);
}
.acad-attend-bar {
  width: 56px;
  height: 5px;
  background: var(--border);
  border-radius: 3px;
  overflow: hidden;
  display: inline-block;
  vertical-align: middle;
}
.acad-attend-fill {
  height: 100%;
  border-radius: 3px;
}
.acad-webhook-btn {
  width: 24px;
  height: 24px;
  background: var(--acad-accent-soft);
  border: 1px solid var(--acad-accent-line);
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--acad-accent);
  font-size: 11px;
  text-decoration: none;
}

.acad-course-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
}
.acad-course-card {
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 14px;
  padding: 16px;
  cursor: pointer;
  transition:
    border-color 0.15s,
    transform 0.1s;
}
.acad-course-card:hover {
  border-color: var(--border2);
  transform: translateY(-2px);
}
.acad-course-card--add {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-style: dashed;
  color: var(--text-muted);
  font-size: 12px;
  min-height: 120px;
}
.acad-course-card--add:hover {
  border-color: var(--acad-accent);
  color: var(--acad-accent);
}
.acad-course-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 6px;
}
.acad-course-name {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.3;
}
.acad-course-meta {
  display: flex;
  gap: 10px;
  font-size: 11px;
  color: var(--text-muted);
}
.acad-course-meta span {
  display: flex;
  align-items: center;
  gap: 4px;
}

.acad-kanban {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  min-height: 320px;
}
.acad-kanban-col {
  background: rgba(127, 127, 127, 0.03);
  border-radius: 12px;
  border: 1px solid var(--border-color);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.acad-kanban-col-header {
  padding: 10px 12px;
  border-bottom: 1px solid var(--border-color);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}
.acad-col-title {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 5px;
}
.acad-col-count {
  font-size: 10px;
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  color: var(--text-muted);
  padding: 1px 6px;
  border-radius: 4px;
  font-weight: 600;
}
.acad-col-count--teal {
  color: var(--acad-accent);
  border-color: var(--acad-accent-line);
  background: var(--acad-accent-soft);
}
.acad-kanban-cards {
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
}
.acad-kanban-card {
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 9px;
  padding: 10px;
  cursor: pointer;
  transition:
    border-color 0.15s,
    transform 0.1s;
}
.acad-kanban-card:hover {
  border-color: var(--border2);
  transform: translateY(-1px);
}
.acad-kcard-title {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.35;
  margin-bottom: 6px;
}
.acad-kcard-tags {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}
.acad-kcard-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.acad-kcard-weight {
  font-size: 10px;
  color: var(--text-muted);
}
.acad-col-add {
  padding: 8px;
  border-top: 1px solid var(--border-color);
}
.acad-add-card-btn {
  width: 100%;
  padding: 5px;
  border: 1px dashed var(--border2);
  border-radius: 7px;
  background: transparent;
  color: var(--text-muted);
  font-size: 11px;
  cursor: pointer;
  transition:
    border-color 0.15s,
    color 0.15s;
  font-family: inherit;
}
.acad-add-card-btn:hover {
  border-color: var(--acad-accent);
  color: var(--acad-accent);
}

.acad-research-layout {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 14px;
}
.acad-research-input-row {
  display: flex;
  gap: 8px;
  margin-bottom: 8px;
}
.acad-research-input {
  flex: 1;
  background: rgba(127, 127, 127, 0.05);
  border: 1px solid var(--border-color);
  border-radius: 9px;
  padding: 9px 14px;
  color: var(--text-primary);
  font-size: 12px;
  font-family: inherit;
  outline: none;
  transition: border-color 0.15s;
}
.acad-research-input:focus {
  border-color: var(--acad-accent);
}
.acad-research-input::placeholder {
  color: var(--text-muted);
}
.acad-research-btn {
  padding: 9px 16px;
  background: var(--acad-grad);
  border: none;
  border-radius: 9px;
  color: #fff;
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  display: flex;
  align-items: center;
  gap: 5px;
}
.acad-cite-format-row {
  display: flex;
  gap: 5px;
  align-items: center;
  flex-wrap: wrap;
}
.acad-format-btn {
  font-size: 10px;
  padding: 3px 9px;
  background: rgba(127, 127, 127, 0.05);
  border: 1px solid var(--border-color);
  border-radius: 5px;
  color: var(--text-secondary);
  cursor: pointer;
  font-family: inherit;
  transition: all 0.15s;
}
.acad-format-btn.active {
  background: var(--acad-accent-soft);
  border-color: var(--acad-accent-line);
  color: var(--acad-accent);
}
.acad-citation-item {
  background: rgba(127, 127, 127, 0.04);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 8px;
  transition: border-color 0.15s;
}
.acad-citation-item:hover {
  border-color: var(--border2);
}
.acad-citation-title {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 5px;
}
.acad-citation-ref {
  font-size: 10px;
  color: var(--text-muted);
  font-family: monospace;
  background: rgba(127, 127, 127, 0.04);
  border: 1px solid var(--border-color);
  padding: 5px 8px;
  border-radius: 5px;
  line-height: 1.5;
  margin-top: 4px;
  word-break: break-word;
}
.acad-citation-footer {
  display: flex;
  gap: 6px;
  margin-top: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.acad-source-badge {
  font-size: 9.5px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 4px;
}
.acad-source-badge--teal {
  background: var(--teal2);
  color: var(--teal);
  border: 1px solid var(--teal3);
}
.acad-source-badge--purple {
  background: var(--purple2);
  color: var(--purple);
  border: 1px solid var(--purple3);
}
.acad-stat-row {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: var(--text-secondary);
  padding: 4px 0;
  border-bottom: 1px solid var(--border-color);
}
.acad-stat-row:last-child {
  border-bottom: none;
}
.acad-index-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px;
  background: rgba(127, 127, 127, 0.04);
  border-radius: 8px;
  border: 1px solid var(--border-color);
}
.acad-index-row--inactive {
  opacity: 0.5;
}
.acad-index-icon {
  font-size: 15px;
  flex-shrink: 0;
  color: var(--text-secondary);
}
.acad-index-name {
  font-size: 11px;
  font-weight: 600;
  color: var(--text-primary);
}
.acad-index-status {
  font-size: 9.5px;
  color: var(--text-muted);
}
.acad-online-dot {
  width: 7px;
  height: 7px;
  background: var(--teal3);
  border-radius: 50%;
  margin-left: auto;
  flex-shrink: 0;
}

.acad-groups-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 12px;
}
.acad-group-card {
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 14px;
  padding: 16px;
  cursor: pointer;
  transition: border-color 0.15s;
}
.acad-group-card:hover {
  border-color: var(--border2);
}
.acad-group-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 4px;
}
.acad-group-name {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-primary);
}
.acad-group-avatars {
  display: flex;
  margin: 10px 0 6px;
}
.acad-mini-avatar {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--acad-grad);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-weight: 700;
  color: #fff;
  border: 2px solid var(--bg-card);
  margin-left: -5px;
}
.acad-mini-avatar:first-child {
  margin-left: 0;
}
.acad-group-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.acad-ai-tutor-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 14px;
  align-items: start;
}
.acad-tutor-chat-card {
  display: flex;
  flex-direction: column;
}
.acad-tutor-messages {
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 340px;
  overflow-y: auto;
}
.acad-tutor-msg {
  display: flex;
  gap: 8px;
  align-items: flex-start;
}
.acad-tutor-msg--user {
  flex-direction: row-reverse;
}
.acad-tutor-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--acad-grad);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  color: #fff;
  flex-shrink: 0;
}
.acad-tutor-bubble {
  background: rgba(127, 127, 127, 0.06);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 9px 12px;
  font-size: 12px;
  color: var(--text-secondary);
  line-height: 1.5;
  max-width: 85%;
}
.acad-tutor-msg--user .acad-tutor-bubble {
  background: var(--acad-accent-soft);
  border-color: var(--acad-accent-line);
  color: var(--text-primary);
}
.acad-tutor-input-row {
  display: flex;
  gap: 8px;
  padding: 10px 16px;
  border-top: 1px solid var(--border-color);
}
.acad-tutor-quick-prompts {
  display: flex;
  gap: 5px;
  padding: 8px 16px 12px;
  flex-wrap: wrap;
  border-top: 1px solid var(--border-color);
}

.acad-pomo-mode-bar {
  display: inline-flex;
  gap: 3px;
  background: rgba(127, 127, 127, 0.05);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 3px;
  margin-bottom: 14px;
}
.acad-pomo-display {
  font-size: 48px;
  font-weight: 800;
  color: var(--text-primary);
  letter-spacing: -2px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.acad-pomo-label {
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 4px;
}
.acad-pomo-sessions {
  font-size: 10.5px;
  color: var(--text-muted);
  margin-top: 10px;
}

.acad-flashcard {
  width: 100%;
  min-height: 100px;
  cursor: pointer;
  perspective: 800px;
}
.acad-flashcard-inner {
  position: relative;
  width: 100%;
  transform-style: preserve-3d;
  transition: transform 0.4s;
}
.acad-flashcard-inner--flipped {
  transform: rotateY(180deg);
}
.acad-flashcard-front,
.acad-flashcard-back {
  backface-visibility: hidden;
  padding: 16px;
  background: rgba(127, 127, 127, 0.04);
  border-radius: 10px;
  border: 1px solid var(--border-color);
  min-height: 100px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  text-align: center;
}
.acad-flashcard-back {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  transform: rotateY(180deg);
  background: var(--acad-accent-soft);
  border-color: var(--acad-accent-line);
}
.acad-fc-label {
  font-size: 9.5px;
  font-weight: 700;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.acad-fc-text {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.4;
}
.acad-fc-hint {
  font-size: 10px;
  color: var(--text-muted);
}

.acad-deadline-strip {
  padding: 4px 0;
}
.acad-deadline-chip {
  background: rgba(127, 127, 127, 0.04);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 10px 14px;
  min-width: 100px;
  text-align: center;
  flex-shrink: 0;
}
.acad-deadline-module {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-primary);
}
.acad-deadline-date {
  font-size: 10px;
  color: var(--text-muted);
  margin-top: 2px;
}
.acad-deadline-days {
  font-size: 12px;
  font-weight: 700;
  color: var(--acad-accent);
  margin-top: 4px;
}

.acad-schedule-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 8px 0;
  border-bottom: 1px solid var(--border-color);
}
.acad-schedule-item:last-child {
  border-bottom: none;
}
.acad-schedule-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 4px;
}
.acad-ai-tools-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.acad-empty-state {
  text-align: center;
  padding: 32px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.acad-empty-state div {
  font-size: 12px;
  color: var(--text-muted);
}
.acad-search-inline {
  background: rgba(127, 127, 127, 0.05);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 7px 12px;
  color: var(--text-primary);
  font-size: 12px;
  font-family: inherit;
  outline: none;
  transition: border-color 0.15s;
}
.acad-search-inline:focus {
  border-color: var(--acad-accent);
}
.acad-select {
  background: rgba(127, 127, 127, 0.05);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  padding: 7px 10px;
  color: var(--text-secondary);
  font-size: 11.5px;
  font-family: inherit;
  outline: none;
  cursor: pointer;
}
.acad-select-sm {
  padding: 4px 8px !important;
  font-size: 10.5px !important;
}
.acad-notes-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px;
  padding: 14px 16px;
}
.acad-assess-panel {
  display: block;
}

/* ── Academic Space: Quiz Take Overlay ──────────────────────── */
.sx-overlay {
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: rgba(0, 0, 0, 0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
}
.sx-modal {
  background: var(--bg2);
  border: 1px solid var(--border-color);
  border-radius: 14px;
  width: 100%;
  max-width: 640px;
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
}
.sx-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border-color);
}
.sx-title {
  font-size: 14px;
  font-weight: 800;
  color: var(--text-primary);
  flex: 1;
}
.sx-timer {
  font-size: 12px;
  font-weight: 700;
  color: var(--acad-accent);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.sx-x {
  border: none;
  background: transparent;
  color: var(--text-secondary);
  font-size: 15px;
  cursor: pointer;
  width: 28px;
  height: 28px;
  border-radius: 7px;
  flex-shrink: 0;
}
.sx-x:hover {
  background: rgba(127, 127, 127, 0.12);
  color: var(--text-primary);
}
.sx-graded {
  margin: 10px 16px 0;
  padding: 8px 12px;
  border-radius: 9px;
  background: var(--acad-accent-soft, rgba(127, 127, 127, 0.08));
  font-size: 12px;
  color: var(--text-primary);
}
.sx-body {
  padding: 8px 16px 4px;
  overflow-y: auto;
}
.sx-q {
  padding: 12px 0;
  border-bottom: 1px solid var(--border-color);
}
.sx-q:last-child {
  border-bottom: none;
}
.sx-qn {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 7px;
  line-height: 1.4;
}
.sx-qtag {
  display: inline-block;
  margin-left: 8px;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 1px 6px;
  border-radius: 999px;
  background: var(--acad-accent-soft, rgba(127, 127, 127, 0.1));
  color: var(--acad-accent);
  vertical-align: middle;
}
.sx-opts {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sx-opt {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 10px;
  border: 1px solid var(--border-color);
  border-radius: 9px;
  cursor: pointer;
  font-size: 13px;
  color: var(--text-primary);
  transition:
    border-color 0.12s,
    background 0.12s;
}
.sx-opt:hover {
  border-color: var(--acad-accent);
}
.sx-opt input {
  accent-color: var(--acad-accent);
  flex-shrink: 0;
}
.sx-opt input:checked ~ span {
  font-weight: 600;
}
.sx-ans {
  width: 100%;
  min-height: 64px;
  resize: vertical;
  padding: 8px 10px;
  border: 1px solid var(--border-color);
  border-radius: 9px;
  background: var(--bg3);
  color: var(--text-primary);
  font-family: inherit;
  font-size: 13px;
  box-sizing: border-box;
}
.sx-ans:focus {
  outline: none;
  border-color: var(--acad-accent);
}
.sx-ans[readonly] {
  opacity: 0.85;
}
.sx-answers {
  margin: 4px 0 8px;
}
.sx-ar {
  padding: 6px 0;
}
.sx-arq {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-primary);
}
.sx-ara {
  font-size: 12px;
  color: var(--text-secondary);
  white-space: pre-wrap;
}
.sx-ara.sx-ok {
  color: var(--green3, #3fb950);
  font-weight: 600;
}
.sx-ara.sx-bad {
  color: var(--red3, #e2554f);
  font-weight: 600;
}
.sx-grade-row {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-top: 6px;
}
.sx-foot {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 16px;
  border-top: 1px solid var(--border-color);
}

/* ═══════════════════════════════════════════════════════════════
   PROFILE PANEL  (#panel-profile)
   ═══════════════════════════════════════════════════════════════ */
.profile-hero {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.profile-av-lg {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 26px;
  color: #fff;
}
.profile-hero-info {
  flex: 1;
  min-width: 0;
}
.profile-name {
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--text);
}
.profile-bio,
.profile-bio-disp {
  font-size: 0.84rem;
  color: var(--text4);
  margin-top: 4px;
  cursor: pointer;
  transition: var(--transition);
}
.profile-bio:hover,
.profile-bio-disp:hover {
  color: var(--text2);
}
.profile-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 8px;
}
.profile-tag {
  font-size: 0.72rem;
  font-weight: 600;
  padding: 2px 10px;
  border-radius: 20px;
  background: var(--teal2);
  color: var(--teal4);
}
.profile-stats-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 16px 0;
}
.profile-stat {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px 10px;
  text-align: center;
}
.profile-stat span {
  display: block;
  font-family: var(--font);
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--accent);
}
.profile-stat small {
  font-size: 0.68rem;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: 3px;
  display: block;
}
.achievements-grid {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.achieve-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 6px 12px;
  font-size: 0.78rem;
  color: var(--text2);
}
.achieve-badge .a-icon {
  font-size: 1rem;
}
.achieve-empty {
  color: var(--text4);
  font-size: 0.84rem;
}
.skills-wrap {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.skill-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 5px 12px;
  font-size: 0.8rem;
  color: var(--text2);
  font-weight: 500;
}
.skill-tag button {
  background: none;
  border: none;
  color: var(--text4);
  cursor: pointer;
  font-size: 0.8rem;
  padding: 0;
  line-height: 1;
}
.skill-tag button:hover {
  color: var(--red, #e53e3e);
}
.skill-add-btn {
  padding: 5px 14px;
  border-radius: 20px;
  border: 1px dashed var(--border);
  background: transparent;
  color: var(--text4);
  font-family: var(--font);
  font-size: 0.78rem;
  cursor: pointer;
  transition: var(--transition);
}
.skill-add-btn:hover {
  border-color: var(--teal);
  color: var(--teal4);
}

.profile-skill-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 0;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
}
.profile-skill-row:last-child {
  border-bottom: none;
}
.profile-skill-row:hover {
  opacity: 0.8;
}
.profile-post-item {
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
}
.profile-post-item:last-child {
  border-bottom: none;
}
.profile-post-body {
  font-size: 0.82rem;
  color: var(--text2);
  line-height: 1.5;
  margin-bottom: 4px;
}
.profile-post-meta {
  font-size: 0.7rem;
  color: var(--text4);
  display: flex;
  gap: 10px;
}

/* ═══════════════════════════════════════════════════════════════
   OPPORTUNITIES PANEL  (#panel-opportunities)
   ═══════════════════════════════════════════════════════════════ */
#panel-opportunities {
  overflow-y: auto;
}
.opp-filter-bar {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.opp-filter {
  padding: 5px 14px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text4);
  font-family: var(--font);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
}
.opp-filter:hover {
  border-color: var(--teal);
  color: var(--text2);
}
.opp-filter.active {
  background: var(--teal);
  color: #fff;
  border-color: var(--teal);
}
.opp-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.opp-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  cursor: pointer;
  transition: var(--transition);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.opp-card:hover {
  border-color: var(--teal);
  box-shadow: var(--shadow1);
}
.opp-card-type {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 2px 8px;
  border-radius: 20px;
  background: var(--teal2);
  color: var(--teal4);
  width: fit-content;
}
.opp-card-title {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--text);
}
.opp-card-org {
  font-size: 0.78rem;
  color: var(--text4);
}
.opp-card-desc {
  font-size: 0.8rem;
  color: var(--text2);
  line-height: 1.5;
}
.opp-card-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.opp-deadline {
  font-size: 0.72rem;
  color: var(--amber);
  font-weight: 600;
}
.opp-apply-btn {
  margin-top: auto;
  padding: 7px 14px;
  border-radius: 8px;
  border: none;
  background: var(--teal);
  color: #fff;
  font-family: var(--font);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  width: fit-content;
}
.opp-apply-btn:hover {
  opacity: 0.85;
}
.opp-empty {
  color: var(--text4);
  font-size: 0.85rem;
  padding: 40px 0;
}

/* ═══════════════════════════════════════════════════════════════
   SETTINGS PANEL  (#panel-settings)
   ═══════════════════════════════════════════════════════════════ */
.st-section {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  margin-bottom: 8px;
  overflow: hidden;
  transition: var(--transition);
}
.st-section-hd {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 14px;
  cursor: pointer;
  user-select: none;
  transition: var(--transition);
}
.st-section-hd:hover {
  background: var(--bg3);
}
.st-section-chevron {
  margin-left: auto;
  font-size: 11px;
  color: var(--text4);
  transition: transform 0.2s;
  flex-shrink: 0;
}
.st-section.open .st-section-chevron {
  transform: rotate(180deg);
}
.st-section-icon {
  width: 28px;
  height: 28px;
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
}
.st-section-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--text1);
  flex: 1;
}
.st-section-body {
  display: none;
  flex-direction: column;
  gap: 10px;
  padding: 0 14px 14px;
}
.st-section.open .st-section-body {
  display: flex;
}

.st-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 9px 14px;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--text2);
  font-family: var(--font);
  font-size: 0.82rem;
  font-weight: 500;
  cursor: pointer;
  transition: var(--transition);
  text-align: left;
}
.st-btn:hover {
  background: var(--bg2);
  border-color: var(--border2);
  color: var(--text1);
}
.st-btn.danger {
  color: var(--red3);
}
.st-btn.danger:hover {
  background: var(--red2);
  border-color: var(--red3);
}
.st-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 15px;
  color: var(--text2);
}
.st-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.st-input {
  width: 100%;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 8px 11px;
  color: var(--text1);
  font-size: 0.88rem;
  outline: none;
  transition: var(--transition);
  font-family: var(--font);
}
.st-input:focus {
  border-color: var(--teal);
  background: var(--bg2);
}
.st-toggle {
  width: 36px;
  height: 20px;
  border-radius: 10px;
  background: var(--border2);
  position: relative;
  cursor: pointer;
  border: none;
  transition: background 0.2s;
}
.st-toggle::after {
  content: "";
  position: absolute;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  top: 2px;
  left: 2px;
  transition: left 0.2s;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}
.st-toggle.on {
  background: var(--teal);
}
.st-toggle.on::after {
  left: 18px;
}

.st-accent-dot {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  cursor: pointer;
  border: 2px solid transparent;
  transition: var(--transition);
  padding: 0;
}
.st-accent-dot.sel {
  border-color: var(--text1);
  transform: scale(1.1);
}

/* ── Settings v2: sub-nav layout ────────────────────────────── */
html {
  font-size: calc(100% * var(--font-scale, 1));
}

.st-layout {
  display: flex;
  gap: 20px;
  flex: 1;
  min-height: 0;
  padding: 18px 24px;
}
.st-subnav {
  width: 194px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-self: flex-start;
  position: sticky;
  top: 0;
}
.st-subnav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 9px 12px;
  border-radius: 10px;
  border: none;
  background: transparent;
  color: var(--text3);
  font-family: var(--font);
  font-size: 0.86rem;
  font-weight: 600;
  cursor: pointer;
  text-align: left;
  transition: var(--transition);
}
.st-subnav-item:hover {
  background: var(--bg3);
  color: var(--text1);
}
.st-subnav-item.active {
  background: var(--teal2);
  color: var(--teal);
}
.st-subnav-item i {
  font-size: 16px;
  flex-shrink: 0;
}
.st-content {
  flex: 1;
  min-width: 0;
  overflow-y: auto;
  position: relative;
  padding-right: 4px;
}
.st-content .st-section {
  scroll-margin-top: 14px;
}
.st-content .st-section-body {
  display: flex !important;
}
.st-content .st-section-chevron {
  display: none;
}
.st-content .st-section-hd {
  cursor: default;
}
.st-content .st-section-hd:hover {
  background: transparent;
}

.st-divider {
  height: 1px;
  background: var(--border);
  margin: 5px 0;
}
.st-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.st-seg {
  display: flex;
  gap: 4px;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 11px;
  padding: 3px;
}
.st-seg-btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 7px 8px;
  border-radius: 8px;
  border: none;
  background: transparent;
  color: var(--text3);
  font-family: var(--font);
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
}
.st-seg-btn:hover {
  color: var(--text1);
}
.st-seg-btn.active {
  background: var(--card);
  color: var(--teal);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
}
.st-seg-btn i {
  font-size: 15px;
}

.st-fontsize-row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.st-range {
  flex: 1;
  accent-color: var(--teal);
  cursor: pointer;
}
.st-presets {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
}

.st-wheel-wrap {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  align-items: flex-start;
  margin-top: 2px;
}
.st-wheel-col {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: center;
}
.st-wheel {
  width: 180px;
  height: 180px;
  border-radius: 50%;
  position: relative;
  cursor: crosshair;
  touch-action: none;
  flex-shrink: 0;
  background:
    radial-gradient(circle at center, #fff 0%, rgba(255, 255, 255, 0) 70%),
    conic-gradient(
      from 0deg,
      #ff0000,
      #ffff00,
      #00ff00,
      #00ffff,
      #0000ff,
      #ff00ff,
      #ff0000
    );
  box-shadow:
    inset 0 0 0 1px var(--border),
    0 4px 16px rgba(0, 0, 0, 0.15);
}
.st-wheel-thumb {
  position: absolute;
  left: 50%;
  top: 0;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2px solid #fff;
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.45),
    0 1px 4px rgba(0, 0, 0, 0.5);
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.st-light-slider {
  width: 180px;
  height: 12px;
  border-radius: 6px;
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  outline: none;
}
.st-light-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--border2);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
  cursor: pointer;
}
.st-light-slider::-moz-range-thumb {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--border2);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
  cursor: pointer;
}
.st-wheel-side {
  flex: 1;
  min-width: 170px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.st-preview {
  display: flex;
  height: 84px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--border);
}
.st-preview-sidebar {
  width: 46px;
  background: linear-gradient(160deg, var(--teal), var(--accent2));
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 0;
  align-items: center;
}
.st-preview-dot {
  width: 18px;
  height: 6px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.55);
}
.st-preview-main {
  flex: 1;
  background: var(--bg2);
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  justify-content: center;
}
.st-preview-grad {
  height: 10px;
  border-radius: 5px;
  background: var(
    --ai-grad,
    linear-gradient(135deg, var(--teal), var(--accent2))
  );
}
.st-preview-btn {
  align-self: flex-start;
  padding: 6px 16px;
  border-radius: 8px;
  border: none;
  background: var(--teal);
  color: #fff;
  font-family: var(--font);
  font-weight: 700;
  font-size: 0.78rem;
}

.st-hex-row {
  display: flex;
  align-items: center;
  gap: 6px;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 9px;
  padding: 6px 10px;
}
.st-hex-pound {
  color: var(--text4);
  font-weight: 700;
}
.st-hex-input {
  flex: 1;
  width: 100%;
  background: transparent;
  border: none;
  outline: none;
  color: var(--text1);
  font-family: monospace;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.st-eyedrop {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 24px;
  border-radius: 7px;
  cursor: pointer;
  color: var(--text3);
}
.st-eyedrop:hover {
  background: var(--bg2);
  color: var(--teal);
}
.st-reset-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 8px;
  border-radius: 9px;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text3);
  font-family: var(--font);
  font-weight: 600;
  font-size: 0.8rem;
  cursor: pointer;
  margin-top: 2px;
}
.st-reset-btn:hover {
  color: var(--text1);
  border-color: var(--border2);
}

/* ── Density: Compact ────────────────────────────────────────── */
[data-density="compact"] body {
  line-height: 1.4;
}
[data-density="compact"] .si {
  padding-top: 5px;
  padding-bottom: 5px;
}
[data-density="compact"] .st-section-body {
  gap: 7px;
  padding-bottom: 11px;
}
[data-density="compact"] .st-section-hd {
  padding: 10px 14px;
}
[data-density="compact"] .st-layout {
  padding: 12px 18px;
  gap: 14px;
}
[data-density="compact"] .view-head {
  padding: 0 16px;
}
[data-density="compact"] .card {
  padding: 13px 15px;
}
[data-density="compact"] .h-stat-card {
  padding: 13px;
  line-height: 1.35;
}
[data-density="compact"] .h-stat-grid {
  gap: 9px;
  margin-bottom: 12px;
}
[data-density="compact"] .home-wrap {
  padding: 16px;
}
[data-density="compact"] .siva-brief {
  padding: 14px 16px;
  margin-bottom: 12px;
}
[data-density="compact"] .siva-pill {
  padding: 4px 10px;
}
[data-density="compact"] .siva-pills {
  gap: 6px;
}
[data-density="compact"] .task-row {
  padding: 7px 0;
}
[data-density="compact"] .feed-card {
  padding: 10px;
  margin-bottom: 7px;
}
[data-density="compact"] .chat-msg {
  gap: 8px;
}
[data-density="compact"] .msg {
  gap: 8px;
}

/* ═══════════════════════════════════════════════════════════════
   HELP / SUPPORT PANEL
   ═══════════════════════════════════════════════════════════════ */
.help-wrap {
  max-width: 900px;
  margin: 0 auto;
  padding: 28px 20px 60px;
}
.help-hero {
  text-align: center;
  padding: 28px 0 24px;
}
.help-hero-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  margin: 0 auto 14px;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.5rem;
}
.help-hero h1 {
  font-size: 1.7rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  margin: 0 0 6px;
}
.help-hero p {
  color: var(--muted);
  margin: 0 0 18px;
}
.help-search {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text3);
  cursor: pointer;
  font-family: var(--font);
  font-size: 0.88rem;
}
.help-search kbd {
  background: var(--bg3);
  border-radius: 5px;
  padding: 1px 6px;
  font-size: 0.72rem;
}
.help-search:hover {
  border-color: var(--accent);
}
.help-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin: 8px 0 34px;
}
.help-card {
  text-align: left;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--bg2);
  cursor: pointer;
  transition: var(--transition);
  font-family: var(--font);
}
.help-card:hover {
  border-color: var(--accent);
  transform: translateY(-2px);
  box-shadow: var(--shadow);
}
.help-card-ic {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  margin-bottom: 10px;
}
.help-card-t {
  font-weight: 700;
  font-size: 0.95rem;
  margin-bottom: 3px;
  color: var(--text1);
}
.help-card-d {
  font-size: 0.8rem;
  color: var(--muted);
  line-height: 1.4;
}
.help-sec {
  margin-bottom: 32px;
}
.help-sec h2 {
  font-size: 1.1rem;
  font-weight: 800;
  margin: 0 0 14px;
}
.help-faq details {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 8px;
  background: var(--bg2);
}
.help-faq summary {
  font-weight: 600;
  font-size: 0.9rem;
  cursor: pointer;
  list-style: none;
  color: var(--text1);
}
.help-faq summary::-webkit-details-marker {
  display: none;
}
.help-faq summary::after {
  content: "+";
  float: right;
  color: var(--muted);
  font-weight: 700;
}
.help-faq details[open] summary::after {
  content: "−";
}
.help-faq p {
  color: var(--muted);
  font-size: 0.85rem;
  line-height: 1.6;
  margin: 10px 0 2px;
}
.help-contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding: 20px;
  border-radius: 16px;
  border: 1px solid var(--border);
  background: linear-gradient(135deg, var(--teal2), transparent);
}
.help-contact-t {
  font-weight: 800;
  font-size: 1.05rem;
}
.help-contact-d {
  color: var(--muted);
  font-size: 0.85rem;
}
.help-contact-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.help-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  border-radius: 10px;
  background: var(--accent);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.85rem;
  font-family: var(--font);
  border: none;
  cursor: pointer;
}
.help-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  border-radius: 10px;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text2);
  font-weight: 600;
  font-size: 0.85rem;
  font-family: var(--font);
  cursor: pointer;
}
.help-btn-ghost:hover {
  border-color: var(--accent);
  color: var(--text1);
}

/* ═══════════════════════════════════════════════════════════════
   CONTENT HUB PANEL  (#panel-contenthub)
   ═══════════════════════════════════════════════════════════════ */
.ch-platform-btn {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 10px 14px;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  transition: var(--transition);
  margin-bottom: 8px;
  font-family: var(--font);
}
.ch-platform-btn:hover {
  border-color: var(--teal);
  background: var(--teal2);
}
.ch-platform-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  flex-shrink: 0;
}
.ch-connect-badge {
  margin-left: auto;
  background: var(--teal2);
  color: var(--teal4);
  border-radius: 20px;
  padding: 2px 10px;
  font-size: 11px;
  font-weight: 600;
}
.ch-tab {
  padding: 5px 12px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text3);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  font-family: var(--font);
}
.ch-tab:hover,
.ch-tab.active {
  background: var(--teal2);
  border-color: var(--teal);
  color: var(--teal4);
}
.ch-eng-bar {
  height: 8px;
  background: var(--bg3);
  border-radius: 4px;
  overflow: hidden;
}
.ch-eng-fill {
  height: 100%;
  background: var(--teal);
  border-radius: 4px;
  transition: width 0.4s;
}

/* ═══════════════════════════════════════════════════════════════
   STUDY DECK (Lab)  (#panel-lab)
   ═══════════════════════════════════════════════════════════════ */
.lab-tab {
  padding: 5px 12px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text3);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  font-family: var(--font);
}
.lab-tab:hover,
.lab-tab.active {
  background: var(--teal2);
  border-color: var(--teal);
  color: var(--teal4);
}
.lab-content {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 14px;
  font-size: 0.87rem;
  color: var(--text2);
  line-height: 1.7;
  white-space: pre-wrap;
}

/* ═══════════════════════════════════════════════════════════════
   ANNOUNCEMENTS PANEL  (#panel-announcements)
   ═══════════════════════════════════════════════════════════════ */
.ann-compose-bar {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.ann-compose-box {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ann-title-input {
  width: 100%;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--fg);
  font-size: 0.88rem;
  font-weight: 600;
  font-family: var(--font);
}
.ann-title-input:focus {
  outline: none;
  border-color: var(--teal);
}
.ann-body-input {
  width: 100%;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--fg);
  font-size: 0.84rem;
  font-family: var(--font);
  resize: none;
  min-height: 56px;
}
.ann-body-input:focus {
  outline: none;
  border-color: var(--teal);
}
.ann-compose-footer {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-top: 4px;
}
.ann-post-btn {
  padding: 7px 18px;
  background: var(--teal);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.15s;
}
.ann-post-btn:hover {
  opacity: 0.85;
}
.ann-pin-toggle {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.78rem;
  color: var(--muted);
  cursor: pointer;
}
.ann-feed {
  flex: 1;
  overflow-y: auto;
  padding: 12px 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ann-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
}
.ann-card.pinned {
  border-color: var(--teal);
  background: var(--teal2, rgba(13, 122, 95, 0.06));
}
.ann-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.ann-pin-badge {
  font-size: 0.6rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 20px;
  background: var(--teal);
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.ann-card-title {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--fg);
  flex: 1;
}
.ann-card-body {
  font-size: 0.83rem;
  color: var(--text3);
  line-height: 1.6;
}
.ann-card-meta {
  font-size: 0.7rem;
  color: var(--muted);
  margin-top: 8px;
}
.ann-del-btn {
  background: none;
  border: none;
  color: var(--muted);
  font-size: 0.8rem;
  cursor: pointer;
  padding: 3px 6px;
  border-radius: 6px;
  transition: color 0.12s;
}
.ann-del-btn:hover {
  color: var(--coral);
}

/* ═══════════════════════════════════════════════════════════════
   WEEKLY REVIEW PANEL  (#panel-review)
   ═══════════════════════════════════════════════════════════════ */
.review-body {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
  max-width: var(--panel-max);
  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.review-stats-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.review-stat {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 18px 16px;
  text-align: center;
}
.rs-val {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--text1);
  letter-spacing: -0.04em;
  line-height: 1;
  margin-bottom: 6px;
}
.rs-lbl {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--text3);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.review-ai-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 24px;
}
.review-ai-header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
}
.review-ai-orb {
  width: 40px;
  height: 40px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--teal), var(--purple));
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1rem;
  flex-shrink: 0;
}
.review-ai-title {
  font-weight: 800;
  font-size: 1rem;
  color: var(--text1);
}
.review-ai-week {
  font-size: 0.78rem;
  color: var(--text3);
  margin-top: 2px;
  font-weight: 500;
}
.review-ai-content {
  font-size: 0.9rem;
  color: var(--text2);
  line-height: 1.75;
  white-space: pre-wrap;
}
.review-ai-content strong {
  color: var(--text1);
  font-weight: 700;
}
.review-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 60px 24px;
  gap: 12px;
}
.review-empty .es-orb {
  width: 60px;
  height: 60px;
  border-radius: 20px;
  background: var(--teal2);
  color: var(--teal);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  margin-bottom: 8px;
}
.review-empty .es-title {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--text1);
}
.review-empty .es-sub {
  font-size: 0.875rem;
  color: var(--text3);
  max-width: 400px;
  line-height: 1.6;
}
.review-empty .es-cta {
  margin-top: 8px;
  padding: 10px 22px;
  background: var(--teal);
  color: #fff;
  border: none;
  border-radius: var(--radius);
  font-family: var(--font);
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 7px;
}
.review-empty .es-cta:hover {
  opacity: 0.88;
}
#review-gen-btn i {
  margin-right: 4px;
}

/* ═══════════════════════════════════════════════════════════════
   PAYSTACK FINANCIAL DASHBOARD  (#panel-paystack)
   ═══════════════════════════════════════════════════════════════ */
.ps-tab-bar {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--border);
  overflow-x: auto;
  flex-shrink: 0;
  scrollbar-width: none;
  background: var(--bg2);
}
.ps-tab-bar::-webkit-scrollbar {
  display: none;
}
.ps-tab {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 10px 14px;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--text3);
  border: none;
  background: transparent;
  cursor: pointer;
  font-family: var(--font);
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  flex-shrink: 0;
  transition: color 0.15s;
}
.ps-tab:hover {
  color: var(--text1);
}
.ps-tab.on {
  color: var(--teal);
  border-bottom-color: var(--teal);
}

.ps-pane {
  display: none;
  flex: 1;
  flex-direction: column;
  overflow: hidden;
}
.ps-pane.on {
  display: flex;
}

.ps-loading {
  display: flex;
  align-items: center;
  gap: 8px;
  justify-content: center;
  padding: 48px 20px;
  font-size: 0.84rem;
  color: var(--text4);
}
.ps-spin {
  display: inline-block;
  width: 18px;
  height: 18px;
  vertical-align: -4px;
  -webkit-mask: url(/static/sivarrai.png) center / contain no-repeat;
  mask: url(/static/sivarrai.png) center / contain no-repeat;
  background: linear-gradient(
    115deg,
    var(--teal) 0%,
    var(--teal) 35%,
    #eafff7 50%,
    var(--teal) 65%,
    var(--teal) 100%
  );
  background-size: 280% 100%;
  background-repeat: no-repeat;
  animation:
    sivMiniSweep 1.2s linear infinite,
    sivMiniPulse 2s ease-in-out infinite;
}

.ps-stat-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-bottom: 14px;
}
.ps-stat-row-3 {
  grid-template-columns: repeat(3, 1fr);
}
.ps-stat {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px;
}
.ps-stat-green {
  border-color: var(--teal);
}
.ps-stat-lbl {
  font-size: 0.72rem;
  color: var(--text4);
  margin-bottom: 4px;
}
.ps-stat-val {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text1);
}
.ps-stat-sub {
  font-size: 0.72rem;
  margin-top: 3px;
  color: var(--text3);
}
.ps-green {
  color: var(--teal) !important;
}
.ps-amber {
  color: var(--amber3) !important;
}

.ps-grid2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 14px;
}

.ps-th-row {
  display: grid;
  gap: 8px;
  padding: 7px 16px;
  border-bottom: 1px solid var(--border);
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text4);
}
.ps-tr {
  display: grid;
  gap: 8px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--border);
  font-size: 0.8rem;
  cursor: pointer;
  transition: background 0.1s;
}
.ps-tr:last-child {
  border-bottom: none;
}
.ps-tr:hover {
  background: var(--bg3);
}
.ps-ref {
  font-family: monospace;
  font-size: 0.72rem;
  color: var(--purple);
}
.ps-cust-name {
  font-weight: 500;
  font-size: 0.82rem;
}
.ps-cust-email {
  font-size: 0.7rem;
  color: var(--text4);
}
.ps-amount {
  font-weight: 600;
}
.ps-amount-g {
  color: var(--teal);
}
.ps-amount-r {
  color: var(--red3);
}
.ps-badge {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 10px;
}
.ps-badge-s {
  background: var(--green2);
  color: var(--green3);
}
.ps-badge-f {
  background: var(--red2);
  color: var(--red3);
}
.ps-badge-w {
  background: var(--amber2);
  color: var(--amber3);
}
.ps-badge-n {
  background: var(--bg3);
  color: var(--text4);
}
.ps-badge-i {
  background: var(--blue2);
  color: var(--blue);
}

.ps-filter-bar {
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 8px 16px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.ps-select {
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text2);
  font-size: 0.78rem;
  font-family: var(--font);
  cursor: pointer;
}
.ps-select:focus {
  outline: none;
  border-color: var(--teal);
}

.ps-ch-row {
  margin-bottom: 10px;
}
.ps-ch-label {
  display: flex;
  justify-content: space-between;
  font-size: 0.78rem;
  margin-bottom: 3px;
}
.ps-ch-val {
  font-weight: 600;
}
.ps-ch-bar-bg {
  height: 5px;
  border-radius: 3px;
  background: var(--bg3);
  overflow: hidden;
}
.ps-ch-bar-fill {
  height: 100%;
  border-radius: 3px;
  background: var(--teal);
}

.ps-insights-wrap {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ps-insight {
  border-left: 3px solid;
  border-radius: 0 8px 8px 0;
  padding: 9px 12px;
  font-size: 0.8rem;
  line-height: 1.55;
}
.ps-insight-g {
  border-left-color: var(--teal);
  background: var(--teal2);
}
.ps-insight-a {
  border-left-color: var(--amber3);
  background: var(--amber2);
}
.ps-insight-b {
  border-left-color: var(--blue);
  background: var(--blue2);
}

.ps-bar-chart {
  display: flex;
  align-items: flex-end;
  gap: 5px;
  height: 80px;
  padding: 8px 0;
}
.ps-bar-wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.ps-bar {
  width: 100%;
  border-radius: 3px 3px 0 0;
  background: var(--teal);
  opacity: 0.7;
  min-height: 3px;
}
.ps-bar-lbl {
  font-size: 0.68rem;
  color: var(--text4);
  white-space: nowrap;
}

.ps-wd-row {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.78rem;
  margin-bottom: 6px;
}
.ps-wd-lbl {
  width: 28px;
  text-align: right;
  color: var(--text4);
}
.ps-wd-bar-bg {
  flex: 1;
  height: 6px;
  border-radius: 3px;
  background: var(--bg3);
  overflow: hidden;
}
.ps-wd-bar-fill {
  height: 100%;
  border-radius: 3px;
  background: var(--teal);
}
.ps-wd-val {
  width: 70px;
  text-align: right;
  font-weight: 500;
  color: var(--text1);
}

.ps-rate-row {
  margin-bottom: 10px;
}
.ps-rate-label {
  display: flex;
  justify-content: space-between;
  font-size: 0.78rem;
  margin-bottom: 4px;
}
.ps-rate-val {
  font-weight: 600;
}
.ps-rate-bg {
  height: 6px;
  border-radius: 3px;
  background: var(--bg3);
  overflow: hidden;
}
.ps-rate-fill {
  height: 100%;
  border-radius: 3px;
}

.ps-connect-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 28px;
  max-width: 400px;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.ps-connect-icon {
  width: 52px;
  height: 52px;
  border-radius: 13px;
  background: linear-gradient(135deg, #00c3f7, #0082eb);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
  color: #fff;
}
.ps-connect-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text1);
}
.ps-connect-sub {
  font-size: 0.82rem;
  color: var(--text3);
  line-height: 1.6;
  text-align: center;
}
.ps-key-perms {
  width: 100%;
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
}
.ps-perm-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.78rem;
  color: var(--text2);
  margin-bottom: 6px;
}
.ps-perm-row:last-child {
  margin-bottom: 0;
}
.ps-connected-box {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--green2);
  border: 1px solid var(--green3);
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--green3);
}
.ps-err {
  font-size: 0.78rem;
  color: var(--red3);
  padding: 6px 0;
}

/* ═══════════════════════════════════════════════════════════════
   FLASHCARDS  (#panel-flashcards)
   ═══════════════════════════════════════════════════════════════ */
.flash-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 8px 0 24px;
}
.flash-progress {
  font-size: 0.78rem;
  color: var(--text3);
  font-weight: 600;
}
.flash-progress strong {
  color: var(--teal);
}
.flash-progress-bar {
  width: 100%;
  max-width: 340px;
  height: 5px;
  background: var(--border2);
  border-radius: 3px;
  overflow: hidden;
}
.flash-progress-fill {
  height: 100%;
  background: var(--teal);
  border-radius: 3px;
  transition: width 0.4s ease;
}
.flash-card-scene {
  width: 100%;
  max-width: 360px;
  height: 200px;
  perspective: 800px;
  cursor: pointer;
}
.flash-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.flash-card-scene.flipped .flash-card-inner {
  transform: rotateY(180deg);
}
.flash-card-face {
  position: absolute;
  inset: 0;
  backface-visibility: hidden;
  border: 1.5px solid var(--border);
  border-radius: 16px;
  background: var(--surface);
  padding: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.flash-card-face.back {
  transform: rotateY(180deg);
  background: var(--teal) 10;
  border-color: var(--teal) 40;
}
.flash-card-label {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text4);
  margin-bottom: 10px;
}
.flash-card-text {
  font-size: 0.92rem;
  color: var(--text);
  line-height: 1.55;
  font-weight: 500;
}
.flash-hint {
  font-size: 0.72rem;
  color: var(--text4);
  margin-top: 8px;
}
.flash-btns {
  display: flex;
  gap: 10px;
}
.flash-btn {
  padding: 10px 24px;
  border-radius: 10px;
  border: none;
  font-family: var(--font);
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.15s;
}
.flash-btn.again {
  background: #f8717118;
  color: #f87171;
  border: 1px solid #f8717140;
}
.flash-btn.known {
  background: #22c55e18;
  color: #22c55e;
  border: 1px solid #22c55e40;
}
.flash-btn:hover {
  opacity: 0.8;
}
.flash-btn:disabled {
  opacity: 0.35;
  cursor: default;
}
.flash-done {
  text-align: center;
  padding: 20px;
}
.flash-done-emoji {
  font-size: 2.5rem;
  margin-bottom: 8px;
}
.flash-done-title {
  font-family: var(--font);
  font-size: 1rem;
  font-weight: 800;
  color: var(--text);
  margin-bottom: 4px;
}
.flash-done-sub {
  font-size: 0.82rem;
  color: var(--text3);
  margin-bottom: 14px;
}
.flash-restart-btn {
  padding: 9px 22px;
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-family: var(--font);
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
}

/* ═══════════════════════════════════════════════════════════════
   MONO INTEGRATION  (#panel-mono)
   ═══════════════════════════════════════════════════════════════ */
.mono-connect-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 20px;
  text-align: center;
  max-width: 380px;
  margin: 20px auto;
}
.mono-logo {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: #000;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 12px;
}
.mono-connect-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--fg);
  margin-bottom: 6px;
}
.mono-connect-desc {
  font-size: 0.82rem;
  color: var(--muted);
  line-height: 1.5;
  margin-bottom: 16px;
}
.mono-connect-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 22px;
  background: #000;
  color: #fff;
  border: none;
  border-radius: 9px;
  font-size: 0.84rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.15s;
}
.mono-connect-btn:hover {
  opacity: 0.8;
}
.mono-account-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 14px;
}
.mono-acc-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.mono-acc-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #000;
  color: #fff;
  font-size: 0.8rem;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
}
.mono-acc-name {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--fg);
}
.mono-acc-bank {
  font-size: 0.74rem;
  color: var(--muted);
}
.mono-bal-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid var(--border);
}
.mono-bal-label {
  font-size: 0.78rem;
  color: var(--muted);
}
.mono-bal-val {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--fg);
}
.mono-txn-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
}
.mono-txn-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid var(--border);
}
.mono-txn-row:last-child {
  border-bottom: none;
}
.mono-txn-narration {
  flex: 1;
  font-size: 0.82rem;
  color: var(--fg);
}
.mono-txn-date {
  font-size: 0.7rem;
  color: var(--muted);
}
.mono-txn-amount {
  font-size: 0.84rem;
  font-weight: 700;
}
.mono-txn-amount.credit {
  color: #22c55e;
}
.mono-txn-amount.debit {
  color: var(--coral);
}

/* ═══════════════════════════════════════════════════════════════
   CREATE SPACE MODAL  (#create-space-modal)
   ═══════════════════════════════════════════════════════════════ */
.csp-overlay {
  position: fixed;
  inset: 0;
  z-index: 9000;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.csp-modal {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 18px;
  width: 100%;
  max-width: 460px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.18);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.csp-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px 14px;
  border-bottom: 1px solid var(--border);
}
.csp-head h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--fg);
  margin: 0;
}
.csp-head button {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--muted);
  font-size: 1.1rem;
  padding: 4px;
  border-radius: 6px;
}
.csp-head button:hover {
  background: var(--hover);
  color: var(--fg);
}
.csp-body {
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.csp-label {
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 4px;
}
.csp-name-input {
  width: 100%;
  padding: 9px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--fg);
  font-size: 0.88rem;
  box-sizing: border-box;
}
.csp-name-input:focus {
  outline: none;
  border-color: var(--teal);
}
.csp-types {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.csp-type {
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 14px 10px;
  text-align: center;
  cursor: pointer;
  transition: all 0.15s;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.csp-type:hover {
  border-color: var(--teal);
  background: var(--hover);
}
.csp-type.selected {
  border-color: var(--teal);
  background: var(--teal2);
}
.csp-type-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
}
.csp-type-name {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--fg);
}
.csp-type-desc {
  font-size: 0.66rem;
  color: var(--muted);
  line-height: 1.3;
}
.csp-type[data-type="personal"] .csp-type-icon {
  background: var(--blue2, #e6f1fb);
}
.csp-type[data-type="org"] .csp-type-icon {
  background: var(--teal2);
}
.csp-type[data-type="academic"] .csp-type-icon {
  background: var(--amber2, #fef6e4);
}
.csp-type[data-type="personal"].selected {
  border-color: var(--blue, #185fa5);
  background: var(--blue2, #e6f1fb);
}
.csp-type[data-type="org"].selected {
  border-color: var(--teal);
  background: var(--teal2);
}
.csp-type[data-type="academic"].selected {
  border-color: var(--amber3, #ef9f27);
  background: var(--amber2, #fef6e4);
}

.csp-footer {
  padding: 14px 20px;
  border-top: 1px solid var(--border);
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}
.csp-btn-cancel {
  padding: 8px 18px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: none;
  cursor: pointer;
  font-size: 0.84rem;
  color: var(--fg);
}
.csp-btn-cancel:hover {
  background: var(--hover);
}
.csp-btn-create {
  padding: 8px 20px;
  border-radius: 8px;
  border: none;
  background: var(--teal);
  color: #fff;
  cursor: pointer;
  font-size: 0.84rem;
  font-weight: 700;
}
.csp-btn-create:hover {
  background: var(--teal4);
}
.csp-sub {
  font-size: 0.82rem;
  color: var(--muted);
  padding: 0 20px 12px;
  margin: 0;
}
.csp-close {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--muted);
  font-size: 1.1rem;
  padding: 4px;
  border-radius: 6px;
}
.csp-close:hover {
  background: var(--hover);
  color: var(--fg);
}

/* ═══════════════════════════════════════════════════════════════
   UNIVERSAL DIALOG MODAL  (siModal)
   ═══════════════════════════════════════════════════════════════ */
.si-modal-bg {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(6px);
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 20px;
  overflow-y: auto;
}
.si-modal-bg[style*="flex"] {
  display: flex !important;
}
.si-modal {
  position: relative;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 18px;
  width: 100%;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.4);
  animation: si-modal-in 0.18s cubic-bezier(0.34, 1.3, 0.64, 1);
  max-height: 90vh;
  overflow-y: auto;
}
.si-modal-close {
  position: absolute;
  top: 14px;
  right: 14px;
  background: var(--bg3);
  border: none;
  border-radius: 50%;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--text3);
  font-size: 0.85rem;
  z-index: 2;
}
.si-modal-close:hover {
  background: var(--border);
  color: var(--fg);
}
.si-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(6px);
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.si-modal-overlay.open {
  display: flex;
}
@keyframes si-modal-in {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.si-modal-box {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 14px;
  width: 100%;
  max-width: 420px;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.35);
  overflow: hidden;
  animation: si-modal-in 0.18s cubic-bezier(0.34, 1.3, 0.64, 1);
}
.si-modal-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px 14px;
  border-bottom: 1px solid var(--border);
}
.si-modal-title {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--text1);
}
.si-modal-x {
  width: 26px;
  height: 26px;
  border: none;
  background: none;
  color: var(--text3);
  cursor: pointer;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  transition:
    background 0.12s,
    color 0.12s;
}
.si-modal-x:hover {
  background: var(--bg3);
  color: var(--text1);
}
.si-modal-desc {
  padding: 10px 18px 0;
  font-size: 0.78rem;
  color: var(--text3);
  line-height: 1.5;
}
.si-modal-body {
  padding: 14px 18px;
}
.si-modal-form-body {
  padding: 14px 18px;
  max-height: 55vh;
  overflow-y: auto;
}
.si-modal-confirm-body {
  padding: 16px 18px 6px;
}
.si-modal-confirm-msg {
  font-size: 0.86rem;
  color: var(--text2);
  line-height: 1.65;
  margin: 0;
}
.si-modal-input {
  width: 100%;
  background: var(--bg3);
  border: 1.5px solid var(--border);
  border-radius: 8px;
  color: var(--text1);
  font-size: 0.86rem;
  padding: 9px 12px;
  outline: none;
  font-family: var(--font);
  box-sizing: border-box;
  transition: border-color 0.15s;
}
.si-modal-input:focus {
  border-color: var(--accent);
}
.si-modal-textarea {
  resize: vertical;
  min-height: 72px;
}
.si-modal-field {
  margin-bottom: 14px;
}
.si-modal-field:last-child {
  margin-bottom: 0;
}
.si-modal-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--text3);
  margin-bottom: 5px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.si-modal-emoji-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 2px;
}
.si-modal-emoji-btn {
  width: 36px;
  height: 36px;
  border: 2px solid transparent;
  background: var(--bg3);
  border-radius: 8px;
  font-size: 1.1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition:
    border-color 0.12s,
    background 0.12s;
}
.si-modal-emoji-btn:hover {
  background: var(--border);
}
.si-modal-emoji-btn.sel {
  border-color: var(--accent);
  background: var(--teal2);
}
.si-modal-ft {
  display: flex;
  gap: 8px;
  padding: 12px 18px 16px;
  border-top: 1px solid var(--border);
  justify-content: flex-end;
}
.si-modal-btn {
  padding: 8px 20px;
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  border: none;
  font-family: var(--font);
  transition:
    opacity 0.15s,
    background 0.15s;
}
.si-modal-btn-cancel {
  background: var(--bg3);
  color: var(--text2);
}
.si-modal-btn-cancel:hover {
  background: var(--border);
}
.si-modal-btn-primary {
  background: var(--accent);
  color: #fff;
}
.si-modal-btn-primary:hover {
  opacity: 0.85;
}
.si-modal-btn-primary.danger {
  background: var(--red3, #ef4444);
}

/* ═══════════════════════════════════════════════════════════════
   CONTEXT MENU  (used for spaces, etc.)
   ═══════════════════════════════════════════════════════════════ */
.ctx-menu {
  min-width: 188px;
  padding: 5px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow3);
  font-size: 13px;
  animation: ctxMenuIn 0.12s ease;
}
@keyframes ctxMenuIn {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.ctx-item {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 10px;
  border-radius: 6px;
  color: var(--text2);
  cursor: pointer;
  white-space: nowrap;
  transition:
    background 0.12s,
    color 0.12s;
}
.ctx-item:hover {
  background: var(--bg3);
  color: var(--text);
}
.ctx-item i {
  font-size: 15px;
  color: var(--text4);
  flex-shrink: 0;
}
.ctx-item:hover i {
  color: var(--text2);
}
.ctx-item.ctx-danger {
  color: var(--red, #ef4444);
}
.ctx-item.ctx-danger:hover {
  background: rgba(239, 68, 68, 0.12);
  color: var(--red, #ef4444);
}
.ctx-item.ctx-danger i {
  color: var(--red, #ef4444);
}

/* ═══════════════════════════════════════════════════════════════
   ANALYTICS DASHBOARD  (#panel-analytics)
   ═══════════════════════════════════════════════════════════════ */
.analytics-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 20px;
}
.an-stat-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  text-align: center;
}
.an-stat-val {
  font-size: 1.8rem;
  font-weight: 800;
  color: var(--fg);
}
.an-stat-lbl {
  font-size: 0.72rem;
  color: var(--muted);
  margin-top: 3px;
}
.an-stat-teal .an-stat-val {
  color: var(--teal);
}
.an-chart-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 16px;
}
.an-chart-title {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--fg);
  margin-bottom: 14px;
}
.an-bar-chart {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  height: 100px;
}
.an-bar-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.an-bar-fill {
  width: 100%;
  border-radius: 4px 4px 0 0;
  background: var(--teal2);
  border-top: 2px solid var(--teal);
  min-height: 3px;
  transition: height 0.4s;
}
.an-bar-lbl {
  font-size: 0.6rem;
  color: var(--muted);
}
.an-status-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.an-status-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.an-status-label {
  font-size: 0.8rem;
  color: var(--fg);
  min-width: 80px;
}
.an-status-bar-wrap {
  flex: 1;
  height: 8px;
  background: var(--surface2);
  border-radius: 4px;
  overflow: hidden;
}
.an-status-bar-fill {
  height: 100%;
  border-radius: 4px;
  transition: width 0.4s;
}
.an-status-bar-fill.todo {
  background: var(--muted);
}
.an-status-bar-fill.inprog {
  background: var(--teal);
}
.an-status-bar-fill.done {
  background: #22c55e;
}
.an-status-bar-fill.blocked {
  background: var(--coral);
}
.an-status-count {
  font-size: 0.72rem;
  color: var(--muted);
  min-width: 30px;
  text-align: right;
}

/* ═══════════════════════════════════════════════════════════════
   SKELETON LOADING SYSTEM
   ═══════════════════════════════════════════════════════════════ */
@keyframes sk-sweep {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
.sk {
  display: block;
  background: linear-gradient(
    90deg,
    var(--surface2, #1a1a2e) 25%,
    color-mix(in srgb, var(--accent, #7c6fff) 12%, var(--surface2, #1a1a2e)) 50%,
    var(--surface2, #1a1a2e) 75%
  );
  background-size: 400% 100%;
  animation: sk-sweep 1.8s ease-in-out infinite;
  border-radius: 6px;
}
[data-theme="light"] .sk {
  background: linear-gradient(
    90deg,
    #e8e8f0 25%,
    color-mix(in srgb, var(--accent, #7c6fff) 10%, #e8e8f0) 50%,
    #e8e8f0 75%
  );
  background-size: 400% 100%;
}
.sk-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.sk-col {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.sk-block {
  display: flex;
  flex-direction: column;
  gap: 8px;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
}

.sk-goal {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 10px;
}
.sk-goal .sk-title {
  height: 13px;
  width: 58%;
  margin-bottom: 8px;
}
.sk-goal .sk-sub {
  height: 10px;
  width: 38%;
  margin-bottom: 12px;
  opacity: 0.6;
}
.sk-goal .sk-bar {
  height: 5px;
  border-radius: 3px;
  margin-bottom: 10px;
}
.sk-goal .sk-meta {
  height: 9px;
  width: 40%;
  opacity: 0.5;
}

.sk-post {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 12px;
}
.sk-post .sk-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  flex-shrink: 0;
}
.sk-post .sk-name {
  height: 11px;
  width: 38%;
  margin-bottom: 5px;
}
.sk-post .sk-time {
  height: 9px;
  width: 22%;
  opacity: 0.55;
}
.sk-post .sk-body1 {
  height: 10px;
  width: 100%;
  margin-top: 10px;
}
.sk-post .sk-body2 {
  height: 10px;
  width: 78%;
  margin-top: 5px;
  opacity: 0.75;
}
.sk-post .sk-body3 {
  height: 10px;
  width: 55%;
  margin-top: 5px;
  opacity: 0.5;
}

.sk-ann {
  border-left: 3px solid var(--border);
  padding: 10px 14px;
  margin-bottom: 10px;
}
.sk-ann .sk-atitle {
  height: 11px;
  width: 50%;
  margin-bottom: 7px;
}
.sk-ann .sk-abody1 {
  height: 9px;
  width: 85%;
  margin-bottom: 4px;
  opacity: 0.7;
}
.sk-ann .sk-abody2 {
  height: 9px;
  width: 60%;
  opacity: 0.5;
}

.sk-task {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 0;
  border-bottom: 1px solid var(--border);
}
.sk-task .sk-check {
  width: 15px;
  height: 15px;
  border-radius: 4px;
  flex-shrink: 0;
}
.sk-task .sk-label {
  height: 11px;
  flex: 1;
}
.sk-task .sk-tag {
  width: 50px;
  height: 9px;
  opacity: 0.5;
  flex-shrink: 0;
}

.sk-habit {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}
.sk-habit .sk-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  flex-shrink: 0;
}
.sk-habit .sk-hname {
  height: 12px;
  flex: 1;
}
.sk-habit .sk-dots {
  display: flex;
  gap: 4px;
}
.sk-habit .sk-dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  flex-shrink: 0;
}

.sk-cal-grid {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.sk-cal-hour {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 0;
  border-top: 1px solid var(--border);
}
.sk-cal-hour .sk-time {
  width: 42px;
  height: 9px;
  flex-shrink: 0;
  opacity: 0.45;
  margin-top: 2px;
}
.sk-cal-hour .sk-event {
  height: 28px;
  border-radius: 6px;
  flex: 1;
  opacity: 0.55;
}
.sk-cal-hour.empty .sk-event {
  opacity: 0;
}

.sk-org-wrap {
  padding: 0 0 24px;
}
.sk-org-hero {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 24px;
  border-bottom: 1px solid var(--border);
}
.sk-org-hero .sk-logo {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  flex-shrink: 0;
}
.sk-org-hero .sk-hero-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.sk-org-hero .sk-hero-name {
  height: 18px;
  width: 48%;
}
.sk-org-hero .sk-hero-meta {
  height: 11px;
  width: 30%;
  opacity: 0.55;
}
.sk-org-hero .sk-hero-btns {
  display: flex;
  gap: 8px;
}
.sk-org-hero .sk-btn {
  height: 32px;
  width: 90px;
  border-radius: 8px;
}
.sk-org-tabs {
  display: flex;
  gap: 6px;
  padding: 0 24px;
  border-bottom: 1px solid var(--border);
  height: 42px;
  align-items: flex-end;
}
.sk-org-tab {
  height: 28px;
  width: 72px;
  border-radius: 6px 6px 0 0;
  opacity: 0.45;
}
.sk-stat-row {
  display: flex;
  gap: 10px;
  padding: 16px 24px 0;
}
.sk-stat {
  flex: 1;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.sk-stat .sk-val {
  height: 22px;
  width: 50%;
}
.sk-stat .sk-lbl {
  height: 9px;
  width: 70%;
  opacity: 0.55;
}
.sk-os-grid2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 12px 24px 0;
}
.sk-os-card {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sk-os-card .sk-card-head {
  height: 12px;
  width: 45%;
  margin-bottom: 6px;
}
.sk-os-row {
  height: 10px;
  width: 100%;
}
.sk-os-row.mid {
  width: 80%;
  opacity: 0.7;
}
.sk-os-row.short {
  width: 55%;
  opacity: 0.5;
}
.sk-mem {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 24px;
  border-bottom: 1px solid var(--border);
}
.sk-mem .sk-av {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  flex-shrink: 0;
}
.sk-mem .sk-mn {
  height: 11px;
  flex: 1;
}
.sk-mem .sk-role {
  height: 9px;
  width: 60px;
  opacity: 0.5;
}

@media (prefers-reduced-motion: reduce) {
  .sk {
    animation: none;
    opacity: 0.45;
  }
} /* ═══════════════════════════════════════════════════════════════
   MODALS & OVERLAYS — recovered from original styles.css
   (missing from split during Path A restructure — restored to match _modals.html)
   ═══════════════════════════════════════════════════════════════ */

/* ── TOAST ──────────────────────────────────────── */
/* ── TOAST ─────────────────────────────────────────────────── */
.toast {
  display: none;
  position: fixed;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--bg2);
  color: var(--text1);
  border: 1px solid var(--border2);
  border-radius: 999px;
  padding: 11px 22px;
  font-size: 0.88rem;
  font-weight: 600;
  z-index: 9999;
  white-space: nowrap;
  box-shadow: var(--shadow3);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.toast.show {
  display: block;
  animation: toastIn 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

[data-theme="dark"] .toast {
  background: rgba(28, 28, 28, 0.96);
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.5);
}

/* ── COMMAND PALETTE ──────────────────────────────────────── */
.cmd-box,
#cmd-box {
  width: 100%;
  max-width: 520px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow:
    0 24px 64px rgba(0, 0, 0, 0.35),
    0 0 0 1px rgba(255, 255, 255, 0.04);
  overflow: hidden;
}

.cmd-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 9px 18px;
  cursor: pointer;
  transition: var(--transition);
  width: 100%;
  background: transparent;
  border: none;
  text-align: left;
  color: var(--text1);
  font-family: var(--font);
  border-radius: 0;
}

.cmd-item:hover,
.cmd-item.focused {
  background: var(--bg3);
}

.cmd-icon {
  font-size: 16px;
  width: 22px;
  text-align: center;
  flex-shrink: 0;
}

.cmd-item-label {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--text1);
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cmd-item-tag {
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--text3);
  background: var(--bg3);
  border: 1px solid var(--border);
  padding: 2px 9px;
  border-radius: 20px;
  flex-shrink: 0;
}

.cmd-section-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text3);
  padding: 10px 18px 4px;
}

[data-theme="dark"] .cmd-section-label {
  color: var(--text2);
}

.cmd-input-wrap {
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--border);
}

.cmd-hint {
  font-size: 0.72rem;
  color: var(--text4);
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 5px;
  padding: 2px 8px;
  margin-right: 14px;
  font-family: var(--font);
  flex-shrink: 0;
}

/* ── Cmd palette footer — keyboard shortcut hints ───────────── */
.cmd-footer {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 8px 18px;
  border-top: 1px solid var(--border);
  background: var(--bg3);
}

.cmd-footer-hint {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.7rem;
  color: var(--text4);
}

.cmd-footer-hint kbd {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--bg2);
  border: 1px solid var(--border2);
  border-radius: 4px;
  padding: 1px 6px;
  font-size: 0.7rem;
  font-family: var(--font);
  color: var(--text3);
  box-shadow: 0 1px 0 var(--border2);
}

/* ── QUICK CAPTURE MODAL ──────────────────────────────────────── */
/* ── Create-New sheet (#cn-modal-bg) ─────────────────────────────
   It had no base style, so it rendered permanently as a bar at the
   bottom of every page. Hide it; only show it as a proper bottom sheet
   when explicitly opened (⌘K → Create New). */
.cn-modal-bg {
  display: none;
}

.cn-modal-bg.open {
  display: flex;
  position: fixed;
  inset: 0;
  z-index: 9000;
  align-items: flex-end;
  justify-content: center;
  background: rgba(0, 0, 0, 0.55);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
}

.cn-modal {
  width: 100%;
  max-width: 480px;
  background: var(--card, var(--bg2));
  border: 1px solid var(--border);
  border-radius: 18px 18px 0 0;
  padding: 18px 20px calc(24px + env(safe-area-inset-bottom, 0));
  max-height: 85vh;
  overflow-y: auto;
  animation: si-modal-in 0.2s cubic-bezier(0.34, 1.3, 0.64, 1);
}

.cn-handle {
  width: 40px;
  height: 4px;
  border-radius: 2px;
  background: var(--border2, var(--border));
  margin: 0 auto 14px;
}

/* ── FOCUS MODE ──────────────────────────────────────── */
/* ── FOCUS MODE ─────────────────────────────────────────────── */
.focus-overlay {
  position: fixed;
  inset: 0;
  z-index: 2500;
  background: #0a0d14;
  display: none;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

.focus-overlay.open {
  display: flex;
}

.focus-screen {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  position: relative;
  width: 100%;
  max-width: 340px;
}

.focus-close-x {
  position: absolute;
  top: -40px;
  right: 0;
  background: rgba(255, 255, 255, 0.08);
  border: none;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  font-size: 16px;
  transition: var(--transition);
}

.focus-close-x:hover {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
}

.focus-task-name {
  font-family: var(--font);
  font-size: 0.9rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.65);
  letter-spacing: 0.02em;
  max-width: 280px;
  text-align: center;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}

.focus-ring-wrap {
  position: relative;
  width: 200px;
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.focus-svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.focus-inner {
  text-align: center;
}

.focus-time {
  font-family: var(--font);
  font-size: 2.8rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.04em;
  line-height: 1;
}

.focus-label-sm {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  margin-top: 4px;
}

.focus-controls {
  display: flex;
  align-items: center;
  gap: 16px;
}

.focus-ctrl-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  transition: var(--transition);
}

.focus-ctrl-sec {
  width: 44px;
  height: 44px;
  font-size: 16px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.6);
}

.focus-ctrl-sec:hover {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
}

.focus-ctrl-pri {
  width: 60px;
  height: 60px;
  font-size: 22px;
  background: linear-gradient(135deg, var(--teal), var(--purple));
  color: #fff;
  box-shadow: 0 0 24px rgba(13, 122, 95, 0.4);
}

.focus-ctrl-pri:hover {
  box-shadow: 0 0 32px rgba(13, 122, 95, 0.6);
}

.focus-session-dots {
  display: flex;
  gap: 8px;
  margin-top: 4px;
}

.focus-done-screen {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  max-width: 360px;
  width: 100%;
  padding: 0 20px;
}

.focus-done-emoji {
  font-size: 3rem;
}

.focus-done-title {
  font-family: var(--font);
  font-size: 1.5rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.03em;
}

.focus-done-sub {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.55);
  text-align: center;
}

.focus-done-input {
  width: 100%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius2);
  padding: 12px 14px;
  color: #fff;
  font-family: var(--font);
  font-size: 0.85rem;
  outline: none;
  resize: none;
  min-height: 80px;
  transition: var(--transition);
}

.focus-done-input::placeholder {
  color: rgba(255, 255, 255, 0.3);
}

.focus-done-input:focus {
  border-color: var(--teal);
}

.focus-done-actions {
  display: flex;
  gap: 10px;
  width: 100%;
}

/* ── NL QUICK-ADD OVERLAY ──────────────────────────────────────── */
/* ── NL Quick-Add overlay ─────────────────────────────────── */
.nl-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(4px);
  z-index: 2000;
  align-items: flex-start;
  justify-content: center;
  padding-top: 80px;
}

.nl-overlay.open {
  display: flex;
}

.nl-box {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius3);
  width: min(620px, calc(100vw - 2rem));
  box-shadow: var(--shadow3);
  animation: nlSlideIn 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);
  overflow: hidden;
}

.nl-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px 0;
}

.nl-hint {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text3);
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.nl-close {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text3);
  font-size: 1rem;
  padding: 2px 4px;
  border-radius: 6px;
}

.nl-close:hover {
  background: var(--bg3);
  color: var(--text1);
}

.nl-input-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
}

.nl-spark {
  font-size: 1.1rem;
  color: var(--teal);
  flex-shrink: 0;
}

.nl-input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  font-family: var(--font);
  font-size: 1rem;
  color: var(--text1);
  font-weight: 500;
}

.nl-input::placeholder {
  color: var(--text4);
  font-weight: 400;
  font-size: 0.9rem;
}

.nl-preview {
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
}

.nl-prev-label {
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--text4);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}

.nl-prev-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.nl-badge {
  font-size: 0.72rem;
  font-weight: 700;
  padding: 3px 9px;
  border-radius: 99px;
  background: var(--teal2);
  color: var(--teal);
  text-transform: capitalize;
}

.nl-badge.goal {
  background: var(--purple2);
  color: var(--purple);
}

.nl-badge.note {
  background: var(--bg3);
  color: var(--text2);
}

.nl-prev-title {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text1);
  flex: 1;
}

.nl-prev-meta {
  font-size: 0.78rem;
  color: var(--text3);
  font-weight: 500;
}

.nl-prev-actions {
  display: flex;
  gap: 8px;
}

.nl-btn-sec {
  flex: 1;
  padding: 9px;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: none;
  color: var(--text2);
  font-family: var(--font);
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
}

.nl-btn-sec:hover {
  background: var(--bg3);
}

.nl-btn-pri {
  flex: 2;
  padding: 9px;
  border-radius: var(--radius);
  border: none;
  background: var(--teal);
  color: #fff;
  font-family: var(--font);
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
}

.nl-btn-pri:hover {
  opacity: 0.88;
}

.nl-examples {
  display: flex;
  gap: 8px;
  padding: 12px 16px;
  flex-wrap: wrap;
}

.nl-ex-chip {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text2);
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 99px;
  padding: 5px 12px;
  cursor: pointer;
  transition: var(--transition);
  white-space: nowrap;
}

.nl-ex-chip:hover {
  background: var(--teal2);
  color: var(--teal);
  border-color: var(--teal);
}

/* ── DAILY BRIEF ──────────────────────────────────────── */
.brief-chip.streak {
  background: var(--amber2);
  border-color: var(--amber3);
  color: var(--amber);
}

.brief-chip.goal {
  background: var(--teal2);
  border-color: var(--teal);
  color: var(--teal4);
}

/* ── PAYWALL / PRICING ──────────────────────────────────────── */
/* Paywall overlay */
.paywall-overlay {
  position: absolute;
  inset: 0;
  z-index: 50;
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(2px);
}

.paywall-card {
  text-align: center;
  max-width: 340px;
  padding: 32px 28px;
  background: var(--card);
  border: 1.5px solid var(--border);
  border-radius: 18px;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.18);
}

.paywall-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: var(--teal2);
  color: var(--teal);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  margin: 0 auto 14px;
}

.paywall-card h3 {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--fg);
  margin-bottom: 8px;
}

.paywall-card p {
  font-size: 0.84rem;
  color: var(--text3);
  line-height: 1.55;
  margin-bottom: 20px;
}

.paywall-perks {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.paywall-perks li {
  font-size: 0.8rem;
  color: var(--text2);
  display: flex;
  gap: 7px;
  align-items: center;
}

.paywall-perks li::before {
  content: "✓";
  color: var(--teal);
  font-weight: 700;
  flex-shrink: 0;
}

.paywall-btn {
  width: 100%;
  padding: 10px;
  background: var(--teal);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-family: var(--font);
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
}

.paywall-btn:hover {
  opacity: 0.88;
}

.pricing-card.featured {
  border-color: var(--teal);
  background: var(--teal2);
}

.pricing-name {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--teal);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.pricing-price {
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--fg);
  line-height: 1;
}

.pricing-price span {
  font-size: 0.76rem;
  font-weight: 400;
  color: var(--muted);
}

.pricing-perks {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.pricing-perks li {
  font-size: 0.78rem;
  color: var(--text3);
  display: flex;
  gap: 6px;
  align-items: center;
}

.pricing-perks li::before {
  content: "✓";
  color: var(--teal);
  font-weight: 700;
  flex-shrink: 0;
}

.pricing-btn {
  margin-top: auto;
  padding: 9px;
  background: var(--teal);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-family: var(--font);
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.15s;
}

.pricing-btn:hover {
  opacity: 0.88;
}

.pricing-btn.free-btn {
  background: var(--bg3);
  color: var(--fg);
}

/* ── ONBOARDING ──────────────────────────────────────── */
/* ═══════════════════════════════════════════════════════════════
   ONBOARDING FLOW
   Shown once to new users after first sign-up
   ═══════════════════════════════════════════════════════════════ */
.si-onboard-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.si-ob-logo {
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--accent);
  letter-spacing: -0.03em;
  margin-bottom: 32px;
}

.si-ob-dots {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-bottom: 36px;
}

.si-ob-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--border);
  transition:
    background 0.25s,
    width 0.25s;
}

.si-ob-dot.active {
  background: var(--accent);
  width: 20px;
  border-radius: 4px;
}

.si-ob-emoji {
  font-size: 3rem;
  margin-bottom: 16px;
}

.si-ob-sub {
  font-size: 0.9rem;
  color: var(--text3);
  line-height: 1.6;
  margin-bottom: 32px;
  max-width: 380px;
  margin-left: auto;
  margin-right: auto;
}

.si-ob-role-card {
  padding: 18px 12px;
  border: 2px solid var(--border);
  border-radius: 14px;
  background: var(--bg2);
  cursor: pointer;
  transition:
    border-color 0.15s,
    background 0.15s,
    transform 0.1s;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.si-ob-role-card:hover {
  border-color: var(--accent);
  background: var(--teal2);
  transform: translateY(-2px);
}

.si-ob-role-card.sel {
  border-color: var(--accent);
  background: linear-gradient(135deg, var(--teal2), var(--accent2) 18);
  box-shadow: 0 0 0 1px var(--accent);
}

.si-ob-role-card .si-ob-role-icon {
  font-size: 2rem;
}

.si-ob-role-card .si-ob-role-label {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--text1);
}

.si-ob-role-card .si-ob-role-desc {
  font-size: 0.7rem;
  color: var(--text3);
  text-align: center;
  line-height: 1.4;
}

.si-ob-goal-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 28px;
  text-align: left;
}

.si-ob-input {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid var(--border);
  border-radius: 10px;
  background: var(--bg2);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 0.88rem;
  outline: none;
  box-sizing: border-box;
  transition: border-color 0.15s;
}

.si-ob-input:focus {
  border-color: var(--accent);
}

.si-ob-input::placeholder {
  color: var(--text4);
}

.si-ob-int-btn {
  padding: 14px 8px;
  border: 1.5px solid var(--border);
  border-radius: 12px;
  background: var(--bg2);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  transition:
    border-color 0.15s,
    background 0.15s;
  font-family: var(--font);
}

.si-ob-int-btn:hover {
  border-color: var(--accent);
  background: var(--teal2);
}

.si-ob-int-btn.done {
  border-color: var(--teal);
  background: #0fdbad12;
}

.si-ob-int-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--text2);
}

.si-ob-done-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 28px;
}

.si-ob-action-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg2);
  cursor: pointer;
  text-align: left;
  font-family: var(--font);
  transition:
    border-color 0.15s,
    background 0.15s;
}

.si-ob-action-card:hover {
  border-color: var(--accent);
  background: var(--teal2);
}

.si-ob-action-icon {
  font-size: 1.4rem;
  flex-shrink: 0;
}

.si-ob-action-label {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text1);
}

.si-ob-action-desc {
  font-size: 0.72rem;
  color: var(--text3);
  margin-top: 1px;
}

.si-ob-btn-sec {
  padding: 12px 20px;
  background: none;
  color: var(--text3);
  border: none;
  font-size: 0.82rem;
  cursor: pointer;
  font-family: var(--font);
  transition: color 0.15s;
}

.si-ob-btn-sec:hover {
  color: var(--text1);
}

.si-ob-int-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 14px 10px;
  background: var(--bg2);
  border: 2px solid var(--border);
  border-radius: 12px;
  cursor: pointer;
  transition:
    border-color 0.15s,
    background 0.15s;
  font-family: var(--font);
}

.si-ob-int-btn:hover {
  border-color: var(--teal);
  background: var(--teal2);
}

.si-ob-int-btn.done {
  border-color: #22c55e;
  background: rgba(34, 197, 94, 0.07);
}

/* ── GENERIC MODAL CHROME ──────────────────────────────────────── */
.modal-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.25rem;
}

.modal-title {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text1);
}

.modal-close {
  background: none;
  border: none;
  color: var(--text4);
  font-size: 1.1rem;
  cursor: pointer;
  padding: 4px;
  border-radius: var(--radius);
  transition: var(--transition);
}

.modal-close:hover {
  background: var(--bg3);
  color: var(--text1);
}

/* ── MISC UTILITY ──────────────────────────────────────── */
.sb-fav-empty {
  font-size: 0.74rem;
  color: var(--text4);
  padding: 4px 10px 8px;
  line-height: 1.4;
}

.fsd {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
}

.fsd.fsd-active {
  background: var(--teal3);
}

.fsd.fsd-done {
  background: rgba(255, 255, 255, 0.5);
}

.fda-sec {
  flex: 1;
  padding: 11px;
  border-radius: var(--radius);
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.7);
  font-family: var(--font);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.fda-sec:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.fda-pri {
  flex: 1;
  padding: 11px;
  border-radius: var(--radius);
  border: none;
  background: linear-gradient(135deg, var(--teal), var(--purple));
  color: #fff;
  font-family: var(--font);
  font-size: 0.82rem;
  font-weight: 700;
  cursor: pointer;
  transition: var(--transition);
}

.fda-pri:hover {
  opacity: 0.88;
}
/* ── DAILY BRIEF (full block, recovered) ────────────────────── */
.brief-overlay {
  position: fixed;
  inset: 0;
  z-index: 3000;
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(8px);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.brief-overlay.open {
  display: flex;
}

.brief-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 24px;
  padding: 22px 22px;
  max-width: 360px;
  width: min(100%, 360px);
  box-shadow: var(--shadow2);
  text-align: center;
  animation: briefIn 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes briefIn {
  from {
    opacity: 0;
    transform: translateY(20px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.brief-siva-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 16px;
}
.brief-siva-av {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--teal2), var(--purple2));
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 2px solid var(--teal);
}
.brief-siva-av img {
  width: 24px;
  height: 24px;
  object-fit: contain;
}
.brief-siva-label {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--teal);
  letter-spacing: 0.04em;
}

.brief-greeting {
  font-family: var(--font);
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--text1);
  letter-spacing: -0.04em;
  margin-bottom: 4px;
}
.brief-date-line {
  font-size: 0.8rem;
  color: var(--text3);
  margin-bottom: 16px;
}
.brief-msg {
  font-size: 0.9rem;
  color: var(--text2);
  line-height: 1.65;
  margin-bottom: 18px;
  padding: 12px 16px;
  background: var(--bg3);
  border-radius: var(--radius2);
  border: 1px solid var(--border);
  text-align: left;
}
.brief-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 20px;
  justify-content: center;
}
.brief-chip {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  border-radius: 20px;
  background: var(--bg3);
  border: 1px solid var(--border);
  font-size: 0.76rem;
  font-weight: 600;
  color: var(--text2);
}
.brief-chip.urgent {
  background: var(--red2);
  border-color: var(--red3);
  color: var(--red3);
}
.brief-chip.streak {
  background: var(--amber2);
  border-color: var(--amber3);
  color: var(--amber);
}
.brief-chip.goal {
  background: var(--teal2);
  border-color: var(--teal);
  color: var(--teal4);
}

.brief-go-btn {
  display: block;
  width: 100%;
  padding: 13px;
  border-radius: var(--radius2);
  border: none;
  background: linear-gradient(135deg, var(--accent), var(--accent2));
  color: #fff;
  font-family: var(--font);
  font-size: 0.9rem;
  font-weight: 700;
  cursor: pointer;
  transition: var(--transition);
  margin-bottom: 8px;
}
.brief-go-btn:hover {
  opacity: 0.9;
}
.brief-skip-btn {
  display: block;
  width: 100%;
  padding: 9px;
  border-radius: var(--radius2);
  border: none;
  background: none;
  color: var(--text4);
  font-family: var(--font);
  font-size: 0.8rem;
  cursor: pointer;
  transition: var(--transition);
}
.brief-skip-btn:hover {
  color: var(--text2);
}

/* ═══════════════════════════════════════════════════════════════
   PARITY PATCH — rules restored from original styles.css that were
   missing after the base/layout/panels/mobile split.
   ═══════════════════════════════════════════════════════════════ */
[data-theme="dark"] .chat-welcome-orb {
  background: linear-gradient(145deg, #1e2a3a, #0d1520);
}

.cpc-icon {
  font-size: 1rem;
  color: var(--text3);
  margin-bottom: 4px;
}

.chat-prompt-card:hover .cpc-icon {
  color: var(--teal4);
}

.chat-input:focus {
  border-color: var(--teal);
}

/* Generic overlay wrapper (feedback modal). Visibility toggled inline
   via JS (display flex/none); this provides the fixed centered backdrop. */
.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: rgba(0, 0, 0, 0.5);
  align-items: center;
  justify-content: center;
  padding: 1rem;
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}

/* ── COMMAND PALETTE ───────────────────────────────────────── */
#cmd-bg {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 5000;
  align-items: flex-start;
  justify-content: center;
  padding-top: 15vh;
}

#cmd-bg.open {
  display: flex;
  animation: fadeUp 0.15s ease;
}

#cmd-input {
  width: 100%;
  padding: 14px 18px;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--border);
  font-size: 1rem;
  color: var(--text1);
  outline: none;
  font-family: var(--font);
}

#cmd-input::placeholder {
  color: var(--text4);
}

#cmd-results {
  max-height: 360px;
  overflow-y: auto;
  padding: 4px 0;
}

/* Favourite star toggle in front of each searchable tab */
.cmd-fav {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text4);
  font-size: 15px;
  cursor: pointer;
  transition: var(--transition);
}

.cmd-fav:hover {
  color: var(--amber3, #f59e0b);
  background: rgba(245, 158, 11, 0.12);
}

.cmd-fav.on {
  color: var(--amber3, #f59e0b);
}

.cmd-fav-spacer {
  cursor: default;
  pointer-events: none;
}

.cmd-fav-spacer:hover {
  background: transparent;
  color: var(--text4);
}

.cmd-item-icon {
  font-size: 15px;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg3);
  border-radius: 8px;
  border: 1px solid var(--border);
}

.cmd-label {
  font-size: 15px;
  font-weight: 600;
  color: var(--text1);
}

.cmd-tag {
  font-size: 13px;
  color: var(--text4);
  margin-left: auto;
}

.cmd-empty {
  padding: 28px 18px;
  text-align: center;
  font-size: 0.88rem;
  color: var(--text3);
  line-height: 1.6;
}

/* ── ANNOUNCEMENT POPUP ────────────────────────────────────── */
#ann-popup {
  position: fixed;
  top: 60px;
  left: 50%;
  transform: translateX(-50%) translateY(-110%);
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  padding: 12px 16px;
  max-width: 440px;
  width: 90%;
  z-index: 500;
  box-shadow: var(--shadow2);
  transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ── SUGGEST / WEAK AREA ───────────────────────────────────── */
.suggest-txt {
  font-size: 0.82rem;
  color: var(--text3);
  margin-bottom: 0.875rem;
}

.btn-suggest {
  background: var(--teal);
  color: #fff;
  border: none;
  border-radius: var(--radius);
  padding: 9px 18px;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
  font-family: var(--font);
  transition: opacity 0.2s;
}

.btn-suggest:hover {
  opacity: 0.88;
}

/* ── STAT ROW (sidebar) ────────────────────────────────────── */
.stat-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 3px 0;
}

.stat-row .sl {
  font-size: 13px;
  color: var(--text3);
  text-transform: none;
  padding: 0;
}

.stat-row .sv {
  font-size: 14px;
  font-weight: 700;
  color: var(--text1);
}

/* ── POMODORO ──────────────────────────────────────────────── */
#timer-display {
  font-size: 52px;
  font-weight: 700;
  color: var(--teal);
  font-variant-numeric: tabular-nums;
  letter-spacing: -2px;
  margin-bottom: 16px;
  text-align: center;
}

/* ── HOME PANEL ────────────────────────────────────────────── */
#panel-home .content {
  flex: 1;
  overflow-y: auto;
}

.siva-brief::after {
  content: none;
}

/* ── INBOX PANEL ───────────────────────────────────────────── */
.inbox-wrap {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
}

.inbox-section {
  margin-bottom: 20px;
}

.inbox-section-title {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--text4);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 8px;
}

.inbox-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  margin-bottom: 6px;
  cursor: pointer;
  transition: var(--transition);
}

.inbox-item:hover {
  box-shadow: var(--shadow);
}

.inbox-item.unread {
  border-left: 3px solid var(--teal);
}

.inbox-av {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--teal), var(--purple));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  color: #fff;
  font-weight: 700;
  flex-shrink: 0;
}

.inbox-body {
  flex: 1;
}

.inbox-sender {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text1);
}

.inbox-preview {
  font-size: 0.78rem;
  color: var(--text3);
  margin-top: 2px;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.inbox-time {
  font-size: 0.7rem;
  color: var(--text4);
  flex-shrink: 0;
}

/* ── PROJECT ITEM ──────────────────────────────────────────── */
.proj-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin-bottom: 6px;
  cursor: pointer;
  transition: var(--transition);
}

.proj-item:hover {
  box-shadow: var(--shadow);
}

.health-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.proj-name {
  font-size: 0.83rem;
  color: var(--text1);
  font-weight: 500;
  flex: 1;
}

/* ── QUICK CAPTURE (cmd palette extension) ─────────────────── */
.cmd-capture-row {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  padding: 8px 12px;
  border-top: 1px solid var(--border);
  background: var(--bg3);
}

.cmd-capture-label {
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--text4);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  flex-shrink: 0;
}

.cmd-cap-btn {
  padding: 4px 10px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text2);
  font-family: var(--font);
  font-size: 0.74rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
}

.cmd-cap-btn:hover {
  background: var(--teal2);
  border-color: var(--teal);
  color: var(--teal4);
}

/* ── SPACE SWITCHER ─────────────────────────────────────────── */
.space-switcher {
  display: flex;
  gap: 4px;
  padding: 10px 12px 6px;
  border-bottom: 1px solid var(--border);
}

.ss-btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 7px 4px;
  border-radius: 8px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--text4);
  cursor: pointer;
  font-family: var(--font);
  font-size: 0.68rem;
  font-weight: 600;
  transition: var(--transition);
}

.ss-btn i {
  font-size: 14px;
}

.ss-btn:hover {
  background: var(--bg2);
  color: var(--text2);
}

.ss-btn.active {
  background: var(--teal2);
  color: var(--teal4);
  border-color: var(--teal);
}

/* ── NEW PANEL SHARED WRAPPER ───────────────────────────────── */
.np-wrap {
  max-width: 860px;
  margin: 0 auto;
  padding: 0 0 40px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.np-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}

.np-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text);
  margin: 0;
}

.np-sub {
  font-size: 0.82rem;
  color: var(--text4);
  margin: 4px 0 0;
}

.np-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border-radius: 8px;
  border: none;
  background: var(--teal);
  color: #fff;
  font-family: var(--font);
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  flex-shrink: 0;
}

.np-action-btn:hover {
  opacity: 0.88;
}

.np-section-title {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text4);
  margin-bottom: 10px;
}

/* ── TEAM DASHBOARD ─────────────────────────────────────────── */
.org-stats-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-bottom: 20px;
}

.org-stat-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px 12px;
  text-align: center;
}

.org-stat-val {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--teal4);
}

.org-stat-lbl {
  font-size: 0.72rem;
  color: var(--text4);
  margin-top: 2px;
}

.team-member-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.team-member-card {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px 14px;
}

.tm-av {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--teal), var(--accent2));
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 13px;
  color: #fff;
}

.tm-info {
  flex: 1;
  min-width: 0;
}

.tm-name {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--text);
}

.tm-role {
  font-size: 0.74rem;
  color: var(--text4);
}

.tm-badge {
  font-size: 0.68rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
  background: var(--teal2);
  color: var(--teal4);
}

.team-activity {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ta-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.ta-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 5px;
  background: var(--border);
}

.ta-text {
  font-size: 0.82rem;
  color: var(--text2);
}

/* ── TEAM CHAT ──────────────────────────────────────────────── */
.chat-panel-wrap {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-width: 800px;
  margin: 0 auto;
  width: 100%;
}

.chat-panel-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 0 14px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 12px;
}

.chat-panel-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 8px;
}

.chat-panel-badge {
  font-size: 0.72rem;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 20px;
  background: var(--bg2);
  color: var(--text4);
  border: 1px solid var(--border);
}

.chat-panel-messages {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 0 0 8px;
  min-height: 0;
}

.chat-panel-empty {
  color: var(--text4);
  font-size: 0.85rem;
  text-align: center;
  padding: 40px 0;
}

.chat-msg {
  display: flex;
  gap: 10px;
}

.chat-msg.me {
  flex-direction: row-reverse;
}

.chat-msg-av {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--teal), var(--accent2));
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 11px;
  color: #fff;
}

.chat-msg-body {
  max-width: 70%;
}

.chat-msg-meta {
  font-size: 0.68rem;
  color: var(--text4);
  margin-bottom: 3px;
}

.chat-msg.me .chat-msg-meta {
  text-align: right;
}

.chat-msg-bubble {
  padding: 8px 12px;
  border-radius: 10px;
  font-size: 0.84rem;
  background: var(--bg2);
  color: var(--text);
  border: 1px solid var(--border);
}

.chat-msg.me .chat-msg-bubble {
  background: var(--teal);
  color: #fff;
  border-color: var(--teal);
}

.chat-panel-input-row {
  display: flex;
  gap: 8px;
  padding: 10px 0 0;
  border-top: 1px solid var(--border);
  margin-top: 8px;
}

.chat-panel-input {
  flex: 1;
  padding: 9px 14px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg2);
  color: var(--text);
  font-family: var(--font);
  font-size: 0.85rem;
  outline: none;
  transition: var(--transition);
}

.chat-panel-input:focus {
  border-color: var(--teal);
}

.chat-panel-send {
  padding: 9px 16px;
  border-radius: 8px;
  border: none;
  background: var(--teal);
  color: #fff;
  cursor: pointer;
  font-size: 0.9rem;
  transition: var(--transition);
}

.chat-panel-send:hover {
  opacity: 0.85;
}

/* ── PROJECTS ───────────────────────────────────────────────── */
.projects-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 14px;
}

.projects-empty {
  color: var(--text4);
  font-size: 0.85rem;
  padding: 40px 0;
}

.project-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  cursor: pointer;
  transition: var(--transition);
  position: relative;
}

.project-card:hover {
  border-color: var(--teal);
  transform: translateY(-1px);
  box-shadow: var(--shadow1);
}

.proj-color {
  width: 100%;
  height: 4px;
  border-radius: 2px;
  margin-bottom: 12px;
}

.proj-name {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 4px;
}

.proj-desc {
  font-size: 0.78rem;
  color: var(--text4);
  margin-bottom: 10px;
}

.proj-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.proj-badge {
  font-size: 0.68rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 20px;
  background: var(--teal2);
  color: var(--teal4);
}

.proj-tasks {
  font-size: 0.72rem;
  color: var(--text4);
}

/* ── HR / PEOPLE ────────────────────────────────────────────── */
.hr-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 0;
}

.hr-tab {
  padding: 7px 16px;
  border-radius: 8px 8px 0 0;
  border: none;
  background: transparent;
  color: var(--text4);
  font-family: var(--font);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  border-bottom: 2px solid transparent;
}

.hr-tab:hover {
  color: var(--text2);
}

.hr-tab.active {
  color: var(--teal4);
  border-bottom-color: var(--teal);
}

.hr-directory-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}

.hr-member-row {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px 14px;
}

.hr-empty {
  color: var(--text4);
  font-size: 0.85rem;
  padding: 30px 0;
}

.hr-role-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}

.hr-role-badge {
  font-size: 0.72rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
}

.hr-role-desc {
  font-size: 0.82rem;
  color: var(--text2);
}

/* ── AUTOMATIONS ────────────────────────────────────────────── */
.auto-builder {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 18px;
  margin-bottom: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.auto-builder-title {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--text);
}

.auto-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.auto-label {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text4);
  width: 40px;
  flex-shrink: 0;
}

.auto-select {
  flex: 1;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
  font-size: 0.84rem;
  outline: none;
  cursor: pointer;
}

.auto-label-input {
  width: 100%;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
  font-size: 0.84rem;
  outline: none;
}

.auto-label-input:focus,
.auto-select:focus {
  border-color: var(--teal);
}

.auto-save-btn {
  padding: 8px 18px;
  border-radius: 8px;
  border: none;
  background: var(--teal);
  color: #fff;
  font-family: var(--font);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
}

.auto-save-btn:hover {
  opacity: 0.88;
}

.auto-cancel-btn {
  padding: 8px 14px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--text4);
  font-family: var(--font);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
}

.auto-cancel-btn:hover {
  border-color: var(--teal);
  color: var(--text2);
}

.auto-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.auto-empty {
  color: var(--text4);
  font-size: 0.85rem;
  padding: 24px 0;
}

.auto-rule-card {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
}

.auto-rule-icon {
  font-size: 1.1rem;
  flex-shrink: 0;
}

.auto-rule-info {
  flex: 1;
  min-width: 0;
}

.auto-rule-name {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--text);
}

.auto-rule-desc {
  font-size: 0.76rem;
  color: var(--text4);
}

.auto-rule-toggle {
  width: 34px;
  height: 18px;
  border-radius: 9px;
  cursor: pointer;
  background: var(--teal);
  border: none;
  position: relative;
  flex-shrink: 0;
  transition: var(--transition);
}

.auto-rule-toggle::after {
  content: "";
  position: absolute;
  top: 2px;
  right: 2px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #fff;
  transition: var(--transition);
}

.auto-rule-toggle.off {
  background: var(--border);
}

.auto-rule-toggle.off::after {
  right: auto;
  left: 2px;
}

/* Panels that use a narrower column feel (settings, goals, etc.) */
#panel-settings > div,
#panel-goals > div,
#panel-progress > div {
  max-width: var(--settings-max);
  margin: 0 auto;
  width: 100%;
}

/* Settings & goals scroll containers — apply lateral padding on big screens */
#panel-settings,
#panel-goals,
#panel-progress {
  overflow-y: auto;
  padding-left: max(24px, calc((100% - var(--settings-max)) / 2));
  padding-right: max(24px, calc((100% - var(--settings-max)) / 2));
}

/* Override the inline padding on the inner div so we don't double-pad */
#panel-settings > div,
#panel-goals > div,
#panel-progress > div {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Full-width panels with their own internal layout */
#panel-flux > .content,
.os-main > .os-content {
  max-width: var(--wide-max);
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

/* Standard panels that use view-head + scrollable inner div.
   The scrollable div is always the last child (after .view-head).
   --panel-max centering keeps content readable on wide screens.  */
#panel-courses > div:last-child,
#panel-lab > div:last-child,
#panel-announcements > div:last-child,
#panel-studyplan > div:last-child,
#panel-contenthub > div:last-child {
  padding-left: max(24px, calc((100% - var(--panel-max)) / 2));
  padding-right: max(24px, calc((100% - var(--panel-max)) / 2));
}

/* Legacy styles kept for backwards-compat just in case */
.os-chat-empty {
  font-size: 0.84rem;
  color: var(--muted);
  text-align: center;
  padding: 2rem 0;
}

/* Goals mini on overview */
.os-task-card .os-goal-bar-wrap {
  margin: 5px 0 2px;
  height: 4px;
}

/* ── Academic: Course cards ──────────────────────────────── */
.sp-courses-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
}

.sp-course-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  transition: box-shadow 0.15s;
}

.sp-course-card:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.sp-course-banner {
  height: 6px;
  background: var(--amber3, #ef9f27);
}

.sp-course-body {
  padding: 12px 14px;
}

.sp-course-title {
  font-size: 0.84rem;
  font-weight: 700;
  color: var(--fg);
}

.sp-course-code {
  font-size: 0.72rem;
  color: var(--muted);
  margin-top: 2px;
}

.sp-course-prog {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
}

.sp-course-bar {
  flex: 1;
  height: 4px;
  background: var(--border);
  border-radius: 2px;
  overflow: hidden;
}

.sp-course-bar-fill {
  height: 100%;
  background: var(--amber3, #ef9f27);
  border-radius: 2px;
}

.sp-course-pct {
  font-size: 0.66rem;
  color: var(--muted);
}

/* ── Academic: Flashcard ─────────────────────────────────── */
.sp-deck-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.sp-flashcard-wrap {
  width: 100%;
  max-width: 480px;
  height: 230px;
  perspective: 1000px;
  cursor: pointer;
}

.sp-flashcard {
  width: 100%;
  height: 100%;
  position: relative;
  transform-style: preserve-3d;
  transition: transform 0.5s ease;
}

.sp-flashcard.flipped {
  transform: rotateY(180deg);
}

.sp-fc-face {
  position: absolute;
  inset: 0;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 28px;
  backface-visibility: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: var(--fg);
  text-align: center;
}

.sp-fc-back {
  transform: rotateY(180deg);
}

.sp-fc-label {
  position: absolute;
  top: 10px;
  left: 14px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}

.sp-rate-row {
  display: flex;
  gap: 10px;
  justify-content: center;
}

.sp-rate-btn {
  padding: 7px 18px;
  border-radius: 8px;
  border: none;
  cursor: pointer;
  font-size: 0.8rem;
  font-weight: 600;
  transition: opacity 0.15s;
}

.sp-rate-btn:hover {
  opacity: 0.8;
}

.sp-rate-again {
  background: #fee2e2;
  color: #dc2626;
}

.sp-rate-hard {
  background: #fef3c7;
  color: #d97706;
}

.sp-rate-good {
  background: #d1fae5;
  color: #059669;
}

.sp-rate-easy {
  background: #dbeafe;
  color: #2563eb;
}

.sp-deck-nav {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.8rem;
  color: var(--muted);
}

.sp-deck-nav button {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 5px 12px;
  cursor: pointer;
  color: var(--fg);
  font-size: 0.8rem;
}

.sp-deck-nav button:hover {
  background: var(--hover);
}

/* ── Academic: Timer ─────────────────────────────────────── */
.sp-timer-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 24px 0;
}

.sp-timer-mode-row {
  display: flex;
  gap: 8px;
}

.sp-timer-mode-btn {
  padding: 6px 14px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: none;
  cursor: pointer;
  font-size: 0.78rem;
  color: var(--muted);
  transition: all 0.15s;
}

.sp-timer-mode-btn.on {
  background: var(--amber3, #ef9f27);
  border-color: var(--amber3, #ef9f27);
  color: #fff;
  font-weight: 600;
}

.sp-timer-display {
  font-size: 3.5rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--fg);
  font-variant-numeric: tabular-nums;
}

.sp-timer-controls {
  display: flex;
  gap: 12px;
}

.sp-timer-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 9px 22px;
  border-radius: 10px;
  border: none;
  cursor: pointer;
  font-size: 0.85rem;
  font-weight: 600;
  transition: opacity 0.15s;
}

.sp-timer-btn:hover {
  opacity: 0.85;
}

.sp-timer-start {
  background: var(--amber3, #ef9f27);
  color: #fff;
}

.sp-timer-reset {
  background: var(--card);
  border: 1px solid var(--border);
  color: var(--fg);
}

.sp-timer-sessions {
  font-size: 0.78rem;
  color: var(--muted);
}

/* ── Academic: Quiz ──────────────────────────────────────── */
.sp-quiz-config {
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-width: 420px;
  margin: 0 auto;
}

.sp-quiz-config select,
.sp-quiz-config input {
  width: 100%;
  padding: 9px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg);
  color: var(--fg);
  font-size: 0.84rem;
}

.sp-quiz-active {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.sp-quiz-q {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--fg);
}

.sp-quiz-opts {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.sp-quiz-opt {
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--card);
  cursor: pointer;
  font-size: 0.85rem;
  color: var(--fg);
  text-align: left;
  transition: background 0.15s;
}

.sp-quiz-opt:hover {
  background: var(--hover);
}

.sp-quiz-opt.correct {
  background: #d1fae5;
  border-color: #059669;
  color: #065f46;
}

.sp-quiz-opt.wrong {
  background: #fee2e2;
  border-color: #dc2626;
  color: #991b1b;
}

.sp-quiz-result {
  text-align: center;
  padding: 24px;
  font-size: 1rem;
  color: var(--fg);
}

/* ── Academic: Study Groups ──────────────────────────────── */
.sp-groups-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
}

.sp-group-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.sp-group-name {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--fg);
}

.sp-group-sub {
  font-size: 0.72rem;
  color: var(--muted);
}

.sp-group-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.68rem;
  padding: 3px 8px;
  border-radius: 10px;
  background: var(--amber2, #fef6e4);
  color: var(--amber3, #ef9f27);
  font-weight: 600;
  width: fit-content;
}

/* ── Academic: Planner ───────────────────────────────────── */
.sp-plan-content {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.sp-plan-week {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
}

.sp-plan-week-hd {
  padding: 10px 14px;
  font-size: 0.82rem;
  font-weight: 700;
  border-bottom: 1px solid var(--border);
  color: var(--fg);
}

.sp-plan-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  border-bottom: 1px solid var(--border);
}

.sp-plan-item:last-child {
  border-bottom: none;
}

.sp-plan-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--amber3, #ef9f27);
}

.sp-plan-text {
  font-size: 0.82rem;
  color: var(--fg);
  flex: 1;
}

.sp-plan-due {
  font-size: 0.7rem;
  color: var(--muted);
}

/* Flashcard — updated to match HTML structure */
.sp-flashcard {
  width: 100%;
  max-width: 480px;
  height: 220px;
  cursor: pointer;
  margin: 0 auto 12px;
}

.sp-flashcard-inner {
  width: 100%;
  height: 100%;
  position: relative;
  transform-style: preserve-3d;
  transition: transform 0.5s ease;
  perspective: 1000px;
}

.sp-flashcard-inner.flipped {
  transform: rotateY(180deg);
}

.sp-card-front,
.sp-card-back {
  position: absolute;
  inset: 0;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 24px 28px;
  backface-visibility: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: var(--fg);
  text-align: center;
}

.sp-card-back {
  transform: rotateY(180deg);
  background: var(--amber2, #fef6e4);
}

.sp-fc-counter {
  position: absolute;
  top: 10px;
  left: 14px;
  font-size: 0.66rem;
  color: var(--muted);
  font-weight: 600;
}

.sp-fc-question {
  font-size: 0.96rem;
  font-weight: 600;
  color: var(--fg);
}

.sp-fc-answer {
  font-size: 0.9rem;
  color: var(--fg);
}

.sp-fc-flip {
  font-size: 0.68rem;
  color: var(--muted);
  margin-top: 10px;
}

.sp-deck-rate-row {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-top: 10px;
}

.sp-deck-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 8px;
}

.sp-dstat {
  text-align: center;
}

.sp-dstat span {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--fg);
  display: block;
}

.sp-dstat small {
  font-size: 0.66rem;
  color: var(--muted);
}

/* Timer — matched to HTML classes */
.sp-timer-modes {
  display: flex;
  gap: 8px;
  justify-content: center;
}

.sp-tmode-btn {
  padding: 6px 14px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: none;
  cursor: pointer;
  font-size: 0.78rem;
  color: var(--muted);
  transition: all 0.15s;
}

.sp-tmode-btn:hover {
  background: var(--hover);
  color: var(--fg);
}

.sp-tmode-active {
  background: var(--amber3, #ef9f27);
  border-color: var(--amber3, #ef9f27);
  color: #fff;
  font-weight: 600;
}

.sp-timer-label {
  font-size: 0.78rem;
  color: var(--muted);
}

.sp-timer-btns {
  display: flex;
  gap: 12px;
}

.sp-timer-stats {
  display: flex;
  gap: 28px;
  margin-top: 6px;
}

.sp-tstat {
  text-align: center;
}

.sp-tstat-val {
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--fg);
}

.sp-tstat-lbl {
  font-size: 0.66rem;
  color: var(--muted);
  margin-top: 2px;
}

.sp-timer-start {
  background: var(--amber3, #ef9f27);
  color: #fff;
}

/* Quiz — matched to HTML classes */
.sp-quiz-wrap {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.sp-quiz-prog-bar {
  height: 5px;
  background: var(--border);
  border-radius: 3px;
  overflow: hidden;
}

.sp-quiz-counter {
  font-size: 0.72rem;
  color: var(--muted);
}

.sp-quiz-question {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--fg);
}

.sp-quiz-options {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.sp-quiz-nav {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 8px;
}

.sp-diff-row {
  display: flex;
  gap: 8px;
}

.sp-diff-btn {
  flex: 1;
  padding: 7px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: none;
  cursor: pointer;
  font-size: 0.78rem;
  color: var(--muted);
  transition: all 0.15s;
}

.sp-diff-btn:hover {
  background: var(--hover);
  color: var(--fg);
}

.sp-diff-active {
  background: var(--amber2, #fef6e4);
  border-color: var(--amber3, #ef9f27);
  color: var(--amber3, #ef9f27);
  font-weight: 700;
}

/* Academic deck filter tabs */
.sp-deck-filter {
  display: flex;
  gap: 6px;
  margin-bottom: 12px;
}

/* Insights strip */
.sp-insight-strip {
  font-size: 0.8rem;
  padding: 10px 12px;
  border-radius: 8px;
  color: var(--muted);
}

.sp-insight-amber {
  background: var(--amber2, #fef6e4);
  color: var(--amber3, #ef9f27);
}

.sp-insight-blue {
  background: var(--blue2, #e6f1fb);
  color: var(--blue, #185fa5);
}

/* Bar chart placeholder */
.sp-bar-chart {
  min-height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ═══════════════════════════════════════════════════════════
   AGENTS MARKETPLACE
═══════════════════════════════════════════════════════════ */

/* ── Sidebar badge ───────────────────────────────────────── */
.si-badge {
  font-size: 0.58rem;
  font-weight: 800;
  border-radius: 20px;
  padding: 1px 6px;
  margin-left: auto;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.si-badge--new {
  background: var(--accent);
  color: #fff;
}

.si-onboard-box {
  width: 100%;
  max-width: 540px;
  text-align: center;
  animation: si-ob-in 0.3s cubic-bezier(0.34, 1.2, 0.64, 1);
}

.si-ob-title {
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--text1);
  line-height: 1.2;
  margin-bottom: 10px;
}

.si-ob-role-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 32px;
}

.si-ob-goal-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.si-ob-select {
  width: 100%;
  padding: 11px 14px;
  border: 1.5px solid var(--border);
  border-radius: 10px;
  background: var(--bg2);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 0.88rem;
  outline: none;
  box-sizing: border-box;
  appearance: none;
}

.si-ob-skip-step {
  background: none;
  border: none;
  color: var(--text4);
  font-size: 0.78rem;
  cursor: pointer;
  font-family: var(--font);
  text-decoration: underline;
}

.si-ob-skip-step:hover {
  color: var(--text2);
}

.si-ob-int-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 28px;
}

.si-ob-int-icon {
  font-size: 1.5rem;
}

.si-ob-actions {
  display: flex;
  gap: 10px;
  justify-content: center;
  align-items: center;
}

.si-ob-btn-pri {
  padding: 12px 32px;
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-size: 0.88rem;
  font-weight: 700;
  cursor: pointer;
  font-family: var(--font);
  transition: opacity 0.15s;
}

.si-ob-btn-pri:hover {
  opacity: 0.85;
}

.si-ob-skip {
  position: absolute;
  top: 18px;
  right: 20px;
  background: none;
  border: none;
  color: var(--text4);
  font-size: 0.8rem;
  cursor: pointer;
  font-family: var(--font);
}

.si-ob-skip:hover {
  color: var(--text2);
}

.si-ob-int-icon {
  font-size: 1.5rem;
}

.ps-spin::before {
  content: none !important;
}

/* ── Stage 2: collapsible sidebar sections ── */
.sb-sec-head {
  cursor: pointer;
  user-select: none;
}

.sb-sec-caret {
  font-size: 0.8rem;
  color: var(--text4);
  transition: transform 0.18s;
}

.sb-nav-group.collapsed {
  display: none;
}

.sb-sec-caret.collapsed {
  transform: rotate(-90deg);
}

/* ── PARITY PATCH — restored @media content ── */

@media (max-width: 600px) {
  .gl-stats {
    grid-template-columns: repeat(2, 1fr);
  }

  .fin-summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .sk-summary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px) {
  #pricing-cards {
    flex-direction: column !important;
    gap: 12px !important;
  }

  .pricing-card {
    min-width: unset !important;
    max-width: 100% !important;
  }
}

@media (max-width: 700px) {
  .review-stats-row {
    grid-template-columns: repeat(2, 1fr);
  }

  .review-body {
    padding: 16px;
  }
}

@media (max-width: 800px) {
  .acad-split {
    grid-template-columns: 1fr;
  }

  .acad-ai-tools-grid {
    grid-template-columns: 1fr;
  }

  .mkt-metric-row {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 960px) {
  .acad-kanban {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 560px) {
  .acad-kanban {
    grid-template-columns: 1fr;
  }
}