/* Gestão + Estoque — só o que o app.css não cobre. Cores = tokens do núcleo. */

/* ---------- Painel: lotação por horário (tubos na escala de tom) ---------- */
.pn-lot{display:grid;grid-template-columns:repeat(var(--n,10),minmax(0,1fr));gap:8px;align-items:end}
.pn-slot{all:unset;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0}
.pn-slot .tubo{position:relative;width:100%;max-width:56px;height:150px;border-radius:12px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line-2);overflow:hidden}
.pn-slot .tubo i{position:absolute;left:0;right:0;bottom:0;border-radius:10px 10px 0 0;transition:height .5s cubic-bezier(.2,.8,.2,1)}
.pn-slot .tubo i[data-n="1"]{background:var(--tan-1)}.pn-slot .tubo i[data-n="2"]{background:var(--tan-2)}.pn-slot .tubo i[data-n="3"]{background:var(--tan-3)}
.pn-slot .tubo i[data-n="4"]{background:var(--tan-4)}.pn-slot .tubo i[data-n="5"]{background:var(--tan-5)}.pn-slot .tubo i[data-n="6"]{background:var(--tan-6)}
.pn-slot .q{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}
.pn-slot .q small{font-weight:400;color:var(--faint)}
.pn-slot .h{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.pn-slot.passou .q,.pn-slot.passou .h{opacity:.55}
.pn-slot.agora .h{color:#fff;background:var(--ink);border-radius:var(--pill);padding:1px 7px}
.pn-slot.cheio .q{color:var(--b-700)}
.pn-slot:hover .tubo{box-shadow:inset 0 0 0 1px var(--b-300)}
.pn-slot:focus-visible{outline:3px solid var(--b-300);outline-offset:3px;border-radius:12px}
.legenda-tom{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--faint);margin-left:auto}
.legenda-tom .tons{width:60px;height:10px;border-radius:5px}
@media (max-width:700px){
  .pn-lot{gap:4px}
  .pn-slot .tubo{height:110px;border-radius:8px}
  .pn-slot .q small{display:none}
  .pn-slot .h{font-size:11px}
  .pn-slot.agora .h{padding:1px 4px}
  .legenda-tom{display:none}
}

/* ---------- Painel: próximos dias ---------- */
.pn-semana{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.pn-dia{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:6px;align-items:stretch;text-align:center;min-width:0}
.pn-dia .sem{font-size:12px;color:var(--muted)}
.pn-dia .cel-tom{padding:14px 0;font-size:15px;font-weight:600;border-radius:12px}
.pn-dia .cel-tom small{display:block;font-size:11px;font-weight:400;opacity:.8}
.pn-dia.fechado .cel-tom{background:repeating-linear-gradient(135deg,var(--surface-2) 0 6px,var(--line-2) 6px 12px);color:var(--faint)}
.pn-dia.hoje .sem{color:var(--ink);font-weight:600}
@media (max-width:700px){.pn-semana{gap:4px}.pn-dia .sem{font-size:11px;line-height:1.2;min-height:2.4em}.pn-dia .cel-tom{padding:12px 0;font-size:13px}.pn-dia .cel-tom small{display:none}
  .pn-kpis .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pn-kpis .kpi{padding:14px}.pn-kpis .kpi .v{font-size:20px}
  .barras.b30{gap:2px;height:110px}.barras.b30 .b span{font-size:10px}}

/* ---------- Listas do painel ---------- */
.pn-hora{flex:none;width:52px;font-variant-numeric:tabular-nums;font-weight:600;font-size:15px}
.pn-hora small{display:block;font-weight:400;font-size:12px;color:var(--faint)}
.av.tomado{position:relative}
.av .tom{position:absolute;right:-2px;bottom:-2px;width:13px;height:13px;box-shadow:0 0 0 2px var(--surface)}
.alerta-g{padding:14px 0;border-top:1px solid var(--line-2)}
.alerta-g:first-of-type{border-top:0;padding-top:0}
.alerta-g h3{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px;margin-bottom:8px}
.alerta-g h3 .ico{width:17px;height:17px;color:var(--b-600)}
.alerta-g h3 a{margin-left:auto;font-weight:500;font-size:13px}
.alerta-g ul{list-style:none;margin:0;padding:0}
.alerta-g li{display:flex;gap:10px;align-items:center;font-size:14px;padding:5px 0}
.alerta-g li .c{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tudo-certo{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:14px}
.tudo-certo .tons{width:30px;height:30px;border-radius:9px}

/* ---------- Painel (layout Bronzy) ---------- */
.pn-topo{position:relative;isolation:isolate;margin:-28px -32px 0;padding:36px 32px 88px;background:linear-gradient(#f6eee5 40%,var(--bg));overflow:hidden}
.pn-topo::after{content:"";position:absolute;inset:0;background:url(../img/topo-palmeira.webp) right center/cover no-repeat;-webkit-mask:linear-gradient(90deg,transparent 0,#000 45%),linear-gradient(#000 50%,transparent 100%);-webkit-mask-composite:source-in;mask:linear-gradient(90deg,transparent 0,#000 45%) intersect,linear-gradient(#000 50%,transparent 100%);pointer-events:none;z-index:-1}
.pn-ola{position:relative;z-index:1}
.pn-ola h1{font-family:var(--tit);font-weight:400;font-size:40px;line-height:1.05;letter-spacing:-.015em}
.pn-ola .sol{display:inline-block;vertical-align:-3px;margin-left:8px;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle,#f6c463 0 40%,transparent 42%),repeating-conic-gradient(#f6c463 0 6deg,transparent 6deg 30deg);-webkit-mask:radial-gradient(circle,#000 0 70%,transparent 71%);mask:radial-gradient(circle,#000 0 70%,transparent 71%)}
.pn-resumo{font-size:17px;color:var(--ink-2);margin:10px 0 0;max-width:60ch}
.pn-resumo b{font-weight:600;color:var(--ink)}
.pn-kpis{margin-top:-62px;position:relative;z-index:2}
.pn-kpis .kpi{position:relative}
.pn-kpis .anel{position:absolute;right:18px;top:18px;width:46px;height:46px;border-radius:50%;background:conic-gradient(var(--b-600) calc(var(--p)*1%),var(--b-100) 0);-webkit-mask:radial-gradient(circle,transparent 0 58%,#000 60%);mask:radial-gradient(circle,transparent 0 58%,#000 60%)}
/* ícone em círculo dos títulos */
.pn-ico{flex:none;width:40px;height:40px;border-radius:50%;background:var(--b-50);color:var(--b-700);display:grid;place-items:center}
.pn-ico .ico{width:19px;height:19px}
.pn-ico.err{background:var(--err-bg);color:var(--err)}.pn-ico.warn{background:var(--warn-bg);color:var(--warn)}
.card-h .pn-ico+h2{margin-left:-2px}
.pn-link{font-size:13.5px;color:var(--b-600);text-decoration:underline;text-underline-offset:3px}
/* grade principal */
.pn-grade{display:grid;grid-template-columns:minmax(0,2.15fr) minmax(0,1fr);gap:16px;align-items:start;margin-bottom:16px}
.pn-grade .card,.pn-lado .card{margin-bottom:0}
.pn-lado{display:grid;gap:16px}
/* tabela da agenda */
.pn-tab{display:grid}
.pn-th,.pn-tr{display:grid;grid-template-columns:86px minmax(0,1.5fr) minmax(0,1.2fr) 130px;gap:12px;align-items:center}
.pn-th{padding:9px 12px;background:#f8f6f2;border-radius:8px;font-size:11px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--line)}
.pn-tr{padding:9px 12px;min-height:56px;border-bottom:1px solid #eee9e3;color:var(--ink);text-decoration:none;border-radius:10px}
.pn-tr:hover{background:var(--b-50);text-decoration:none}
.pn-tr .pn-h{position:relative;padding-left:16px;font-weight:600;font-variant-numeric:tabular-nums}
.pn-tr .pn-h::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:26px;border-radius:2px;background:var(--b-300)}
.pn-tr[data-st=compareceu] .pn-h::before{background:var(--ok)}.pn-tr[data-st=confirmado] .pn-h::before{background:var(--info)}
.pn-tr[data-st=reservado] .pn-h::before{background:#d9a044}.pn-tr[data-st=faltou] .pn-h::before{background:var(--err)}
.pn-cli{display:flex;align-items:center;gap:12px;min-width:0}
.pn-cli .av{width:42px;height:42px;font-size:13px}
.pn-cli b,.pn-serv b{display:block;font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pn-cli small,.pn-serv small{display:block;color:var(--muted);font-size:12.5px}
.pn-cli>span:last-child{min-width:0}
.pn-mais{display:inline-flex;align-items:center;gap:4px;margin-top:12px;font-size:13.5px;font-weight:500}
.pn-mais .ico{width:16px;height:16px}
/* próximas clientes */
.pn-prox{list-style:none;margin:0;padding:0}
.pn-prox a{display:grid;grid-template-columns:48px 30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 0 7px 10px;border-left:2px solid var(--line);color:var(--ink);font-size:13.5px;text-decoration:none}
.pn-prox li+li a{border-top:1px solid var(--line-2)}
.pn-prox a:hover b{text-decoration:underline}
.pn-prox .pn-h{color:var(--muted);font-variant-numeric:tabular-nums}
.pn-prox .av{width:30px;height:30px;font-size:10.5px}
.pn-prox b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pn-prox .muted{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}
/* alertas */
.pn-al{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--surface-2);color:var(--ink);text-decoration:none}
a.pn-al:hover{background:var(--b-50);text-decoration:none}
.pn-al .c{flex:1;min-width:0}
.pn-al b{display:block;font-weight:600;font-size:13.5px}
.pn-al small{display:block;color:var(--muted);font-size:12.5px}
.pn-al>.ico{width:16px;height:16px;color:var(--muted)}
.pn-al .pn-ico{width:36px;height:36px}
.pn-al+.pn-al,.pn-al-g+.pn-al,.pn-al+.pn-al-g,.pn-al-g+.pn-al-g{margin-top:8px}
.pn-al-g ul{list-style:none;margin:4px 0 0;padding:0 12px 0 60px}
.pn-al-g li{display:flex;gap:10px;align-items:center;font-size:13px;padding:4px 0}
.pn-al-g li .c{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* trio de gráficos */
.pn-trio{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr);gap:16px;margin-bottom:16px}
.pn-trio .card{margin-bottom:0}
.pn-fat{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.pn-fat b{font-size:26px;font-weight:600;letter-spacing:-.02em}
.pn-fat span{font-size:12.5px;color:var(--muted)}
.pn-fat .up{color:var(--ok);font-weight:600}.pn-fat .down{color:var(--err);font-weight:600}
.pn-linha{display:grid;grid-template-columns:auto 1fr;gap:8px}
.pn-linha .eixo{display:flex;flex-direction:column;justify-content:space-between;font-size:10.5px;color:var(--faint);height:150px;text-align:right}
.pn-linha .area{position:relative;min-width:0}
.pn-linha svg{display:block;width:100%;height:150px;background:repeating-linear-gradient(to bottom,var(--line-2) 0 1px,transparent 1px 50%)}
.pn-linha .x{position:relative;height:18px;margin-top:6px}
.pn-linha .x span{position:absolute;transform:translateX(-50%);font-size:10.5px;color:var(--faint);white-space:nowrap}
.pn-linha .x span:first-child{transform:none}
.pn-rosca{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.pn-rosca .disco{flex:none;width:150px;height:150px;border-radius:50%;display:grid;place-items:center;position:relative}
.pn-rosca .disco span{width:96px;height:96px;border-radius:50%;background:#fff;display:grid;place-content:center;text-align:center;font-size:11.5px;color:var(--muted)}
.pn-rosca .disco b{font-size:17px;color:var(--ink);font-weight:600}
.pn-rosca ul{list-style:none;margin:0;padding:0;flex:1;min-width:130px}
.pn-rosca li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2);padding:5px 0}
.pn-rosca li i{width:10px;height:10px;border-radius:50%;flex:none}
.pn-rosca li span{flex:1}
.pn-rosca li b{font-weight:600;color:var(--ink)}
/* lotação em bronze */
.pn-slot .tubo{background:var(--line-2);box-shadow:none;border-radius:10px}
.pn-slot .tubo i{border-radius:8px}
.pn-slot.agora .h{background:var(--b-600)}
@media (max-width:1180px){.pn-grade{grid-template-columns:1fr}.pn-trio{grid-template-columns:1fr 1fr}.pn-trio>:first-child{grid-column:1/-1}}
@media (max-width:960px){
  .pn-topo{margin:-16px -16px 14px;padding:22px 16px 26px;min-height:0}
  .pn-topo{padding-bottom:70px}
  .pn-topo::after{-webkit-mask:linear-gradient(90deg,transparent 0,#000 75%),linear-gradient(#000 50%,transparent);-webkit-mask-composite:source-in;mask:linear-gradient(90deg,transparent 0,#000 75%) intersect,linear-gradient(#000 50%,transparent);opacity:.45}
  .pn-ola h1{font-size:34px}
  .pn-resumo{font-size:15.5px}
  .pn-kpis{margin-top:-48px}
}
@media (max-width:700px){
  .pn-trio{grid-template-columns:1fr}
  .pn-th{display:none}
  .pn-tr{grid-template-columns:58px minmax(0,1fr) auto;padding:10px 4px}
  .pn-tr .pn-serv{display:none}
  .pn-tr .pn-h{padding-left:10px}
  .pn-cli .av{width:36px;height:36px}
  .card-h .acoes{width:100%;margin-left:0}
  .card-h .acoes .btn{flex:1}
  .pn-kpis .anel{width:34px;height:34px;right:12px;top:12px}
  .pn-al-g ul{padding-left:12px}
  .pn-kpis .kpi.com-ico{display:block;padding:14px}
  .pn-kpis .kpi-ico{width:32px;height:32px;margin-bottom:8px}.pn-kpis .kpi-ico .ico{width:16px;height:16px}
  .pn-kpis .kpi .v{font-size:19px}
  .pn-rosca .disco{width:130px;height:130px}.pn-rosca .disco span{width:88px;height:88px;font-size:10.5px}.pn-rosca .disco b{font-size:13.5px}
  .pn-linha .x span:nth-child(even){display:none}
}

/* barras de 30 dias com rótulo esparso */
.barras.b30 .b span:empty{visibility:hidden}

/* ---------- Chips (dias / horários) ---------- */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{all:unset;cursor:pointer;box-sizing:border-box;min-width:52px;text-align:center;padding:9px 14px;border-radius:var(--pill);font-size:14px;font-weight:500;
  background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-2);font-variant-numeric:tabular-nums;transition:background .15s,box-shadow .15s}
.chip:hover{box-shadow:inset 0 0 0 1px #cfcfd6}
.chip[aria-pressed=true]{background:var(--ink);color:#fff;box-shadow:none}
.chip:focus-visible{outline:3px solid var(--b-300);outline-offset:2px}
.chips.horas .chip{background:var(--tan-1);box-shadow:none;color:var(--b-900)}
.chips.horas .chip[aria-pressed=true]{background:var(--surface-2);color:var(--faint);text-decoration:line-through;box-shadow:inset 0 0 0 1px var(--line)}
.secao{display:grid;grid-template-columns:220px minmax(0,1fr);gap:8px 28px;padding:20px 0;border-top:1px solid var(--line-2)}
.secao:first-of-type{border-top:0;padding-top:4px}
.secao>.rot h3{font-size:15px;font-weight:600}
.secao>.rot p{font-size:13px;color:var(--muted);margin-top:4px}
@media (max-width:860px){.secao{grid-template-columns:1fr}}

/* ---------- Equipe ---------- */
.papeis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}
.papel{background:var(--surface);border-radius:var(--r-m);border:0;box-shadow:0 1px 2px rgba(31,26,23,.04),0 12px 32px -24px rgba(90,40,40,.22);padding:16px 18px}
.papel b{display:flex;align-items:center;gap:8px;font-weight:600}
.papel p{font-size:13px;color:var(--muted);margin:6px 0 0}
.papel .tom{width:12px;height:12px}
@media (max-width:860px){.papeis{grid-template-columns:1fr;gap:8px}.papel{padding:12px 16px}}
.pessoa .t2 .bdg{margin-left:6px}
.inativa{opacity:.55}

/* ---------- Estoque ---------- */
.qtd-cel{display:flex;align-items:center;gap:10px;justify-content:flex-end}
.qtd-cel b{font-variant-numeric:tabular-nums;font-size:15px;min-width:2ch;text-align:right}
.qtd-cel .lot{width:56px}
.qtd-cel.baixo b{color:var(--err)}
.prod-n{font-weight:500}
.prod-v{font-size:12.5px;color:var(--muted)}
.est-resumo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:2px 0 16px}
.est-resumo div{background:var(--surface-2);border-radius:var(--r-s);padding:12px 14px}
.est-resumo .l{font-size:12.5px;color:var(--muted)}
.est-resumo .v{font-weight:600;letter-spacing:-.025em;font-size:18px;line-height:1.1;font-variant-numeric:tabular-nums}
.est-acoes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}
.est-acoes .btn{min-height:48px;border-radius:var(--r-m)}
.est-conta{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:var(--r-s);background:var(--b-50);border:1px solid var(--b-100);color:var(--b-900);font-size:14px;margin-bottom:14px}
.est-conta b{font-variant-numeric:tabular-nums}
.delta-mais{color:var(--ok);font-weight:600}
.delta-menos{color:var(--err);font-weight:600}
.td-acoes{display:flex;gap:6px;justify-content:flex-end}
@media (max-width:700px){table.t.resp td.td-acoes-cel{justify-content:flex-end}table.t.resp td.td-acoes-cel::before{content:none}}
@media (max-width:700px){table.t.resp td.hide-m{display:none}}
