:root{
  --terra:#F7941D;
  --terra-deep:#D9720B;
  --teal:#00A99D;
  --teal-deep:#00847A;
  --navy:#173A56;
  --navy-soft:#2E5473;
  --leaf:#5FA352;
  --sand:#FFF8EE;
  --paper:#FFFFFF;
  --ink:#1C2B36;
  --ink-soft:#5B6E7A;
  --line:#E7DFD1;
  --ok:#2E8B57;
  --warn:#C77700;
  --danger:#C0392B;
  --radius:14px;
  --shadow: 0 12px 32px -12px rgba(23,58,86,0.18);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Inter',sans-serif;
  background:var(--sand);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:'Fraunces',serif;
  color:var(--navy);
  margin:0 0 .4em 0;
  line-height:1.15;
}
.eyebrow{
  font-family:'Space Grotesk',sans-serif;
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.72rem;
  font-weight:600;
  color:var(--teal-deep);
}
a{color:inherit;}
button{font-family:inherit;}
.wrap{max-width:1040px;margin:0 auto;padding:0 22px;}

/* Header */
header.site{
  background:var(--paper);
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:50;
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 22px;max-width:1040px;margin:0 auto;
}
.brand{display:flex;align-items:center;gap:12px;}
.brand-mark{
  width:46px;height:46px;border-radius:11px;
  background:conic-gradient(from 200deg, var(--teal), var(--leaf) 30%, #F4D35E 55%, var(--terra) 80%, var(--teal));
  display:flex;align-items:center;justify-content:center;
  box-shadow:inset 0 0 0 3px rgba(255,255,255,0.55);
  flex-shrink:0;
}
.brand-mark svg{width:26px;height:26px;}
.brand-text{line-height:1.2;}
.brand-text .top{
  font-family:'Space Grotesk',sans-serif;font-size:.68rem;font-weight:600;
  letter-spacing:.08em;color:var(--ink-soft);text-transform:uppercase;
}
.brand-text .main{
  font-family:'Fraunces',serif;font-weight:700;font-size:1.22rem;color:var(--terra-deep);
  letter-spacing:.01em;
}
.nav-cta{
  background:var(--teal);color:#fff;border:none;padding:11px 20px;border-radius:999px;
  font-weight:600;font-size:.92rem;cursor:pointer;box-shadow:0 8px 18px -8px rgba(0,132,122,0.55);
  transition:transform .15s ease, box-shadow .15s ease;
}
.nav-cta:hover{transform:translateY(-1px);box-shadow:0 10px 22px -8px rgba(0,132,122,0.65);}
.nav-cta:focus-visible{outline:3px solid var(--navy);outline-offset:2px;}

/* Hero */
.hero{
  padding:56px 0 40px;
  background:
    radial-gradient(560px 260px at 88% -10%, rgba(0,169,157,0.16), transparent 60%),
    radial-gradient(420px 220px at 6% 8%, rgba(247,148,29,0.14), transparent 60%);
}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:38px;align-items:center;}
.hero h1{font-size:2.5rem;font-weight:600;}
.hero h1 em{font-style:normal;color:var(--terra-deep);}
.hero p.lead{font-size:1.06rem;color:var(--ink-soft);max-width:46ch;margin:14px 0 22px;}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;}
.btn-primary{
  background:var(--terra);color:#fff;border:none;padding:14px 26px;border-radius:999px;
  font-weight:700;font-size:.98rem;cursor:pointer;box-shadow:0 10px 24px -10px rgba(217,114,11,0.6);
  transition:transform .15s ease;
}
.btn-primary:hover{transform:translateY(-1px);}
.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none;}
.btn-primary:focus-visible{outline:3px solid var(--navy);outline-offset:2px;}
.btn-ghost{
  background:transparent;color:var(--navy);border:1.5px solid var(--line);padding:13px 22px;
  border-radius:999px;font-weight:600;font-size:.98rem;cursor:pointer;
}
.btn-ghost:hover{border-color:var(--navy-soft);}
.hero-card{
  background:var(--paper);border-radius:20px;box-shadow:var(--shadow);
  padding:26px;border:1px solid var(--line);
}
.hero-card .row{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px dashed var(--line);}
.hero-card .row:last-child{border-bottom:none;}
.hero-card .icon{
  width:34px;height:34px;border-radius:9px;background:rgba(0,169,157,0.12);color:var(--teal-deep);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px;
}
.hero-card .row b{display:block;font-size:.92rem;color:var(--navy);}
.hero-card .row span{font-size:.84rem;color:var(--ink-soft);}

/* Steps */
.steps-sec{padding:44px 0;}
.steps-sec .kicker{text-align:center;margin-bottom:6px;}
.steps-sec h2{text-align:center;font-size:1.7rem;}
.steps-sub{text-align:center;color:var(--ink-soft);margin-bottom:30px;}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.step{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:20px 16px;position:relative;}
.step .num{
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:.78rem;color:var(--terra-deep);
  letter-spacing:.06em;
}
.step h3{font-size:1.02rem;margin:8px 0 4px;}
.step p{font-size:.85rem;color:var(--ink-soft);margin:0;}

/* Form section */
.form-sec{padding:20px 0 60px;}
.form-card{
  background:var(--paper);border-radius:20px;box-shadow:var(--shadow);border:1px solid var(--line);
  padding:34px;max-width:640px;margin:0 auto;
}
.form-card h2{font-size:1.5rem;}
.form-card > p{color:var(--ink-soft);margin-top:0;margin-bottom:24px;font-size:.94rem;}
.field{margin-bottom:18px;}
.field label{
  display:block;font-weight:600;font-size:.85rem;color:var(--navy);margin-bottom:6px;
}
.field .hint{font-weight:400;color:var(--ink-soft);font-size:.78rem;}
.field input, .field select{
  width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;
  font-size:.95rem;font-family:inherit;background:#FCFAF5;color:var(--ink);
}
.field input:focus, .field select:focus{
  outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(0,169,157,0.16);background:#fff;
}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.consent{
  display:flex;gap:10px;align-items:flex-start;background:#FBF4E7;border-radius:10px;padding:14px;
  font-size:.83rem;color:var(--ink-soft);margin:6px 0 22px;
}
.consent input{margin-top:3px;flex-shrink:0;width:16px;height:16px;}
.err{color:var(--danger);font-size:.78rem;margin-top:5px;display:none;}
.field.invalid input, .field.invalid select{border-color:var(--danger);}
.field.invalid .err{display:block;}
.submit-btn{
  width:100%;background:var(--terra);color:#fff;border:none;padding:15px;border-radius:12px;
  font-weight:700;font-size:1rem;cursor:pointer;transition:transform .15s ease, opacity .15s ease;
}
.submit-btn:hover{transform:translateY(-1px);}
.submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;}
.success{
  text-align:center;padding:20px 0;
}
.success .check{
  width:58px;height:58px;border-radius:50%;background:rgba(46,139,87,0.12);color:var(--ok);
  display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:28px;
}
.success h3{font-size:1.25rem;}
.success p{color:var(--ink-soft);font-size:.92rem;}
.protocol{
  font-family:'Space Grotesk',sans-serif;font-weight:700;background:#FBF4E7;border-radius:10px;
  padding:10px 16px;display:inline-block;margin-top:10px;color:var(--terra-deep);letter-spacing:.03em;
}

/* Contact strip */
.contact-strip{background:var(--navy);color:#fff;padding:26px 0;}
.contact-strip .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;}
.contact-strip .l1{font-family:'Fraunces',serif;font-size:1.06rem;}
.contact-strip .l2{color:#B9CCDA;font-size:.88rem;}
.contact-strip .phone{
  font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.15rem;color:#F4D35E;
}

footer.site{padding:24px 0 40px;text-align:center;color:var(--ink-soft);font-size:.82rem;}
footer.site a{color:var(--ink-soft);text-decoration:underline;}

/* Admin */
.admin-shell{min-height:100vh;background:var(--sand);}
.admin-login{
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;
}
.login-card{
  background:var(--paper);border-radius:20px;box-shadow:var(--shadow);border:1px solid var(--line);
  padding:36px;width:100%;max-width:380px;text-align:center;
}
.login-card .brand-mark{margin:0 auto 16px;}
.login-card h2{font-size:1.3rem;}
.login-card p{color:var(--ink-soft);font-size:.88rem;margin-top:0;}
.login-card input{
  width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:10px;margin:16px 0 6px;
  font-size:.95rem;text-align:center;letter-spacing:.05em;
}
.admin-top{
  background:var(--paper);border-bottom:1px solid var(--line);padding:16px 0;position:sticky;top:0;z-index:20;
}
.admin-top .wrap{display:flex;justify-content:space-between;align-items:center;}
.admin-main{max-width:1120px;margin:0 auto;padding:26px 22px 60px;}
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px;}
.stat{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:18px;}
.stat .n{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:1.6rem;color:var(--navy);}
.stat .l{font-size:.78rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px;}
.toolbar input, .toolbar select{
  padding:10px 12px;border:1.5px solid var(--line);border-radius:9px;font-size:.88rem;background:#fff;
}
.toolbar input[type=text]{flex:1;min-width:180px;}
.btn-small{
  background:var(--teal);color:#fff;border:none;padding:10px 16px;border-radius:9px;font-size:.85rem;
  font-weight:600;cursor:pointer;
}
.btn-small.outline{background:none;border:1.5px solid var(--line);color:var(--navy);}
table.data{width:100%;border-collapse:collapse;background:var(--paper);border-radius:14px;overflow:hidden;
  box-shadow:var(--shadow);border:1px solid var(--line);}
table.data thead th{
  text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);
  background:#FBF7EF;padding:12px 14px;border-bottom:1px solid var(--line);
}
table.data td{padding:12px 14px;border-bottom:1px solid var(--line);font-size:.87rem;vertical-align:middle;}
table.data tr:last-child td{border-bottom:none;}
.badge{
  display:inline-block;padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:600;
}
.badge.pendente{background:#FDF0DC;color:var(--warn);}
.badge.confirmado{background:#DDF3E4;color:var(--ok);}
.badge.atendido{background:#E4EEF6;color:var(--navy-soft);}
.badge.cancelado{background:#FBE1DD;color:var(--danger);}
.row-actions{display:flex;gap:6px;}
.icon-btn{
  border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 9px;cursor:pointer;font-size:.8rem;
}
.icon-btn.danger{color:var(--danger);border-color:#F3CFC8;}
.empty-row td{text-align:center;color:var(--ink-soft);padding:34px;}
.status-select{border:1.5px solid var(--line);border-radius:8px;padding:6px 8px;font-size:.82rem;}
.loading-row td{text-align:center;color:var(--ink-soft);padding:34px;}
.top-err{
  background:#FBE1DD;color:var(--danger);border-radius:10px;padding:10px 14px;font-size:.85rem;margin-bottom:14px;
}

@media (max-width:820px){
  .hero .wrap{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr 1fr;}
  .stat-row{grid-template-columns:1fr 1fr;}
  .grid-2{grid-template-columns:1fr;}
  table.data{display:block;overflow-x:auto;}
}
@media (prefers-reduced-motion: reduce){
  *{transition:none !important;}
}
