/* ─────────────────────────────────────────────────────────────────────────
   ClaudioBot v2 — sistema visual
   Dark moderno · acento lima eléctrico · tipografía Geist · sin partículas
   ───────────────────────────────────────────────────────────────────────── */

:root {
  --cb-bg:        #0A0C10;
  --cb-bg-2:      #0E1117;
  --cb-surf:      #13171F;
  --cb-surf-2:    #181D27;
  --cb-line:      #1F2531;
  --cb-line-strong: #2A3140;

  --cb-text:      #E7E9EE;
  --cb-text-2:    #A8AEBC;
  --cb-text-3:    #6F7585;
  --cb-text-4:    #4A5060;

  --cb-accent:    #C5F445;
  --cb-accent-2:  #7BFF8A;
  --cb-accent-ink: #0A0C10;

  --cb-good:      #3DD68C;
  --cb-warn:      #F4B740;
  --cb-danger:    #FF6B6B;
  --cb-info:      #7BA7FF;
  --cb-muted:     #4A5060;

  --cb-radius-sm: 6px;
  --cb-radius:    10px;
  --cb-radius-lg: 16px;

  --cb-side-w:    260px;
  --cb-side-w-c:  68px;
  --cb-top-h:     56px;

  --cb-space-1:   4px;
  --cb-space-2:   8px;
  --cb-space-3:   12px;
  --cb-space-4:   16px;
  --cb-space-5:   20px;
  --cb-space-6:   24px;
  --cb-space-8:   32px;
  --cb-space-10:  40px;

  --cb-shadow:    0 1px 0 rgba(255,255,255,0.04), 0 8px 24px rgba(0,0,0,0.35);
  --cb-shadow-lg: 0 1px 0 rgba(255,255,255,0.06), 0 20px 60px rgba(0,0,0,0.55);

  --cb-font-sans: "Geist", ui-sans-serif, -apple-system, "Segoe UI", sans-serif;
  --cb-font-mono: "Geist Mono", ui-monospace, "JetBrains Mono", "SF Mono", monospace;
}

:root[data-density="compact"] {
  --cb-space-3: 8px;
  --cb-space-4: 12px;
  --cb-space-5: 14px;
  --cb-space-6: 18px;
  --cb-space-8: 22px;
}

* { box-sizing: border-box; }
html, body, #root { height: 100%; margin: 0; }
body {
  font-family: var(--cb-font-sans);
  background: var(--cb-bg);
  color: var(--cb-text);
  font-size: 13.5px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "ss01" on, "cv11" on;
}
button { font-family: inherit; cursor: pointer; }
input, textarea { font-family: inherit; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: #20262f; border-radius: 8px; }
::-webkit-scrollbar-track { background: transparent; }

.cb-mono { font-family: var(--cb-font-mono); font-feature-settings: "tnum" on; letter-spacing: -0.01em; }

/* App shell ────────────────────────────────────────────────── */
.cb-app {
  display: grid;
  grid-template-columns: var(--cb-side-w) 1fr;
  height: 100vh;
  background:
    radial-gradient(1200px 600px at -10% -10%, color-mix(in oklch, var(--cb-accent) 7%, transparent), transparent 60%),
    radial-gradient(900px 500px at 110% -20%, color-mix(in oklch, var(--cb-info) 5%, transparent), transparent 60%),
    var(--cb-bg);
}
.cb-app:has(.cb-side.is-collapsed) { grid-template-columns: var(--cb-side-w-c) 1fr; }
.cb-main { display: flex; flex-direction: column; min-width: 0; }
.cb-content { flex: 1; overflow-y: auto; overflow-x: hidden; padding: var(--cb-space-6) var(--cb-space-8) calc(var(--cb-space-10) + 40px); }
@media (max-width: 1080px) {
  .cb-content { padding: var(--cb-space-5) var(--cb-space-5); }
}

/* Sidebar ──────────────────────────────────────────────────── */
.cb-side {
  background: var(--cb-bg-2);
  border-right: 1px solid var(--cb-line);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  position: relative;
}
.cb-side__brand {
  display: flex; align-items: center; gap: 12px;
  padding: 16px 18px 14px;
  border-bottom: 1px solid var(--cb-line);
  cursor: pointer;
}
.cb-side__logo {
  width: 30px; height: 30px;
  display: grid; place-items: center;
  background: var(--cb-surf);
  border: 1px solid var(--cb-line-strong);
  border-radius: 8px;
  flex-shrink: 0;
}
.cb-side__name > div:first-child { font-weight: 600; font-size: 14px; letter-spacing: -0.02em; }
.cb-side__co { font-size: 11px; color: var(--cb-text-3); }

.cb-side.is-collapsed .cb-side__brand { justify-content: center; padding: 14px 0; }

.cb-side__nav { flex: 1; overflow-y: auto; padding: 12px 8px; }
.cb-side__group { margin-bottom: 14px; }
.cb-side__glabel {
  font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--cb-text-4); padding: 6px 12px 4px;
}
.cb-side__item {
  width: 100%;
  display: flex; align-items: center; gap: 10px;
  padding: 8px 12px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--cb-text-2);
  font-size: 13px;
  text-align: left;
  position: relative;
  transition: background .15s, color .15s, border-color .15s;
}
.cb-side__item:hover { background: var(--cb-surf); color: var(--cb-text); }
.cb-side__item.is-active {
  background: color-mix(in oklch, var(--cb-accent) 12%, var(--cb-surf));
  color: var(--cb-text);
  border-color: color-mix(in oklch, var(--cb-accent) 30%, transparent);
}
.cb-side__item.is-active::before {
  content: ""; position: absolute; left: -4px; top: 8px; bottom: 8px;
  width: 3px; background: var(--cb-accent); border-radius: 2px;
}
.cb-side__label { flex: 1; }
.cb-side__phase {
  font-family: var(--cb-font-mono); font-size: 10px;
  color: var(--cb-text-4);
  padding: 1px 5px;
  background: var(--cb-bg);
  border: 1px solid var(--cb-line);
  border-radius: 4px;
}
.cb-side__dot {
  position: absolute; top: 8px; right: 8px;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--cb-accent);
}

.cb-side.is-collapsed .cb-side__item { justify-content: center; padding: 10px 0; }

.cb-side__foot { padding: 12px; border-top: 1px solid var(--cb-line); }
.cb-side__user {
  display: flex; align-items: center; gap: 10px;
  padding: 8px;
  background: var(--cb-surf);
  border: 1px solid var(--cb-line);
  border-radius: 10px;
}
.cb-side__user > div:nth-child(2) { flex: 1; min-width: 0; }
.cb-side__uname { font-size: 12.5px; font-weight: 600; }
.cb-side__urole { font-size: 11px; color: var(--cb-text-3); }
.cb-side__usettings { color: var(--cb-text-3); cursor: pointer; }
.cb-side.is-collapsed .cb-side__user { justify-content: center; padding: 4px; }

/* Topbar ─────────────────────────────────────────────────── */
.cb-top {
  height: var(--cb-top-h);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 var(--cb-space-6);
  border-bottom: 1px solid var(--cb-line);
  background: color-mix(in oklch, var(--cb-bg-2) 92%, transparent);
  backdrop-filter: blur(12px);
  position: sticky; top: 0; z-index: 5;
  gap: 14px;
}
.cb-top__left, .cb-top__right { display: flex; align-items: center; gap: 10px; min-width: 0; flex-shrink: 0; }
.cb-top__center { flex: 1; min-width: 0; max-width: 460px; }
@media (max-width: 1320px) { .cb-top__center { display: none; } }

.cb-iconbtn {
  width: 32px; height: 32px;
  display: grid; place-items: center;
  background: transparent;
  border: 1px solid var(--cb-line);
  border-radius: 8px;
  color: var(--cb-text-2);
  position: relative;
  transition: background .12s, color .12s, border-color .12s;
}
.cb-iconbtn:hover { background: var(--cb-surf); color: var(--cb-text); border-color: var(--cb-line-strong); }
.cb-iconbtn--xs { width: 24px; height: 24px; }
.cb-iconbtn--badge .cb-iconbtn__b {
  position: absolute; top: -3px; right: -3px;
  min-width: 16px; height: 16px; padding: 0 4px;
  display: grid; place-items: center;
  font-size: 10px; font-weight: 600;
  background: var(--cb-danger); color: white;
  border-radius: 10px;
  border: 2px solid var(--cb-bg-2);
}

.cb-crumbs {
  display: flex; align-items: center; gap: 6px;
  font-size: 12.5px; color: var(--cb-text-3);
  padding: 0 6px;
}
.cb-crumbs .is-last { color: var(--cb-text); font-weight: 500; }
.cb-crumbs__sep { color: var(--cb-text-4); }

.cb-cmd {
  width: 100%;
  display: flex; align-items: center; gap: 10px;
  height: 34px; padding: 0 12px;
  background: var(--cb-surf);
  border: 1px solid var(--cb-line);
  border-radius: 8px;
  color: var(--cb-text-3);
  font-size: 12.5px;
  transition: border-color .12s;
  white-space: nowrap;
  overflow: hidden;
}
.cb-cmd:hover { border-color: var(--cb-line-strong); }
.cb-cmd span { flex: 1; text-align: left; overflow: hidden; text-overflow: ellipsis; min-width: 0; }

.cb-kbd {
  font-family: var(--cb-font-mono);
  font-size: 10.5px;
  padding: 1px 6px;
  background: var(--cb-bg);
  border: 1px solid var(--cb-line-strong);
  border-bottom-width: 2px;
  border-radius: 4px;
  color: var(--cb-text-3);
}

.cb-status {
  display: flex; align-items: center; gap: 6px;
  font-size: 11.5px; color: var(--cb-text-3);
  padding: 0 8px;
}
.cb-status__dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--cb-good);
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--cb-good) 25%, transparent);
}

/* Buttons ────────────────────────────────────────────────── */
.cb-btn {
  display: inline-flex; align-items: center; gap: 6px;
  height: 34px; padding: 0 12px;
  background: transparent;
  border: 1px solid var(--cb-line);
  border-radius: 8px;
  color: var(--cb-text);
  font-size: 12.5px; font-weight: 500;
  letter-spacing: -0.005em;
  transition: background .12s, border-color .12s, color .12s;
}
.cb-btn:hover { background: var(--cb-surf); border-color: var(--cb-line-strong); }
.cb-btn--primary {
  background: var(--cb-accent); color: var(--cb-accent-ink);
  border-color: color-mix(in oklch, var(--cb-accent) 70%, black 30%);
  font-weight: 600;
}
.cb-btn--primary:hover { background: color-mix(in oklch, var(--cb-accent) 92%, white 8%); }
.cb-btn--ghost { background: transparent; }
.cb-btn--sm { height: 28px; padding: 0 10px; font-size: 11.5px; }

/* Pills ──────────────────────────────────────────────────── */
.cb-pill {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--cb-surf);
  border: 1px solid var(--cb-line);
  font-size: 11px; font-weight: 500;
  color: var(--cb-text-2);
  white-space: nowrap;
}
.cb-pill--sm { padding: 1px 6px; font-size: 10.5px; }
.cb-pill--neutral { }
.cb-pill--accent { background: color-mix(in oklch, var(--cb-accent) 14%, var(--cb-surf)); color: var(--cb-accent); border-color: color-mix(in oklch, var(--cb-accent) 30%, transparent); }
.cb-pill--good   { background: color-mix(in oklch, var(--cb-good) 14%, var(--cb-surf));   color: var(--cb-good);   border-color: color-mix(in oklch, var(--cb-good) 30%, transparent); }
.cb-pill--warn   { background: color-mix(in oklch, var(--cb-warn) 14%, var(--cb-surf));   color: var(--cb-warn);   border-color: color-mix(in oklch, var(--cb-warn) 30%, transparent); }
.cb-pill--danger { background: color-mix(in oklch, var(--cb-danger) 16%, var(--cb-surf)); color: var(--cb-danger); border-color: color-mix(in oklch, var(--cb-danger) 30%, transparent); }
.cb-pill--info   { background: color-mix(in oklch, var(--cb-info) 14%, var(--cb-surf));   color: var(--cb-info);   border-color: color-mix(in oklch, var(--cb-info) 30%, transparent); }
.cb-pill.is-solid { background: var(--cb-accent); color: var(--cb-accent-ink); }

/* Avatar ─────────────────────────────────────────────────── */
.cb-avatar {
  display: grid; place-items: center;
  border-radius: 50%;
  color: white;
  font-weight: 600;
  letter-spacing: 0.02em;
  flex-shrink: 0;
}

/* Card ───────────────────────────────────────────────────── */
.cb-card {
  background: var(--cb-surf);
  border: 1px solid var(--cb-line);
  border-radius: var(--cb-radius);
  box-shadow: var(--cb-shadow);
  overflow: hidden;
}
.cb-card.is-subtle { background: color-mix(in oklch, var(--cb-surf) 80%, var(--cb-bg-2) 20%); }
.cb-card__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--cb-line);
}
.cb-card__title { font-size: 13px; font-weight: 600; letter-spacing: -0.005em; }
.cb-card__head > div:last-child { display: flex; align-items: center; gap: 8px; }
.cb-card__body { padding: 16px; }

/* Stat / KPI ─────────────────────────────────────────────── */
.cb-stat {
  background: var(--cb-surf);
  border: 1px solid var(--cb-line);
  border-radius: var(--cb-radius);
  padding: 14px 16px;
  display: flex; flex-direction: column; gap: 6px;
  position: relative; overflow: hidden;
}
.cb-stat::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, color-mix(in oklch, var(--cb-accent) 24%, transparent), transparent);
}
.cb-stat__head { display: flex; align-items: center; justify-content: space-between; }
.cb-stat__label { font-size: 11.5px; color: var(--cb-text-3); letter-spacing: 0.01em; }
.cb-stat__icon  { color: var(--cb-text-4); }
.cb-stat__value {
  font-size: 22px; font-weight: 600; letter-spacing: -0.025em;
  font-family: var(--cb-font-mono);
}
.cb-stat__foot { display: flex; align-items: center; gap: 8px; min-height: 18px; flex-wrap: nowrap; overflow: hidden; }
.cb-stat__delta {
  display: inline-flex; align-items: center; gap: 3px;
  font-size: 11px; font-weight: 600;
  padding: 1px 6px; border-radius: 4px;
  white-space: nowrap; flex-shrink: 0;
}
.cb-stat__delta--good { color: var(--cb-good); background: color-mix(in oklch, var(--cb-good) 12%, transparent); }
.cb-stat__delta--bad  { color: var(--cb-danger); background: color-mix(in oklch, var(--cb-danger) 12%, transparent); }
.cb-stat__hint { font-size: 11px; color: var(--cb-text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.cb-stat__spark { margin-left: auto; flex-shrink: 0; }

/* Grids ──────────────────────────────────────────────────── */
.cb-grid { display: grid; gap: var(--cb-space-4); }
.cb-grid--2 { grid-template-columns: repeat(2, 1fr); }
.cb-grid--3 { grid-template-columns: repeat(3, 1fr); }
.cb-grid--4 { grid-template-columns: repeat(4, 1fr); }
.cb-grid--5 { grid-template-columns: repeat(5, 1fr); }
.cb-grid--6 { grid-template-columns: repeat(6, 1fr); }
@media (max-width: 1240px) {
  .cb-grid--6 { grid-template-columns: repeat(3, 1fr); }
  .cb-grid--5 { grid-template-columns: repeat(3, 1fr); }
  .cb-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .cb-grid--6, .cb-grid--5, .cb-grid--4, .cb-grid--3, .cb-grid--2 { grid-template-columns: 1fr; }
}
.cb-mt-md { margin-top: var(--cb-space-4); }
.cb-mt-lg { margin-top: var(--cb-space-6); }

/* Section header ─────────────────────────────────────────── */
.cb-section { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.cb-section__kicker {
  font-family: var(--cb-font-mono);
  font-size: 11px; letter-spacing: 0.08em;
  color: var(--cb-text-3); text-transform: uppercase;
}
.cb-section__title {
  font-size: 26px; font-weight: 600; letter-spacing: -0.03em;
  margin: 4px 0 6px;
}
.cb-section__subtitle {
  font-size: 13.5px; color: var(--cb-text-2);
  max-width: 720px; margin: 0;
  text-wrap: pretty;
}
.cb-section__actions { display: flex; gap: 8px; flex-shrink: 0; }

/* Sparkline / Progress / Donut */
.cb-spark { display: block; }
.cb-progress {
  position: relative;
  background: var(--cb-line);
  border-radius: 4px; overflow: hidden;
}
.cb-progress__fill { height: 100%; transition: width .3s; }
.cb-progress__fill--accent { background: var(--cb-accent); }
.cb-progress__fill--good   { background: var(--cb-good); }
.cb-progress__fill--warn   { background: var(--cb-warn); }
.cb-progress__fill--danger { background: var(--cb-danger); }
.cb-progress__label { position: absolute; right: 6px; top: -2px; font-size: 10.5px; color: var(--cb-text-3); }
.cb-donut__txt { fill: var(--cb-text); font-family: var(--cb-font-mono); font-size: 18px; font-weight: 600; }

/* Tables ─────────────────────────────────────────────────── */
.cb-table { display: flex; flex-direction: column; }
.cb-table__head {
  display: flex; gap: 14px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--cb-line);
  background: var(--cb-bg-2);
}
.cb-table__th {
  flex: 1;
  font-size: 10.5px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.06em;
  color: var(--cb-text-3);
}
.cb-table__body { display: flex; flex-direction: column; }
.cb-tr {
  display: flex; gap: 14px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--cb-line);
  font-size: 13px;
  transition: background .1s;
  position: relative;
}
.cb-tr:last-child { border-bottom: none; }
.cb-tr.is-hover:hover { background: color-mix(in oklch, var(--cb-bg-2) 50%, transparent); }
.cb-tr.is-accent-good::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0;
  width: 2px; background: var(--cb-good);
}
.cb-table.is-dense .cb-tr { padding: 9px 16px; font-size: 12.5px; }
.cb-td { flex: 1; display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.cb-td.is-mono { font-family: var(--cb-font-mono); font-feature-settings: "tnum" on; }
.cb-td.is-dim { color: var(--cb-text-3); }
.cb-cellmain { font-weight: 500; color: var(--cb-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cb-cellsub  { font-size: 11px; color: var(--cb-text-3); margin-top: 2px; }
.cb-cellpers { display: flex; align-items: center; gap: 6px; font-size: 12px; }

/* Inputs */
.cb-input {
  background: var(--cb-bg);
  border: 1px solid var(--cb-line);
  border-radius: 6px;
  color: var(--cb-text);
  padding: 4px 8px;
  font-size: 12.5px;
  font-family: var(--cb-font-mono);
  width: 100%;
}
.cb-input:focus { outline: none; border-color: var(--cb-accent); }
.cb-input--cant { max-width: 90px; text-align: right; }

/* Command palette ────────────────────────────────────────── */
.cb-cmdpal {
  position: fixed; inset: 0; z-index: 80;
  background: rgba(5, 6, 10, 0.6);
  backdrop-filter: blur(6px);
  display: grid; place-items: start center;
  padding-top: 18vh;
}
.cb-cmdpal__box {
  width: min(620px, 92vw);
  background: var(--cb-surf);
  border: 1px solid var(--cb-line-strong);
  border-radius: 14px;
  box-shadow: var(--cb-shadow-lg);
  overflow: hidden;
}
.cb-cmdpal__input {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--cb-line);
  color: var(--cb-text-3);
}
.cb-cmdpal__input input {
  flex: 1;
  background: transparent; border: none; outline: none;
  color: var(--cb-text);
  font-size: 15px;
}
.cb-cmdpal__list { padding: 8px; max-height: 360px; overflow-y: auto; }
.cb-cmdpal__hint { font-size: 10px; color: var(--cb-text-4); padding: 8px 10px 4px; text-transform: uppercase; letter-spacing: 0.08em; }
.cb-cmdpal__item {
  width: 100%; display: flex; align-items: center; gap: 12px;
  padding: 10px 12px;
  background: transparent; border: none;
  border-radius: 8px;
  color: var(--cb-text);
  font-size: 13px; text-align: left;
}
.cb-cmdpal__item:hover { background: var(--cb-bg-2); }
.cb-cmdpal__item span { flex: 1; }

/* Home: launcher ──────────────────────────────────────────── */
.cb-launcher { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 760px) { .cb-launcher { grid-template-columns: 1fr; } }
.cb-launcher__card {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px;
  background: var(--cb-bg-2);
  border: 1px solid var(--cb-line);
  border-radius: 10px;
  text-align: left;
  color: var(--cb-text);
  transition: border-color .12s, transform .12s, background .12s;
}
.cb-launcher__card:hover {
  border-color: color-mix(in oklch, var(--cb-accent) 35%, var(--cb-line-strong));
  background: var(--cb-surf-2);
}
:root[data-animations="on"] .cb-launcher__card:hover { transform: translateY(-1px); }
.cb-launcher__icon {
  width: 34px; height: 34px;
  display: grid; place-items: center;
  background: var(--cb-bg);
  border: 1px solid var(--cb-line-strong);
  border-radius: 8px;
  color: var(--cb-accent);
}
.cb-launcher__body { flex: 1; min-width: 0; }
.cb-launcher__title { font-size: 13px; font-weight: 500; }
.cb-launcher__phase { font-family: var(--cb-font-mono); font-size: 10.5px; color: var(--cb-text-3); margin-top: 2px; }
.cb-launcher__chev { color: var(--cb-text-4); }

/* Timeline (home) ─────────────────────────────────────────── */
.cb-timeline { display: flex; flex-direction: column; }
.cb-tl { display: flex; gap: 12px; padding: 10px 0; position: relative; }
.cb-tl:not(:last-child)::before {
  content: ""; position: absolute;
  left: 54px; top: 22px; bottom: -10px;
  width: 1px; background: var(--cb-line);
}
.cb-tl__time { font-family: var(--cb-font-mono); font-size: 11px; color: var(--cb-text-3); width: 38px; text-align: right; padding-top: 4px; }
.cb-tl__dot {
  width: 9px; height: 9px; border-radius: 50%;
  margin-top: 6px; flex-shrink: 0;
  position: relative; z-index: 2;
  border: 2px solid var(--cb-surf);
}
.cb-tl__dot--ok   { background: var(--cb-good); box-shadow: 0 0 0 3px color-mix(in oklch, var(--cb-good) 20%, transparent); }
.cb-tl__dot--warn { background: var(--cb-warn); box-shadow: 0 0 0 3px color-mix(in oklch, var(--cb-warn) 20%, transparent); }
.cb-tl__dot--info { background: var(--cb-info); box-shadow: 0 0 0 3px color-mix(in oklch, var(--cb-info) 20%, transparent); }
.cb-tl__body { font-size: 12.5px; line-height: 1.5; flex: 1; }
.cb-tl__tag {
  font-size: 10.5px; font-weight: 600;
  margin-right: 8px;
  padding: 1px 6px; border-radius: 4px;
}
.cb-tl__tag--ok   { background: color-mix(in oklch, var(--cb-good) 14%, transparent); color: var(--cb-good); }
.cb-tl__tag--warn { background: color-mix(in oklch, var(--cb-warn) 14%, transparent); color: var(--cb-warn); }
.cb-tl__tag--info { background: color-mix(in oklch, var(--cb-info) 14%, transparent); color: var(--cb-info); }

/* Shortcuts / Due / Pulse */
.cb-shortcut {
  width: 100%;
  display: flex; align-items: center; gap: 12px;
  padding: 10px 8px;
  background: transparent; border: none;
  border-bottom: 1px solid var(--cb-line);
  color: var(--cb-text); text-align: left;
}
.cb-shortcut:last-child { border-bottom: none; }
.cb-shortcut:hover { background: var(--cb-bg-2); }
.cb-shortcut__icon {
  width: 28px; height: 28px;
  display: grid; place-items: center;
  background: var(--cb-bg);
  border: 1px solid var(--cb-line);
  border-radius: 6px;
  color: var(--cb-accent);
}
.cb-shortcut__body { flex: 1; display: flex; flex-direction: column; }
.cb-shortcut__title { font-size: 12.5px; }
.cb-shortcut__sub { font-size: 11px; color: var(--cb-text-3); }
.cb-due { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--cb-line); }
.cb-due:last-child { border-bottom: none; }
.cb-due__body { flex: 1; min-width: 0; }
.cb-due__txt { font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cb-due__obra { font-family: var(--cb-font-mono); font-size: 10.5px; color: var(--cb-text-3); }
.cb-pulse__row { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--cb-line); }
.cb-pulse__row:last-child { border-bottom: none; }
.cb-pulse__name { font-size: 12.5px; font-weight: 500; }
.cb-pulse__role { font-size: 11px; color: var(--cb-text-3); font-weight: 400; }
.cb-pulse__txt { font-size: 11.5px; color: var(--cb-text-2); margin-top: 1px; }

/* Bar chart ───────────────────────────────────────────────── */
.cb-bars { display: flex; align-items: flex-end; gap: 6px; height: 140px; padding: 8px 0; }
.cb-bars__col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; height: 100%; }
.cb-bars__bar {
  width: 100%; max-width: 28px;
  background: linear-gradient(180deg, var(--cb-accent), color-mix(in oklch, var(--cb-accent) 35%, transparent));
  border-radius: 4px 4px 0 0;
  position: relative;
  display: flex; align-items: flex-end; justify-content: center;
  min-height: 4px;
  transition: height .4s;
}
.cb-bars__val {
  position: absolute; top: -16px;
  font-family: var(--cb-font-mono); font-size: 10px; color: var(--cb-text-3);
  opacity: 0; transition: opacity .15s;
}
.cb-bars__col:hover .cb-bars__val { opacity: 1; }
.cb-bars__lbl { font-family: var(--cb-font-mono); font-size: 10px; color: var(--cb-text-4); }

/* Category list ───────────────────────────────────────────── */
.cb-catlist { display: flex; flex-direction: column; gap: 10px; }
.cb-catlist__head { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.cb-catlist__dot { width: 8px; height: 8px; border-radius: 2px; }
.cb-catlist__lbl { flex: 1; }
.cb-catlist__n { font-family: var(--cb-font-mono); color: var(--cb-text-3); font-size: 11.5px; }
.cb-catlist__bar { height: 4px; background: var(--cb-line); border-radius: 3px; overflow: hidden; }
.cb-catlist__bar > div { height: 100%; border-radius: 3px; transition: width .3s; }

/* Obras list */
.cb-obras { display: flex; flex-direction: column; gap: 10px; }
.cb-obras__row { display: flex; align-items: center; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--cb-line); }
.cb-obras__row:last-child { border-bottom: none; }
.cb-obras__name { flex: 1; min-width: 0; }
.cb-obras__cli { font-size: 12px; font-weight: 500; }
.cb-obras__t   { font-size: 10.5px; color: var(--cb-text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cb-obras__avance { display: flex; align-items: center; gap: 8px; width: 120px; flex-shrink: 0; }
.cb-obras__avance .cb-progress { flex: 1; height: 5px; }
.cb-obras__pct { font-family: var(--cb-font-mono); font-size: 11px; color: var(--cb-text-2); width: 32px; text-align: right; }
