:root{
  --bg:#070a12; --bg-alt:#0a0e18; --panel:#121828; --panel-2:#0c111d;
  --border:#20283a; --border-soft:#ffffff10;
  --text:#f7f8fc; --muted:#8892a6; --muted-soft:#7e899e;
  --accent:#6d5dfc; --accent-2:#887cff; --accent-soft:#6d5dfc40;
  --green:#42dc9b; --red:#ff7181; --amber:#ffb84d;
  --radius:14px; --radius-lg:20px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:15px Inter,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit}
::selection{background:var(--accent);color:#fff}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#252d40;border-radius:8px}
.wrap{width:min(1180px,calc(100% - 36px));margin:auto}

/* ---------- top nav / site ---------- */
.top{position:sticky;top:0;z-index:5;background:#070a12e8;backdrop-filter:blur(18px);border-bottom:1px solid var(--border-soft)}
.nav{height:76px;display:flex;align-items:center;gap:22px}
.brand{text-decoration:none;font-weight:850;display:flex;align-items:center;gap:10px}
.brand small{display:block;font-size:8px;color:#8993a7;letter-spacing:1.3px}
.brand-logo{height:40px;width:auto;border-radius:10px;object-fit:cover}
.mark{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--accent-2));font-size:10px;font-weight:900;color:#fff}
.nav nav{margin-left:auto;display:flex;gap:20px}
.nav nav a{color:#aeb7c9;text-decoration:none;font-size:13px;transition:color .15s}
.nav nav a:hover{color:#fff}

.btn{display:inline-flex;justify-content:center;align-items:center;gap:8px;padding:12px 18px;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;text-decoration:none;font-weight:800;font-size:14px;border:0;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 8px 24px #6d5dfc30}
.btn:hover{transform:translateY(-1px);box-shadow:0 12px 30px #6d5dfc45}
.btn:active{transform:translateY(0)}
.btn.ghost{background:#ffffff08;border:1px solid #ffffff18;box-shadow:none}
.btn.ghost:hover{background:#ffffff12}
.btn-block{width:100%}

/* ---------- hero ---------- */
.hero{padding:90px 0;background:radial-gradient(circle at 80% 20%,var(--accent-soft),transparent 32%),radial-gradient(circle at 15% 50%,#19c37d18,transparent 28%)}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:65px;align-items:center}
.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted-soft);font-weight:850}
.hero h1{font-size:clamp(43px,6vw,72px);line-height:1.02;letter-spacing:-3px;margin:12px 0 20px}
.hero p{font-size:19px;color:#9da7bb;max-width:650px}
.actions{display:flex;gap:12px;margin:28px 0}
.trust{display:flex;gap:15px;flex-wrap:wrap;color:#8490a4;font-size:12px}
.card,.service,.plan,.panel,.kpi{background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 25px 70px #0005}
.hero-card{padding:24px}
.hero-carousel-card{padding:0;overflow:hidden}
.hero-carousel{height:380px;border:0;border-radius:inherit}
.hero-carousel .carousel-track,.hero-carousel .carousel-slide{height:100%}
.hero-slide{background-position:center;background-size:cover;display:flex;align-items:flex-end;height:100%}
.hero-slide-inner{padding:26px;background:linear-gradient(0deg,#000000cc,transparent 65%);width:100%}
.hero-slide-inner .tag{color:#e3e6ee}
.hero-slide-inner h3{margin:8px 0 14px;font-size:24px}
.hero-slide-inner .row-gap{align-items:center;flex-wrap:wrap;justify-content:space-between}
.hero-slide-inner strong{font-size:19px}
.hero-carousel-empty{height:380px;display:grid;place-items:center;padding:30px;text-align:center}

/* ---------- carousel (shared: banners + gallery) ---------- */
.banners{padding:20px 0 10px}
.carousel{position:relative;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border)}
.carousel-track{position:relative}
.carousel-slide{position:absolute;inset:0;opacity:0;transition:opacity .6s ease}
.carousel-slide.is-active{position:relative;opacity:1}

.banner-carousel{min-height:220px}
.banner-slide{background:linear-gradient(120deg,#1a1440,#0c1a24) center/cover;display:flex;align-items:flex-end}
.banner-inner{padding:28px 32px;background:linear-gradient(0deg,#000000b0,transparent);width:100%}
.banner-inner h3{margin:0 0 6px;font-size:24px}
.banner-inner p{margin:0 0 14px;color:#dfe3ee}

.gallery-carousel .carousel-slide{min-height:320px}
.gallery-slide{display:block}
.gallery-slide img{width:100%;height:420px;object-fit:cover;display:block}
.gallery-caption{position:absolute;left:18px;bottom:18px;padding:8px 14px;border-radius:100px;background:#000000a0;font-size:13px;font-weight:700}


.car-dots{position:absolute;right:18px;bottom:18px;display:flex;gap:6px;z-index:2}
.car-dots button{width:9px;height:9px;border-radius:50%;border:0;background:#ffffff55;cursor:pointer;padding:0}
.car-dots button.is-active{background:#fff}
.car-arrow{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:1px solid #ffffff30;background:#00000060;color:#fff;font-size:20px;line-height:1;cursor:pointer;display:grid;place-items:center;z-index:2;transition:background .15s}
.car-arrow:hover{background:#000000a0}
.car-prev{left:14px}
.car-next{right:14px}
@media(max-width:850px){.car-arrow{width:32px;height:32px;font-size:16px}.gallery-slide img{height:230px}}

/* ---------- sections ---------- */
.section{padding:90px 0}
.alt{background:var(--bg-alt)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:30px}
.section h2,.cta h2{font-size:clamp(30px,4vw,45px);line-height:1.08;letter-spacing:-1.7px;margin:8px 0}
.muted{color:var(--muted-soft)}
.cards,.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.service,.plan{padding:25px;transition:transform .18s ease,border-color .18s ease}
.service:hover,.plan:hover{transform:translateY(-3px);border-color:#3b4560}
.tag{font-size:10px;color:#8993a7;letter-spacing:1.4px;font-weight:800}
.service h3{font-size:21px;margin:18px 0 6px}
.service p,.plan p,.plan li{color:#9da7bb}
.service strong{display:block;font-size:25px;margin:20px 0}
.service a{text-decoration:none;color:#aaa2ff;font-weight:800}
.plan h3{font-size:34px;margin:15px 0}
.plan ul{min-height:120px;padding-left:20px}
.featured{border-color:#6d5dfc88}
.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:12px}
.faq details{padding:18px;background:#101725;border:1px solid var(--border);border-radius:14px}
.faq summary{cursor:pointer;font-weight:800}
.faq p{color:#9da7bb}
.cta{padding:65px 0;background:linear-gradient(100deg,#171332,#0c241d)}
.cta-in{display:flex;justify-content:space-between;align-items:center;gap:25px}
footer{padding:35px 0;border-top:1px solid var(--border-soft);color:var(--muted-soft)}
.foot{display:flex;justify-content:space-between}
.wa{position:fixed;right:22px;bottom:22px;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#19c37d;color:#fff;text-decoration:none;font-weight:900;z-index:10;box-shadow:0 10px 26px #19c37d55}

@media(max-width:850px){
  .nav nav{display:none}.nav .btn{margin-left:auto}
  .hero{padding:55px 0}.hero-grid,.cards,.plans,.faq{grid-template-columns:1fr}
  .section{padding:65px 0}.section-head,.cta-in,.foot{display:block}
  .actions{flex-direction:column}.btn{width:100%}
  .hero h1{letter-spacing:-2px}.hero-card{margin-top:15px}
  .hero-carousel,.hero-carousel-empty{height:220px}
}

/* ================= ADMIN PANEL ================= */
.admin{display:flex;min-height:100vh}
.side{position:fixed;inset:0 auto 0 0;width:240px;height:100vh;background:#0b101b;border-right:1px solid var(--border-soft);padding:18px 12px;display:flex;flex-direction:column}
.side-brand{display:flex;align-items:center;gap:10px;padding:8px 10px 20px}
.mark-sm{width:34px;height:34px;font-size:9px;flex:none}
.side-brand h2{font-size:14px;margin:0}
.side-brand small{color:var(--muted-soft);font-size:10px}
.side-nav{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto}
.side a{display:flex;align-items:center;gap:11px;padding:11px 13px;color:#8d98ad;text-decoration:none;border-radius:9px;font-size:13px;transition:background .15s,color .15s}
.side a svg{flex:none;opacity:.85}
.side a:hover{background:#ffffff09;color:#fff}
.side a.active{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff}
.side a.active svg{opacity:1}
.side-foot{border-top:1px solid var(--border-soft);padding-top:10px;margin-top:8px;display:flex;flex-direction:column;gap:2px}
.main{margin-left:240px;width:calc(100% - 240px);padding:32px 34px}
.bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:16px}
.bar h1{margin:0;font-size:27px;letter-spacing:-.5px}

.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}
.kpi{padding:18px}
.kpi small{color:var(--muted-soft);font-size:11px;letter-spacing:.3px}
.kpi b{display:block;font-size:25px;margin:7px 0}
.grid{display:grid;grid-template-columns:1.3fr .7fr;gap:14px;margin-top:14px}
.panel{padding:20px;margin-top:14px}
.panel.panel-narrow{max-width:560px}
.panel h3{margin-top:0}

.table{width:100%;border-collapse:collapse;font-size:13px}
.table th,.table td{padding:12px 8px;border-bottom:1px solid #ffffff0b;text-align:left;vertical-align:middle}
.table th{color:var(--muted-soft);font-weight:700;font-size:11px;letter-spacing:.4px;text-transform:uppercase}
.table tr:hover td{background:#ffffff03}

.form{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.field label{display:block;color:var(--muted-soft);font-size:11px;margin-bottom:6px;font-weight:600;letter-spacing:.2px}
.field input,.field select,.field textarea{width:100%;padding:10px 12px;background:#0b101b;border:1px solid #273044;border-radius:9px;color:#fff;font:inherit;transition:border-color .15s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent)}
.field textarea{resize:vertical}
.field.checkbox-field label{display:flex;align-items:center;gap:8px;color:var(--text);font-size:13px}
.field.checkbox-field input{width:auto}
.full{grid-column:1/-1}
.row-gap{display:flex;align-items:center;gap:12px}

.row-actions{display:flex;gap:8px;align-items:center}
.btn-sm{display:inline-flex;align-items:center;padding:7px 12px;border-radius:8px;background:#ffffff0c;border:1px solid #ffffff16;color:#fff;text-decoration:none;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s}
.btn-sm:hover{background:#ffffff1a}
.btn-danger{background:#ff71811a;border-color:#ff718140;color:var(--red)}
.btn-danger:hover{background:#ff71812c}

.pill{display:inline-block;padding:4px 10px;border-radius:100px;font-size:11px;font-weight:800;letter-spacing:.2px}
.pill-ativo,.pill-pago{background:#42dc9b1e;color:var(--green)}
.pill-pendente,.pill-a-vencer{background:#ffb84d1e;color:var(--amber)}
.pill-cancelado,.pill-vencido{background:#ff71811e;color:var(--red)}

.cols-4{grid-template-columns:repeat(4,1fr)}
.lead-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;border-top:1px solid var(--border-soft)}
.lead-row p{margin:0}
.inline-select select{padding:7px 10px;font-size:12px;background:#0b101b;border:1px solid #273044;border-radius:8px;color:#fff}

.alert{padding:12px 16px;border-radius:10px;font-size:13px;margin-bottom:16px}
.alert-ok{background:#42dc9b1a;color:var(--green);border:1px solid #42dc9b40}
.alert-error{background:#ff71811a;color:var(--red);border:1px solid #ff718140}
.alert-warn{background:#ffb84d1a;color:var(--amber);border:1px solid #ffb84d40}

.logo-row .logo-preview-row{display:flex;align-items:center;gap:14px}
.logo-preview{width:56px;height:56px;border-radius:12px;object-fit:cover;font-size:10px}
.banner-preview,.banner-thumb{width:100%;max-height:120px;object-fit:cover;border-radius:10px;margin-bottom:10px}
.banner-card{position:relative}
.gallery-item .inline-caption input{margin-bottom:10px}
.gallery-item .row-actions{flex-wrap:wrap}

/* ---------- login ---------- */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 0%,var(--accent-soft),transparent 40%)}
.login-card{width:min(430px,100%);padding:34px}
.login-mark{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;font-weight:900;font-size:12px;margin-bottom:16px}
.login-card h1{margin:6px 0 2px;font-size:26px}
.login-card .field{margin-bottom:14px}

@media(max-width:850px){
  .admin{display:block}
  .side{position:static;width:100%;height:auto;flex-direction:row;overflow:auto;padding:10px}
  .side-brand{display:none}
  .side-nav{flex-direction:row}
  .side-foot{flex-direction:row;border-top:0;border-left:1px solid var(--border-soft);margin:0;padding:0 0 0 8px}
  .side a span{display:none}
  .main{margin:0;width:100%;padding:18px}
  .kpis,.cols-4{grid-template-columns:repeat(2,1fr)}
  .grid,.form{grid-template-columns:1fr}
  .full{grid-column:auto}
  .panel{overflow:auto}
  .table{min-width:620px}
  .bar{flex-direction:column;align-items:flex-start}
}
