/* rgnt — dashboard "nothing runs in the dark": cópia fiel do Pulse (dark, verde-menta).
   Techs via especialista Tech: SVG pra área/linha; CSS grid/flex pro resto. Zero-dep. */
.pulse{
  /* paleta do tema: âmbar/laranja no lugar do verde-menta original */
  --pl-bg:#0f0c08; --pl-card:#16120c; --pl-mint:#e8b866; --pl-mint-dim:#a9762f;
  --pl-grey:#a89a80; --pl-border:#231d13; --pl-dim:#7d7159; --pl-text:#f4ead9;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,sans-serif;
  background:var(--pl-bg);border:1px solid var(--pl-border);border-radius:14px;
  padding:22px;color:var(--pl-text);user-select:none;width:100%;
  box-shadow:0 30px 70px -24px rgba(0,0,0,.75);
}
.pulse .p-stat-row{display:flex;gap:40px;flex-wrap:wrap;padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--pl-border)}
.pulse .p-stat{display:flex;flex-direction:column;gap:2px}
.pulse .p-stat .v{font-size:34px;font-weight:700;color:var(--pl-mint);font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1}
.pulse .p-stat .l{font-size:11px;color:var(--pl-dim);text-transform:uppercase;letter-spacing:.08em}
.pulse .p-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.pulse .p-card{background:var(--pl-card);border:1px solid var(--pl-border);border-radius:10px;padding:16px;min-width:0}
.pulse .p-card.wide{grid-column:1 / -1}
.pulse .p-title{font-size:12px;color:var(--pl-dim);margin:0 0 12px;letter-spacing:.03em}
.pulse .p-title b{color:var(--pl-text);font-weight:600}
/* svg charts */
.pulse .chart{width:100%;display:block}
.pulse .chart-legend{display:flex;gap:16px;margin-top:8px;font-size:11px;color:var(--pl-dim)}
.pulse .chart-legend .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:middle}
/* heatmap */
/* o heat tem largura intrínseca (~686px, 53 semanas). Fica num scroller (.heat-scroll) que
   rola horizontalmente dentro do card — assim não estica o card/grid pai nem estoura a
   página no mobile. Months e cells rolam JUNTOS (mesmo container), então alinham. */
.pulse .heat-scroll{overflow-x:auto;max-width:100%;scrollbar-width:none}
.pulse .heat-scroll::-webkit-scrollbar{height:0;display:none}
.pulse .heat{display:grid;grid-template-rows:repeat(7,10px);grid-auto-flow:column;grid-auto-columns:10px;gap:3px;width:max-content}
.pulse .heat i{width:10px;height:10px;border-radius:2px;background:var(--lv,#161b1f)}
.pulse .lv0{--lv:#1f1a12}.pulse .lv1{--lv:#4d3a1a}.pulse .lv2{--lv:#8a5f22}.pulse .lv3{--lv:#c08733}.pulse .lv4{--lv:#e8b866}
.pulse .heat-months{display:flex;gap:0;font-size:9px;color:var(--pl-dim);margin-bottom:5px;justify-content:space-between;padding-right:4px;min-width:686px}
.pulse .heat-legend{display:flex;align-items:center;gap:5px;margin-top:8px;font-size:10px;color:var(--pl-dim)}
.pulse .heat-legend i{width:10px;height:10px;border-radius:2px;display:inline-block}
/* treemap */
.pulse .treemap{display:flex;flex-direction:column;gap:3px;height:200px}
.pulse .tm-row{display:flex;gap:3px;flex:1}
.pulse .tm-cell{display:flex;flex-direction:column;justify-content:space-between;padding:10px;border-radius:5px;color:#08110c;overflow:hidden}
.pulse .tm-cell .n{font-size:12px;font-weight:600;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.pulse .tm-cell .v{font-size:19px;font-weight:800}
/* ranking bars */
.pulse .rank{display:flex;flex-direction:column;gap:9px}
.pulse .rank-row{display:grid;grid-template-columns:110px 1fr 46px;align-items:center;gap:10px}
.pulse .rank-row .lab{font-size:12.5px;color:var(--pl-grey);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pulse .rank-row .track{height:8px;background:var(--pl-border);border-radius:4px;overflow:hidden}
.pulse .rank-row .fill{height:100%;background:var(--pl-mint);border-radius:4px}
.pulse .rank-row .fill.violet{background:#ffd98a}
.pulse .rank-row .val{font-size:12.5px;color:var(--pl-text);text-align:right;font-variant-numeric:tabular-nums}
/* hour-of-day */
.pulse .hours{display:flex;align-items:flex-end;gap:3px;height:56px}
.pulse .hours i{flex:1;background:var(--pl-mint-dim);border-radius:1px 1px 0 0;min-height:2px}
.pulse .hours i.peak{background:var(--pl-mint)}
.pulse .hours-x{display:flex;justify-content:space-between;font-size:9px;color:var(--pl-dim);margin-top:5px}
/* ---- MOBILE (≤560px): dashboard com reflow próprio. Cards em 1 coluna, stats em 2×2
   (não uma fileira que aperta), padding e números menores. Heatmap já rola no .heat-scroll.
   Fontes de leitura no piso. Nada ultrapassa a view. ---- */
@media(max-width:560px){
  .pulse{padding:16px;border-radius:12px}
  .pulse .p-grid{grid-template-columns:1fr}
  /* stats: de fileira flex (gap 40) pra grade 2×2 compacta */
  .pulse .p-stat-row{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}
  .pulse .p-stat .v{font-size:26px}
  .pulse .p-card{padding:14px}
  .pulse .rank-row{grid-template-columns:88px 1fr 40px;gap:8px}
  .pulse .rank-row .lab,.pulse .rank-row .val{font-size:12px}
}

/* ---------- BOARD de tarefas (cópia do agnts, tema âmbar) ---------- */
.board{--bd-bg:#0f0c08;--bd-card:#16120c;--bd-border:#231d13;--bd-text:#f4ead9;--bd-dim:#7d7159;
  background:var(--bd-bg);border:1px solid var(--bd-border);border-radius:14px;overflow:hidden;
  font-family:var(--sans);color:var(--bd-text);box-shadow:0 30px 70px -24px rgba(0,0,0,.75);user-select:none}
.board-head{display:flex;align-items:center;gap:20px;padding:12px 18px;border-bottom:1px solid var(--bd-border)}
.board-brand{font-weight:700;font-size:15px;color:var(--gold)}
.board-nav{display:flex;gap:16px;font-size:13px;color:var(--bd-dim)}
.board-nav .on{color:var(--bd-text);font-weight:600}
.board-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 18px;border-bottom:1px solid var(--bd-border)}
.bf{font-size:12px;color:var(--bd-dim);padding:4px 10px;border-radius:999px;border:1px solid transparent}
.bf.on{color:#1a1206;background:var(--gold);font-weight:600}
.bf-sep{width:1px;height:16px;background:var(--bd-border);margin:0 4px}
.bf-proj{font-size:11.5px;color:var(--bd-dim);padding:4px 10px;border-radius:999px;display:flex;align-items:center;gap:6px}
.bf-proj::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--pc)}
.board-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:16px}
.bd-card{background:var(--bd-card);border:1px solid var(--bd-border);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:9px;min-height:150px}
.bd-card.active{border-color:rgba(232,184,102,.55);box-shadow:0 0 0 1px rgba(232,184,102,.25)}
.bd-card-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.bd-title{font-size:13.5px;font-weight:600;line-height:1.25;color:var(--bd-text)}
.bd-badge{flex-shrink:0;font-size:10px;font-weight:600;color:#1a1206;background:var(--gold);border-radius:4px;padding:2px 6px;white-space:nowrap}
.bd-tags{display:flex;gap:6px;align-items:center}
.bd-proj{font-size:11px;color:var(--bd-text);padding:2px 8px;border-radius:5px;background:color-mix(in srgb,var(--pc) 22%,transparent);border:1px solid color-mix(in srgb,var(--pc) 45%,transparent)}
.bd-status{font-size:11px;padding:2px 8px;border-radius:5px}
.bd-status.turn{color:var(--gold-bright);background:rgba(232,184,102,.14)}
.bd-status.working{color:#e8b866;background:rgba(232,184,102,.1)}
.bd-desc{font-size:12px;line-height:1.45;color:var(--bd-dim);margin:0;flex:1;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.bd-foot{display:flex;justify-content:flex-start}
.bd-time{font-size:11px;color:var(--bd-dim);font-family:var(--mono)}
@media(max-width:900px){.board-grid{grid-template-columns:repeat(2,1fr)}}
/* ---- MOBILE (≤560px): board com reflow próprio. 1 coluna, nav some, filtros compactos,
   e TRUNCA pra 4 cards (mostrar 8 num scroll vertical longo cansaria — 4 comunica a ideia). */
@media(max-width:560px){
  .board-grid{grid-template-columns:1fr;padding:12px;gap:10px}
  .board-nav{display:none}
  .board-head{padding:10px 14px}
  .board-filters{padding:10px 14px;gap:6px}
  .bd-card:nth-child(n+5){display:none}          /* mostra só 4 cards no mobile */
  .bd-card{min-height:0}
  .bd-desc{-webkit-line-clamp:3}
}
