  :root{
    color-scheme:dark;
    --paper:#0C1813;
    --surface:#15241C;
    --surface-2:#1B2C22;
    --band:#17382C;
    --ink:#F1ECDB;
    --ink-soft:#AAB8AE;
    --line:#293A2F;
    --gold:#E4BC6E;
    --gold-2:#C9993F;
    --pine:#7CA98F;
    --pine-2:#4F7561;
    --pine-3:#8FC4A5;
    --clay:#D28B68;
    --shadow: 0 28px 56px -22px rgba(0,0,0,.7);
    --overlay: rgba(6,12,9,.62);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}

  /* barra de rolagem escura e fina, em todo o site (Chrome/Edge/Safari; Firefox usa a versão padrão abaixo) */
  @supports not selector(::-webkit-scrollbar){ *{scrollbar-width:thin; scrollbar-color:#4a6354 transparent;} }
  ::-webkit-scrollbar{width:12px; height:12px;}
  ::-webkit-scrollbar-track{background:transparent;}
  html::-webkit-scrollbar-track{background:var(--paper);}
  ::-webkit-scrollbar-thumb{background:#3f5748; background-clip:content-box; border:3px solid transparent; border-radius:999px;}
  ::-webkit-scrollbar-thumb:hover{background:var(--gold-2); background-clip:content-box;}
  ::-webkit-scrollbar-thumb:active{background:var(--gold); background-clip:content-box;}
  ::-webkit-scrollbar-corner{background:transparent;}
  @media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation-duration:.001ms !important; transition-duration:.001ms !important;} }

  body{margin:0; background:var(--paper); color:var(--ink); font-family:'Manrope',ui-sans-serif,system-ui,sans-serif; font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased;}
  h1,h2,h3,.display{font-family:'Fraunces',Georgia,'Times New Roman',serif; font-weight:500; text-wrap:balance; margin:0; color:var(--ink);}
  p{margin:0;}
  a{color:inherit;}
  button{font-family:inherit;}
  img{max-width:100%;display:block;}
  .wrap{max-width:1180px;margin:0 auto;padding-left:24px;padding-right:24px;}
  @media (max-width:640px){.wrap{padding-left:18px;padding-right:18px;}}

  .eyebrow{font-size:12.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-2); display:flex; align-items:center; gap:9px;}
  .eyebrow::before{content:"";width:22px;height:1px;background:var(--gold-2);display:inline-block;}
  .note{font-size:13.5px; color:var(--ink-soft);}

  .btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:13px 22px; border-radius:999px; border:1px solid transparent; font-weight:700; font-size:14.5px; cursor:pointer; text-decoration:none; transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease; white-space:nowrap;}
  .btn:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
  .btn-gold{background:var(--gold-2); color:#191008; box-shadow:var(--shadow);}
  .btn-gold:hover{transform:translateY(-1px); box-shadow:0 18px 30px -16px rgba(0,0,0,.45);}
  .btn-line{background:transparent; border-color:var(--line); color:var(--ink);}
  .btn-line:hover{border-color:var(--gold-2); color:var(--gold-2);}
  .btn-ghost{background:var(--surface-2); color:var(--ink); border-color:var(--line);}
  .btn-sm{padding:9px 15px; font-size:13px;}

  a:focus-visible, button:focus-visible{outline:2px solid var(--gold); outline-offset:3px; border-radius:4px;}
  svg.icon{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;}

  /* ---------- NAV ---------- */
  .nav{position:sticky; top:0; z-index:40; background:color-mix(in srgb, var(--paper) 86%, transparent); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
  .nav-inner{display:flex; align-items:center; justify-content:space-between; gap:18px; padding:10px 0;}
  .brand{display:flex; align-items:center; text-decoration:none;}
  .brand img{height:46px; width:auto; display:block;}
  .nav-links{display:flex; align-items:center; gap:30px; list-style:none; margin:0; padding:0;}
  .nav-links a{font-size:14.5px; font-weight:600; text-decoration:none; color:var(--ink-soft); transition:color .15s; cursor:pointer;}
  .nav-links a:hover, .nav-links a.active{color:var(--gold-2);}
  .nav-actions{display:flex; align-items:center; gap:10px;}
  @media (max-width:420px){ .brand img{height:38px;} .nav-actions .btn-gold{padding:11px 14px; font-size:13.5px;} .nav-actions{gap:7px;} }
  /* menu mobile */
  .nav-toggle{display:none; width:40px;height:40px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2); align-items:center;justify-content:center;cursor:pointer;color:var(--ink);flex:none;}
  .nav-toggle:hover{border-color:var(--gold-2); color:var(--gold-2);}
  .nav-toggle .icon{width:20px;height:20px;}
  .nav-toggle .i-close{display:none;}
  .nav-toggle[aria-expanded="true"] .i-menu{display:none;}
  .nav-toggle[aria-expanded="true"] .i-close{display:block;}
  @media (max-width:900px){
    .nav-toggle{display:flex;}
    #navMenu{position:absolute; left:0; right:0; top:100%; background:var(--surface); border-bottom:1px solid var(--line); box-shadow:var(--shadow); display:none;}
    #navMenu.open{display:block;}
    .nav-links{flex-direction:column; align-items:stretch; gap:0; padding:4px 24px 14px;}
    .nav-links li{border-bottom:1px solid var(--line);}
    .nav-links li:last-child{border-bottom:none;}
    .nav-links a{display:block; padding:15px 2px; font-size:15.5px; color:var(--ink);}
  }

  /* ---------- VIEWS ---------- */
  .view{display:none; padding:0;}
  .view.active{display:block;}

  /* ---------- HERO ---------- */
  .hero{padding:56px 0 72px;}
  .hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center;}
  @media (max-width:980px){ .hero-grid{grid-template-columns:1fr; gap:40px;} }
  .hero h1{font-size:clamp(34px,4.6vw,58px); line-height:1.06; letter-spacing:-.01em; margin-bottom:20px;}
  .hero h1 em{font-style:italic; color:var(--gold-2); font-weight:500;}
  .hero-sub{font-size:17px; color:var(--ink-soft); max-width:46ch; margin-bottom:32px;}

  .search-card{background:var(--surface-2); border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow); padding:16px; display:grid; grid-template-columns:1.7fr 1fr 1fr auto; gap:10px; align-items:end; margin-bottom:36px;}
  .search-card .field label{letter-spacing:.06em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  @media (max-width:720px){ .search-card{grid-template-columns:1fr 1fr; } .search-card .btn{grid-column:1/-1;} }
  .field{display:flex; flex-direction:column; gap:5px; min-width:0;}
  .field label{font-size:10.5px; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-soft); font-weight:700;}
  .field input, .field select{border:1px solid var(--line); background:var(--surface); color:var(--ink); border-radius:10px; padding:10px 11px; font-size:14.5px; font-family:inherit; width:100%;}
  .field input:focus, .field select:focus{outline:2px solid var(--gold-2); outline-offset:1px;}

  .stat-row{display:flex; gap:36px; flex-wrap:wrap;}
  .stat b{font-family:'Fraunces',serif; font-size:30px; font-weight:600; display:block; font-variant-numeric:tabular-nums; color:var(--ink);}
  .stat span{font-size:12.5px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.06em; font-weight:600;}

  .hero-photo{border-radius:22px; overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--line); aspect-ratio:3/4; position:relative; background:var(--surface-2);}
  .hero-photo img{width:100%;height:100%;object-fit:cover; object-position:center 32%;}
  .hero-photo::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0) 45%, var(--overlay) 100%);}

  /* ---------- PROOF BANNER ---------- */
  .proof{padding:8px 0 64px;}
  .proof-card{display:grid; grid-template-columns:.85fr 1.15fr; gap:0; background:var(--surface-2); border:1px solid var(--line); border-radius:20px; overflow:hidden; box-shadow:var(--shadow);}
  @media (max-width:820px){ .proof-card{grid-template-columns:1fr;} }
  .proof-img{aspect-ratio:4/3; overflow:hidden;}
  .proof-img img{width:100%;height:100%;object-fit:cover;}
  .proof-text{padding:34px 38px; display:flex; flex-direction:column; gap:14px; justify-content:center;}
  .proof-badge{align-self:flex-start; background:var(--pine); color:#0C1813; font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:6px 12px; border-radius:999px;}
  .proof-text h3{font-size:26px;}
  .proof-meta{display:flex; flex-wrap:wrap; gap:10px 22px; font-size:14px; color:var(--ink-soft);}
  .proof-meta b{color:var(--ink); font-weight:700;}
  .proof-price{font-family:'Fraunces',serif; font-size:26px; color:var(--gold-2); font-weight:600;}
  @media (max-width:640px){ .proof-text{padding:26px 22px;} }

  /* ---------- SECTION HEADS ---------- */
  .sec-head{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:30px; flex-wrap:wrap;}
  .sec-head h2{font-size:clamp(26px,3vw,36px);}
  .sec-head .note{max-width:42ch;}
  section{padding:72px 0;}
  @media (max-width:640px){ section{padding:52px 0;} }
  section[id]{scroll-margin-top:88px;}
  .section-line{border-top:1px solid var(--line);}

  /* ---------- PAGE HEAD (catalogo / imovel) ---------- */
  .page-head{padding:44px 0 8px;}
  .page-head h1{font-size:clamp(28px,3.6vw,42px); margin-bottom:10px;}
  .back-link{display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:700; color:var(--ink-soft); text-decoration:none; margin-bottom:20px; cursor:pointer;}
  .back-link:hover{color:var(--gold-2);}
  .back-link .icon{width:15px;height:15px;}

  /* ---------- FILTERS ---------- */
  .filters{display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:16px; margin-bottom:28px;}
  .filters .field{flex:1 1 140px; min-width:130px;}
  .filters .field.grow{flex:1.4 1 200px;}
  .filters .btn{align-self:stretch; height:42px; margin-top:auto;}
  .result-bar{display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; gap:14px; flex-wrap:wrap;}
  #resultCount{font-size:14px; color:var(--ink-soft); font-weight:600;}
  .sort-field{display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--ink-soft);}
  .sort-field select{border:1px solid var(--line); background:var(--surface-2); color:var(--ink); border-radius:9px; padding:8px 10px; font-family:inherit; font-size:13.5px;}

  /* ---------- GRID / CARDS ---------- */
  .grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(272px,1fr)); gap:22px;}
  .card{background:var(--surface-2); border:1px solid var(--line); border-radius:16px; overflow:hidden; cursor:pointer; text-align:left; text-decoration:none; color:var(--ink); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; display:flex; flex-direction:column;}
  @media (hover:hover){ .card:hover{transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--gold-2);} }
  .card:focus-visible{outline:2px solid var(--gold-2); outline-offset:2px;}
  .card-art{aspect-ratio:4/3; position:relative; background:var(--surface);}
  .card-art svg{width:100%;height:100%;display:block;}
  .card-badges{position:absolute; top:10px; left:10px; display:flex; gap:6px;}
  .badge{font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:5px 9px; border-radius:999px; backdrop-filter:blur(3px);}
  .badge-venda{background:rgba(201,153,63,.92); color:#1a1206;}
  .badge-aluguel{background:rgba(61,106,86,.92); color:#eef6f0;}
  .badge-destaque{background:rgba(20,28,23,.85); color:#F1ECDB; position:absolute; top:10px; right:10px;}
  .badge-reservado{background:rgba(12,24,19,.88); color:var(--gold);}
  .card-body{padding:16px 17px 18px; display:flex; flex-direction:column; gap:10px; flex:1;}
  .card-title{font-family:'Fraunces',serif; font-size:18px; font-weight:600; line-height:1.25;}
  .card-loc{display:flex; align-items:center; gap:6px; font-size:13px; color:var(--ink-soft);}
  .card-loc .icon{width:14px;height:14px;}
  .card-specs{display:flex; gap:14px; flex-wrap:wrap; font-size:12.5px; color:var(--ink-soft); border-top:1px dashed var(--line); padding-top:10px; margin-top:2px;}
  .card-specs span{display:flex; align-items:center; gap:5px; font-variant-numeric:tabular-nums;}
  .card-specs .icon{width:15px;height:15px;}
  .card-price{font-family:'Fraunces',serif; font-size:21px; font-weight:600; color:var(--gold-2); font-variant-numeric:tabular-nums; margin-top:auto;}
  .card-price small{font-family:'Manrope',sans-serif; font-size:12px; color:var(--ink-soft); font-weight:600;}
  .empty-state{grid-column:1/-1; text-align:center; padding:60px 20px; color:var(--ink-soft);}
  .empty-state .display{font-size:22px; margin-bottom:8px; color:var(--ink);}

  /* ---------- DETAIL PAGE ---------- */
  .detail-hero{aspect-ratio:16/9; border-radius:20px; overflow:hidden; position:relative; border:1px solid var(--line); margin-bottom:32px; background:var(--surface);}
  @media (max-width:700px){.detail-hero{aspect-ratio:16/12;}}
  .detail-hero svg{width:100%;height:100%; display:block;}
  .detail-badges{position:absolute; top:16px; left:16px; display:flex; gap:8px;}
  .detail-grid{display:grid; grid-template-columns:1.5fr 1fr; gap:44px; align-items:flex-start; padding-bottom:60px;}
  @media (max-width:860px){.detail-grid{grid-template-columns:1fr;}}
  .detail-title{font-size:clamp(26px,3.4vw,38px); margin-bottom:10px;}
  .detail-loc{display:flex; align-items:center; gap:7px; color:var(--ink-soft); font-size:15px; margin-bottom:24px;}
  .detail-specs{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-bottom:26px;}
  @media (max-width:520px){.detail-specs{grid-template-columns:repeat(2,1fr);}}
  .detail-specs div{display:flex; flex-direction:column; gap:6px;}
  .detail-specs b{font-family:'Fraunces',serif; font-size:21px; font-variant-numeric:tabular-nums;}
  .detail-specs span{font-size:11.5px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.06em;}
  .detail-desc{font-size:16px; color:var(--ink-soft); max-width:64ch; margin-bottom:24px;}
  .chip-row{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px;}
  .chip{font-size:12.5px; font-weight:600; padding:7px 12px; border-radius:999px; background:var(--surface); border:1px solid var(--line); color:var(--ink-soft);}
  .detail-side{position:sticky; top:90px; display:flex; flex-direction:column; gap:16px;}
  .detail-price-card{background:var(--surface-2); border:1px solid var(--line); border-radius:16px; padding:22px;}
  .detail-price{font-family:'Fraunces',serif; font-size:30px; color:var(--gold-2); font-weight:600; font-variant-numeric:tabular-nums; margin-bottom:18px;}
  .detail-price small{font-family:'Manrope',sans-serif; font-size:13px; color:var(--ink-soft); font-weight:600;}
  .agent-card{display:flex; align-items:center; gap:14px; margin-bottom:18px;}
  .agent-photo{width:52px;height:52px;border-radius:50%; overflow:hidden; flex:none; border:2px solid var(--gold-2);}
  .agent-photo img{width:100%;height:100%;object-fit:cover; object-position:center 20%;}
  .agent-info b{font-family:'Fraunces',serif; font-size:15px; display:block;}
  .agent-info span{font-size:12px; color:var(--ink-soft);}
  .detail-actions{display:flex; flex-direction:column; gap:10px;}
  .not-found{padding:100px 0; text-align:center;}
  .not-found h2{font-size:28px; margin-bottom:14px;}
  .similar-wrap{padding-top:20px;}
  .similar-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  @media (max-width:960px){.similar-grid{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:640px){.similar-grid{grid-template-columns:1fr;}}

  /* ---------- SOBRE ---------- */
  .sobre-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:56px; align-items:center;}
  @media (max-width:900px){.sobre-grid{grid-template-columns:1fr;}}
  .portrait-wrap{position:relative; width:min(320px,86%); margin:0 auto;}
  .portrait-ring{aspect-ratio:1/1; border-radius:50%; padding:6px; background:conic-gradient(var(--gold-2), var(--clay), var(--gold), var(--gold-2));}
  .portrait-ring .inner{width:100%;height:100%;border-radius:50%; overflow:hidden; border:4px solid var(--paper);}
  .portrait-ring img{width:100%;height:100%;object-fit:cover; object-position:center 20%;}
  .side-photo{position:absolute; width:126px; aspect-ratio:3/4; right:-14px; bottom:-18px; border-radius:12px; overflow:hidden; border:4px solid var(--paper); box-shadow:var(--shadow);}
  .side-photo img{width:100%;height:100%;object-fit:cover;}
  .sobre-text h2{margin-bottom:18px;}
  .sobre-lead{font-family:'Fraunces',serif; font-style:italic; font-size:21px; color:var(--ink); margin-bottom:18px; line-height:1.4;}
  .sobre-body{color:var(--ink-soft); font-size:15.5px; margin-bottom:24px; max-width:58ch;}
  .cred-row{display:flex; gap:28px; flex-wrap:wrap; margin-bottom:26px;}
  .cred-row .stat b{font-size:24px;}
  .sobre-actions{display:flex; gap:12px; flex-wrap:wrap;}

  /* ---------- DEPOIMENTOS ---------- */
  .test-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
  @media (max-width:860px){.test-grid{grid-template-columns:1fr;}}
  .test-card{background:var(--surface-2); border:1px solid var(--line); border-radius:16px; padding:24px; display:flex; flex-direction:column; gap:14px;}
  .stars{color:var(--gold-2); font-size:14px; letter-spacing:2px;}
  .test-quote{font-family:'Fraunces',serif; font-size:16.5px; font-style:italic; color:var(--ink); flex:1;}
  .test-name{font-size:13px; font-weight:700; color:var(--ink-soft);}
  .test-name b{color:var(--ink);}

  /* ---------- CTA BAND ---------- */
  .cta{background:var(--band); border:1px solid var(--pine-2); border-radius:24px; padding:56px 48px; display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap; color:var(--ink);}
  @media (max-width:640px){ .cta{padding:34px 24px; border-radius:18px;} }
  .cta h2{color:inherit; font-size:clamp(24px,3vw,34px); max-width:16ch;}
  .cta .note{color:inherit; opacity:.85;}
  .cta-actions{display:flex; gap:12px; flex-wrap:wrap;}
  .cta-copy{flex:1 1 330px; min-width:0;}
  .lead-card{flex:1 1 400px; min-width:0; background:var(--surface-2); border:1px solid var(--line); border-radius:16px; padding:22px; box-shadow:var(--shadow);}
  .lead-card h3{font-size:18px; margin-bottom:4px;}
  .lead-card .sub{font-size:13px; color:var(--ink-soft); margin-bottom:16px;}
  .lead-card form{display:flex; flex-direction:column; gap:12px;}
  .lead-row{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
  @media (max-width:520px){ .lead-row{grid-template-columns:1fr;} }
  .lead-card .btn-gold{width:100%; margin-top:2px;}
  .lead-note{font-size:11.5px; color:var(--ink-soft); text-align:center;}
  .lead-ok{display:flex; flex-direction:column; align-items:center; text-align:center; gap:12px; padding:6px 0;}
  .lead-ok-icon{width:52px;height:52px;border-radius:50%;background:rgba(61,106,86,.22);color:var(--pine-3);display:flex;align-items:center;justify-content:center;}
  .lead-ok-icon .icon{width:26px;height:26px;stroke-width:2.2;}
  .lead-ok h3{font-size:20px;}
  .lead-ok .note{max-width:34ch;}
  .lead-ok .btn{width:100%;}
  .cta .btn-line{border-color:var(--pine-3); color:var(--pine-3);}
  .cta .btn-line:hover{color:var(--gold); border-color:var(--gold);}

  /* ---------- FOOTER ---------- */
  footer{padding:60px 0 34px; border-top:1px solid var(--line); margin-top:20px;}
  .foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; margin-bottom:40px;}
  @media (max-width:760px){.foot-grid{grid-template-columns:1fr; gap:30px;}}
  .foot-col img{height:40px; width:auto; margin-bottom:14px;}
  .foot-col h4{font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-soft); margin-bottom:14px; font-weight:700;}
  .foot-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}
  .foot-col a{text-decoration:none; font-size:14.5px; color:var(--ink); display:flex; align-items:center; gap:8px; cursor:pointer;}
  .foot-col a:hover{color:var(--gold-2);}
  .foot-bottom{display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; font-size:12.5px; color:var(--ink-soft); border-top:1px solid var(--line); padding-top:22px;}

  /* ---------- WIDGET "PROTÓTIPO" (atalho para o painel) ---------- */
  .proto-widget{position:fixed; left:20px; bottom:20px; z-index:60; display:flex; align-items:center; gap:12px; padding:9px 18px 9px 9px; border-radius:16px; background:var(--surface-2); border:1px solid var(--line); box-shadow:var(--shadow); color:var(--ink); font-size:14px; font-weight:700; text-decoration:none; transition:transform .18s ease, border-color .18s ease;}
  .proto-widget:hover{transform:translateY(-2px); border-color:var(--gold-2);}
  .proto-ico{width:38px; height:38px; border-radius:11px; background:var(--gold-2); color:#191008; display:flex; align-items:center; justify-content:center; flex:none;}
  .proto-ico .icon{width:18px; height:18px;}
  .proto-short{display:none;}
  #publicShell footer{padding-bottom:96px;}
  @media (max-width:560px){
    .proto-widget{left:14px; bottom:14px; padding:7px 14px 7px 7px; gap:10px; font-size:13px;}
    .proto-ico{width:34px; height:34px;}
    .proto-long{display:none;}
    .proto-short{display:inline;}
  }

  .reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
  .reveal.in{opacity:1; transform:none;}

  /* ==================== ADMIN ==================== */
  .admin-shell{display:none; min-height:100vh; background:var(--paper);}
  .admin-shell.active{display:block;}
  .admin-topbar{position:fixed; top:0; left:0; right:0; height:64px; background:var(--surface-2); border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; padding:0 22px; z-index:80;}
  .admin-brand{display:flex;align-items:center;gap:10px; text-decoration:none;}
  .admin-brand img{height:30px;width:auto;}
  .admin-user{display:flex; align-items:center; gap:20px;}
  .admin-user-info{display:flex; align-items:center; gap:9px;}
  .admin-user-info img{width:32px;height:32px;border-radius:50%;object-fit:cover;object-position:center 20%;border:2px solid var(--gold-2);}
  .admin-user-info div{line-height:1.25;}
  .admin-user-info b{font-size:12.5px; display:block;}
  .admin-user-info span{font-size:10.5px; color:var(--ink-soft);}
  .admin-exit{font-size:13px;color:var(--ink-soft); display:flex; gap:6px; align-items:center; text-decoration:none; cursor:pointer;}
  .admin-exit:hover{color:var(--gold-2);}
  @media (max-width:640px){ .admin-topbar{padding:0 14px;} .admin-user{gap:12px;} .admin-user-info div{display:none;} }
  .admin-body{display:flex; width:100%; padding-top:64px; min-height:100vh;}
  .admin-top-left{display:flex; align-items:center; gap:14px; min-width:0;}
  .sb-toggle{width:38px; height:38px; flex:none; display:flex; align-items:center; justify-content:center; border-radius:10px; border:1px solid var(--line); background:var(--surface); color:var(--ink-soft); cursor:pointer;}
  .sb-toggle .icon{width:19px; height:19px;}
  .sb-toggle:hover{color:var(--gold-2); border-color:var(--gold-2);}
  .admin-sidebar{width:216px; flex:none; border-right:1px solid var(--line); background:var(--surface); position:fixed; top:64px; bottom:0; left:0; z-index:75; padding:22px 12px; display:flex; flex-direction:column; gap:3px; overflow-x:hidden; overflow-y:auto; transition:width .2s ease, padding .2s ease;}
  .admin-nav-item{position:relative; display:flex;align-items:center;gap:11px; padding:10px 12px; border-radius:10px; font-size:14px; font-weight:600; white-space:nowrap; color:var(--ink-soft); text-decoration:none; cursor:pointer;}
  .admin-nav-item .icon{width:17px;height:17px;}
  .admin-nav-item:hover{background:var(--surface-2); color:var(--ink);}
  .admin-nav-item.active{background:var(--gold-2); color:#191008;}
  .admin-main{flex:1; min-width:0; margin-left:216px; padding:32px 36px 70px; transition:margin-left .2s ease;}
  /* sidebar recolhida: só ícones (o texto continua disponível para leitores de tela) */
  .admin-shell.sb-collapsed .admin-sidebar{width:68px; padding:22px 10px;}
  .admin-shell.sb-collapsed .admin-main{margin-left:68px;}
  .admin-shell.sb-collapsed .admin-nav-item{justify-content:center;}
  .admin-shell.sb-collapsed .admin-nav-item span.label{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}
  .sb-backdrop{display:none; position:fixed; inset:64px 0 0 0; z-index:70; background:rgba(6,10,8,.55);}
  /* celular: começa recolhida; ao expandir, abre por cima do conteúdo */
  @media (max-width:820px){
    .admin-shell .admin-main, .admin-shell.sb-collapsed .admin-main{margin-left:60px; padding:24px 18px 60px;}
    .admin-shell.sb-collapsed .admin-sidebar{width:60px; padding:22px 6px;}
    .admin-shell:not(.sb-collapsed) .admin-sidebar{box-shadow:var(--shadow);}
    .admin-shell:not(.sb-collapsed) .sb-backdrop{display:block;}
  }

  /* o conteúdo acompanha o espaço disponível (com a sidebar recolhida ele cresce); só telas muito largas têm teto, e aí fica centralizado */
  .admin-view{display:none; max-width:1680px; margin:0 auto;}
  .admin-view.active{display:block;}
  .admin-head{display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:26px; flex-wrap:wrap;}
  .admin-head h1{font-size:25px; margin-bottom:6px;}

  .stat-cards{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:30px;}
  @media (max-width:900px){.stat-cards{grid-template-columns:repeat(2,minmax(0,1fr));}}
  .stat-card{min-width:0; background:var(--surface-2); border:1px solid var(--line); border-radius:14px; padding:18px 20px; display:flex; flex-direction:column; gap:10px;}
  .stat-card .top-row{display:flex;align-items:center;justify-content:space-between;}
  .stat-card .icon-badge{width:34px;height:34px;border-radius:10px;background:var(--surface); display:flex;align-items:center;justify-content:center;color:var(--gold-2); flex:none;}
  .stat-card b{font-family:'Fraunces',serif; font-size:27px; font-variant-numeric:tabular-nums;}
  .stat-card .lbl{font-size:12px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.05em; font-weight:700;}
  .stat-card .delta{font-size:12px; color:var(--pine-3); font-weight:700;}
  @media (max-width:520px){.stat-card{padding:16px;} .stat-card b{font-size:21px;}}

  .admin-cols{display:grid; grid-template-columns:1fr 1fr; gap:22px;}
  @media (max-width:900px){.admin-cols{grid-template-columns:1fr;}}
  .panel{background:var(--surface-2); border:1px solid var(--line); border-radius:16px; padding:22px;}
  .panel-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
  .panel-head h3{font-size:16px;}
  .mini-list{display:flex; flex-direction:column;}
  .mini-row{display:flex; align-items:center; justify-content:space-between; padding:11px 2px; border-bottom:1px solid var(--line); font-size:13.5px; gap:10px;}
  .mini-row:last-child{border-bottom:none;}
  .mini-row .who b{display:block; font-size:14px; font-weight:700;}
  .mini-row .who span{color:var(--ink-soft); font-size:12px;}
  .mini-row .amt{font-family:'Fraunces',serif; color:var(--gold-2); font-weight:600; font-variant-numeric:tabular-nums;}

  .pill{display:inline-flex; align-items:center; gap:5px; font-size:10.5px; font-weight:800; letter-spacing:.03em; padding:4px 10px; border-radius:999px; text-transform:uppercase; white-space:nowrap;}
  .pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none;}
  .pill-disponivel, .pill-novo{background:rgba(61,106,86,.22); color:var(--pine-3);}
  .pill-reservado, .pill-negociacao{background:rgba(189,142,44,.20); color:var(--gold);}
  .pill-vendido, .pill-fechado{background:rgba(75,88,80,.20); color:var(--ink-soft);}
  .pill-perdido{background:rgba(154,77,51,.20); color:var(--clay);}

  .table-toolbar{display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:16px; flex-wrap:wrap;}
  .table-search{position:relative; max-width:280px; flex:1; min-width:180px;}
  .table-search input{width:100%; padding:9px 12px 9px 34px; border-radius:10px; border:1px solid var(--line); background:var(--surface); color:var(--ink); font-family:inherit; font-size:13.5px;}
  .table-search svg{position:absolute; left:10px; top:50%; transform:translateY(-50%); width:15px;height:15px; color:var(--ink-soft);}

  .table-wrap{overflow-x:auto;}
  .data-table{width:100%; border-collapse:collapse; font-size:13.5px; min-width:640px;}
  .data-table th{text-align:left; font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-soft); font-weight:700; padding:0 12px 10px; border-bottom:1px solid var(--line); white-space:nowrap;}
  .data-table td{padding:13px 12px; border-bottom:1px solid var(--line); vertical-align:middle;}
  .data-table tr:last-child td{border-bottom:none;}
  .data-table tbody tr:hover td{background:var(--surface);}
  .data-table td b{font-weight:700;}
  .row-actions{display:flex; gap:6px;}
  .icon-btn{width:30px;height:30px;border-radius:8px;border:1px solid var(--line); background:var(--surface); color:var(--ink-soft); display:flex;align-items:center;justify-content:center; cursor:pointer; flex:none;}
  .icon-btn .icon{width:15px;height:15px;}
  .icon-btn:hover{color:var(--gold-2); border-color:var(--gold-2);}
  .icon-btn.danger:hover{color:var(--clay); border-color:var(--clay);}

  /* Drawer */
  .drawer-backdrop{position:fixed; inset:0; overflow:hidden; background:rgba(6,10,8,.6); z-index:120; opacity:0; visibility:hidden; transition:opacity .25s ease, visibility .25s ease;}
  .drawer-backdrop.open{opacity:1; visibility:visible;}
  body.no-scroll{overflow:hidden;}
  .drawer{position:absolute; top:0; right:0; bottom:0; width:min(460px,92vw); background:var(--surface-2); border-left:1px solid var(--line); z-index:121; transform:translateX(100%); transition:transform .25s ease; display:flex; flex-direction:column;}
  .drawer-backdrop.open .drawer{transform:translateX(0);}
  .drawer-head{display:flex; align-items:center; justify-content:space-between; padding:20px 22px; border-bottom:1px solid var(--line); flex:none;}
  .drawer-head h3{font-size:18px;}
  .drawer-body{padding:20px 22px; overflow-y:auto; flex:1; display:flex; flex-direction:column; gap:14px;}
  .drawer-foot{padding:16px 22px; border-top:1px solid var(--line); display:flex; gap:10px; justify-content:flex-end; flex:none;}
  .form-row{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
  .form-row.cols-4{grid-template-columns:repeat(4,1fr);}
  @media (max-width:420px){.form-row.cols-4{grid-template-columns:repeat(2,1fr);}}
  .form-field{display:flex; flex-direction:column; gap:6px;}
  .form-field.full{grid-column:1/-1;}
  .form-field label{font-size:12px; font-weight:700; color:var(--ink-soft);}
  .form-field input, .form-field select, .form-field textarea{border:1px solid var(--line); background:var(--surface); color:var(--ink); border-radius:9px; padding:9px 11px; font-family:inherit; font-size:13.5px; width:100%;}
  .form-field textarea{resize:vertical; min-height:80px;}
  .fake-file{border:1.5px dashed var(--line); border-radius:10px; padding:18px; text-align:center; font-size:12.5px; color:var(--ink-soft); cursor:pointer; display:flex; flex-direction:column; align-items:center; gap:6px;}
  .fake-file:hover{border-color:var(--gold-2); color:var(--gold-2);}

  .toast-wrap{position:fixed; bottom:22px; right:22px; display:flex; flex-direction:column; gap:10px; z-index:200; max-width:calc(100vw - 32px);}
  .toast{background:var(--surface-2); border:1px solid var(--line); color:var(--ink); padding:13px 16px; border-radius:12px; font-size:13.5px; font-weight:600; display:flex; align-items:center; gap:12px; box-shadow:var(--shadow); max-width:320px;}
  .toast .undo{color:var(--gold-2); font-weight:800; cursor:pointer; text-decoration:underline; background:none;border:none;font-family:inherit;font-size:inherit; flex:none;}
  .toast .icon{color:var(--pine-3); flex:none;}

  [hidden]{display:none !important;}
  /* com o drawer aberto, os toasts sobem para não cobrir o botão Salvar */
  .drawer-backdrop.open ~ .toast-wrap{bottom:92px;}

  /* ---------- VENDAS ---------- */
  .pill-recebida{background:rgba(61,106,86,.22); color:var(--pine-3);}
  .pill-prevista{background:rgba(189,142,44,.20); color:var(--gold);}
  .pill-atrasada{background:rgba(154,77,51,.20); color:var(--clay);}
  .toolbar-start{display:flex; align-items:center; gap:10px; flex-wrap:wrap; flex:1; min-width:0;}
  .toolbar-end{display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-left:auto;}
  .table-select{padding:9px 12px; border-radius:10px; border:1px solid var(--line); background:var(--surface); color:var(--ink); font-family:inherit; font-size:13.5px;}
  .data-table th.num, .data-table td.num{text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap;}
  .data-table td.num b{font-weight:700;}
  .cell-sub{display:block; margin-top:2px; font-size:12px; font-weight:500; color:var(--ink-soft);}
  .data-table td .pill + .cell-sub{margin-top:5px;}
  .empty-row{text-align:center; color:var(--ink-soft); padding:30px 12px !important;}
  .icon-btn-spacer{width:30px; height:30px; flex:none;}
  .neg-resumo{background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:11px 13px; font-size:13px; color:var(--ink-soft);}
  .neg-resumo b{color:var(--gold); font-weight:800; font-variant-numeric:tabular-nums;}

  /* ---------- FINANCEIRO ---------- */
  .stat-card b{overflow-wrap:anywhere;}
  .stat-card .delta-warn{color:var(--clay);}
  @media (max-width:1100px){ .stat-cards.fin .stat-card b{font-size:22px;} }
  @media (max-width:520px){ .stat-cards.fin .stat-card{padding:14px;} .stat-cards.fin .stat-card b{font-size:18px;} }
  @media (max-width:420px){ .stat-cards.fin .stat-card b{font-size:16px;} }
  .panel-link{font-size:13.5px; text-decoration:none; color:var(--gold-2); font-weight:700;}
  .empty-note{font-size:13.5px; color:var(--ink-soft); padding:18px 0;}
  .fin-panel, .fin-row{margin-bottom:22px;}
  .fin-ranks{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:22px;}

  .seg{display:inline-flex; padding:2px; border:1px solid var(--line); border-radius:999px; background:var(--surface);}
  .seg button{border:0; background:none; color:var(--ink-soft); font-size:12px; font-weight:700; padding:6px 13px; border-radius:999px; cursor:pointer;}
  .seg button:hover{color:var(--ink);}
  .seg button[aria-pressed="true"]{background:var(--gold-2); color:#191008;}

  /* coluna por mês: série única, cor única, topo arredondado, grade em hairline */
  .chart{display:grid; grid-template-columns:52px minmax(0,1fr); column-gap:10px; padding-top:22px;}
  .chart-y, .chart-plot{position:relative; height:220px;}
  .chart-y span{position:absolute; right:0; transform:translateY(50%); font-size:11px; line-height:1; color:var(--ink-soft); white-space:nowrap; font-variant-numeric:tabular-nums;}
  .chart-grid i{position:absolute; left:0; right:0; height:1px; background:var(--line);}
  .chart-cols{position:absolute; inset:0; display:flex; gap:8px; padding:0 4px;}
  .chart-col{position:relative; flex:1; min-width:0; display:flex; align-items:flex-end; justify-content:center; border-radius:6px 6px 0 0; outline:none;}
  .chart-col:hover, .chart-col:focus-visible{background:rgba(241,236,219,.05);}
  .chart-col:focus-visible{outline:2px solid var(--gold-2); outline-offset:1px;}
  .chart-bar{display:block; width:min(24px,70%); min-height:2px; background:var(--gold-2); border-radius:4px 4px 0 0;}
  .chart-col:hover .chart-bar, .chart-col:focus-visible .chart-bar{background:var(--gold);}
  .chart-val{position:absolute; left:50%; transform:translateX(-50%); font-size:11.5px; font-weight:700; color:var(--ink); white-space:nowrap; pointer-events:none;}
  .chart-x{display:flex; gap:8px; padding:8px 4px 0;}
  .chart-x span{flex:1; min-width:0; text-align:center; font-size:11px; line-height:1.25; color:var(--ink-soft);}
  .chart-x small{display:block; font-size:10px; opacity:.8;}
  @media (max-width:520px){ .chart{grid-template-columns:44px minmax(0,1fr); column-gap:6px;} .chart-cols, .chart-x{gap:4px; padding-left:2px; padding-right:2px;} .chart-x span:nth-child(even){visibility:hidden;} }
  .chart-tip{position:absolute; z-index:5; pointer-events:none; background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:9px 12px; font-size:12px; white-space:nowrap; box-shadow:var(--shadow);}
  .chart-tip b{display:block; margin:2px 0; font-size:14px; font-variant-numeric:tabular-nums;}
  .chart-tip .tip-title{color:var(--ink-soft);}
  .chart-tip .tip-sub{color:var(--ink-soft);}
  .data-table.fin-table{min-width:0;}
  .data-table tr.total-row td{border-top:1px solid var(--line); font-weight:800;}

  /* meta anual */
  .meta-fig{display:flex; align-items:baseline; gap:12px; margin-bottom:12px; flex-wrap:wrap;}
  .meta-fig b{font-family:'Fraunces',serif; font-size:32px; font-weight:600;}
  .meta-fig span{font-size:13.5px; color:var(--ink-soft);}
  .meter{height:10px; border-radius:999px; background:rgba(201,153,63,.18); overflow:hidden;}
  .meter i{display:block; height:100%; border-radius:999px; background:var(--gold-2);}
  .meta-note{margin-top:12px;}
  .meta-edit{margin-top:18px; max-width:240px;}
  .amt-col{display:flex; flex-direction:column; align-items:flex-end; gap:5px;}
  .rec-total{margin-top:12px;}
  .rec-total b{color:var(--ink);}

  /* rankings: barras horizontais, uma cor */
  .rank-list{display:flex; flex-direction:column; gap:15px;}
  .rank-top{display:flex; justify-content:space-between; gap:10px; margin-bottom:6px; font-size:13px;}
  .rank-name{font-weight:700; min-width:0;}
  .rank-val{color:var(--ink-soft); white-space:nowrap; font-variant-numeric:tabular-nums;}
  .rank-val b{color:var(--ink); font-weight:700;}
  .rank-track{height:8px; border-radius:4px; background:rgba(201,153,63,.14);}
  .rank-track i{display:block; height:100%; border-radius:0 4px 4px 0; background:var(--gold-2);}
  .rank-row.other .rank-track i{background:var(--ink-soft); opacity:.55;}

  /* ---------- PÓS-VENDA (painel) ---------- */
  .back-link{display:inline-flex; align-items:center; gap:6px; margin-bottom:16px; font-size:13px; font-weight:700; color:var(--ink-soft); text-decoration:none;}
  .back-link:hover{color:var(--gold-2);}
  .head-actions{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
  .pv-chips{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:22px;}
  .chip{background:var(--surface-2); border:1px solid var(--line); border-radius:999px; padding:7px 14px; font-size:12.5px; color:var(--ink-soft);}
  .chip b{color:var(--ink); font-weight:700;}
  .pv-cols{align-items:start; margin-bottom:22px;}
  .mini-meter{height:6px; max-width:200px; margin-bottom:6px; border-radius:3px; background:rgba(201,153,63,.16);}
  .mini-meter i{display:block; height:100%; border-radius:0 3px 3px 0; background:var(--gold-2);}
  .pv-etapas{display:flex; flex-direction:column;}
  .pv-etapa{display:grid; grid-template-columns:32px minmax(0,1fr); gap:14px; padding:14px 0; border-bottom:1px solid var(--line);}
  .pv-etapa:first-child{padding-top:0;}
  .pv-etapa:last-child{border-bottom:0; padding-bottom:0;}
  .pv-mark{width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; color:var(--ink-soft); background:var(--surface); border:2px solid var(--line);}
  .pv-mark .icon{width:16px; height:16px;}
  .pv-et-concluida .pv-mark{background:var(--pine-2); border-color:var(--pine-2); color:#fff;}
  .pv-et-andamento .pv-mark{background:var(--gold-2); border-color:var(--gold-2); color:#191008;}
  .pv-etapa-top{display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:2px;}
  .pv-etapa .note{margin-bottom:8px;}
  .pv-fields{display:grid; grid-template-columns:150px minmax(0,1fr); gap:10px;}
  @media (max-width:520px){ .pv-fields{grid-template-columns:1fr;} }
  .pv-fields label{display:flex; flex-direction:column; gap:4px; font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft);}
  .pv-etapa select, .pv-doc select, .pv-fields input{border:1px solid var(--line); background:var(--surface); color:var(--ink); border-radius:8px; padding:7px 9px; font-family:inherit; font-size:13px; font-weight:500; letter-spacing:0; text-transform:none;}
  .pv-fields input{width:100%;}
  .pv-cat{margin-bottom:18px;}
  .pv-cat:last-child{margin-bottom:0;}
  .pv-cat h4{margin:0 0 4px; font-family:'Manrope',sans-serif; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-2);}
  .pv-doc{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--line);}
  .pv-doc:last-child{border-bottom:0;}
  .pv-doc-info{min-width:0;}
  .pv-doc-info b{display:block; font-size:13.5px;}
  .pv-doc-actions{display:flex; align-items:center; gap:6px; flex:none;}
  @media (max-width:520px){ .pv-doc{flex-direction:column; align-items:stretch;} .pv-doc-actions{justify-content:flex-end;} }

  /* ---------- ÁREA DO CLIENTE ---------- */
  .client-shell{display:none; min-height:100vh; background:var(--paper);}
  .client-shell.active{display:block;}
  .client-top{position:sticky; top:0; z-index:40; background:color-mix(in srgb, var(--paper) 88%, transparent); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
  .client-top-inner{max-width:860px; margin:0 auto; padding:10px 20px; display:flex; align-items:center; justify-content:space-between; gap:14px;}
  .client-brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
  .client-brand img{height:42px; width:auto;}
  .client-brand span{font-family:'Fraunces',serif; font-size:15px; font-weight:600; color:var(--ink-soft);}
  .client-main{max-width:860px; margin:0 auto; padding:30px 20px 80px; display:flex; flex-direction:column; gap:20px;}
  .preview-banner{padding:11px 16px; border:1px solid var(--gold-2); border-radius:12px; background:rgba(201,153,63,.14); font-size:13.5px;}
  .preview-banner a{margin-left:6px; font-weight:800; color:var(--gold);}
  .portal-hello h1{margin:10px 0 8px; font-size:clamp(28px,5.4vw,40px);}
  .portal-lead{max-width:56ch; font-size:15px;}
  .portal-card{background:var(--surface-2); border:1px solid var(--line); border-radius:18px; padding:22px;}
  .portal-card h2{margin:2px 0 6px; font-size:22px;}
  .portal-card h3{margin-bottom:6px; font-size:18px;}
  .portal-step{font-size:11.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-2);}
  .portal-prop{display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap;}
  .portal-facts{display:flex; gap:28px; flex-wrap:wrap;}
  .portal-facts div{display:flex; flex-direction:column; gap:2px;}
  .portal-facts b{font-family:'Fraunces',serif; font-size:20px; font-weight:600;}
  .portal-progress{display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:16px;}
  .portal-pct{display:flex; flex-direction:column; flex:none; text-align:right;}
  .portal-pct b{font-family:'Fraunces',serif; font-size:34px; font-weight:600; line-height:1;}
  .portal-note{margin-top:10px; padding:10px 12px; border-left:3px solid var(--gold-2); border-radius:0 10px 10px 0; background:rgba(201,153,63,.12); font-size:14px;}
  .timeline{list-style:none; margin:16px 0 0; padding:0;}
  .tl-item{position:relative; display:grid; grid-template-columns:34px minmax(0,1fr); gap:14px; padding-bottom:22px;}
  .tl-item:last-child{padding-bottom:0;}
  .tl-item::before{content:""; position:absolute; left:16px; top:34px; bottom:0; width:2px; background:var(--line);}
  .tl-item:last-child::before{display:none;}
  .tl-done::before{background:var(--pine-2);}
  .tl-dot{width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; color:var(--ink-soft); background:var(--surface); border:2px solid var(--line);}
  .tl-dot .icon{width:17px; height:17px;}
  .tl-done .tl-dot{background:var(--pine-2); border-color:var(--pine-2); color:#fff;}
  .tl-current .tl-dot{background:var(--gold-2); border-color:var(--gold-2); color:#191008; box-shadow:0 0 0 5px rgba(201,153,63,.18);}
  .tl-body{display:flex; flex-direction:column; gap:2px; padding-top:4px;}
  .tl-body b{font-size:15px;}
  .tl-desc{font-size:13px; color:var(--ink-soft);}
  .tl-when{margin-top:2px; font-size:12.5px; font-weight:700; color:var(--pine-3);}
  .tl-current .tl-when{color:var(--gold);}
  .tl-nota{margin-top:4px; font-size:13px;}
  .tl-pending .tl-body{opacity:.62;}
  .pdoc-group{margin-top:18px;}
  .pdoc-group h4{display:flex; justify-content:space-between; gap:10px; margin:0 0 6px; font-family:'Manrope',sans-serif; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-2);}
  .pdoc-group h4 span{font-size:12px; font-weight:600; letter-spacing:0; text-transform:none; color:var(--ink-soft);}
  .pdoc{display:grid; grid-template-columns:40px minmax(0,1fr) auto; align-items:center; gap:12px; padding:12px 0; border-top:1px solid var(--line);}
  .pdoc-icon{width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; background:var(--surface); color:var(--gold-2);}
  .pdoc-info b{display:block; font-size:14px;}
  .pdoc-side{display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap;}
  @media (max-width:560px){ .pdoc{grid-template-columns:40px minmax(0,1fr);} .pdoc-side{grid-column:1/-1; justify-content:space-between;} .portal-progress{flex-direction:column;} .portal-pct{text-align:left;} }
  .portal-log{list-style:none; margin:10px 0 0; padding:0;}
  .portal-log li{display:flex; gap:14px; padding:9px 0; border-top:1px solid var(--line); font-size:14px;}
  .portal-log .note{flex:none; width:82px;}
  .portal-contact{display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;}
  .portal-login{display:flex; flex-direction:column; gap:18px; width:100%; max-width:520px; margin:10px auto 0;}
  .portal-login h1{font-size:clamp(28px,6vw,38px);}
  .portal-form{display:flex; flex-direction:column; gap:14px;}
  #portalCode{font-size:16px; letter-spacing:.06em; text-transform:uppercase;}
  .form-error{min-height:18px; font-size:13px; color:var(--clay);}
  .portal-demo h3{margin-bottom:4px; font-size:15px;}
  .demo-row{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-top:1px solid var(--line); text-decoration:none; color:var(--ink);}
  .demo-row:hover b{color:var(--gold-2);}
  .demo-row code{padding:4px 8px; border-radius:8px; background:var(--surface); font-size:12.5px; letter-spacing:.04em; color:var(--gold);}
  .portal-help{text-align:center;}

  /* ---------- CAMPO DE BUSCA (combobox) ---------- */
  .table-search{max-width:340px;}
  .code-tag{padding:3px 7px; border-radius:7px; background:var(--surface); font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:12px; letter-spacing:.02em; color:var(--gold); white-space:nowrap;}
  .combo{position:relative;}
  .combo-field{position:relative;}
  .combo-field > .icon{position:absolute; left:11px; top:50%; transform:translateY(-50%); width:15px; height:15px; color:var(--ink-soft); pointer-events:none;}
  .form-field .combo-input{padding-left:34px; padding-right:36px; text-overflow:ellipsis;}
  .combo-input:focus{outline:2px solid var(--gold-2); outline-offset:1px;}
  .combo-clear{position:absolute; right:6px; top:50%; transform:translateY(-50%); width:26px; height:26px; border-radius:7px; border:0; background:none; color:var(--ink-soft); display:flex; align-items:center; justify-content:center; cursor:pointer;}
  .combo-clear .icon{width:14px; height:14px;}
  .combo-clear:hover{background:var(--surface-2); color:var(--ink);}
  .combo-list{position:absolute; left:0; right:0; top:calc(100% + 6px); z-index:30; margin:0; padding:6px; list-style:none; max-height:300px; overflow-y:auto; background:var(--paper); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow);}
  .combo-opt{display:flex; flex-direction:column; gap:2px; padding:9px 10px; border-radius:8px; cursor:pointer;}
  .combo-opt.active{background:var(--surface-2);}
  .combo-opt.selected{box-shadow:inset 3px 0 0 var(--gold-2);}
  .combo-main{display:flex; align-items:center; justify-content:space-between; gap:10px;}
  .combo-main b{font-size:13.5px; font-weight:700;}
  .combo-opt .cell-sub{margin-top:0;}
  .combo-other{margin-top:4px; border-top:1px solid var(--line); border-radius:0 0 8px 8px; padding-top:11px;}
  .combo-other .combo-main b{color:var(--gold);}
  .combo-empty{padding:12px 10px; font-size:13px; color:var(--ink-soft);}
