/* CoreStay: base visual (minimalista). Cores neutras, uma cor de ação (petróleo), amarelo só para foco e destaque. */
:root { --bg:#F4F6F7; --bg2:#EBEFF1; --card:#fff; --ink:#0F2530; --ink2:#3F5560; --mut:#5B6F78; --line:#E3E8EA; --line2:#EEF1F2; --hover:#F5F7F8;
  --petrol:#0E4A5A; --petrol-tx:#fff; --soft:#E6EFF1; --mark:#F5C842; --star:#C98F00; --danger:#B42318;
  --ok:#2F7A4B; --warn:#9A5B00; --info:#2563EB; --off:#7C8C93;
  --display:"Bricolage Grotesque","Trebuchet MS",system-ui,sans-serif; --body:"IBM Plex Sans",system-ui,sans-serif }
@media (prefers-color-scheme: dark) { :root { --bg:#0B171D; --bg2:#13262F; --card:#10212A; --ink:#E4ECEF; --ink2:#C2D0D6; --mut:#8FA5AF; --line:#1E333D; --line2:#182B34; --hover:#142A33;
  --petrol:#5FC0D4; --petrol-tx:#04202A; --soft:#173540; --star:#F0B429; --danger:#F97066; --ok:#5CC28A; --warn:#E8B04B; --info:#7AA7FF; --off:#8FA5AF } }
* { box-sizing:border-box }
body { margin:0; background:var(--bg); color:var(--ink); font-family:var(--body); font-size:14.5px; line-height:1.5; -webkit-font-smoothing:antialiased }
h1, h2, h3 { font-family:var(--display); letter-spacing:-.02em; margin:0 }
h1 { font-size:clamp(22px,3vw,26px); font-weight:700; line-height:1.15 } h2 { font-size:18px; font-weight:700 } h3 { font-size:15px; font-weight:600; font-family:var(--body); letter-spacing:0 }
a { color:inherit } :focus-visible { outline:2px solid var(--mark); outline-offset:2px; border-radius:6px }
.hide { display:none !important } .mut { color:var(--mut); font-size:13.5px }
.ell { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0 }
.ico { width:15px; height:15px; flex:none; vertical-align:-3px; stroke:currentColor; fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round }

/* topo */
.top { display:flex; align-items:center; gap:14px; height:56px; padding:0 20px; background:var(--card); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:30 }
.brand { display:flex; align-items:center; gap:8px; font-family:var(--display); font-weight:700; font-size:17px; text-decoration:none; white-space:nowrap }
.brand svg { width:22px; height:22px }
.who { display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--mut); flex:1; min-width:0 } .who a { text-decoration:none } .who a:hover { color:var(--ink) }
.who .condo-nome { color:var(--ink); font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.conta { position:relative; margin-left:auto } .conta > summary { list-style:none; display:flex; align-items:center; gap:8px; height:40px; padding:0 8px 0 4px; border-radius:8px; cursor:pointer; color:var(--ink); white-space:nowrap }
.conta > summary::-webkit-details-marker { display:none } .conta > summary:hover { background:var(--hover) }
.conta .av { width:28px; height:28px; border-radius:50%; background:var(--soft); color:var(--petrol); display:grid; place-items:center; font-size:11.5px; font-weight:600; flex:none }
.conta-menu { position:absolute; right:0; top:calc(100% + 6px); min-width:220px; background:var(--card); border:1px solid var(--line); border-radius:10px; padding:6px; box-shadow:0 12px 32px rgba(0,0,0,.12); display:grid; z-index:40 }
.conta-menu small { display:block; padding:8px 10px 6px; color:var(--mut); font-size:12.5px; border-bottom:1px solid var(--line2); margin-bottom:4px }
.conta-menu a { display:block; padding:9px 10px; border-radius:7px; color:var(--ink); font-size:14px } .conta-menu a:hover { background:var(--hover) }

.page { max-width:1080px; margin:24px auto; padding:0 20px; display:grid; gap:18px }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:18px }
.card > h2 { margin-bottom:12px }
.row { display:flex; gap:8px; flex-wrap:wrap; align-items:flex-end }
.field { display:grid; gap:4px; font-size:12.5px; color:var(--mut); font-weight:500 } .field.grow { flex:1; min-width:160px }

input, select, textarea { font:inherit; font-size:14px; padding:7px 10px; min-height:36px; border-radius:8px; border:1px solid var(--line); background:var(--card); color:var(--ink); min-width:0 }
textarea { line-height:1.5 } input[type=checkbox], input[type=radio] { min-height:0; accent-color:var(--petrol) }
input:hover, select:hover, textarea:hover { border-color:color-mix(in srgb, var(--mut) 45%, var(--line)) }
input:focus, select:focus, textarea:focus { border-color:var(--petrol); outline:none; box-shadow:0 0 0 3px color-mix(in srgb, var(--petrol) 14%, transparent) }
button, .btn { font:inherit; font-weight:600; font-size:13.5px; line-height:1.2; cursor:pointer; padding:0 14px; min-height:36px; border-radius:8px; border:1px solid var(--petrol); background:var(--petrol); color:var(--petrol-tx); text-decoration:none; display:inline-flex; align-items:center; justify-content:center; gap:6px; white-space:nowrap }
button:hover, .btn:hover { filter:brightness(1.08) }
button.ghost, .btn.ghost { background:var(--card); color:var(--ink); border-color:var(--line); font-weight:500 } button.ghost:hover, .btn.ghost:hover { border-color:var(--mut); filter:none }
button.mark { background:var(--mark); border-color:var(--mark); color:#0A2430 }
button.danger { background:transparent; color:var(--danger); border-color:transparent; font-weight:500 } button.danger:hover { border-color:var(--danger); filter:none }
button.sm, .btn.sm { padding:0 10px; min-height:30px; font-size:13px; border-radius:7px }
button:disabled { opacity:.5; cursor:default; filter:none }

/* tabelas: uma linha por registro; texto longo termina em "…" */
table { width:100%; border-collapse:collapse; font-size:14px } th { text-align:left; font-weight:500; color:var(--mut); font-size:12.5px; white-space:nowrap }
th, td { padding:9px 10px; border-bottom:1px solid var(--line2); vertical-align:middle } td.act { white-space:nowrap; text-align:right }
tbody tr:hover td { background:var(--hover) }
.scroll { overflow-x:auto } td input, td select { width:100%; padding:5px 8px; min-height:32px; font-size:14px }
.empty { padding:22px; text-align:center; color:var(--mut) }

/* indicadores: faixa única com divisórias finas */
.kpis { display:grid; grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:0; background:var(--card); border:1px solid var(--line); border-radius:12px; overflow:hidden }
.kpi, .kpis .kpi.card { border:0; border-radius:0; padding:13px 16px !important; box-shadow:1px 1px 0 0 var(--line2); background:transparent; display:flex; flex-direction:column-reverse; justify-content:flex-end; gap:2px; min-width:0 }
.kpi b { display:block; font-family:var(--body); font-weight:600; font-size:22px; line-height:1.25; letter-spacing:-.01em; font-variant-numeric:tabular-nums; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.kpi span { font-size:12.5px; color:var(--mut); white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.kpi b .stars { font-size:13px; letter-spacing:0 }

.notice { background:color-mix(in srgb, var(--mark) 22%, var(--card)); color:var(--ink); border:1px solid color-mix(in srgb, var(--mark) 60%, var(--line)); border-radius:10px; padding:11px 14px; margin:12px 0; font-size:14px }
.notice code { background:rgba(10,36,48,.1); padding:2px 8px; border-radius:6px; font-size:15px; font-weight:600; user-select:all }
.notice button { margin-left:8px }
.error { color:var(--danger); font-size:13.5px; min-height:20px }

/* abas soltas (usadas fora do menu lateral) */
.tabs { display:flex; gap:2px; border-bottom:1px solid var(--line); overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; margin-bottom:4px }
.tab { background:none; border:0; border-bottom:2px solid transparent; border-radius:0; padding:10px 11px; min-height:0; color:var(--mut); white-space:nowrap; flex:0 0 auto; font-size:14px; font-weight:500 } .tab:hover { color:var(--ink); filter:none } .tab[aria-selected=true] { color:var(--ink); border-color:var(--petrol) }

dialog { border:1px solid var(--line); border-radius:14px; background:var(--card); color:var(--ink); padding:22px; width:min(680px, calc(100% - 28px)) }
dialog::backdrop { background:rgba(5,20,28,.5) }
.dhead { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px }

.log { height:380px; overflow-y:auto; display:flex; flex-direction:column; margin-bottom:12px }
.m { padding:10px 14px; border-radius:14px; margin:6px 0; max-width:88%; line-height:1.55 }
.m.u { white-space:pre-wrap }
.m p { margin:0 0 .6em } .m p:last-of-type { margin-bottom:0 }
.m ul { margin:.3em 0 .6em; padding-left:1.25em } .m li { margin:.2em 0 }
.m.u { align-self:flex-end; background:var(--petrol); color:var(--petrol-tx); border-bottom-right-radius:4px }
.m.a { align-self:flex-start; background:var(--card); border:1px solid var(--line); border-bottom-left-radius:4px }
.m sup { font-weight:600; background:var(--soft); color:var(--petrol); padding:0 4px; border-radius:4px }
.m details { margin-top:10px; font-size:13.5px; color:var(--mut); border-top:1px solid var(--line); padding-top:8px; white-space:normal }
.m summary { cursor:pointer; font-weight:600; color:var(--ink) } .m details div { margin-top:8px } .m details q { display:block; font-style:italic; quotes:none }
.tag { font-size:12px; color:var(--mut); margin-top:6px }

/* ícones por tipo de documento: finos e de uma cor só */
.ic { flex:none; vertical-align:-3px; margin-right:6px; color:var(--mut); width:16px; height:16px }
.ic * { stroke-width:1.6 }
.titcel { display:flex; align-items:center; gap:8px } .titcel .ic { margin:0 }

/* filtros (chips) */
.chips { display:flex; flex-wrap:nowrap; gap:6px; margin-top:12px; overflow-x:auto; scrollbar-width:none; padding-bottom:2px }
.chip { display:inline-flex; align-items:center; gap:2px; padding:0 12px; min-height:32px; border-radius:999px; background:var(--card); color:var(--ink); border:1px solid var(--line); font-weight:500; font-size:13px; flex:none }
.chip .ic { margin-right:5px; width:14px; height:14px } .chip span { color:var(--mut); font-size:12px; margin-left:5px }
.chip[aria-pressed=true] { background:var(--ink); color:var(--card); border-color:var(--ink) } .chip[aria-pressed=true] span, .chip[aria-pressed=true] .ic { color:inherit; opacity:.75 }
.achado { font-size:12.5px; color:var(--mut); margin-top:4px } .achado mark { background:var(--mark); color:#0A2430; padding:0 2px; border-radius:3px }

/* avaliação das respostas */
.fb { display:flex; align-items:center; gap:8px; margin-top:10px; font-size:13px; color:var(--mut) }
.sel-condo { width:auto; max-width:240px; min-height:34px; padding:4px 28px 4px 10px; font-size:13.5px; font-weight:600; margin:0; border-color:var(--line) }

/* painéis, listas, WhatsApp */
.pn-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:14px; margin-top:14px }
.pn-grid .card { margin:0; padding:14px 16px } .pn-grid h3 { margin:0 0 8px; font-size:13.5px }
.seg { display:inline-flex; gap:2px; padding:3px; background:var(--bg2); border-radius:9px; border:0 } .seg button { border:0; border-radius:7px; background:transparent; color:var(--ink2); padding:0 12px; min-height:30px; font-size:13px; font-weight:500 }
.seg button[aria-pressed=true] { background:var(--card); color:var(--ink); font-weight:600; box-shadow:0 1px 2px rgba(15,37,48,.1) }

/* situação: ponto pequeno + palavra (nunca só a cor) */
.pill { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:500; padding:0; border-radius:0; background:none; color:var(--ink2); white-space:nowrap; line-height:1.4; margin-right:8px }
.pill::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--off); flex:none }
.pill.alto { color:var(--danger) } .pill.alto::before { background:var(--danger) }
.pill.medio::before { background:var(--warn) } .pill.baixa::before { background:var(--ok) } .pill.info::before { background:var(--off) }
.al { display:flex; gap:10px; align-items:center; min-height:38px; padding:4px 0; border-bottom:1px solid var(--line2) } .al:last-child { border:0 } .al > span:not(.pill) { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0 } .al > .ver { margin-left:auto; flex:none; white-space:nowrap; min-height:44px } .al .pill { margin:0; min-width:64px }
.hb { display:grid; grid-template-columns:120px 1fr 28px; gap:10px; align-items:center; font-size:13px; margin:6px 0 } .hb span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--ink2) } .hb b { font-weight:500; text-align:right; font-variant-numeric:tabular-nums }
.hb i { display:block; height:6px; border-radius:3px; background:var(--petrol) } .hb div { background:var(--line2); border-radius:3px }
.clima { display:flex; height:8px; border-radius:4px; overflow:hidden; margin:8px 0 } .clima i { display:block } .clima .p { background:var(--ok) } .clima .n { background:var(--line) } .clima .g { background:var(--danger) }
.li { padding:8px 0; border-bottom:1px solid var(--line2); display:flex; gap:10px; align-items:center; justify-content:space-between; min-width:0 } .li:last-child { border:0 } .li small { color:var(--mut); display:block }
.li > div { min-width:0 }
.li.feito b { text-decoration:line-through; color:var(--mut) }
.spark { width:100%; height:64px } .spark polyline { fill:none; stroke:var(--petrol); stroke-width:1.6 } .spark path { fill:color-mix(in srgb, var(--petrol) 12%, transparent); stroke:none }
.cp { width:100%; font-family:monospace; font-size:13px }

/* ajuda das telas: recolhida em "Como funciona" */
details.ajuda { margin:0 0 12px; font-size:13.5px; color:var(--mut) }
details.ajuda > summary { list-style:none; display:inline-flex; align-items:center; gap:6px; cursor:pointer; color:var(--mut); font-size:13px; padding:2px 0 }
details.ajuda > summary::-webkit-details-marker { display:none } details.ajuda > summary:hover { color:var(--ink) }
details.ajuda > p { margin:6px 0 0 !important; max-width:820px; line-height:1.55 }

/* blocos recolhíveis (relatórios, indicadores longos) */
details.recolhe { padding:0 } details.recolhe > summary { list-style:none; display:flex; align-items:center; gap:10px; padding:13px 16px; cursor:pointer; min-width:0 }
details.recolhe > summary::-webkit-details-marker { display:none } details.recolhe > summary:hover { background:var(--hover); border-radius:12px }
details.recolhe > summary b { white-space:nowrap } details.recolhe > summary .mut { flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; font-size:13px }
details.recolhe > summary::after { content:""; width:8px; height:8px; border-right:1.6px solid var(--mut); border-bottom:1.6px solid var(--mut); transform:rotate(45deg); margin:-4px 4px 0 auto; flex:none; transition:transform .15s }
details.recolhe[open] > summary::after { transform:rotate(225deg); margin-top:4px }
details.recolhe > .corpo { padding:0 16px 16px; border-top:1px solid var(--line2) }

@media print { body.imp-gestao header, body.imp-gestao nav, body.imp-gestao .tabs, body.imp-gestao .app .side, body.imp-gestao .barra-cel, body.imp-gestao #pn-modo, body.imp-gestao #pn-atualizar,
  body.imp-gestao .kpis, body.imp-gestao .pn-grid, body.imp-gestao #gs-dias, body.imp-gestao #gs-copiar, body.imp-gestao #gs-imprimir, body.imp-gestao #pn-alertas { display: none !important; }
  body.imp-gestao #gs-card { border: 0; box-shadow: none; } }

/* interface do síndico */
#kpis { display:none }
main.page, main.page > * { min-width:0 }
main.page h1 { overflow-wrap:anywhere }
.seg { max-width:100%; flex-wrap:wrap } .seg button { white-space:nowrap }
@media (max-width:700px) {
  body { font-size:15px }
  .card { padding:14px }
  .top { padding:0 8px 0 14px; gap:8px }
  .who .quem { display:none }
  .seg { display:flex } .seg button { flex:1 1 auto }
  .page { margin:16px auto; padding:0 14px }
}
.page:has(#kpis) { max-width:1200px }

/* layout com menu lateral (gestão) */
.app { display:flex; align-items:stretch; min-height:calc(100vh - 56px) }
.app .side { width:232px; flex:none; padding:14px 12px 24px; background:var(--card); border-right:1px solid var(--line); display:flex; flex-direction:column; gap:1px; position:sticky; top:56px; height:calc(100vh - 56px); overflow-y:auto; scrollbar-width:thin; border-bottom:0; margin:0 }
.app .side .grupo { font-size:11.5px; font-weight:600; color:var(--mut); text-transform:uppercase; letter-spacing:.06em; padding:14px 10px 6px }
.app .side .tab { display:flex; align-items:center; gap:10px; width:100%; min-height:34px; padding:0 10px; border:0; border-radius:8px; color:var(--ink2); font-size:13.5px; font-weight:500; text-align:left; justify-content:flex-start }
.app .side .tab:hover { background:var(--hover); color:var(--ink) }
.app .side .tab[aria-selected=true] { background:var(--soft); color:var(--petrol); font-weight:600 }
.app .side .tab .ico { width:16px; height:16px; stroke-width:1.5 }
.app .side .tab .n { margin-left:auto; font-size:12px; color:var(--mut); font-weight:500; font-variant-numeric:tabular-nums }
.app .side .tab[aria-selected=true] .n { color:inherit }
.app > .page { flex:1; min-width:0; max-width:1120px; margin:0; padding:26px 32px 48px; align-content:start }
.conteudo { background:none; border:0; padding:0; border-radius:0 }
.conteudo > [id^=t-] { padding-top:14px !important }
.barra-cel { display:none }
@media (max-width:900px) {
  .app { display:block; min-height:0 }
  .app .side { position:fixed; top:56px; left:0; bottom:0; height:auto; width:min(300px, 86vw); z-index:50; transform:translateX(-105%); transition:transform .2s; box-shadow:0 0 40px rgba(0,0,0,.18) }
  body.menu-aberto .app .side { transform:none }
  body.menu-aberto::after { content:""; position:fixed; inset:56px 0 0; background:rgba(5,20,28,.4); z-index:45 }
  .app .side .tab { min-height:44px; font-size:15px }
  .app > .page { padding:18px 14px 96px }
  .barra-cel { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); position:fixed; left:0; right:0; bottom:0; z-index:40; height:calc(62px + env(safe-area-inset-bottom)); padding-bottom:env(safe-area-inset-bottom); background:var(--card); border-top:1px solid var(--line) }
  .barra-cel button { all:unset; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; font-size:11px; color:var(--mut); cursor:pointer; position:relative }
  .barra-cel button[aria-current=true] { color:var(--petrol); font-weight:600 }
  .barra-cel .ico { width:20px; height:20px; stroke-width:1.5 }
  .barra-cel .n { position:absolute; top:7px; left:calc(50% + 4px); min-width:16px; height:16px; padding:0 4px; border-radius:8px; background:var(--danger); color:#fff; font-size:10px; font-weight:600; line-height:16px; text-align:center }
}

/* tabela de chamados: uma linha por chamado; no celular vira lista */
table.linhas td { white-space:nowrap; max-width:240px; overflow:hidden; text-overflow:ellipsis }
table.linhas td.tit { max-width:320px } table.linhas td.tit b { font-weight:500 }
table.linhas td .sub { color:var(--mut) }
@media (max-width:700px) {
  table.linhas thead { display:none }
  table.linhas, table.linhas tbody { display:block } .scroll:has(table.linhas) { overflow:visible }
  table.linhas tr { display:flex; flex-wrap:wrap; align-items:center; gap:2px 10px; padding:10px 2px; border-bottom:1px solid var(--line2) }
  table.linhas td { border:0; padding:0; font-size:12.5px; color:var(--mut); max-width:100% }
  table.linhas td.tit { flex:1 0 100%; font-size:15px; color:var(--ink); max-width:100% }
  table.linhas td.cel-off { display:none }
  .al > .ver .lg { display:none }
}

/* documentos: campos parecem texto até passar o mouse ou clicar */
#t-docs td input, #t-docs td select { border-color:transparent; background:transparent }
#t-docs tr:hover td input, #t-docs tr:hover td select, #t-docs td input:focus, #t-docs td select:focus { border-color:var(--line); background:var(--card) }

/* acessos do assistente */
.perm-off { display:none !important }
.ro button:not([data-ro-ok]), .ro form { display:none !important }

/* estrelas de avaliação (1 a 4) */
.estrelas { display:flex; align-items:center; gap:2px; flex-wrap:wrap } .estrelas button { background:none; border:0; padding:0 3px; font-size:30px; line-height:1; color:var(--line); cursor:pointer; min-width:44px; min-height:44px; filter:none }
.estrelas button.on { color:var(--star) } .estrelas button:focus-visible { outline:2px solid var(--petrol); border-radius:6px } .estrelas .est-rot { margin-left:10px; font-size:14px }
.av-box { border:1px solid var(--line); border-radius:12px; padding:14px; margin:14px 0 }
.stars { color:var(--star); letter-spacing:1px; white-space:nowrap } .stars s { text-decoration:none; color:var(--line) }
.dist { display:grid; grid-template-columns:22px 1fr 34px; gap:2px 8px; align-items:center; font-size:12.5px; color:var(--mut); margin-top:6px }
.meter { background:var(--line2); border-radius:4px; height:8px; overflow:hidden } .meter i { display:block; height:100%; background:var(--petrol) }

/* painel: seletor de condomínios e quadros que levam à aba de origem */
.combo { position:relative; max-width:460px } .combo-btn { width:100%; display:flex; justify-content:space-between; align-items:center; gap:10px; text-align:left; min-width:240px }
.combo-box { position:absolute; z-index:20; left:0; right:0; top:calc(100% + 6px); min-width:260px; background:var(--card,#fff); border:1px solid var(--line); border-radius:12px; padding:12px; box-shadow:0 12px 32px rgba(0,0,0,.14) }
.combo-lista { max-height:280px; overflow:auto; border-top:1px solid var(--line) } .combo-lista label { display:flex; align-items:center; gap:10px; padding:8px 4px; cursor:pointer; border-bottom:1px solid var(--line2); font-size:14px } .combo-lista label:hover { background:var(--hover) }
.kp-link { cursor:pointer; position:relative } .kp-link:hover, .kp-link:focus-visible { background:var(--hover) !important }
.kp-link em { display:none }
button.ver { background:none; border:0; padding:0; margin:0; font:inherit; font-size:13px; color:var(--petrol); font-weight:500; text-decoration:none; cursor:pointer; width:auto; min-height:0 } button.ver:hover { text-decoration:underline; filter:none }
details.pesq > summary { list-style:none } details.pesq > summary::-webkit-details-marker { display:none }
details.pesq > summary::before { content:"▸ Expandir"; font-size:12.5px; color:var(--mut); order:-1; flex-basis:100%; margin-bottom:2px } details.pesq[open] > summary::before { content:"▾ Recolher" }

/* linhas de lista: título em uma linha, detalhes em uma linha, ação principal + menu "⋯" */
.li > .l { flex:1; min-width:0 }
.li .l1 { display:flex; align-items:center; gap:10px; min-width:0 } .li .l1 b { font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0 } .li .l1 .pill { margin:0 }
.li .l small { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:12.5px; margin-top:1px }
.li .acoes { display:flex; align-items:center; gap:6px; flex:none }
details.mais { position:relative } details.mais > summary { list-style:none; width:30px; height:30px; display:grid; place-items:center; border:1px solid var(--line); border-radius:7px; cursor:pointer; color:var(--mut); background:var(--card) }
details.mais > summary::-webkit-details-marker { display:none } details.mais > summary:hover, details.mais[open] > summary { border-color:var(--mut); color:var(--ink) }
.mais-menu { position:absolute; right:0; top:calc(100% + 4px); z-index:25; min-width:200px; background:var(--card); border:1px solid var(--line); border-radius:10px; padding:5px; box-shadow:0 12px 32px rgba(0,0,0,.14); display:grid; gap:1px }
.mais-menu button, .mais-menu .btn { justify-content:flex-start; border:0 !important; background:none; color:var(--ink); font-weight:400; min-height:34px; font-size:13.5px; width:100%; border-radius:7px; padding:0 10px; filter:none }
.mais-menu button:hover, .mais-menu .btn:hover { background:var(--hover) } .mais-menu button[data-cdel], .mais-menu button[data-cpdel] { color:var(--danger) }
@media (max-width:700px) { .li { align-items:flex-start } .li .l1 { flex-wrap:wrap; gap:4px 10px } .li .l1 b { flex:1 0 100% } }

/* ajustes finos */
.app { background:linear-gradient(to right, var(--card) 232px, var(--line) 232px, var(--line) 233px, transparent 233px) }
@media (max-width:900px) { .app { background:none } }
.pn-grid { align-items:start }
.kpi > b { display:flex; flex-direction:row-reverse; justify-content:flex-end; align-items:baseline; gap:8px }
.kpi > b b { display:inline; font-size:inherit; font-weight:inherit }
@media (min-width:901px) { #t-painel > .row:first-child { margin-top:-60px; margin-bottom:28px; justify-content:flex-end; min-height:36px } }
#t-painel > .row:first-child #pn-atualizar { margin-left:auto }
table.linhas { table-layout:fixed; min-width:760px }
table.linhas th:nth-child(1) { width:30% } table.linhas th:nth-child(2) { width:120px } table.linhas th:nth-child(3) { width:19% }
table.linhas th:nth-child(4) { width:12% } table.linhas th:nth-child(5) { width:17% } table.linhas th:nth-child(6) { width:150px } table.linhas th:nth-child(7) { width:64px }
table.linhas td { max-width:none } table.linhas td.tit.novo b { font-weight:600 }
#ch-cont { white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
@media (max-width:700px) { table.linhas { min-width:0 } }
details.card:not(.recolhe) > summary { list-style:none; display:flex; align-items:center; gap:10px; cursor:pointer; min-width:0 }
details.card:not(.recolhe) > summary::-webkit-details-marker { display:none }
details.card:not(.recolhe) > summary > .mut { flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0 }
details.card:not(.recolhe) > summary::after { content:""; width:8px; height:8px; border-right:1.6px solid var(--mut); border-bottom:1.6px solid var(--mut); transform:rotate(45deg); margin:-4px 4px 0 auto; flex:none }
details.card:not(.recolhe)[open] > summary::after { transform:rotate(225deg); margin-top:4px }
.filtros-extra { margin:0 0 10px }
.who > span:not(.condo-nome) { white-space:nowrap }
@media (max-width:700px) { .who > span:not(.condo-nome), .who > a { display:none } }
details.card:not(.recolhe) > summary > b { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0 }

/* tipo do orçamento: 3 opções de escolha única, nenhuma pré-marcada */
.tipo-orc { border:0; padding:0; margin:0; min-width:0; flex:1 1 100% }
.tipo-orc legend { font-size:12.5px; color:var(--mut); font-weight:500; padding:0; margin-bottom:4px }
.tipo-orc .ops { display:flex; gap:8px; flex-wrap:nowrap }
.tipo-orc .op { flex:1 1 0; display:flex; gap:8px; align-items:flex-start; padding:8px 12px; border:1px solid var(--line); border-radius:8px; cursor:pointer; background:var(--card); min-width:0 }
.tipo-orc .op:hover { background:var(--hover) }
.tipo-orc .op:has(input:checked) { border-color:var(--petrol); background:var(--soft) }
.tipo-orc .op input { margin:3px 0 0; flex:none }
.tipo-orc .op b { display:block; font-size:14px; font-weight:600; color:var(--ink); white-space:nowrap }
.tipo-orc .op small { display:block; font-size:12.5px; color:var(--mut); line-height:1.35 }
.tipo-orc.falta .op { border-color:var(--warn) }
.tipo-orc .sug { margin:6px 0 0; font-size:13px; color:var(--ink2); display:flex; gap:8px; align-items:center; flex-wrap:wrap }
.tipo-orc .aviso { margin:6px 0 0; font-size:13px; color:var(--warn); font-weight:500 }
@media (max-width:700px) { .tipo-orc .ops { flex-direction:column } }
.ro .tipo-orc { pointer-events:none }

/* serviços: % de conclusão (barra fina), blocos do detalhe, cronograma de pagamentos */
.pct { display:inline-flex; align-items:center; gap:8px; font-size:12.5px; color:var(--ink2); white-space:nowrap; font-variant-numeric:tabular-nums }
.barra-pct { display:inline-block; height:4px; border-radius:2px; background:var(--line); overflow:hidden; flex:none } .barra-pct > i { display:block; height:100%; background:var(--petrol); border-radius:2px }
.sv-bloco { border-top:1px solid var(--line2); margin-top:12px; padding-top:10px }
.sv-cab { display:flex; align-items:center; gap:10px; min-width:0 } .sv-cab > b { white-space:nowrap } .sv-cab > .pct { margin-left:auto } .sv-cab > .mut { min-width:0 }
.sv-aviso { display:flex; gap:6px; align-items:center; margin:6px 0 0; font-size:13px; color:var(--warn) }
.aviso-doc { display:inline-flex; gap:4px; align-items:center; font-size:12px; color:var(--warn); white-space:nowrap }
.n-doc { display:inline-flex; gap:3px; align-items:center; font-size:12.5px; white-space:nowrap }
details.sv-hist, details.sv-sec { margin-top:6px } details.sv-hist > summary, details.sv-sec > summary { cursor:pointer; font-size:13px; list-style:none; display:flex; gap:8px; align-items:center }
details.sv-hist > summary::-webkit-details-marker, details.sv-sec > summary::-webkit-details-marker, details.sv-docs > summary::-webkit-details-marker { display:none }
details.sv-sec { border-top:1px solid var(--line2); padding-top:6px } details.sv-sec > summary { font-size:14px; padding:4px 0 }
details.sv-docs > summary { list-style:none; display:flex; align-items:center; gap:10px; cursor:pointer; min-width:0 } details.sv-docs > summary > .mut { flex:1; font-size:13px }
details.sv-hist > summary::after, details.sv-sec > summary::after, details.sv-docs > summary::after { content:""; width:7px; height:7px; border-right:1.6px solid var(--mut); border-bottom:1.6px solid var(--mut); transform:rotate(45deg); margin:-3px 2px 0 0; flex:none }
details.sv-sec > summary::after, details.sv-docs > summary::after { margin-left:auto }
details.sv-hist[open] > summary::after, details.sv-sec[open] > summary::after, details.sv-docs[open] > summary::after { transform:rotate(225deg); margin-top:3px }
@media (max-width:700px) { .sv-cab { flex-wrap:wrap } .sv-cab > .mut { flex:1 1 100%; order:5 } #ct-det > .row:first-child { flex-wrap:wrap !important } }
/* Análise de serviços: tabelas sem quebra de linha (rola na horizontal dentro do bloco) */
#t-an td, #t-an th { white-space:nowrap }
#t-an td.ell { max-width:260px }
/* histórico do item (tramitação): uma linha por passo, sem quebra */
.hist-l { font-size:13.5px; padding:6px 0; border-bottom:1px solid var(--line2) } .hist-l:last-child { border-bottom:0 }
details.hist-item { border:1px solid var(--line); border-radius:12px } details.hist-item > .corpo { padding-top:6px }
.hist-links a { color:var(--petrol) }
