:root{
  --brand:#7c3aed; --brand-2:#ec4899; --brand-dark:#5b21b6;
  --ink:#0f172a; --muted:#64748b; --line:#e2e8f0;
  --bg:#f8fafc; --card:#ffffff;
  --success:#10b981; --warning:#f59e0b; --danger:#ef4444;
  --grad-brand: linear-gradient(135deg,#7c3aed 0%,#ec4899 100%);
  --grad-hero:  linear-gradient(120deg,#0f172a 0%,#1e1b4b 45%,#4c1d95 100%);
  --shadow-sm:0 1px 2px rgba(15,23,42,.06),0 1px 3px rgba(15,23,42,.04);
  --shadow-md:0 4px 12px rgba(15,23,42,.08);
  --shadow-lg:0 20px 40px -12px rgba(15,23,42,.18);
  --r-sm:.5rem; --r-md:.85rem; --r-lg:1.25rem;
}
*{ -webkit-font-smoothing:antialiased; }
body{ background:var(--bg); color:var(--ink); font-family:'Inter',-apple-system,'Segoe UI',Roboto,sans-serif; }

/* NAV */
.navbar{ backdrop-filter:saturate(180%) blur(14px); background:rgba(255,255,255,.85)!important; border-bottom:1px solid var(--line); box-shadow:none!important; }
.navbar-brand{ font-weight:800; font-size:1.35rem; background:var(--grad-brand); -webkit-background-clip:text; background-clip:text; color:transparent!important; letter-spacing:-.02em; }
.navbar .form-control{ border-radius:999px; border:1px solid var(--line); padding:.55rem 1.1rem; background:#f1f5f9; transition:.2s; }
.navbar .form-control:focus{ background:#fff; border-color:var(--brand); box-shadow:0 0 0 4px rgba(124,58,237,.12); }
.navbar .nav-link{ color:var(--ink)!important; font-weight:500; }
.dropdown-menu{ border:1px solid var(--line); box-shadow:var(--shadow-lg); border-radius:var(--r-md); padding:.5rem; }
.dropdown-item{ border-radius:.5rem; padding:.55rem .75rem; }

/* CATEGORIAS BAR */
.cat-bar{ background:#fff; border-bottom:1px solid var(--line); padding:.65rem 0; }
.cat-bar a{ color:var(--muted); font-weight:500; font-size:.88rem; padding:.35rem .75rem; border-radius:999px; transition:.15s; text-decoration:none; white-space:nowrap; }
.cat-bar a:hover{ background:#f1f5f9; color:var(--brand); }

/* BUTTONS */
.btn{ font-weight:600; border-radius:.65rem; padding:.55rem 1.15rem; transition:.2s; }
.btn-brand{ background:var(--grad-brand); border:none; color:#fff!important; box-shadow:0 4px 14px rgba(124,58,237,.35); }
.btn-brand:hover{ transform:translateY(-1px); box-shadow:0 6px 20px rgba(124,58,237,.45); color:#fff; }
.btn-outline-primary{ border-color:var(--brand); color:var(--brand); }
.btn-outline-primary:hover{ background:var(--brand); border-color:var(--brand); }
.text-brand{ color:var(--brand)!important; }

/* HERO */
.hero{ background:var(--grad-hero); color:#fff; padding:80px 40px; border-radius:var(--r-lg); position:relative; overflow:hidden; }
.hero::before{ content:''; position:absolute; inset:0; background:radial-gradient(600px 300px at 80% 20%, rgba(236,72,153,.35), transparent 60%), radial-gradient(500px 300px at 10% 80%, rgba(124,58,237,.4), transparent 60%); pointer-events:none; }
.hero > *{ position:relative; z-index:1; }
.hero h1{ font-weight:800; font-size:clamp(2rem,4vw,3.25rem); letter-spacing:-.03em; line-height:1.1; }
.hero .lead{ font-size:1.15rem; opacity:.9; max-width:600px; }

/* CARDS PRODUTO */
.card-product{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; transition:.25s; box-shadow:var(--shadow-sm); position:relative; }
.card-product:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:transparent; }
.card-product .thumb{ height:200px; background:#f1f5f9 center/cover no-repeat; position:relative; }
.card-product .thumb::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 70%,rgba(0,0,0,.15)); }
.card-product .card-body{ padding:1rem 1.1rem 1.15rem; }
.card-product .title{ font-weight:600; font-size:.98rem; color:var(--ink); line-height:1.35; margin-bottom:.35rem; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.75em; }
.card-product .price{ background:var(--grad-brand); -webkit-background-clip:text; background-clip:text; color:transparent; font-weight:800; font-size:1.25rem; letter-spacing:-.02em; }
.card-product .meta{ font-size:.78rem; color:var(--muted); }
.badge-featured{ background:linear-gradient(135deg,#f59e0b,#ef4444); color:#fff; position:absolute; top:.75rem; left:.75rem; font-weight:600; padding:.35rem .65rem; border-radius:999px; font-size:.7rem; box-shadow:0 4px 12px rgba(245,158,11,.4); z-index:2; }

/* PAINEL LATERAL */
.side-panel{ background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:.75rem; }
.side-panel a{ color:var(--ink); text-decoration:none; display:flex; align-items:center; gap:.6rem; padding:.65rem .85rem; border-radius:.6rem; font-size:.92rem; font-weight:500; transition:.15s; margin-bottom:2px; }
.side-panel a:hover{ background:#f1f5f9; }
.side-panel a.active{ background:var(--grad-brand); color:#fff; box-shadow:0 4px 12px rgba(124,58,237,.3); }
.side-panel a i{ font-size:1.05rem; opacity:.85; }

/* STATS */
.stat-card{ background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:1.25rem 1.35rem; box-shadow:var(--shadow-sm); transition:.2s; }
.stat-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-2px); }
.stat-card .value{ font-size:2.1rem; font-weight:800; color:var(--ink); letter-spacing:-.03em; line-height:1; }
.stat-card .label{ text-transform:uppercase; font-size:.72rem; letter-spacing:.05em; color:var(--muted); font-weight:700; margin-top:.35rem; }
.stat-card .icon-wrap{ width:44px; height:44px; border-radius:.75rem; background:var(--grad-brand); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.25rem; box-shadow:0 4px 12px rgba(124,58,237,.3); }

/* CHAT */
.chat-box{ height:60vh; overflow-y:auto; background:#f8fafc; padding:1.25rem; border-radius:var(--r-md); border:1px solid var(--line); }
.chat-msg{ max-width:70%; padding:.6rem 1rem; margin:.4rem 0; border-radius:1.15rem; font-size:.92rem; box-shadow:var(--shadow-sm); }
.chat-msg.me{ background:var(--grad-brand); color:#fff; margin-left:auto; border-bottom-right-radius:.3rem; }
.chat-msg.them{ background:#fff; border:1px solid var(--line); border-bottom-left-radius:.3rem; }

/* GALLERY */
.gallery img{ width:100%; height:440px; object-fit:cover; border-radius:var(--r-md); box-shadow:var(--shadow-md); }
.gallery-thumbs img{ width:74px; height:74px; object-fit:cover; border-radius:.5rem; cursor:pointer; margin:4px 4px 0 0; opacity:.6; transition:.15s; border:2px solid transparent; }
.gallery-thumbs img.active,.gallery-thumbs img:hover{ opacity:1; border-color:var(--brand); }

/* FORMS */
.form-control,.form-select{ border:1px solid var(--line); border-radius:.6rem; padding:.6rem .85rem; transition:.15s; }
.form-control:focus,.form-select:focus{ border-color:var(--brand); box-shadow:0 0 0 4px rgba(124,58,237,.12); }
.form-label{ font-weight:600; font-size:.88rem; color:var(--ink); margin-bottom:.35rem; }
.card{ border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--shadow-sm); }
.card-body{ padding:1.5rem; }
h1,h2,h3,h4,h5{ letter-spacing:-.02em; font-weight:700; }

/* FOOTER */
footer{ background:#0f172a!important; color:#94a3b8!important; padding:2.5rem 0!important; }
footer strong{ color:#fff!important; }

/* UTIL */
.no-thumb{ background:#e2e8f0 url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="60" height="60" viewBox="0 0 24 24" fill="none" stroke="%2394a3b8" stroke-width="1.5"><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.5"/><path d="m21 15-5-5L5 21"/></svg>') center/60px no-repeat!important; }
.alert{ border:none; border-radius:var(--r-md); padding:.9rem 1.15rem; }
.alert-success{ background:#d1fae5; color:#065f46; }
.alert-danger{ background:#fee2e2; color:#991b1b; }
.alert-info{ background:#dbeafe; color:#1e40af; }
.badge{ font-weight:600; padding:.4em .7em; border-radius:.5rem; }
.table{ font-size:.92rem; }
.table thead th{ font-weight:600; color:var(--muted); text-transform:uppercase; font-size:.75rem; letter-spacing:.05em; border-bottom:2px solid var(--line); }
