/* =============================================================================
   Member Book Empreenda+ — estilos
   Base: Bootstrap 5.3 (CDN). Identidade: preto, amarelo (#fdc40e) e branco,
   tipografia geométrica (Montserrat), formas com cortes angulares e o "+" da marca.
   ============================================================================= */

:root {
    --ep-black: #111111;
    --ep-ink: #1d1d1b;
    --ep-gray-900: #2a2a28;
    --ep-gray-700: #4a4a46;
    --ep-muted: #6e6e68;
    --ep-yellow: #fdc40e;
    --ep-yellow-dark: #e0ab00;
    --ep-yellow-text: #7a5f00;   /* amarelo legível sobre fundo claro (AA) */
    --ep-yellow-soft: #fff5d1;
    --ep-bg: #f5f5f2;
    --ep-line: #e3e3de;
    --ep-card: #ffffff;
    --ep-radius: 10px;
    --ep-shadow: 0 1px 2px rgba(17, 17, 17, .04), 0 10px 30px rgba(17, 17, 17, .06);
    --ep-shadow-hover: 0 2px 4px rgba(17, 17, 17, .06), 0 18px 44px rgba(17, 17, 17, .14);
    --ep-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cpath d='M29 20h6v9h9v6h-9v9h-6v-9h-9v-6h9z' fill='%23fdc40e'/%3E%3C/svg%3E");

    /* Compatibilidade com nomes antigos usados em views */
    --c3-navy: var(--ep-black);
    --c3-navy-2: var(--ep-gray-900);
    --c3-ink: var(--ep-ink);
    --c3-muted: var(--ep-muted);
    --c3-gold: var(--ep-yellow);
    --c3-gold-dark: var(--ep-yellow-dark);
    --c3-gold-soft: var(--ep-yellow-soft);
    --c3-bg: var(--ep-bg);
    --c3-line: var(--ep-line);
    --c3-card: var(--ep-card);
    --c3-radius: var(--ep-radius);
    --c3-shadow: var(--ep-shadow);
    --c3-shadow-hover: var(--ep-shadow-hover);

    --bs-body-font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --bs-body-color: var(--ep-ink);
    --bs-body-bg: var(--ep-bg);
    --bs-primary: var(--ep-black);
    --bs-primary-rgb: 17, 17, 17;
    --bs-warning: var(--ep-yellow);
    --bs-warning-rgb: 253, 196, 14;
    --bs-link-color: var(--ep-black);
    --bs-link-color-rgb: 17, 17, 17;
    --bs-link-hover-color: var(--ep-yellow-text);
    --bs-border-color: var(--ep-line);
}

body { background: var(--ep-bg); color: var(--ep-ink); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, .fw-display { letter-spacing: -.025em; font-weight: 800; }
::selection { background: var(--ep-yellow); color: var(--ep-black); }
a { text-decoration-thickness: 1.5px; text-underline-offset: 3px; }

/* Cantos cortados (eco dos cortes diagonais do "E" da marca) */
.cut-corner { clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); }

/* ---------- Botões ---------- */
.btn { border-radius: 8px; font-weight: 700; padding: .62rem 1.15rem; letter-spacing: .01em; transition: background-color .15s, color .15s, border-color .15s, transform .15s, box-shadow .15s; }
.btn-sm { border-radius: 7px; padding: .38rem .8rem; font-size: .84rem; }
.btn-lg { border-radius: 9px; padding: .85rem 1.5rem; }
.btn-primary { --bs-btn-color: #fff; --bs-btn-bg: var(--ep-black); --bs-btn-border-color: var(--ep-black); --bs-btn-hover-color: var(--ep-black); --bs-btn-hover-bg: var(--ep-yellow); --bs-btn-hover-border-color: var(--ep-yellow); --bs-btn-active-color: var(--ep-black); --bs-btn-active-bg: var(--ep-yellow-dark); --bs-btn-active-border-color: var(--ep-yellow-dark); --bs-btn-disabled-bg: var(--ep-gray-700); --bs-btn-disabled-border-color: var(--ep-gray-700); --bs-btn-focus-shadow-rgb: 253, 196, 14; }
.btn-gold, .btn-warning { --bs-btn-color: var(--ep-black); --bs-btn-bg: var(--ep-yellow); --bs-btn-border-color: var(--ep-yellow); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ep-black); --bs-btn-hover-border-color: var(--ep-black); --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--ep-gray-900); --bs-btn-active-border-color: var(--ep-gray-900); --bs-btn-focus-shadow-rgb: 253, 196, 14; }
.btn-outline-primary { --bs-btn-color: var(--ep-black); --bs-btn-border-color: var(--ep-black); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ep-black); --bs-btn-hover-border-color: var(--ep-black); --bs-btn-active-bg: var(--ep-black); --bs-btn-active-border-color: var(--ep-black); --bs-btn-focus-shadow-rgb: 253, 196, 14; border-width: 2px; }
.btn-outline-light { --bs-btn-color: #fff; --bs-btn-border-color: rgba(255,255,255,.35); --bs-btn-hover-color: var(--ep-black); --bs-btn-hover-bg: var(--ep-yellow); --bs-btn-hover-border-color: var(--ep-yellow); --bs-btn-active-bg: var(--ep-yellow-dark); --bs-btn-active-color: var(--ep-black); }
.btn-whatsapp { --bs-btn-color: var(--ep-black); --bs-btn-bg: var(--ep-yellow); --bs-btn-border-color: var(--ep-yellow); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--ep-black); --bs-btn-hover-border-color: var(--ep-black); --bs-btn-active-bg: var(--ep-gray-900); --bs-btn-active-color: #fff; }
.btn-soft { background: #fff; border: 1.5px solid var(--ep-line); color: var(--ep-ink); }
.btn-soft:hover { border-color: var(--ep-black); background: #fff; color: var(--ep-black); }
.btn-link { color: var(--ep-black); font-weight: 600; }

.form-control, .form-select { border-radius: 8px; padding: .68rem .95rem; border: 1.5px solid #d8d8d2; background-color: #fff; }
.form-control:focus, .form-select:focus { border-color: var(--ep-black); box-shadow: 0 0 0 .22rem rgba(253, 196, 14, .35); }
.form-label { font-weight: 700; font-size: .88rem; margin-bottom: .35rem; }
.form-text { color: var(--ep-muted); }
.form-check-input { border: 1.5px solid #b9b9b2; }
.form-check-input:checked { background-color: var(--ep-black); border-color: var(--ep-black); }
.form-check-input:focus, .form-switch .form-check-input:focus { border-color: var(--ep-black); box-shadow: 0 0 0 .22rem rgba(253, 196, 14, .35); }
.input-group-text { background: #fff; border: 1.5px solid #d8d8d2; border-radius: 8px; }

.card-c3 { background: var(--ep-card); border: 1px solid var(--ep-line); border-radius: var(--ep-radius); box-shadow: var(--ep-shadow); }
.card-c3 > .card-body { padding: 1.6rem; }
.section-title { font-size: 1.05rem; font-weight: 800; margin-bottom: 1.1rem; display: flex; align-items: center; gap: .65rem; }
.section-title i { width: 34px; height: 34px; flex: none; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; background: var(--ep-yellow); color: var(--ep-black); font-size: 1rem; }
.text-muted-c3 { color: var(--ep-muted) !important; }
.eyebrow { display: inline-flex; align-items: center; gap: .6rem; text-transform: uppercase; letter-spacing: .18em; font-size: .72rem; font-weight: 700; color: inherit; }
.eyebrow::before { content: ""; width: 26px; height: 3px; background: var(--ep-yellow); flex: none; }
.text-yellow { color: var(--ep-yellow) !important; }
.bg-black-ep { background: var(--ep-black) !important; color: #fff; }

/* ---------- Logo ---------- */
.ep-logo { display: inline-flex; align-items: center; gap: .75rem; color: inherit; text-decoration: none; line-height: 1; }
.ep-logo:hover { color: inherit; }
.ep-logo-img { height: 30px; width: auto; display: block; }
.ep-logo-sub { font-size: .66rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; opacity: .75; padding-left: .75rem; border-left: 1px solid currentColor; line-height: 1.3; }
.ep-logo-lg .ep-logo-img { height: 42px; }
/* compatibilidade */
.c3-logo { display: inline-flex; align-items: center; gap: .6rem; color: inherit; text-decoration: none; }

/* ---------- Navbar pública ---------- */
.site-nav { background: var(--ep-black); color: #fff; border-bottom: 1px solid rgba(255,255,255,.08); }
.site-nav .nav-link { color: rgba(255, 255, 255, .78); font-weight: 600; font-size: .92rem; position: relative; }
.site-nav .nav-link:hover, .site-nav .nav-link.active { color: #fff; }
.site-nav .nav-link::after { content: ""; position: absolute; left: .5rem; right: .5rem; bottom: .1rem; height: 2px; background: var(--ep-yellow); transform: scaleX(0); transform-origin: left; transition: transform .2s; }
.site-nav .nav-link:hover::after { transform: scaleX(1); }

/* ---------- Hero do Member Book ---------- */
.mb-hero {
    position: relative; overflow: hidden; color: #fff; background: var(--ep-black);
    padding: 4rem 0 8.5rem;
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 4.5vw), 0 100%);
}
.mb-hero::before {
    /* "+" gigante da marca sangrando pela direita */
    content: ""; position: absolute; right: -6vw; top: -8rem; width: 46vw; height: 46vw; max-width: 620px; max-height: 620px; min-width: 300px; min-height: 300px;
    background: var(--ep-plus) center / contain no-repeat; opacity: .95; pointer-events: none;
}
.mb-hero::after {
    content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .08;
    background: var(--ep-plus) 0 0 / 64px 64px repeat;
    mask-image: linear-gradient(90deg, #000 0%, transparent 55%);
}
.mb-hero > .container { position: relative; z-index: 1; }
.mb-hero h1 { font-size: clamp(2.3rem, 5.4vw, 4rem); font-weight: 800; line-height: 1.02; margin: 0; }
.mb-hero h1 .hero-brand { display: block; }
.mb-hero h1 em { font-style: normal; color: var(--ep-yellow); }
.mb-hero .lead { color: rgba(255, 255, 255, .78); max-width: 600px; font-size: 1.05rem; font-weight: 500; }
.mb-hero-stat { display: inline-flex; align-items: center; gap: .55rem; padding: .5rem 1rem; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); font-size: .86rem; font-weight: 600; clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); }
.mb-hero-stat i { color: var(--ep-yellow); }

.mb-search { margin-top: -5.5rem; position: relative; z-index: 2; }
.mb-search .search-box { background: #fff; border-radius: 12px; box-shadow: 0 24px 60px rgba(17, 17, 17, .18); padding: .85rem; border: 1px solid var(--ep-line); }
.mb-search .search-input { position: relative; flex: 1; }
.mb-search .search-input i { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--ep-muted); font-size: 1.1rem; }
.mb-search .search-input input { border: 1.5px solid transparent; padding: .9rem 1rem .9rem 2.8rem; font-size: 1.02rem; border-radius: 9px; background: var(--ep-bg); font-weight: 500; }
.mb-search .search-input input:focus { background: #fff; border-color: var(--ep-black); box-shadow: 0 0 0 .22rem rgba(253, 196, 14, .35); }
.mb-filters { padding: .75rem .25rem 0; }
.mb-filters .form-select, .mb-filters .form-control { font-size: .88rem; padding: .5rem .8rem; font-weight: 500; }

.chip-list { display: flex; flex-wrap: wrap; gap: .5rem; }
.chip { display: inline-flex; align-items: center; gap: .35rem; padding: .36rem .75rem; border-radius: 6px; background: var(--ep-yellow-soft); color: var(--ep-yellow-text); font-size: .82rem; font-weight: 700; border: 1px solid #f3dd8c; }
.chip-muted { background: #efefec; color: var(--ep-gray-700); border-color: #e2e2dd; }
.chip button { border: 0; background: none; padding: 0; color: inherit; line-height: 1; }

/* ---------- Cards de membros ---------- */
.member-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 1.25rem; }
.member-card {
    position: relative; display: flex; flex-direction: column; height: 100%;
    background: #fff; border: 1px solid var(--ep-line); border-radius: var(--ep-radius);
    box-shadow: var(--ep-shadow); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    overflow: hidden;
}
.member-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--ep-yellow); z-index: 3; transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.member-card:hover { transform: translateY(-4px); box-shadow: var(--ep-shadow-hover); border-color: #cfcfc8; }
.member-card:hover::before { transform: scaleX(1); }
.member-card .mc-cover { height: 86px; background: var(--ep-black); position: relative; clip-path: polygon(0 0, 100% 0, 100% 58%, 0 100%); }
.member-card .mc-cover::after { content: ""; position: absolute; inset: 0; background: var(--ep-plus) right 118px top -12px / 72px 72px no-repeat; opacity: .9; }
.member-card .mc-body { padding: 0 1.25rem 1.25rem; display: flex; flex-direction: column; flex: 1; }
.member-card .mc-top { display: flex; align-items: flex-end; justify-content: space-between; margin-top: -40px; margin-bottom: .8rem; position: relative; z-index: 1; }
.member-card .mc-logo { width: 46px; height: 46px; border-radius: 8px; background: #fff; border: 1px solid var(--ep-line); object-fit: contain; padding: 4px; }
.member-card h3 { font-size: 1.08rem; font-weight: 800; margin: 0; }
.member-card .mc-role { font-size: .86rem; color: var(--ep-muted); margin-top: .2rem; font-weight: 500; }
.member-card .mc-company { font-weight: 700; color: var(--ep-black); }
.member-card .mc-meta { display: flex; flex-wrap: wrap; gap: .35rem .9rem; font-size: .8rem; color: var(--ep-muted); margin: .8rem 0; font-weight: 600; }
.member-card .mc-meta i { color: var(--ep-yellow-dark); }
.member-card .mc-bio { font-size: .9rem; color: var(--ep-gray-700); flex: 1; margin-bottom: 1rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.member-card .mc-link { display: inline-flex; align-items: center; gap: .4rem; font-weight: 800; font-size: .88rem; color: var(--ep-black); text-decoration: none; text-transform: uppercase; letter-spacing: .08em; }
.member-card .mc-link i { transition: transform .2s; }
.member-card:hover .mc-link i { transform: translateX(4px); }
.member-card .mc-link::after { z-index: 2; }
.member-card .stretched-link::after { z-index: 2; }
.member-card .mc-badge { position: absolute; top: .85rem; right: .85rem; z-index: 2; }
.badge-featured { display: inline-flex; align-items: center; gap: .3rem; background: var(--ep-yellow); color: var(--ep-black); font-weight: 800; padding: .32rem .65rem; font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px); }

.avatar { border-radius: 50%; object-fit: cover; background: #e9e9e4; flex: none; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; color: var(--ep-yellow); overflow: hidden; }
.avatar-initials { background: var(--ep-black); color: var(--ep-yellow); letter-spacing: .02em; }
.avatar-ring { box-shadow: 0 0 0 3px #fff, 0 0 0 6px var(--ep-yellow); }
.avatar-xs { width: 32px; height: 32px; font-size: .75rem; }
.avatar-sm { width: 44px; height: 44px; font-size: .9rem; }
.avatar-md { width: 76px; height: 76px; font-size: 1.4rem; }
.avatar-lg { width: 140px; height: 140px; font-size: 2.6rem; }

/* Destaques */
.featured-head { display: flex; align-items: center; gap: .6rem; margin-bottom: 1rem; }
.featured-strip { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .9rem; }
.featured-item { display: flex; gap: .85rem; align-items: center; padding: .9rem 1rem; border-radius: 9px; background: var(--ep-black); color: #fff; border: 1px solid var(--ep-black); text-decoration: none; transition: transform .2s, background-color .2s; position: relative; overflow: hidden; }
.featured-item::after { content: ""; position: absolute; right: -14px; top: -14px; width: 56px; height: 56px; background: var(--ep-plus) center / contain no-repeat; opacity: .35; }
.featured-item:hover { transform: translateY(-2px); background: var(--ep-gray-900); color: #fff; }
.featured-item strong { display: block; font-size: .95rem; line-height: 1.2; }
.featured-item span { font-size: .78rem; color: rgba(255,255,255,.65); font-weight: 500; }
.featured-item .avatar-initials { background: var(--ep-yellow); color: var(--ep-black); }

.results-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1rem; }
.empty-state { text-align: center; padding: 3.5rem 1rem; color: var(--ep-muted); }
.empty-state i { font-size: 2.6rem; color: #c9c9c2; }
.is-loading { opacity: .5; pointer-events: none; transition: opacity .15s; }

/* ---------- Perfil público ---------- */
.profile-hero { background: var(--ep-black); color: #fff; padding: 2rem 0 5rem; position: relative; overflow: hidden; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 3.5vw), 0 100%); }
.profile-hero::before { content: ""; position: absolute; right: -5vw; bottom: -9vw; width: 30vw; height: 30vw; max-width: 420px; max-height: 420px; min-width: 220px; min-height: 220px; background: var(--ep-plus) center / contain no-repeat; opacity: .28; pointer-events: none; }
.profile-hero::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .07; background: var(--ep-plus) 0 0 / 64px 64px repeat; mask-image: linear-gradient(90deg, #000 0%, transparent 50%); }
.profile-hero > .container { position: relative; z-index: 1; }
.profile-hero a.back-link { color: rgba(255,255,255,.75); text-decoration: none; font-weight: 600; font-size: .9rem; display: inline-flex; align-items: center; gap: .4rem; }
.profile-hero a.back-link:hover { color: var(--ep-yellow); }
.profile-head-row { display: flex; flex-direction: column; gap: 1.5rem; margin-top: 1.75rem; }
.profile-name { font-size: clamp(1.9rem, 4vw, 2.9rem); font-weight: 800; margin: 0; line-height: 1.05; }
.profile-role { color: rgba(255,255,255,.75); font-size: 1.05rem; font-weight: 500; }
.profile-role strong { color: #fff; }
.profile-hero .chip { background: rgba(255,255,255,.07); color: #fff; border-color: rgba(255,255,255,.18); }
.profile-hero .chip i { color: var(--ep-yellow); }
.profile-actions { display: flex; flex-wrap: wrap; gap: .6rem; }
.profile-body { margin-top: -1.5rem; position: relative; z-index: 2; }
.profile-company-logo { width: 72px; height: 72px; object-fit: contain; border-radius: 10px; border: 1px solid var(--ep-line); padding: 6px; background: #fff; }
.profile-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.profile-text { white-space: pre-line; color: var(--ep-gray-700); line-height: 1.75; }
.profile-quote { font-size: 1.12rem; font-weight: 700; line-height: 1.45; padding-left: 1rem; border-left: 4px solid var(--ep-yellow); margin-bottom: 1.1rem; }
.service-item { padding: 1.05rem 1.15rem; border-radius: 9px; border: 1px solid var(--ep-line); background: #fff; height: 100%; position: relative; transition: border-color .15s; }
.service-item::before { content: "+"; position: absolute; right: .8rem; top: .45rem; color: var(--ep-yellow); font-weight: 800; font-size: 1.3rem; line-height: 1; }
.service-item:hover { border-color: var(--ep-black); }
.service-item h4 { font-size: .98rem; font-weight: 800; margin: 0 0 .3rem; padding-right: 1.25rem; }
.service-item p { font-size: .9rem; color: var(--ep-muted); margin: 0; }
.contact-list { list-style: none; padding: 0; margin: 0; }
.contact-list li + li { border-top: 1px solid var(--ep-line); }
.contact-list a { display: flex; align-items: center; gap: .85rem; padding: .8rem 0; color: var(--ep-ink); text-decoration: none; word-break: break-word; font-weight: 600; }
.contact-list a small { font-weight: 600; text-transform: uppercase; letter-spacing: .1em; font-size: .66rem; }
.contact-list a:hover { color: var(--ep-black); }
.contact-list a:hover .contact-icon { background: var(--ep-black); color: var(--ep-yellow); }
.contact-icon { width: 40px; height: 40px; flex: none; display: inline-flex; align-items: center; justify-content: center; border-radius: 9px; background: var(--ep-yellow); color: var(--ep-black); font-size: 1.1rem; transition: all .15s; }
.social-btns { display: flex; flex-wrap: wrap; gap: .5rem; }
.social-btn { width: 42px; height: 42px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; background: #fff; color: var(--ep-black); font-size: 1.15rem; border: 1.5px solid var(--ep-line); transition: all .15s; }
.social-btn:hover { background: var(--ep-black); color: var(--ep-yellow); border-color: var(--ep-black); }
.preview-banner { background: var(--ep-yellow); color: var(--ep-black); font-size: .92rem; font-weight: 600; }
.preview-banner .btn-soft { border-color: var(--ep-black); }
.sticky-side { position: sticky; top: 1.5rem; }
.share-box .form-control { border-right: 0; }

/* ---------- Auth ---------- */
.auth-wrap { min-height: 100vh; display: grid; grid-template-columns: 1fr; }
.auth-brand { display: none; }
.auth-main { display: flex; align-items: center; justify-content: center; padding: 2rem 1rem; }
.auth-card { width: 100%; max-width: 440px; }
@media (min-width: 992px) {
    .auth-wrap { grid-template-columns: 5fr 6fr; }
    .auth-brand { display: flex; flex-direction: column; justify-content: space-between; padding: 3rem; color: #fff; background: var(--ep-black); position: relative; overflow: hidden; }
    .auth-brand::before { content: ""; position: absolute; right: -80px; bottom: -80px; width: 380px; height: 380px; background: var(--ep-plus) center / contain no-repeat; opacity: .9; pointer-events: none; }
    .auth-brand::after { content: ""; position: absolute; inset: 0; opacity: .07; background: var(--ep-plus) 0 0 / 64px 64px repeat; mask-image: linear-gradient(180deg, #000, transparent 70%); pointer-events: none; }
    .auth-brand > * { position: relative; z-index: 1; }
    .auth-brand h2 { font-size: 2.4rem; font-weight: 800; max-width: 420px; line-height: 1.1; }
    .auth-brand h2 em { font-style: normal; color: var(--ep-yellow); }
    .auth-brand p { color: rgba(255,255,255,.72); max-width: 420px; font-weight: 500; }
}
.password-toggle { position: absolute; right: .5rem; top: 50%; transform: translateY(-50%); border: 0; background: none; color: var(--ep-muted); padding: .25rem .5rem; }
.strength { height: 6px; border-radius: 6px; background: #e9e9e4; overflow: hidden; }
.strength > span { display: block; height: 100%; width: 0; transition: width .25s, background .25s; }

/* ---------- Painel do empresário / Admin ---------- */
.app-shell { display: flex; min-height: 100vh; }
.app-sidebar {
    width: 268px; flex: none; background: var(--ep-black); color: rgba(255,255,255,.8);
    position: fixed; inset: 0 auto 0 0; display: flex; flex-direction: column; z-index: 1040;
    transform: translateX(-100%); transition: transform .25s ease;
}
.app-sidebar.show { transform: none; box-shadow: 0 0 60px rgba(0,0,0,.4); }
.app-sidebar .sidebar-head { padding: 1.35rem 1.25rem 1rem; color: #fff; border-bottom: 1px solid rgba(255,255,255,.08); }
.app-sidebar .sidebar-nav { padding: .5rem .75rem; overflow-y: auto; flex: 1; }
.app-sidebar .nav-label { font-size: .66rem; text-transform: uppercase; letter-spacing: .18em; color: rgba(255,255,255,.4); padding: 1rem .75rem .4rem; font-weight: 700; }
.app-sidebar .nav-link { display: flex; align-items: center; gap: .7rem; color: rgba(255,255,255,.75); padding: .62rem .8rem; border-radius: 8px; font-weight: 600; font-size: .92rem; }
.app-sidebar .nav-link i { font-size: 1.05rem; width: 1.2rem; text-align: center; }
.app-sidebar .nav-link:hover { background: rgba(255,255,255,.07); color: #fff; }
.app-sidebar .nav-link.active { background: rgba(253,196,14,.12); color: #fff; box-shadow: inset 3px 0 0 var(--ep-yellow); }
.app-sidebar .nav-link.active i { color: var(--ep-yellow); }
.app-sidebar .nav-link .badge { margin-left: auto; background: var(--ep-yellow); color: var(--ep-black); font-weight: 800; }
.app-sidebar .sidebar-foot { padding: 1rem 1.25rem; border-top: 1px solid rgba(255,255,255,.08); font-size: .85rem; }
.app-backdrop { position: fixed; inset: 0; background: rgba(17,17,17,.5); z-index: 1035; display: none; }
.app-backdrop.show { display: block; }
.app-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.app-topbar { position: sticky; top: 0; z-index: 1020; background: rgba(245,245,242,.88); backdrop-filter: blur(10px); border-bottom: 1px solid var(--ep-line); padding: .75rem 1rem; display: flex; align-items: center; gap: .75rem; }
.app-content { padding: 1.25rem 1rem 3rem; }
@media (min-width: 992px) {
    .app-sidebar { transform: none; }
    .app-main { margin-left: 268px; }
    .app-topbar { padding: .85rem 2rem; }
    .app-content { padding: 1.75rem 2rem 3rem; }
    .sidebar-toggle { display: none !important; }
}
.page-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.page-head h1 { font-size: 1.65rem; font-weight: 800; margin: 0; }
.page-head p { margin: .25rem 0 0; color: var(--ep-muted); }

.stat-card { padding: 1.25rem; height: 100%; }
.stat-card .stat-label { font-size: .78rem; color: var(--ep-muted); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.stat-card .stat-value { font-size: 2rem; font-weight: 800; letter-spacing: -.03em; line-height: 1.1; margin-top: .25rem; }
.stat-card .stat-icon { width: 42px; height: 42px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; font-size: 1.2rem; background: var(--ep-black); color: var(--ep-yellow); }
.stat-card .stat-icon.gold { background: var(--ep-yellow); color: var(--ep-black); }
.stat-card .stat-icon.green { background: #e3f5ea; color: #1b7a44; }
.stat-card .stat-icon.red { background: #fdecec; color: #b8322a; }
a.stat-card { color: inherit; text-decoration: none; display: block; transition: border-color .2s; }
a.stat-card:hover { border-color: var(--ep-black); }

.progress-c3 { height: 10px; border-radius: 10px; background: #e9e9e4; }
.progress-c3 .progress-bar { background: var(--ep-yellow); border-radius: 10px; }
.completion-ring { --p: 0; width: 120px; height: 120px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--ep-yellow) calc(var(--p) * 1%), #e9e9e4 0); }
.completion-ring > div { width: 94px; height: 94px; border-radius: 50%; background: #fff; display: grid; place-items: center; font-weight: 800; font-size: 1.5rem; }

.shortcut { display: flex; align-items: center; gap: .85rem; padding: 1rem; border-radius: 9px; border: 1px solid var(--ep-line); background: #fff; color: inherit; text-decoration: none; transition: all .15s; height: 100%; }
.shortcut:hover { border-color: var(--ep-black); color: inherit; transform: translateY(-2px); box-shadow: var(--ep-shadow); }
.shortcut i { width: 40px; height: 40px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; background: var(--ep-yellow); font-size: 1.15rem; color: var(--ep-black); flex: none; }
.shortcut strong { display: block; font-size: .95rem; }
.shortcut span { font-size: .8rem; color: var(--ep-muted); }

.table-c3 { --bs-table-bg: transparent; margin: 0; }
.table-c3 thead th { font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; color: var(--ep-muted); font-weight: 700; border-bottom-width: 1px; white-space: nowrap; background: #fafaf8; padding: .8rem 1rem; }
.table-c3 td { padding: .8rem 1rem; vertical-align: middle; border-color: var(--ep-line); }
.table-c3 tbody tr:hover { background: #fafaf8; }

.nav-tabs-c3 { gap: .25rem; border-bottom: 1px solid var(--ep-line); flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.nav-tabs-c3 .nav-link { border: 0; border-bottom: 3px solid transparent; color: var(--ep-muted); font-weight: 700; white-space: nowrap; padding: .75rem 1rem; border-radius: 0; }
.nav-tabs-c3 .nav-link.active { color: var(--ep-black); border-bottom-color: var(--ep-yellow); background: none; }

/* Wizard */
.wizard-steps { display: flex; gap: .5rem; overflow-x: auto; padding-bottom: .25rem; scrollbar-width: none; counter-reset: step; }
.wizard-step { flex: 1; min-width: 110px; display: flex; flex-direction: column; gap: .4rem; font-size: .8rem; color: var(--ep-muted); text-decoration: none; font-weight: 600; }
.wizard-step::before { content: ""; display: block; height: 5px; border-radius: 5px; background: #dedcd4; }
.wizard-step.done::before { background: var(--ep-black); }
.wizard-step.current::before { background: var(--ep-yellow); }
.wizard-step.current { color: var(--ep-ink); font-weight: 800; }
.wizard-step.done { color: var(--ep-ink); }
a.wizard-step:hover { color: var(--ep-yellow-text); }

/* Upload de imagem */
.image-picker { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.image-picker .preview { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; background: #efefec; border: 1px solid var(--ep-line); display: inline-flex; align-items: center; justify-content: center; color: #a3a39c; font-size: 2rem; overflow: hidden; }
.image-picker .preview.square { border-radius: 12px; object-fit: contain; padding: 6px; background: #fff; }
.image-picker .preview img { width: 100%; height: 100%; object-fit: inherit; }

/* Tag input */
.tag-input { display: flex; flex-wrap: wrap; gap: .4rem; padding: .45rem .5rem; border: 1.5px solid #d8d8d2; border-radius: 8px; background: #fff; min-height: 48px; cursor: text; }
.tag-input:focus-within { border-color: var(--ep-black); box-shadow: 0 0 0 .22rem rgba(253, 196, 14, .35); }
.tag-input input { border: 0; outline: 0; flex: 1; min-width: 160px; padding: .25rem .35rem; background: transparent; }
.tag-suggestions { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .5rem; }
.tag-suggestions button { border: 1px dashed #c9c9c2; background: #fff; border-radius: 6px; font-size: .8rem; padding: .2rem .65rem; color: var(--ep-muted); font-weight: 600; }
.tag-suggestions button:hover { border-color: var(--ep-black); color: var(--ep-ink); }

/* Repetidor de serviços */
.repeater-item { border: 1px solid var(--ep-line); border-radius: 9px; padding: 1rem; background: #fafaf8; position: relative; }
.repeater-item + .repeater-item { margin-top: .75rem; }
.repeater-item .repeater-actions { display: flex; gap: .25rem; }
.repeater-item .repeater-actions .btn { padding: .25rem .5rem; }
.repeater-item .handle { color: var(--ep-muted); font-weight: 800; font-size: .8rem; }

.generated-link { background: var(--ep-yellow-soft); border: 1px solid #f3dd8c; border-radius: 9px; padding: 1rem 1.25rem; }
.generated-link code { word-break: break-all; color: var(--ep-black); font-size: .85rem; }

.diff-table td { vertical-align: top; font-size: .9rem; white-space: pre-line; }
.diff-old { background: #fdf1f1; color: #7d2b2b; }
.diff-new { background: #eefaf2; color: #1d5b35; }

footer.site-footer { background: var(--ep-black); color: rgba(255,255,255,.65); font-size: .88rem; border-top: 4px solid var(--ep-yellow); }
footer.site-footer a { color: rgba(255,255,255,.85); text-decoration: none; font-weight: 600; }
footer.site-footer a:hover { color: var(--ep-yellow); }
footer.site-footer .footer-tagline { text-transform: uppercase; letter-spacing: .2em; font-size: .66rem; font-weight: 700; color: var(--ep-yellow); }

.toast-copy { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%) translateY(20px); background: var(--ep-black); color: #fff; padding: .7rem 1.1rem; border-radius: 8px; font-size: .9rem; font-weight: 600; opacity: 0; transition: all .25s; z-index: 2000; pointer-events: none; border-left: 4px solid var(--ep-yellow); }
.toast-copy.show { opacity: 1; transform: translateX(-50%) translateY(0); }

.alert { border-radius: 9px; border-width: 0; border-left: 4px solid currentColor; font-weight: 500; }

@media (max-width: 575.98px) {
    .ep-logo-sub { display: none; }
    .mb-hero { padding: 2.5rem 0 6.5rem; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 24px), 0 100%); }
    .mb-hero::before { width: 240px; height: 240px; min-width: 0; min-height: 0; right: -70px; top: -60px; opacity: .55; }
    .mb-search { margin-top: -4rem; }
    .profile-hero { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 18px), 0 100%); padding-bottom: 3.5rem; }
    .profile-hero::before { opacity: .4; }
    .card-c3 > .card-body { padding: 1.15rem; }
    .avatar-lg { width: 108px; height: 108px; font-size: 2rem; }
    .featured-strip { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 80%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .5rem; }
    .featured-item { scroll-snap-align: start; }
    .table-responsive-stack thead { display: none; }
    .table-responsive-stack tr { display: block; border-bottom: 1px solid var(--ep-line); padding: .5rem 0; }
    .table-responsive-stack td { display: flex; justify-content: space-between; gap: 1rem; border: 0; padding: .35rem 1rem; }
    .table-responsive-stack td::before { content: attr(data-label); font-weight: 700; color: var(--ep-muted); font-size: .8rem; }
    .table-responsive-stack td[data-label=""]::before { content: none; }
}
@media (min-width: 768px) {
    .profile-head-row { flex-direction: row; align-items: center; }
    .profile-head-row > .flex-fill { min-width: 0; }
    .profile-actions { flex-direction: column; min-width: 230px; }
}

@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
