:root{
  --dc:#0b47f5;
  --dc2:#08beea;
  --brand-blue:#0b47f5;
  --brand-blue-dark:#0739c7;
  --brand-cyan:#08beea;
  --brand-cyan-soft:#dff8ff;
  --ink:#111827;
  --ink-soft:#334155;
  --muted:#6b7280;
  --bg:#f5f8fc;
  --surface:#ffffff;
  --line:#e3eaf3;
  --line-strong:#d4deea;
  --success:#16a34a;
  --danger:#dc3545;
  --shadow-sm:0 8px 24px rgba(15,42,82,.06);
  --shadow-md:0 18px 50px rgba(15,42,82,.10);
  --radius:20px;
}

html,body{min-height:100%}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  background:
    radial-gradient(circle at 8% 8%,rgba(8,190,234,.07),transparent 28rem),
    radial-gradient(circle at 92% 0%,rgba(11,71,245,.06),transparent 30rem),
    var(--bg);
  color:var(--ink);
  font-family:Inter,"Segoe UI",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--brand-blue)}
main{flex:1 0 auto;width:100%}

/* Header / identidade do cartório/cliente */
.portal-nav{
  min-height:82px;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid rgba(222,230,240,.92);
  box-shadow:0 10px 35px rgba(25,46,75,.07);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.portal-nav-inner{min-height:70px}
.portal-brand{display:flex;align-items:center;gap:14px;margin-right:1.5rem;text-decoration:none}
.brand-logo-full{width:190px;max-height:58px;height:auto;display:block;object-fit:contain;object-position:left center}
.brand-logo-fallback{width:48px;height:48px;display:grid;place-items:center;flex:0 0 48px;border-radius:13px;background:#eef5ff;border:1px solid #dceaff;color:var(--dc);font-size:1.3rem}
.brand-product{display:flex;flex-direction:column;line-height:1.05;padding-left:14px;border-left:1px solid #dce5ef;color:var(--ink)}
.brand-product strong{font-size:.96rem;letter-spacing:-.01em}
.brand-product small{font-size:.68rem;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.09em;font-weight:700}
.portal-nav .nav-link{color:#405066;font-weight:650;font-size:.91rem;padding:.65rem .75rem!important;border-radius:11px;transition:.2s ease}
.portal-nav .nav-link:hover,.portal-nav .nav-link:focus{color:var(--brand-blue);background:#f0f6ff}
.navbar-toggler{border:1px solid var(--line-strong);border-radius:12px;padding:.45rem .6rem;box-shadow:none!important}
.cart-nav-link{display:flex!important;align-items:center;gap:.45rem;position:relative}
.cart-nav-icon{font-size:1.05rem;color:var(--brand-blue)}
.cart-badge{display:inline-grid;place-items:center;min-width:21px;height:21px;padding:0 6px;border-radius:999px;background:linear-gradient(135deg,var(--brand-blue),var(--brand-cyan));color:#fff;font-size:.7rem;font-weight:800;box-shadow:0 5px 12px rgba(11,71,245,.22)}
.btn-admin,.btn-brand{border:0;color:#fff!important;background:linear-gradient(135deg,var(--brand-blue),#1967ff 55%,var(--brand-cyan));box-shadow:0 8px 18px rgba(11,71,245,.20)}
.btn-admin:hover,.btn-brand:hover{transform:translateY(-1px);filter:brightness(.98);box-shadow:0 12px 25px rgba(11,71,245,.26)}
.nav-logout{border-color:#d7e0ea;color:#526176;background:#fff}

/* Hero */
.hero{
  position:relative;
  overflow:hidden;
  padding:82px 0 66px;
  background:
    radial-gradient(circle at 85% 20%,rgba(8,190,234,.20),transparent 31%),
    radial-gradient(circle at 62% 0%,rgba(11,71,245,.12),transparent 25%),
    linear-gradient(180deg,#fff 0%,#f6faff 72%,transparent 100%);
}
.hero:after{content:"";position:absolute;width:390px;height:390px;border-radius:50%;right:-160px;bottom:-240px;border:70px solid rgba(11,71,245,.035);pointer-events:none}
.eyebrow{display:inline-flex;gap:.5rem;align-items:center;font-size:.75rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase;color:#0855d9;background:linear-gradient(90deg,#edf5ff,#e7fbff);border:1px solid #d8edff;padding:.48rem .78rem;border-radius:999px}
.display-title{font-weight:850;letter-spacing:-.042em;line-height:1.05;max-width:780px;color:#10213b}
.display-title .brand-gradient{background:linear-gradient(90deg,var(--brand-blue),var(--brand-cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.lead-muted{color:var(--muted);max-width:720px;line-height:1.7}
.hero-trust{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.25rem}.hero-trust span{display:inline-flex;align-items:center;gap:.42rem;padding:.5rem .75rem;border-radius:999px;background:#fff;border:1px solid var(--line);color:#526176;font-size:.78rem;font-weight:650;box-shadow:var(--shadow-sm)}
.hero-brand-card{position:relative;overflow:hidden}.hero-brand-card:before{content:"";position:absolute;inset:0 0 auto auto;width:150px;height:150px;background:radial-gradient(circle,rgba(8,190,234,.15),transparent 68%);pointer-events:none}.hero-card-logo{width:70px;height:70px;object-fit:contain;filter:drop-shadow(0 9px 20px rgba(11,71,245,.14))}

/* Superfícies */
.surface{background:rgba(255,255,255,.98);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md)}
.feature-card{height:100%;padding:1.45rem;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow-sm);transition:.2s ease}.feature-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.icon-box{width:50px;height:50px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(145deg,#eef5ff,#e6fbff);color:var(--brand-blue);font-size:1.35rem;border:1px solid #dceeff}
.section-title{font-size:1.05rem;font-weight:850;padding-left:.9rem;border-left:4px solid var(--brand-cyan);color:#13233b}

/* Botões */
.btn{border-radius:12px;font-weight:700;transition:.18s ease}
.btn-lg{border-radius:14px}
.btn-primary{border:0;background:linear-gradient(135deg,var(--brand-blue),#1766ff 60%,var(--brand-cyan));box-shadow:0 10px 22px rgba(11,71,245,.18)}
.btn-primary:hover,.btn-primary:focus{background:linear-gradient(135deg,var(--brand-blue-dark),#0f5cee 60%,#06abd4);transform:translateY(-1px);box-shadow:0 14px 28px rgba(11,71,245,.24)}
.btn-outline-primary{border-color:#a9c1ff;color:#0b54e7;background:#fff}.btn-outline-primary:hover{background:#edf4ff;border-color:#7ea3ff;color:#083fc2}

/* Fluxo do pedido */
.stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem;margin:1.5rem 0}
.step{position:relative;text-align:center;font-size:.78rem;color:#8a96a8;font-weight:650}.step:before{content:"";display:block;height:5px;border-radius:999px;background:#dfe6ef;margin-bottom:.62rem}.step.active{color:#12365f;font-weight:850}.step.active:before,.step.done:before{background:linear-gradient(90deg,var(--brand-blue),var(--brand-cyan))}.step.done{color:#4c6280}
.summary-card{position:sticky;top:103px}
.money{font-size:1.75rem;font-weight:850;letter-spacing:-.02em;background:linear-gradient(90deg,#0b47f5,#00a8d8);-webkit-background-clip:text;background-clip:text;color:transparent}
.order-card{border:1px solid var(--line);border-radius:18px;background:#fff;padding:1.25rem;box-shadow:0 6px 18px rgba(20,45,80,.04)}
.order-card:hover{border-color:#ccdaf0}
.status{font-size:.75rem;font-weight:850;border-radius:999px;padding:.38rem .66rem;background:#eef4fa;color:#3d536d;white-space:nowrap;border:1px solid transparent;display:inline-flex;align-items:center;gap:.35rem}
.status-draft{background:#f1f5f9;color:#475569;border-color:#e2e8f0}
.status-awaiting-payment{background:#fff7e6;color:#9a6700;border-color:#ffe2a8}
.status-awaiting-payment-review{background:#fff3cd;color:#7a4d00;border-color:#f2c66d;box-shadow:0 0 0 3px rgba(245,181,44,.10)}
.status-analysis{background:#e8f2ff;color:#0b57b7;border-color:#c9defb}
.status-production{background:#f1ebff;color:#6840a6;border-color:#ded0fb}
.status-ready{background:#e8f8ee;color:#16723b;border-color:#ccebd8}
.status-sent{background:#eaf7fb;color:#14677a;border-color:#cdeaf2}
.status-completed{background:#e7f8ed;color:#166534;border-color:#c7e9d2}
.status-denied{background:#fff0f0;color:#a12828;border-color:#f1cccc}
.status-cancelled{background:#f6f6f7;color:#5f6368;border-color:#dedfe2}
.history-status{display:inline-flex;align-items:center;width:max-content;padding:.34rem .58rem;border-radius:999px;font-size:.78rem;font-weight:850;border:1px solid transparent}
.history-status.status-awaiting-payment-review{background:#fff3cd;color:#7a4d00;border-color:#f2c66d;box-shadow:0 0 0 3px rgba(245,181,44,.10)}
.cart-page-title{display:flex;align-items:center;gap:.85rem}.cart-page-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(135deg,#edf4ff,#e1faff);color:var(--brand-blue);font-size:1.4rem;border:1px solid #d9eaff}
.cart-card{display:block;text-decoration:none;color:inherit;border:1px solid var(--line);border-radius:18px;background:#fff;padding:1.25rem;box-shadow:var(--shadow-sm);transition:.18s ease}.cart-card:hover{color:inherit;border-color:#bdd1f2;transform:translateY(-2px);box-shadow:var(--shadow-md)}
.cart-card .cart-arrow{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#eef5ff;color:var(--brand-blue)}
.cart-empty{padding:3rem 1.5rem;text-align:center}.cart-empty-icon{width:76px;height:76px;display:grid;place-items:center;margin:0 auto 1rem;border-radius:24px;background:linear-gradient(145deg,#eef5ff,#e3fbff);font-size:2rem;color:var(--brand-blue)}

/* Formulários */
.form-label{font-size:.86rem;font-weight:750;color:#344258;margin-bottom:.42rem}
.form-control,.form-select{min-height:49px;border-color:#dbe4ef;border-radius:12px;background:#fff;color:#17233a}
textarea.form-control{min-height:auto}
.form-control::placeholder{color:#a0adbd}
.form-control:focus,.form-select:focus{border-color:#76a7ff;box-shadow:0 0 0 .22rem rgba(11,71,245,.10)}
.input-group .form-control{min-height:49px}.input-group-text{border-color:#dbe4ef;background:#f8fafc}
.warning-soft{background:#fff9e7;border:1px solid #f2df9a;border-radius:14px;padding:1rem;color:#6b5615}
.delivery-address{border:1px solid #dce8f6;background:linear-gradient(145deg,#f8fbff,#f7fdff);border-radius:18px;padding:1.25rem}.delivery-address-head{display:flex;align-items:center;gap:.9rem}.delivery-address-icon{width:46px;height:46px;display:grid;place-items:center;flex:0 0 46px;border-radius:14px;background:linear-gradient(135deg,#eaf2ff,#dffaff);color:var(--brand-blue);font-size:1.2rem;border:1px solid #d5e7fb}
.validation-summary-valid,.field-validation-valid{display:none}

/* Autenticação */
.auth-shell{min-height:calc(100vh - 170px);display:grid;place-items:center;padding:52px 0}.auth-card{width:min(100%,820px);padding:2.2rem}.auth-card:before{content:"";position:absolute}

/* Administração */
.admin-menu{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.2rem}.admin-menu a{border:1px solid var(--line);background:#fff;border-radius:12px;padding:.65rem .9rem;text-decoration:none;color:var(--ink);box-shadow:var(--shadow-sm)}.admin-menu a:hover{border-color:#bfd3f4;color:var(--brand-blue)}
.table-modern{background:white;border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-sm)}.table-modern .table{margin:0}
.success-panel{max-width:760px;margin:60px auto;text-align:center;padding:2.5rem}.qr-box{background:#fff;border:1px dashed #b7c6d8;border-radius:14px;padding:1rem;display:inline-block}
.alert-modern{border-radius:14px;border-width:1px;box-shadow:var(--shadow-sm)}

/* Detalhes completos do pedido */
.detail-status{padding:.55rem .9rem;font-size:.8rem}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:15px;overflow:hidden}.detail-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-field{background:#fff;padding:.9rem 1rem;min-width:0}.detail-field span,.detail-text span,.detail-address span{display:block;color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.045em;margin-bottom:.28rem}.detail-field strong{font-size:.9rem;color:#1e2d42;word-break:break-word}.detail-text{border-top:1px solid #edf1f6;padding-top:.9rem}.detail-text p{margin:.25rem 0 .9rem;color:#334155;white-space:pre-wrap}.detail-address{display:flex;align-items:flex-start;gap:.85rem;border:1px solid #dfe8f2;background:#f8fbff;border-radius:15px;padding:1rem}.detail-address-icon{width:42px;height:42px;display:grid;place-items:center;flex:0 0 42px;border-radius:13px;background:#eaf3ff;color:var(--brand-blue)}.detail-side-row{display:flex;justify-content:space-between;gap:1rem;padding:.52rem 0;border-bottom:1px solid #edf1f5;font-size:.88rem}.detail-side-row:last-child{border-bottom:0}.detail-side-row span{color:var(--muted)}.detail-side-row strong{text-align:right}.attachment-link{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:#263a55;border:1px solid var(--line);border-radius:13px;padding:.78rem;background:#fff;transition:.18s ease}.attachment-link:hover{border-color:#b9cff1;background:#f7fbff;color:var(--brand-blue)}.attachment-link>i{font-size:1.25rem}.attachment-link span{display:flex;flex-direction:column;min-width:0}.attachment-link strong{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-link small{font-size:.7rem;color:var(--muted)}.timeline{position:relative}.timeline-item{position:relative;display:grid;grid-template-columns:20px 1fr;gap:.8rem;padding-bottom:1.1rem}.timeline-item:not(:last-child):before{content:"";position:absolute;left:6px;top:13px;bottom:-1px;width:2px;background:#dce7f3}.timeline-dot{width:14px;height:14px;margin-top:4px;border-radius:50%;background:linear-gradient(135deg,var(--brand-blue),var(--brand-cyan));box-shadow:0 0 0 4px #eaf4ff;z-index:1}.timeline-content{min-width:0;padding-bottom:.2rem}

/* Footer sempre no rodapé sem sobrepor o conteúdo */
.portal-footer{margin-top:auto;background:linear-gradient(135deg,#0b1830,#102b4c);color:#d7e4f2;padding:30px 0;font-size:.88rem}.footer-grid{display:grid;grid-template-columns:1.15fr 1.25fr auto;gap:1.5rem;align-items:center}.footer-logo{width:44px;height:44px;object-fit:contain}.footer-logo-fallback{display:grid;place-items:center;flex:0 0 44px;border-radius:12px;background:rgba(255,255,255,.10);color:#fff;font-size:1.1rem}.footer-security{color:#bcd0e5}.footer-copy{color:#a9bfd5;text-align:right}.footer-copy strong{color:#fff}

@media(max-width:1199px){.brand-logo-full{width:170px}.brand-product{display:none}.portal-nav .nav-link{font-size:.86rem;padding:.6rem .58rem!important}}
@media(max-width:991px){.portal-nav{min-height:72px}.brand-logo-full{display:block;width:150px;max-height:50px}.brand-product{display:none;border-left:0;padding-left:0}.portal-nav .navbar-collapse{padding:1rem 0 .35rem}.portal-nav .nav-link{padding:.7rem .75rem!important}.cart-nav-link{width:fit-content}.nav-logout,.btn-admin{margin-top:.3rem}.summary-card{position:static}.footer-grid{grid-template-columns:1fr}.footer-copy{text-align:left}}
@media(max-width:767px){.hero{padding:52px 0 38px}.display-title{font-size:2.2rem}.step{font-size:.65rem}.auth-card{padding:1.3rem}.brand-product strong{font-size:.9rem}.brand-product small{font-size:.62rem}.footer-security{font-size:.82rem}.detail-grid,.detail-grid.compact{grid-template-columns:1fr}.delivery-address{padding:1rem}}

/* Cotação de frete dos Correios */
.freight-quote{border:1px solid #d7e6f6;background:#fff;border-radius:16px;padding:1rem 1.1rem;box-shadow:0 8px 24px rgba(26,57,93,.05)}
.freight-quote-icon{width:44px;height:44px;display:grid;place-items:center;flex:0 0 44px;border-radius:14px;background:linear-gradient(145deg,#eef5ff,#e5fbff);color:var(--brand-blue);font-size:1.2rem;border:1px solid #dceafa}
.freight-quote-value{font-size:1.35rem;font-weight:850;color:#0b47f5;letter-spacing:-.02em}

/* Módulos do portal */
.module-dropdown{min-width:330px;border:1px solid var(--line);border-radius:16px;padding:.45rem;box-shadow:var(--shadow-md)}
.module-dropdown .dropdown-item{display:flex;align-items:flex-start;gap:.55rem;border-radius:11px;padding:.7rem .8rem;color:#263a55;white-space:normal}
.module-dropdown .dropdown-item:hover{background:#f2f7ff;color:var(--brand-blue)}
.module-dropdown .dropdown-item>i{font-size:1.05rem;margin-top:.1rem;color:var(--brand-blue)}
.module-dropdown .dropdown-item span{display:flex;flex-direction:column}.module-dropdown .dropdown-item small{color:var(--muted);font-size:.7rem;margin-top:.12rem;line-height:1.25}
.module-icon{width:58px;height:58px;display:grid;place-items:center;flex:0 0 58px;border-radius:18px;background:linear-gradient(145deg,#eef5ff,#e6fbff);color:var(--brand-blue);font-size:1.55rem;border:1px solid #d9eaff;box-shadow:var(--shadow-sm)}
.module-icon.ri{background:linear-gradient(145deg,#eef6ff,#e4f8ff);color:#0879ca}.module-icon.success{color:#16803a;background:#eaf9ef;border-color:#ccebd7}
.mini-module-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#edf5ff;color:var(--brand-blue);border:1px solid #dceaff}
.module-public-card{position:relative;overflow:hidden;transition:.2s ease}.module-public-card:hover{transform:translateY(-3px);box-shadow:0 22px 55px rgba(15,42,82,.13)}
.module-public-card:after{content:"";position:absolute;right:-45px;top:-45px;width:145px;height:145px;border-radius:50%;background:radial-gradient(circle,rgba(8,190,234,.12),transparent 70%);pointer-events:none}
.service-pill-list{display:flex;flex-wrap:wrap;gap:.5rem}.service-pill-list span{display:inline-flex;align-items:center;padding:.45rem .65rem;border:1px solid #dfe8f2;border-radius:999px;background:#f9fbfd;color:#526176;font-size:.76rem;font-weight:700}
.module-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.34rem .58rem;border-radius:999px;background:#edf4ff;color:#1452b8;font-size:.7rem;font-weight:850;white-space:nowrap;border:1px solid #dbe8fc}.module-badge.ri{background:#eafaff;color:#0878a8;border-color:#d0eff8}
.module-admin-card{transition:.18s ease}.module-admin-card:hover{border-color:#c8d9f0}.config-toggle{height:100%;display:flex;gap:.7rem;align-items:flex-start;padding:1rem;border:1px solid var(--line);border-radius:14px;background:#f9fbfd}.config-toggle .form-check-input{margin-top:.25rem;flex:0 0 auto}.config-toggle label{cursor:pointer}
.request-textarea{min-height:220px;resize:vertical}.module-info-list{display:grid;gap:.75rem;margin-top:1rem}.module-info-list>div{display:flex;align-items:flex-start;gap:.65rem;color:#526176;font-size:.86rem}.module-info-list i{color:var(--brand-blue);font-size:1rem;margin-top:.05rem}
.verbal-cart-item{border-left:4px solid #08beea}.verbal-preview{white-space:pre-wrap;color:#334155;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.verbal-summary-item{border:1px solid #e4ebf3;border-radius:14px;padding:1rem;background:#fbfdff}.response-info{display:flex;align-items:flex-start;gap:.9rem;background:#fff7da;border:1px solid #f2dc86;border-radius:16px;padding:1rem 1.1rem;color:#5d4a0e}.response-info-icon{width:42px;height:42px;display:grid;place-items:center;flex:0 0 42px;border-radius:13px;background:#fff;color:#a57700;border:1px solid #f0d883}.free-service-badge{display:flex;align-items:center;gap:.55rem;padding:.8rem .9rem;border-radius:13px;background:#effaf3;color:#207541;border:1px solid #d2ebdc;font-weight:750;font-size:.84rem}.free-service-badge i{font-size:1.05rem}.success-soft{display:flex;align-items:center;gap:1rem;padding:1rem;border-radius:16px;background:#f1fbf4;border:1px solid #d2ebd9;color:#235f36}.security-code-box{display:inline-flex;flex-direction:column;gap:.45rem;background:#f5f9ff;border:1px dashed #abc5ec;border-radius:15px;padding:1rem 1.4rem;margin:1rem auto}.security-code-box code{font-size:1.15rem;font-weight:850;letter-spacing:.08em;color:#0b47f5}.verbal-response{background:linear-gradient(145deg,#eef8ff,#f2fbff);border:1px solid #cee8f7;border-radius:15px;padding:1rem;color:#23445e}.verbal-response p{white-space:pre-wrap;color:#24435a}

@media(max-width:767px){.module-dropdown{min-width:min(330px,calc(100vw - 30px))}.module-icon{width:50px;height:50px;flex-basis:50px;font-size:1.3rem}.service-pill-list{gap:.35rem}.config-toggle{padding:.85rem}}


/* Validação de formulários: obrigatoriedade só fica evidente após tentativa inválida de envio. */
.dc-required-legend{display:none!important}.dc-required-mark{color:#d1242f;font-weight:900;margin-left:.12rem}.dc-required-label{font-weight:inherit;color:inherit}
.field-validation-error{display:none;margin-top:.3rem;font-weight:650}
.dc-validation-attempted .field-validation-error{display:block}
.dc-validation-attempted .input-validation-error,
.dc-validation-attempted .form-control:invalid,
.dc-validation-attempted .form-select:invalid,
.dc-validation-attempted .form-check-input:invalid{border-color:#dc3545!important}
.dc-validation-attempted .form-control:invalid:focus,
.dc-validation-attempted .form-select:invalid:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.12)}

/* PIX - bloco de pagamento */
.pix-payment-panel {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(11, 71, 245, .14);
    border-radius: 20px;
    background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(239,247,255,.95));
    box-shadow: 0 16px 45px rgba(23, 57, 120, .08);
    padding: 22px;
}
.pix-payment-panel::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: linear-gradient(180deg, #0B47F5, #08BEEA);
}
.pix-payment-head {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}
.pix-payment-icon {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: #eef6ff;
    border: 1px solid #d9eaff;
    color: #0B47F5;
    font-size: 1.35rem;
}
.pix-payment-title {
    font-size: 1.05rem;
    font-weight: 800;
    color: #11213a;
}
.pix-payment-meta {
    display: grid;
    gap: 3px;
    color: #5d6b80;
    font-size: .92rem;
}
.pix-payment-meta strong { color: #24344f; }
.pix-qrcode-box {
    position: relative;
    width: min(100%, 198px);
    background: #fff;
    border: 1px solid #e1eaf5 !important;
    box-shadow: 0 10px 30px rgba(20, 48, 99, .09);
}
.pix-qrcode-image {
    width: 100%;
    max-width: 168px;
    height: auto;
    display: block;
}
.pix-qrcode-box::after {
    content: "PIX";
    position: absolute;
    right: 10px;
    bottom: 8px;
    padding: 2px 7px;
    border-radius: 999px;
    background: #eef8ff;
    color: #0B47F5;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .08em;
}
.pix-copy-label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.pix-copy-field {
    resize: none;
    min-height: 96px;
    font-size: .74rem;
    line-height: 1.45;
    background: #fff !important;
    border-color: #dce6f3 !important;
}
.pix-value-highlight {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #eaf8ef;
    color: #15753c;
    font-size: .78rem;
    font-weight: 800;
}
.pix-txid {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    font-size: .78rem;
    color: #526176;
}
@media (max-width: 767.98px) {
    .pix-payment-panel { padding: 18px; }
    .pix-payment-head { align-items: center; }
    .pix-qrcode-box { width: min(100%, 176px); }
    .pix-qrcode-image { max-width: 150px; }
}

/* Dados para eventual devolução de pagamento */
.refund-payment-panel {
    padding: 20px;
    border: 1px solid #dce7f3;
    border-radius: 18px;
    background: linear-gradient(145deg, #ffffff, #f7fbff);
}
.refund-payment-icon {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: #eef6ff;
    border: 1px solid #d8e7fb;
    color: #0B47F5;
    font-size: 1.25rem;
}

/* Registro de Imóveis - tipos da Busca Verbal */
.ri-search-type-box{padding:18px;border:1px solid rgba(11,71,245,.14);border-radius:16px;background:linear-gradient(145deg,#fff,#f5f9ff)}
.ri-type-fields{padding-top:4px;animation:riFieldsIn .18s ease-out}
.ri-type-fields .section-title{margin-bottom:1rem}
@keyframes riFieldsIn{from{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:none}}

/* Faixa institucional do cartório */
.portal-contact-bar{
  position:relative;
  z-index:1040;
  background:var(--dc);
  color:#fff;
  font-size:.78rem;
  font-weight:650;
}
.portal-contact-inner{
  min-height:36px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.portal-contact-name,.portal-contact-items,.portal-contact-link{
  display:flex;
  align-items:center;
}
.portal-contact-name{gap:.45rem;opacity:.9;white-space:nowrap}
.portal-contact-items{justify-content:flex-end;gap:1.25rem;min-width:0}
.portal-contact-link{gap:.45rem;color:#fff;text-decoration:none;min-width:0}
a.portal-contact-link:hover{color:#fff;text-decoration:underline}
.portal-contact-address span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:760px}
.portal-contact-link i{color:rgba(255,255,255,.92)}

/* Linha de carregamento entre páginas - somente CSS/JS, sem requisições adicionais */
.portal-nav{position:sticky}
.dc-page-loadingbar{
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:3px;
  overflow:hidden;
  pointer-events:none;
  opacity:0;
  z-index:10;
  transition:opacity .12s ease;
}
.dc-page-loadingbar::after{
  content:"";
  position:absolute;
  inset:0;
  width:45%;
  background:linear-gradient(90deg,var(--dc),var(--dc2));
  box-shadow:0 0 12px rgba(11,71,245,.35);
  transform:translate3d(-115%,0,0);
  will-change:transform;
}
.dc-page-loadingbar.is-loading{opacity:1}
.dc-page-loadingbar.is-loading::after{animation:dc-page-progress .82s ease-in-out infinite}
@keyframes dc-page-progress{
  0%{transform:translate3d(-115%,0,0)}
  62%{transform:translate3d(155%,0,0)}
  100%{transform:translate3d(250%,0,0)}
}
@media (prefers-reduced-motion:reduce){
  .dc-page-loadingbar.is-loading::after{animation-duration:1.8s}
}

/* Home pública - foco no cliente do cartório */
.home-service-hero{
  position:relative;
  overflow:hidden;
  padding:72px 0 64px;
  background:
    radial-gradient(circle at 84% 18%,rgba(8,190,234,.14),transparent 27rem),
    radial-gradient(circle at 69% -8%,rgba(11,71,245,.10),transparent 25rem),
    linear-gradient(180deg,#fff 0%,#f7faff 100%);
  border-bottom:1px solid #e9eff6;
}
.home-service-hero::after{
  content:"";
  position:absolute;
  width:420px;
  height:420px;
  right:-220px;
  bottom:-300px;
  border:78px solid rgba(11,71,245,.03);
  border-radius:50%;
  pointer-events:none;
}
.home-service-kicker{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  max-width:100%;
  padding:.48rem .78rem;
  border:1px solid #d9e8fb;
  border-radius:999px;
  background:#fff;
  color:#35506f;
  font-size:.76rem;
  font-weight:800;
  box-shadow:0 6px 18px rgba(15,42,82,.05);
}
.home-service-kicker i{color:var(--dc)}
.home-service-title{
  max-width:760px;
  margin:0;
  color:#10213b;
  font-size:clamp(2.25rem,4.7vw,4.15rem);
  line-height:1.03;
  letter-spacing:-.047em;
  font-weight:880;
}
.home-service-title span{
  background:linear-gradient(90deg,var(--dc),var(--dc2));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.home-service-lead{
  max-width:690px;
  margin-bottom:0;
  color:#5c6b80;
  font-size:1.08rem;
  line-height:1.72;
}
.home-service-assurances{
  display:flex;
  flex-wrap:wrap;
  gap:.7rem 1.1rem;
  color:#5a6a80;
  font-size:.82rem;
  font-weight:650;
}
.home-service-assurances span{display:inline-flex;align-items:center;gap:.42rem}
.home-service-assurances i{color:var(--dc)}
.home-how-card{
  position:relative;
  overflow:hidden;
  padding:1.8rem;
  border:1px solid #dfe8f4;
  border-radius:24px;
  background:rgba(255,255,255,.97);
  box-shadow:0 24px 60px rgba(16,44,84,.11);
}
.home-how-card::before{
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  right:-80px;
  top:-85px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(8,190,234,.16),transparent 70%);
  pointer-events:none;
}
.home-how-head{display:flex;align-items:center;gap:1rem;margin-bottom:1.4rem}
.home-how-icon{
  width:56px;
  height:56px;
  flex:0 0 56px;
  display:grid;
  place-items:center;
  border-radius:17px;
  background:linear-gradient(145deg,#eef5ff,#e3fbff);
  border:1px solid #d9eaff;
  color:var(--dc);
  font-size:1.45rem;
}
.home-how-head span{display:block;color:#758398;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800}
.home-how-head h2{margin:.18rem 0 0;color:#10213b;font-size:1.32rem;font-weight:850}
.home-how-steps{display:grid;gap:.2rem}
.home-how-step{display:flex;align-items:flex-start;gap:.9rem;padding:1rem .15rem;border-top:1px solid #edf1f6}
.home-step-number{
  width:30px;
  height:30px;
  flex:0 0 30px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#eef5ff;
  color:var(--dc);
  font-size:.78rem;
  font-weight:900;
}
.home-how-step strong{display:block;color:#24354d;font-size:.9rem}
.home-how-step small{display:block;margin-top:.25rem;color:#7a8798;line-height:1.45}
.home-how-footer{display:flex;align-items:flex-start;gap:.5rem;margin-top:.7rem;padding:.8rem .9rem;border-radius:13px;background:#f7faff;color:#607087;font-size:.76rem;line-height:1.45}
.home-how-footer i{color:var(--dc);margin-top:.05rem}
.home-specialties-section{background:#f5f8fc}
.home-section-head{max-width:760px}
.home-section-kicker{color:var(--dc);font-size:.73rem;font-weight:850;text-transform:uppercase;letter-spacing:.1em}
.home-section-head h2{margin:.35rem 0 .35rem;color:#10213b;font-size:clamp(1.8rem,3vw,2.35rem);font-weight:870;letter-spacing:-.03em}
.home-section-head p{margin:0;color:#68778b}
.specialty-card{
  display:flex;
  flex-direction:column;
  padding:1.75rem;
  border:1px solid #dfe7f2;
  border-radius:21px;
  background:#fff;
  box-shadow:0 12px 32px rgba(18,45,82,.065);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.specialty-card:hover{transform:translateY(-3px);border-color:#c7d8ef;box-shadow:0 20px 45px rgba(18,45,82,.10)}
.specialty-card-top{display:flex;align-items:center;gap:1rem}
.specialty-icon{
  width:56px;
  height:56px;
  flex:0 0 56px;
  display:grid;
  place-items:center;
  border-radius:17px;
  color:var(--dc);
  background:linear-gradient(145deg,#edf4ff,#e5fbff);
  border:1px solid #d8e9fb;
  font-size:1.4rem;
}
.specialty-icon.ri{color:#0879ca}
.specialty-label{display:block;color:#7b8798;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;font-weight:850}
.specialty-card h3{margin:.2rem 0 0;color:#10213b;font-size:1.35rem;font-weight:850}
.specialty-description{margin:1.1rem 0;color:#68778b;line-height:1.65}
.specialty-services{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.35rem}
.specialty-services span{display:inline-flex;align-items:center;gap:.38rem;padding:.42rem .62rem;border:1px solid #e0e8f2;border-radius:999px;background:#f9fbfd;color:#53647a;font-size:.72rem;font-weight:700}
.specialty-services i{color:var(--dc)}
.specialty-action{display:flex;align-items:center;flex-wrap:wrap;gap:.85rem}
.specialty-login-note{color:#8490a1;font-size:.72rem}
.public-feature-card{
  height:100%;
  display:flex;
  align-items:flex-start;
  gap:1rem;
  padding:1.3rem;
  border:1px solid #e0e8f2;
  border-radius:17px;
  background:#fff;
  box-shadow:0 8px 22px rgba(18,45,82,.045);
}
.public-feature-card>i{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:12px;background:#eef6ff;color:var(--dc);border:1px solid #dceaff;font-size:1.05rem}
.public-feature-card h3{margin:.08rem 0 .28rem;color:#24354d;font-size:.93rem;font-weight:820}
.public-feature-card p{margin:0;color:#7a8798;font-size:.78rem;line-height:1.5}
.home-empty-icon{width:64px;height:64px;display:grid;place-items:center;margin:0 auto;border-radius:18px;background:#eef5ff;color:var(--dc);font-size:1.55rem}

@media(max-width:991.98px){
  .brand-logo-full{width:150px;max-height:50px}
  .portal-contact-inner{justify-content:center}
  .portal-contact-items{justify-content:center;width:100%}
  .home-service-hero{padding:56px 0 50px}
}
@media(max-width:767.98px){
  .portal-contact-bar{font-size:.7rem}
  .portal-contact-inner{padding-top:.42rem;padding-bottom:.42rem}
  .portal-contact-items{align-items:flex-start;justify-content:flex-start;flex-direction:column;gap:.3rem}
  .portal-contact-address span{max-width:calc(100vw - 58px);white-space:normal;line-height:1.3}
  .home-service-title{font-size:2.35rem}
  .home-service-lead{font-size:.98rem}
  .home-how-card{padding:1.3rem}
  .specialty-card{padding:1.35rem}
  .specialty-action{align-items:flex-start;flex-direction:column}
}

/* Loading visual global: complementa a linha sob o menu sem fazer requisições extras */
.dc-page-loading-overlay{
  position:fixed;
  inset:0;
  display:grid;
  place-items:center;
  background:rgba(248,251,255,.72);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  z-index:2000;
  transition:opacity .14s ease,visibility .14s ease;
}
.dc-page-loading-overlay.is-loading{opacity:1;visibility:visible}
.dc-page-loading-card{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:218px;
  padding:14px 18px;
  border:1px solid #e2eaf5;
  border-radius:16px;
  background:#fff;
  box-shadow:0 18px 50px rgba(24,55,105,.16);
  color:#17233a;
  transform:translate3d(0,6px,0);
  transition:transform .14s ease;
}
.dc-page-loading-overlay.is-loading .dc-page-loading-card{transform:translate3d(0,0,0)}
.dc-page-loading-logo{width:34px;height:34px;object-fit:contain;flex:0 0 34px}.dc-page-loading-logo-fallback{display:grid;place-items:center;border-radius:10px;background:#eef5ff;color:var(--dc);font-size:1rem}
.dc-page-loading-spinner{
  width:22px;
  height:22px;
  flex:0 0 22px;
  border:3px solid #dce8fa;
  border-top-color:var(--dc);
  border-radius:50%;
  animation:dc-spinner .7s linear infinite;
}
.dc-page-loading-card strong{display:block;font-size:.92rem;line-height:1.2}
.dc-page-loading-card small{display:block;margin-top:2px;color:#738198;font-size:.74rem}
@keyframes dc-spinner{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.dc-page-loading-spinner{animation-duration:1.4s}}

/* Minha conta */
.account-profile-icon{
  width:48px;height:48px;display:grid;place-items:center;flex:0 0 48px;
  border-radius:14px;background:#eef6ff;border:1px solid #dceaff;color:var(--dc);font-size:1.35rem;
}
.account-data-list{display:grid;gap:0}
.account-data-list>div{display:grid;grid-template-columns:minmax(110px,.7fr) minmax(0,1.3fr);gap:18px;padding:11px 0;border-bottom:1px solid #edf1f6}
.account-data-list>div:last-child{border-bottom:0}
.account-data-list span{color:#75839a;font-size:.83rem}
.account-data-list strong{font-size:.9rem;color:#24334c;text-align:right;overflow-wrap:anywhere}
@media(max-width:575.98px){.account-data-list>div{grid-template-columns:1fr;gap:3px}.account-data-list strong{text-align:left}}

/* =========================================================
   Portal autenticado - identidade do cartório/cliente
   ========================================================= */
.portal-authenticated{
  background:#f3f6fb;
  overflow-x:hidden;
}
.dc-portal-shell{
  min-height:100vh;
  display:flex;
  background:
    radial-gradient(circle at 82% 0%,rgba(8,190,234,.055),transparent 26rem),
    #f3f6fb;
}
.dc-portal-sidebar{
  position:fixed;
  inset:0 auto 0 0;
  z-index:1045;
  width:282px;
  display:flex;
  flex-direction:column;
  padding:20px 16px 16px;
  background:linear-gradient(180deg,#0a1830 0%,#0d2340 56%,#0a1d36 100%);
  color:#dce7f3;
  box-shadow:18px 0 45px rgba(5,19,38,.08);
  transition:transform .22s ease;
}
.dc-portal-sidebar::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 15% 4%,rgba(8,190,234,.12),transparent 14rem),
    radial-gradient(circle at 100% 35%,rgba(11,71,245,.12),transparent 18rem);
}
.dc-portal-sidebar>*{position:relative;z-index:1}
.dc-portal-brand{
  min-height:60px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:8px 10px 16px;
  color:#fff;
  text-decoration:none;
}
.dc-portal-brand:hover{color:#fff}
.dc-portal-brand-logo{
  width:54px;
  height:48px;
  flex:0 0 54px;
  object-fit:contain;
  object-position:left center;
  border-radius:11px;
  background:#fff;
  padding:5px;
  box-shadow:0 10px 24px rgba(0,0,0,.14);
}
.dc-portal-brand-fallback{
  width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;
  border-radius:13px;background:rgba(255,255,255,.10);color:#8fe7fb;font-size:1.2rem;
  border:1px solid rgba(255,255,255,.10);
}
.dc-portal-brand-copy{display:flex;min-width:0;flex-direction:column}
.dc-portal-brand-copy strong{font-size:.95rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dc-portal-brand-copy small{margin-top:4px;color:#8fdff4;font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.dc-portal-client{
  display:flex;
  align-items:center;
  gap:11px;
  margin:2px 4px 18px;
  padding:12px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:15px;
  background:rgba(255,255,255,.055);
}
.dc-portal-client-icon{
  width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;
  border-radius:11px;background:rgba(8,190,234,.12);color:#7ce7ff;font-size:1rem;
}
.dc-portal-client div:last-child{min-width:0;display:flex;flex-direction:column}
.dc-portal-client span{font-size:.63rem;color:#91a8c1;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.dc-portal-client strong{margin-top:3px;color:#fff;font-size:.78rem;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dc-portal-menu{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;overflow-y:auto;padding:0 2px 10px;scrollbar-width:thin}
.dc-portal-menu-label{
  margin:6px 10px 7px;
  color:#66809d;
  font-size:.62rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.dc-portal-menu-item{
  position:relative;
  display:flex;
  align-items:center;
  gap:11px;
  min-height:46px;
  margin:2px 0;
  padding:10px 12px;
  border-radius:12px;
  color:#b7c8da;
  text-decoration:none;
  font-size:.84rem;
  font-weight:650;
  transition:background .16s ease,color .16s ease,transform .16s ease;
}
.dc-portal-menu-item>i{width:22px;text-align:center;font-size:1.03rem;color:#7e9aba;transition:color .16s ease}
.dc-portal-menu-item>span:not(.dc-portal-menu-badge){flex:1;min-width:0}
.dc-portal-menu-item:hover{color:#fff;background:rgba(255,255,255,.07);transform:translateX(1px)}
.dc-portal-menu-item:hover>i{color:#8fe7fb}
.dc-portal-menu-item.active{
  color:#fff;
  background:linear-gradient(90deg,rgba(11,71,245,.40),rgba(8,190,234,.16));
  box-shadow:inset 0 0 0 1px rgba(116,211,255,.11),0 8px 20px rgba(0,0,0,.09);
}
.dc-portal-menu-item.active::before{
  content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 5px 5px 0;background:#66dcf8;
}
.dc-portal-menu-item.active>i{color:#85e8ff}
.dc-portal-menu-badge{
  min-width:22px;height:22px;display:grid;place-items:center;padding:0 6px;border-radius:999px;
  background:#fff;color:#0b47f5;font-size:.68rem;font-weight:850;
}
.dc-portal-sidebar-footer{padding:13px 8px 4px;border-top:1px solid rgba(255,255,255,.075)}
.dc-portal-security{display:flex;align-items:center;gap:8px;color:#91a8c1;font-size:.7rem}
.dc-portal-security i{color:#66dca5}
.dc-portal-workspace{min-width:0;min-height:100vh;display:flex;flex:1 1 auto;flex-direction:column;margin-left:282px}
.dc-portal-topbar{
  z-index:1035;
  min-height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:12px 30px;
  background:rgba(255,255,255,.94);
  border-bottom:1px solid #e2e9f1;
  box-shadow:0 9px 30px rgba(30,55,90,.04);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.dc-portal-topbar-left,.dc-portal-topbar-actions{display:flex;align-items:center;gap:12px;min-width:0}
.dc-portal-menu-toggle{
  display:none;width:43px;height:43px;border:1px solid #dce5ef;border-radius:12px;background:#fff;color:#1b3150;font-size:1.3rem;
}
.dc-portal-page-heading{display:flex;min-width:0;flex-direction:column}
.dc-portal-page-heading span{color:#8793a5;font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.dc-portal-page-heading strong{margin-top:3px;color:#172942;font-size:.94rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dc-portal-icon-button{
  position:relative;width:43px;height:43px;display:grid;place-items:center;border:1px solid #dfe7f0;border-radius:12px;background:#fff;color:#40536b;text-decoration:none;font-size:1.08rem;
}
.dc-portal-icon-button:hover{color:var(--dc);background:#f6f9ff;border-color:#cdddf2}
.dc-portal-icon-button>span{position:absolute;right:-4px;top:-5px;min-width:19px;height:19px;display:grid;place-items:center;padding:0 5px;border-radius:999px;background:#0b47f5;color:#fff;font-size:.62rem;font-weight:800;border:2px solid #fff}
.dc-portal-user{
  display:flex;align-items:center;gap:9px;min-height:45px;padding:4px 9px 4px 5px;border:1px solid transparent;border-radius:13px;background:transparent;color:#24364d;text-align:left;
}
.dc-portal-user:hover,.dc-portal-user:focus{background:#f7f9fc;border-color:#e3e9f1}
.dc-portal-user::after{margin-left:2px;color:#8491a3}
.dc-portal-avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(135deg,#0b47f5,#08beea);color:#fff;font-size:.82rem;font-weight:850;box-shadow:0 6px 15px rgba(11,71,245,.18)}
.dc-portal-user-copy{flex-direction:column;max-width:190px}
.dc-portal-user-copy strong{font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dc-portal-user-copy small{margin-top:1px;color:#8995a6;font-size:.64rem}
.dc-portal-user-menu{min-width:210px;border:1px solid #e0e7f0;border-radius:14px;padding:6px;box-shadow:0 18px 46px rgba(26,53,89,.14)}
.dc-portal-user-menu .dropdown-item{border-radius:9px;padding:.65rem .72rem;font-size:.8rem}
.dc-portal-main{flex:1 1 auto;padding:26px 30px 40px}
.dc-portal-content>.container{max-width:1480px;padding-left:0;padding-right:0}
.dc-portal-content>.container.py-5{padding-top:0!important;padding-bottom:0!important}
.dc-portal-content>.container-fluid{padding-left:0;padding-right:0}
.dc-portal-footer{
  display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 30px;border-top:1px solid #e2e9f1;color:#8a96a7;background:rgba(255,255,255,.55);font-size:.7rem;
}
.dc-portal-backdrop{display:none;position:fixed;inset:0;z-index:1040;border:0;background:rgba(6,20,39,.48)}

/* Home autenticada / dashboard */
.dc-dashboard-welcome{
  position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:26px;align-items:center;
  padding:30px 32px;border:1px solid #dfe8f2;border-radius:22px;background:linear-gradient(130deg,#fff 0%,#f6faff 58%,#edfaff 100%);box-shadow:0 14px 38px rgba(24,51,86,.06);
}
.dc-dashboard-welcome::after{content:"";position:absolute;right:-80px;top:-120px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(8,190,234,.14),transparent 66%);pointer-events:none}
.dc-dashboard-welcome-copy{position:relative;z-index:1}
.dc-dashboard-kicker{display:inline-flex;align-items:center;gap:7px;color:#0a5bd1;font-size:.68rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.dc-dashboard-welcome h1{max-width:760px;margin:10px 0 10px;color:#12233c;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:850;letter-spacing:-.035em;line-height:1.08}
.dc-dashboard-welcome p{max-width:760px;margin:0;color:#68788d;line-height:1.65;font-size:.92rem}
.dc-dashboard-welcome-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}
.dc-dashboard-trust{position:relative;z-index:1;display:grid;gap:10px;padding:17px;border:1px solid #dce9f6;border-radius:17px;background:rgba(255,255,255,.82)}
.dc-dashboard-trust-row{display:flex;align-items:flex-start;gap:10px;color:#53647a;font-size:.77rem}
.dc-dashboard-trust-row i{width:29px;height:29px;flex:0 0 29px;display:grid;place-items:center;border-radius:9px;background:#eef6ff;color:var(--dc)}
.dc-dashboard-trust-row strong{display:block;color:#293c55;font-size:.78rem}
.dc-dashboard-trust-row small{display:block;margin-top:2px;color:#8794a5;font-size:.68rem;line-height:1.35}
.dc-dashboard-section{margin-top:25px}
.dc-dashboard-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:13px}
.dc-dashboard-section-head span{display:block;color:#8390a1;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.dc-dashboard-section-head h2{margin:4px 0 0;color:#1b2c45;font-size:1.08rem;font-weight:820}
.dc-dashboard-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.dc-dashboard-service{
  min-height:198px;display:flex;flex-direction:column;padding:20px;border:1px solid #e0e8f1;border-radius:18px;background:#fff;color:inherit;text-decoration:none;box-shadow:0 8px 24px rgba(29,52,83,.045);transition:.18s ease;
}
.dc-dashboard-service:hover{color:inherit;transform:translateY(-2px);border-color:#c7d8ed;box-shadow:0 16px 34px rgba(29,52,83,.08)}
.dc-dashboard-service-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.dc-dashboard-service-icon{width:49px;height:49px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,#eef5ff,#e4fbff);border:1px solid #dceafb;color:var(--dc);font-size:1.22rem}
.dc-dashboard-service-arrow{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#f5f7fa;color:#8b97a7}
.dc-dashboard-service h3{margin:16px 0 6px;color:#20324b;font-size:.96rem;font-weight:800}
.dc-dashboard-service p{margin:0;color:#798699;font-size:.75rem;line-height:1.5}
.dc-dashboard-service-footer{margin-top:auto;padding-top:14px;color:#0b59d4;font-size:.73rem;font-weight:750}
.dc-dashboard-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.dc-dashboard-shortcut{display:flex;align-items:center;gap:12px;padding:15px 17px;border:1px solid #e1e8f1;border-radius:16px;background:#fff;color:#33475f;text-decoration:none;transition:.16s ease}
.dc-dashboard-shortcut:hover{color:var(--dc);border-color:#c8d9ef;background:#fbfdff}
.dc-dashboard-shortcut i{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#f0f5fb;color:var(--dc)}
.dc-dashboard-shortcut strong{display:block;font-size:.8rem}.dc-dashboard-shortcut small{display:block;margin-top:2px;color:#8a96a7;font-size:.68rem}

/* Pedido de certidão em linguagem de portal */
.dc-request-hero{
  display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:20px;padding:23px 25px;border:1px solid #dfe8f1;border-radius:19px;background:#fff;box-shadow:0 8px 25px rgba(27,50,82,.045)
}
.dc-request-hero-left{display:flex;align-items:center;gap:15px;min-width:0}
.dc-request-hero-icon{width:54px;height:54px;flex:0 0 54px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(145deg,#edf5ff,#e5fbff);border:1px solid #d9eafa;color:var(--dc);font-size:1.35rem}
.dc-request-hero span{display:block;color:#7f8d9f;font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.dc-request-hero h1{margin:4px 0 4px;color:#172a43;font-size:1.4rem;font-weight:830;letter-spacing:-.02em}
.dc-request-hero p{margin:0;color:#758398;font-size:.78rem}
.dc-request-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:20px}
.dc-request-progress-item{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid #e1e8f1;border-radius:13px;background:#fff;color:#7d8999;font-size:.72rem;font-weight:700}
.dc-request-progress-item span{width:25px;height:25px;display:grid;place-items:center;border-radius:8px;background:#eff3f7;color:#718097;font-size:.68rem;font-weight:850}
.dc-request-progress-item.active{border-color:#c9dcf4;background:#f8fbff;color:#25456c}
.dc-request-progress-item.active span,.dc-request-progress-item.done span{background:linear-gradient(135deg,var(--dc),var(--dc2));color:#fff}
.dc-request-card{border-radius:18px!important;box-shadow:0 9px 26px rgba(28,51,82,.045)!important}
.dc-request-card .form-control,.dc-request-card .form-select{background:#fbfcfe}
.dc-request-card .form-control:focus,.dc-request-card .form-select:focus{background:#fff}
.dc-request-section{padding:0 0 22px;margin-bottom:23px;border-bottom:1px solid #edf1f6}
.dc-request-section:last-of-type{border-bottom:0}
.dc-request-section-number{display:inline-flex;align-items:center;gap:7px;margin-bottom:12px;color:#0d5bd3;font-size:.66rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.dc-request-section-number::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--dc2);box-shadow:0 0 0 4px rgba(8,190,234,.10)}
.dc-request-summary{border-top:4px solid var(--dc)!important}
.dc-request-summary-title{display:flex;align-items:center;gap:9px;color:#23364f;font-size:.75rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.dc-request-summary-title i{color:var(--dc);font-size:1rem}
.dc-request-summary-total{margin-top:6px;color:#0b47f5;font-size:2rem;font-weight:850;letter-spacing:-.03em}
.dc-request-help{display:flex;align-items:flex-start;gap:10px;margin-top:15px;padding:12px;border-radius:13px;background:#f5f9fd;color:#6d7d91;font-size:.7rem;line-height:1.45}
.dc-request-help i{color:#0b68d8;margin-top:1px}

@media(max-width:1199.98px){
  .dc-portal-sidebar{transform:translateX(-100%);box-shadow:18px 0 55px rgba(5,19,38,.22)}
  .dc-portal-workspace{margin-left:0}
  .dc-portal-menu-toggle{display:grid;place-items:center}
  body.portal-sidebar-open .dc-portal-sidebar{transform:translateX(0)}
  body.portal-sidebar-open .dc-portal-backdrop{display:block}
  body.portal-sidebar-open{overflow:hidden}
  .dc-dashboard-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767.98px){
  .dc-portal-sidebar{width:min(294px,88vw)}
  .dc-portal-topbar{min-height:68px;padding:10px 15px}
  .dc-portal-page-heading strong{max-width:58vw;font-size:.82rem}
  .dc-portal-main{padding:17px 15px 28px}
  .dc-portal-footer{padding:16px 15px;flex-direction:column;align-items:flex-start;gap:5px}
  .dc-dashboard-welcome{grid-template-columns:1fr;padding:22px}
  .dc-dashboard-service-grid,.dc-dashboard-shortcuts{grid-template-columns:1fr}
  .dc-request-hero{align-items:flex-start;padding:18px;flex-direction:column}
  .dc-request-progress{grid-template-columns:repeat(2,1fr)}
  .dc-request-progress-item{padding:9px;font-size:.68rem}
}
@media(max-width:480px){
  .dc-portal-page-heading span{display:none}
  .dc-portal-topbar-actions{gap:5px}
  .dc-portal-icon-button{width:40px;height:40px}
  .dc-portal-user{padding-right:3px}
  .dc-request-progress{grid-template-columns:1fr}
}


/* Login e recuperação de senha */
.auth-login-shell{padding:52px 0 64px;display:flex;align-items:center;min-height:calc(100vh - 210px)}
.auth-login-card{width:min(100%,1040px);display:grid;grid-template-columns:minmax(0,.93fr) minmax(0,1.07fr);overflow:hidden;border:1px solid #dce6f2;border-radius:28px;background:#fff;box-shadow:0 28px 80px rgba(15,42,82,.14)}
.auth-login-intro{position:relative;display:flex;min-height:600px;flex-direction:column;justify-content:space-between;overflow:hidden;padding:42px;background:linear-gradient(145deg,#092f87 0%,#0b47f5 52%,#079fc7 100%);color:#fff}
.auth-login-intro:before{content:"";position:absolute;width:380px;height:380px;right:-175px;top:-160px;border-radius:50%;border:70px solid rgba(255,255,255,.08)}
.auth-login-intro:after{content:"";position:absolute;width:230px;height:230px;left:-100px;bottom:-125px;border-radius:50%;background:rgba(8,190,234,.24);filter:blur(1px)}
.auth-login-intro-content,.auth-login-intro-footer{position:relative;z-index:1}
.auth-login-badge{display:inline-flex;align-items:center;gap:.45rem;width:max-content;padding:.47rem .72rem;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.1);font-size:.73rem;font-weight:750;letter-spacing:.04em}
.auth-login-symbol{width:62px;height:62px;display:grid;place-items:center;margin-top:38px;border:1px solid rgba(255,255,255,.55);border-radius:19px;background:#fff;box-shadow:0 16px 35px rgba(0,0,0,.12);color:var(--brand-blue);font-size:1.7rem}
.auth-login-symbol img{width:46px;height:46px;object-fit:contain;}
.auth-login-kicker{margin:24px 0 8px;color:#bfefff;font-size:.78rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.auth-login-intro h1{max-width:420px;margin:0;font-size:2.1rem;font-weight:850;letter-spacing:-.038em;line-height:1.09}
.auth-login-description{max-width:430px;margin:18px 0 0;color:rgba(255,255,255,.78);font-size:.94rem;line-height:1.7}
.auth-login-benefits{display:grid;gap:13px;margin-top:32px}
.auth-login-benefits>div{display:flex;align-items:center;gap:12px;padding:11px 12px;border:1px solid rgba(255,255,255,.12);border-radius:15px;background:rgba(255,255,255,.07)}
.auth-login-benefits>div>span{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border-radius:11px;background:rgba(255,255,255,.12);color:#d9f8ff}
.auth-login-benefits p{display:flex;flex-direction:column;margin:0}.auth-login-benefits strong{font-size:.84rem}.auth-login-benefits small{margin-top:2px;color:rgba(255,255,255,.68);font-size:.72rem}
.auth-login-intro-footer{display:flex;align-items:center;gap:.5rem;margin-top:28px;color:rgba(255,255,255,.67);font-size:.72rem}
.auth-login-form-panel{display:flex;flex-direction:column;justify-content:center;padding:48px 52px;background:linear-gradient(180deg,#fff,#fbfdff)}
.auth-login-form-head h2{margin:18px 0 7px;font-size:1.85rem;font-weight:850;letter-spacing:-.035em;color:#12233e}.auth-login-form-head p{margin:0 0 29px;color:#718096;font-size:.9rem;line-height:1.6}.auth-login-form-head p strong{color:#40516a}
.auth-field .form-label{font-size:.82rem}.auth-input-wrap{position:relative}.auth-input{height:54px;padding-left:46px;padding-right:48px;border:1px solid #d9e3ef;border-radius:14px;background:#fff;font-size:.94rem;box-shadow:0 3px 10px rgba(20,45,80,.025)}.auth-input:focus{border-color:#6a9dff;box-shadow:0 0 0 .23rem rgba(11,71,245,.09)}
.auth-input-icon{position:absolute;z-index:2;left:16px;top:50%;transform:translateY(-50%);color:#8291a6;font-size:1rem;pointer-events:none}.auth-input:focus~.auth-input-icon{color:var(--brand-blue)}
.auth-password-toggle{position:absolute;z-index:3;right:8px;top:50%;width:38px;height:38px;display:grid;place-items:center;transform:translateY(-50%);border:0;border-radius:10px;background:transparent;color:#718096;font-size:1.05rem}.auth-password-toggle:hover,.auth-password-toggle:focus{background:#eef5ff;color:var(--brand-blue);outline:none}
.auth-forgot-link{font-size:.77rem;font-weight:750;text-decoration:none}.auth-forgot-link:hover{text-decoration:underline}
.auth-login-options{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0;color:#64748b;font-size:.75rem}.auth-login-options .form-check{margin:0}.auth-login-options>span{display:flex;align-items:center;gap:.35rem;white-space:nowrap;color:#608075}.auth-login-options>span i{color:#15925a}
.auth-recaptcha-note{display:flex;align-items:center;gap:.4rem;margin:-5px 0 16px;color:#8491a2;font-size:.7rem}.auth-login-submit{width:100%;height:54px;display:flex;align-items:center;justify-content:center;gap:.65rem;font-size:.93rem}.auth-login-submit i{transition:transform .18s ease}.auth-login-submit:hover i{transform:translateX(3px)}
.auth-login-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:#99a4b3;font-size:.72rem}.auth-login-divider:before,.auth-login-divider:after{content:"";height:1px;flex:1;background:#e5ebf2}
.auth-register-button{height:50px;display:flex;align-items:center;justify-content:center;gap:.55rem;border-color:#cbd9ea;background:#fff;font-size:.86rem}
.auth-login-help{display:flex;align-items:flex-start;gap:10px;margin-top:24px;padding:13px 14px;border:1px solid #e4ebf4;border-radius:14px;background:#f8fbff;color:#64748b}.auth-login-help>i{margin-top:1px;color:#4e77bd}.auth-login-help>div{display:flex;flex-direction:column;gap:2px;font-size:.72rem}.auth-login-help strong{color:#40516a;font-size:.75rem}.auth-login-help a{font-weight:700;text-decoration:none}
.auth-alert{display:flex;align-items:flex-start;gap:.6rem;border-radius:13px;font-size:.82rem}
.auth-alert:empty,.validation-summary-valid.auth-alert{display:none}
.auth-input-wrap:focus-within .auth-input-icon{color:var(--brand-blue)}

.auth-secondary-shell{min-height:calc(100vh - 210px);display:flex;align-items:center;padding:52px 0 66px}.auth-secondary-card{width:min(100%,570px);padding:42px 44px}.auth-secondary-icon{width:60px;height:60px;display:grid;place-items:center;margin-bottom:20px;border:1px solid #d7e8ff;border-radius:18px;background:linear-gradient(145deg,#eef5ff,#e5fbff);color:var(--brand-blue);font-size:1.5rem}.auth-secondary-icon.success{background:#ebf9f0;border-color:#caecd8;color:#17844a}.auth-secondary-icon.warning{background:#fff8e8;border-color:#f5dfab;color:#a56b00}.auth-secondary-card h1{margin:16px 0 10px;font-size:1.8rem;font-weight:850;letter-spacing:-.035em;color:#13233b}.auth-secondary-lead{margin-bottom:28px;color:#6d7d91;line-height:1.65;font-size:.91rem}.auth-secondary-result .auth-secondary-icon{margin-left:auto;margin-right:auto}.auth-secondary-security,.auth-secondary-tip{display:flex;align-items:flex-start;gap:.65rem;margin-top:20px;padding:13px 14px;border:1px solid #e2eaf3;border-radius:14px;background:#f8fbfe;color:#68788c;font-size:.76rem;line-height:1.5}.auth-secondary-security i,.auth-secondary-tip i{margin-top:1px;color:#268c62}.auth-back-link{display:flex;align-items:center;justify-content:center;gap:.4rem;margin-top:22px;color:#64748b;font-size:.8rem;font-weight:700;text-decoration:none}.auth-back-link:hover{color:var(--brand-blue)}
.password-requirements{display:grid;gap:5px;margin-top:20px;padding:14px 15px;border:1px solid #e1e9f2;border-radius:14px;background:#f9fbfd;color:#6a788b;font-size:.75rem}.password-requirements strong{margin-bottom:2px;color:#40516a;font-size:.78rem}.password-requirements span{display:flex;align-items:center;gap:.4rem}.password-requirements i{color:#23905b}

@media(max-width:991px){.auth-login-card{grid-template-columns:1fr;max-width:640px}.auth-login-intro{min-height:auto;padding:34px}.auth-login-intro h1{font-size:1.8rem}.auth-login-benefits{grid-template-columns:repeat(3,1fr)}.auth-login-benefits>div{align-items:flex-start;flex-direction:column}.auth-login-intro-footer{display:none}.auth-login-form-panel{padding:40px}.auth-login-symbol{margin-top:26px}}
@media(max-width:767px){.auth-login-shell,.auth-secondary-shell{padding:24px 0 42px;align-items:flex-start}.auth-login-card{border-radius:20px}.auth-login-intro{padding:26px}.auth-login-intro h1{font-size:1.55rem}.auth-login-description{font-size:.86rem}.auth-login-benefits{display:none}.auth-login-form-panel{padding:30px 24px}.auth-login-form-head h2{font-size:1.55rem}.auth-login-options{align-items:flex-start;flex-direction:column;gap:9px}.auth-secondary-card{padding:30px 24px}.auth-secondary-card h1{font-size:1.55rem}}


/* Crédito de desenvolvimento DigitalCartórios */
.dc-developed-by{display:flex;align-items:center;gap:8px}
.dc-developed-by>span{white-space:nowrap}
.dc-developed-by img{display:block;max-width:100%;object-fit:contain}
.dc-developed-by-sidebar{margin-top:9px;align-items:flex-start;flex-direction:column;color:#738aa4;font-size:.6rem;font-weight:650}
.dc-developed-by-sidebar img{width:154px;height:auto;padding:5px 7px;border-radius:8px;background:#fff;box-shadow:0 5px 15px rgba(0,0,0,.12)}
.dc-developed-by-footer{justify-content:flex-end;color:#8995a5;font-size:.68rem}
.dc-developed-by-footer img{width:145px;height:auto}
.dc-portal-menu-external{width:auto!important;margin-left:auto;color:#5f7895!important;font-size:.72rem!important}
.dc-portal-menu-home:hover .dc-portal-menu-external{color:#8fe7fb!important}
@media(max-width:767.98px){
  .dc-developed-by-footer{justify-content:flex-start}
  .dc-developed-by-footer img{width:136px}
}

/* Acesso administrativo temporário iniciado pelo DC-PORTAL */
.dc-admin-access-banner{position:sticky;top:0;z-index:1200;min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 20px;background:#7c2d12;color:#fff;box-shadow:0 6px 18px rgba(75,31,12,.22);font-size:.78rem}
.dc-admin-access-copy{display:flex;align-items:center;gap:10px;min-width:0}
.dc-admin-access-copy>i{font-size:1.05rem;flex:0 0 auto}
.dc-admin-access-copy span{line-height:1.35}
.dc-admin-access-copy strong{font-weight:850;text-transform:uppercase;letter-spacing:.035em}
.dc-admin-access-close{white-space:nowrap;font-weight:750;border:0;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.portal-admin-access .dc-portal-topbar{top:56px}
@media(max-width:767.98px){
  .dc-admin-access-banner{min-height:64px;padding:8px 12px;gap:10px;font-size:.69rem}
  .dc-admin-access-copy span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .dc-admin-access-close{font-size:.7rem;padding:.38rem .55rem}
  .portal-admin-access .dc-portal-topbar{top:64px}
}
