/* ============================================================
   PATINHAGRAM CRM — tema white-label
   As cores vêm de --marca-1 / --marca-2 (definidas em runtime
   a partir do logo do parceiro). Tudo aqui é neutro e profissional;
   a personalidade vem da marca de cada loja.
   ============================================================ */
:root{
  --marca-1:#1B7A8C;          /* cor primária do parceiro */
  --marca-2:#FF8A3D;          /* cor secundária do parceiro */
  --marca-1-suave:#E3F2F5;
  --tinta:#1F2A30;
  --tinta-2:#5E6E76;
  --linha:#E7EDF0;
  --fundo:#F4F7F9;
  --branco:#fff;
  --ok:#2FA572;--ok-s:#E4F5EC;
  --alerta:#E8554E;--alerta-s:#FDEAE9;
  --aviso:#E0A325;--aviso-s:#FBF2DC;
  --raio:14px;--raio-p:9px;
  --sombra:0 1px 3px rgba(31,42,48,.08),0 1px 2px rgba(31,42,48,.04);
  --sombra-2:0 8px 24px rgba(31,42,48,.12);
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter',system-ui,sans-serif;background:var(--fundo);color:var(--tinta);font-size:15px;line-height:1.5}
h1,h2,h3,h4{font-family:'Plus Jakarta Sans','Inter',sans-serif;font-weight:700;letter-spacing:-.01em}
a{color:var(--marca-1);text-decoration:none}
img{max-width:100%}
button{font-family:inherit;cursor:pointer}

/* layout */
.crm{display:grid;grid-template-columns:248px 1fr;min-height:100vh}
.lateral{background:var(--branco);border-right:1px solid var(--linha);padding:20px 14px;position:sticky;top:0;height:100vh;overflow-y:auto}
.marca-topo{display:flex;align-items:center;gap:11px;padding:6px 8px 18px;border-bottom:1px solid var(--linha);margin-bottom:14px}
.marca-topo img{width:42px;height:42px;border-radius:10px;object-fit:cover;background:var(--marca-1-suave)}
.marca-topo .logo-fallback{width:42px;height:42px;border-radius:10px;background:var(--marca-1);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.2rem;font-family:'Plus Jakarta Sans'}
.marca-topo b{font-family:'Plus Jakarta Sans';font-size:1.02rem;line-height:1.1;display:block}
.marca-topo small{color:var(--tinta-2);font-size:.74rem}
.nav-grupo{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--tinta-2);font-weight:700;margin:16px 10px 6px}
.nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:var(--raio-p);color:var(--tinta-2);font-weight:600;font-size:.92rem;margin-bottom:2px;cursor:pointer;transition:.12s}
.nav a:hover{background:var(--fundo);color:var(--tinta)}
.nav a.ativo{background:var(--marca-1);color:#fff}
.nav a .ic{width:18px;text-align:center}
.selo-patinha{margin-top:18px;padding:12px;border-radius:var(--raio-p);background:var(--marca-1-suave);font-size:.74rem;color:var(--tinta-2);text-align:center;line-height:1.4}

.conteudo{padding:26px 30px;max-width:1180px}
.cab{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:22px}
.cab h1{font-size:1.5rem}
.cab .sub{color:var(--tinta-2);font-size:.9rem}

/* botões */
.btn{display:inline-flex;align-items:center;gap:7px;justify-content:center;border:none;border-radius:var(--raio-p);padding:10px 18px;font-weight:700;font-size:.9rem;transition:.13s}
.btn-1{background:var(--marca-1);color:#fff}
.btn-1:hover{filter:brightness(1.08)}
.btn-2{background:var(--marca-2);color:#fff}
.btn-2:hover{filter:brightness(1.06)}
.btn-fant{background:var(--branco);border:1.5px solid var(--linha);color:var(--tinta)}
.btn-fant:hover{border-color:var(--marca-1);color:var(--marca-1)}
.btn-p{padding:7px 13px;font-size:.83rem}

/* cards & grid */
.cards{display:grid;gap:16px}
.g4{grid-template-columns:repeat(4,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--branco);border:1px solid var(--linha);border-radius:var(--raio);padding:18px;box-shadow:var(--sombra)}
.card h3{font-size:1rem;margin-bottom:12px}

/* KPI */
.kpi .topo{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.kpi .ic{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;background:var(--marca-1-suave)}
.kpi .num{font-family:'Plus Jakarta Sans';font-size:1.8rem;font-weight:800;line-height:1}
.kpi .lb{color:var(--tinta-2);font-size:.82rem;font-weight:600;margin-top:3px}

/* listas */
.linha-item{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--linha)}
.linha-item:last-child{border:none}
.av{width:38px;height:38px;border-radius:9px;background:var(--marca-1-suave);color:var(--marca-1);display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
.linha-item .meta{flex:1;min-width:0}
.linha-item .meta b{font-size:.92rem}
.linha-item .meta small{display:block;color:var(--tinta-2);font-size:.8rem}

/* status pílulas */
.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:99px;font-size:.74rem;font-weight:700}
.p-agendado{background:var(--marca-1-suave);color:var(--marca-1)}
.p-confirmado{background:#E5EEFB;color:#2D68C4}
.p-em_atendimento{background:var(--aviso-s);color:var(--aviso)}
.p-concluido{background:var(--ok-s);color:var(--ok)}
.p-cancelado{background:var(--alerta-s);color:var(--alerta)}
.p-faltou{background:#EFE7E7;color:#8a7575}

/* agenda kanban */
.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:start}
.col{background:var(--branco);border:1px solid var(--linha);border-radius:var(--raio);padding:12px;min-height:200px}
.col .cab-col{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:.86rem;margin-bottom:10px}
.col .cab-col .cnt{background:var(--fundo);border-radius:99px;padding:1px 9px;font-size:.74rem;color:var(--tinta-2)}
.atend{background:var(--fundo);border-radius:var(--raio-p);padding:10px 12px;margin-bottom:8px;cursor:grab;border-left:3px solid var(--marca-1)}
.atend b{font-size:.86rem;display:block}
.atend small{color:var(--tinta-2);font-size:.78rem}

/* tabelas */
table{width:100%;border-collapse:collapse}
th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--tinta-2);padding:9px 10px;border-bottom:1.5px solid var(--linha)}
td{padding:11px 10px;border-bottom:1px solid var(--linha);font-size:.9rem}
tr:hover td{background:var(--fundo)}

/* forms */
label{font-weight:700;font-size:.82rem;display:block;margin-bottom:5px}
input,select,textarea{width:100%;padding:10px 12px;border:1.5px solid var(--linha);border-radius:var(--raio-p);font-family:inherit;font-size:.92rem;background:#fff;transition:.12s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--marca-1)}
.campo{margin-bottom:14px}
.dica{font-size:.78rem;color:var(--tinta-2);margin-top:4px}
.g-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* swatch de cor */
.swatch{display:flex;align-items:center;gap:10px}
.swatch input[type=color]{width:48px;height:42px;padding:3px;cursor:pointer}

/* upload logo */
.logo-drop{border:2px dashed var(--marca-1);background:var(--marca-1-suave);border-radius:var(--raio);padding:24px;text-align:center;cursor:pointer;font-weight:600;color:var(--marca-1)}

/* planos */
.plano{background:var(--branco);border:2px solid var(--linha);border-radius:var(--raio);padding:22px;position:relative;transition:.15s}
.plano.top{border-color:var(--marca-2);box-shadow:var(--sombra-2)}
.plano.top::before{content:attr(data-tag);position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--marca-2);color:#fff;font-size:.72rem;font-weight:800;padding:3px 14px;border-radius:99px;white-space:nowrap}
.plano .preco{font-family:'Plus Jakarta Sans';font-size:2rem;font-weight:800;margin:6px 0}
.plano .preco small{font-size:.8rem;font-weight:600;color:var(--tinta-2)}
.plano ul{list-style:none;margin:14px 0}
.plano li{padding:6px 0;font-size:.86rem;display:flex;gap:8px}
.plano li::before{content:'✓';color:var(--ok);font-weight:800}
.plano.atual-plano{border-color:var(--marca-1)}

/* modal */
.modal-bg{position:fixed;inset:0;background:rgba(20,30,35,.5);display:none;align-items:center;justify-content:center;z-index:1000;padding:18px}
.modal-bg.on{display:flex}
.modal{background:#fff;border-radius:var(--raio);max-width:540px;width:100%;padding:26px;max-height:92vh;overflow:auto;position:relative}
.modal .x{position:absolute;top:13px;right:15px;background:none;border:none;font-size:1.3rem;color:var(--tinta-2)}

/* toast */
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(100px);background:var(--tinta);color:#fff;padding:12px 22px;border-radius:99px;font-weight:600;z-index:1100;opacity:0;transition:.3s;box-shadow:var(--sombra-2)}
.toast.on{transform:translateX(-50%) translateY(0);opacity:1}

/* seções */
.tela{display:none}
.tela.ativa{display:block}
.vazio{text-align:center;padding:40px;color:var(--tinta-2)}
.spin{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:g .7s linear infinite}
@keyframes g{to{transform:rotate(360deg)}}

/* topo mobile */
.topo-mob{display:none}
@media(max-width:880px){
  .crm{grid-template-columns:1fr}
  .lateral{position:fixed;left:-260px;top:0;z-index:1200;transition:.2s;width:248px}
  .lateral.aberta{left:0}
  .topo-mob{display:flex;align-items:center;gap:12px;background:#fff;padding:12px 16px;border-bottom:1px solid var(--linha);position:sticky;top:0;z-index:900}
  .topo-mob button{background:none;border:none;font-size:1.4rem}
  .g4{grid-template-columns:1fr 1fr}.g3,.g2{grid-template-columns:1fr}
  .kanban{grid-template-columns:1fr;}
  .conteudo{padding:18px}
  .g-form{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ===== CHAT ===== */
.chat-layout{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start;height:calc(100vh - 170px);min-height:460px}
.chat-inbox{overflow-y:auto;height:100%;padding:14px}
.inbox-item{display:flex;align-items:center;gap:10px;padding:10px;border-radius:var(--raio-p);cursor:pointer;position:relative}
.inbox-item:hover{background:var(--fundo)}
.inbox-item.sel{background:var(--marca-1-suave)}
.inbox-item .meta{flex:1;min-width:0}
.inbox-item .meta b{font-size:.9rem;display:block}
.inbox-item .meta small{color:var(--tinta-2);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;max-width:190px}
.badge-nao-lida{background:var(--marca-2);color:#fff;border-radius:99px;min-width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;padding:0 6px}
.chat-conversa{height:100%;display:flex;flex-direction:column;padding:0;overflow:hidden}
.chat-vazio{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--tinta-2);gap:8px}
.chat-topo{display:flex;align-items:center;gap:11px;padding:14px 18px;border-bottom:1px solid var(--linha)}
.chat-msgs{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:8px;background:var(--fundo)}
.bolha{max-width:75%;padding:9px 13px;border-radius:14px;font-size:.9rem;box-shadow:var(--sombra)}
.bolha small{display:block;font-size:.68rem;opacity:.65;margin-top:4px}
.bolha.enviada{align-self:flex-end;background:var(--marca-1);color:#fff;border-bottom-right-radius:4px}
.bolha.recebida{align-self:flex-start;background:#fff;border-bottom-left-radius:4px}
.chat-barra{display:flex;gap:8px;align-items:flex-end;padding:12px;border-top:1px solid var(--linha);background:#fff}
.chat-barra textarea{flex:1;resize:none;min-height:42px;max-height:120px}
.tpl-item{border:1.5px solid var(--linha);border-radius:var(--raio-p);padding:11px 13px;margin-bottom:8px;cursor:pointer;position:relative;transition:.12s}
.tpl-item:hover{border-color:var(--marca-1);background:var(--marca-1-suave)}
.tpl-item b{font-size:.9rem;display:block}
.tpl-item small{color:var(--tinta-2);font-size:.82rem;display:block;margin-top:2px}
.tpl-tag{position:absolute;top:10px;right:12px;font-size:.66rem;font-weight:800;background:var(--fundo);color:var(--tinta-2);padding:2px 8px;border-radius:99px}
.tpl-tag.minha{background:var(--marca-1-suave);color:var(--marca-1)}
@media(max-width:880px){
  .chat-layout{grid-template-columns:1fr;height:auto}
  .chat-inbox{height:auto;max-height:280px}
  .chat-conversa{height:70vh}
}

/* ===== ESTÚDIO ===== */
.doc-tipo{cursor:pointer;text-align:center;transition:.14s}
.doc-tipo:hover{transform:translateY(-3px);border-color:var(--marca-1);box-shadow:var(--sombra-2)}
.doc-tipo .doc-ic{font-size:2rem;margin-bottom:6px}
.doc-tipo b{display:block;font-size:.95rem}
.doc-tipo small{color:var(--tinta-2);font-size:.8rem}

/* ===== EQUIPE / PERMISSÕES ===== */
.perms-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.perm-item{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--fundo);border-radius:var(--raio-p);font-size:.86rem;font-weight:600;cursor:pointer}
.perm-item input{width:auto;margin:0}
.pet-etiq{color:#fff;font-weight:700;font-size:.74rem;padding:4px 10px;border-radius:99px;cursor:pointer}

/* ===== SLIDER ANTES & DEPOIS ===== */
.ad-slider{position:relative;width:100%;aspect-ratio:1;overflow:hidden;border-radius:10px;user-select:none;cursor:ew-resize;background:#000;touch-action:none}
.ad-slider img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ad-slider .ad-antes-wrap{position:absolute;top:0;left:0;height:100%;width:50%;overflow:hidden}
.ad-slider .ad-antes-wrap img{position:absolute;top:0;left:0;height:100%;max-width:none;object-fit:cover}
.ad-slider .ad-divisor{position:absolute;top:0;left:50%;height:100%;width:3px;background:#fff;transform:translateX(-50%);box-shadow:0 0 6px rgba(0,0,0,.4)}
.ad-slider .ad-puxador{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:36px;height:36px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;font-size:.9rem;color:var(--marca-1);box-shadow:0 2px 8px rgba(0,0,0,.3)}
.ad-tag{position:absolute;top:10px;font-size:.7rem;font-weight:800;color:#fff;background:rgba(0,0,0,.55);padding:3px 9px;border-radius:99px}
.ad-tag-a{left:10px}.ad-tag-d{right:10px;background:var(--marca-1)}
@media(max-width:600px){.perms-grid{grid-template-columns:1fr}}
