/* ═══════════════════════════════════════════════════════════════
   Arbo Alto de Pinheiros — v32
   Aesthetic: Luxury Warmth · DM Sans + Fraunces · Mobile-first
   ═══════════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,600;0,9..144,700;1,9..144,400&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* ── TOKENS ───────────────────────────────────────────────────── */
:root{
  --brand:#9a6432; --brand-l:#c08040; --brand-d:#6e441c; --brand-dd:#3e2208;
  --brand-05:rgba(154,100,50,.05); --brand-10:rgba(154,100,50,.10); --brand-20:rgba(154,100,50,.22);
  --brand-grd:linear-gradient(135deg,#b87c45,#6e441c);
  --sh-brand:0 4px 18px rgba(154,100,50,.38);
  --w:#ffffff; --g50:#faf7f3; --g75:#f3ede4; --g100:#e8dfd3; --g150:#ddd1c4;
  --g200:#cfc0b0; --g300:#b8a899; --g400:#998880; --g500:#7a6860;
  --g600:#5c4e47; --g700:#3e3530; --g800:#261f1b; --g900:#130e0b;
  --green:#1a7a49; --green-bg:#eaf5ef; --green-bd:#a8dfc0;
  --red:#b8322a;   --red-bg:#fdecea;   --red-bd:#f0b5b0;
  --amber:#8f6108; --amber-bg:#fdf5e0; --amber-bd:#eed890;
  --blue:#1260a8;  --blue-bg:#e7f1fc;  --blue-bd:#a8cef4;
  --r4:4px; --r6:6px; --r8:8px; --r10:10px; --r12:12px; --r16:16px; --r20:20px; --r24:24px; --r99:999px;
  --sh0:none;
  --sh1:0 1px 3px rgba(60,30,10,.07),0 1px 2px rgba(60,30,10,.04);
  --sh2:0 3px 10px rgba(60,30,10,.09),0 1px 3px rgba(60,30,10,.05);
  --sh3:0 8px 26px rgba(60,30,10,.12),0 2px 6px rgba(60,30,10,.06);
  --sh4:0 20px 48px rgba(60,30,10,.16),0 4px 12px rgba(60,30,10,.08);
  --sw:256px; --top:56px;
  --t1:.12s ease; --t2:.22s cubic-bezier(.4,0,.2,1); --t3:.35s cubic-bezier(.4,0,.2,1);
}

/* ── BASE ─────────────────────────────────────────────────────── */
html{font-size:15px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'DM Sans',system-ui,sans-serif;background:var(--g50);color:var(--g700);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
a{color:var(--brand);text-decoration:none;transition:color var(--t1)}
a:hover{color:var(--brand-d)}
img{max-width:100%;display:block}
textarea{resize:vertical;min-height:90px}
button{cursor:pointer;font-family:inherit}

/* ── LAYOUT SHELL ─────────────────────────────────────────────── */
.wrap{display:flex;min-height:100vh}
.sb-overlay{display:none;position:fixed;inset:0;z-index:149;background:rgba(20,10,5,.55);backdrop-filter:blur(2px)}

/* SIDEBAR */
.sb{position:fixed;top:0;left:0;bottom:0;width:var(--sw);z-index:150;background:var(--brand-dd);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;transition:transform var(--t3)}
.sb::-webkit-scrollbar{display:none}
.sb-brand{padding:1.4rem 1.25rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.08)}
.sb-logo-row{display:flex;align-items:center;gap:.75rem;margin-bottom:.4rem}
.sb-logo-ico{width:38px;height:38px;border-radius:var(--r10);background:linear-gradient(135deg,#b87c45,#6e441c);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff;box-shadow:var(--sh-brand)}
.sb-name{font-family:'Fraunces',serif;font-size:.875rem;font-weight:600;line-height:1.3;color:#fff}
.sb-sub{font-size:.68rem;color:rgba(255,255,255,.4);letter-spacing:.5px;text-transform:uppercase;margin-top:.2rem}
.sb-sec{font-size:.6rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,.32);padding:.9rem 1.25rem .4rem}
.nav-link{display:flex;align-items:center;gap:.75rem;padding:.6rem 1.25rem;margin:0 .5rem .1rem;border-radius:var(--r8);font-size:.84rem;font-weight:500;color:rgba(255,255,255,.6);text-decoration:none;transition:background var(--t1),color var(--t1)}
.nav-link:hover{background:rgba(255,255,255,.08);color:#fff}
.nav-link.active{background:rgba(255,255,255,.14);color:#fff;font-weight:600;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.ni{width:16px;height:16px;flex-shrink:0;opacity:.8}
.nav-link.active .ni{opacity:1}
.sb-foot{margin-top:auto;padding:1rem 1.25rem;border-top:1px solid rgba(255,255,255,.08);font-size:.8rem;font-weight:600;color:rgba(255,255,255,.7)}
.sb-foot-links{display:flex;gap:1.1rem;margin-top:.45rem}
.sb-foot-links a{display:flex;align-items:center;gap:.3rem;font-size:.74rem;font-weight:500;color:rgba(255,255,255,.42);text-decoration:none;transition:color var(--t1)}
.sb-foot-links a:hover{color:rgba(255,255,255,.82)}

/* MAIN */
.main{flex:1;margin-left:var(--sw);display:flex;flex-direction:column;min-width:0}
.topbar{position:sticky;top:0;z-index:100;height:var(--top);background:rgba(250,247,243,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--g100);display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;gap:1rem}
.topbar-l{display:flex;align-items:center;gap:.85rem}
.topbar-title{font-family:'Fraunces',serif;font-size:.95rem;font-weight:600;color:var(--g700)}
.topbar-r{display:flex;align-items:center;gap:.65rem}
.menu-btn{display:none;background:none;border:none;color:var(--g600);padding:.3rem;border-radius:var(--r6);transition:background var(--t1)}
.menu-btn:hover{background:var(--g100)}
.av{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#b87c45,#6e441c);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#fff;flex-shrink:0;box-shadow:var(--sh-brand)}
.uchip{display:flex;align-items:center;gap:.55rem}
.av-name{font-size:.82rem;font-weight:600;color:var(--g600)}
.achip{font-size:.63rem;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--brand);background:var(--brand-10);border:1px solid var(--brand-20);padding:.2rem .6rem;border-radius:var(--r99)}

.content{flex:1;padding:1.65rem 1.75rem;animation:fadeUp .2s both;min-width:0;width:100%}
.content-inner{max-width:1200px;width:100%}
@keyframes fadeUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ── BUTTONS ──────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.52rem 1.05rem;border:1.5px solid transparent;border-radius:var(--r8);font-family:inherit;font-size:.84rem;font-weight:600;line-height:1;white-space:nowrap;cursor:pointer;transition:all var(--t1);text-decoration:none}
.btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.btn-p{background:linear-gradient(135deg,#b87c45,#6e441c);color:#fff;border-color:transparent;box-shadow:var(--sh-brand)}
.btn-p:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 6px 22px rgba(154,100,50,.42);color:#fff}
.btn-p:active{transform:none;opacity:1}
.btn-s{background:var(--w);color:var(--g600);border-color:var(--g200)}
.btn-s:hover{background:var(--g75);border-color:var(--g300);color:var(--g700)}
.btn-out{background:transparent;color:var(--brand);border-color:var(--brand-20)}
.btn-out:hover{background:var(--brand-05);border-color:var(--brand);color:var(--brand)}
.btn-err{background:var(--red-bg);color:var(--red);border-color:var(--red-bd)}
.btn-err:hover{background:var(--red);color:#fff;border-color:var(--red)}
.btn-sm{padding:.32rem .7rem;font-size:.76rem;border-radius:var(--r6)}
.btn-lg{padding:.72rem 1.5rem;font-size:.92rem}
.btn-full{width:100%}

/* ── CARDS ────────────────────────────────────────────────────── */
.card{background:var(--w);border:1px solid var(--g100);border-radius:var(--r16);padding:1.35rem;box-shadow:var(--sh1);margin-bottom:1.25rem}
.card-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:1.1rem;padding-bottom:.9rem;border-bottom:1px solid var(--g75)}
.card-title{font-family:'Fraunces',serif;font-size:.97rem;font-weight:600;color:var(--g800)}
.card-sub{font-size:.78rem;color:var(--g400);margin-top:.2rem}
@media(hover:hover){.card-lift{transition:transform var(--t2),box-shadow var(--t2)}.card-lift:hover{transform:translateY(-3px);box-shadow:var(--sh3)}}

/* ── BADGES ───────────────────────────────────────────────────── */
.badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.68rem;font-weight:700;letter-spacing:.3px;padding:.22rem .65rem;border-radius:var(--r99);white-space:nowrap}
.b-ok   {background:var(--green-bg);color:var(--green);border:1px solid var(--green-bd)}
.b-err  {background:var(--red-bg);color:var(--red);border:1px solid var(--red-bd)}
.b-wrn  {background:var(--amber-bg);color:var(--amber);border:1px solid var(--amber-bd)}
.b-inf  {background:var(--blue-bg);color:var(--blue);border:1px solid var(--blue-bd)}
.b-brand{background:var(--brand-10);color:var(--brand);border:1px solid var(--brand-20)}
.b-gray {background:var(--g75);color:var(--g500);border:1px solid var(--g150)}

/* ── ALERTS ───────────────────────────────────────────────────── */
.alert{display:flex;align-items:flex-start;gap:.7rem;padding:.75rem 1rem;border-radius:var(--r10);margin-bottom:1rem;font-size:.84rem;line-height:1.55;border-width:1px;border-style:solid}
.alert .icon{flex-shrink:0;margin-top:.1rem}
.alert-ok {background:var(--green-bg);color:var(--green);border-color:var(--green-bd)}
.alert-err{background:var(--red-bg);color:var(--red);border-color:var(--red-bd)}
.alert-wrn{background:var(--amber-bg);color:var(--amber);border-color:var(--amber-bd)}
.alert-inf{background:var(--blue-bg);color:var(--blue);border-color:var(--blue-bd)}

/* ── STATS ────────────────────────────────────────────────────── */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}
.stat{background:var(--w);border:1px solid var(--g100);border-radius:var(--r16);padding:1.25rem 1.1rem;position:relative;overflow:hidden;box-shadow:var(--sh1)}
.stat::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(135deg,#b87c45,#6e441c)}
.stat-lbl{font-size:.7rem;font-weight:700;color:var(--g400);text-transform:uppercase;letter-spacing:.6px;margin-bottom:.5rem}
.stat-val{font-family:'Fraunces',serif;font-size:2rem;font-weight:700;color:var(--g800);line-height:1}
.stat-sub{font-size:.74rem;color:var(--g400);margin-top:.35rem}

/* ── FORMS ────────────────────────────────────────────────────── */
.fg{display:flex;flex-direction:column;gap:.4rem}
.fg label{font-size:.75rem;font-weight:600;color:var(--g600);letter-spacing:.1px}
.fg input,.fg select,.fg textarea{padding:.6rem .9rem;border:1.5px solid var(--g200);border-radius:var(--r8);font-family:inherit;font-size:.875rem;color:var(--g700);background:var(--w);transition:border-color var(--t1),box-shadow var(--t1);width:100%}
.fg input:focus,.fg select:focus,.fg textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(154,100,50,.12)}
.fg input::placeholder,.fg textarea::placeholder{color:var(--g300)}
.fg input:disabled,.fg select:disabled{background:var(--g50);color:var(--g400);cursor:not-allowed}
.fg select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23998880' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center;padding-right:2.25rem;appearance:none;-webkit-appearance:none}
.fhelp{font-size:.72rem;color:var(--g400)}
.fgrid{display:flex;flex-direction:column;gap:.85rem}
.fgrid-2{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}
.fgrid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.85rem}
.full-col{grid-column:1/-1}
.fpw{position:relative}
.fpw input{padding-right:2.75rem}
.fpw-btn{position:absolute;right:.65rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--g400);padding:.2rem;display:flex;align-items:center;justify-content:center;transition:color var(--t1)}
.fpw-btn:hover{color:var(--brand)}
.resumo{background:var(--brand-05);border:1.5px solid var(--brand-20);border-radius:var(--r12);padding:1rem 1.1rem}
.r-row{display:flex;justify-content:space-between;align-items:center;font-size:.84rem;padding:.25rem 0}
.r-lbl{color:var(--g500)}
.r-val{font-weight:700;color:var(--g800)}
.resumo-total .r-val{color:var(--brand);font-size:1rem}
.req-item{display:flex;align-items:center;gap:.35rem;font-size:.74rem;color:var(--g400)}
.req-item.ok{color:var(--green)}
.req-dot{width:14px;height:14px;border-radius:50%;background:var(--g200);flex-shrink:0;transition:background .18s}
.req-item.ok .req-dot{background:var(--green)}

/* ── TABLES ───────────────────────────────────────────────────── */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--r8)}
table.tbl{width:100%;border-collapse:collapse;font-size:.84rem;min-width:340px}
.tbl thead th{background:var(--g50);color:var(--g500);font-size:.67rem;font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:.7rem 1rem;text-align:left;white-space:nowrap;border-bottom:1px solid var(--g100)}
.tbl tbody tr{border-bottom:1px solid var(--g75);transition:background var(--t1)}
.tbl tbody tr:hover{background:var(--brand-05)}
.tbl tbody tr:last-child{border-bottom:none}
.tbl td{padding:.72rem 1rem;color:var(--g700);vertical-align:middle}

/* ── PAGE HEADER ──────────────────────────────────────────────── */
.ph{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap}
.ph h1{font-family:'Fraunces',serif;font-size:1.45rem;font-weight:700;color:var(--g800);line-height:1.2}
.ph p{font-size:.82rem;color:var(--g400);margin-top:.22rem}
.ph-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;flex-shrink:0}

/* ── SCHEDULE ─────────────────────────────────────────────────── */
.sch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.6rem}
.sch-card{background:var(--w);border:1.5px solid var(--g150);border-radius:var(--r10);padding:.75rem .6rem;text-align:center;cursor:pointer;transition:all var(--t1)}
.sch-card:hover{border-color:var(--brand);background:var(--brand-05);transform:translateY(-1px)}
.sch-card.sel{border-color:var(--brand);background:var(--brand-10);box-shadow:var(--sh-brand)}
.sch-card.full{opacity:.4;cursor:default}
.sch-card.full:hover{transform:none;background:var(--w);border-color:var(--g150)}
.sch-time{font-weight:700;font-size:.9rem;color:var(--g800)}
.sch-cap{font-size:.68rem;color:var(--g400);margin-top:.2rem}

/* ── PLANO GRID ───────────────────────────────────────────────── */
.plano-grid{display:flex;flex-direction:column;gap:.55rem}
.plano-opt{background:var(--w);border:2px solid var(--g150);border-radius:var(--r12);padding:.9rem 1rem;cursor:pointer;transition:all var(--t1)}
.plano-opt:hover{border-color:var(--brand);background:var(--brand-05)}
.plano-opt.sel{border-color:var(--brand);background:var(--brand-10)}
.po-name{font-size:.84rem;font-weight:600;color:var(--g700)}
.po-price{font-family:'Fraunces',serif;font-size:.97rem;font-weight:700;color:var(--brand)}

/* ── FILTERS ──────────────────────────────────────────────────── */
.filters{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;background:var(--g50);border:1px solid var(--g100);border-radius:var(--r12);padding:1rem;margin-bottom:1.1rem}
.filters .fg{min-width:130px;flex:1}

/* ── MODALS ───────────────────────────────────────────────────── */
.modal-bg{display:none;position:fixed;inset:0;z-index:300;background:rgba(20,10,5,.6);backdrop-filter:blur(4px);align-items:center;justify-content:center;padding:1rem}
.modal-bg.open{display:flex}
.modal-box{background:var(--w);border-radius:var(--r20);padding:1.65rem;width:100%;max-width:480px;box-shadow:var(--sh4);animation:modalIn .2s cubic-bezier(.34,1.56,.64,1) both;max-height:90svh;overflow-y:auto}
@keyframes modalIn{from{transform:scale(.92) translateY(8px);opacity:0}to{transform:none;opacity:1}}

/* ── EMPTY ────────────────────────────────────────────────────── */
.empty{text-align:center;padding:2.5rem 1rem;color:var(--g400)}
.empty .ei{width:52px;height:52px;border-radius:var(--r12);background:var(--g75);border:1px solid var(--g150);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;color:var(--g400)}
.empty h4{font-size:.95rem;font-weight:700;color:var(--g600);margin-bottom:.35rem}
.empty p{font-size:.82rem}

/* ── HELPERS ──────────────────────────────────────────────────── */
.df{display:flex} .g2{gap:.65rem} .mt1{margin-top:.65rem} .mt2{margin-top:1.1rem} .mt3{margin-top:1.65rem}
.muted{color:var(--g400)} .small{font-size:.78rem} .tc{text-align:center} .fw7{font-weight:700}
.tbl-hide-xs{} /* toggled by media query */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--g200);border-radius:var(--r99)}
::-webkit-scrollbar-thumb:hover{background:var(--g300)}

/* ══════════════════════════════════════════════════════════════
   HOMEPAGE
   ══════════════════════════════════════════════════════════════ */
.hp{min-height:100vh;background:var(--w)}
.hnav{position:fixed;top:0;left:0;right:0;z-index:200;padding:.85rem 2rem;display:flex;align-items:center;justify-content:space-between;transition:background var(--t2),box-shadow var(--t2)}
.hnav.on{background:rgba(255,255,255,.95);backdrop-filter:blur(20px);box-shadow:0 1px 0 var(--g100)}
.hnav-logo{display:flex;align-items:center;gap:.65rem;font-family:'Fraunces',serif;font-size:1rem;font-weight:600;color:#fff;text-decoration:none;transition:color var(--t2)}
.hnav.on .hnav-logo{color:var(--brand-d)}
.hnav-mark{width:36px;height:36px;border-radius:var(--r8);background:linear-gradient(135deg,#b87c45,#6e441c);box-shadow:var(--sh-brand);display:flex;align-items:center;justify-content:center;color:#fff}
.hnav-links{display:flex;align-items:center;gap:.25rem}
.hnav-links a{padding:.4rem .85rem;border-radius:var(--r8);font-size:.84rem;font-weight:500;color:rgba(255,255,255,.75);text-decoration:none;transition:all var(--t1)}
.hnav.on .hnav-links a{color:var(--g600)}
.hnav-links a:hover{color:#fff;background:rgba(255,255,255,.12)}
.hnav.on .hnav-links a:hover{color:var(--brand-d);background:var(--brand-05)}
.hnav-links .hl-cta{background:linear-gradient(135deg,#b87c45,#6e441c);color:#fff!important;box-shadow:var(--sh-brand)}
.hnav-links .hl-cta:hover{opacity:.9}
.hnav-mobile-btn{display:none;background:none;border:none;cursor:pointer;color:#fff;padding:.4rem}

.hero{min-height:calc(100vh - var(--top));min-height:calc(100svh - var(--top));padding-top:var(--top);background:linear-gradient(160deg,rgba(62,34,8,.92) 0%,rgba(110,68,28,.85) 45%,rgba(154,100,50,.6) 100%),url('/static/img/hero-bg.jpg') center/cover no-repeat;display:flex;align-items:center;justify-content:center;text-align:center}
.hero-inner{max-width:700px;padding:2rem 1.5rem}
.hero-eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.7rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:1.25rem}
.hero-eyebrow::before,.hero-eyebrow::after{content:'';display:block;width:28px;height:1px;background:rgba(255,255,255,.28)}
.hero h1{font-family:'Fraunces',serif;font-size:clamp(2.2rem,6vw,3.75rem);font-weight:700;color:#fff;line-height:1.15;margin-bottom:1.1rem}
.hero h1 em{font-style:italic;color:rgba(255,255,255,.72)}
.hero-sub{font-size:1rem;color:rgba(255,255,255,.68);line-height:1.7;max-width:480px;margin:0 auto 2rem}
.hero-btns{display:flex;gap:.85rem;justify-content:center;flex-wrap:wrap}
.hbtn-p{display:inline-flex;align-items:center;gap:.55rem;background:#fff;color:var(--brand-d);font-weight:700;font-size:.9rem;padding:.72rem 1.65rem;border-radius:var(--r10);text-decoration:none;box-shadow:0 4px 20px rgba(0,0,0,.2);transition:all var(--t2)}
.hbtn-p:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.28);color:var(--brand-d)}
.hbtn-o{display:inline-flex;align-items:center;gap:.55rem;border:1.5px solid rgba(255,255,255,.5);color:#fff;font-weight:600;font-size:.9rem;padding:.72rem 1.65rem;border-radius:var(--r10);text-decoration:none;transition:all var(--t2)}
.hbtn-o:hover{background:rgba(255,255,255,.12);color:#fff}
.hero-stats{display:flex;justify-content:center;gap:2.5rem;margin-top:3rem;padding-top:2.5rem;border-top:1px solid rgba(255,255,255,.12)}
.hstat{text-align:center}
.hstat strong{display:block;font-family:'Fraunces',serif;font-size:1.75rem;font-weight:700;color:#fff}
.hstat span{font-size:.72rem;color:rgba(255,255,255,.48);text-transform:uppercase;letter-spacing:.8px}
.hsec{padding:5rem 2rem;max-width:1100px;margin:0 auto}
.hsec-inner{display:flex;flex-direction:column;gap:2rem}
.sec-label{font-size:.68rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--brand);margin-bottom:.75rem}
.sec-title{font-family:'Fraunces',serif;font-size:clamp(1.7rem,3.5vw,2.5rem);font-weight:700;color:var(--g800);margin-bottom:1.25rem}
.sec-sub{font-size:1rem;color:var(--g500);line-height:1.7;max-width:520px}
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem}
.feat-card{background:var(--w);border:1px solid var(--g100);border-radius:var(--r16);padding:1.5rem;box-shadow:var(--sh1);transition:transform var(--t2),box-shadow var(--t2)}
.feat-card:hover{transform:translateY(-4px);box-shadow:var(--sh3)}
.feat-ico{width:44px;height:44px;border-radius:var(--r10);background:linear-gradient(135deg,#b87c45,#6e441c);display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:1rem;box-shadow:var(--sh-brand)}
.feat-t{font-family:'Fraunces',serif;font-size:1.05rem;font-weight:600;color:var(--g800);margin-bottom:.4rem}
.feat-d{font-size:.84rem;color:var(--g500);line-height:1.65}
.act-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:1rem;margin-top:2.5rem}
.act-card{background:var(--g50);border:1px solid var(--g100);border-radius:var(--r12);padding:1.25rem 1rem;text-align:center;transition:transform var(--t1),border-color var(--t1)}
.act-card:hover{transform:translateY(-2px);border-color:var(--brand)}
.act-ico{font-size:1.75rem;margin-bottom:.5rem}
.act-t{font-size:.84rem;font-weight:600;color:var(--g700)}
.hcta{background:#3e2208;padding:5rem 2rem;text-align:center}
.hcta h2{font-family:'Fraunces',serif;font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:700;color:#fff;margin-bottom:1rem}
.hcta p{color:rgba(255,255,255,.62);font-size:.97rem;max-width:460px;margin:0 auto 2rem;line-height:1.7}
.hfooter{background:var(--g800);padding:1.75rem 2rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}
.hfooter p{font-size:.78rem;color:var(--g400)}

/* ══════════════════════════════════════════════════════════════
   LOGIN / CADASTRO
   ══════════════════════════════════════════════════════════════ */
.lp{display:flex;min-height:100svh}
.lp-left{flex:0 0 400px;background:linear-gradient(160deg,rgba(76,44,14,.93) 0%,rgba(154,100,50,.72) 100%),url('/static/img/hero-bg.jpg') center/cover no-repeat;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:3rem 2.5rem;text-align:center}
.lp-brand-ico{width:60px;height:60px;border-radius:var(--r12);background:rgba(255,255,255,.15);border:1.5px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;color:#fff;margin:0 auto 1.25rem;backdrop-filter:blur(10px)}
.lp-brand h1{font-family:'Fraunces',serif;font-size:1.75rem;font-weight:700;color:#fff;margin-bottom:.65rem}
.lp-brand p{font-size:.875rem;color:rgba(255,255,255,.65);line-height:1.65}
.lp-brand ul{list-style:none;margin-top:1.5rem;text-align:left}
.lp-brand li{font-size:.82rem;color:rgba(255,255,255,.72);padding:.3rem 0;display:flex;align-items:center;gap:.5rem}
.lp-brand li::before{content:'✓';color:rgba(255,255,255,.9);font-weight:700}
.lp-right{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--g50)}
.lbox{width:100%;max-width:400px}
.lbox h2{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:700;color:var(--g800);margin-bottom:.35rem}
.lbox p{font-size:.84rem;color:var(--g400);margin-bottom:1.75rem}
.reg-wrap{display:flex;min-height:100svh}
.reg-left{flex:0 0 340px;background:linear-gradient(135deg,#b87c45,#6e441c);display:flex;flex-direction:column;justify-content:center;padding:3rem 2.25rem}
.reg-brand-ico{width:52px;height:52px;border-radius:var(--r10);background:rgba(255,255,255,.15);border:1.5px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:1.1rem}
.reg-left h2{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:700;color:#fff;margin-bottom:.5rem}
.reg-left p{font-size:.84rem;color:rgba(255,255,255,.65);line-height:1.65}
.reg-perks{list-style:none;margin-top:1.35rem}
.reg-perks li{font-size:.8rem;color:rgba(255,255,255,.7);padding:.28rem 0;display:flex;align-items:center;gap:.5rem}
.reg-perks li::before{content:'→';color:rgba(255,255,255,.8);font-weight:700}
.reg-right{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:2.5rem 2rem;overflow-y:auto;background:var(--g50)}
.reg-form{width:100%;max-width:440px}
.reg-form h3{font-family:'Fraunces',serif;font-size:1.3rem;font-weight:700;color:var(--g800);margin-bottom:.3rem}
.reg-form p{font-size:.82rem;color:var(--g400);margin-bottom:1.5rem}
.otp-input{font-size:1.8rem;letter-spacing:.7rem;text-align:center;font-weight:800;font-family:'Fraunces',serif}

/* ══════════════════════════════════════════════════════════════
   BOTTOM NAV
   ══════════════════════════════════════════════════════════════ */
.bnav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--w);border-top:1px solid var(--g100);padding-bottom:max(env(safe-area-inset-bottom,0px),8px);box-shadow:0 -2px 14px rgba(60,30,10,.08)}
.bnav-inner{display:flex;height:58px}
.bnav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--g400);font-size:.58rem;font-weight:600;letter-spacing:.2px;text-decoration:none;border:none;background:none;cursor:pointer;font-family:inherit;padding:.3rem .25rem;transition:color var(--t1)}
.bnav-item.active{color:var(--brand)}
.bnav-item.active .bnav-ico{background:var(--brand-10);border-radius:var(--r8)}
.bnav-ico{width:34px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:var(--r8);transition:background var(--t1)}
.bnav-label{line-height:1}

/* ══════════════════════════════════════════════════════════════
   ERROR PAGES
   ══════════════════════════════════════════════════════════════ */
.error-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - var(--top));padding:2rem 1.5rem}
.error-box{text-align:center;max-width:440px;width:100%}
.error-code{font-family:'Fraunces',serif;font-size:clamp(5rem,16vw,8rem);font-weight:700;color:var(--g100);line-height:1;margin-bottom:.5rem;letter-spacing:-4px}
.error-title{font-family:'Fraunces',serif;font-size:1.35rem;font-weight:600;color:var(--g700);margin-bottom:.6rem}
.error-msg{color:var(--g400);font-size:.88rem;line-height:1.65;margin-bottom:2rem}
.error-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}

/* ══════════════════════════════════════════════════════════════
   RESPONSIVE — 1024
   ══════════════════════════════════════════════════════════════ */
@media(max-width:1024px){
  :root{--sw:228px}
  .content{padding:1.35rem 1.5rem}
  .stats-grid{grid-template-columns:1fr 1fr}
}

/* ══════════════════════════════════════════════════════════════
   RESPONSIVE — 768
   ══════════════════════════════════════════════════════════════ */
@media(max-width:768px){
  :root{--sw:82vw;--top:52px}
  .sb{transform:translateX(-100%);transition:transform .28s cubic-bezier(.4,0,.2,1),box-shadow .28s}
  .sb.open{transform:translateX(0);box-shadow:var(--sh4)}
  .sb-overlay.open{display:block}
  .menu-btn{display:flex}
  .main{margin-left:0!important}
  .topbar{padding:0 .9rem}
  .topbar-title{font-size:.88rem}
  .content{padding:.9rem}
  .ph{gap:.55rem;margin-bottom:1.1rem}
  .ph h1{font-size:1.2rem}
  .ph p{font-size:.78rem}
  .ph-actions{width:100%}
  .ph-actions .btn{flex:1;justify-content:center;font-size:.8rem;padding:.48rem .7rem}
  .card{padding:1rem;border-radius:var(--r12);margin-bottom:.9rem}
  .card-hd{margin-bottom:.8rem;padding-bottom:.7rem}
  .card-title{font-size:.9rem}
  .stats-grid{grid-template-columns:1fr 1fr;gap:.7rem;margin-bottom:1rem}
  .stat{padding:.9rem .85rem}
  .stat-val{font-size:1.6rem}
  .fgrid-2,.fgrid-3{grid-template-columns:1fr}
  .full-col{grid-column:auto}
  .fg input,.fg select,.fg textarea{font-size:16px!important}
  .filters{flex-direction:column;padding:.85rem}
  .filters .fg{min-width:100%}
  .tbl-wrap{margin:0 -.9rem;width:calc(100% + 1.8rem);border-radius:0}
  table.tbl{font-size:.76rem}
  .tbl th,.tbl td{padding:.6rem .8rem}
  .tbl-hide-xs{display:none}
  .plano-grid{grid-template-columns:1fr}
  .sch-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:.45rem}
  .modal-bg{align-items:flex-end;padding:0;backdrop-filter:blur(3px)}
  .modal-box{border-radius:var(--r20) var(--r20) 0 0;padding:1.35rem 1.1rem;max-width:100%;animation:slideUp .26s cubic-bezier(.4,0,.2,1) both;max-height:92svh}
  @keyframes slideUp{from{transform:translateY(100%);opacity:.5}to{transform:none;opacity:1}}
  .agendar-grid{grid-template-columns:1fr!important}
  .lp{flex-direction:column}
  .lp-left{flex:0 0 auto;min-height:140px;flex-direction:row;padding:1.35rem 1.1rem;align-items:center;gap:.85rem;justify-content:flex-start}
  .lp-brand-ico{margin:0;width:46px;height:46px;flex-shrink:0}
  .lp-brand h1{font-size:1.35rem;margin-bottom:0;text-align:left}
  .lp-brand p,.lp-brand ul{display:none}
  .lp-right{flex:1;padding:1.5rem 1rem}
  .lbox{max-width:100%}
  .reg-wrap{flex-direction:column}
  .reg-left{flex:0 0 auto;min-height:130px;flex-direction:row;padding:1.2rem 1.1rem;align-items:center;gap:.85rem}
  .reg-brand-ico{margin:0;width:44px;height:44px;flex-shrink:0}
  .reg-left h2{font-size:1.2rem;margin-bottom:0;text-align:left}
  .reg-left p,.reg-perks{display:none}
  .reg-right{padding:1.35rem 1rem}
  .reg-form{max-width:100%}
  .hnav{padding:.75rem 1rem}
  .hnav-links .nav-hide{display:none}
  .hnav-mobile-btn{display:flex}
  .hero{padding-top:4.5rem}
  .hero-stats{gap:1.5rem;flex-wrap:wrap}
  .hsec{padding:3rem 1.25rem}
  .feat-grid{grid-template-columns:1fr}
  .act-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}
  .hcta{padding:3rem 1.25rem}
  .bnav{display:block}
  .content{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}
}

/* ══════════════════════════════════════════════════════════════
   RESPONSIVE — 480
   ══════════════════════════════════════════════════════════════ */
@media(max-width:480px){
  :root{--top:50px}
  .content{padding:.75rem}
  .ph h1{font-size:1.1rem}
  .stats-grid{grid-template-columns:1fr 1fr;gap:.6rem}
  .stat-val{font-size:1.4rem}
  .uchip .av-name{display:none}
  .btn{font-size:.8rem}
  .btn-sm{font-size:.73rem;padding:.28rem .65rem}
  .hero-btns{flex-direction:column;align-items:stretch}
  .act-grid{grid-template-columns:1fr 1fr}
  .sch-grid{grid-template-columns:repeat(3,1fr)}
  .plano-grid{grid-template-columns:1fr}
  .modal-box{padding:1.1rem .9rem}
}

/* ══════════════════════════════════════════════════════════════
   TOUCH + SAFE AREA + PRINT
   ══════════════════════════════════════════════════════════════ */
@media(hover:none) and (pointer:coarse){
  .btn{min-height:44px;padding:.62rem 1.05rem}
  .btn-sm{min-height:38px}
  .nav-link{min-height:44px}
  .fg input,.fg select,.fg textarea{min-height:44px}
  .bnav-item{min-height:54px}
  .plano-opt{min-height:68px}
  .sch-card{min-height:60px}
}
@supports(padding:env(safe-area-inset-bottom)){
  .sb{padding-bottom:env(safe-area-inset-bottom)}
  .topbar{padding-left:max(.9rem,env(safe-area-inset-left));padding-right:max(.9rem,env(safe-area-inset-right))}
  .modal-box{padding-bottom:max(1.25rem,env(safe-area-inset-bottom))}
  .bnav{padding-bottom:env(safe-area-inset-bottom)}
}

/* ── TWO-COL RESPONSIVE GRIDS ───────────────────────────────────────
   These use display:grid but collapse to 1 col on mobile.
   No px values in grid-template-columns — uses fr + CSS toggle.
   ─────────────────────────────────────────────────────────────── */
.resp-2col  { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem }
.agendar-grid { display:grid; grid-template-columns:1fr 280px; gap:1.1rem; align-items:start }
.cfg-grid   { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem }

@media(max-width:768px){
  /* ── ALL grids collapse to single column ── */
  .resp-2col,
  .agendar-grid,
  .cfg-grid,
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns:1fr 2fr"],
  [style*="grid-template-columns:2fr 1fr"] {
    grid-template-columns: 1fr !important;
  }

  /* ── Filters: stack vertically ── */
  .filters { flex-direction:column; gap:.55rem }
  .filters .fg { min-width:0 !important; flex:1 1 auto !important }
  .filters > div:last-child { display:flex; gap:.5rem; width:100% }
  .filters > div:last-child .btn { flex:1; justify-content:center }

  /* ── Forms: all selects/inputs full width ── */
  .fgrid-2, .fgrid-3 { grid-template-columns:1fr !important }

  /* ── Plan cards: list style ── */
  .plano-grid { flex-direction:column }

  /* ── Modals ── */
  .resp-2col > .card { margin-bottom:0 }
}
@media(max-width:480px){
  .resp-2col, .agendar-grid, .cfg-grid { gap:.75rem }
}


/* ── FORM MAX-WIDTH CAP ────────────────────────────────────────
   Prevents form sections from spanning full width on widescreen.
   ──────────────────────────────────────────────────────────── */
.form-cap { max-width: 560px }
.form-cap-md { max-width: 720px }
.form-cap-lg { max-width: 900px }

/* ── STAT ICON ──────────────────────────────────────────────── */
.stat-ico {
  width:32px; height:32px; border-radius:var(--r8);
  background:var(--brand-10); display:flex; align-items:center;
  justify-content:center; color:var(--brand); margin-bottom:.6rem;
}

/* ── QUICK ACTIONS GRID ─────────────────────────────────────── */
@media(max-width:768px){
  .qa-grid { grid-template-columns: repeat(3,1fr) !important; gap:.5rem !important }
  .qa-grid a { font-size:.68rem !important; padding:.7rem .35rem !important }
}
@media(max-width:360px){
  .qa-grid a { font-size:.62rem !important }
}

@media print{
  .sb,.topbar,.menu-btn,.btn,.filters,.modal-bg,.bnav{display:none!important}
  .main{margin-left:0!important}
  .content{padding:0}
  .card{box-shadow:none;border-color:var(--g200)}
  body{background:#fff}
}
