/* ==========================================================
   Intranet Uniocon — identidade visual
   Azul-marinho Uniocon + dourado do logo
   ========================================================== */
:root {
  --navy: #021939;
  --navy-2: #0b2a55;
  --navy-3: #16407a;
  --gold: #d4a53c;
  --gold-2: #b8861b;
  --gold-soft: #f6ecd2;
  --bg: #f2f0ef;
  --surface: #ffffff;
  --text: #0f1b2d;
  --muted: #5a6578;
  --gold-txt: #8a6410;
  --line: #e4e1dd;
  --accent: #e9eef6;
  --ok-bg: #e6f4ea; --ok: #1d6b3a;
  --err-bg: #fdecec; --err: #a3262a;
  --radius: 18px;
  --radius-sm: 12px;
  --shadow: 0 1px 2px rgba(2, 25, 57, .05), 0 4px 16px rgba(2, 25, 57, .06);
  --shadow-hover: 0 10px 28px rgba(2, 25, 57, .14);
  --head: "DM Sans", Inter, system-ui, sans-serif;
  /* aliases usados nas páginas */
  --brand: var(--navy);
  --brand-2: var(--navy-2);
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--text); font: 15px/1.55 Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
a { color: var(--navy-3); }
h1, h2, h3 { font-family: var(--head); color: var(--navy); letter-spacing: -.015em; }
h1 { font-size: 1.85rem; margin: .1em 0 .35em; font-weight: 700; }
h2 { font-size: 1.2rem; margin: 1.4em 0 .7em; font-weight: 700; }
h3 { font-size: 1.02rem; margin: 0 0 .45em; font-weight: 700; }
.card > h2:first-child { margin-top: 0; }
.wrap { max-width: 1180px; margin: 0 auto; padding: 0 16px; }
main.wrap { padding-top: 28px; padding-bottom: 48px; min-height: 70vh; }
.muted { color: var(--muted); }
.small { font-size: .85rem; }
.right { text-align: right; }
.nowrap { white-space: nowrap; }
code { background: var(--accent); padding: 1px 6px; border-radius: 6px; }

/* ---------- Topo ---------- */

.foot { background: var(--navy); color: #8fa0b8; font-size: .8rem; padding: 18px 0; }

/* ---------- Blocos ---------- */
.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; margin-bottom: 18px; box-shadow: var(--shadow); }
.card.narrow { max-width: 480px; margin: 24px auto; }
.empty { background: var(--surface); border: 1.5px dashed #d5d0ca; border-radius: var(--radius); padding: 36px; text-align: center; color: var(--muted); margin-bottom: 18px; }
.alert { padding: 13px 18px; border-radius: var(--radius-sm); margin-bottom: 18px; border: 1px solid transparent; }
.alert.ok { background: var(--ok-bg); color: var(--ok); border-color: #c5e6cf; }
.alert.erro { background: var(--err-bg); color: var(--err); border-color: #f3c7c8; }
.alert pre.copy { background: #fff; color: var(--text); padding: 14px; border-radius: 10px; white-space: pre-wrap; margin: 10px 0; font-size: .9rem; border: 1px solid var(--line); }
.cols { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.cols > .card { margin-bottom: 0; }
.cols + * { margin-top: 18px; }
@media (max-width: 860px) { .cols { grid-template-columns: 1fr; } }
.crumb { margin: 0 0 10px; font-size: .88rem; }
.crumb a { text-decoration: none; color: var(--muted); }
.crumb a:hover { color: var(--navy); }
.page-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.page-head h1 { margin-bottom: 2px; }
.page-head p { margin: 0; }
.search input { min-width: 280px; border-radius: 99px; padding-left: 18px; }
.eyebrow { font-family: var(--head); font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-txt); }

/* ---------- Botões ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; background: var(--navy); color: #fff; border: 1.5px solid var(--navy); border-radius: 99px; padding: 11px 22px; font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; line-height: 1.2; transition: background .15s, transform .1s; }
.btn:hover { background: var(--navy-2); border-color: var(--navy-2); }
.btn:active { transform: translateY(1px); }
.btn.small { padding: 7px 15px; font-size: .85rem; }
.btn.gold { background: var(--gold); border-color: var(--gold); color: var(--navy); }
.btn.gold:hover { background: #e2b44b; border-color: #e2b44b; }
.btn.ghost { background: transparent; color: var(--navy); border-color: #cdd5e1; }
.btn.ghost:hover { background: var(--accent); border-color: var(--navy-3); }
.btn.danger { background: #fff; color: var(--err); border-color: #eab8ba; }
.btn.danger:hover { background: var(--err-bg); }
.btn.full, .form > .btn.full { width: 100%; align-self: stretch; }
.pill { display: inline-block; font-size: .76rem; font-weight: 600; padding: 3px 10px; border-radius: 99px; background: #eceae7; color: #555f6d; vertical-align: middle; }
.pill.ok { background: var(--ok-bg); color: var(--ok); }
.pill.pin { background: var(--gold-soft); color: #8a5f00; }
.pill.warn { background: var(--err-bg); color: var(--err); }

/* ---------- Formulários ---------- */
.form { display: flex; flex-direction: column; gap: 14px; }
.form label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: .88rem; color: var(--navy); }
.form > .btn { align-self: flex-start; }
.form.inline { flex-direction: row; align-items: flex-end; flex-wrap: wrap; }
.form.inline label { flex: 1 1 200px; }
.row { display: flex; gap: 14px; flex-wrap: wrap; align-items: flex-end; }
.row > label { flex: 1 1 200px; }
.row > label.short, label.short { flex: 0 0 110px; }
.row-btns { display: flex; gap: 8px; flex-wrap: wrap; }
input, select, textarea { font: inherit; font-weight: 400; padding: 11px 14px; border: 1.5px solid #dcd8d3; border-radius: 12px; background: #fff; color: var(--text); width: 100%; transition: border-color .15s, box-shadow .15s; }
input[type=checkbox], input[type=radio] { width: auto; accent-color: var(--navy); }
input[type=file] { padding: 9px; background: #faf9f8; }
input.short { width: 90px; }
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--navy-3); box-shadow: 0 0 0 4px rgba(22,64,122,.12); }
label.check { flex-direction: row !important; align-items: center; gap: 9px; font-weight: 500 !important; color: var(--text) !important; }
.seg { display: inline-flex; gap: 4px; flex-wrap: wrap; background: #f1efec; padding: 4px; border-radius: 99px; align-self: flex-start; }
.seg label { flex-direction: row !important; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 99px; cursor: pointer; font-weight: 500 !important; }
.seg label:has(input:checked) { background: var(--navy); color: #fff !important; }
.seg input { display: none; }
.filter { max-width: 300px; margin-bottom: 14px; }
.inline-form { display: inline; }
.capa-prev { display: flex; align-items: center; gap: 12px; }
.capa-prev img { width: 140px; height: 84px; object-fit: cover; border-radius: 10px; }
.img-field { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; background: #faf9f8; border: 1.5px dashed #dcd8d3; border-radius: 14px; padding: 12px; }
.img-field > img { width: 150px; height: 94px; object-fit: cover; border-radius: 10px; }
.img-field > div { flex: 1 1 240px; display: flex; flex-direction: column; gap: 8px; }
fieldset.vis { border: 1.5px solid var(--line); border-radius: 14px; padding: 12px 16px 14px; margin: 0; }
fieldset.vis legend { font-family: var(--head); font-weight: 700; font-size: .85rem; padding: 0 6px; color: var(--navy); }
.vis-groups { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--line); }

/* ---------- Tabelas ---------- */
.table-wrap { overflow-x: auto; }
.table { width: 100%; border-collapse: collapse; margin-bottom: 12px; }
.table th, .table td { text-align: left; padding: 12px 10px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.table th { font-size: .76rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); font-weight: 600; }
.table tbody tr:hover { background: #faf9f8; }
.table tr.off td { opacity: .5; }
.table td form { margin: 0; }
.matrix th.c, .matrix td.c { text-align: center; }
.matrix th.c span { display: inline-block; max-width: 100px; text-transform: none; letter-spacing: 0; font-size: .75rem; line-height: 1.25; }
.matrix input[type=checkbox] { width: 19px; height: 19px; }
.list { margin: 0 0 12px; padding-left: 18px; }

/* ---------- Capas de card ---------- */
.cover { position: relative; aspect-ratio: 16/10; overflow: hidden; background: var(--navy); }
.cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.cover.no-img { background: radial-gradient(120% 120% at 100% 0%, var(--navy-3) 0%, var(--navy) 60%); display: flex; align-items: center; justify-content: center; }
.cover.no-img::after { content: ""; position: absolute; inset: auto 0 0 0; height: 4px; background: linear-gradient(90deg, var(--gold-2), var(--gold)); }
.cover.no-img span { font-family: var(--head); color: var(--gold); font-size: 3rem; font-weight: 700; opacity: .9; }
a:hover > .cover img { transform: scale(1.04); }

/* ---------- Grades de cards ---------- */
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 18px; }
.grid-3 { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px; }
.xcard { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; text-decoration: none; color: var(--text); box-shadow: var(--shadow); transition: transform .15s, box-shadow .15s; }
a.xcard:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); }
.xcard-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 4px; flex: 1; }
.xcard-body strong { font-family: var(--head); font-size: 1.05rem; color: var(--navy); line-height: 1.3; }
.xcard-body p { margin: 4px 0 0; color: var(--muted); font-size: .9rem; }
.xcard-meta { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: .8rem; color: var(--muted); }
.xcard .cover .tag, .emp-cover .tag { position: absolute; top: 12px; left: 12px; background: rgba(2,25,57,.8); color: #fff; font-style: normal; font-size: .72rem; font-weight: 600; padding: 4px 10px; border-radius: 99px; }
.xcard .cover .tag.gold { background: var(--gold); color: var(--navy); }

/* Empreendimentos (mantém classes antigas) */
.emp-card { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; text-decoration: none; color: var(--text); box-shadow: var(--shadow); transition: transform .15s, box-shadow .15s; }
.emp-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); }
.emp-cover { aspect-ratio: 16/10; background: radial-gradient(120% 120% at 100% 0%, var(--navy-3) 0%, var(--navy) 60%); display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; }
.emp-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.emp-card:hover .emp-cover img { transform: scale(1.04); }
.emp-cover span { font-family: var(--head); color: var(--gold); font-size: 3rem; font-weight: 700; }
.emp-body { padding: 14px 18px 18px; display: flex; flex-direction: column; }
.emp-body strong { font-family: var(--head); font-size: 1.08rem; color: var(--navy); }

/* ---------- Página inicial ---------- */
.hero { position: relative; overflow: hidden; border-radius: 24px; background: radial-gradient(140% 140% at 100% 0%, var(--navy-3) 0%, var(--navy) 55%); color: #fff; padding: 30px 32px; margin-bottom: 22px; box-shadow: var(--shadow); }
.hero::before { content: ""; position: absolute; right: -60px; top: -60px; width: 240px; height: 240px; border-radius: 50%; border: 40px solid rgba(212,165,60,.14); }
.hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, var(--gold-2), var(--gold), #f0cf7a); }
.hero h1 { color: #fff; font-size: 2rem; margin: 4px 0 6px; }
.hero p { margin: 0; color: #c9d4e4; }
.hero .eyebrow { color: var(--gold); }
.quick { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 12px; margin-bottom: 26px; }
.quick-link { display: flex; align-items: center; gap: 12px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 10px 14px 10px 10px; text-decoration: none; color: var(--navy); font-weight: 600; font-size: .92rem; box-shadow: var(--shadow); transition: transform .15s, box-shadow .15s; }
.quick-link:hover { transform: translateY(-2px); box-shadow: var(--shadow-hover); }
.ql-ico { flex: 0 0 44px; height: 44px; border-radius: 12px; background: var(--navy); color: var(--gold); display: flex; align-items: center; justify-content: center; font-family: var(--head); font-weight: 700; overflow: hidden; }
.ql-ico img { width: 100%; height: 100%; object-fit: cover; }
.section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 30px 0 14px; }
.section-head h2 { margin: 0; }
.section-head a { font-size: .88rem; font-weight: 600; text-decoration: none; }
.card-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 0 0 14px; }
.card-head h2 { margin: 0; }
.card-head > a { font-size: .88rem; }
.dash { display: grid; grid-template-columns: 3fr 2fr; gap: 18px; align-items: start; }
@media (max-width: 860px) { .dash { grid-template-columns: 1fr; } }
.dash > .card { margin-bottom: 0; }

/* Avisos */
.aviso-feature { display: grid; grid-template-columns: 1fr; gap: 16px; }
.aviso-item { display: flex; gap: 14px; text-decoration: none; color: var(--text); padding: 12px 0; border-top: 1px solid var(--line); align-items: center; }
.aviso-item:first-of-type { border-top: 0; padding-top: 0; }
.aviso-item .thumb { flex: 0 0 76px; width: 76px; height: 60px; border-radius: 10px; }
.aviso-item .thumb.cover { aspect-ratio: auto; }
.aviso-item .thumb.no-img span { font-size: 1.4rem; }
.aviso-item > div:last-child { display: flex; flex-direction: column; min-width: 0; }
.aviso-item:hover strong { color: var(--navy-3); }
.aviso-item strong { font-family: var(--head); color: var(--navy); }
.ai-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 2px; }
.aviso-card { display: block; text-decoration: none; color: var(--text); }
.aviso h1 { margin-top: 0; }
.aviso .prose { margin-bottom: 16px; }
.aviso-hero { margin: -22px -22px 20px; aspect-ratio: 21/9; }
.aviso-img { max-width: 100%; border-radius: 12px; }

/* Eventos */
.ev-item { display: flex; gap: 14px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); }
.ev-item:first-of-type { border-top: 0; padding-top: 0; }
.ev-item > div:last-child { display: flex; flex-direction: column; }
.ev-item strong { font-family: var(--head); color: var(--navy); }
.ev-date { flex: 0 0 54px; height: 58px; border-radius: 14px; background: var(--navy); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.05; }
.ev-date span { font-family: var(--head); font-size: 1.35rem; font-weight: 700; }
.ev-date small { font-size: .76rem; text-transform: uppercase; color: var(--gold); font-weight: 700; letter-spacing: .06em; }

/* Agenda */
.month-nav { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.month-nav strong { min-width: 170px; text-align: center; font-family: var(--head); font-size: 1.1rem; color: var(--navy); }
.cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.cal-h { text-align: center; font-size: .76rem; color: var(--muted); font-weight: 700; padding: 4px 0; }
.cal-d { height: 58px; border-radius: 12px; background: #f7f6f4; display: flex; flex-direction: column; align-items: center; justify-content: center; text-decoration: none; color: var(--text); font-size: .92rem; }
.cal-d.blank { background: none; }
.cal-d.has { background: var(--navy); color: #fff; font-weight: 600; cursor: pointer; }
.cal-d.has:hover { background: var(--navy-3); }
.cal-d.today { box-shadow: inset 0 0 0 2px var(--gold); }
.cal-d i { font-style: normal; font-size: .65rem; background: var(--gold); color: var(--navy); border-radius: 99px; padding: 0 7px; margin-top: 3px; font-weight: 700; }
.dia { scroll-margin-top: 90px; }
.dia h3 { margin: 24px 0 10px; font-size: .95rem; color: var(--muted); }
.dia h3.today { color: var(--gold-txt); }
.ev-row { display: flex; gap: 16px; align-items: stretch; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: hidden; margin-bottom: 10px; box-shadow: var(--shadow); }
.ev-row .ev-img { flex: 0 0 150px; }
.ev-row .ev-img.cover { aspect-ratio: auto; }
.ev-row .ev-main { flex: 1; padding: 14px 16px 14px 0; display: flex; gap: 16px; align-items: flex-start; }
.ev-row .ev-main > div:nth-child(2) { flex: 1; }
.ev-row .ev-main strong { font-family: var(--head); color: var(--navy); }
.ev-row:not(:has(.ev-img)) .ev-main { padding-left: 16px; border-left: 4px solid var(--gold); }
.ev-time { flex: 0 0 92px; font-weight: 700; font-size: .9rem; color: var(--navy-3); }
@media (max-width: 560px) { .ev-row { flex-direction: column; } .ev-row .ev-img { flex-basis: 140px; } .ev-row .ev-main { padding: 12px 14px; } }

/* Equipe */
.people { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; margin-bottom: 8px; }
.person { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); display: flex; flex-direction: column; }
.person .photo { aspect-ratio: 1/1; background: radial-gradient(120% 120% at 100% 0%, var(--navy-3) 0%, var(--navy) 60%); display: flex; align-items: center; justify-content: center; overflow: hidden; position: relative; }
.person .photo img { width: 100%; height: 100%; object-fit: cover; }
.person .photo span { font-family: var(--head); color: var(--gold); font-size: 3.4rem; font-weight: 700; }
.person .photo::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, var(--gold-2), var(--gold)); }
.pinfo { display: flex; flex-direction: column; padding: 14px 16px 16px; gap: 2px; flex: 1; }
.pinfo strong { font-family: var(--head); font-size: 1.05rem; color: var(--navy); }
.pactions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: auto; padding-top: 12px; }

/* Empreendimento */
.emp-hero { position: relative; border-radius: 24px; overflow: hidden; background: var(--navy); color: #fff; margin-bottom: 20px; min-height: 220px; display: flex; align-items: flex-end; box-shadow: var(--shadow); }
.emp-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.emp-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(2,25,57,.05) 20%, rgba(2,25,57,.88) 100%); }
.emp-hero > div { position: relative; padding: 28px 30px; }
.emp-hero h1 { color: #fff; margin: 0; font-size: 2.1rem; }
.emp-hero .muted { color: #d6deea; margin: 2px 0 0; }
.emp-hero .btn.ghost { color: #fff; border-color: rgba(255,255,255,.5); }
.emp-hero .btn.ghost:hover { background: rgba(255,255,255,.12); }
.prose { white-space: normal; }
.chips { display: flex; gap: 8px; flex-wrap: wrap; margin: 6px 0 10px; position: sticky; top: var(--topo); background: var(--bg); padding: 10px 0; z-index: 5; }
.chips a { background: var(--surface); border: 1.5px solid var(--line); border-radius: 99px; padding: 7px 16px; text-decoration: none; font-size: .88rem; color: var(--navy); font-weight: 500; }
.chips a:hover { border-color: var(--navy); background: var(--navy); color: #fff; }
.cat { scroll-margin-top: 140px; margin-bottom: 10px; }
.cat > h2 { display: flex; align-items: center; gap: 10px; }
.cat > h2::before { content: ""; width: 6px; height: 22px; border-radius: 3px; background: var(--gold); }
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; margin-bottom: 18px; }
.gallery figure { margin: 0; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; box-shadow: var(--shadow); }
.gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.gallery figcaption { display: flex; justify-content: space-between; gap: 8px; padding: 8px 12px; font-size: .8rem; }
.gallery figcaption span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.video { position: relative; aspect-ratio: 16/9; background: #000; border-radius: 14px; overflow: hidden; }
.video iframe, .video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.file-row { display: flex; align-items: center; gap: 14px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; margin-bottom: 10px; box-shadow: var(--shadow); }
.ficon { flex: 0 0 48px; height: 48px; border-radius: 12px; background: var(--navy); color: var(--gold); font-weight: 700; font-size: .72rem; letter-spacing: .04em; display: flex; align-items: center; justify-content: center; }
.fmeta { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.fmeta strong { overflow-wrap: anywhere; color: var(--navy); }
.factions { display: flex; gap: 6px; }
@media (max-width: 560px) {
  .file-row { flex-wrap: wrap; }
  .factions { width: 100%; }
  .factions .btn { flex: 1; }
  .search, .search input { width: 100%; min-width: 0; }
  .hero { padding: 24px 20px; }
  .hero h1 { font-size: 1.6rem; }
  .emp-hero h1 { font-size: 1.6rem; }
}

/* Documentos: pastas */
.folder-card .cover { aspect-ratio: 16/8; }
.folder-card .count { position: absolute; right: 12px; bottom: 12px; background: rgba(255,255,255,.95); color: var(--navy); font-weight: 700; font-size: .75rem; padding: 4px 10px; border-radius: 99px; }

/* ---------- Admin ---------- */
.tabs { display: flex; gap: 4px; flex-wrap: wrap; margin: -8px 0 24px; padding: 6px; background: var(--surface); border: 1px solid var(--line); border-radius: 99px; box-shadow: var(--shadow); }
.tabs a { text-decoration: none; color: var(--muted); font-size: .86rem; font-weight: 500; padding: 7px 13px; border-radius: 99px; }
.tabs a:hover { background: #f1efec; color: var(--navy); }
.tabs a.on { background: var(--navy); color: #fff; }
@media (max-width: 860px) { .tabs { border-radius: 16px; } }
details.mat { border: 1px solid var(--line); border-radius: 12px; margin-bottom: 8px; background: #fff; }
details.mat > summary { padding: 11px 14px; cursor: pointer; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
details.mat[open] > summary { border-bottom: 1px solid var(--line); }
details.mat .form { padding: 14px; }
details.mat .del { padding: 0 14px 14px; }
details.card > summary { cursor: pointer; font-family: var(--head); color: var(--navy); }
details.card[open] > summary { margin-bottom: 16px; }
.danger-zone summary, .danger-zone h2 { color: var(--err); }
.stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 14px; margin-bottom: 18px; }
.stat { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 18px; text-decoration: none; color: var(--text); display: flex; flex-direction: column; box-shadow: var(--shadow); border-top: 4px solid var(--gold); }
.stat strong { font-family: var(--head); font-size: 1.9rem; color: var(--navy); }
.stat span { font-size: .85rem; color: var(--muted); }
.actions-list { display: flex; flex-wrap: wrap; gap: 8px; }

/* ---------- Tela de login ---------- */
body.guest { background: var(--navy); }
body.guest main.wrap { max-width: none; padding: 0; min-height: 100vh; }
body.guest .foot { display: none; }
.guest-card { max-width: 480px; margin: 8vh auto; background: var(--bg); border-radius: 24px; padding: 30px; }
.guest-card .logo { display: block; height: 52px; margin: 0 auto 18px; background: var(--navy); padding: 10px 16px; border-radius: 14px; box-sizing: content-box; }

/* ajustes de camadas e rodapé */
body { display: flex; flex-direction: column; min-height: 100vh; }
body > main { flex: 1; width: 100%; }
.emp-hero > img { z-index: 0; }
.emp-hero::before { z-index: 1; }
.emp-hero > div { z-index: 2; }

/* ---------- Radar de lançamentos ---------- */
.radar-bg { background: radial-gradient(circle at 50% 110%, #103663 0%, var(--navy) 70%); position: relative; overflow: hidden; }
.radar-rings { position: absolute; left: 50%; bottom: -40%; width: 140%; aspect-ratio: 1; transform: translateX(-50%); border-radius: 50%;
  background: repeating-radial-gradient(circle, rgba(212,165,60,.28) 0 1.5px, transparent 1.5px 34px); }
.radar-rings::after { content: ""; position: absolute; inset: 0; border-radius: 50%;
  background: conic-gradient(from 300deg, rgba(212,165,60,.35), transparent 60deg); }
@media (prefers-reduced-motion: no-preference) { .radar-rings::after { animation: radar-sweep 6s linear infinite; } }
@keyframes radar-sweep { to { transform: rotate(360deg); } }
.radar-card .xcard-body strong { margin-top: 2px; }
.radar-foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; margin-top: auto; padding-top: 12px; border-top: 1px dashed var(--line); }
.radar-foot .prev { display: flex; flex-direction: column; font-family: var(--head); font-weight: 700; color: var(--navy); }
.radar-foot .prev small { font-family: Inter, sans-serif; font-weight: 600; font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-txt); }
.emp-hero.radar-bg { min-height: 200px; }
.emp-hero.radar-bg .radar-rings { width: 70%; bottom: -80%; left: 80%; }
.facts { display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; margin: 0 0 14px; }
.facts dt { color: var(--muted); font-size: .85rem; }
.facts dd { margin: 0; font-weight: 600; color: var(--navy); }

/* ---------- Chat ---------- */

.chat { display: grid; grid-template-columns: 320px 1fr; height: calc(100vh - 180px); min-height: 480px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.chat-side { border-right: 1px solid var(--line); display: flex; flex-direction: column; min-height: 0; background: #fbfaf9; }
.chat-side-head { display: flex; justify-content: space-between; align-items: center; padding: 16px 16px 8px; }
.chat-side-head h1 { font-size: 1.35rem; margin: 0; }
.chat-new { display: flex; gap: 6px; padding: 0 16px 12px; border-bottom: 1px solid var(--line); }
.chat-new select { padding: 8px 12px; border-radius: 99px; font-size: .88rem; }
.chat-lists { overflow-y: auto; flex: 1; padding: 6px 8px 12px; }
.c-label { font-family: var(--head); font-size: .76rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-txt); padding: 12px 10px 6px; }
.c-empty { padding: 0 10px; margin: 0; }
.c-item { display: flex; gap: 10px; align-items: center; padding: 9px 10px; border-radius: 12px; text-decoration: none; color: var(--text); }
.c-item:hover { background: #f1efec; }
.c-item.on { background: var(--navy); color: #fff; }
.c-item.on small { color: #b9c6d8; }
.c-ava { flex: 0 0 38px; height: 38px; border-radius: 50%; background: var(--accent); color: var(--navy); display: flex; align-items: center; justify-content: center; font-family: var(--head); font-weight: 700; overflow: hidden; }
.c-ava img { width: 100%; height: 100%; object-fit: cover; }
.c-ava.canal { border-radius: 12px; background: var(--navy); color: var(--gold); font-size: 1.1rem; }
.c-item.on .c-ava.canal { background: var(--gold); color: var(--navy); }
.c-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.c-txt strong { font-size: .92rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.c-txt small { color: var(--muted); font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.c-side { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
.c-side small { font-size: .76rem; color: var(--muted); }
.badge { min-width: 20px; padding: 0 6px; border-radius: 99px; background: var(--gold); color: var(--navy); font-size: .72rem; line-height: 20px; text-align: center; }
.chat-main { display: flex; flex-direction: column; min-height: 0; min-width: 0; background: linear-gradient(180deg, #f6f4f2, #efedea); }
.chat-head { display: flex; align-items: center; gap: 12px; padding: 12px 18px; background: var(--surface); border-bottom: 1px solid var(--line); }
.chat-title { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.chat-title strong { font-family: var(--head); color: var(--navy); }
.chat-title small { color: var(--muted); font-size: .8rem; }
.chat-back { display: none; text-decoration: none; font-size: 1.3rem; color: var(--navy); padding: 4px 8px; }
.chat-msgs { flex: 1; overflow-y: auto; padding: 18px 20px; display: flex; flex-direction: column; gap: 3px; }
.m-day { text-align: center; margin: 14px 0 8px; }
.m-day span { background: rgba(2,25,57,.07); color: var(--muted); font-size: .75rem; font-weight: 600; padding: 4px 12px; border-radius: 99px; }
.m { display: flex; gap: 8px; align-items: flex-end; max-width: 78%; margin-top: 8px; }
.m.cont { margin-top: 0; }
.m.me { margin-left: auto; flex-direction: row-reverse; }
.m-ava { flex: 0 0 30px; height: 30px; border-radius: 50%; background: var(--navy); color: var(--gold); font-size: .8rem; font-weight: 700; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.m.cont .m-ava { background: none; }
.m-ava img { width: 100%; height: 100%; object-fit: cover; }
.m-bubble { background: var(--surface); border: 1px solid var(--line); border-radius: 16px 16px 16px 4px; padding: 8px 12px 6px; box-shadow: 0 1px 1px rgba(2,25,57,.04); min-width: 0; }
.m.me .m-bubble { background: var(--navy); color: #fff; border-color: var(--navy); border-radius: 16px 16px 4px 16px; }
.m.me .m-bubble a { color: var(--gold); }
.m-name { display: block; font-size: .78rem; color: var(--gold-txt); margin-bottom: 2px; }
.m-text { overflow-wrap: anywhere; font-size: .94rem; }
.m-time { display: block; text-align: right; font-size: .76rem; color: var(--muted); margin-top: 2px; }
.m.me .m-time { color: #8fa3bf; }
.m-empty { margin: auto; color: var(--muted); text-align: center; padding: 30px; }
.chat-main { position: relative; }
.chat-compose { padding: 10px 16px 12px; background: var(--surface); border-top: 1px solid var(--line); }
.chat-compose-row { display: flex; gap: 8px; align-items: flex-end; }
.chat-clip { flex: 0 0 42px; height: 42px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--navy); cursor: pointer; margin: 0; transition: background .15s; }
.chat-clip:hover { background: rgba(2,25,57,.07); }
.chat-clip input { display: none; }
.chat-anexos { display: flex; gap: 8px; flex-wrap: wrap; padding-bottom: 10px; }
.anexo-chip { display: flex; align-items: center; gap: 8px; background: var(--bg); border: 1px solid var(--line); border-radius: 12px; padding: 6px 6px 6px 6px; max-width: 260px; }
.anexo-chip img, .anexo-chip .ext { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 8px; object-fit: cover; }
.anexo-chip .ext, .m-file .ext { display: flex; align-items: center; justify-content: center; background: var(--navy); color: var(--gold); font-size: .68rem; font-weight: 700; }
.anexo-txt, .m-file-txt { display: flex; flex-direction: column; min-width: 0; }
.anexo-txt strong, .m-file-txt strong { font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.anexo-txt small { color: var(--muted); font-size: .76rem; }
.anexo-chip button { border: 0; background: none; font-size: 1.2rem; line-height: 1; color: var(--muted); cursor: pointer; padding: 4px 6px; }
.anexo-chip button:hover { color: #b3261e; }
.chat-drop { position: absolute; inset: 0; z-index: 5; display: flex; align-items: center; justify-content: center; background: rgba(2,25,57,.82); color: #fff; font-family: var(--head); font-size: 1.2rem; border: 3px dashed var(--gold); border-radius: inherit; pointer-events: none; }
.m-img { display: block; width: 300px; max-width: 100%; margin: 2px -6px 4px; border-radius: 12px; overflow: hidden; background: rgba(2,25,57,.06); }
.m-img img { display: block; width: 100%; height: auto; max-height: 340px; object-fit: cover; }
.m-video { display: block; width: 320px; max-width: 100%; max-height: 320px; border-radius: 12px; margin: 2px -6px 4px; background: #000; }
.m-file { display: flex; align-items: center; gap: 10px; text-decoration: none; color: inherit; background: rgba(2,25,57,.05); border-radius: 10px; padding: 8px 12px 8px 8px; margin: 2px 0 4px; max-width: 300px; }
.m-file .ext { flex: 0 0 40px; height: 40px; border-radius: 8px; }
.m-file small { color: var(--muted); font-size: .76rem; }
.m.me .m-file { background: rgba(255,255,255,.1); color: #fff; }
.m.me .m-file small { color: #8fa3bf; }
.m.me .m-bubble a.m-file { color: #fff; }
.m-sending { opacity: .75; }
.m-prog { height: 4px; background: rgba(255,255,255,.2); border-radius: 4px; margin: 6px 0 4px; overflow: hidden; min-width: 160px; }
.m-prog i { display: block; height: 100%; width: 0; background: var(--gold); transition: width .2s; }
.chat-compose textarea { resize: none; border-radius: 22px; padding: 11px 16px; max-height: 160px; }
.chat-form-wrap { padding: 20px; overflow-y: auto; }
@media (max-width: 860px) {
  main.wrap:has(.chat) { padding-top: 12px; padding-bottom: 12px; }
  .chat { grid-template-columns: 1fr; height: calc(100vh - 110px); }
  .chat-main { display: none; }
  .chat.is-open .chat-side { display: none; }
  .chat.is-open .chat-main { display: flex; }
  .chat-back { display: block; }
  .m { max-width: 90%; }
}

/* Chat: apagar mensagem e aviso de privacidade */
.m-bubble { position: relative; }
.m-del { position: absolute; top: -8px; right: -8px; width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--line); background: #fff; color: var(--muted); font-size: .9rem; line-height: 1; cursor: pointer; display: none; align-items: center; justify-content: center; padding: 0; box-shadow: 0 1px 3px rgba(2,25,57,.15); }
.m.me .m-del { right: auto; left: -8px; }
.m-bubble:hover .m-del, .m-del:focus { display: flex; }
.m-del:hover { color: var(--err); border-color: var(--err); }
@media (hover: none) { .m-del { display: flex; opacity: .6; } }
.m-apagada { font-style: italic; opacity: .65; font-size: .86rem; }
.chat-aviso { margin: 0; padding: 12px 16px; font-size: .76rem; line-height: 1.45; color: var(--muted); border-top: 1px solid var(--line); background: var(--surface); }
/* Admin: monitoramento de conversas */
.filtros { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) auto; gap: 14px; align-items: end; }
.filtros label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: .88rem; color: var(--navy); }
@media (max-width: 700px) { .filtros { grid-template-columns: 1fr; } }
.sec-h { font-family: var(--head); color: var(--navy); }
.mon-list { display: flex; flex-direction: column; gap: 2px; }
.mon-msg { display: grid; grid-template-columns: 160px minmax(0, 1fr) auto; gap: 14px; align-items: start; padding: 10px 4px; border-bottom: 1px solid var(--line); }
.mon-msg:last-child { border-bottom: 0; }
.mon-msg.is-del { opacity: .6; }
.mon-msg:target { background: #fff8e6; border-radius: 8px; }
.mon-meta { display: flex; flex-direction: column; font-size: .88rem; }
.mon-body { overflow-wrap: anywhere; font-size: .92rem; }
.mon-body .m-img, .mon-body .m-file { margin: 0 0 6px; }
.mon-hit { display: flex; flex-direction: column; gap: 2px; padding: 10px 6px; border-bottom: 1px solid var(--line); text-decoration: none; color: inherit; }
.mon-hit:hover { background: #faf9f8; }
@media (max-width: 700px) { .mon-msg { grid-template-columns: 1fr; gap: 4px; } }
.del-tag { display: inline-block; font-size: .76rem; font-style: normal; font-weight: 600; color: var(--err); background: var(--err-bg); border-radius: 99px; padding: 2px 10px; margin-bottom: 6px; }
.mon-msg.is-del { opacity: 1; }
.mon-msg.is-del .mon-body > :not(.del-tag) { opacity: .7; }

/* Admin acompanhando conversas no próprio chat */
.c-label-mon { display: flex; align-items: baseline; gap: 6px; margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--line); }
.c-label-mon small { text-transform: none; letter-spacing: 0; font-weight: 500; color: var(--muted); }
.c-ava.mon { background: #e9e4d6; color: var(--navy); font-size: .72rem; letter-spacing: .02em; }
.c-filtro { margin: 4px 8px 8px; width: calc(100% - 16px); padding: 8px 12px; border-radius: 10px; font-size: .85rem; }
.c-item[hidden] { display: none !important; }
.m.b { margin-left: auto; flex-direction: row-reverse; }
.m.b .m-bubble { background: #f4ecd8; border-color: #e6d6ad; border-radius: 16px 16px 4px 16px; }
.m.b .m-name { text-align: right; }
.chat-readonly { padding: 14px 18px; background: #fbf6ea; border-top: 1px solid #eadcb8; color: #6b5a2e; font-size: .84rem; text-align: center; }
.m-bubble .del-tag { margin-bottom: 4px; }

/* ---------- Login centralizado ---------- */
.auth { position: relative; min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 48px 20px; overflow: hidden;
  background: radial-gradient(90% 70% at 50% 0%, #0d2d5c 0%, var(--navy) 55%, #010f24 100%); }
.auth::before, .auth::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; z-index: 1; }
.auth::before { width: 760px; height: 760px; left: -260px; bottom: -380px; border: 90px solid rgba(212,165,60,.07); }
.auth::after { width: 520px; height: 520px; right: -180px; top: -200px; border: 60px solid rgba(255,255,255,.04); }
.auth-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .16; filter: grayscale(.3); z-index: 0; }
.auth-in { position: relative; z-index: 2; width: 100%; max-width: 430px; display: flex; flex-direction: column; align-items: center; }
.auth-logo { height: 58px; width: auto; margin-bottom: 30px; }
.auth-card { width: 100%; background: #fff; border-radius: 22px; padding: 38px 36px 30px; box-shadow: 0 30px 70px rgba(0,8,24,.45), 0 2px 6px rgba(0,8,24,.2); position: relative; overflow: hidden; }
.auth-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: linear-gradient(90deg, var(--gold) 0%, #f0d48a 50%, var(--gold) 100%); }
.auth-card h1 { font-size: 1.7rem; margin: 6px 0 6px; }
.auth-card > p.muted { margin: 0; font-size: .95rem; }
.auth-card .form { margin-top: 26px; gap: 16px; }
.auth-card .alert { margin: 18px 0 0; }
.auth-card input { padding: 13px 16px; border-radius: 12px; background: #f7f6f4; border-color: #e3e0dc; }
.auth-card input:focus { background: #fff; }
.auth-field { position: relative; display: block; }
.auth-field > svg { position: absolute; left: 14px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); fill: none; stroke: #8a94a6; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.auth-field input { padding-left: 42px; }
.auth-field input[type=password], .auth-field input#senha { padding-right: 46px; }
.auth-eye { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border: 0; background: none; border-radius: 8px; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.auth-eye svg { width: 18px; height: 18px; fill: none; stroke: #8a94a6; stroke-width: 1.8; }
.auth-eye:hover { background: #efece8; }
.auth-eye.on svg { stroke: var(--navy); }
.auth-btn { margin-top: 6px; padding: 14px 22px; font-size: 1rem; border-radius: 12px; display: flex; justify-content: center; gap: 8px; }
.auth-btn span { transition: transform .2s; }
.auth-btn:hover span { transform: translateX(3px); }
.auth-help { margin: 22px 0 0; padding-top: 18px; border-top: 1px solid #eeebe7; text-align: center; font-size: .84rem; color: var(--muted); }
.auth-foot { margin: 22px 0 0; font-size: .78rem; color: rgba(255,255,255,.5); letter-spacing: .02em; }
@media (max-width: 520px) {
  .auth { align-items: flex-start; padding-top: 44px; }
  .auth-logo { height: 48px; margin-bottom: 24px; }
  .auth-card { padding: 30px 22px 24px; border-radius: 18px; }
  .auth-card h1 { font-size: 1.45rem; }
}
/* Atalhos: logo inteiro sobre fundo branco */
.ql-ico:has(img) { background: #fff; border: 1px solid var(--line); padding: 6px; }
.ql-ico img { object-fit: contain; border-radius: 6px; }
.link-row { display: flex; align-items: center; gap: 12px; }

/* Início: mural de avisos em lista */
.mural { display: flex; flex-direction: column; }
.mural-item { display: block; text-decoration: none; color: inherit; padding: 14px 14px 14px 16px; margin: 0 -14px; border-radius: 12px; border-left: 3px solid transparent; transition: background .15s; }
.mural-item + .mural-item { border-top: 1px solid var(--line); border-top-left-radius: 0; border-top-right-radius: 0; }
.mural-item:hover { background: #faf8f5; }
.mural-item.is-pin { border-left-color: var(--gold); background: linear-gradient(90deg, rgba(212,165,60,.08), transparent 70%); }
.mural-top { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.mural-item strong { display: block; font-family: var(--head); color: var(--navy); font-size: 1.02rem; line-height: 1.3; }
.mural-item p { margin: 4px 0 0; color: var(--muted); font-size: .9rem; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pill.novo { background: #e6f4ea; color: #1e7a3c; }

/* Visibilidade: pessoas específicas */
.vis-groups { display: block; }
.vis-sub { font-weight: 700; font-size: .8rem; color: var(--navy); margin: 4px 0 6px; }
.vis-sub + .vis-row, .vis-row { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-bottom: 12px; }
.vis-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 4px 16px; max-height: 240px; overflow-y: auto; padding: 2px; }
.vis-busca { margin-bottom: 8px; max-width: 320px; padding: 8px 12px; font-size: .88rem; }
.pill.person { background: #e8eef8; color: #1d3f73; }

/* Sininho de notificações */

.notif { order: 2; position: relative; }

.notif-btn { position: relative; width: 42px; height: 42px; border-radius: 12px; border: 0; background: rgba(255,255,255,.08); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .15s; }
.notif-btn:hover, .notif-btn[aria-expanded="true"] { background: rgba(255,255,255,.16); }
.notif-btn svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.notif-count { position: absolute; top: -4px; right: -4px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 99px; background: #e5484d; color: #fff; font-size: .68rem; font-weight: 700; line-height: 19px; text-align: center; box-shadow: 0 0 0 2px var(--navy); }
.notif-panel { position: absolute; right: 0; top: calc(100% + 10px); width: 360px; max-width: calc(100vw - 24px); background: #fff; color: var(--text); border-radius: 16px; box-shadow: 0 18px 50px rgba(2,25,57,.28); border: 1px solid var(--line); overflow: hidden; z-index: 50; }
.notif-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px 10px; }
.notif-head strong { font-family: var(--head); color: var(--navy); }
.notif-alert { border: 0; background: var(--gold-soft); color: #7a5500; font-size: .76rem; font-weight: 600; padding: 5px 10px; border-radius: 99px; cursor: pointer; }
#notif-body { max-height: 60vh; overflow-y: auto; }
.notif-sec { font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-txt); padding: 8px 16px 4px; }
.notif-item { display: flex; gap: 10px; align-items: flex-start; padding: 9px 16px; text-decoration: none; color: inherit; }
.notif-item:hover { background: #f7f5f2; }
.notif-ico { flex: 0 0 34px; height: 34px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 1rem; background: #f1efe9; }
.notif-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.notif-txt strong { font-size: .88rem; color: var(--navy); line-height: 1.3; }
.notif-txt small { color: var(--muted); font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.notif-when { color: var(--muted); font-size: .76rem; white-space: nowrap; }
.notif-n { display: inline-block; background: var(--gold); color: var(--navy); border-radius: 99px; font-size: .66rem; padding: 0 6px; line-height: 16px; vertical-align: 1px; }
.notif-empty { padding: 18px 16px 22px; text-align: center; color: var(--muted); font-size: .88rem; }
.notif-foot { display: flex; border-top: 1px solid var(--line); }
.notif-foot a { flex: 1; text-align: center; padding: 11px; font-size: .84rem; font-weight: 600; color: var(--navy); text-decoration: none; }
.notif-foot a + a { border-left: 1px solid var(--line); }
.notif-foot a:hover { background: #f7f5f2; }
@media (max-width: 1240px) {
  .notif { order: 1; }

  .notif-panel { position: fixed; right: 12px; top: 74px; }
}

/* Avisos não lidos */
.mural-item.unread strong::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #1e7a3c; margin-right: 8px; vertical-align: 2px; }
.xcard.unread { box-shadow: 0 0 0 2px rgba(30,122,60,.35), var(--shadow); }

/* Quem já viu */
.leituras .card-head h2 { margin: 0; }
.leit-num { font-family: var(--head); font-weight: 700; color: var(--navy); }
.leit-bar { height: 8px; background: #eeebe6; border-radius: 99px; overflow: hidden; margin: 6px 0 18px; }
.leit-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--gold), #e8c46a); border-radius: 99px; }
.leit-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.leit-sub { font-weight: 700; font-size: .85rem; margin-bottom: 6px; }
.leit-sub.ok { color: #1e7a3c; }
.leit-sub.nao { color: var(--muted); }
.leit-p { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--line); font-size: .9rem; }
@media (max-width: 700px) { .leit-cols { grid-template-columns: 1fr; } }
.leit-mini { display: flex; flex-direction: column; gap: 4px; text-decoration: none; color: var(--navy); font-size: .82rem; font-weight: 600; min-width: 80px; }
.leit-mini i { display: block; height: 5px; background: #eeebe6; border-radius: 99px; overflow: hidden; }
.leit-mini b { display: block; height: 100%; background: var(--gold); }

.vis-people label.check { display: flex; align-items: center; gap: 10px; padding: 6px 8px; border-radius: 10px; margin: 0; }
.vis-people label.check:hover { background: #f7f5f2; }
.vp-txt { display: flex; flex-direction: column; line-height: 1.25; font-weight: 500; }
.vp-txt small { color: var(--muted); font-size: .75rem; font-weight: 400; }

/* Página de avisos em lista */
.av-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.av-toolbar .chips { margin: 0; }
.chip b { display: inline-block; margin-left: 6px; font-size: .76rem; background: rgba(2,25,57,.08); border-radius: 99px; padding: 0 7px; line-height: 18px; }
.chip.on b { background: rgba(255,255,255,.2); }
.av-busca { max-width: 300px; padding: 10px 14px; border-radius: 99px; }
.av-group { margin-top: 22px; }
.av-group[hidden], .av-row[hidden] { display: none !important; }
.av-gtitle { font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; color: var(--gold-txt); margin: 0 0 8px 4px; font-family: var(--body, inherit); }
.av-list { padding: 6px 10px; }
.av-list.pinned { border: 1px solid #ecd9a6; background: linear-gradient(180deg, #fffaf0, #fff 60%); }
.av-row { display: flex; gap: 16px; align-items: flex-start; padding: 16px 10px; text-decoration: none; color: inherit; border-radius: 12px; transition: background .15s; }
.av-row + .av-row { border-top: 1px solid var(--line); border-top-left-radius: 0; border-top-right-radius: 0; }
.av-row:hover { background: #faf8f5; }
.av-date { flex: 0 0 52px; height: 56px; border-radius: 12px; background: #f1efe9; color: var(--navy); display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; }
.av-date span { font-family: var(--head); font-weight: 700; font-size: 1.3rem; }
.av-date small { font-size: .76rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin-top: 3px; font-weight: 600; }
.av-row.unread .av-date { background: var(--navy); color: #fff; }
.av-row.unread .av-date small { color: var(--gold); }
.av-main { flex: 1; min-width: 0; }
.av-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 5px; }
.av-tags:empty { display: none; }
.av-main strong { display: block; font-family: var(--head); color: var(--navy); font-size: 1.05rem; line-height: 1.3; }
.av-row.unread .av-main strong { font-weight: 800; }
.av-main p { margin: 4px 0 0; color: var(--muted); font-size: .9rem; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.av-side { flex: 0 0 auto; align-self: center; }
.av-arrow { color: #b7bcc6; font-size: 1.2rem; transition: transform .15s, color .15s; display: inline-block; }
.av-row:hover .av-arrow { color: var(--navy); transform: translateX(3px); }
@media (max-width: 640px) {
  .av-busca { max-width: none; width: 100%; }
  .av-row { gap: 12px; padding: 14px 6px; }
  .av-date { flex-basis: 44px; height: 50px; }
  .av-side { display: none; }
}
.av-toolbar .chips { position: static; padding: 0; background: none; }
.chips a.on { background: var(--navy); border-color: var(--navy); color: #fff; }

.card.aviso { padding: 32px 36px; border-top: 4px solid var(--gold); }
.card.aviso h1 { margin: 10px 0 14px; font-size: 1.9rem; }
.card.aviso .prose { font-size: 1.02rem; line-height: 1.7; max-width: 760px; }
.card.aviso .av-tags { align-items: center; }
@media (max-width: 640px) { .card.aviso { padding: 24px 20px; } .card.aviso h1 { font-size: 1.5rem; } }

/* Empreendimentos: atalho para o radar ao lado da busca */
html { scroll-behavior: smooth; }
#radar { scroll-margin-top: 90px; }
.emp-tools { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.emp-tools .search { margin: 0; }
.radar-jump { display: inline-flex; align-items: center; gap: 10px; padding: 11px 18px; border-radius: 99px; background: var(--navy); color: #fff; text-decoration: none; font-weight: 600; font-size: .9rem; white-space: nowrap; transition: transform .15s, box-shadow .15s; }
.radar-jump:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(2,25,57,.25); }
.radar-jump b { background: var(--gold); color: var(--navy); border-radius: 99px; font-size: .76rem; padding: 0 7px; line-height: 18px; }
.radar-dot { position: relative; width: 10px; height: 10px; border-radius: 50%; background: var(--gold); }
.radar-dot::after { content: ""; position: absolute; inset: -5px; border-radius: 50%; border: 2px solid var(--gold); animation: radarPing 1.8s ease-out infinite; }
@keyframes radarPing { from { transform: scale(.4); opacity: 1; } to { transform: scale(1.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .radar-dot::after { animation: none; } html { scroll-behavior: auto; } }
@media (max-width: 640px) { .emp-tools { width: 100%; } .emp-tools .search { flex: 1; } .emp-tools .search input { width: 100%; } }
@media (max-width: 640px) { .search input { min-width: 0; } }
.emp-tools .search input { min-width: 240px; }
@media (max-width: 640px) {
  .emp-tools { flex-direction: column; align-items: stretch; }
  .emp-tools .search { order: -1; }
  .emp-tools .search input { min-width: 0; }
  .radar-jump { justify-content: center; }
}

/* Página do empreendimento: seções e subtipos */
.emp-nav a b { display: inline-block; margin-left: 4px; font-size: .76rem; background: rgba(2,25,57,.08); border-radius: 99px; padding: 0 7px; line-height: 18px; }
.emp-nav a:hover b { background: rgba(255,255,255,.2); }
.emp-sec { margin-top: 30px; scroll-margin-top: 140px; }
.emp-sec-title { display: flex; align-items: center; gap: 10px; font-size: 1.35rem; margin: 0 0 14px; }
.emp-sec-title::before { content: ""; width: 5px; height: 22px; border-radius: 4px; background: var(--gold); }
.emp-sub { margin-bottom: 18px; }
.emp-sub-title { display: flex; align-items: center; gap: 8px; font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin: 18px 0 10px; font-family: inherit; }
.emp-sub-title span { background: #e9e6e1; color: var(--navy); border-radius: 99px; padding: 0 8px; font-size: .76rem; line-height: 18px; letter-spacing: 0; }
.mat-date { color: var(--muted); }
.mat-foot { margin: 12px 0 0; }
.gallery figcaption { display: flex; justify-content: space-between; align-items: flex-end; gap: 8px; }
.fc-txt { display: flex; flex-direction: column; min-width: 0; }
.fc-txt > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fc-txt small { font-size: .76rem; color: var(--muted); }
.fmeta .pill.novo, .fc-txt .pill.novo, .mat-foot .pill.novo { font-size: .66rem; padding: 1px 7px; }

.matrix .sec-row th.sec { font-size: .76rem; text-transform: uppercase; letter-spacing: .06em; color: var(--navy); background: #f4f1ea; border-left: 2px solid #fff; white-space: nowrap; padding: 8px 10px; }
.matrix th.sec-start { border-left: 2px solid #efe9dc; }

.gallery figcaption { flex-direction: column; align-items: stretch; gap: 3px; padding: 9px 12px 10px; }
.fc-title { font-weight: 600; color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fc-row { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.fc-row small { font-size: .76rem; color: var(--muted); white-space: nowrap; }
.fc-row a { font-weight: 600; font-size: .78rem; }

/* Empreendimento: botões do topo, links, álbuns e visualizador */
.hero-btns { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.ficon.link { background: #e8eef8; font-size: 1.1rem; }
a.link-row-mat { text-decoration: none; color: inherit; transition: box-shadow .15s, transform .15s; }
a.link-row-mat:hover { box-shadow: var(--shadow-hover); transform: translateY(-1px); }
.albuns { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 18px; margin-bottom: 18px; }
.album { all: unset; cursor: pointer; display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; box-shadow: var(--shadow); transition: transform .15s, box-shadow .15s; }
.album:hover, .album:focus-visible { transform: translateY(-3px); box-shadow: var(--shadow-hover); }
.album:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.album-cover { position: relative; display: block; aspect-ratio: 4/3; background: #e9e6e1; overflow: hidden; }
.album-cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.album:hover .album-cover img { transform: scale(1.04); }
.album-count { position: absolute; right: 10px; bottom: 10px; background: rgba(2,25,57,.82); color: #fff; font-size: .75rem; font-weight: 600; padding: 4px 10px; border-radius: 99px; backdrop-filter: blur(4px); }
.album-body { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px 14px; }
.album-body strong { font-family: var(--head); color: var(--navy); font-size: 1rem; }
.album-body small { color: var(--muted); font-size: .78rem; }
.lb { position: fixed; inset: 0; z-index: 1000; background: #030b18; display: flex; flex-direction: column; color: #fff; }
.lb[hidden] { display: none; }
.lb-top { display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid rgba(255,255,255,.08); }
.lb-top strong { flex: 1; font-family: var(--head); font-size: 1.05rem; }
.lb-close, .lb-back { background: rgba(255,255,255,.1); border: 0; color: #fff; border-radius: 10px; padding: 8px 12px; cursor: pointer; font-size: .9rem; }
.lb-close:hover, .lb-back:hover { background: rgba(255,255,255,.2); }
.lb-grid { flex: 1; overflow-y: auto; padding: 20px; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; align-content: start; }
.lb-grid[hidden], .lb-view[hidden] { display: none; }
.lb-thumb { all: unset; cursor: pointer; border-radius: 12px; overflow: hidden; background: rgba(255,255,255,.06); display: flex; flex-direction: column; }
.lb-thumb img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; transition: opacity .15s; }
.lb-thumb:hover img { opacity: .85; }
.lb-thumb span { padding: 8px 10px; font-size: .82rem; display: flex; flex-direction: column; gap: 2px; }
.lb-thumb small { color: #9fb0c8; font-size: .76rem; }
.lb-view { flex: 1; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 16px; min-height: 0; }
.lb-view figure { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 12px; max-width: 100%; max-height: 100%; min-height: 0; }
.lb-view img { max-width: min(1200px, 100%); max-height: calc(100vh - 170px); object-fit: contain; border-radius: 8px; }
.lb-view figcaption { display: flex; align-items: center; gap: 16px; }
#lb-cap { display: flex; flex-direction: column; }
#lb-cap small { color: #9fb0c8; font-size: .78rem; }
.lb-nav { flex: 0 0 48px; width: 48px; height: 48px; border-radius: 50%; border: 0; background: rgba(255,255,255,.1); color: #fff; font-size: 1.8rem; line-height: 1; cursor: pointer; }
.lb-nav:hover { background: rgba(255,255,255,.22); }
.lb-nav[hidden] { visibility: hidden; display: block; }
@media (max-width: 640px) {
  .albuns { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .lb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px; gap: 10px; }
  .lb-nav { position: absolute; bottom: 22px; }
  .lb-nav.prev { left: 16px; } .lb-nav.next { right: 16px; }
  .lb-view img { max-height: calc(100vh - 220px); }
  .lb-view figcaption { flex-direction: column; gap: 8px; text-align: center; }
}

@media (max-width: 640px) {
  .lb-top { padding: 10px 12px; gap: 8px; }
  .lb-top strong { font-size: .92rem; line-height: 1.25; }
  .lb-back { font-size: 0; padding: 8px 12px; }
  .lb-back::before { content: "←"; font-size: 1rem; }
}
/* Acessos por pessoa */
.matrix td.grp { background: #fbf3dd; }
.matrix td.grp input { accent-color: var(--gold); opacity: .8; }
.matrix td.ext { background: #e8eef8; }
.leg { display: inline-block; padding: 0 8px; border-radius: 6px; font-size: .85em; }
.leg.grp { background: #fbf3dd; color: #7a5500; }
.leg.ext { background: #e8eef8; color: #1d3f73; }

.acc-list { padding: 6px 12px; }
.acc-row { display: flex; align-items: center; gap: 12px; padding: 10px 6px; border-bottom: 1px solid var(--line); cursor: pointer; margin: 0; font-weight: 400; }
.acc-row:last-child { border-bottom: 0; }
.acc-row input { width: 18px; height: 18px; flex: 0 0 auto; }
.acc-txt { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.acc-txt strong { color: var(--navy); font-size: .92rem; }
.acc-txt small { color: var(--muted); font-size: .76rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.acc-tag { font-size: .76rem; font-weight: 600; padding: 3px 10px; border-radius: 99px; background: #eceae7; color: var(--muted); white-space: nowrap; }
.acc-row.todos .acc-tag, .acc-row.grupo .acc-tag { background: #fbf3dd; color: #7a5500; }
.acc-row.todos, .acc-row.grupo { cursor: default; }
.acc-row.pessoa { background: #f2f6fc; border-radius: 10px; }
.acc-row.pessoa .acc-tag { background: #e8eef8; color: #1d3f73; }
.save-bar { position: sticky; bottom: 0; padding: 14px 0; background: linear-gradient(transparent, var(--bg) 30%); z-index: 4; }

/* Cargos */
.cargos-cols { align-items: start; }
.perm-list { display: flex; flex-direction: column; gap: 2px; }
.perm-opt { display: flex; gap: 12px; align-items: flex-start; padding: 9px 8px; border-radius: 10px; cursor: pointer; margin: 0; font-weight: 400; }
.perm-opt:hover { background: #f7f5f2; }
.perm-opt input { width: 18px; height: 18px; margin-top: 2px; flex: 0 0 auto; }
.perm-opt span { display: flex; flex-direction: column; }
.perm-opt strong { color: var(--navy); font-size: .92rem; }
.perm-opt small { color: var(--muted); font-size: .78rem; }
.cargo-card h3 { margin: 0; }
.cargo-perms { display: flex; flex-wrap: wrap; gap: 6px; }
.form label.perm-opt { flex-direction: row; align-items: flex-start; gap: 12px; font-weight: 400; }
.form label.perm-opt small { font-weight: 400; }

/* Topo: logo à esquerda, menu à direita em uma linha só */

.user-menu { order: 3; position: relative; }

.user-btn { width: 42px; height: 42px; border-radius: 50%; border: 2px solid rgba(212,165,60,.6); background: var(--gold); color: var(--navy); font-family: var(--head); font-weight: 700; font-size: 1rem; cursor: pointer; overflow: hidden; padding: 0; display: flex; align-items: center; justify-content: center; transition: border-color .15s, transform .15s; }
.user-btn:hover, .user-btn.on, .user-btn[aria-expanded="true"] { border-color: #fff; }
.user-btn img { width: 100%; height: 100%; object-fit: cover; }
.user-panel { position: absolute; right: 0; top: calc(100% + 10px); min-width: 220px; background: #fff; border-radius: 14px; box-shadow: 0 18px 50px rgba(2,25,57,.28); border: 1px solid var(--line); overflow: hidden; z-index: 50; }
.user-head { display: flex; flex-direction: column; padding: 14px 16px 10px; border-bottom: 1px solid var(--line); }
.user-head strong { color: var(--navy); font-family: var(--head); }
.user-head small { color: var(--muted); font-size: .78rem; }
.user-panel a { display: block; padding: 11px 16px; color: var(--navy); text-decoration: none; font-size: .9rem; font-weight: 500; }
.user-panel a:hover { background: #f7f5f2; }
.user-panel a:last-child { color: #b3261e; border-top: 1px solid var(--line); }

@media (max-width: 1240px) {

  .user-menu { display: none; }
}

/* Contatos do empreendimento */
.contatos { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
.contato { display: flex; gap: 14px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 16px; box-shadow: var(--shadow); }
.ct-ava { flex: 0 0 46px; height: 46px; border-radius: 50%; background: var(--navy); color: var(--gold); font-family: var(--head); font-weight: 700; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; }
.ct-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ct-txt strong { font-family: var(--head); color: var(--navy); font-size: 1.02rem; }
.ct-obs { font-size: .84rem; color: var(--text); background: #f7f5f2; border-radius: 8px; padding: 6px 10px; margin-top: 6px; }
.ct-btns { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }

/* Administração: menu lateral */
.admin-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 28px; align-items: start; }
.admin-side { position: sticky; top: calc(var(--topo) + 20px); background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 14px 10px; box-shadow: var(--shadow); }
.admin-side-title { font-family: var(--head); font-weight: 700; color: var(--navy); padding: 2px 10px 10px; border-bottom: 1px solid var(--line); margin-bottom: 6px; }
.admin-side nav { display: flex; flex-direction: column; gap: 1px; }
.admin-side-sec { font-size: .76rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-txt); padding: 12px 10px 4px; }
.admin-side a { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; text-decoration: none; color: #4b5565; font-size: .9rem; font-weight: 500; }
.admin-side a:hover { background: #f4f2ee; color: var(--navy); }
.admin-side a.on { background: var(--navy); color: #fff; }
.admin-side .ai { width: 20px; text-align: center; font-size: .95rem; }
.admin-main { min-width: 0; }
.admin-main > h1:first-child, .admin-main > .page-head:first-child { margin-top: 0; }
@media (max-width: 900px) {
  .admin-layout { grid-template-columns: 1fr; gap: 14px; }
  .admin-side { position: static; padding: 8px; border-radius: 14px; }
  .admin-side-title, .admin-side-sec { display: none; }
  .admin-side nav { flex-direction: row; overflow-x: auto; gap: 4px; scrollbar-width: none; }
  .admin-side nav::-webkit-scrollbar { display: none; }
  .admin-side a { white-space: nowrap; padding: 7px 12px; }
}
.admin-side { min-width: 0; }
@media (max-width: 900px) { .admin-layout { grid-template-columns: minmax(0, 1fr); } }

/* Painel: números numa faixa só */
.stat-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); padding: 6px; gap: 0; margin-bottom: 18px; }
.stat2 { display: flex; align-items: center; gap: 12px; padding: 14px 16px; text-decoration: none; color: inherit; border-radius: 12px; position: relative; }
.stat2 + .stat2::before { content: ""; position: absolute; left: 0; top: 18%; bottom: 18%; width: 1px; background: var(--line); }
.stat2:hover { background: #f7f5f2; }
.stat2-ico { flex: 0 0 40px; height: 40px; border-radius: 12px; background: #f4efe2; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; }
.stat2-txt { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.stat2-txt strong { font-family: var(--head); font-size: 1.5rem; color: var(--navy); }
.stat2-txt small { color: var(--muted); font-size: .78rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 640px) { .stat-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); } .stat2::before { display: none; } }
/* faixa de números: 3 por linha (6 numa linha só em telas bem largas), sem cortar o texto */
.stat-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
.stat2 + .stat2::before { display: none; }
.stat2 { background: #faf8f5; }
.stat2:hover { background: #f1ede6; }
.stat2-txt small { white-space: normal; overflow: visible; }
@media (min-width: 1500px) { .stat-strip { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (max-width: 640px) { .stat-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Painel: números (versão final) */
.stat-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); padding: 0; overflow: hidden; margin-bottom: 18px; }
.stat3 { position: relative; display: flex; flex-direction: column; gap: 2px; padding: 18px 20px 16px; text-decoration: none; color: inherit; transition: background .15s; }
.stat3 + .stat3 { border-left: 1px solid var(--line); }
.stat3:hover { background: #faf8f4; }
.stat3 svg { position: absolute; top: 16px; right: 16px; width: 20px; height: 20px; fill: none; stroke: var(--gold); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.stat3 strong { font-family: var(--head); font-size: 1.9rem; line-height: 1.1; color: var(--navy); }
.stat3 small { color: var(--muted); font-size: .8rem; line-height: 1.3; padding-right: 4px; }
@media (max-width: 1100px) { .stat-row { grid-template-columns: repeat(3, minmax(0, 1fr)); } .stat3:nth-child(3n+1) { border-left: 0; } .stat3:nth-child(n+4) { border-top: 1px solid var(--line); } }
@media (max-width: 560px) { .stat-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } .stat3 { border-left: 0 !important; border-top: 0 !important; } .stat3:nth-child(even) { border-left: 1px solid var(--line) !important; } .stat3:nth-child(n+3) { border-top: 1px solid var(--line) !important; } }

/* Documentos: galeria dentro da pasta */
.doc-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; margin-bottom: 22px; }
.doc-gallery .lb-open { all: unset; cursor: pointer; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; box-shadow: var(--shadow); display: flex; flex-direction: column; transition: transform .15s, box-shadow .15s; }
.doc-gallery .lb-open:hover { transform: translateY(-2px); box-shadow: var(--shadow-hover); }
.doc-gallery .lb-open:focus-visible { outline: 3px solid var(--gold); }
.doc-gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.doc-gallery span { padding: 9px 12px 11px; display: flex; flex-direction: column; font-size: .84rem; font-weight: 600; color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.doc-gallery small { color: var(--muted); font-weight: 400; font-size: .76rem; }
/* imagens com fundo transparente (logos em PNG) aparecem sobre um xadrez neutro */
.doc-gallery img, .album-cover img, .lb-thumb img { background-color: #d9d5ce; background-image: linear-gradient(45deg, #c9c4bb 25%, transparent 25%), linear-gradient(-45deg, #c9c4bb 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #c9c4bb 75%), linear-gradient(-45deg, transparent 75%, #c9c4bb 75%); background-size: 16px 16px; background-position: 0 0, 0 8px, 8px -8px, -8px 0; }
.doc-gallery img[src$=".png"], .doc-gallery img { object-fit: cover; }

.folder-card[hidden], #docs-res .file-row[hidden], .lb-open[hidden], .file-row[hidden] { display: none !important; }
#docs-res { margin-top: 26px; }

/* Agenda: busca e dias passados */
.cal-d.past:not(.has) span { opacity: .45; }
.cal-d.past.has { opacity: .75; }
.dia.past { opacity: .8; }
.dia:target { background: #fff8e6; border-radius: 16px; box-shadow: 0 0 0 8px #fff8e6; }
.ag-list { padding: 6px 12px; }
.ag-item { display: flex; align-items: center; gap: 14px; padding: 11px 4px; border-bottom: 1px solid var(--line); text-decoration: none; color: inherit; }
.ag-item:last-child { border-bottom: 0; }
.ag-item:hover { background: #faf8f5; }
.ag-item[hidden], #ag-cal[hidden], #ag-res[hidden], .ag-list[hidden] { display: none !important; }
.ag-item.past { opacity: .7; }
.ag-txt { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.ag-txt strong { color: var(--navy); }
.ag-txt small { color: var(--muted); font-size: .8rem; }

/* Agenda: calendário + eventos do dia clicado */
.ag-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 22px; align-items: start; }
.ag-dia-painel .dia h3 { margin-top: 4px; font-size: 1.05rem; color: var(--navy); font-family: var(--head); }
.ag-dia-painel .dia h3.today { color: var(--gold-txt); }
.ag-dia-painel .dia[hidden] { display: none; }
.ag-dia-painel .dia:target { background: none; box-shadow: none; }
.ag-dia-painel .ev-row { flex-direction: column; }
.ag-dia-painel .ev-row .ev-img { flex: 0 0 130px; height: 130px; }
.ag-dia-painel .ev-row .ev-main { padding: 14px 16px; flex-wrap: wrap; gap: 6px 14px; }
.ag-dia-painel .ev-row:not(:has(.ev-img)) .ev-main { padding-left: 16px; }
.ag-dia-painel .ev-time { flex: 0 0 auto; }
.ag-dia-painel .ev-row .ev-main > div:nth-child(2) { flex: 1 1 100%; order: 3; }
.ag-dia-painel .ev-row .ev-main > a { margin-left: auto; }
.ag-dica { margin-top: 12px; }
.cal-d.sel { background: var(--gold) !important; color: var(--navy) !important; opacity: 1 !important; box-shadow: 0 6px 16px rgba(201,154,46,.35); }
.cal-d.sel i { background: var(--navy); color: #fff; }
@media (max-width: 900px) { .ag-grid { grid-template-columns: minmax(0, 1fr); } }

/* Situação dos eventos */
.pill.ev-ok { background: #e3f4ea; color: #1d7a45; }
.pill.ev-cancel { background: #fde8e8; color: #b42318; }
.ev-row.is-cancel .ev-tit { text-decoration: line-through; color: var(--muted); }
.ev-row.is-cancel .ev-time { text-decoration: line-through; color: var(--muted); }
.ev-row.is-cancel:not(:has(.ev-img)) .ev-main { border-left-color: #e5484d; }
.ev-obs { margin-top: 8px; font-size: .85rem; padding: 8px 10px; border-radius: 10px; background: #f5f4f1; }
.ev-obs.cancelado { background: #fdf1f1; color: #7a1d17; }
.ev-obs.realizado { background: #eef8f2; }
.ev-obs p { display: inline; margin: 0; }
.sit-opts { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.form label.sit-opt { flex-direction: row; margin: 0; cursor: pointer; }
.sit-opt input { position: absolute; opacity: 0; pointer-events: none; }
.sit-opt span { display: inline-block; padding: 9px 16px; border-radius: 99px; border: 1.5px solid var(--line); background: #fff; font-weight: 600; font-size: .9rem; color: var(--navy); }
.sit-opt input:checked + span { background: var(--navy); color: #fff; border-color: var(--navy); }
.sit-realizado input:checked + span { background: #1d7a45; border-color: #1d7a45; }
.sit-cancelado input:checked + span { background: #d92d20; border-color: #d92d20; }
.sit-opt input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 2px; }

.pill.ev-resch { background: #fff3dc; color: #8a5a00; }
.ev-row.is-resch:not(:has(.ev-img)) .ev-main { border-left-color: #e0a526; }
.ev-obs.reagendado { background: #fff8e8; color: #5c3d00; }
.ev-obs a { font-weight: 600; }
.ev-remarc { margin-top: 6px; font-size: .82rem; color: #8a5a00; }
.ev-remarc a { color: inherit; font-weight: 600; }
.sit-reagendado input:checked + span { background: #d18f00; border-color: #d18f00; }
.reag-box { background: #fff8e8; border: 1px solid #f3dfb0; border-radius: 12px; padding: 12px 14px; margin-bottom: 12px; }
.reag-box[hidden], #reag-info[hidden] { display: none; }
.alert.ev-hist { background: #fff8e8; border: 1px solid #f3dfb0; color: #5c3d00; margin-bottom: 12px; }

/* Espaço dos arquivos */
.espaco-acoes { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; justify-content: space-between; padding-top: 12px; border-top: 1px solid var(--line); }
.espaco-plano label { display: inline-flex; align-items: center; gap: 8px; font-size: .88rem; font-weight: 600; color: var(--navy); }
.espaco-plano input { width: 90px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 10px; font: inherit; }
.espaco-plano { display: inline-flex; gap: 8px; align-items: center; }
.leit-bar.medio i { background: #e0a526; }
.leit-bar.alto i { background: #d92d20; }

/* Busca em tabelas do admin */
.tab-head { gap: 12px; flex-wrap: wrap; margin-bottom: 6px; }
.tab-head .search { flex: 0 1 320px; }
.tab-head .search input { width: 100%; }
.count-pill { display: inline-block; margin-left: 6px; font-size: .75rem; padding: 2px 9px; border-radius: 99px; background: #eef0f4; color: var(--navy-3); vertical-align: middle; }
tr[hidden] { display: none; }

/* Estágio do empreendimento */
.emp-estagio { position: absolute; top: 12px; left: 12px; background: var(--gold); color: var(--navy); font-style: normal; font-size: .72rem; font-weight: 700; padding: 4px 10px; border-radius: 99px; box-shadow: 0 2px 8px rgba(0,0,0,.15); }
.emp-estagio.hero { position: static; display: inline-block; margin: 2px 0 10px; font-size: .8rem; }
.emp-oculto { position: absolute; top: 12px; right: 12px; background: rgba(2,25,57,.8); color: #fff; font-style: normal; font-size: .72rem; padding: 4px 10px; border-radius: 99px; }
/* Anexos do radar (admin) */
.anexo-lista { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.anexo-item { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.anexo-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.anexo-txt a { font-weight: 600; color: var(--navy); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.form label.anexo-rm { flex-direction: row; margin: 0; font-size: .85rem; color: #b42318; white-space: nowrap; }
.radar-anx { display: inline-block; font-size: .78rem; font-weight: 600; color: var(--navy-3); margin-top: 6px; }

/* Comentários dos avisos */
.comentarios { margin-top: 20px; }
.cm-list { display: flex; flex-direction: column; }
.cm { display: flex; gap: 12px; padding: 14px 8px; border-bottom: 1px solid var(--line); scroll-margin-top: 90px; border-radius: 10px; }
.cm:last-child { border-bottom: 0; }
.cm.novo { background: #fff8e6; }
.cm:target { background: #fff3d1; }
.cm-av { flex: 0 0 36px; width: 36px; height: 36px; border-radius: 50%; background: var(--navy); color: var(--gold); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: .9rem; overflow: hidden; }
.cm-av img { width: 100%; height: 100%; object-fit: cover; }
.cm-body { flex: 1; min-width: 0; }
.cm-meta { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: .9rem; }
.cm-meta strong { color: var(--navy); }
.cm-txt { margin-top: 4px; font-size: .95rem; line-height: 1.5; overflow-wrap: anywhere; }
.cm-txt p { margin: 0 0 6px; }
.cm-del { align-self: flex-start; }
.linkbtn { background: none; border: 0; padding: 4px; color: var(--muted); font: inherit; font-size: .8rem; cursor: pointer; }
.linkbtn:hover { color: #b42318; text-decoration: underline; }
.cm-form { display: flex; gap: 12px; align-items: flex-start; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.cm-form textarea { flex: 1; min-width: 0; border: 1px solid var(--line); border-radius: 14px; padding: 10px 14px; font: inherit; resize: vertical; min-height: 44px; }
.cm-form textarea:focus { outline: 2px solid var(--gold); outline-offset: 1px; }
@media (max-width: 560px) { .cm-form { flex-wrap: wrap; } .cm-form .cm-av { display: none; } .cm-form button { width: 100%; } }
.ev-item .pill { align-self: flex-start; margin: 3px 0 1px; }

.cm.is-del { background: #fbf3f3; }
.cm.is-del .cm-txt { color: var(--muted); text-decoration: line-through; text-decoration-color: rgba(180,35,24,.35); }
.cm .del-tag { display: inline-block; margin-top: 4px; font-size: .75rem; font-weight: 600; color: #b42318; background: #fde8e8; padding: 2px 8px; border-radius: 99px; }
.cm-apagado .cm-av { background: #eef0f4; color: var(--muted); }

/* Fixar aviso até */
.fix-box { background: #fffaf0; border: 1px solid #f3dfb0; border-radius: 12px; padding: 10px 14px; margin: 4px 0 8px; }
.fix-box .check { margin: 0; }
.fix-ate { margin-top: 10px; }
.fix-ate[hidden] { display: none; }
.fix-ate input[type=date] { max-width: 220px; }
.fix-rap { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.fix-rap .chip { cursor: pointer; font: inherit; font-size: .82rem; }
.fix-rap .chip { background: #fff; border: 1.5px solid var(--line); border-radius: 99px; padding: 5px 12px; color: var(--navy); font-weight: 600; }
.fix-rap .chip:hover { border-color: var(--navy); background: var(--navy); color: #fff; }

/* Cargos: criar / editar / excluir */
.perm-acoes { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.perm-acoes > span { flex: 1 1 240px; }
.perm-tgl { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.form label.tgl { flex-direction: row; margin: 0; cursor: pointer; }
.tgl input { position: absolute; opacity: 0; pointer-events: none; }
.tgl span { display: inline-block; padding: 6px 12px; border-radius: 99px; border: 1.5px solid var(--line); background: #fff; font-size: .82rem; font-weight: 600; color: var(--muted); }
.tgl input:checked + span { background: var(--navy); border-color: var(--navy); color: #fff; }
.tgl-excluir input:checked + span { background: #b42318; border-color: #b42318; }
.tgl input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 2px; }
.tgl-todos { border: 0; background: none; font: inherit; font-size: .78rem; color: var(--navy-3); text-decoration: underline; cursor: pointer; padding: 4px; }

/* Acessos por pessoa */
.pa-tabs { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; margin: 6px 0 18px; }
.pa-tab { display: flex; align-items: center; gap: 10px; text-align: left; background: var(--surface); border: 1.5px solid var(--line); border-radius: 14px; padding: 10px 12px; cursor: pointer; font: inherit; color: var(--text); }
.pa-tab:hover { border-color: var(--navy-3); }
.pa-tab.on { border-color: var(--navy); background: var(--navy); color: #fff; }
.pa-tab.on small { color: rgba(255,255,255,.75); }
.pa-tab.on b { color: var(--gold); }
.pa-ico { font-size: 1.2rem; }
.pa-tx { display: flex; flex-direction: column; min-width: 0; }
.pa-tx strong { font-size: .92rem; }
.pa-tx small { font-size: .76rem; color: var(--muted); }
.pa-tx b { color: #1d3f73; }
.pa-panel[hidden] { display: none; }
.pa-card { padding: 16px 18px; }
.pa-tools { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; margin-bottom: 10px; }
.pa-busca { flex: 1 1 240px; max-width: 360px; border: 1px solid var(--line); border-radius: 99px; padding: 9px 16px; font: inherit; }
.pa-filtros { display: flex; gap: 6px; flex-wrap: wrap; }
.pa-filtros .chip { background: #fff; border: 1.5px solid var(--line); border-radius: 99px; padding: 6px 12px; font: inherit; font-size: .84rem; font-weight: 600; color: var(--navy); cursor: pointer; }
.pa-filtros .chip.on { background: var(--navy); border-color: var(--navy); color: #fff; }
.pa-list { max-height: 520px; overflow: auto; border: 1px solid var(--line); border-radius: 12px; }
.pa-row { display: flex; align-items: center; gap: 12px; padding: 9px 12px; border-bottom: 1px solid var(--line); cursor: pointer; margin: 0; font-weight: 400; }
.pa-row:last-of-type { border-bottom: 0; }
.pa-row[hidden] { display: none; }
.pa-row input { width: 18px; height: 18px; flex: 0 0 auto; }
.pa-row.todos, .pa-row.grupo { cursor: default; background: #fdfbf6; }
.pa-row.pessoa { background: #f2f6fd; }
.pa-lock { width: 18px; text-align: center; font-size: .8rem; opacity: .6; }
.pa-row-t { flex: 1; min-width: 0; display: flex; align-items: baseline; gap: 10px; }
.pa-row-t strong { font-weight: 600; color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pa-row-t small { color: var(--muted); font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pa-vazio { padding: 14px; margin: 0; }
.pa-save { display: flex; justify-content: flex-end; margin-top: 12px; }
.pa-emps { display: flex; flex-direction: column; gap: 8px; }
.pa-emp { border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.pa-emp[hidden] { display: none; }
.pa-emp > summary { display: flex; align-items: center; gap: 12px; padding: 12px 14px; cursor: pointer; list-style: none; }
.pa-emp > summary::-webkit-details-marker { display: none; }
.pa-emp > summary::after { content: '▾'; color: var(--muted); margin-left: 4px; transition: transform .15s; }
.pa-emp[open] > summary::after { transform: rotate(180deg); }
.pa-emp-nome { flex: 1; min-width: 0; }
.pa-emp-nome strong { color: var(--navy); }
.pa-bar { flex: 0 0 140px; height: 8px; background: #eceae7; border-radius: 99px; overflow: hidden; display: flex; }
.pa-bar i { display: block; height: 100%; }
.pa-bar i.g { background: var(--gold); }
.pa-bar i.x { background: #3b6fc4; }
.pa-num { font-size: .82rem; font-weight: 600; color: var(--muted); min-width: 40px; text-align: right; }
.pa-x { font-size: .76rem; font-weight: 700; background: #e8eef8; color: #1d3f73; padding: 2px 8px; border-radius: 99px; }
.pa-x[hidden] { display: none; }
.pa-emp-body { padding: 4px 14px 14px; border-top: 1px solid var(--line); }
.pa-sec { margin-top: 10px; }
.pa-sec-t { font-size: .76rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
.pa-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pa-chip { display: inline-flex; align-items: center; margin: 0; cursor: pointer; font-weight: 500; }
.pa-chip input { position: absolute; opacity: 0; pointer-events: none; }
.pa-chip span, .pa-chip.grp { display: inline-block; padding: 6px 12px; border-radius: 99px; border: 1.5px solid var(--line); background: #fff; font-size: .84rem; color: var(--text); }
.pa-chip input:checked + span { background: #3b6fc4; border-color: #3b6fc4; color: #fff; }
.pa-chip input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 2px; }
.pa-chip.grp { background: #fbf3dd; border-color: #f1dfae; color: #7a5500; cursor: default; }
.pa-emp-acts { margin-top: 12px; font-size: .85rem; color: var(--muted); }
.pa-emp-acts .linkbtn { color: var(--navy-3); }
.pa-emp-acts .linkbtn:hover { color: var(--navy); }
@media (max-width: 640px) { .pa-bar { display: none; } .pa-row-t { flex-direction: column; gap: 0; } }
.pa-tabs { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
.pa-tx strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Carrossel do início */
.dash-side { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.carrossel { position: relative; overflow: hidden; border-radius: var(--radius, 18px); box-shadow: var(--shadow); background: var(--navy); aspect-ratio: var(--ratio, 4/5); }
.car-trilho { display: flex; height: 100%; transition: transform .5s ease; }
.car-slide { flex: 0 0 100%; height: 100%; position: relative; display: block; color: #fff; text-decoration: none; }
.car-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.car-leg { position: absolute; left: 0; right: 0; bottom: 0; padding: 36px 16px 30px; background: linear-gradient(transparent, rgba(2,25,57,.85)); font-weight: 700; font-family: var(--head); font-size: 1rem; }
.car-seta { position: absolute; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border-radius: 50%; border: 0; background: rgba(255,255,255,.85); color: var(--navy); font-size: 1.5rem; line-height: 1; cursor: pointer; opacity: 0; transition: opacity .2s; display: flex; align-items: center; justify-content: center; padding-bottom: 3px; }
.car-seta.ant { left: 10px; } .car-seta.prox { right: 10px; }
.carrossel:hover .car-seta, .car-seta:focus-visible { opacity: 1; }
.car-dots { position: absolute; bottom: 10px; left: 0; right: 0; display: flex; justify-content: center; gap: 6px; }
.car-dots button { width: 8px; height: 8px; border-radius: 99px; border: 0; background: rgba(255,255,255,.55); padding: 0; cursor: pointer; transition: width .2s; }
.car-dots button.on { width: 22px; background: var(--gold); }
.car-edit { position: absolute; top: 10px; right: 10px; width: 32px; height: 32px; border-radius: 50%; background: rgba(2,25,57,.7); color: #fff; display: flex; align-items: center; justify-content: center; text-decoration: none; opacity: 0; transition: opacity .2s; }
.carrossel:hover .car-edit { opacity: 1; }
.carrossel.vazio { display: flex; align-items: center; justify-content: center; text-align: center; background: repeating-linear-gradient(45deg, #f7f5f1, #f7f5f1 10px, #f1eee8 10px, #f1eee8 20px); border: 2px dashed #d9d3c7; box-shadow: none; color: var(--navy); text-decoration: none; font-size: 1.6rem; }
.carrossel.vazio strong { font-size: .95rem; } .carrossel.vazio small { font-size: .78rem; color: var(--muted); }
@media (hover: none) { .car-seta, .car-edit { opacity: 1; } }
.dash-side { gap: 18px; }
.dash-side > .card { margin-bottom: 0; }
/* Admin: carrossel */
.ban-cols { align-items: start; }
.ban-prev { width: 180px; aspect-ratio: var(--ratio, 4/5); border-radius: 12px; overflow: hidden; background: var(--navy); margin-bottom: 12px; }
.ban-prev img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ban-fmt { display: flex; flex-direction: column; gap: 8px; }
.ban-fmt-op { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border: 1.5px solid var(--line); border-radius: 12px; cursor: pointer; font-size: .9rem; }
.ban-fmt-op:has(input:checked) { border-color: var(--navy); background: #f3f5f9; font-weight: 600; }
.ban-fmt-op input { accent-color: var(--navy); }
.ban-fmt-box { width: 34px; max-height: 40px; background: var(--navy); border-radius: 4px; flex: 0 0 auto; }
.ban-list { display: flex; flex-direction: column; gap: 10px; }
.ban-item { display: flex; align-items: center; gap: 12px; padding: 10px; border: 1px solid var(--line); border-radius: 12px; flex-wrap: wrap; }
.ban-item.off .ban-thumb { opacity: .5; filter: grayscale(.6); }
.ban-n { font-weight: 700; color: var(--muted); width: 18px; text-align: center; }
.ban-thumb { width: 64px; border-radius: 8px; object-fit: cover; background: var(--navy); }
.ban-txt { flex: 1 1 160px; min-width: 0; display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.ban-txt strong { color: var(--navy); }
.ban-acts { display: flex; gap: 4px; flex-wrap: wrap; }
.pill.agenda { background: #e8eef8; color: #1d3f73; }

.dash-main { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.dash-main > .card { margin-bottom: 0; }
.home-emps-h { margin: 6px 0 -4px; }
.home-emps { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.tgl.trava { opacity: .45; cursor: not-allowed; }
.form label.perm-opt:has(input:disabled) { opacity: .5; }

/* Acessos dentro do empreendimento */
.emp-acessos { scroll-margin-top: 90px; }
.ea-t { font-size: .85rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin: 18px 0 8px; }
.pa-chip.gold input:checked + span { background: var(--gold); border-color: var(--gold); color: var(--navy); }
.ea-add { margin-top: 10px; }
.ea-add select { border: 1.5px dashed var(--line); border-radius: 12px; padding: 10px 12px; font: inherit; background: #fff; min-width: 280px; color: var(--navy); }
.ea-pessoa[hidden] { display: none; }
.so-ver .pa-chip { cursor: default; }

/* Fotos de imóveis */
.im-nova > summary { cursor: pointer; list-style: none; color: var(--navy); }
.im-nova > summary::-webkit-details-marker { display: none; }
.im-nova[open] > summary { margin-bottom: 14px; }
.im-titulo-campos { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; }
.im-titulo-campos label { flex: 1 1 200px; margin: 0; }
.im-titulo-campos label:first-child { flex: 0 1 190px; }
.im-barra { font-size: 1.6rem; color: var(--gold); font-weight: 700; padding-bottom: 8px; }
.im-previa { margin: 10px 0 12px; }
.im-previa strong { color: var(--navy); }
.im-form.enviando .im-enviando-txt { display: inline; }
.im-enviando-txt { display: none; }
.im-chips { position: static; }
.im-chips .chip { background: var(--surface); border: 1.5px solid var(--line); border-radius: 99px; padding: 7px 14px; font: inherit; font-size: .86rem; font-weight: 600; color: var(--navy); cursor: pointer; }
.im-chips .chip.on { background: var(--navy); border-color: var(--navy); color: #fff; }
.im-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.im-card { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; text-decoration: none; color: inherit; box-shadow: var(--shadow); transition: transform .15s, box-shadow .15s; display: flex; flex-direction: column; }
.im-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-hover); }
.im-card[hidden] { display: none; }
.im-card-img { position: relative; aspect-ratio: 4/3; background: linear-gradient(135deg, #0b2a55, var(--navy)); display: flex; align-items: center; justify-content: center; font-size: 2rem; }
.im-card-img img { width: 100%; height: 100%; object-fit: cover; }
.im-card-img em { position: absolute; bottom: 8px; right: 8px; background: rgba(2,25,57,.8); color: #fff; font-style: normal; font-size: .72rem; font-weight: 600; padding: 3px 9px; border-radius: 99px; }
.im-card-body { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 3px; }
.im-card-tipo { font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--gold-txt); }
.im-card-body strong { color: var(--navy); font-family: var(--head); font-size: 1.02rem; }
.im-card-prop { font-size: .88rem; color: var(--text); }
.im-titulo { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.im-titulo i { font-style: normal; color: var(--gold); }
.im-obs { background: #f7f5f1; border-radius: 12px; padding: 10px 14px; margin-top: 8px; font-size: .92rem; max-width: 720px; }
.im-drop { margin: 6px 0 20px; }
.im-drop-area { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; text-align: center; border: 2px dashed #d9d3c7; border-radius: 16px; padding: 22px 16px; background: #fffdf8; cursor: pointer; transition: background .15s, border-color .15s; margin: 0; }
.im-drop-area:hover, .im-drop.sobre .im-drop-area { background: #fff6e0; border-color: var(--gold); }
.im-drop-area input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.im-drop-ico { font-size: 1.8rem; }
.im-drop-area strong { color: var(--navy); }
.im-drop-area small { color: var(--muted); }
.im-enviando { display: none; text-align: center; padding: 10px; font-weight: 600; color: var(--navy); }
.im-drop.enviando .im-drop-area { display: none; }
.im-drop.enviando .im-enviando { display: block; }
.im-foto { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; box-shadow: var(--shadow); }
.im-gallery .im-foto .lb-open { border: 0; border-radius: 0; box-shadow: none; position: relative; }
.im-gallery .im-foto .lb-open:hover { transform: none; }
.im-capa { position: absolute; top: 8px; left: 8px; background: var(--gold); color: var(--navy); font-style: normal; font-size: .7rem; font-weight: 700; padding: 2px 8px; border-radius: 99px; }
.im-foto-acts { display: flex; justify-content: flex-end; gap: 2px; padding: 4px 6px; border-top: 1px solid var(--line); }
.im-foto-acts form { margin: 0; }
.im-foto-acts .linkbtn { font-size: .78rem; text-decoration: none; color: var(--navy-3); }
.im-foto-acts .linkbtn.del:hover { color: #b42318; }
.im-secao { margin-top: 26px; }
.im-secao > summary { cursor: pointer; }
@media (max-width: 640px) { .im-barra { display: none; } .im-titulo-campos label, .im-titulo-campos label:first-child { flex-basis: 100%; } .im-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }
/* cards de imóveis no mesmo tamanho dos empreendimentos */
.im-grid { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 18px; }
.im-card { border-radius: var(--radius); }
.im-card-img { aspect-ratio: 16/10; overflow: hidden; }
.im-card-img img { display: block; }
.im-card-body { padding: 16px 18px 18px; }
@media (max-width: 640px) { .im-grid { grid-template-columns: minmax(0, 1fr); } }

/* Seletor de fotos em galeria (nova pasta) */
.im-picker { margin: 4px 0 14px; border: 1.5px dashed #d9d3c7; border-radius: 14px; padding: 12px; background: #fffdf8; }
.im-picker.sobre { border-color: var(--gold); background: #fff6e0; }
.im-picker-t { font-weight: 600; color: var(--navy); margin-bottom: 10px; font-size: .92rem; }
.im-picker-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 10px; }
.im-picker-item { position: relative; aspect-ratio: 1; border-radius: 10px; overflow: hidden; background: #eee; box-shadow: var(--shadow); }
.im-picker-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.im-picker-item button { position: absolute; top: 5px; right: 5px; width: 24px; height: 24px; border-radius: 50%; border: 0; background: rgba(2,25,57,.8); color: #fff; font-size: .75rem; cursor: pointer; line-height: 1; }
.form label.im-picker-add { aspect-ratio: 1; margin: 0; border: 2px dashed #d9d3c7; border-radius: 10px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; cursor: pointer; background: #fff; color: var(--navy); font-weight: 600; }
.im-picker-add:hover { border-color: var(--gold); }
.form label.im-picker-add { position: relative; overflow: hidden; }
.form label.im-picker-add input[type=file] { position: absolute; inset: 0; opacity: 0; width: 1px; height: 1px; min-width: 0; padding: 0; margin: 0; border: 0; pointer-events: none; }
.im-picker-add span { font-size: 1.8rem; line-height: 1; color: var(--gold); }
.im-picker-add small { font-size: .75rem; }
.im-picker-n { margin: 8px 0 0; }

/* OneDrive (admin) */
.od-cols { grid-template-columns: 1fr 1fr; align-items: start; }
@media (max-width: 860px) { .od-cols { grid-template-columns: 1fr; } }
.od-status { font-weight: 700; font-size: 1.05rem; margin: 0 0 12px; color: var(--muted, #6b7280); }
.od-status.on { color: #15803d; }
.od-quota { margin: 0 0 10px; }
.od-quota-bar { height: 8px; border-radius: 99px; background: #e5e7eb; overflow: hidden; }
.od-quota-bar i { display: block; height: 100%; background: var(--gold, #c9a45c); }
.od-quota p { margin: 6px 0 0; }
.od-regras { margin: 10px 0 16px; padding-left: 18px; line-height: 1.6; }
.od-copy { display: flex; gap: 8px; margin-top: 6px; }
.od-copy input { flex: 1; font-family: ui-monospace, monospace; font-size: .85rem; }
.btn.danger.ghost, .btn.ghost.danger { color: #b91c1c; border-color: #fecaca; }
.od-uri { display: block; margin: 0 0 16px; }
.od-arvore { background: #f7f5f0; border-radius: 10px; padding: 10px 14px; margin: 4px 0 12px; font-size: .9rem; line-height: 1.9; }
.od-arvore .n2 { padding-left: 20px; } .od-arvore .n3 { padding-left: 40px; } .od-arvore .n4 { padding-left: 60px; }
.od-arvore + p { margin-top: 0; }
.notif-ico.al { background: #fff4e0; }
.im-excluidas { margin-top: 18px; }
.im-exc-lista { display: grid; gap: 8px; margin-top: 12px; }
.im-exc { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 10px; background: #f7f5f0; color: inherit; text-decoration: none; }
.im-exc:hover { background: #efebe2; }
.im-excluida-aviso { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; border-left: 4px solid #d97706; background: #fffbf3; margin-bottom: 16px; }
.im-excluida-aviso p { margin: 4px 0 0; }
.im-foto-exc img { opacity: .45; filter: grayscale(.6); }
.im-foto-exc { outline: 2px dashed #d97706; outline-offset: -2px; }
.im-exc-tag { position: absolute; left: 8px; bottom: 8px; background: #d97706; color: #fff; font-style: normal; font-size: .72rem; font-weight: 700; padding: 3px 8px; border-radius: 99px; }
.im-exc-n { color: #b45309; }

/* Quem cadastrou */
.hero-por { margin: 6px 0 10px; font-size: .85rem; opacity: .8; }
.por-quem { display: block; margin-top: 2px; }

/* Histórico */
.hist-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 16px; }
.hist-stats .card { padding: 14px 18px; display: flex; flex-direction: column; }
.hist-stats b { font-size: 1.6rem; color: var(--navy); line-height: 1.1; }
.hist-stats span { color: var(--muted, #6b7280); font-size: .85rem; }
.hist-filtros { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px 14px; align-items: end; margin-bottom: 16px; }
.hist-filtros label { margin: 0; }
.hist-filtros .hist-busca { grid-column: span 2; }
.hist-filtros .check { align-self: center; }
.hist-filtros .row-btns { margin: 0; }
.hist-lista { padding: 6px 18px 12px; }
.hist-dia { font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gold-txt); padding: 16px 0 6px; border-bottom: 1px solid #eee; }
.hist-item { display: grid; grid-template-columns: 46px 30px 1fr; gap: 10px; align-items: start; padding: 10px 0; border-bottom: 1px solid #f2f0eb; }
.hist-item:last-child { border-bottom: 0; }
.hist-hora { font-variant-numeric: tabular-nums; color: var(--muted, #6b7280); font-size: .85rem; padding-top: 4px; }
.hist-ico { width: 30px; height: 30px; border-radius: 9px; background: #f1efe9; display: flex; align-items: center; justify-content: center; font-size: .9rem; }
.acao-excluiu .hist-ico { background: #fdecec; } .acao-criou .hist-ico { background: #e9f6ee; } .acao-editou .hist-ico, .acao-status .hist-ico { background: #eef2fb; }
.hist-txt { line-height: 1.5; font-size: .93rem; }
.hist-txt small { display: block; }
.hist-quem { font-weight: 700; color: var(--navy); text-decoration: none; }
.hist-quem:hover { text-decoration: underline; }
.hist-item-t { font-weight: 600; color: var(--navy); }
a.hist-item-t { text-decoration: underline; text-decoration-color: rgba(201,164,92,.6); text-underline-offset: 3px; }
.hist-tag { font-size: .76rem; background: #f1efe9; border-radius: 99px; padding: 1px 8px; color: var(--muted); margin-left: 4px; white-space: nowrap; }
.hist-pag { display: flex; justify-content: center; align-items: center; gap: 14px; margin-top: 14px; }
@media (max-width: 700px) { .hist-stats { grid-template-columns: 1fr; } .hist-filtros .hist-busca { grid-column: auto; } }
.hist-filtros .row-btns { display: flex; gap: 8px; flex-wrap: nowrap; align-items: center; }
.hist-filtros .row-btns .btn { white-space: nowrap; }
.od-migra { margin-top: 18px; }
.od-migra hr { border: 0; border-top: 1px solid #eee; margin: 18px 0 14px; }
.od-migra h3 { margin: 0 0 8px; font-size: 1rem; }
.od-prog { margin: 10px 0 12px; max-width: 520px; }
.od-arvore > div { white-space: normal; }
.od-rem-lista { display: grid; gap: 8px; }
.od-rem { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; background: #f7f5f0; }
.od-rem small { display: block; margin-top: 2px; }

/* Diálogo de cadastro rápido */
.dlg { border: 0; border-radius: 16px; padding: 22px 24px; width: min(460px, calc(100vw - 32px)); box-shadow: 0 20px 60px rgba(2,25,57,.25); }
.dlg::backdrop { background: rgba(2,25,57,.45); }
.dlg h2 { margin: 0 0 12px; }
.item-excluir { margin-top: 28px; }

/* Feriados e datas no calendário */
:root { --c-fer: #dc2626; --c-fac: #f59e0b; --c-com: #2f7fd8; --c-imo: #c9a45c; }
.cal-d { position: relative; }
.cal-d.has:not(.has-ev) { background: #f7f6f4; color: var(--text); }
.cal-d.has:not(.has-ev):hover { background: #eeebe4; }
.cal-d.is-fer:not(.has-ev) { background: #fdecec; color: #b91c1c; }
.cal-d.is-fac:not(.has-ev) { background: #fff4e0; color: #a15c07; }
.cal-d.is-fer.has-ev span { text-decoration: underline; text-decoration-color: #f87171; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.cal-mk { position: absolute; bottom: 5px; left: 0; right: 0; display: flex; justify-content: center; gap: 3px; }
.cal-mk u, .cal-leg-i u { display: block; width: 7px; height: 7px; border-radius: 50%; box-shadow: 0 0 0 1.5px #fff; }
.cal-fer { --c: var(--c-fer); } .cal-fac { --c: var(--c-fac); } .cal-com { --c: var(--c-com); } .cal-imo { --c: var(--c-imo); }
.cal-mk u, .cal-leg-i u { background: var(--c); }
.cal-d.has-ev .cal-mk { bottom: 3px; }
.cal-mk u[hidden], .esp[hidden], .esp-linha[hidden] { display: none !important; }
.cal-leg { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.cal-leg-i { display: inline-flex; align-items: center; gap: 6px; border: 1px solid #e7e3da; background: #fff; border-radius: 99px; padding: 4px 10px; font-size: .78rem; cursor: pointer; color: var(--text); }
.cal-leg-i:not(.on) { opacity: .4; text-decoration: line-through; }
.esp { border-left: 4px solid var(--c); background: color-mix(in srgb, var(--c) 9%, #fff); border-radius: 8px; padding: 8px 12px; margin: 0 0 8px; font-size: .92rem; }
.esp .esp-rot { display: block; font-size: .76rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--c); }
.cal-fac.esp .esp-rot { color: #a15c07; } .cal-imo.esp .esp-rot { color: #9a7a2e; }
.esp-mes { margin-top: 20px; }
.esp-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px; }
.esp-linha { display: flex; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 10px; text-decoration: none; color: var(--text); border-left: 4px solid var(--c); background: color-mix(in srgb, var(--c) 7%, #fff); }
.esp-linha:hover { background: color-mix(in srgb, var(--c) 14%, #fff); }
.esp-linha.past { opacity: .55; }
.esp-dia { display: flex; flex-direction: column; align-items: center; min-width: 38px; }
.esp-dia b { font-size: 1.15rem; line-height: 1; color: var(--navy); }
.esp-dia small { font-size: .76rem; text-transform: uppercase; color: var(--muted, #6b7280); }
.esp-txt { display: flex; flex-direction: column; line-height: 1.3; }
.esp-txt small { color: var(--muted, #6b7280); font-size: .78rem; }
.home-esp { display: grid; gap: 6px; margin-top: 12px; padding-top: 12px; border-top: 1px solid #eee; }
.emp-lanc { display: block; margin-top: 6px; font-size: .82rem; font-weight: 700; color: var(--gold-txt); }
.hero-lanc { margin: 8px 0 4px; font-weight: 700; color: var(--gold); }
.campo-lanc[hidden] { display: none !important; }
:root { --c-lan: #7c3aed; }
.cal-lan { --c: var(--c-lan); }
.cal-lan.esp .esp-rot { color: #6d28d9; }
.emp-estagio.lancado { background: #e9f6ee; color: #166534; }
.emp-estagio.esgotado { background: #b91c1c; color: #fff; }

/* Visualizador de anexos (chat) */
.vw { position: fixed; inset: 0; z-index: 1000; background: rgba(2,12,28,.92); display: flex; flex-direction: column; }
.vw[hidden] { display: none; }
.vw-top { display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: rgba(2,25,57,.95); color: #fff; }
.vw-ico { font-size: 1.3rem; }
.vw-tit { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.vw-tit strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.vw-tit small { color: rgba(255,255,255,.65); font-size: .78rem; }
.vw-x { background: rgba(255,255,255,.12); border: 0; color: #fff; width: 38px; height: 38px; border-radius: 10px; font-size: 1.1rem; cursor: pointer; }
.vw-x:hover { background: rgba(255,255,255,.22); }
.vw-body { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; padding: 16px; overflow: auto; }
.vw-body img, .vw-body video { max-width: 100%; max-height: 100%; border-radius: 6px; box-shadow: 0 10px 40px rgba(0,0,0,.4); }
.vw-body iframe { width: min(1100px, 100%); height: 100%; border: 0; border-radius: 6px; background: #fff; }
.vw-pdf { width: min(900px, 100%); align-self: flex-start; display: grid; gap: 10px; }
.vw-pdf canvas { background: #fff; border-radius: 4px; }
.vw-msg { color: rgba(255,255,255,.8); text-align: center; }
.vw-sem { background: #fff; border-radius: 16px; padding: 28px 24px; max-width: 380px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.vw-sem .vw-msg { color: var(--muted, #6b7280); font-size: .9rem; }
.vw-big { width: 64px; height: 64px; border-radius: 14px; background: var(--navy); color: var(--gold); display: flex; align-items: center; justify-content: center; font-weight: 800; }
.m-img, .m-file { cursor: zoom-in; }
.m-file { cursor: pointer; }
.m-dl { display: inline-block; font-size: .78rem; margin-top: 4px; }
@media (max-width: 600px) { .vw-top .btn { padding: 6px 10px; } .vw-body { padding: 8px; } }
/* Topo do empreendimento sem a capa atrás do texto (a capa fica só no card) */
.emp-hero.sem-img { min-height: 0; background: linear-gradient(120deg, var(--navy) 0%, #0b2b57 100%); }
.emp-hero.sem-img::before { display: none; }

/* ===== Pastas do empreendimento (navegação + modo organizar) ===== */
.ep { scroll-margin-top: 90px; border-radius: 18px; transition: outline-color .15s; outline: 3px dashed transparent; outline-offset: 6px; }
.ep.alvo { outline-color: var(--gold); }
.ep-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.ep-trilha { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; font-family: var(--head); font-size: 1.25rem; font-weight: 700; }
.ep-tr { color: var(--navy); text-decoration: none; padding: 3px 10px; border-radius: 10px; border: 2px dashed transparent; }
.ep-tr:not(.on) { color: var(--muted); font-weight: 600; }
.ep-tr:hover { background: #ebe8e3; color: var(--navy); }
.ep-tr.alvo { border-color: var(--gold); background: var(--gold-soft); }
.ep-sep { color: #b8b3ab; }
body:not(.ep-org) .ep-so-org { display: none !important; }
.ep-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; background: #fbf7ec; border: 1.5px dashed #e3c983; border-radius: 14px; padding: 12px 14px; margin-bottom: 12px; }
.ep-bar .ep-dica { flex-basis: 100%; margin: 2px 0 0; }
.ep-up-btn { cursor: pointer; }
.ep-del-txt { color: #b42318 !important; }
.ep-quem { margin: -2px 0 14px; color: var(--muted); }
.ep-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 16px; margin-bottom: 22px; }
.ep-pasta { position: relative; display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; box-shadow: var(--shadow); text-decoration: none; color: inherit; transition: transform .15s, box-shadow .15s, outline-color .15s; outline: 3px dashed transparent; outline-offset: 2px; }
.ep-pasta:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); }
.ep-pasta.alvo { outline-color: var(--gold); transform: scale(1.03); }
.ep-capa { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 16/10; background: linear-gradient(135deg, #eef2f8, #e4e9f1); overflow: hidden; }
.ep-capa img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ep-ico { font-size: 2.6rem; filter: saturate(.9); }
.ep-novo { position: absolute; left: 10px; top: 10px; }
.ep-txt { display: flex; flex-direction: column; gap: 2px; padding: 11px 14px 13px; }
.ep-txt strong { font-family: var(--head); color: var(--navy); font-size: 1rem; line-height: 1.25; }
.ep-txt small { color: var(--muted); font-size: .78rem; }
.ep-acc { color: #7a5500 !important; }
.ep-menu { position: absolute; top: 8px; right: 8px; display: flex; gap: 4px; }
.ep-mini { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 99px; border: 0; background: rgba(255,255,255,.95); box-shadow: 0 1px 4px rgba(2,25,57,.2); cursor: pointer; font-size: .85rem; text-decoration: none; color: var(--navy); padding: 0; }
.ep-mini:hover { background: var(--gold-soft); }
.ep-mini.del:hover { background: #fdecec; }
.arrastando { opacity: .4; }
body.ep-org [draggable="true"] { cursor: grab; }
.ep-fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 14px; margin-bottom: 20px; }
.ep-foto { position: relative; }
.ep-foto-btn { all: unset; box-sizing: border-box; width: 100%; cursor: zoom-in; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; box-shadow: var(--shadow); display: flex; flex-direction: column; transition: transform .15s, box-shadow .15s; }
.ep-foto-btn:hover { transform: translateY(-2px); box-shadow: var(--shadow-hover); }
.ep-foto-btn:focus-visible { outline: 3px solid var(--gold); }
.ep-foto-btn img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; background: #e4e1dd; }
.ep-foto-btn span { padding: 8px 11px 10px; display: flex; flex-direction: column; font-size: .82rem; font-weight: 600; color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ep-foto-btn small { color: var(--muted); font-weight: 400; font-size: .76rem; }
.ep-it { position: relative; }
.ep-it-org { display: none; align-items: center; gap: 4px; }
body.ep-org .ep-it-org { display: inline-flex; }
.ep-it-org form { margin: 0; display: inline; }
.ep-foto .ep-it-org, .card.ep-it .ep-it-org { position: absolute; top: 8px; left: 8px; z-index: 2; }
.card.ep-it .ep-it-org { left: auto; right: 10px; }
.ep-sel { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 99px; background: rgba(255,255,255,.95); box-shadow: 0 1px 4px rgba(2,25,57,.2); cursor: pointer; margin: 0; }
.ep-sel input { width: 17px; height: 17px; margin: 0; accent-color: #3b6fc4; }
.ep-it.sel .ep-foto-btn, .file-row.ep-it.sel, .card.ep-it.sel { outline: 3px solid #3b6fc4; outline-offset: 1px; }
.ep-drop { margin-top: 14px; border: 2px dashed #d9cfae; border-radius: 14px; padding: 22px; text-align: center; color: var(--muted); background: #fffdf7; }
.ep-selbar { position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 60; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: var(--navy); color: #fff; padding: 10px 14px; border-radius: 16px; box-shadow: 0 12px 40px rgba(2,25,57,.35); max-width: calc(100vw - 24px); }
.ep-selbar select { max-width: 240px; border-radius: 10px; padding: 7px 10px; border: 0; }
.ep-selbar .linkbtn { color: #cdd6e4; }
.ep-prog { position: fixed; right: 18px; bottom: 18px; z-index: 70; background: #fff; border-radius: 14px; box-shadow: 0 12px 40px rgba(2,25,57,.25); padding: 12px 16px; width: 260px; display: flex; flex-direction: column; gap: 8px; font-weight: 600; color: var(--navy); }
.ep-prog i { display: block; height: 8px; background: #eee9df; border-radius: 99px; overflow: hidden; }
.ep-prog b { display: block; height: 100%; width: 0; background: var(--gold); transition: width .2s; }
.ep-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 80; background: var(--ok-bg); color: var(--ok); font-weight: 600; padding: 10px 18px; border-radius: 12px; box-shadow: 0 8px 26px rgba(2,25,57,.18); max-width: calc(100vw - 32px); }
.ep-toast.erro { background: var(--err-bg); color: var(--err); }
.ep-acc-box { background: #f8f7f5; border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; }
.ep-acc-box .pa-chips, .dlg [data-escolha] .pa-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ep-pessoas { margin-top: 10px; }
.ep-pessoas summary { cursor: pointer; }
.ep-pessoas .pa-chips { max-height: 220px; overflow: auto; padding: 4px 0; }
.ep-busca-p { margin: 8px 0 4px; width: 100%; }
.pa-chip[hidden] { display: none !important; }
.dlg [data-escolha] { display: flex; flex-direction: column; gap: 6px; }
@media (max-width: 640px) {
  .ep-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .ep-fotos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .ep-trilha { font-size: 1.05rem; }
  .ep-menu { top: 6px; right: 6px; }
  .ep-mini { width: 28px; height: 28px; }
  .ep-prog { left: 12px; right: 12px; width: auto; }
}

/* ===== Pastas numa página só + modo organizar simples ===== */
.emp-sub-in { padding-left: 14px; border-left: 3px solid #ebe6dc; }
.emp-sub-in .emp-sub-title { font-size: .76rem; }
.po-ligar { display: flex; justify-content: flex-end; margin: 16px 0 -6px; }
.po-topo { position: sticky; top: calc(var(--topo) + 8px); z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; background: #fbf7ec; border: 1.5px solid #e9d49b; border-radius: 16px; padding: 12px 16px; margin: 18px 0 6px; box-shadow: var(--shadow); }
.po-topo > div:first-child { display: flex; flex-direction: column; gap: 2px; font-size: .86rem; color: var(--muted); max-width: 720px; }
.po-topo strong { color: var(--navy); font-size: 1rem; font-family: var(--head); }
.po-topo-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.po-sec { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 16px 18px 6px; box-shadow: var(--shadow); }
.po-sec .emp-sec-title { margin-bottom: 8px; }
.po-sub { border: 1px dashed #dcd6cb; border-radius: 14px; padding: 4px 14px 8px; margin: 12px 0; background: #fcfbf9; }
.po-sub .po-sub { background: #fff; }
.po-sub > .emp-sub-title { margin-top: 10px; font-size: .82rem; color: var(--navy); text-transform: none; letter-spacing: 0; font-family: var(--head); }
.po-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 0 0 12px; }
.po-quem { font-size: .8rem; color: #7a5500; background: #fbf3dd; border-radius: 99px; padding: 4px 10px; }
.po-quem small { color: var(--muted); }
.po-btns { display: flex; gap: 6px; align-items: center; }
.po-mais { position: relative; }
.po-mais > summary { list-style: none; cursor: pointer; }
.po-mais > summary::-webkit-details-marker { display: none; }
.po-menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: 40; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 36px rgba(2,25,57,.18); padding: 6px; min-width: 270px; display: flex; flex-direction: column; }
.po-menu button { all: unset; cursor: pointer; padding: 9px 12px; border-radius: 8px; font-size: .88rem; color: var(--text); }
.po-menu button:hover { background: #f3f0ea; }
.po-menu button.del { color: #b42318; }
.po-vazia { font-size: .84rem; color: var(--muted); border: 2px dashed #e3dccb; border-radius: 12px; padding: 14px; text-align: center; margin: 0 0 10px; }
.po-alvo { outline: 3px dashed var(--gold) !important; outline-offset: 3px; background: #fffaf0 !important; }
.po-destaque { animation: poPisca 2.4s ease; }
@keyframes poPisca { 0%, 60% { box-shadow: 0 0 0 4px var(--gold); } 100% { box-shadow: none; } }
.emp-sec[id^="p-"], .emp-sub[id^="p-"] { scroll-margin-top: 150px; }
.file-row .ep-it-org { margin-right: 4px; }
@media (max-width: 640px) {
  .po-topo { top: 60px; padding: 10px 12px; }
  .po-topo > div:first-child span { display: none; }
  .po-sec { padding: 12px 12px 4px; }
  .po-menu { min-width: 240px; }
}
.lb-thumb .pill { align-self: flex-start; }
body.ep-org .ep-lista > [data-mat].arrastando, body.ep-org .ep-fotos > [data-mat].arrastando { opacity: .35; }
.ep-grip { cursor: grab; touch-action: none; user-select: none; font-size: 1rem; }
body.ep-ordenando, body.ep-ordenando * { cursor: grabbing !important; user-select: none; }
body.ep-ordenando .ep-foto-btn, body.ep-ordenando .file-row { pointer-events: auto; }

/* ===== Online agora (painel da administração) ===== */
.online .card-head h2 { display: flex; align-items: center; gap: 8px; margin: 0; }
.on-dot { width: 10px; height: 10px; border-radius: 99px; background: #22a55a; box-shadow: 0 0 0 4px rgba(34,165,90,.18); animation: onPulse 2s infinite; }
@keyframes onPulse { 50% { box-shadow: 0 0 0 7px rgba(34,165,90,.05); } }
.on-n { background: #e6f4ea; color: #1d6b3a; border-radius: 99px; padding: 1px 10px; font-size: .85rem; }
.on-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 8px 16px; margin-top: 8px; }
.on-p { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; background: #f8f7f5; }
.on-p.on { background: #f1f9f3; }
.on-ava { position: relative; flex: 0 0 38px; width: 38px; height: 38px; border-radius: 99px; background: var(--navy); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; }
.on-ava img { width: 100%; height: 100%; object-fit: cover; border-radius: 99px; }
.on-ava i { position: absolute; right: -1px; bottom: -1px; width: 12px; height: 12px; border-radius: 99px; border: 2px solid #fff; background: #b8b3ab; }
.on-p.on .on-ava i { background: #22a55a; }
.on-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.on-txt strong { color: var(--navy); font-size: .92rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.on-txt small, .on-onde small { color: var(--muted); font-size: .76rem; }
.on-onde { text-align: right; font-size: .8rem; max-width: 45%; overflow: hidden; text-overflow: ellipsis; }
.on-onde a { color: var(--navy-3); }
.on-h3 { font-size: .85rem; margin: 16px 0 0; color: var(--navy); }

/* ===== Capa: imagem inteira com fundo desfocado + editor ===== */
.cover.capa-inteira::before { content: ""; position: absolute; inset: -24px; background: var(--capa) center / cover no-repeat; filter: blur(18px) brightness(.75) saturate(1.1); }
.cover.capa-inteira img { position: relative; object-fit: contain !important; object-position: center !important; }
a:hover > .cover.capa-inteira img, .emp-card:hover .cover.capa-inteira img { transform: none; }
.capa-ed { display: flex; flex-direction: column; gap: 10px; }
.capa-ed-box { display: flex; gap: 16px; align-items: flex-start; flex-wrap: wrap; }
.capa-ed-prev { width: 280px; max-width: 100%; border-radius: 14px; cursor: grab; touch-action: none; user-select: none; box-shadow: var(--shadow); }
.capa-ed-prev.capa-inteira { cursor: default; }
.capa-ed-prev.arrastando-capa { cursor: grabbing; }
.capa-ed-prev img { pointer-events: none; transition: none !important; }
.capa-ed-opc { flex: 1; min-width: 220px; display: flex; flex-direction: column; gap: 8px; }
.capa-ed-opc p { margin: 0; }

/* ===== Janela de edição (pop-up com a Administração por cima da página) ===== */
.janela { position: fixed; inset: 0; z-index: 90; background: rgba(2,25,57,.5); display: flex; align-items: center; justify-content: center; padding: 3vh 2vw; animation: janIn .15s ease; }
@keyframes janIn { from { opacity: 0; } }
.janela-box { position: relative; width: min(1120px, 100%); height: 94vh; background: var(--bg); border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 30px 80px rgba(2,25,57,.4); }
.janela-top { display: flex; align-items: center; gap: 12px; padding: 12px 14px 12px 20px; background: var(--navy); color: #fff; }
.janela-top strong { flex: 1; font-family: var(--head); font-size: 1.05rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.janela-full { color: #cdd6e4; font-size: .8rem; text-decoration: none; white-space: nowrap; }
.janela-full:hover { color: var(--gold); }
.janela-x { border: 0; background: rgba(255,255,255,.12); color: #fff; width: 34px; height: 34px; border-radius: 99px; font-size: 1rem; cursor: pointer; }
.janela-x:hover { background: rgba(255,255,255,.25); }
.janela iframe { flex: 1; width: 100%; border: 0; background: var(--bg); }
.janela-load { position: absolute; left: 0; right: 0; top: 58px; height: 3px; overflow: hidden; }
.janela-load span { display: block; width: 30%; height: 100%; background: var(--gold); animation: janLoad 1s infinite ease-in-out; }
@keyframes janLoad { from { transform: translateX(-100%); } to { transform: translateX(400%); } }
body.em-janela main.wrap { padding-top: 18px; padding-bottom: 30px; }
body.em-janela .crumb { display: none; }
@media (max-width: 640px) {
  .janela { padding: 0; }
  .janela-box { height: 100%; border-radius: 0; }
  .janela-full { display: none; }
}

/* ===== Telas de edição simplificadas: abas + um "Salvar" só ===== */
.ed-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.ed-head h1 { margin: 0 0 2px; }
.ed-head .ed-sub { margin: 0; color: var(--muted); font-size: .9rem; }
.ed-head .ed-acts { display: flex; gap: 8px; flex-wrap: wrap; }
.abas { display: flex; gap: 4px; border-bottom: 2px solid var(--line); margin: 0 0 18px; overflow-x: auto; scrollbar-width: none; }
.abas::-webkit-scrollbar { display: none; }
.abas button { appearance: none; background: none; border: 0; border-bottom: 3px solid transparent; margin-bottom: -2px; padding: 12px 16px; font: inherit; font-weight: 600; font-size: .95rem; color: #5a6578; cursor: pointer; white-space: nowrap; min-height: 46px; }
.abas button:hover { color: var(--navy); }
.abas button.on { color: var(--navy); border-bottom-color: var(--gold); }
.abas button .n { display: inline-block; min-width: 20px; padding: 0 6px; margin-left: 4px; border-radius: 99px; background: var(--accent); font-size: .78rem; color: var(--navy); }
.painel-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; box-shadow: var(--shadow); max-width: 760px; }
.painel-card.largo { max-width: none; }
.painel-card > h2:first-child { margin-top: 0; }
.painel-intro { margin: -4px 0 16px; color: #5a6578; font-size: .92rem; }
.mais-opcoes { border-top: 1px solid var(--line); padding-top: 12px; }
.mais-opcoes > summary { cursor: pointer; font-weight: 600; color: var(--navy-3); list-style: none; padding: 8px 0; min-height: 40px; display: flex; align-items: center; gap: 6px; }
.mais-opcoes > summary::-webkit-details-marker { display: none; }
.mais-opcoes > summary::before { content: "▸"; transition: transform .15s; }
.mais-opcoes[open] > summary::before { transform: rotate(90deg); }
.mais-opcoes > .form, .mais-opcoes > div { margin-top: 8px; }
.salvar-fixo { position: sticky; bottom: 14px; z-index: 15; display: flex; align-items: center; gap: 10px; justify-content: flex-end; margin-top: 18px; padding: 10px 12px 10px 18px; background: var(--surface); border: 1px solid var(--line); border-radius: 99px; box-shadow: 0 8px 28px rgba(2,25,57,.12); max-width: 760px; }
.salvar-fixo.largo { max-width: none; }
.salvar-fixo .sf-txt { margin-right: auto; color: #5a6578; font-size: .9rem; }
.salvar-fixo [data-desfazer] { display: none; }
.salvar-fixo.sujo { border-color: var(--gold); background: #fffaf0; }
.salvar-fixo.sujo .sf-txt { color: var(--navy); font-weight: 600; }
.salvar-fixo.sujo .sf-txt::before { content: "● "; color: var(--gold-txt); }
.salvar-fixo.sujo [data-desfazer] { display: inline-flex; }
.salvar-fixo .btn { min-height: 44px; }
.salvar-fixo:not(.sujo) .btn[type=submit] { opacity: .55; }
/* contatos em lista compacta */
.ct-lista { display: flex; flex-direction: column; gap: 8px; }
.ct-item { border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.ct-item > summary { list-style: none; cursor: pointer; padding: 12px 16px; display: flex; align-items: center; gap: 10px; min-height: 52px; }
.ct-item > summary::-webkit-details-marker { display: none; }
.ct-item > summary .ct-nome { font-weight: 700; color: var(--navy); }
.ct-item > summary .ct-info { color: #5a6578; font-size: .88rem; }
.ct-item > summary .ct-ed { margin-left: auto; font-size: .85rem; color: var(--navy-3); font-weight: 600; }
.ct-item[open] > summary .ct-ed { visibility: hidden; }
.ct-item .form { padding: 0 16px 16px; }
.ct-item.removido { opacity: .5; }
.ct-item.removido .ct-nome { text-decoration: line-through; }
.ct-rem { align-self: flex-start; background: none; border: 0; color: var(--err); font: inherit; font-weight: 600; font-size: .88rem; cursor: pointer; padding: 8px 0; }
.ct-novo { align-self: flex-start; }
.zona-excluir { margin-top: 28px; max-width: 760px; }
.zona-excluir > summary { cursor: pointer; color: var(--err); font-weight: 600; font-size: .9rem; padding: 8px 0; list-style: none; }
.zona-excluir > summary::-webkit-details-marker { display: none; }
.zona-excluir .card { margin-top: 8px; }
.mat-resumo { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.mat-resumo .mr-num { font-family: var(--head); font-size: 1.6rem; font-weight: 700; color: var(--navy); line-height: 1; }
@media (max-width: 640px) {
  .painel-card { padding: 18px; }
  .salvar-fixo { bottom: 8px; padding: 8px 8px 8px 14px; }
  .salvar-fixo .sf-txt { font-size: .82rem; }
}
.gp-linha { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 16px; min-height: 52px; }
.gp-linha a.ct-nome { text-decoration: none; }
.gp-linha a.ct-nome:hover { text-decoration: underline; }
.gp-tirar { display: inline-flex; align-items: center; gap: 6px; font-size: .86rem; font-weight: 600; color: #5a6578; cursor: pointer; padding: 6px 10px; border-radius: 99px; border: 1px solid var(--line); }
.gp-tirar input { width: 16px; height: 16px; accent-color: var(--err); }
.gp-tirar:has(input:checked) { color: var(--err); border-color: #f3c7c8; background: var(--err-bg); }
.ct-item.removido .ct-nome { text-decoration: line-through; }
.pa-emp-body.acc-list { padding: 4px 14px 8px; }
.cargo-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.cargo-grade .card { margin: 0; display: flex; flex-direction: column; }
.cargo-grade .row-btns { margin-top: auto; padding-top: 12px; }
.cargo-resumo { margin: 0; font-size: .9rem; color: #3b4658; }
.btn.danger-txt { color: var(--err); }
.perm-tab { width: 100%; border-collapse: collapse; margin: 6px 0 4px; }
.perm-tab th, .perm-tab td { padding: 6px 8px; border-bottom: 1px solid var(--line); }
.perm-tab thead th { font-size: .8rem; font-weight: 600; color: #5a6578; text-align: center; }
.perm-tab thead th:first-child { text-align: left; }
.perm-tab tbody th { text-align: left; font-weight: 600; color: var(--navy); font-size: .92rem; }
.perm-tab td { text-align: center; width: 90px; }
.perm-tab .pt-box { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 40px; border-radius: 10px; cursor: pointer; }
.perm-tab .pt-box:hover { background: #f7f5f2; }
.perm-tab .pt-box input { width: 20px; height: 20px; }
.perm-tab .pt-box.trava { opacity: .4; cursor: not-allowed; }
.perm-tab tbody tr:hover { background: #fbfaf8; }
.perm-sub { display: block; margin: 10px 0 4px; color: var(--navy); }
@media (max-width: 560px) { .perm-tab td { width: 56px; } .perm-tab tbody th { font-size: .85rem; } }

/* ===== Legibilidade e toque (out/2026) ===== */
.crumb a { display: inline-flex; align-items: center; min-height: 36px; padding: 4px 2px; }
input[type=checkbox], input[type=radio] { min-width: 18px; min-height: 18px; }
.linkbtn { padding: 8px 6px; font-size: .85rem; min-height: 36px; }
details > summary { min-height: 40px; }
.car-dots { gap: 2px; }
.car-dots button { width: 8px; height: 8px; box-sizing: content-box; padding: 0; border: 10px solid transparent; background-clip: padding-box; }
.car-dots button.on { width: 22px; }
.btn.small { min-height: 38px; }
/* rótulo com "(opcional)" na mesma linha */
.form label:not(.check):not(.perm-opt):not(.pa-chip):not(.gp-tirar):not(.pt-box):not(.tr-tirar) { flex-flow: row wrap; align-items: baseline; column-gap: 6px; }
.form label:not(.check):not(.perm-opt):not(.pa-chip):not(.gp-tirar):not(.pt-box):not(.tr-tirar) > :is(input, select, textarea, div, p, .seg, .auth-field) { flex: 1 0 100%; width: 100%; }
.hero .eyebrow, .emp-hero .eyebrow { color: var(--gold); }
.car-dots button.on { background-clip: padding-box; }
.gp-linha .ct-info { color: #5a6578; font-size: .88rem; margin-left: 4px; }
.doc-pasta .ct-item { margin-top: 8px; } .doc-item summary .pill { flex: 0 0 auto; }
.salvar-fixo .sf-txt { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gp-tirar { white-space: nowrap; flex: 0 0 auto; }
@media (max-width: 640px) {
  .salvar-fixo:not(.sujo) .sf-txt { visibility: hidden; }
  .salvar-fixo .btn { padding: 10px 16px; }
  .ed-head .ed-acts { width: 100%; }
}
/* capa sem imagem: fundo azul com o nome */
.cover.no-img .cn { font-family: var(--head); color: #fff; font-size: 1.45rem; font-weight: 700; line-height: 1.15; text-align: center; padding: 0 20px; letter-spacing: -.01em; }
.cover.no-img.com-nome .cn::after { content: ""; display: block; width: 44px; height: 3px; background: var(--gold); margin: 12px auto 0; border-radius: 3px; }
.capa-ed-tit { display: block; color: var(--navy); font-size: .88rem; margin-bottom: 8px; }
.capa-ed-seg { margin-bottom: 12px; }
.cover.no-img.capa-sem .cn { font-size: 1rem; font-weight: 600; opacity: .9; }
.capa-ed-file { margin-bottom: 6px; }
.pasta-capa { display: flex; flex-direction: column; gap: 6px; } .pasta-capa .seg { align-self: flex-start; }

/* =====================================================================
   REFINO VISUAL (out/2026) — mesma marca, menos peso, mais clareza
   Fundo frio que conversa com o marinho; uma superfície só (branca, linha fina);
   botões com canto de 10px (ações) e pílulas só para filtros/etiquetas;
   dourado só para o que está ativo ou pede atenção.
   ===================================================================== */
:root {
  --bg: #f2f4f7;
  --line: #e2e6ec;
  --text: #101828;
  --radius: 14px;
  --radius-sm: 10px;
  --shadow: none;
  --shadow-hover: 0 6px 20px rgba(2, 25, 57, .08);
  --tile: #edf1f7;
}
body { font-size: 15px; line-height: 1.6; }
h1, h2, h3 { font-weight: 600; letter-spacing: -.02em; }
h1 { font-size: 1.85rem; line-height: 1.15; }
h2 { font-size: 1.2rem; }
h3 { font-size: 1.02rem; }
main.wrap { padding-top: 32px; padding-bottom: 56px; }

/* topo */

/* rótulos e cabeçalhos de página */
.eyebrow { text-transform: none; letter-spacing: 0; font-family: Inter, sans-serif; font-size: .9rem; font-weight: 500; color: var(--muted); }
.page-head { margin-bottom: 24px; }
.page-head h1 { margin: 2px 0 4px; }
.sec-h { font-size: 1.15rem; }

/* superfícies */
.card, .xcard, .emp-card, .quick-link, .painel-card { box-shadow: none; border-color: var(--line); }
.card { border-radius: var(--radius); padding: 22px 24px; }
.xcard:hover, .emp-card:hover, .quick-link:hover { transform: none; box-shadow: var(--shadow-hover); border-color: #cfd6e0; }
.emp-card:hover .emp-cover img { transform: none; }
.empty { border-radius: var(--radius); border-color: #d3d9e2; }

/* botões: ações com canto de 10px; filtros e etiquetas continuam pílula */
.btn { border-radius: 10px; padding: 10px 18px; font-weight: 600; min-height: 42px; }
.btn.small { border-radius: 8px; padding: 6px 12px; min-height: 36px; }
.btn.ghost { border-color: #d3d9e2; background: #fff; }
.btn.ghost:hover { background: #f6f8fb; border-color: #b9c3d1; }
/* no topo azul do empreendimento o botão contorno continua transparente com texto branco */
.emp-hero .btn.ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); }
.emp-hero .btn.ghost:hover { background: rgba(255,255,255,.12); border-color: #fff; }
.btn.gold:hover { background: #ddb24c; }
.salvar-fixo { border-radius: 14px; }
.search input, input[type=search] { border-radius: 10px; }
input, select, textarea { border-radius: 10px; }

/* datas (agenda, avisos): bloco claro em vez de bloco marinho cheio */
.ev-date { background: var(--tile); color: var(--navy); border-radius: 10px; }
.ev-date small { color: var(--gold-txt); }
.av-date { background: var(--tile); border-radius: 10px; }
.av-row.unread .av-date { background: var(--tile); color: var(--navy); }
.av-row.unread .av-date small { color: var(--gold-txt); }
.av-row:hover { background: #f6f8fb; }

/* início: saudação sem bloco pesado — o destaque fica para o carrossel */
section.hero { background: none; border-radius: 0; padding: 0 0 6px; margin-bottom: 22px; box-shadow: none; }
section.hero::before, section.hero::after { display: none; }
section.hero h1 { color: var(--navy); font-size: 2rem; margin: 2px 0 4px; }
section.hero p { color: var(--muted); }
section.hero .eyebrow { color: var(--muted); }
.quick-link { border-radius: 12px; padding: 8px 14px 8px 8px; font-size: .9rem; }
.ql-ico { border-radius: 9px; flex-basis: 40px; height: 40px; }

/* rodapé discreto */
.foot { background: transparent; color: var(--muted); border-top: 1px solid var(--line); }

/* pílulas */
.pill { font-weight: 600; }
.pill.novo { background: var(--gold-soft); color: #7a5500; }

/* abas e lista de pastas no admin acompanham o novo canto */
.ct-item, .pa-emp { border-radius: 10px; }
.admin-tabs a, .admin-side a { border-radius: 8px; }

/* um sinal de "não lido" só (a etiqueta), sem a bolinha repetida no título */
.mural-item.unread strong::before { display: none; }
.mural-item.unread strong { font-weight: 700; }
/* títulos de grupo em texto normal, sem caixa-alta espaçada */
.av-gtitle { text-transform: none; letter-spacing: 0; font-size: .95rem; font-weight: 600; color: var(--navy); font-family: var(--head); margin: 0 0 10px 2px; }
.emp-sub-title { text-transform: none; letter-spacing: 0; font-size: .92rem; font-weight: 600; color: var(--navy); font-family: var(--head); }
.emp-sub-in .emp-sub-title { font-size: .88rem; }
.table th { text-transform: none; letter-spacing: 0; font-size: .82rem; color: var(--muted); }
.admin-side-sec, .c-label, .notif-sec, .hist-dia { text-transform: none; letter-spacing: 0; font-size: .82rem; }
/* a etiqueta de estágio usa a classe "hero" e herdava o anel decorativo da saudação */
.emp-estagio.hero::before, .emp-estagio.hero::after { display: none; }
.emp-hero { border-radius: 18px; }
.proto-faixa { background: #fff4d6; color: #5c4300; text-align: center; font-size: .85rem; font-weight: 600; padding: 6px 12px; border-bottom: 1px solid #ecd9a6; }

/* ===== Página "Sem acesso" (link aberto por quem não tem permissão) ===== */
.empty.sem-acesso { max-width: 460px; margin: 48px auto; padding: 40px 28px; border-style: solid; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.sem-acesso .sa-ico { width: 56px; height: 56px; border-radius: 50%; background: var(--tile, #edf1f7); display: grid; place-items: center; font-size: 1.5rem; margin-bottom: 4px; }
.sem-acesso strong { color: var(--navy, #021939); font-size: 1.08rem; }
.sem-acesso p { margin: 0 0 8px; }

/* ===== Treinamentos ===== */
.tr-sec { margin-bottom: 30px; }
.tr-card .xcard-body { gap: 6px; }
.tr-card-foot { margin-top: auto; padding-top: 12px; display: flex; flex-direction: column; gap: 6px; }
.tr-bar { display: block; height: 8px; background: #e9edf3; border-radius: 99px; overflow: hidden; }
.tr-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--gold), #e8c46a); border-radius: 99px; transition: width .2s; }
.tr-bar.grande { height: 12px; margin: 10px 0 8px; }
.tr-num { font-size: .84rem; color: var(--muted); }
.tr-num b { color: var(--navy); font-size: .95rem; }
.tr-desc { margin-bottom: 18px; }
.tr-meu { margin-bottom: 18px; }
.tr-meu-top { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.tr-meu-top strong { font-family: var(--head); color: var(--navy); font-size: 1.05rem; }
.tr-meu p { margin: 0; }

/* lista de etapas */
.tr-etapas { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.tr-etapa details { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm); box-shadow: var(--shadow); }
.tr-etapa summary { list-style: none; display: flex; align-items: center; gap: 14px; padding: 14px 16px; cursor: pointer; }
.tr-etapa summary::-webkit-details-marker { display: none; }
.tr-n { flex: 0 0 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: #e9edf3; color: var(--navy); font-weight: 700; font-size: .9rem; font-family: var(--head); }
.tr-etapa.feita .tr-n { background: var(--ok); color: #fff; }
.tr-et-tit { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.tr-et-tit strong { color: var(--navy); font-family: var(--head); overflow-wrap: anywhere; }
.tr-et-tit small { color: var(--muted); font-size: .8rem; }
.tr-etapa.feita .tr-et-tit small { color: var(--ok); font-weight: 600; }
.tr-abre { width: 10px; height: 10px; border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted); transform: rotate(45deg); margin: 0 6px 4px 0; transition: transform .15s; }
.tr-etapa details[open] .tr-abre { transform: rotate(225deg); margin-bottom: -4px; }
.tr-et-body { padding: 0 16px 16px 64px; }
.tr-et-body .file-row { box-shadow: none; }
.tr-texto { margin-bottom: 12px; }
.tr-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius-sm); overflow: hidden; background: #000; margin-bottom: 12px; max-width: 720px; }
.tr-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* grade de progresso da turma */
.tr-grade-wrap { overflow-x: auto; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); margin-bottom: 12px; }
.tr-grade { border-collapse: separate; border-spacing: 0; width: 100%; min-width: max-content; }
.tr-grade th, .tr-grade td { padding: 10px 8px; border-bottom: 1px solid var(--line); text-align: center; vertical-align: middle; }
.tr-grade tbody tr:last-child > * { border-bottom: 0; }
.tr-grade thead th { vertical-align: top; font-weight: 600; font-size: .78rem; color: var(--muted); background: #f8f9fb; }
.tr-grade .tr-g-pessoa { text-align: left; position: sticky; left: 0; background: var(--surface); z-index: 1; min-width: 190px; max-width: 240px; padding-left: 16px; border-right: 1px solid var(--line); }
.tr-grade thead .tr-g-pessoa { background: #f8f9fb; }
.tr-g-nome { display: block; font-weight: 600; color: var(--navy); overflow-wrap: anywhere; }
.tr-g-mini { display: flex; align-items: center; gap: 8px; margin-top: 4px; font-weight: 400; }
.tr-g-mini .tr-bar { flex: 1; height: 6px; max-width: 90px; }
.tr-g-mini small { color: var(--muted); font-size: .76rem; white-space: nowrap; }
.tr-g-et { min-width: 96px; max-width: 120px; }
.tr-g-et small { display: block; margin-top: 4px; font-weight: 500; font-size: .76rem; line-height: 1.25; max-width: 120px; overflow-wrap: anywhere; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.tr-col { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; border: 1.5px solid #c9d2df; background: #fff; color: var(--navy); font: 700 .85rem var(--head); cursor: pointer; }
button.tr-col:hover { border-color: var(--gold); background: var(--gold-soft); }
.tr-g-cel label { position: relative; display: inline-flex; flex-direction: column; align-items: center; gap: 2px; cursor: pointer; margin: 0; min-width: 44px; min-height: 44px; justify-content: center; }
.tr-g-cel input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 1; }
.tr-g-cel input:disabled { cursor: default; }
.tr-chk { width: 26px; height: 26px; border-radius: 8px; border: 2px solid #c9d2df; background: #fff; display: grid; place-items: center; transition: background .12s, border-color .12s; }
.tr-g-cel input:checked + .tr-chk { background: var(--ok); border-color: var(--ok); }
.tr-g-cel input:checked + .tr-chk::after { content: ""; width: 6px; height: 11px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg) translate(-1px, -1px); }
.tr-g-cel input:focus-visible + .tr-chk { outline: 2px solid var(--gold); outline-offset: 2px; }
.tr-g-cel input:disabled + .tr-chk { cursor: default; }
.tr-g-cel label:hover input:not(:disabled):not(:checked) + .tr-chk { border-color: var(--ok); }
.tr-g-data { font-size: .7rem; color: var(--muted); }
.tr-grade .tr-g-anot { min-width: 200px; text-align: left; padding-right: 16px; }
.tr-g-anot input { width: 100%; padding: 7px 10px; font-size: .85rem; }

/* edição */
.tr-campo { margin-top: 8px; }
.tr-campo-tit { font-weight: 600; color: var(--navy); }
.tr-campo p { margin: 2px 0 10px; }
.tr-ed-etapa { border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 14px 16px; margin-bottom: 12px; background: #fbfbfc; display: flex; flex-direction: column; gap: 10px; }
.tr-ed-top { display: flex; align-items: center; gap: 12px; }
.tr-ed-top .tr-ed-tit { flex: 1; font-weight: 600; }
.tr-ed-mov { display: flex; }
.tr-ed-mov .linkbtn { font-size: 1.05rem; width: 36px; height: 36px; border-radius: 8px; color: var(--navy); }
.tr-ed-mov .linkbtn:hover { background: #eef1f5; color: var(--navy); text-decoration: none; }
.tr-ed-etapa label { margin: 0; }
.tr-ed-arq { display: flex; align-items: center; gap: 10px; padding: 6px 0; }
.tr-ed-arq .ficon { flex-basis: 38px; height: 38px; font-size: .64rem; border-radius: 10px; }
.tr-ed-arq-n { flex: 1; min-width: 0; overflow-wrap: anywhere; font-size: .9rem; }
.tr-ed-del { align-self: flex-start; }
.tr-pessoas-top { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 8px; }
.tr-pessoas-top .vis-busca { margin: 0; }
.tr-pessoas-top select { width: auto; max-width: 100%; }
.vis-people.tr-alunos { max-height: 420px; }
@media (max-width: 640px) {
  .tr-et-body { padding: 0 14px 14px; }
  .tr-grade .tr-g-pessoa { min-width: 140px; max-width: 160px; padding-left: 12px; }
  .tr-g-mini .tr-bar { display: none; }
}

.vis-people label.tr-e-instr { opacity: .55; }
.vis-people label.tr-e-instr small::after { content: ' · instrutor'; }
.form label.tr-tirar, label.tr-tirar { display: inline-flex; flex-direction: row; align-items: center; gap: 8px; font-weight: 500; font-size: .88rem; color: var(--muted); margin: 0; cursor: pointer; }
label.tr-tirar input { width: 18px; height: 18px; margin: 0; flex: none; }
label.tr-tirar:has(input:checked) { color: var(--err); }

/* ===== Minha página ===== */
.mp-aviso { background: #fff7e3; border: 1px solid #ecd9a6; border-radius: 12px; padding: 10px 14px; margin: 0 0 18px; font-size: .9rem; color: #5c4510; }
.mp-aviso a { font-weight: 600; color: var(--navy); }
.mp-ver select { width: auto; max-width: 240px; }
.mp-grid { columns: 2 400px; column-gap: 18px; }
.mp-bloco { margin: 0 0 18px; display: flex; flex-direction: column; gap: 10px; min-width: 0; break-inside: avoid; }
.mp-head { display: flex; align-items: center; gap: 12px; }
.mp-head h2 { margin: 0; font-size: 1.12rem; flex: 1; min-width: 0; overflow-wrap: anywhere; }
.mp-ico { flex: 0 0 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; font-size: 1.15rem; background: var(--tile, #edf1f7); }
.mp-texto .mp-ico, .mp-bloco.mp-texto .mp-ico { background: var(--gold-soft); }
.mp-editar { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; text-decoration: none; color: var(--muted); }
.mp-editar:hover { background: #eef1f5; color: var(--navy); }
.mp-desc { margin: -4px 0 0; color: var(--muted); font-size: .9rem; }
.mp-copiar { display: flex; flex-direction: column; gap: 10px; }
div.mp-texto { margin: 0; overflow-wrap: anywhere; font: 400 .93rem/1.55 Inter, system-ui, sans-serif; color: var(--text); background: #f7f8fa; border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; max-height: 320px; overflow: auto; user-select: all; -webkit-user-select: all; cursor: text; }
.mp-btn-copiar { align-self: flex-start; min-width: 132px; }
.mp-btn-copiar.ok { background: var(--ok); border-color: var(--ok); color: #fff; }
.mp-bloco .file-row { box-shadow: none; margin-bottom: 0; }
.mp-bloco .file-row + .file-row { margin-top: -2px; }
.ficon.pasta { background: #fff4d9; font-size: 1.2rem; }
a.mp-sub { text-decoration: none; color: inherit; }
a.mp-sub:hover { border-color: #c9d2df; background: #fafbfc; }
.mp-seta { color: var(--muted); font-size: 1.3rem; padding: 0 4px; }
.mp-mais { align-self: flex-start; color: var(--navy-3); font-weight: 600; }
.mp-mais:hover { color: var(--navy); }
.mp-cam { margin: 0; font-size: .88rem; color: var(--muted); }
.mp-cam a { color: var(--navy-3); text-decoration: none; font-weight: 600; }
/* admin */
.mp-tipos { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 14px; max-width: 900px; }
.mp-tipo { display: flex; flex-direction: column; gap: 6px; padding: 20px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); text-decoration: none; color: var(--navy); box-shadow: var(--shadow); transition: border-color .15s, transform .15s; }
.mp-tipo:hover { border-color: var(--gold); transform: translateY(-2px); }
.mp-tipo strong { font-family: var(--head); font-size: 1.05rem; }
.mp-tipo-ico { font-size: 1.6rem; }
.mp-l-ico { font-size: 1.1rem; background: var(--tile, #edf1f7); }
.mp-ta { font-family: Inter, system-ui, sans-serif; }
.mp-pick { display: flex; flex-direction: column; gap: 8px; }
.mp-pick-atual { display: flex; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; background: #fbfbfc; }
.mp-pick-atual > span:nth-child(2) { flex: 1; min-width: 0; overflow-wrap: anywhere; font-weight: 600; color: var(--navy); }
.mp-pick-atual .ficon { flex-basis: 40px; height: 40px; }
.mp-nav { border: 1px solid #c9d2df; border-radius: 12px; overflow: hidden; background: #fff; }
.mp-nav-top { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: #f6f8fb; border-bottom: 1px solid var(--line); font-size: .88rem; }
.mp-nav-top .linkbtn { color: var(--navy-3); font-weight: 600; }
.mp-nav-top .linkbtn:hover { color: var(--navy); }
.mp-nav-cam { color: var(--muted); overflow-wrap: anywhere; }
.mp-nav-lista { max-height: 300px; overflow: auto; padding: 6px; display: flex; flex-direction: column; }
.mp-nav-lista p { margin: 8px; }
.mp-nav-it { display: flex; align-items: center; gap: 10px; text-align: left; width: 100%; background: none; border: 0; border-radius: 8px; padding: 10px; font: inherit; color: var(--navy); cursor: pointer; min-height: 44px; }
.mp-nav-it:hover { background: #f1f4f8; }
.mp-nav-it .mp-seta { margin-left: auto; }
.mp-nav-pe { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-top: 1px solid var(--line); background: #fbfbfc; flex-wrap: wrap; }

/* ===== Galeria: mudar a ordem das imagens ===== */
.lb-ord { background: rgba(255,255,255,.1); border: 0; color: #fff; border-radius: 10px; padding: 8px 14px; cursor: pointer; font: 600 .9rem Inter, system-ui, sans-serif; white-space: nowrap; }
.lb-ord:hover { background: rgba(255,255,255,.2); }
.lb-ord.on { background: var(--gold); color: var(--navy); }
.lb-thumb { position: relative; }
.lb-grid.ordenando .lb-thumb { cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; outline: 2px dashed rgba(212,165,60,.55); outline-offset: -2px; }
.lb-grid.ordenando .lb-thumb img { pointer-events: none; }
.lb-grid.ordenando .lb-thumb:hover img { opacity: 1; }
.lb-thumb.arrastando { opacity: .45; cursor: grabbing; }
.lb-pos { position: absolute; top: 8px; left: 8px; min-width: 28px; height: 28px; padding: 0 6px; border-radius: 99px; background: var(--gold); color: var(--navy); font: 700 .85rem/28px var(--head); text-align: center; font-style: normal; box-shadow: 0 2px 8px rgba(0,0,0,.3); }
.lb-mv { position: absolute; top: 8px; right: 8px; display: flex; gap: 4px; font-style: normal; }
.lb-mv b { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: rgba(2,25,57,.85); color: #fff; font-size: 1.3rem; cursor: pointer; }
.lb-mv b:hover { background: var(--gold); color: var(--navy); }
@media (max-width: 640px) { .lb-ord { padding: 8px 10px; font-size: .82rem; } .lb-top strong { font-size: .92rem; } }

/* ===== Topo enxuto (out/2026): chat como ícone + menu "Mais" ===== */

/* com menos itens, o menu cabe em uma linha a partir de 1200px */
@media (min-width: 1200px) and (max-width: 1240px) {
  .menu-btn { display: none; }
  .topbar-in { flex-wrap: nowrap; }
  .nav { display: flex; width: auto; flex-direction: row; align-items: center; padding: 0; margin-left: auto; white-space: nowrap; order: 1; }
  .nav a { padding: 8px 9px; border-radius: 8px; font-size: .88rem; }
  .nav .nav-mobile { display: none; }
  .user-menu { display: block; order: 3; }
  .notif { order: 2; }
  .brand-tag { display: none; }
}
@media (max-width: 1199px) {

  .notif { order: 1; }

}

/* ===== Editor de texto com formatação ===== */
.rt { border: 1px solid #cfd6e0; border-radius: 12px; background: #fff; overflow: hidden; transition: border-color .15s, box-shadow .15s; font-weight: 400; }
.rt:focus-within { border-color: var(--navy-3); box-shadow: 0 0 0 3px rgba(22,64,122,.12); }
.rt-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; padding: 5px 6px; background: #f6f8fb; border-bottom: 1px solid var(--line); }
.rt-b { min-width: 34px; height: 34px; padding: 0 9px; border: 0; border-radius: 8px; background: none; color: var(--navy); font: 500 .85rem Inter, system-ui, sans-serif; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.rt-b:hover { background: #e7ecf3; }
.rt-b.on { background: var(--navy); color: #fff; }
.rt-bold b, .rt-italic i, .rt-underline u { font-size: 1rem; font-family: Georgia, serif; }
.rt-h3 { font-family: var(--head); font-weight: 700; font-size: .95rem; }
.rt-h4 { font-family: var(--head); font-weight: 600; font-size: .85rem; }
.rt-removeFormat { color: var(--muted); }
.rt-sep { width: 1px; height: 20px; background: #d5dbe4; margin: 0 4px; }
.rt-area { padding: 12px 14px; outline: none; font: 400 .95rem/1.6 Inter, system-ui, sans-serif; color: var(--text); overflow-wrap: anywhere; max-height: 60vh; overflow-y: auto; cursor: text; }
.rt-area.vazio::before { content: attr(data-ph); color: #8a94a6; pointer-events: none; display: block; height: 0; }
.rt-area a { color: var(--navy-3); }
/* texto formatado (no editor e nas páginas) */
.fmt h3 { font-family: var(--head); color: var(--navy); font-size: 1.22rem; line-height: 1.3; margin: .9em 0 .35em; }
.fmt h4 { font-family: var(--head); color: var(--navy); font-size: 1.05rem; line-height: 1.35; margin: .8em 0 .3em; }
.fmt p, .fmt div { margin: 0 0 .55em; }
.fmt ul, .fmt ol { margin: .3em 0 .7em; padding-left: 1.4em; }
.fmt li { margin: .15em 0; }
.fmt li > p, .fmt li > div { margin: 0; }
.fmt > :first-child { margin-top: 0; }
.fmt > :last-child { margin-bottom: 0; }
.small .fmt h3 { font-size: 1.05rem; } .small .fmt h4 { font-size: .95rem; }
@media (max-width: 640px) { .rt-b { min-width: 38px; height: 38px; } }

/* ===== Minha página: blocos com fotos + descrição + anexos ===== */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.mp-ver-l, .mp-filtro label { display: inline-flex; align-items: center; gap: 8px; font-size: .88rem; color: var(--muted); font-weight: 500; margin: 0; }
.mp-ver-l select, .mp-filtro select { width: auto; max-width: 240px; }
.mp-filtro { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 16px; }
.mp-parte { display: flex; flex-direction: column; gap: 8px; }
.mp-parte + .mp-parte { border-top: 1px solid var(--line); padding-top: 12px; }
.mp-parte-tit { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-weight: 600; color: var(--navy); font-size: .92rem; }
.mp-parte-tit small { color: var(--muted); font-weight: 500; margin-left: 4px; }
.mp-fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 8px; }
.mp-foto { position: relative; aspect-ratio: 1; border-radius: 10px; overflow: hidden; background: #e9edf3; }
.mp-foto[hidden] { display: none; }
.mp-foto-ver { all: unset; display: block; width: 100%; height: 100%; cursor: zoom-in; }
.mp-foto-ver img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s; }
.mp-foto-ver:hover img { transform: scale(1.05); }
.mp-foto-ver:focus-visible { outline: 3px solid var(--gold); outline-offset: -3px; }
.mp-foto-dl { position: absolute; right: 6px; bottom: 6px; width: 32px; height: 32px; border-radius: 9px; display: grid; place-items: center; background: rgba(2,25,57,.82); color: #fff; text-decoration: none; font-size: .95rem; opacity: 0; transition: opacity .15s; }
.mp-foto:hover .mp-foto-dl, .mp-foto-dl:focus-visible { opacity: 1; }
@media (hover: none) { .mp-foto-dl { opacity: 1; } }
.mp-foto-dl:hover { background: var(--gold); color: var(--navy); }
/* formulário do bloco */
.mp-sec { border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; background: #fbfbfc; display: flex; flex-direction: column; gap: 10px; }
.mp-sec-tit { font-family: var(--head); font-weight: 700; color: var(--navy); display: flex; align-items: center; gap: 8px; }
.mp-sec-tit small { font-family: Inter, system-ui, sans-serif; font-weight: 500; color: var(--muted); font-size: .82rem; }
.mp-sec p { margin: 0; }
.mp-sem-rot { margin: 0; }
.mp-form .mp-pick-atual .linkbtn { color: var(--muted); }

/* ===== Minha página — refino: cada imóvel como card de anúncio ===== */
.mp-sub { margin: 4px 0 0; color: var(--muted); }
.mp-bloco { padding: 0; gap: 0; overflow: hidden; }
.mp-corpo { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.mp-head h2 { font-size: 1.12rem; line-height: 1.3; }
.mp-galeria { position: relative; background: #e9edf3; }
.mp-capa { all: unset; display: block; width: 100%; aspect-ratio: 16 / 10; cursor: zoom-in; overflow: hidden; background: #dfe5ee; }
.mp-capa img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .45s ease; }
.mp-capa:hover img { transform: scale(1.025); }
.mp-capa:focus-visible, .mp-mini button:focus-visible { outline: 3px solid var(--gold); outline-offset: -3px; }
.mp-capa-n { position: absolute; left: 12px; top: 12px; padding: 5px 11px; border-radius: 99px; background: rgba(2,25,57,.78); color: #fff; font: 600 .78rem/1.2 Inter, system-ui, sans-serif; pointer-events: none; backdrop-filter: blur(6px); }
.mp-capa-dl { position: absolute; right: 12px; top: 12px; display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 0 14px; border-radius: 10px; background: var(--gold); color: var(--navy); font: 600 .86rem Inter, system-ui, sans-serif; text-decoration: none; box-shadow: 0 6px 18px rgba(2,25,57,.28); transition: background .15s, transform .15s; }
.mp-capa-dl:hover { background: #e2b552; transform: translateY(-1px); }
.mp-capa-dl:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.mp-capa-dl svg, .mp-btn-copiar svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.mp-mini { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 3px; padding-top: 3px; background: #fff; }
.mp-mini button { all: unset; position: relative; aspect-ratio: 1; overflow: hidden; cursor: zoom-in; background: #dfe5ee; }
.mp-mini img { width: 100%; height: 100%; object-fit: cover; display: block; transition: filter .2s; }
.mp-mini button:hover img { filter: brightness(1.08); }
.mp-mais-fotos span { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(2,25,57,.62); color: #fff; font: 700 1.1rem var(--head); }
/* descrição para copiar */
.mp-copiar { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: #f8f9fb; }
.mp-copiar-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 7px 7px 7px 14px; background: #fff; border-bottom: 1px solid var(--line); }
.mp-copiar-top > span { font-weight: 600; font-size: .84rem; color: var(--muted); }
.mp-btn-copiar { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 0 14px; border: 0; border-radius: 9px; background: var(--navy); color: #fff; font: 600 .86rem Inter, system-ui, sans-serif; cursor: pointer; transition: background .15s; }
.mp-btn-copiar:hover { background: var(--navy-3); }
.mp-btn-copiar.ok { background: var(--ok); }
.mp-btn-copiar:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.mp-copiar div.mp-texto { border: 0; border-radius: 0; background: transparent; padding: 14px 16px 16px; max-height: 340px; user-select: text; -webkit-user-select: text; }
.mp-erro { margin: 0; padding: 10px 12px; border-radius: 10px; background: var(--err-bg); color: var(--err); font-size: .88rem; }
.mp-zip-sol { align-self: flex-start; }
@media (max-width: 640px) {
  .mp-corpo { padding: 16px; }
}

/* ===== Treinamentos — refino ===== */
/* barra dividida por etapa (cada parte = uma etapa) */
.tr-seg { display: flex; gap: 3px; height: 8px; }
.tr-seg span { flex: 1; border-radius: 3px; background: #e6eaf0; overflow: hidden; }
.tr-seg span:first-child { border-radius: 99px 3px 3px 99px; }
.tr-seg span:last-child { border-radius: 3px 99px 99px 3px; }
.tr-seg i { display: block; height: 100%; background: var(--gold); }
.tr-card .tr-num { display: block; line-height: 1.45; }
.tr-prox { display: block; margin-top: 2px; color: var(--muted); font-size: .8rem; font-weight: 400; }
.tr-card-foot { gap: 10px; }
/* linha do tempo das etapas */
.tr-etapas { gap: 12px; }
.tr-etapa { position: relative; padding-left: 50px; }
.tr-etapa::before { content: ""; position: absolute; left: 16px; top: 34px; bottom: -14px; width: 2px; background: #dde3eb; }
.tr-etapa:last-child::before { display: none; }
.tr-etapa.feita::before { background: var(--ok); }
.tr-etapa .tr-n { position: absolute; left: 0; top: 13px; width: 34px; height: 34px; border: 2px solid #cfd7e2; background: #fff; color: var(--muted); z-index: 1; }
.tr-etapa.feita .tr-n { border-color: var(--ok); background: var(--ok); color: #fff; }
.tr-etapa.atual .tr-n { border-color: var(--gold); background: var(--gold); color: var(--navy); box-shadow: 0 0 0 5px rgba(212,165,60,.22); }
.tr-etapa.atual details { border-color: rgba(212,165,60,.65); box-shadow: 0 0 0 3px rgba(212,165,60,.12), var(--shadow); }
.tr-etapa.atual .tr-et-tit small { color: var(--gold-txt); font-weight: 600; }
.tr-etapa summary { padding: 14px 16px; }
.tr-et-body { padding: 0 16px 16px; }
.tr-etapa.feita details:not([open]) { background: #fbfcfd; }
.tr-etapa.feita .tr-et-tit strong { color: #3b4a60; }
/* grade da turma */
.tr-grade tbody tr:hover > * { background: #fafbfd; }
.tr-grade tbody tr.tr-g-ok > * { background: #f3faf5; }
.tr-grade tbody tr.tr-g-ok .tr-g-mini small { color: var(--ok); font-weight: 600; }
.tr-grade tfoot th, .tr-grade tfoot td { background: #f8f9fb; border-top: 1px solid var(--line); border-bottom: 0; font-size: .8rem; color: var(--muted); }
.tr-grade tfoot .tr-g-pessoa { background: #f8f9fb; font-weight: 600; }
.tr-g-tot b { color: var(--navy); font-size: .92rem; }
@media (max-width: 640px) {
  .tr-etapa { padding-left: 44px; }
  .tr-etapa .tr-n { width: 30px; height: 30px; font-size: .82rem; }
  .tr-etapa::before { left: 14px; top: 30px; }
}

/* ===== Menu "Mais": setinha ligando a caixinha ao botão ===== */

/* ===== Sem acesso ===== */
.empty.sem-acesso { max-width: 480px; margin: 56px auto; padding: 36px 32px 32px; gap: 0; text-align: center; border: 1px solid var(--line); box-shadow: var(--shadow); }
.sa-lock { width: 64px; height: 64px; border-radius: 18px; background: var(--navy); display: grid; place-items: center; margin-bottom: 18px; }
.sa-lock svg { width: 30px; height: 30px; fill: none; stroke: var(--gold); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.sem-acesso h1 { font-size: 1.3rem; margin: 0 0 8px; }
.sem-acesso p { margin: 0 0 22px; color: var(--muted); max-width: 34ch; }
.sa-acoes { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }

/* ===================== Postagens nos grupos ===================== */
/* painel do corretor (Minha página) */
.pg-hoje { margin: 0 0 26px; padding: 0; overflow: hidden; scroll-margin-top: 90px; }
.pg-hoje-top { display: grid; grid-template-columns: auto 1fr minmax(180px, 260px); gap: 18px; align-items: center; padding: 20px 22px; background: var(--navy); color: #fff; }
.pg-letra-g { width: 64px; height: 64px; border-radius: 16px; background: var(--gold); color: var(--navy); display: grid; place-items: center; font: 700 2.3rem/1 var(--head); letter-spacing: -.02em; }
.pg-hoje-tit h2 { color: #fff; margin: 0 0 2px; font-size: 1.3rem; }
.pg-hoje-tit p { margin: 0; color: #c9d3e3; font-size: .9rem; }
.pg-fer { color: var(--gold); font-weight: 600; }
.pg-prog { display: flex; flex-direction: column; gap: 7px; font-size: .86rem; color: #c9d3e3; }
.pg-prog b { color: #fff; font: 700 1.35rem/1 var(--head); margin-right: 2px; }
.pg-barra { display: block; height: 8px; border-radius: 99px; background: rgba(255,255,255,.14); overflow: hidden; }
.pg-barra i { display: block; height: 100%; background: var(--gold); border-radius: 99px; transition: width .4s; }
.pg-dia-nav { display: flex; align-items: center; gap: 10px; padding: 10px 22px; background: var(--gold-soft); color: var(--gold-txt); font-size: .86rem; font-weight: 600; }
.pg-dia-nav span { flex: 1; }
.pg-rodadas { list-style: none; margin: 0; padding: 8px 14px 14px; }
.pg-rod { border-bottom: 1px solid var(--line); }
.pg-rod:last-child { border-bottom: 0; }
.pg-rod summary { list-style: none; display: grid; grid-template-columns: 34px 56px 1fr auto; gap: 12px; align-items: center; padding: 13px 8px; cursor: pointer; border-radius: 12px; }
.pg-rod summary::-webkit-details-marker { display: none; }
.pg-rod summary:hover { background: #f7f6f4; }
.pg-rod summary:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.pg-rn { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: #e9edf3; color: var(--navy); font: 700 .92rem var(--head); }
.pg-rh { font-weight: 600; color: var(--muted); font-size: .9rem; font-variant-numeric: tabular-nums; }
.pg-rt { font-weight: 600; color: var(--navy); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pg-rc { font-size: .84rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.pg-rc b { color: var(--navy); }
.pg-rod.atual .pg-rn { background: var(--gold); box-shadow: 0 0 0 4px var(--gold-soft); }
.pg-rod.feita .pg-rn { background: var(--ok); color: #fff; }
.pg-rod.feita .pg-rt { color: var(--muted); }
.pg-rod.vazia .pg-rt { color: var(--err); font-weight: 500; }
.pg-rod-corpo { padding: 2px 8px 16px 54px; }
.pg-imovel { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 12px; }
.pg-imovel .btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; vertical-align: -3px; margin-right: 5px; }
.pg-imovel .btn.ok { background: var(--ok); border-color: var(--ok); color: #fff; }
.pg-espera { margin: 0 0 10px; padding: 9px 14px; border-radius: 10px; background: var(--gold-soft); color: var(--gold-txt); font-size: .88rem; font-weight: 600; }
.pg-espera b { font-variant-numeric: tabular-nums; }
.pg-lista { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.pg-g { display: grid; grid-template-columns: 30px 1fr auto; gap: 12px; align-items: center; padding: 10px 14px; border-top: 1px solid var(--line); background: #fff; }
.pg-g:first-child { border-top: 0; }
.pg-gn { color: var(--muted); font-size: .82rem; font-weight: 600; text-align: right; font-variant-numeric: tabular-nums; }
.pg-gnome { font-weight: 600; color: var(--text); min-width: 0; }
.pg-gnome small { display: block; font-weight: 400; color: var(--muted); font-size: .8rem; }
.pg-gacts { display: flex; align-items: center; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.pg-st { font-size: .84rem; font-weight: 600; color: var(--muted); white-space: nowrap; }
.pg-st:empty { display: none; }
.pg-g .pg-desf { display: none; }
.pg-g.ok, .pg-g.nao { background: #fbfaf8; }
.pg-g.ok .pg-st { color: var(--ok); }
.pg-g.nao .pg-st { color: var(--err); }
.pg-g.ok .pg-abrir, .pg-g.ok .pg-ok, .pg-g.ok .pg-nao, .pg-g.nao .pg-abrir, .pg-g.nao .pg-ok, .pg-g.nao .pg-nao { display: none; }
.pg-g.ok .pg-desf, .pg-g.nao .pg-desf { display: inline; font-size: .8rem; color: var(--muted); }
.pg-g.ok .pg-gnome, .pg-g.nao .pg-gnome { color: var(--muted); font-weight: 500; }
.pg-g.prox { background: #fffaf0; box-shadow: inset 3px 0 0 var(--gold); }
.pg-g.aberto .pg-abrir { border-color: var(--gold); }
.pg-nao { font-size: .82rem; color: var(--muted); }
.esperando .pg-g:not(.ok):not(.nao) .pg-abrir { opacity: .45; pointer-events: none; }
.pg-ok:disabled { opacity: .45; cursor: not-allowed; }
.pg-fora { margin: 8px 0 0; }
.pg-fim { margin: 0; padding: 14px 22px; background: var(--ok-bg); color: var(--ok); font-weight: 600; }
.pg-calmo { display: flex; gap: 16px; align-items: center; padding: 18px 22px; }
.pg-calmo h2 { margin: 0 0 2px; font-size: 1.1rem; }
.pg-calmo p { margin: 0; color: var(--muted); }
.pg-calmo-ico { flex: 0 0 48px; height: 48px; border-radius: 14px; background: var(--navy); display: grid; place-items: center; }
.pg-calmo-ico svg { width: 24px; height: 24px; fill: none; stroke: var(--gold); stroke-width: 1.8; stroke-linecap: round; }
@media (max-width: 760px) {
  .pg-hoje-top { grid-template-columns: auto 1fr; padding: 16px; gap: 12px 14px; }
  .pg-letra-g { width: 52px; height: 52px; font-size: 1.9rem; border-radius: 13px; }
  .pg-prog { grid-column: 1 / -1; }
  .pg-rodadas { padding: 4px 6px 10px; }
  .pg-rod summary { grid-template-columns: 30px 1fr auto; gap: 10px; padding: 12px 6px; }
  .pg-rn { width: 30px; height: 30px; }
  .pg-rh { grid-column: 2; grid-row: 2; font-size: .8rem; margin-top: -8px; }
  .pg-rt { grid-column: 2; grid-row: 1; white-space: normal; }
  .pg-rc { grid-column: 3; grid-row: 1 / span 2; }
  .pg-rod-corpo { padding: 0 2px 14px; }
  .pg-g { grid-template-columns: 24px 1fr; gap: 6px 10px; padding: 10px 12px; }
  .pg-gacts { grid-column: 1 / -1; justify-content: flex-start; }
  .pg-gacts .btn { flex: 1 1 auto; text-align: center; white-space: nowrap; padding-left: 10px; padding-right: 10px; }
  .pg-dia-nav { padding: 10px 16px; }
}

/* administração */
.pg-h2 { font-size: 1.15rem; margin: 0 0 4px; }
.pg-comecar h2 { margin: 0 0 12px; font-size: 1.15rem; }
.pg-passos { margin: 0; padding: 0; list-style: none; counter-reset: pg; display: grid; gap: 12px; }
.pg-passos li { counter-increment: pg; position: relative; padding: 2px 0 2px 46px; line-height: 1.5; }
.pg-passos li::before { content: counter(pg); position: absolute; left: 0; top: 0; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: #e9edf3; color: var(--navy); font: 700 .9rem var(--head); }
.pg-passos li.feito::before { content: "✓"; background: var(--ok); color: #fff; }
.pg-passos a { white-space: nowrap; font-weight: 600; }
.pg-semana-nav { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; flex-wrap: wrap; }
.pg-semana-nav strong { font-family: var(--head); color: var(--navy); }
.pg-tab-wrap { padding: 0; overflow-x: auto; }
.pg-semana th.hoje { color: var(--gold-txt); }
.pg-dia { min-width: 104px; vertical-align: top; }
.pg-dia.hoje { background: #fffaf0; }
.pg-dia a { display: grid; grid-template-columns: auto 1fr; gap: 3px 8px; align-items: center; text-decoration: none; color: var(--text); padding: 2px; border-radius: 8px; }
.pg-dia a:hover .pg-letra { background: var(--gold); }
.pg-letra { grid-row: span 2; width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; background: #e9edf3; color: var(--navy); font: 700 .95rem var(--head); }
.pg-num { font-size: .84rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.pg-num b { color: var(--navy); }
.pg-mini { display: block; height: 5px; border-radius: 99px; background: #eceae6; overflow: hidden; }
.pg-mini i { display: block; height: 100%; background: var(--gold); }
.pg-dia.ok .pg-mini i { background: var(--ok); }
.pg-dia.ok .pg-letra { background: var(--ok-bg); color: var(--ok); }
.pg-dia.zero .pg-num, .pg-dia.zero .pg-num b { color: var(--err); }
.pg-ndeu { grid-column: 1 / -1; font-size: .76rem; color: var(--err); }
.pg-cfg { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px 18px; align-items: end; }
.pg-cfg .pg-larg { grid-column: span 2; }
@media (max-width: 600px) { .pg-cfg .pg-larg { grid-column: auto; } }
.form label.pg-tgl { flex-direction: row; align-items: center; gap: 10px; font-weight: 500; min-height: 42px; }
.pg-cart-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-top: 8px; border-top: 1px solid var(--line); padding-top: 16px; }
.pg-cart-top p { margin: 2px 0 0; }
.pg-cart { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }
.pg-col { border: 1px solid var(--line); border-radius: 14px; padding: 10px 12px 12px; margin: 0; min-width: 0; display: grid; gap: 8px; background: #fff; }
.pg-col.hoje { border-color: var(--gold); box-shadow: 0 0 0 3px var(--gold-soft); }
.pg-col legend { font: 700 .95rem var(--head); color: var(--navy); padding: 0 6px; }
.pg-col legend .pill { font-size: .7rem; vertical-align: 2px; margin-left: 4px; background: var(--gold-soft); color: var(--gold-txt); }
.form label.pg-pos { flex-direction: row; align-items: center; gap: 8px; margin: 0; font-weight: 500; }
.pg-pos-n { flex: 0 0 26px; font: 700 .8rem var(--head); color: var(--muted); }
.pg-pos select { flex: 1; min-width: 0; font-size: .85rem; padding-top: 7px; padding-bottom: 7px; }
.pg-pos select.dup { border-color: var(--err); background-color: var(--err-bg); }
.pg-cart-info { margin: 0; }
.pg-falta { color: var(--err); font-weight: 600; }
.pg-intro { max-width: 760px; margin: 0 0 12px; }
.pg-aviso-n { display: inline-block; margin: 0 0 12px; padding: 7px 12px; border-radius: 10px; background: var(--gold-soft); color: var(--gold-txt); font-size: .86rem; font-weight: 600; }
.pg-grupos .pg-n { width: 44px; text-align: center; color: var(--muted); font-weight: 600; }
.pg-inativo td { opacity: .6; }
.pg-add { margin-top: 18px; }
.pg-acts { display: flex; gap: 10px; justify-content: flex-end; }
.form label.pg-tgl input { width: 18px; height: 18px; accent-color: var(--navy); flex: 0 0 auto; }
.pg-exc-acts { display: flex; gap: 10px; flex-wrap: wrap; }
.pg-excluir .form { padding-top: 12px; }

/* Fotos de imóveis: pasta pelo código */
.im-modo { border: 0; padding: 0; margin: 0 0 14px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.im-modo legend { float: left; margin: 0 10px 0 0; font-weight: 600; font-size: .88rem; color: var(--navy); }
.form .im-modo label { flex-direction: row; margin: 0; cursor: pointer; font-weight: 500; position: relative; }
.im-modo input { position: absolute; left: 0; top: 0; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.im-modo span { display: inline-block; padding: 8px 14px; border-radius: 99px; border: 1.5px solid var(--line); background: #fff; font-size: .86rem; color: var(--muted); }
.im-modo input:checked + span { background: var(--navy); border-color: var(--navy); color: #fff; }
.im-modo input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 2px; }
.form label.im-codigo { max-width: 280px; margin: 0 0 10px; }
.im-codigo input { font-size: 1.05rem; font-weight: 600; letter-spacing: .02em; }
.im-opc { margin: 0 0 8px; }
.im-cod { font-size: .55em; color: var(--gold-txt); font-weight: 700; align-self: center; }
.im-sub-dados { margin: 2px 0 6px; color: var(--muted); font-weight: 500; }
.im-card-cod { font-variant-numeric: tabular-nums; }
.mp-sem-fotos { margin: 0 0 12px; padding: 8px 12px; border-radius: 10px; background: var(--gold-soft); color: var(--gold-txt); font-size: .86rem; font-weight: 600; }
.mp-sem-fotos a { color: var(--navy); }

/* Minha página: cards compactos (4 por linha) */
.mp-grid { columns: auto; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; align-items: start; }
.mp-grid .mp-bloco { margin: 0; scroll-margin-top: 90px; }
.mp-capa { aspect-ratio: 4 / 3; }
.mp-capa-n { left: 10px; top: 10px; padding: 4px 9px; font-size: .74rem; }
.mp-capa-dl { right: 10px; top: 10px; min-height: 32px; padding: 0 10px; gap: 5px; font-size: .78rem; border-radius: 8px; }
.mp-capa-dl svg { width: 15px; height: 15px; }
.mp-corpo { padding: 14px 14px 16px; gap: 12px; }
.mp-head { gap: 10px; }
.mp-head h2 { font-size: 1rem; line-height: 1.3; }
.mp-head .mp-ico { width: 38px; height: 38px; font-size: 1.1rem; }
.mp-copiar { border: 0; background: none; overflow: visible; display: flex; flex-direction: column; gap: 10px; }
.mp-copiar-acts { display: flex; gap: 8px; flex-wrap: wrap; }
.mp-copiar-acts .mp-btn-copiar { flex: 1 1 auto; justify-content: center; min-width: 0; min-height: 40px; }
.mp-ver-desc { flex: 0 1 auto; min-height: 40px; padding: 0 12px; border: 1.5px solid var(--line); border-radius: 9px; background: #fff; color: var(--navy); font: 600 .84rem Inter, system-ui, sans-serif; cursor: pointer; }
.mp-ver-desc:hover { border-color: var(--navy); }
.mp-ver-desc[aria-expanded="true"] { background: var(--accent); border-color: var(--accent); }
.mp-ver-desc:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.mp-copiar div.mp-texto { border: 1px solid var(--line); border-radius: 10px; background: #f8f9fb; padding: 12px 14px; font-size: .88rem; max-height: 320px; }
.mp-grid .mp-desc { font-size: .86rem; margin: 0; }
.mp-grid .mp-sem-fotos { margin: 0; font-size: .8rem; }
.mp-grid .file-row { flex-wrap: wrap; }
.mp-grid { align-items: stretch; }
.mp-grid .mp-bloco { height: 100%; }
.mp-grid .mp-corpo { flex: 1; }
.mp-grid .mp-copiar { margin-top: auto; }
.mp-grid .mp-arq { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 10px; align-items: center; padding: 10px; }
.mp-grid .mp-arq .fmeta { min-width: 0; }
.mp-grid .mp-arq .fmeta strong { overflow-wrap: anywhere; font-size: .86rem; }
.mp-grid .mp-arq .factions { grid-column: 1 / -1; display: flex; gap: 6px; }
.mp-grid .mp-arq .factions .btn { flex: 1; text-align: center; }
.mp-copiar-acts { flex-wrap: nowrap; }
.mp-copiar-acts .mp-ver-desc { flex: 1 1 auto; white-space: nowrap; }
.mp-copiar-acts .mp-btn-copiar { flex: 1 1 auto; }
.mp-copiar-acts .mp-btn-copiar { flex: 1 0 auto; }
.mp-copiar-acts .mp-ver-desc { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.pg-rod summary { grid-template-columns: 34px 1fr auto; }
@media (max-width: 760px) {
  .pg-rod summary { grid-template-columns: 30px 1fr auto; }
  .pg-rt { grid-row: auto; }
  .pg-rc { grid-column: auto; grid-row: auto; }
}
.pg-dica { margin: 0; padding: 10px 22px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .86rem; }
@media (max-width: 760px) { .pg-dica { padding: 10px 16px; } }

/* Postagem no Marketplace: um imóvel por linha */
.pg-imoveis { list-style: none; margin: 0; padding: 6px 14px 10px; }
.pg-im { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 8px; border-bottom: 1px solid var(--line); }
.pg-im:last-child { border-bottom: 0; }
.pg-im-info { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pg-im-info strong { color: var(--navy); font-weight: 600; overflow-wrap: anywhere; }
.pg-im-links { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: .84rem; }
.pg-im-links a, .pg-im-links .linkbtn { display: inline-flex; align-items: center; gap: 5px; color: var(--navy-3); font-weight: 600; font-size: .84rem; text-decoration: none; padding: 0; }
.pg-im-links a:hover, .pg-im-links .linkbtn:hover { text-decoration: underline; }
.pg-im-links svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.pg-im-links .linkbtn.ok { color: var(--ok); }
.pg-im-sub { font-size: .84rem; }
.pg-im .pg-desf { display: none; }
.pg-im.ok .pg-ok, .pg-im.ok .pg-nao, .pg-im.nao .pg-ok, .pg-im.nao .pg-nao { display: none; }
.pg-im.ok .pg-desf, .pg-im.nao .pg-desf { display: inline; font-size: .8rem; color: var(--muted); }
.pg-im.ok .pg-rn { background: var(--ok); color: #fff; }
.pg-im.ok .pg-st { color: var(--ok); }
.pg-im.nao .pg-st { color: var(--err); }
.pg-im.ok .pg-im-info strong, .pg-im.nao .pg-im-info strong { color: var(--muted); }
.pg-im.prox { background: #fffaf0; box-shadow: inset 3px 0 0 var(--gold); border-radius: 10px; }
.pg-im.prox .pg-rn { background: var(--gold); box-shadow: 0 0 0 4px var(--gold-soft); }
.pg-im.vazia strong { color: var(--err); font-weight: 500; }
.pg-grupos-sug { margin: 0 14px 14px; border: 1px solid var(--line); border-radius: 14px; background: #fbfaf8; }
.pg-grupos-sug summary { cursor: pointer; padding: 12px 16px; font-weight: 600; color: var(--navy); list-style: none; }
.pg-grupos-sug summary::-webkit-details-marker { display: none; }
.pg-grupos-sug summary::after { content: "▾"; float: right; color: var(--muted); }
.pg-grupos-sug[open] summary::after { content: "▴"; }
.pg-grupos-sug summary small { color: var(--muted); font-weight: 500; margin-left: 4px; }
.pg-grupos-sug > p { margin: 0 16px 8px; }
.pg-grupos-sug ul { list-style: none; margin: 0; padding: 0 8px 10px; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 6px; }
.pg-grupos-sug li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.pg-grupos-sug li span { font-weight: 600; font-size: .9rem; min-width: 0; overflow-wrap: anywhere; }
.pg-grupos-sug li small { display: block; font-weight: 400; color: var(--muted); font-size: .78rem; }
@media (max-width: 760px) {
  .pg-imoveis { padding: 4px 6px 8px; }
  .pg-im { grid-template-columns: 30px minmax(0, 1fr); gap: 8px 10px; padding: 12px 6px; }
  .pg-im .pg-gacts { grid-column: 1 / -1; justify-content: flex-start; }
  .pg-im .pg-gacts .btn { flex: 1 1 auto; }
  .pg-grupos-sug { margin: 0 8px 12px; }
}

/* Janela por cima: menor e com cara de janela (não de página nova) */
.janela { background: rgba(2,25,57,.42); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); padding: 4vh 4vw; }
.janela-box { width: min(980px, 100%); height: min(86vh, 920px); border-radius: 20px; box-shadow: 0 24px 70px rgba(2,25,57,.38), 0 0 0 1px rgba(2,25,57,.08); animation: janBox .18s ease; }
@keyframes janBox { from { transform: translateY(12px) scale(.985); opacity: 0; } }
.janela-top { background: #fff; color: var(--navy); border-bottom: 1px solid var(--line); padding: 10px 12px 10px 20px; }
.janela-top strong { color: var(--navy); }
.janela-full { color: var(--muted); }
.janela-full:hover { color: var(--navy); }
.janela-x { background: #eef1f5; color: var(--navy); }
.janela-x:hover { background: #e2e7ee; }
.janela-load { top: 55px; }
@media (max-width: 640px) {
  .janela { padding: 10px; }
  .janela-box { height: calc(100% - 20px); border-radius: 16px; }
}

/* Postagens: histórico */
.pg-hist-filtro { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 14px; margin: 0 0 10px; }
.pg-hist-filtro label { display: flex; flex-direction: column; gap: 4px; font-size: .82rem; font-weight: 600; color: var(--navy); }
.pg-hist-filtro input, .pg-hist-filtro select { min-width: 150px; }
.pg-hist-atalhos { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 16px; }
.pg-hist-atalhos a { padding: 5px 12px; border-radius: 99px; border: 1px solid var(--line); background: #fff; font-size: .82rem; font-weight: 600; color: var(--navy); text-decoration: none; }
.pg-hist-atalhos a:hover { border-color: var(--navy); }
.pg-hist-resumo { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; margin: 0 0 16px; }
.pg-hist-card { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; text-decoration: none; color: var(--text); border: 1px solid var(--line); }
.pg-hist-card:hover, .pg-hist-card.on { border-color: var(--gold); box-shadow: 0 0 0 3px var(--gold-soft); }
.pg-hist-card strong { color: var(--navy); font-family: var(--head); }
.pg-hist-pct { font-size: .86rem; color: var(--muted); }
.pg-hist-pct b { font: 700 1.3rem var(--head); color: var(--navy); margin-right: 3px; }
.pg-hist-nums { font-size: .8rem; color: var(--muted); }
.pg-hist-nums .ok { color: var(--ok); font-weight: 600; }
.pg-hist-nums .nao { color: var(--err); font-weight: 600; }
.pg-hist-nums .pend { color: var(--gold-txt); font-weight: 600; }
.pg-hist td { vertical-align: middle; }
.pg-hist tr.pg-hist-novodia td { border-top: 2px solid var(--line); }
.pg-hist-pos { display: inline-block; min-width: 28px; margin-right: 8px; padding: 2px 6px; border-radius: 6px; background: #e9edf3; color: var(--navy); font: 700 .74rem var(--head); text-align: center; }
.pg-hist-st { display: inline-block; padding: 3px 10px; border-radius: 99px; font-size: .78rem; font-weight: 600; white-space: nowrap; }
.pg-hist-st.ok { background: var(--ok-bg); color: var(--ok); }
.pg-hist-st.nao { background: var(--err-bg); color: var(--err); }
.pg-hist-st.pend { background: var(--gold-soft); color: var(--gold-txt); }
.pill.erro { background: var(--err-bg); color: var(--err); }
.usr-bloq { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }

/* foto excluída antes de enviar (vai guardada, mas não aparece na pasta) */
.im-picker-item.tirada img { opacity: .35; filter: grayscale(1); }
.im-picker-tag { position: absolute; left: 6px; bottom: 6px; background: #b42318; color: #fff; font-size: .7rem; font-weight: 600; padding: 2px 7px; border-radius: 999px; }
.im-picker-item.tirada button { background: var(--gold); color: var(--navy); font-size: .85rem; }

/* onde a pasta de imóvel está no OneDrive (só administração) */
.im-od-onde { margin: 0 0 12px; font-size: .85rem; color: #5b6475; overflow-wrap: anywhere; }
.im-od-onde strong { color: var(--navy); font-weight: 600; }
.im-od-onde a { color: var(--navy); font-weight: 600; text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 3px; }
.im-od-local { display: flex; gap: 14px; align-items: center; justify-content: space-between; flex-wrap: wrap; margin: 0 0 14px; padding: 12px 14px; border-radius: 12px; background: #fff6e0; border: 1px solid #f0d58f; }
.im-od-local > div { flex: 1 1 260px; }
.im-od-local .muted { display: block; margin-top: 2px; }

/* sininho: limpar notificações */
.notif-head-acts { display: flex; gap: 6px; align-items: center; }
.notif-limpar { border: 1px solid #e3ddd0; background: #fff; color: var(--navy); font-size: .76rem; font-weight: 600; padding: 5px 12px; border-radius: 99px; cursor: pointer; }
.notif-limpar:hover { border-color: var(--gold); }
.notif-limpar:disabled { opacity: .6; cursor: default; }
.notif-dica { padding: 8px 16px 2px; font-size: .75rem; color: #7a8091; }

/* histórico de notificações */
.nh-chips { top: 71px; }
.nh-dia { margin: 0 0 18px; }
.nh-dia-t { font-size: .82rem; font-weight: 600; color: #7a8091; margin: 0 0 8px 4px; font-family: var(--body, inherit); }
.nh-lista { padding: 0; overflow: hidden; }
.nh-item { display: flex; gap: 12px; align-items: flex-start; padding: 12px 16px; text-decoration: none; color: inherit; border-top: 1px solid var(--line); }
.nh-item:first-child { border-top: 0; }
.nh-item:hover { background: #f7f5f2; }
.nh-item .notif-ico { flex: 0 0 34px; width: 34px; }
.nh-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.nh-txt strong { color: var(--navy); font-weight: 600; font-size: .92rem; overflow-wrap: anywhere; }
.nh-txt small { color: #5b6475; font-size: .82rem; overflow-wrap: anywhere; }
.nh-item:not(.nova) .nh-txt strong { font-weight: 500; }
.nh-item.nova { background: #fffaf0; }
.nh-item.nova:hover { background: #fff3da; }
.nh-meta { flex: none; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; font-size: .75rem; color: #7a8091; }
.nh-meta em { font-style: normal; font-weight: 600; font-size: .7rem; padding: 1px 8px; border-radius: 99px; }
.nh-nova { background: var(--gold); color: var(--navy); }
.nh-visto { color: #2f7a4f; padding: 0 !important; }
.nh-mais { text-align: center; margin: 4px 0 12px; }
.nh-rodape { text-align: center; }
.notif-foot a { white-space: nowrap; }

/* vídeos dos empreendimentos: menores, lado a lado (3 por linha no computador, 2 no tablet, 1 no celular) */
.ep-itens { display: flex; flex-wrap: wrap; column-gap: 16px; align-items: flex-start; }
.ep-itens > * { flex: 1 1 100%; min-width: 0; }
.ep-itens > .ep-vid { flex: 0 1 calc((100% - 32px) / 3); padding: 14px; margin-bottom: 16px; }
.ep-vid h3 { font-size: .95rem; margin: 0 0 10px; overflow-wrap: anywhere; padding-right: 0; }
body.ep-org .ep-vid h3 { padding-right: 96px; }
.ep-vid > p.muted:not(.mat-foot) { font-size: .82rem; margin: -4px 0 10px; }
.ep-vid .video { border-radius: 10px; }
.ep-vid .mat-foot { margin: 10px 0 0; font-size: .76rem; }
@media (max-width: 900px) { .ep-itens > .ep-vid { flex-basis: calc((100% - 16px) / 2); } }
@media (max-width: 560px) { .ep-itens > .ep-vid { flex-basis: 100%; } }

/* ===== Topo do empreendimento / incorporadora (v2) ===== */
.eh { display: flex; align-items: stretch; gap: 0; background: linear-gradient(125deg, var(--navy) 0%, #0b2b57 100%); color: #fff; border-radius: 20px; overflow: hidden; box-shadow: var(--shadow); margin-bottom: 20px; position: relative; }
.eh::after { content: ""; position: absolute; right: -80px; top: -120px; width: 320px; height: 320px; border-radius: 50%; border: 1px solid rgba(212,165,60,.18); pointer-events: none; }
.eh-txt { flex: 1 1 auto; min-width: 0; padding: 28px 30px 24px; position: relative; z-index: 1; }
.eh-meta { color: var(--gold); font-size: .82rem; font-weight: 600; letter-spacing: .02em; margin-bottom: 4px; }
.eh h1 { color: #fff; margin: 0 0 10px; font-size: 2.1rem; line-height: 1.12; overflow-wrap: anywhere; }
.eh-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 12px; }
.eh-tags .emp-estagio.hero { margin: 0; }
.eh-lanc { color: var(--gold); font-weight: 700; font-size: .9rem; }
.eh-oculto { font-size: .75rem; font-weight: 600; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25); padding: 2px 10px; border-radius: 99px; }
.eh-nums { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0 0 4px; color: #c9d3e2; font-size: .86rem; }
.eh-nums b { color: #fff; font-family: var(--head); font-size: 1.05rem; margin-right: 3px; }
.eh .hero-btns { margin-top: 14px; }
.eh .btn.ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.5); }
.eh .btn.ghost:hover { background: rgba(255,255,255,.12); border-color: #fff; }
.eh .hero-por { margin: 12px 0 0; font-size: .78rem; opacity: .65; }
.eh-capa { flex: 0 0 40%; max-width: 460px; position: relative; min-height: 220px; }
.eh-capa img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.eh-capa::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #0a2a55 0%, rgba(10,42,85,0) 28%); z-index: 1; }
/* card da incorporadora dentro do topo */
.eh-inc { display: inline-flex; align-items: center; gap: 12px; margin: 2px 0 12px; padding: 7px 14px 7px 7px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-radius: 14px; color: #fff; text-decoration: none; transition: background .15s, border-color .15s; max-width: 100%; }
.eh-inc:hover { background: rgba(255,255,255,.14); border-color: var(--gold); }
.eh-inc > span:not(.inc-logo) { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.eh-inc small { font-size: .7rem; color: #c9d3e2; }
.eh-inc strong { font-family: var(--head); font-size: .95rem; overflow-wrap: anywhere; }
.eh-inc i { font-style: normal; color: var(--gold); font-size: 1.3rem; margin-left: 2px; }
@media (max-width: 760px) {
  .eh { flex-direction: column-reverse; }
  .eh-capa { flex-basis: auto; max-width: none; min-height: 0; aspect-ratio: 16 / 9; }
  .eh-capa::before { background: linear-gradient(0deg, #0a2a55 0%, rgba(10,42,85,0) 35%); }
  .eh-txt { padding: 20px 18px 20px; }
  .eh h1 { font-size: 1.6rem; }
}

/* ===== Logo das incorporadoras ===== */
.inc-logo { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; border-radius: 10px; background: #fff; overflow: hidden; }
.inc-logo img { width: 100%; height: 100%; object-fit: contain; padding: 4px; box-sizing: border-box; }
.inc-logo.sem { background: var(--gold-soft); color: var(--gold-txt); font-family: var(--head); font-weight: 700; font-size: .95rem; }
.inc-logo.mini { width: 36px; height: 36px; border-radius: 9px; border: 1px solid var(--line); }
.inc-logo.grande { width: 100%; height: 100%; border-radius: 0; background: transparent; }
.inc-logo.grande img { padding: 18px 24px; }
.inc-logo.grande.sem { font-size: 2rem; background: transparent; }
.inc-logo.xl { width: 100%; height: 100%; border-radius: 16px; }
.inc-logo.xl img { padding: 16px; }
.inc-logo.xl.sem { font-size: 2.4rem; }
.eh-inc-logo { width: 40px; height: 40px; }

/* página da incorporadora */
.inc-hero { align-items: center; }
.inc-hero-logo { flex: 0 0 180px; height: 180px; margin: 24px 0 24px 28px; position: relative; z-index: 1; }
.inc-contato { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 14px; font-size: .88rem; }
.inc-contato a { color: #e6ecf5; text-decoration: none; }
.inc-contato a:hover { color: var(--gold); }
@media (max-width: 760px) {
  .inc-hero { flex-direction: column; align-items: stretch; }
  .inc-hero-logo { flex: none; width: 120px; height: 120px; margin: 20px 18px 0; }
}
.inc-obs { background: #fff8e8; border: 1px solid #efd9a3; border-radius: 14px; padding: 14px 18px; margin: 0 0 20px; font-size: .9rem; }
.inc-obs > div { margin-top: 6px; color: var(--text); }

/* lista de incorporadoras */
.inc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 18px; }
.inc-card { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; text-decoration: none; color: inherit; box-shadow: var(--shadow); transition: box-shadow .15s, border-color .15s; }
.inc-card:hover { box-shadow: var(--shadow-hover); border-color: #cfd6e0; }
.inc-card-logo { display: flex; aspect-ratio: 16 / 10; background: #fff; border-bottom: 1px solid var(--line); }
.inc-card-txt { display: flex; flex-direction: column; gap: 2px; padding: 12px 16px 14px; }
.inc-card-txt strong { font-family: var(--head); color: var(--navy); font-size: 1.02rem; }
.inc-card-txt small { color: var(--muted); font-size: .8rem; }
.inc-card-txt .pill { align-self: flex-start; margin-top: 6px; font-style: normal; }
.inc-jump { background: #fff; color: var(--navy); border: 1.5px solid var(--line); }
.inc-jump:hover { border-color: var(--navy); }

/* admin: cadastro */
.inc-form { display: flex; flex-direction: column; gap: 16px; }
.inc-form .painel-card { margin: 0; }
.inc-sec-t { font-size: 1.02rem; margin: 0 0 4px; }
.inc-logo-campo { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.inc-logo-prev { width: 120px; height: 120px; border-radius: 14px; border: 1.5px dashed #d9d3c7; background: #fff; display: flex; align-items: center; justify-content: center; overflow: hidden; flex: none; color: var(--muted); font-size: .8rem; }
.inc-logo-prev img { width: 100%; height: 100%; object-fit: contain; padding: 8px; box-sizing: border-box; }
.inc-logo-in { flex: 1 1 220px; display: flex; flex-direction: column; gap: 8px; }
.inc-links { display: flex; flex-direction: column; gap: 8px; }
.inc-link-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.inc-link-row input { flex: 1 1 160px; min-width: 0; }
.inc-link-row input.inc-url { flex: 2 1 220px; }
.inc-link-row .check { flex: none; margin: 0; }
.inc-arq-ed { display: flex; flex-direction: column; gap: 8px; }
.inc-arq-item { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; flex-wrap: wrap; }
.inc-arq-mini { width: 48px; height: 48px; object-fit: contain; border-radius: 8px; background: #f3f1ee; flex: none; }
.inc-arq-txt { flex: 1 1 200px; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.inc-arq-txt small { overflow-wrap: anywhere; }
.inc-arq-item .check { margin: 0; flex: none; }
.inc-busca { max-width: 320px; }
.inc-emps { max-height: 260px; overflow: auto; }
.inc-tab-nome { display: flex; align-items: center; gap: 10px; }

/* ===== Arquivos e links em cards (empreendimentos e incorporadoras) ===== */
.ep-itens > .ep-arq { flex: 0 1 calc((100% - 32px) / 3); }
.ep-arq { position: relative; display: grid; grid-template-columns: 52px 1fr; grid-template-rows: 1fr auto; gap: 10px 14px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 14px; margin-bottom: 16px; box-shadow: var(--shadow); min-width: 0; }
.ep-arq-ico { grid-row: 1 / span 2; align-self: start; width: 52px; height: 62px; border-radius: 6px 14px 6px 6px; display: flex; align-items: flex-end; justify-content: center; padding-bottom: 9px; box-sizing: border-box; text-decoration: none; position: relative; background: #eef1f5; color: #45536a; }
.ep-arq-ico::before { content: ""; position: absolute; top: 0; right: 0; width: 14px; height: 14px; background: linear-gradient(225deg, var(--surface) 50%, rgba(0,0,0,.12) 50%); border-radius: 0 14px 0 4px; }
.ep-arq-ico span { font-family: var(--head); font-weight: 800; font-size: .72rem; letter-spacing: .04em; }
.ep-arq-ico.t-pdf { background: #fde8e6; color: #b42318; }
.ep-arq-ico.t-doc { background: #e5eefc; color: #1d4ed8; }
.ep-arq-ico.t-xls { background: #e3f4ea; color: #1d6b3a; }
.ep-arq-ico.t-ppt { background: #fdeee2; color: #c2410c; }
.ep-arq-ico.t-zip { background: #efedea; color: #5b544a; }
.ep-arq-ico.t-art { background: #f3e8fb; color: #7e22ce; }
.ep-arq-ico.t-img, .ep-arq-ico.t-vid { background: #e7f1f6; color: #0e6a8c; }
.ep-arq-ico.t-link { background: var(--gold-soft); color: var(--gold-txt); align-items: center; padding: 0; border-radius: 14px; }
.ep-arq-ico.t-link::before { display: none; }
.ep-arq-ico.t-link span { font-size: 1.2rem; }
.ep-arq-txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ep-arq-txt strong { font-family: var(--head); color: var(--navy); font-size: .95rem; line-height: 1.3; overflow-wrap: anywhere; }
.ep-arq-desc { font-size: .82rem; color: #5b6475; overflow-wrap: anywhere; }
.ep-arq-meta { font-size: .76rem; color: #7a8091; }
.ep-arq-btns { display: flex; gap: 6px; flex-wrap: wrap; }
.ep-arq .ep-it-org { position: absolute; top: 8px; right: 8px; z-index: 2; }
body.ep-org .ep-arq .ep-arq-txt { padding-right: 92px; }
@media (max-width: 900px) { .ep-itens > .ep-arq { flex-basis: calc((100% - 16px) / 2); } }
@media (max-width: 560px) { .ep-itens > .ep-arq { flex-basis: 100%; } }
/* capa de álbum com logo (PNG): mostra inteira, sem cortar */
.album.contem .album-cover img { object-fit: contain; padding: 14px; box-sizing: border-box; }
.album.contem:hover .album-cover img { transform: none; }

/* ===== Galeria de vídeos ===== */
.album-vid .album-cover { background: #0b1a33; }
.album-vid .album-cover img, .album-vid .album-cover video { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
.vid-sem-capa { position: absolute; inset: 0; background: linear-gradient(135deg, #0b2b57, #021939); }
.vid-play { position: absolute; left: 50%; top: 50%; width: 58px; height: 58px; margin: -29px 0 0 -29px; border-radius: 50%; background: rgba(2,25,57,.72); border: 2px solid rgba(255,255,255,.85); box-shadow: 0 6px 18px rgba(0,0,0,.3); transition: transform .15s, background .15s; }
.vid-play::after { content: ""; position: absolute; left: 22px; top: 16px; border-style: solid; border-width: 11px 0 11px 18px; border-color: transparent transparent transparent #fff; }
.album-vid:hover .vid-play { transform: scale(1.08); background: var(--gold); }
.vg { position: fixed; inset: 0; z-index: 1000; background: #030b18; display: flex; flex-direction: column; color: #fff; }
.vg[hidden] { display: none; }
.vg-main { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 14px 16px 6px; }
.vg-player { flex: 1; min-width: 0; max-width: min(1100px, calc((100vh - 230px) * 16 / 9)); display: flex; flex-direction: column; gap: 10px; }
.vg-frame { position: relative; aspect-ratio: 16 / 9; background: #000; border-radius: 10px; overflow: hidden; }
.vg-frame iframe, .vg-frame video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: #000; }
.vg-cap { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.vg-cap strong { display: block; font-family: var(--head); }
.vg-cap small { color: #9fb0c8; font-size: .8rem; }
.vg-strip { display: flex; gap: 10px; overflow-x: auto; padding: 8px 16px 16px; scrollbar-width: thin; }
.vg-strip[hidden] { display: none; }
.vg-it { all: unset; cursor: pointer; flex: 0 0 168px; display: flex; flex-direction: column; gap: 6px; opacity: .7; transition: opacity .15s; }
.vg-it:hover, .vg-it.on { opacity: 1; }
.vg-it-capa { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 8px; overflow: hidden; background: #0b1a33; outline: 2px solid transparent; outline-offset: 2px; }
.vg-it.on .vg-it-capa { outline-color: var(--gold); }
.vg-it-capa img, .vg-it-capa video { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
.vg-it-t { font-size: .78rem; line-height: 1.3; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.vg-it:focus-visible .vg-it-capa { outline-color: #fff; }
@media (max-width: 640px) {
  .vg-main { padding: 10px 8px 4px; }
  .vg-main .lb-nav { display: none; }
  .vg-it { flex-basis: 130px; }
}

/* ===== Várias empresas por empreendimento ===== */
.eh-incs { display: flex; flex-wrap: wrap; gap: 8px; margin: 2px 0 12px; }
.eh-incs .eh-inc { margin: 0; }
.inc-papel { display: inline-block; align-self: flex-start; margin-top: 6px; font-size: .72rem; font-weight: 600; color: var(--gold-txt); background: var(--gold-soft); border-radius: 99px; padding: 1px 9px; }
.ei-box { display: flex; flex-direction: column; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: #fbfaf8; }
.ei-rot { font-weight: 600; color: var(--navy); font-size: .9rem; }
.ei-lista { display: flex; flex-direction: column; gap: 8px; }
.ei-lista .ei-vazio { margin: 0; }
.ei-tag { display: flex; align-items: center; gap: 10px; padding: 6px 8px 6px 6px; background: #fff; border: 1px solid var(--line); border-radius: 12px; flex-wrap: wrap; }
.ei-tag strong { flex: 1 1 140px; min-width: 0; color: var(--navy); font-size: .9rem; overflow-wrap: anywhere; }
.ei-tag input { flex: 0 1 200px; min-width: 120px; padding: 6px 10px !important; font-size: .85rem; }
.ei-x { border: 0; background: #f1efeb; color: #6b7280; width: 30px; height: 30px; border-radius: 50%; cursor: pointer; flex: none; }
.ei-x:hover { background: #fde8e6; color: #b42318; }
.ei-add select { max-width: 360px; }
.album-vid .album-cover img, .vg-it-capa img { position: relative; z-index: 1; }
.vg-it-capa .vid-sem-capa { position: absolute; inset: 0; }
.ei-add { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.ei-add select { flex: 1 1 240px; }
.ei-nova { display: flex; flex-direction: column; gap: 10px; padding: 14px; border: 1.5px dashed #e3c983; border-radius: 12px; background: #fffaf0; }
.ei-nova > strong { color: var(--navy); }
.ei-n-erro { margin: 0; color: #b42318; font-size: .85rem; font-weight: 600; }

/* ===== Topo do empreendimento: ficha técnica (v3) ===== */
.ef { display: grid; grid-template-columns: 1fr; gap: 0; background: var(--surface); border: 1px solid var(--line); border-radius: 20px; overflow: hidden; margin-bottom: 22px; box-shadow: var(--shadow); }
.ef.com-capa { grid-template-columns: minmax(260px, 38%) 1fr; }
.ef-capa.cover { aspect-ratio: auto; min-height: 100%; height: 100%; border-right: 1px solid var(--line); }
.ef-capa.cover img { transition: none; }
.ef-corpo { padding: 30px 34px 26px; min-width: 0; display: flex; flex-direction: column; }
.ef-meta { margin: 0 0 6px; color: var(--muted); font-size: .9rem; }
.ef-nome { margin: 0; font-size: clamp(1.9rem, 3.4vw, 2.7rem); line-height: 1.05; letter-spacing: -.03em; color: var(--navy); overflow-wrap: anywhere; }
.ef-status { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 14px; }
.ef-status .emp-estagio.hero { margin: 0; }
.ef-lanc { font-size: .88rem; font-weight: 600; color: var(--gold-txt); }
.ef-oculto { font-size: .78rem; font-weight: 600; color: var(--muted); border: 1px solid var(--line); padding: 2px 10px; border-radius: 99px; }
/* ficha: papel à esquerda, empresas à direita, como na ficha técnica de um lançamento */
.ef-ficha { margin: 22px 0 0; padding: 0; border-top: 1px solid var(--line); }
.ef-linha { display: grid; grid-template-columns: 130px 1fr; gap: 4px 18px; padding: 11px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.ef-linha dt { margin: 0; font-size: .82rem; color: var(--muted); }
.ef-linha dd { margin: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; min-width: 0; }
.ef-emp { display: inline-flex; align-items: center; gap: 8px; color: var(--navy); font-weight: 600; font-size: .95rem; text-decoration: none; min-width: 0; }
.ef-emp img { width: 26px; height: 26px; object-fit: contain; border-radius: 6px; background: #fff; border: 1px solid var(--line); padding: 2px; box-sizing: border-box; flex: none; align-self: center; }
.ef-emp span { text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; transition: text-decoration-color .15s; overflow-wrap: anywhere; }
.ef-emp:hover span, .ef-emp:focus-visible span { text-decoration-color: var(--gold); }
.ef-mats { color: var(--text); font-size: .92rem; }
.ef-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin-top: auto; padding-top: 22px; }
.ef-por { margin-left: auto; font-size: .78rem; color: var(--muted); }
@media (max-width: 820px) {
  .ef.com-capa { grid-template-columns: 1fr; }
  .ef-capa.cover { aspect-ratio: 16 / 9; height: auto; min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .ef-corpo { padding: 22px 18px 20px; }
  .ef-linha { grid-template-columns: 1fr; gap: 4px; }
  .ef-por { margin-left: 0; width: 100%; }
}
.ef-emp-w { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.ef-site { font-size: .78rem; font-weight: 600; color: var(--gold-txt); text-decoration: none; border: 1px solid #ecdcb4; background: var(--gold-soft); padding: 1px 8px; border-radius: 99px; white-space: nowrap; }
.ef-site:hover { border-color: var(--gold); }

/* incorporadora: pastas de arquivos (admin) */
.ia-pastas { display: flex; flex-direction: column; gap: 12px; }
.ia-pasta { border: 1px solid var(--line); border-radius: var(--radius-sm); background: #faf9f7; padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.ia-pasta.nova { border-style: dashed; border-color: var(--gold); background: #fffdf6; }
.ia-pasta.apagando { opacity: .55; }
.ia-pasta.apagando .ia-nome { text-decoration: line-through; }
.ia-pasta-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ia-ico { font-size: 1.25rem; line-height: 1; }
.ia-pasta-top .ia-nome { flex: 1 1 200px; min-width: 0; font-weight: 600; color: var(--navy); }
.ia-nome-fixo { flex: 1 1 auto; color: var(--navy); }
.ia-pasta-top .check { margin: 0; flex: none; }
.ia-pasta .inc-arq-item { background: #fff; }
.ia-mover { flex: 0 1 190px; min-width: 0; }
.ia-up { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0; font-weight: 600; color: var(--navy-3); font-size: .9rem; }
.ia-up input[type=file] { flex: 1 1 220px; min-width: 0; font-weight: 400; }
.ia-acoes { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
/* incorporadora: pastas na página */
.inc-pasta .emp-sub-title small { font-weight: 500; font-size: .8rem; margin-left: 4px; }
/* contatos vindos da incorporadora (no empreendimento) */
.ct-emp { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; font-size: .84rem; font-weight: 600; color: var(--navy-3); max-width: 100%; }
.ct-emp small { color: var(--muted); font-weight: 500; }
.ct-emp .inc-logo.mini { width: 22px; height: 22px; font-size: .6rem; border-radius: 6px; }
.ct-inc-nota { margin: 10px 0 0; color: var(--muted); background: #f7f5f2; border-radius: 10px; padding: 8px 12px; }
.ic-trazer { border: 1px dashed var(--gold); background: #fffdf6; border-radius: var(--radius-sm); padding: 12px 14px; display: flex; flex-direction: column; gap: 6px; }
.ic-trazer p { margin: 0 0 4px; }
.ic-trazer-it { margin: 0; align-items: flex-start; }
.ic-trazer-it small { overflow-wrap: anywhere; }

/* imóveis: vídeos */
.im-sec-t { font-family: var(--head); font-size: 1.05rem; color: var(--navy); margin: 22px 0 10px; display: flex; align-items: baseline; gap: 8px; }
.im-sec-t small { font-size: .82rem; font-weight: 500; }
.im-videos { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; margin-bottom: 8px; }
.im-vid .vg-open { all: unset; cursor: pointer; position: relative; display: block; aspect-ratio: 4/3; overflow: hidden; background: var(--navy); }
.im-vid .vg-open:focus-visible { outline: 3px solid var(--gold); outline-offset: -3px; }
.im-vid .vg-open img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.im-vid .vg-open .vid-sem-capa { position: absolute; inset: 0; }
.im-vid .vg-open:hover .vid-play { transform: scale(1.08); background: var(--gold); }
.im-vid-t { position: absolute; left: 0; right: 0; bottom: 0; padding: 18px 10px 8px; font-size: .78rem; font-weight: 600; color: #fff; background: linear-gradient(transparent, rgba(2,25,57,.85)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.im-vid .im-exc-tag { top: 8px; bottom: auto; }
.im-foto-exc .vg-open img { opacity: .45; filter: grayscale(.6); }
.im-picker-item video { width: 100%; height: 100%; object-fit: cover; display: block; background: var(--navy); }
.im-picker-item.video::after { content: "▶"; position: absolute; left: 6px; bottom: 6px; width: 22px; height: 22px; border-radius: 50%; background: rgba(2,25,57,.8); color: #fff; font-size: .62rem; display: flex; align-items: center; justify-content: center; pointer-events: none; }

/* ==========================================================
   Captações — cards de bairro, lista do bairro e painel do anúncio
   ========================================================== */
.cx { --warn: #8a4b06; --warn-bg: #fdf0dc; --info: #16407a; --info-bg: #e9eef6; }
.cx-gaveta { --warn: #8a4b06; --warn-bg: #fdf0dc; --info: #16407a; --info-bg: #e9eef6; }
.cx-acts { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.cx-ultima { color: var(--muted); font-size: .82rem; max-width: 46ch; }
.cx-spin { width: 14px; height: 14px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: cx-gira .8s linear infinite; display: inline-block; }
@keyframes cx-gira { to { transform: rotate(1turn); } }
.cx-prog { display: flex; align-items: center; gap: 12px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 10px 14px; margin-top: 14px; font-size: .86rem; color: var(--navy); }
.cx-prog-bar { flex: 1; height: 8px; border-radius: 99px; background: var(--line); overflow: hidden; }
.cx-prog-bar i { display: block; height: 100%; width: 5%; background: var(--gold); transition: width .4s; }

.cx-resumo { display: flex; gap: 10px; flex-wrap: wrap; margin: 4px 0 14px; }
.cx-res { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; display: flex; align-items: baseline; gap: 8px; cursor: pointer; text-align: left; font: inherit; }
.cx-res b { font-family: var(--head); font-size: 1.3rem; color: var(--navy); font-variant-numeric: tabular-nums; }
.cx-res span { color: var(--muted); font-size: .86rem; }
.cx-res.on { border-color: var(--gold); background: #fffaf0; }
.cx-res:focus-visible, .cx-bcard:focus-visible, .cx-row:focus-visible, .cx-dup:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }

.cx-filtros { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 10px; }
.cx-filtros input[type=search] { width: auto; flex: 1 1 240px; min-width: 0; border: 1px solid var(--line); border-radius: 10px; padding: 9px 12px; background: #faf9f7; font: inherit; }
.cx-filtros select { border: 1px solid var(--line); border-radius: 10px; padding: 9px 10px; background: #faf9f7; width: auto; flex: 0 1 auto; max-width: 100%; font: inherit; }
.cx-filtros .cx-ativo { border-color: #e3a54a; background: #fdf0dc; font-weight: 600; }
.cx-preco { display: flex; align-items: center; gap: 6px; font-size: .9rem; color: var(--muted); }
.cx-preco label { display: block; margin: 0; }
.cx-preco input { width: 96px; border: 1px solid var(--line); border-radius: 10px; padding: 9px 10px; background: #faf9f7; font: inherit; color: var(--text); }
.cx-preco input:focus { outline: 2px solid var(--gold); outline-offset: 1px; }
.cx-limpar { margin-left: auto; border: 1px solid #e3a54a; background: #fdf0dc; color: #8a4b06; font: inherit; font-size: .86rem; font-weight: 700; border-radius: 99px; padding: 7px 14px; cursor: pointer; }
.cx-limpar:hover { background: #fbe4c0; }
.cx-limpar:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.cx-chk { display: inline-flex; gap: 6px; align-items: center; font-size: .9rem; color: var(--navy); font-weight: 500; cursor: pointer; }

.cx-ordem { display: flex; align-items: center; gap: 8px; font-size: .86rem; color: var(--muted); margin: 22px 0 12px; flex-wrap: wrap; }
.cx-seg { display: inline-flex; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 3px; gap: 2px; flex-wrap: wrap; }
.cx-seg button { border: 0; background: transparent; padding: 6px 10px; border-radius: 7px; cursor: pointer; font: inherit; font-size: .84rem; color: var(--navy); }
.cx-seg button.on { background: var(--navy); color: #fff; }
.cx-tot { margin-left: auto; }

.cx-pill { font-size: .72rem; font-weight: 700; padding: 3px 9px; border-radius: 99px; white-space: nowrap; display: inline-flex; align-items: center; gap: 4px; }
.cx-pill.p-novo { background: var(--gold); color: var(--navy); }
.cx-pill.p-dup { background: var(--navy); color: #fff; }
.cx-pill.p-fora { background: var(--err-bg); color: var(--err); }
.cx-sem-foto { display: block; width: 100%; height: 100%; background: #dfe6ef linear-gradient(135deg, #dfe6ef 0%, #cfd8e4 100%); }
.cx-st { font-size: .72rem; font-weight: 700; padding: 3px 9px; border-radius: 99px; white-space: nowrap; }
.cx-st.s-novo { background: var(--info-bg); color: var(--info); }
.cx-st.s-end { background: var(--warn-bg); color: var(--warn); }
.cx-st.s-cont { background: #efe7fb; color: #5b2a9a; }
.cx-st.s-capt { background: var(--ok-bg); color: var(--ok); }
.cx-st.s-desc { background: #eceae7; color: var(--muted); }
.cx-st.s-erro { background: var(--err-bg); color: var(--err); }
.cx-ico { flex: none; width: 18px; height: 18px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: .66rem; font-weight: 800; }
.cx-ico.e-ok { background: var(--ok-bg); color: var(--ok); }
.cx-ico.e-rua { background: var(--warn-bg); color: var(--warn); }
.cx-ico.e-sem { background: var(--err-bg); color: var(--err); }
.cx-resp { display: inline-flex; align-items: center; gap: 5px; font-size: .76rem; color: var(--navy); white-space: nowrap; }
.cx-resp.muted { color: var(--muted); }
.cx-ava { width: 22px; height: 22px; border-radius: 50%; background: var(--navy); color: var(--gold); font-weight: 700; font-size: .7rem; display: inline-flex; align-items: center; justify-content: center; }
.cx-achou { font-size: .72rem; font-weight: 700; color: var(--ok); background: var(--ok-bg); padding: 1px 7px; border-radius: 99px; margin-left: 6px; white-space: nowrap; }
.cx-erro { color: var(--err); font-size: .84rem; font-weight: 600; }

/* página principal: um card por bairro */
.cx-bgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.cx-bcard { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); padding: 0; cursor: pointer; text-align: left; display: flex; flex-direction: column; overflow: hidden; font: inherit; color: inherit; transition: transform .15s, box-shadow .15s; }
.cx-bcard:hover { transform: translateY(-2px); box-shadow: var(--shadow-hover); }
.cx-mosaico { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 2px; height: 96px; background: var(--line); position: relative; }
.cx-mosaico > span { overflow: hidden; background: #dfe6ef; min-width: 0; }
.cx-mosaico img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cx-mais { position: absolute; right: 8px; bottom: 8px; background: rgba(2, 25, 57, .8); color: #fff; font-size: .72rem; font-weight: 700; padding: 3px 8px; border-radius: 99px; }
.cx-novos { position: absolute; left: 8px; top: 8px; }
.cx-bc-in { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 8px; }
.cx-bc-top { display: flex; align-items: baseline; gap: 10px; }
.cx-bc-top h2 { font-size: 1.12rem; margin: 0; flex: 1; min-width: 0; text-wrap: balance; }
.cx-bc-top b { font-family: var(--head); font-size: 1.5rem; color: var(--navy); font-variant-numeric: tabular-nums; line-height: 1; }
.cx-bc-sub { display: flex; justify-content: space-between; gap: 8px; font-size: .8rem; color: var(--muted); }
.cx-bc-sub span:last-child { font-variant-numeric: tabular-nums; }
.cx-barra { display: flex; height: 7px; border-radius: 99px; overflow: hidden; background: var(--line); }
.cx-barra i { display: block; height: 100%; }
.cx-bc-leg { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: .76rem; color: var(--muted); }
.cx-bc-leg span { display: inline-flex; align-items: center; gap: 5px; }
.cx-bc-leg i { width: 8px; height: 8px; border-radius: 2px; display: inline-block; }
.cx .c-novo { background: #8fb0d8; } .cx .c-end { background: #e3a54a; } .cx .c-cont { background: #9b6fd1; } .cx .c-capt { background: #3f9a62; } .cx .c-desc { background: #b9b4ad; }
.cx-bc-end { display: flex; gap: 6px 14px; font-size: .78rem; flex-wrap: wrap; border-top: 1px dashed var(--line); padding-top: 8px; color: var(--muted); }
.cx-bc-end > span { display: inline-flex; gap: 5px; align-items: center; white-space: nowrap; font-variant-numeric: tabular-nums; }
.cx-bc-end b { color: var(--navy); }
.cx-bc-end .cx-ico { width: 16px; height: 16px; font-size: .6rem; }

/* dentro do bairro: lista compacta */
.cx-volta { display: inline-flex; align-items: center; gap: 6px; color: var(--navy-3); font-weight: 600; background: none; border: 0; padding: 4px 0; cursor: pointer; font: inherit; font-size: .92rem; }
.cx-bhead { display: flex; align-items: flex-end; gap: 12px 24px; flex-wrap: wrap; margin: 6px 0 16px; }
.cx-bhead h1 { margin: 0; }
.cx-bstats { display: flex; gap: 8px; flex-wrap: wrap; margin-left: auto; }
.cx-bstats span { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 6px 10px; font-size: .82rem; color: var(--muted); }
.cx-bstats b { color: var(--navy); font-variant-numeric: tabular-nums; }
.cx-lista { display: flex; flex-direction: column; gap: 8px; }
.cx-row { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; gap: 14px; align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 8px; cursor: pointer; text-align: left; width: 100%; font: inherit; color: inherit; }
.cx-row:hover { border-color: #cbd3de; box-shadow: var(--shadow); }
.cx-row.fora { opacity: .6; }
.cx-th { width: 112px; aspect-ratio: 4 / 3; border-radius: 8px; overflow: hidden; position: relative; background: #dfe6ef; display: block; }
.cx-th img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cx-th .cx-pill { position: absolute; left: 4px; top: 4px; font-size: .64rem; padding: 2px 6px; }
.cx-info { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cx-l1 { display: flex; gap: 4px 10px; align-items: baseline; flex-wrap: wrap; }
.cx-l1 strong { font-family: var(--head); color: var(--navy); font-size: .98rem; }
.cx-valor { font-family: var(--head); font-weight: 700; color: var(--navy); font-size: .98rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cx-carac { font-size: .8rem; color: var(--muted); }
.cx-end { font-size: .82rem; display: flex; gap: 6px; align-items: center; min-width: 0; }
.cx-end > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.cx-end.e-sem { color: var(--muted); }
.cx-l3 { font-size: .76rem; color: var(--muted); display: flex; gap: 4px 10px; flex-wrap: wrap; align-items: center; }
.cx-l3 b { color: var(--navy); font-weight: 600; }
.cx-dir { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; padding-right: 6px; }
.cx-mais-btn { display: flex; justify-content: center; margin-top: 14px; }
.cx-secao { margin-top: 30px; }
.cx-perder { font-size: .74rem; font-weight: 600; color: var(--err); border: 1px solid #f1c9ca; background: var(--surface); border-radius: 99px; padding: 3px 9px; cursor: pointer; white-space: nowrap; }
.cx-perder:hover { background: var(--err-bg); }
.cx-perder[data-reabrir] { color: var(--navy-3); border-color: var(--line); }
.cx-perder:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.cx-acoes { display: inline-flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.cx-ganhar { font-size: .74rem; font-weight: 700; color: #fff; background: #2f8a50; border: 1px solid #2f8a50; border-radius: 99px; padding: 3px 10px; cursor: pointer; white-space: nowrap; }
.cx-ganhar:hover { background: #236d3e; border-color: #236d3e; }
.cx-ganhar:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.cx-ganhar-btn { font: inherit; font-size: .86rem; font-weight: 700; color: #fff; background: #2f8a50; border: 0; border-radius: 99px; padding: 8px 16px; cursor: pointer; }
.cx-ganhar-btn:hover { background: #236d3e; }
.cx-ganhar-btn:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.cx-ganho-t { color: #236d3e; }
.cx-mot { font-size: .72rem; color: var(--muted); max-width: 180px; text-align: right; }
.cx-perdido-box { border-top: 1px dashed var(--line); padding-top: 10px; display: flex; flex-direction: column; gap: 8px; }
.cx-perd-t { font-weight: 700; color: var(--navy); font-size: .86rem; }
.cx-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.cx-chip { border: 1px solid var(--line); background: #faf9f7; border-radius: 99px; padding: 5px 11px; font: inherit; font-size: .8rem; color: var(--navy); cursor: pointer; }
.cx-perd-m:hover { background: var(--err-bg); color: var(--err); border-color: #f1c9ca; }
.cx-chip:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.cx-toast { position: fixed; left: 50%; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); background: var(--navy); color: #fff; padding: 10px 16px; border-radius: 12px; display: flex; gap: 14px; align-items: center; z-index: 70; box-shadow: 0 10px 28px rgba(2, 25, 57, .3); max-width: calc(100% - 32px); font-size: .9rem; }
.cx-toast button { background: none; border: 0; color: var(--gold); font: inherit; font-weight: 700; cursor: pointer; padding: 0; }

/* painel lateral (anúncio e sites) */
.cx-veu { position: fixed; inset: 0; background: rgba(2, 25, 57, .45); z-index: 60; }
.cx-gaveta { position: fixed; top: 0; right: 0; bottom: 0; width: min(560px, 100%); background: var(--bg); z-index: 61; overflow-y: auto; overscroll-behavior: contain; box-shadow: -10px 0 40px rgba(2, 25, 57, .25); padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px) 0; }
.cx-g-top { position: sticky; top: 0; background: var(--navy); color: #fff; display: flex; align-items: center; gap: 10px; padding: 12px 16px; z-index: 2; border-bottom: 2px solid var(--gold); }
.cx-g-top strong { font-family: var(--head); flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cx-g-x { background: transparent; border: 1px solid rgba(255, 255, 255, .35); color: #fff; border-radius: 8px; width: 34px; height: 34px; cursor: pointer; font: inherit; flex: none; }
.cx-g-x:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.cx-g-in { padding: 16px; display: flex; flex-direction: column; gap: 14px; }
.cx-g-fotos { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; gap: 6px; border-radius: 12px; overflow: hidden; aspect-ratio: 16 / 9; }
.cx-g-fotos[data-n="1"] { grid-template-columns: 1fr; grid-template-rows: 1fr; }
.cx-g-fotos[data-n="2"] { grid-template-rows: 1fr; }
.cx-g-fotos > a { position: relative; background: #dfe6ef; overflow: hidden; display: block; min-height: 0; }
.cx-g-fotos > a:first-child { grid-row: 1 / -1; }
.cx-g-fotos img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cx-cap { position: absolute; left: 8px; bottom: 8px; background: rgba(2, 25, 57, .8); color: #fff; font-size: .72rem; font-weight: 600; padding: 3px 8px; border-radius: 99px; }
.cx-todas > summary { cursor: pointer; font-weight: 600; color: var(--navy-3); font-size: .88rem; }
.cx-todas-g { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 6px; margin-top: 10px; }
.cx-todas-g a { aspect-ratio: 4 / 3; background: #dfe6ef; border-radius: 8px; overflow: hidden; display: block; }
.cx-todas-g img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cx-aviso { margin: 0; background: var(--err-bg); color: var(--err); border-radius: 10px; padding: 10px 12px; font-size: .88rem; font-weight: 600; }
.cx-bloco { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; }
.cx-bloco h3 { font-size: .95rem; margin: 0 0 10px; }
.cx-h3 { font-size: .95rem; margin: 6px 0 0; }
.cx-dados { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px 14px; margin: 0; }
.cx-dados div { min-width: 0; }
.cx-dados dt { font-size: .74rem; color: var(--muted); }
.cx-dados dd { margin: 0; font-weight: 600; color: var(--navy); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.cx-endbox { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 10px; }
.cx-endbox.e-ok { background: var(--ok-bg); }
.cx-endbox.e-rua { background: var(--warn-bg); }
.cx-endbox.e-sem { background: var(--err-bg); }
.cx-endbox .cx-ico { background: rgba(255, 255, 255, .7); margin-top: 2px; }
.cx-endbox p { margin: 2px 0 0; font-size: .86rem; }
.cx-antes { color: var(--muted); font-size: .8rem !important; }
.cx-achar { margin-top: 12px; border: 1px dashed var(--gold); background: #fffdf6; border-radius: 12px; padding: 12px; display: flex; flex-direction: column; gap: 8px; }
.cx-achar > summary { cursor: pointer; font-weight: 600; color: var(--navy-3); font-size: .88rem; }
.cx-achar-t { font-weight: 700; color: var(--navy); font-size: .9rem; }
.cx-achar-t small { font-weight: 400; color: var(--muted); }
.cx-achar-c { display: grid; grid-template-columns: minmax(0, 1fr) 90px; gap: 8px; }
.cx-achar-c input { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; background: var(--surface); width: 100%; min-width: 0; font: inherit; }
.cx-achar-c .full { grid-column: 1 / -1; }
.cx-achar-a { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.cx-pistas { margin: 10px 0 0; padding-left: 18px; font-size: .86rem; }
.cx-pistas:empty { display: none; }
.cx-pistas li { margin: 2px 0; }
.cx-links { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.cx-desc { font-size: .88rem; white-space: pre-line; margin: 0; overflow-wrap: anywhere; }
.cx-trab { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cx-trab label { display: flex; flex-direction: column; gap: 4px; font-size: .8rem; font-weight: 600; color: var(--navy); min-width: 0; }
.cx-trab select, .cx-trab textarea { border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; background: #faf9f7; font: inherit; font-weight: 400; width: 100%; }
.cx-trab .full { grid-column: 1 / -1; }
.cx-salvar { display: flex; gap: 10px; align-items: center; min-height: 0; }
.cx-salvo { font-size: .8rem; color: var(--ok); font-weight: 600; }
.cx-dup { display: flex; gap: 10px; align-items: center; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: #faf9f7; font: inherit; font-size: .86rem; width: 100%; text-align: left; cursor: pointer; color: inherit; }
.cx-dup + .cx-dup { margin-top: 6px; }
.cx-dup b { color: var(--navy); }
.cx-dup-v { margin-left: auto; font-weight: 700; color: var(--navy); font-variant-numeric: tabular-nums; white-space: nowrap; }
.cx-hist { margin: 0; padding: 0; list-style: none; font-size: .84rem; }
.cx-hist li { display: flex; gap: 10px; padding: 5px 0; border-bottom: 1px dashed var(--line); }
.cx-hist li:last-child { border-bottom: 0; }
.cx-hist li span:first-child { color: var(--muted); width: 82px; flex: none; font-variant-numeric: tabular-nums; }
.cx-site { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; }
.cx-site-t { flex: 1 1 220px; min-width: 0; }
.cx-site-t strong { color: var(--navy); }
.cx-site-a { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.cx-bm { flex: 1 1 100%; background: #fffdf6; border: 1px dashed var(--gold); border-radius: 10px; padding: 10px 14px; font-size: .86rem; }
.cx-bm ol { margin: 0 0 6px; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; }
.cx-bm-link { cursor: grab; }
.cx-teste { flex: 1 1 100%; margin: 0; max-height: 280px; overflow: auto; background: #0f1b2d; color: #e4e9f2; border-radius: 8px; padding: 10px; font-size: .74rem; white-space: pre-wrap; overflow-wrap: anywhere; }

@media (max-width: 560px) {
  .cx-filtros select { flex: 1 1 100%; }
  .cx-preco { flex: 1 1 100%; } .cx-preco label { flex: 1; } .cx-preco input { width: 100%; }
  .cx-row { grid-template-columns: 84px minmax(0, 1fr); gap: 10px; }
  .cx-th { width: 84px; }
  .cx-dir { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; align-items: center; padding: 0 2px; }
  .cx-bstats { margin-left: 0; }
  .cx-tot { margin-left: 0; width: 100%; }
  .cx-trab { grid-template-columns: 1fr; }
  .cx-g-fotos { aspect-ratio: 4 / 3; }
}
@media (prefers-reduced-motion: reduce) { .cx-bcard, .cx-prog-bar i { transition: none; } .cx-spin { animation: none; } }

/* ===== Menu lateral (substitui a barra de cima) ===== */
:root { --lat-w: 248px; --topo: 0px; }
html.lat-mini { --lat-w: 76px; }
body.com-lat { padding-left: var(--lat-w); }
.lat { position: fixed; top: 0; left: 0; bottom: 0; width: var(--lat-w); z-index: 40; background: var(--navy); color: #c9d4e4; display: flex; flex-direction: column; }
.lat::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 3px; background: linear-gradient(180deg, var(--gold-2), var(--gold), #f0cf7a, var(--gold)); }
.lat-topo { position: relative; display: flex; align-items: center; gap: 8px; height: 78px; padding: 18px 12px 12px 20px; }
.lat-marca { flex: 1; min-width: 0; display: block; text-decoration: none; }
.lat-logo { display: block; height: 38px; overflow: hidden; }
.lat-logo img { display: block; height: 38px; width: auto; max-width: none; }
.lat-recolher, .lat-menu-btn { flex: 0 0 auto; width: 36px; height: 36px; border: 0; border-radius: 10px; background: transparent; color: #8fa0b8; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .15s, color .15s; }
.lat-recolher:hover, .lat-menu-btn:hover { background: rgba(255,255,255,.08); color: #fff; }
.lat-recolher svg, .lat-menu-btn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.lat-menu-btn { display: none; }
.lat-acoes { padding: 0 12px 8px; margin-bottom: 6px; border-bottom: 1px solid rgba(255,255,255,.08); }
.lat-corpo { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.lat-nav { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; padding: 2px 12px 12px; display: flex; flex-direction: column; gap: 2px; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.18) transparent; }
.lat-item { display: flex; align-items: center; gap: 12px; width: 100%; height: 42px; flex: 0 0 auto; padding: 0 10px; border: 0; border-radius: 10px; background: transparent; color: #c9d4e4; font: 500 .92rem/1.2 Inter, system-ui, sans-serif; text-align: left; text-decoration: none; cursor: pointer; transition: background .15s, color .15s; }
.lat-item:hover { background: rgba(255,255,255,.07); color: #fff; }
.lat-item.on { background: var(--gold); color: var(--navy); font-weight: 600; }
.lat-item:focus-visible, .lat-recolher:focus-visible, .lat-menu-btn:focus-visible, .lat .user-btn:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.lat-ic { position: relative; flex: 0 0 22px; height: 22px; display: flex; align-items: center; justify-content: center; }
.lat-ic svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.lat-txt { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lat-div { height: 1px; background: rgba(255,255,255,.1); margin: 8px 6px; flex: 0 0 auto; }
.lat .lat-ic .notif-count { top: -8px; right: -10px; box-shadow: 0 0 0 2px var(--navy); }
.lat .lat-item.on .notif-count { box-shadow: 0 0 0 2px var(--gold); }
/* sininho dentro do menu */
.lat .notif { position: static; order: 0; }
.lat .notif-btn { width: 100%; height: 42px; border-radius: 10px; background: transparent; color: #c9d4e4; justify-content: flex-start; }
.lat .notif-btn:hover, .lat .notif-btn[aria-expanded="true"] { background: rgba(255,255,255,.07); color: #fff; }
.lat .notif-panel { position: fixed; left: calc(var(--lat-w) + 12px); right: auto; top: 12px; width: 380px; max-width: calc(100vw - var(--lat-w) - 24px); }
.lat #notif-body { max-height: calc(100vh - 150px); }
/* quem está logado, no pé do menu */
.lat .user-menu { display: block; position: relative; order: 0; }
.lat-user { padding: 10px 12px 14px; border-top: 1px solid rgba(255,255,255,.08); }
.lat .user-btn { width: 100%; height: auto; border: 0; border-radius: 12px; background: transparent; color: #fff; display: flex; align-items: center; gap: 10px; padding: 6px; text-align: left; font: inherit; overflow: visible; }
.lat .user-btn:hover, .lat .user-btn[aria-expanded="true"], .lat .user-btn.on { background: rgba(255,255,255,.07); border-color: transparent; }
.user-av { flex: 0 0 38px; height: 38px; border-radius: 50%; background: var(--gold); color: var(--navy); display: flex; align-items: center; justify-content: center; font-family: var(--head); font-weight: 700; overflow: hidden; }
.user-av img { width: 100%; height: 100%; object-fit: cover; }
.user-nome { flex: 1; display: flex; flex-direction: column; line-height: 1.25; }
.user-nome strong { font-size: .88rem; font-weight: 600; color: #fff; overflow: hidden; text-overflow: ellipsis; }
.user-nome small { font-size: .76rem; color: #8fa0b8; overflow: hidden; text-overflow: ellipsis; }
.user-seta { flex: 0 0 auto; display: flex; }
.user-seta svg { width: 16px; height: 16px; fill: none; stroke: #8fa0b8; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.lat .user-panel { position: absolute; left: calc(100% + 10px); right: auto; top: auto; bottom: 14px; }
/* nome do item quando o menu está recolhido */
.lat-dica { position: fixed; z-index: 70; transform: translateY(-50%); background: var(--navy); color: #fff; font-size: .82rem; font-weight: 600; padding: 6px 10px; border-radius: 8px; box-shadow: 0 6px 20px rgba(2,25,57,.25); pointer-events: none; white-space: nowrap; }
.lat-fundo { display: none; }
body.com-lat .chat { height: calc(100vh - 110px); }
@media (min-width: 901px) {
  body.com-lat, .lat { transition: padding-left .2s ease, width .2s ease; }
  /* recolhido: mesma altura do topo; o botão de abrir aparece no lugar do logo ao passar o mouse */
  html.lat-mini .lat-topo { justify-content: center; padding: 18px 0 12px; }
  html.lat-mini .lat-marca { flex: 0 0 auto; transition: opacity .15s; }
  html.lat-mini .lat-logo { width: 35px; }
  html.lat-mini .lat-recolher { position: absolute; left: 50%; top: 50%; margin: 3px 0 0 -18px; transform: translateY(-50%); opacity: 0; transition: opacity .15s; }
  html.lat-mini .lat-recolher svg { transform: scaleX(-1); }
  html.lat-mini .lat-topo:hover .lat-recolher, html.lat-mini .lat-recolher:focus-visible { opacity: 1; }
  html.lat-mini .lat-topo:hover .lat-marca, html.lat-mini .lat-topo:has(.lat-recolher:focus-visible) .lat-marca { opacity: 0; }
  html.lat-mini .lat-txt { display: none; }
  html.lat-mini .lat-acoes, html.lat-mini .lat-nav { padding-left: 14px; padding-right: 14px; }
  html.lat-mini .lat-item { justify-content: center; padding: 0; }
  html.lat-mini .lat-user { padding-left: 10px; padding-right: 10px; }
  html.lat-mini .lat .user-btn { justify-content: center; padding: 6px 0; }
}
@media (prefers-reduced-motion: reduce) { body.com-lat, .lat, .lat-corpo { transition: none !important; } }
/* celular e tablet em pé: barra fina em cima, o menu abre por cima da página */
@media (max-width: 900px) {
  :root { --topo: 60px; }
  body.com-lat { padding-left: 0; }
  .lat { position: sticky; top: 0; bottom: auto; width: auto; height: 60px; flex-direction: row; align-items: center; gap: 4px; padding-right: 8px; box-shadow: 0 2px 12px rgba(2,25,57,.25); }
  .lat::after { top: auto; left: 0; width: auto; height: 3px; background: linear-gradient(90deg, var(--gold-2), var(--gold), #f0cf7a, var(--gold)); }
  .lat-topo { display: contents; }
  .lat-marca { order: 1; flex: 1; padding-left: 16px; }
  .lat-logo, .lat-logo img { height: 34px; }
  .lat-recolher { display: none; }
  .lat-acoes { order: 2; padding: 0; margin: 0; border: 0; }
  .lat-acoes .lat-txt { display: none; }
  .lat .notif-btn { width: 44px; height: 44px; justify-content: center; padding: 0; }
  .lat-menu-btn { order: 3; display: flex; width: 44px; height: 44px; color: #fff; }
  .lat .notif-panel { left: auto; right: 12px; top: 68px; width: 360px; max-width: calc(100vw - 24px); }
  .lat-corpo { position: fixed; top: 60px; left: 0; bottom: 0; width: min(300px, 86vw); background: var(--navy); transform: translateX(-100%); visibility: hidden; transition: transform .2s ease, visibility .2s; padding-top: 10px; }
  body.nav-open .lat-corpo { transform: none; visibility: visible; }
  .lat-fundo { display: block; position: fixed; inset: 60px 0 0 0; background: rgba(2,25,57,.45); z-index: 39; }
  .lat .user-panel { left: 12px; right: 12px; bottom: calc(100% + 6px); }
  .lat-item { height: 44px; padding: 0 12px; }
}

/* ===== Busca rápida (Ctrl+K) ===== */
.lat-kbd { margin-left: auto; font: 600 .68rem/1 Inter, system-ui, sans-serif; color: #8fa0b8; border: 1px solid rgba(255,255,255,.16); border-radius: 6px; padding: 4px 6px; }
.lat-buscar { margin-bottom: 2px; }
.busca { position: fixed; inset: 0; z-index: 90; background: rgba(2,25,57,.45); display: flex; align-items: flex-start; justify-content: center; padding: 12vh 16px 16px; }
.busca-box { width: min(640px, 100%); max-height: 72vh; display: flex; flex-direction: column; background: var(--surface); border-radius: 16px; box-shadow: 0 24px 70px rgba(2,25,57,.35); overflow: hidden; }
.busca-campo { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.busca-campo > svg { flex: 0 0 20px; width: 20px; height: 20px; fill: none; stroke: var(--muted); stroke-width: 2; stroke-linecap: round; }
.busca-campo input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font: 500 1.02rem Inter, system-ui, sans-serif; color: var(--text); padding: 4px 0; box-shadow: none; }
.busca-campo input::-webkit-search-cancel-button { display: none; }
.busca-x { border: 1px solid var(--line); background: #f7f5f2; color: var(--muted); font: 600 .72rem Inter, system-ui, sans-serif; border-radius: 6px; padding: 4px 7px; cursor: pointer; }
.busca-res { overflow-y: auto; padding: 6px 8px 10px; }
.busca-g { font-size: .76rem; font-weight: 700; color: var(--gold-txt); padding: 12px 10px 4px; }
.busca-g small { font-weight: 500; color: var(--muted); }
.busca-it { display: flex; align-items: center; gap: 12px; padding: 9px 10px; border-radius: 10px; text-decoration: none; color: inherit; }
.busca-it.on { background: var(--accent); }
.busca-ic { flex: 0 0 34px; height: 34px; border-radius: 10px; background: #f1efe9; color: var(--navy); display: flex; align-items: center; justify-content: center; }
.busca-it.on .busca-ic { background: var(--navy); color: var(--gold); }
.busca-ic svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.busca-tx { min-width: 0; display: flex; flex-direction: column; line-height: 1.3; }
.busca-tx strong { font-size: .92rem; color: var(--navy); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.busca-tx small { font-size: .78rem; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.busca-msg { padding: 22px 12px; text-align: center; color: var(--muted); font-size: .9rem; }
.busca-pe { display: flex; gap: 16px; padding: 10px 16px; border-top: 1px solid var(--line); font-size: .76rem; color: var(--muted); }
.busca-pe kbd, .busca-x { font-family: Inter, system-ui, sans-serif; }
.busca-pe kbd { display: inline-block; min-width: 20px; text-align: center; border: 1px solid var(--line); border-radius: 5px; padding: 1px 5px; margin-right: 3px; background: #f7f5f2; font-size: .7rem; }
@media (max-width: 900px) {
  .lat-acoes { display: flex; align-items: center; gap: 2px; }
  .lat-buscar { width: 44px; height: 44px; justify-content: center; padding: 0; margin: 0; color: #fff; }
  .lat-kbd { display: none; }
  .busca { padding: 10px; align-items: stretch; }
  .busca-box { max-height: none; }
  .busca-pe { display: none; }
}

.busca-x .so-cel { display: none; }
@media (max-width: 900px) { .busca-x .so-pc { display: none; } .busca-x .so-cel { display: inline; } }

/* barra de progresso do envio de fotos e vídeos */
.im-env-barra { display: block; height: 8px; margin: 10px auto 2px; max-width: 420px; border-radius: 99px; background: #e9e5df; overflow: hidden; }
.im-env-barra i { display: block; height: 100%; width: 0; background: var(--gold); border-radius: 99px; transition: width .3s ease; }
.im-enviando-txt .im-env-barra { margin: 6px 0 0; min-width: 220px; }
.im-form.enviando .im-enviando-txt { display: inline-block; vertical-align: middle; }

/* ===== Captações: abas e Perfil de captação ===== */
.cx-abas { display: flex; gap: 4px; border-bottom: 2px solid var(--line); margin: 4px 0 18px; overflow-x: auto; scrollbar-width: none; }
.cx-abas::-webkit-scrollbar { display: none; }
.cx-abas button { appearance: none; background: none; border: 0; border-bottom: 3px solid transparent; margin-bottom: -2px; padding: 12px 16px; font: 600 .95rem Inter, system-ui, sans-serif; color: var(--muted); cursor: pointer; white-space: nowrap; min-height: 46px; display: flex; align-items: center; gap: 8px; }
.cx-abas button:hover { color: var(--navy); }
.cx-abas button.on { color: var(--navy); border-bottom-color: var(--gold); }
.cx-abas button:focus-visible { outline: 2px solid var(--gold); outline-offset: -2px; }
.cx-abas b { background: var(--gold-soft); color: var(--gold-txt); border-radius: 99px; font-size: .74rem; padding: 1px 8px; }
.cx[data-tab="procura"] #cx-cab .cx-acts, .cx[data-tab="procura"] #cx-cab .page-head p { display: none; }
.cx-pf-intro { margin: -4px 0 18px; max-width: 70ch; }
.cx-pf-cols { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 22px; align-items: start; }
.cx-pf-form { padding: 18px; display: flex; flex-direction: column; gap: 12px; position: sticky; top: calc(var(--topo) + 16px); }
.cx-pf-form h2 { font-family: var(--head); font-size: 1.12rem; margin: 0; color: var(--navy); }
.cx-pf-form label { display: flex; flex-direction: column; gap: 5px; font-size: .86rem; font-weight: 600; color: var(--navy); margin: 0; }
.cx-pf-form input, .cx-pf-form textarea { font: 400 .95rem Inter, system-ui, sans-serif; color: var(--text); border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: #faf9f7; width: 100%; }
.cx-pf-form textarea { min-height: 120px; resize: vertical; line-height: 1.45; }
.cx-pf-form input:focus, .cx-pf-form textarea:focus { outline: 2px solid var(--gold); outline-offset: 1px; }
.cx-pf-dica { font-weight: 400; color: var(--muted); font-size: .78rem; }
.cx-pf-rs { position: relative; display: block; }
.cx-pf-rs > span { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--muted); font-size: .95rem; pointer-events: none; }
.cx-pf-rs input { padding-left: 38px; font-variant-numeric: tabular-nums; }
.cx-pf-bts { display: flex; gap: 8px; flex-wrap: wrap; }
.cx-pf-topo { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.cx-pf-topo input[type=search] { flex: 1 1 220px; min-width: 0; width: auto; border: 1px solid var(--line); border-radius: 10px; padding: 9px 12px; background: var(--surface); font: inherit; }
.cx-pf-topo select { width: auto; border: 1px solid var(--line); border-radius: 10px; padding: 9px 10px; background: var(--surface); font: inherit; }
.cx-pf-estados { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.cx-pf-estados button { appearance: none; border: 1px solid var(--line); background: var(--surface); border-radius: 99px; padding: 7px 13px; font: 600 .84rem Inter, system-ui, sans-serif; color: var(--muted); cursor: pointer; }
.cx-pf-estados button.on { background: var(--navy); border-color: var(--navy); color: #fff; }
.cx-pf-lista { display: flex; flex-direction: column; gap: 12px; }
.cx-pf { padding: 16px 18px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 16px; }
.cx-pf.fechada { opacity: .72; }
.cx-pf-nome { font-family: var(--head); font-weight: 700; font-size: 1.05rem; color: var(--navy); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; overflow-wrap: anywhere; }
.cx-pf-pill { font: 700 .7rem Inter, system-ui, sans-serif; border-radius: 99px; padding: 2px 9px; }
.cx-pf-pill.ok { background: var(--ok-bg); color: var(--ok); }
.cx-pf-pill.novo { background: var(--accent); color: var(--navy-2); }
.cx-pf-pill.perdido { background: var(--err-bg); color: var(--err); }
.cx-pf-tel { font-variant-numeric: tabular-nums; font-size: .92rem; }
.cx-pf-tel a { color: var(--navy-2); font-weight: 600; }
.cx-pf-valor { grid-column: 2; grid-row: 1 / span 2; text-align: right; }
.cx-pf-valor strong { display: block; font-family: var(--head); font-size: 1.3rem; color: var(--navy); font-variant-numeric: tabular-nums; white-space: nowrap; }
.cx-pf-valor small { color: var(--muted); font-size: .76rem; }
.cx-pf-obs { grid-column: 1 / -1; background: #faf9f7; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; font-size: .92rem; white-space: pre-line; overflow-wrap: anywhere; }
.cx-pf-mot { grid-column: 1 / -1; font-size: .84rem; color: var(--err); }
.cx-pf-motivos { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; background: #fdf5f5; border: 1px solid #efc9c9; border-radius: 10px; padding: 10px 12px; }
.cx-pf-motivos span { font-size: .84rem; font-weight: 600; color: var(--err); margin-right: 4px; }
.cx-pf-motivos button { appearance: none; border: 1px solid #efc9c9; background: var(--surface); border-radius: 99px; padding: 5px 11px; font: 500 .82rem Inter, system-ui, sans-serif; color: var(--text); cursor: pointer; }
.cx-pf-motivos button:hover { border-color: var(--err); }
.cx-pf-pe { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.cx-pf-quem { margin-right: auto; color: var(--muted); font-size: .8rem; }
.cx-pf-bate { font-size: .82rem; color: var(--gold-txt); font-weight: 600; }
.cx-pf-perder { background: var(--surface); color: var(--err); border: 1px solid #efc9c9; }
.cx-pf-excluir { appearance: none; background: none; border: 0; color: var(--err); font: 600 .82rem Inter, system-ui, sans-serif; text-decoration: underline; cursor: pointer; padding: 4px; }
.cx-pf-vazio { padding: 28px; text-align: center; color: var(--muted); }
@media (max-width: 860px) { .cx-pf-cols { grid-template-columns: minmax(0, 1fr); } .cx-pf-form { position: static; } }
@media (max-width: 480px) { .cx-pf { grid-template-columns: minmax(0, 1fr); } .cx-pf-valor { grid-column: 1; grid-row: auto; text-align: left; } }

/* ===== Cargos: editor de permissões ===== */
.cg-form { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; align-items: start; max-width: 1180px; }
.cg-main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.cg-bloco { margin: 0; }
.cg-modelos { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.cg-modelos-t { font-size: .84rem; font-weight: 600; color: var(--muted); margin-right: 2px; }
.cg-chip { appearance: none; border: 1px solid var(--line); background: var(--surface); color: var(--navy); border-radius: 99px; padding: 6px 13px; font: 600 .84rem Inter, system-ui, sans-serif; cursor: pointer; }
.cg-chip:hover { border-color: var(--gold); background: var(--gold-soft); }
.cg-limpar { color: var(--muted); }
.cg-copiar { width: auto; border: 1px solid var(--line); border-radius: 99px; padding: 6px 12px; font: 600 .84rem Inter, system-ui, sans-serif; color: var(--navy); background: var(--surface); }
.cg-grupo { padding: 6px 0 4px; }
.cg-grupo-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 20px 8px; }
.cg-grupo-h h2 { margin: 0; font-size: 1rem; color: var(--navy); }
.cg-linha { display: flex; align-items: center; gap: 16px; padding: 12px 20px; border-top: 1px solid var(--line); }
.cg-linha.ativa { background: #fbf8ef; }
.cg-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.cg-txt strong { color: var(--navy); font-size: .94rem; }
.cg-txt small { color: var(--muted); font-size: .8rem; line-height: 1.4; }
.cg-sens { display: inline-block; vertical-align: 1px; margin-left: 4px; font-size: .68rem; font-weight: 700; color: #8a4b00; background: #fdf0dc; border-radius: 99px; padding: 1px 8px; }
.cg-ops { display: flex; gap: 6px; flex: 0 0 auto; }
.cg-op { position: relative; display: inline-flex; margin: 0; cursor: pointer; }
.cg-op input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.cg-op span { display: inline-flex; align-items: center; justify-content: center; min-width: 74px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 10px; font-size: .84rem; font-weight: 600; color: var(--muted); background: var(--surface); transition: background .12s, color .12s, border-color .12s; }
.cg-op-1 span { min-width: 100px; }
.cg-op span::before { content: ""; width: 14px; height: 14px; margin-right: 6px; border: 1.5px solid currentColor; border-radius: 4px; flex: 0 0 14px; }
.cg-op input:checked + span { background: var(--navy); border-color: var(--navy); color: #fff; }
.cg-op input:checked + span::before { background: var(--gold); border-color: var(--gold); box-shadow: inset 0 0 0 2px var(--navy); }
.cg-op.exc input:checked + span { background: #7a2326; border-color: #7a2326; }
.cg-op.exc input:checked + span::before { box-shadow: inset 0 0 0 2px #7a2326; }
.cg-op input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 2px; }
.cg-op:hover input:not(:checked):not(:disabled) + span { border-color: var(--navy); color: var(--navy); }
.cg-op.trava { cursor: not-allowed; opacity: .45; }
.cg-resumo { position: sticky; top: calc(var(--topo) + 20px); margin: 0; }
.cg-resumo h2 { margin: 0 0 10px; font-size: 1rem; color: var(--navy); }
.cg-resumo ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; max-height: 52vh; overflow-y: auto; }
.cg-resumo li { display: flex; flex-direction: column; font-size: .88rem; line-height: 1.3; }
.cg-resumo li strong { color: var(--navy); }
.cg-resumo li span { color: var(--muted); font-size: .8rem; }
.cg-pessoas { display: flex; flex-direction: column; gap: 4px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); font-size: .86rem; }
.cg-pessoas span { color: var(--muted); }
.cg-form .salvar-fixo { grid-column: 1 / -1; }
.cargo-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.cargo-tag { font-size: .76rem; font-weight: 600; color: var(--navy); background: var(--accent); border-radius: 99px; padding: 3px 9px; }
.cargo-tag.parcial { background: #f1efe9; color: #5a6578; }
@media (max-width: 1100px) { .cg-form { grid-template-columns: minmax(0, 1fr); } .cg-resumo { position: static; } }
@media (max-width: 640px) {
  .cg-linha { flex-direction: column; align-items: stretch; gap: 10px; padding: 12px 14px; }
  .cg-ops { flex-wrap: wrap; }
  .cg-op { flex: 1; } .cg-op span { width: 100%; min-width: 0; }
  .cg-grupo-h { padding: 12px 14px 8px; }
}
.cg-vergrupo .cg-grupo-h { align-items: flex-start; }
.cg-vergrupo .cg-grupo-h p { margin: 2px 0 0; }
.cg-padrao { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin: 0 0 16px; padding: 14px 18px; }
.cg-padrao-f { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0; }
.cg-padrao-f label { display: flex; flex-direction: column; margin: 0; }
.cg-padrao-f label strong { color: var(--navy); }
.cg-padrao-f label small { font-size: .8rem; }
.cg-padrao-f select { width: auto; min-width: 220px; }
.cg-padrao-f2 { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0; }
.cg-badge-padrao { display: inline-block; vertical-align: 2px; font: 700 .68rem Inter, system-ui, sans-serif; color: var(--gold-txt); background: var(--gold-soft); border-radius: 99px; padding: 2px 8px; margin-left: 4px; }
.cargo-ve { margin: 0 0 8px; font-size: .84rem; color: #3b4658; }
.cg-tudo { white-space: nowrap; }
.im-preparando { position: fixed; left: 50%; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: 95; display: flex; align-items: center; gap: 12px; width: min(440px, calc(100vw - 24px)); background: var(--navy); color: #fff; border-radius: 14px; padding: 12px 16px; box-shadow: 0 12px 40px rgba(2,25,57,.35); }
.im-preparando strong { display: block; font-size: .92rem; }
.im-preparando small { display: block; font-size: .78rem; color: #c9d4e4; line-height: 1.35; margin-top: 2px; }
.im-prep-roda { flex: 0 0 22px; width: 22px; height: 22px; border-radius: 50%; border: 3px solid rgba(255,255,255,.25); border-top-color: var(--gold); animation: im-gira .9s linear infinite; }
@keyframes im-gira { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .im-prep-roda { animation: none; } }
.cx-pf-fin { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.cx-pf-fin legend { width: 100%; padding: 0; margin-bottom: 5px; font-size: .86rem; font-weight: 600; color: var(--navy); }
.cx-pf-form .cx-pf-fin label { flex-direction: row; align-items: center; gap: 6px; font-weight: 600; font-size: .86rem; color: var(--navy); border: 1px solid var(--line); border-radius: 99px; padding: 7px 12px; cursor: pointer; background: #faf9f7; }
.cx-pf-form .cx-pf-fin label:has(input:checked) { background: var(--navy); border-color: var(--navy); color: #fff; }
.cx-pf-form .cx-pf-fin input { width: auto; margin: 0; accent-color: var(--gold); }
.cx-pf-pill.fin { background: #f1efe9; color: #5a4a1e; }
.cx-pf-pill.fin.comercial { background: #e8eef8; color: #1d3f73; }
