@font-face { font-family: "Public Sans"; src: url("../fontes/PublicSans-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fontes/PublicSans-600.woff2") format("woff2"); font-weight: 500 600; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("../fontes/PublicSans-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }

:root {
  --fundo: #eef1f3;
  --superficie: #ffffff;
  --texto: #17202a;
  --suave: #56626c;
  --linha: #d5dce1;
  --linha-fina: #e8ecef;
  --destaque: #1e4d5c;
  --destaque-escuro: #183e4a;
  --destaque-claro: #e8edef;
  --perigo: #a3231a;
  --aviso: #7a4700;
  --raio: 6px;
  --tenue: #6b7781;
  --estado-espera: #2d5f8a;
  --estado-aceite: #2f7a4a;
  --estado-vencido: var(--aviso);
  --estado-recusado: var(--perigo);
  --estado-rascunho: var(--tenue);
  font-family: "Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size: 15px;
  line-height: 1.45;
  color: var(--texto);
  background: var(--fundo);
  -webkit-text-size-adjust: 100%;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; min-height: 100vh; }
h1 { font-size: 1.5rem; font-weight: 700; margin: 0 0 1rem; letter-spacing: -0.01em; }
h2 { font-size: 1.05rem; margin: 1.5rem 0 .5rem; color: var(--suave); font-weight: 600; }
a { color: var(--destaque); }
.suave { color: var(--suave); }
.pequeno { font-size: .87rem; }
:focus-visible { outline: 2px solid var(--destaque); outline-offset: 2px; }

.topo {
  position: sticky; top: 0; z-index: 40; display: flex; align-items: center; gap: 2rem;
  background: var(--superficie); border-bottom: 1px solid var(--linha);
  padding: calc(.55rem + env(safe-area-inset-top)) 1rem .55rem; min-height: 56px;
}
.topo-marca { display: flex; align-items: center; color: var(--texto); text-decoration: none; font-weight: 700; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topo-marca img { display: block; height: 36px; width: auto; max-width: 170px; object-fit: contain; object-position: left center; }
.topo-menu, .topo-conta { display: none; }

.barra-baixo {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: flex;
  background: var(--superficie); border-top: 1px solid var(--linha);
  padding: .25rem .25rem calc(.35rem + env(safe-area-inset-bottom));
}
.barra-baixo > a, .barra-mais > summary {
  flex: 1 1 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .15rem;
  min-height: 52px; min-width: 0; color: var(--suave); text-decoration: none; font-size: .72rem; list-style: none; cursor: pointer;
}
.barra-baixo span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.barra-baixo > a[aria-current="page"], .barra-mais > summary[aria-current="page"] { color: var(--destaque); font-weight: 700; }
.barra-baixo [aria-current="page"] .icone-svg { stroke-width: 2.3; }
.barra-mais { flex: 1 1 0; display: flex; }
.barra-mais > summary::-webkit-details-marker { display: none; }
.barra-mais-opcoes {
  position: absolute; right: .5rem; bottom: calc(100% + .4rem); min-width: 15rem; padding: .35rem;
  background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: 0 8px 24px rgb(0 0 0 / .12);
}
.barra-mais-opcoes a, .barra-mais-opcoes button {
  display: flex; align-items: center; gap: .7rem; width: 100%; min-height: 48px; padding: 0 .8rem;
  color: var(--texto); text-decoration: none; background: none; border: 0; border-radius: 4px; font: inherit; text-align: left; cursor: pointer;
}
.barra-mais-opcoes a[aria-current="page"] { color: var(--destaque); font-weight: 600; }
.barra-mais-opcoes a:hover, .barra-mais-opcoes button:hover { background: var(--fundo); }
.barra-mais-opcoes form { margin: 0; border-top: 1px solid var(--linha-fina); margin-top: .3rem; padding-top: .3rem; }

body.com-menu .conteudo { padding-bottom: calc(6rem + env(safe-area-inset-bottom)); }

@media (min-width: 900px) {
  .barra-baixo { display: none; }
  .topo { padding: 0 1.5rem; gap: 2rem; }
  .topo-marca img { height: 40px; }
  .topo-menu { display: flex; gap: .25rem; flex: 1 1 auto; align-self: stretch; }
  .topo-menu a {
    display: flex; align-items: center; padding: 0 .75rem; color: var(--suave); text-decoration: none;
    border-bottom: 2px solid transparent; margin-bottom: -1px;
  }
  .topo-menu a:hover { color: var(--texto); }
  .topo-menu a[aria-current="page"] { color: var(--destaque); border-bottom-color: var(--destaque); font-weight: 600; }
  .topo-conta { display: flex; align-items: center; gap: 1rem; color: var(--suave); white-space: nowrap; }
  .topo-conta form { margin: 0; }
  .topo-conta a { color: var(--suave); text-decoration: none; }
  .topo-conta a:hover, .topo-conta a[aria-current="page"] { color: var(--texto); }
  .topo-quem { max-width: 14rem; overflow: hidden; text-overflow: ellipsis; }
  .topo-conta a + .topo-quem { padding-left: 1rem; border-left: 1px solid var(--linha); }
  .topo-conta .ligacao { min-height: 0; padding: .25rem 0; color: var(--suave); }
  .topo-conta .ligacao:hover { color: var(--texto); background: none; }
  body.com-menu .conteudo { padding: 1.75rem 1.5rem 3rem; }
}

.conteudo { max-width: 1240px; margin: 0 auto; padding: 1.25rem 1rem 3rem; width: 100%; }
.centro { min-height: 100vh; display: grid; place-items: center; align-content: center; gap: .25rem; padding: 1rem; }

.cabecalho { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.cabecalho h1 { margin: 0; }

.cartao {
  width: 100%; max-width: 380px; background: var(--superficie);
  border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.75rem;
}
.cartao.largo { max-width: 560px; }
.subtitulo { color: var(--suave); line-height: 1.5; }
.nota { font-size: .9rem; color: var(--suave); border-top: 1px solid var(--linha); padding-top: 1rem; }

label { display: block; margin-bottom: 1rem; font-size: .9rem; color: var(--suave); }
input:not([type=radio]):not([type=checkbox]) {
  display: block; width: 100%; margin-top: .3rem; padding: .55rem .75rem; min-height: 44px;
  font: inherit; font-size: 1rem; color: var(--texto); background: var(--superficie);
  border: 1px solid #c3ccd2; border-radius: var(--raio);
}
input:focus { outline: 2px solid var(--destaque); outline-offset: -1px; border-color: transparent; }

button, .botao {
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 44px;
  font: inherit; font-weight: 600; cursor: pointer; padding: .55rem 1.1rem; border: 1px solid var(--destaque); border-radius: var(--raio);
  background: var(--destaque); color: #fff; text-decoration: none; text-align: center;
}
button:hover, .botao:hover { background: var(--destaque-escuro); border-color: var(--destaque-escuro); }
.botao.secundario { background: var(--superficie); color: var(--destaque); border: 1px solid var(--destaque); }
.botao.secundario:hover { background: var(--destaque-claro); }
.botao.perigo { background: var(--superficie); color: var(--perigo); border: 1px solid currentColor; }
.botao.perigo:hover { background: #fbecea; }
button.ligacao, .ligacao-texto {
  background: none; border: 0; padding: .25rem; min-height: 0; color: var(--suave); cursor: pointer; font: inherit; font-weight: 400; text-decoration: underline;
}
button.ligacao { text-decoration: none; }
button.ligacao:hover, .ligacao-texto:hover { color: var(--texto); background: none; }

.cartao button[type=submit] { width: 100%; margin-top: .25rem; }

.aviso { color: var(--texto); background: var(--superficie); border: 1px solid var(--linha); border-left: 0; box-shadow: inset 3px 0 0 var(--destaque); padding: .7rem .9rem; border-radius: var(--raio); }

.pesquisa { display: flex; gap: .5rem; align-items: center; margin-bottom: 1rem; }
.pesquisa input { margin: 0; flex: 1; min-width: 0; }

.tabela { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .75rem 1rem; text-align: left; vertical-align: middle; }
th { font-size: .82rem; font-weight: 600; color: var(--suave); background: var(--superficie); border-bottom: 1px solid var(--linha); }
tbody tr + tr td { border-top: 1px solid var(--linha-fina); }
tbody tr { position: relative; }
tbody tr:hover { background: #f7f9fa; }
.ligacao-linha { font-weight: 600; color: var(--texto); text-decoration: none; }
.ligacao-linha::after { content: ""; position: absolute; inset: 0; }
.etiqueta {
  display: inline-block; margin-left: .4rem; padding: .05rem .4rem; font-size: .75rem;
  color: var(--suave); border: 1px solid var(--linha); border-radius: 4px; vertical-align: 1px;
}
.so-estreito { display: block; font-size: .85rem; margin-top: .15rem; }
.so-largo { display: none; }
@media (min-width: 760px) {
  .so-estreito { display: none; }
  .so-largo { display: table-cell; }
}

.vazio { padding: 3rem 1rem; text-align: center; color: var(--suave); background: var(--superficie); border: 1px dashed var(--linha); border-radius: var(--raio); }

.ficha { max-width: 640px; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.5rem; }
.campo.com-erro input { border-color: var(--perigo); }
.erro { display: block; margin-top: .3rem; color: var(--perigo); font-size: .85rem; }
.ajuda { display: block; margin-top: .3rem; font-size: .85rem; }
.duas-colunas { display: grid; gap: 0 1rem; }
@media (min-width: 560px) { .duas-colunas { grid-template-columns: 1fr 1fr; } }

.escolha { border: 0; padding: 0; margin: 0 0 1rem; display: flex; gap: .5rem; flex-wrap: wrap; }
.escolha legend { font-size: .9rem; color: var(--suave); margin-bottom: .3rem; padding: 0; }
.escolha label {
  margin: 0; padding: .55rem .9rem; min-height: 44px; display: inline-flex; align-items: center; border: 1px solid var(--linha); border-radius: var(--raio); color: var(--texto); cursor: pointer; background: var(--superficie);
}
.escolha label:has(input:checked) { border-color: var(--destaque); background: var(--destaque-claro); color: var(--destaque); font-weight: 600; }
.escolha input { accent-color: var(--destaque); margin: 0 .3rem 0 0; }

.acoes { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; margin-top: .5rem; }
.acoes .perigo { margin-left: auto; }

dialog { border: 1px solid var(--linha); border-radius: 8px; padding: 1.5rem; max-width: 420px; width: calc(100% - 2rem); color: var(--texto); }
dialog::backdrop { background: rgb(0 0 0 / .35); }
dialog p { margin-top: 0; line-height: 1.5; }


.atalhos { display: grid; gap: .75rem; margin-bottom: 1.5rem; }
@media (min-width: 560px) { .atalhos { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); } }
.atalho {
  display: flex; flex-direction: column; gap: .2rem; padding: 1rem 1.1rem; text-decoration: none; color: var(--texto);
  background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio);
}
.atalho:hover { border-color: var(--destaque); }
.atalho span { color: var(--suave); font-size: .9rem; }
.sem-quebra { white-space: nowrap; text-align: right; }

.conteudo.largo { max-width: 1200px; }
.contagem { font-size: .9rem; font-weight: 400; margin-left: .4rem; }
.forte { font-weight: 600; }
.numero { text-align: right; }
.centro-celula { text-align: center; }

select {
  display: block; width: 100%; margin-top: .3rem; padding: .55rem .7rem; min-height: 44px; font: inherit; font-size: 1rem; color: var(--texto);
  background: var(--superficie); border: 1px solid #c3ccd2; border-radius: var(--raio);
}
.caixa { display: flex; align-items: center; gap: .4rem; color: var(--texto); }
.caixa input { accent-color: var(--destaque); width: 1rem; height: 1rem; margin: 0; }

.filtros { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; margin-bottom: 1rem; }
.filtros input[type=search] { margin: 0; flex: 1 1 260px; min-width: 0; }
.filtros select { margin: 0; width: auto; flex: 0 1 12rem; }
.filtros .caixa { margin: 0; font-size: .9rem; }

.etiqueta.rever { color: #7a4d00; background: #fdf1d6; border-color: #f0d9a3; }

table.editavel td { padding: .3rem .4rem; vertical-align: middle; }
table.editavel th { padding: .55rem .5rem; }
table.editavel input:not([type=checkbox]), table.editavel select {
  margin: 0; padding: .35rem .45rem; border-color: transparent; background: transparent;
}
table.editavel input:not([type=checkbox]):hover, table.editavel select:hover { border-color: var(--linha); }
table.editavel input:not([type=checkbox]):focus, table.editavel select:focus { background: var(--superficie); }
table.editavel input[type=checkbox] { accent-color: var(--destaque); width: 1rem; height: 1rem; }
table.editavel .com-erro { border-color: var(--perigo) !important; }
table.editavel tbody tr:hover { background: transparent; }
tr.inativo td, tr.inativo td input, tr.inativo td select { color: #9a9fa6; }
.estado { font-size: .8rem; color: var(--suave); }
.estado.ok { color: #2f6b3b; }
.estado.falhou { color: var(--perigo); cursor: help; }

.so-largo-bloco { display: none; }
.so-estreito-bloco { display: block; }
@media (min-width: 900px) {
  .so-largo-bloco { display: block; }
  .so-estreito-bloco { display: none; }
}
.sem-quebra-esq { white-space: nowrap; }

textarea {
  display: block; width: 100%; margin-top: .3rem; padding: .55rem .75rem; font: inherit; font-size: 1rem; color: var(--texto);
  background: var(--superficie); border: 1px solid #c3ccd2; border-radius: var(--raio); resize: vertical;
}
textarea:focus, select:focus { outline: 2px solid var(--destaque); outline-offset: -1px; border-color: transparent; }

.subnav { display: flex; gap: .25rem; margin-bottom: 1rem; border-bottom: 1px solid var(--linha); }
.subnav a { padding: .5rem .75rem; color: var(--suave); text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.subnav a[aria-current="page"] { color: var(--destaque); border-bottom-color: var(--destaque); font-weight: 600; }

.escolha.vertical { flex-direction: column; }
.escolha.vertical label { width: fit-content; }

.estado-orc { display: inline-block; padding: .15rem .5rem; border-radius: 4px; font-size: .8rem; font-weight: 600; vertical-align: middle; white-space: nowrap; }
.estado-rascunho { background: #eceff1; color: #47525c; }
.estado-enviado { background: #fdf0dc; color: #7a4700; }
.estado-aceite { background: #e3f3e9; color: #125c33; }
.estado-recusado { background: #fbe6e4; color: #9b1f17; }
.estado-vencido { background: #f1e8f7; color: #5e2d7a; }
h1 .estado-orc { font-size: .8rem; margin-left: .3rem; }
.mudar-estado { display: inline-block; margin: 0; }
select.estado-orc {
  width: auto; margin: 0; border: 1px solid transparent; cursor: pointer; font-family: inherit; min-height: 2rem;
  padding: .25rem 1.6rem .25rem .55rem; appearance: none; -webkit-appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: right .75rem center, right .45rem center; background-size: .3rem .3rem; background-repeat: no-repeat;
}
select.estado-orc:hover { border-color: currentColor; }
select.estado-orc option { background: #fff; color: #1a1f24; }
.cartao-com-estado { position: relative; }
.cartao-com-estado .linha-2 { padding-right: 7.5rem; min-height: 2.4rem; }
.cartao-estado { position: absolute; right: 1rem; bottom: .8rem; height: 2.4rem; display: flex; gap: .3rem; align-items: center; }
.cartao-estado select.estado-orc { min-height: 2.4rem; font-size: .85rem; }

.cabecalho-orc { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; margin: .5rem 0 1rem; }
.cabecalho-orc h1 { margin: 0 0 .25rem; }
.cabecalho-orc p { margin: 0; }
.acoes-orc { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }

.menu-mais { position: relative; }
.menu-mais summary { list-style: none; cursor: pointer; }
.menu-mais summary::-webkit-details-marker { display: none; }
.menu-mais-opcoes {
  position: absolute; right: 0; top: calc(100% + .3rem); z-index: 20; min-width: 15rem; padding: .3rem;
  background: var(--superficie); border: 1px solid var(--linha); border-radius: 8px; box-shadow: 0 6px 20px rgb(0 0 0 / .08);
}
.menu-mais-opcoes button { display: block; width: 100%; text-align: left; background: none; color: var(--texto); padding: .55rem .7rem; }
.menu-mais-opcoes button:hover { background: var(--fundo); }
.perigo-texto, .menu-mais-opcoes .perigo-texto { color: var(--perigo); }

.grupo { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; margin-bottom: 1rem; }
.grupo-item {
  display: inline-flex; gap: .4rem; align-items: center; padding: .35rem .7rem; border: 1px solid var(--linha);
  border-radius: 6px; background: var(--superficie); color: var(--texto); text-decoration: none; font-size: .9rem;
}
.grupo-item.atual { border-color: var(--destaque); background: var(--destaque-claro); }

.editor { display: grid; gap: 1rem; align-items: start; }
@media (min-width: 1000px) { .editor { grid-template-columns: minmax(0, 1fr) 340px; } }
.painel { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.1rem 1.2rem; margin-bottom: 1rem; }
.painel h2 { margin: 0 0 .8rem; color: var(--texto); font-size: 1rem; }
.painel .cabecalho h2 { margin: 0; }
.ficha-largura { max-width: 640px; margin-top: 1rem; }

.linhas { display: grid; gap: .5rem; }
.linha {
  display: grid; gap: .4rem .5rem; align-items: start; padding: .6rem;
  grid-template-columns: auto .75fr 1.3fr .85fr .85fr auto; border: 1px solid var(--linha); border-radius: 6px;
}
.linha .linha-descricao { margin: 0; }
.linha .linha-ordem { display: flex; flex-direction: column; gap: .15rem; }
.linha .linha-campo { font-size: .8rem; margin: 0; white-space: nowrap; }
.linha-campo input { margin-top: .15rem; padding: .4rem .5rem; }
.cabecalho-linha { display: none; }

@media (max-width: 759px) {
  .linha .linha-ordem { grid-column: 1; grid-row: 1 / span 3; }
  .linha .linha-descricao { grid-column: 2 / 6; grid-row: 1; }
  .linha .linha-apagar { grid-column: 6; grid-row: 1; }
  .linha .linha-campo:nth-of-type(1) { grid-column: 2; grid-row: 2; }
  .linha .linha-campo:nth-of-type(2) { grid-column: 3; grid-row: 2; }
  .linha .linha-campo:nth-of-type(3) { grid-column: 4; grid-row: 2; }
  .linha .linha-campo:nth-of-type(4) { grid-column: 5; grid-row: 2; }
  .linha .linha-total { grid-column: 2 / 6; grid-row: 3; }
}

@media (min-width: 760px) {
  .linha, .cabecalho-linha {
    grid-template-columns: 1.6rem minmax(0, 1fr) 4.5rem 6.5rem 4.5rem 4.5rem 6.5rem 1.6rem;
    align-items: center; padding: .4rem .2rem; border: 0; border-radius: 0;
  }
  .linha + .linha { border-top: 1px solid var(--linha); }
  .cabecalho-linha { display: grid; font-size: .8rem; font-weight: 600; color: var(--suave); border-bottom: 1px solid var(--linha); }
  .linha-campo span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .linha-campo input { margin: 0; }
  .linha .linha-total { font-size: .9rem; }
}

button.icone {
  background: none; color: var(--suave); padding: .1rem .35rem; border-radius: 4px; line-height: 1.2; font-size: 1rem;
}
button.icone:hover { background: var(--fundo); color: var(--texto); }
button.icone:disabled { opacity: .25; cursor: default; background: none; }
button.icone.perigo-texto { color: var(--perigo); font-size: 1.2rem; }

.linhas-acoes { margin-top: .8rem; }
.linha-campo input.iva-proprio { border-color: var(--destaque); background: var(--destaque-claro, #f3f7fa); font-weight: 600; }
.rodape-linhas { display: flex; justify-content: space-between; align-items: flex-end; gap: 1.5rem; flex-wrap: wrap; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--linha); }
.desconto-geral { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.desconto-geral label { margin: 0; }
.desconto-geral input#desconto-geral { width: 5rem; margin: 0; }
.totais { display: grid; grid-template-columns: auto auto; gap: .3rem 2rem; margin: 0 0 0 auto; }
.totais dt { color: var(--suave); }
.totais dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.totais .total { font-size: 1.15rem; font-weight: 700; color: var(--texto); padding-top: .3rem; border-top: 1px solid var(--linha); }

.abas { display: flex; gap: .25rem; margin-bottom: 1rem; flex-wrap: wrap; }
.abas button { background: var(--superficie); color: var(--suave); border: 1px solid var(--linha); padding: .45rem .9rem; font-weight: 400; }
.abas button:hover { background: var(--fundo); color: var(--texto); }
.abas button[aria-selected="true"] { background: var(--destaque-claro); color: var(--destaque); border-color: var(--destaque); font-weight: 600; }
.grelha-eq { display: grid; gap: 0 .75rem; grid-template-columns: 1fr 1fr; }
@media (min-width: 760px) { .grelha-eq { grid-template-columns: 1fr 2fr 1fr 1fr 1fr .7fr .7fr; } }
.grelha-servico { display: grid; gap: 0 .75rem; grid-template-columns: 1fr 1fr; }
@media (min-width: 760px) { .grelha-servico { grid-template-columns: 2fr 1fr 1fr; } }
.grelha-servico label:first-child { grid-column: 1 / -1; }
@media (min-width: 760px) { .grelha-servico label:first-child { grid-column: auto; } }
details summary { cursor: pointer; color: var(--suave); margin-bottom: .5rem; }

.com-sugestoes { position: relative; }
.sugestoes {
  position: absolute; left: 0; right: 0; top: 100%; z-index: 30; max-height: 22rem; overflow-y: auto; margin-top: .2rem;
  background: var(--superficie); border: 1px solid var(--linha); border-radius: 8px; box-shadow: 0 8px 24px rgb(0 0 0 / .1);
}
.sugestao {
  display: grid; grid-template-columns: 1fr auto; gap: 0 1rem; width: 100%; text-align: left; padding: .55rem .75rem;
  background: none; color: var(--texto); border-radius: 0; font-size: .9rem;
}
.sugestao span { color: var(--suave); font-size: .8rem; }
.sugestao .sugestao-preco { grid-row: 1 / span 2; grid-column: 2; align-self: center; color: var(--texto); font-weight: 600; font-size: .9rem; }
.sugestao.ativa, .sugestao:hover { background: var(--destaque-claro); }
.sugestao.vazia { display: block; color: var(--suave); }

.tres-colunas { display: grid; gap: 0 .6rem; grid-template-columns: 1fr 1fr 1fr; }
.divisoes, .lista-simples { list-style: none; margin: 0 0 1rem; padding: 0; }
.divisoes li, .lista-simples li { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .45rem 0; border-bottom: 1px solid var(--linha); }
.lista-simples li { justify-content: flex-start; flex-wrap: wrap; }
.nova-divisao { border-top: 1px solid var(--linha); padding-top: .8rem; }


.logotipo-atual { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.logotipo-atual img { max-height: 70px; max-width: 220px; padding: .4rem; background: var(--fundo); border: 1px solid var(--linha); border-radius: 6px; }
.enviar-logotipo { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.enviar-logotipo input[type=file] { margin: 0; flex: 1 1 220px; }
input.cor { height: 2.6rem; padding: .2rem; cursor: pointer; }

.campo-endereco { display: flex; align-items: center; gap: .4rem; }
.campo-endereco input { margin-top: .3rem; }
.campo-endereco span { margin-top: .3rem; white-space: nowrap; }
form.em-linha { display: inline; }
.novo-utilizador { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--linha); }

button.icone, .sugestao { border: 0; min-height: 0; font-weight: 400; }
.menu-mais-opcoes button { border: 0; min-height: 44px; font-weight: 400; }
.menu-mais summary.botao { list-style: none; }

.estados { display: flex; gap: .4rem; overflow-x: auto; margin: 0 0 1rem; padding-bottom: 2px; scrollbar-width: none; }
.estados a {
  display: inline-flex; align-items: center; gap: .35rem; min-height: 36px; padding: 0 .8rem; white-space: nowrap;
  border: 1px solid var(--linha); border-radius: 18px; background: var(--superficie); color: var(--texto); text-decoration: none; font-size: .9rem;
}
.estados a span { color: var(--suave); font-variant-numeric: tabular-nums; }
.estados a[aria-current="page"] { background: var(--destaque-claro); border-color: var(--destaque); color: var(--destaque); font-weight: 600; }
.estados a[aria-current="page"] span { color: var(--destaque); }

.lista-cartoes { list-style: none; margin: 0; padding: 0; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); }
.lista-cartoes li + li { border-top: 1px solid var(--linha-fina); }
.lista-cartoes a { display: block; padding: .8rem 1rem; color: inherit; text-decoration: none; }
.lista-cartoes .linha-1, .lista-cartoes .linha-2 { display: flex; justify-content: space-between; align-items: center; gap: .75rem; }
.lista-cartoes .linha-1 strong { font-size: 1.02rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lista-cartoes .linha-1 b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.lista-cartoes .linha-2 { margin-top: .3rem; font-size: .85rem; color: var(--suave); }
.so-movel { display: block; }
.so-computador { display: none; }
@media (min-width: 760px) {
  .so-movel { display: none; }
  .so-computador { display: block; }
}
.numero, td.numero { font-variant-numeric: tabular-nums; }
.rodape-tabela { display: flex; justify-content: space-between; gap: .5rem; flex-wrap: wrap; padding: .75rem 1rem; color: var(--suave); font-size: .9rem; border-top: 1px solid var(--linha-fina); }
.menu-mais summary.botao { margin: 0; color: var(--destaque); }
.barra-mais-opcoes button { justify-content: flex-start; font-weight: 400; min-height: 48px; }
button.icone { min-width: 32px; min-height: 32px; }
table.editavel input:not([type=checkbox]), table.editavel select { min-height: 34px; font-size: .95rem; }
.linha .linha-campo input:not([type=checkbox]) { padding: .4rem .45rem; }
.estados-separador { flex: 0 0 1px; background: var(--linha); margin: .3rem .2rem; }
.componentes { border: 0; padding: 0; margin: 0 0 1rem; }
.componentes legend { font-size: .9rem; color: var(--suave); margin-bottom: .4rem; padding: 0; }
.componente { display: grid; grid-template-columns: minmax(0, 1fr) 5rem; gap: .5rem; }
.componente .campo { margin-bottom: .5rem; }
.componente input { margin-top: 0; }
.visualmente-escondido { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
fieldset.sem-borda { border: 0; padding: 0; margin: 0; min-width: 0; }
fieldset:disabled input:not([type=checkbox]), fieldset:disabled textarea { background: var(--fundo); color: var(--texto); }
.tres-colunas-largas { display: grid; gap: 0 .75rem; }
@media (min-width: 560px) { .tres-colunas-largas { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.grelha-visita { display: grid; gap: 0 .6rem; grid-template-columns: 1fr 1fr; }
@media (min-width: 640px) { .grelha-visita { grid-template-columns: 1.4fr 1fr 1fr .8fr; } }
.grelha-material { display: grid; gap: 0 .6rem; grid-template-columns: minmax(0, 1fr) 5rem; align-items: end; }
.grelha-material .botao { grid-column: 1 / -1; justify-self: start; margin-bottom: 1rem; }
@media (min-width: 640px) { .grelha-material { grid-template-columns: minmax(0, 1fr) 5rem auto; } .grelha-material .botao { grid-column: auto; } }
.novo-registo { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--linha-fina); }
.registos li { align-items: flex-start; justify-content: space-between; flex-wrap: nowrap; }
.registos form { margin: 0; }
.quadro-assinatura { position: relative; margin-bottom: 1rem; }
.quadro-assinatura canvas { display: block; width: 100%; height: 180px; border: 1px dashed #9aa6af; border-radius: var(--raio); background: #fff; touch-action: none; }
.quadro-assinatura button { position: absolute; top: .3rem; right: .4rem; }
.assinatura-feita { display: block; width: 100%; max-height: 160px; object-fit: contain; border: 1px solid var(--linha-fina); border-radius: var(--raio); background: #fff; margin-bottom: .6rem; }
.lista-explicacao { margin: 1rem 0 0; padding-left: 1.1rem; }
.tabela-rolar { max-height: 26rem; overflow: auto; border: 1px solid var(--linha-fina); border-radius: var(--raio); }
.tabela-rolar thead th { position: sticky; top: 0; z-index: 1; }
.resumo-importacao { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.resumo-importacao div { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: .8rem 1rem; }
.resumo-importacao strong { display: block; font-size: 1.6rem; font-variant-numeric: tabular-nums; }
.resumo-importacao span { color: var(--suave); font-size: .9rem; }
.a-ler { display: flex; gap: 1rem; align-items: center; }
.a-ler h2 { margin: 0 0 .25rem; }
.girar { flex: 0 0 28px; height: 28px; border-radius: 50%; border: 3px solid var(--destaque-claro); border-top-color: var(--destaque); animation: girar 0.9s linear infinite; }
@keyframes girar { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .girar { animation-duration: 3s; } }
.subnav-rolar { overflow-x: auto; scrollbar-width: none; white-space: nowrap; }
.subnav-rolar a { flex: 0 0 auto; min-height: 44px; display: inline-flex; align-items: center; }
.barra-guardar { position: sticky; bottom: calc(4.5rem + env(safe-area-inset-bottom)); background: var(--fundo); padding: .6rem 0; margin-top: 0; z-index: 5; }
@media (min-width: 900px) { .barra-guardar { bottom: 0; } }
.logotipo-atual img { max-height: 90px; max-width: 260px; background: #fff; }

.contador {
  display: inline-block; min-width: 1.25rem; padding: 0 .35rem; border-radius: 999px; background: #c2410c; color: #fff;
  font-size: .72rem; font-weight: 700; line-height: 1.25rem; text-align: center; vertical-align: 1px; margin-left: .3rem;
}
.barra-baixo > a, .barra-mais > summary { position: relative; }
.barra-baixo b.contador { margin: 0; position: absolute; top: .3rem; left: calc(50% + .45rem); font-size: .68rem; line-height: 1.1rem; min-width: 1.1rem; }
.barra-baixo b.contador.ponto { min-width: .6rem; height: .6rem; padding: 0; top: .45rem; }

.manut-estado { display: inline-block; width: .55rem; height: .55rem; border-radius: 50%; margin-right: .4rem; vertical-align: 1px; }
.manut-atrasada { background: #c2410c; }
.manut-a_chegar { background: #d99a00; }
.manut-em_dia { background: #2f8f57; }
.manut-sem_interesse { background: #9aa4ad; }
.texto-atrasada { color: #a3360a; font-weight: 600; }
.texto-a_chegar { color: #7a5600; font-weight: 600; }
.estado-atrasada { background: #fbe9e1; color: #a3360a; }
.estado-a_chegar { background: #fdf0dc; color: #7a4700; }
.estado-em_dia { background: #e3f3e9; color: #125c33; }
.estado-sem_interesse { background: #eceff1; color: #47525c; }
.acoes-manut { display: flex; gap: .35rem; justify-content: flex-end; align-items: center; flex-wrap: wrap; }
.acoes-manut form { margin: 0; }
.acoes-manut .botao { height: 2.5rem; min-height: 0; display: inline-flex; align-items: center; padding: .3rem .75rem; font-size: .88rem; box-sizing: border-box; line-height: 1.2; }
.botao.whatsapp { color: #128c4b; border-color: #128c4b; }
.botao.whatsapp.feito { background: #128c4b; color: #fff; }
.menu-feita { position: relative; display: flex; }
.menu-feita > summary { list-style: none; display: inline-flex; align-items: center; margin: 0; color: var(--destaque); }
.menu-feita > summary::-webkit-details-marker { display: none; }
.menu-feita-opcoes {
  position: absolute; right: 0; top: calc(100% + .25rem); z-index: 20; min-width: 13rem; padding: .5rem;
  background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: 0 6px 20px rgba(0,0,0,.08);
}
.menu-feita-opcoes p { margin: 0 0 .35rem; font-size: .82rem; color: var(--suave); }
.menu-feita-opcoes button { display: block; width: 100%; text-align: left; background: none; border: 0; color: var(--texto); padding: .55rem .6rem; border-radius: 4px; min-height: 44px; font-weight: 400; }
.menu-feita-opcoes button:hover { background: var(--fundo); }
.menu-feita-opcoes button.sugerido { font-weight: 700; }
.tabela th a { color: inherit; text-decoration: none; }
.tabela th a[aria-sort] { color: var(--texto); }
.aviso-manut { display: flex; align-items: center; justify-content: space-between; gap: 1rem; text-decoration: none; color: inherit; }
.aviso-manut:hover { border-color: var(--destaque); }
.historico { list-style: none; margin: 0; padding: 0; }
.historico > li { padding: .65rem 0; border-top: 1px solid var(--linha-fina); }
.historico > li:first-child { border-top: 0; }
.historico .cabeca { display: flex; gap: .5rem; align-items: baseline; flex-wrap: wrap; }
.historico details summary { cursor: pointer; color: var(--destaque); font-size: .85rem; }
.lista-cartoes .acoes-manut { padding: 0 1rem .8rem; justify-content: flex-start; }
.lista-cartoes .linha-3 { display: block; margin-top: .25rem; font-size: .85rem; color: var(--suave); }

.pessoa-cor { display: inline-block; width: .6rem; height: .6rem; border-radius: 50%; margin-right: .3rem; vertical-align: 0; }
.semana-nav { display: flex; align-items: center; gap: .6rem; margin: .25rem 0 .75rem; flex-wrap: wrap; }
.semana-nav .botao { min-height: 2.5rem; padding: .3rem .8rem; }
.semana-nav strong { font-size: 1.05rem; min-width: 10rem; text-align: center; }
.semana { display: grid; gap: .5rem; margin-bottom: 1rem; }
@media (min-width: 1000px) {
  .semana { grid-template-columns: repeat(5, minmax(0, 1fr)) repeat(2, minmax(0, .75fr)); align-items: start; }

}
.dia { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: .5rem; min-height: 4rem; }
.dia.hoje { border-color: var(--destaque); box-shadow: inset 0 3px 0 var(--destaque); }
.dia header { display: flex; align-items: baseline; gap: .4rem; padding: .1rem .2rem .45rem; }
.dia header span { font-size: .8rem; color: var(--suave); }
.dia header b { font-size: .9rem; white-space: nowrap; }
.dia header span { white-space: nowrap; }
.dia.hoje header b { color: var(--destaque); }
.dia-mais { margin-left: auto; text-decoration: none; color: var(--suave); font-size: 1.25rem; line-height: 1; width: 2rem; height: 2rem; display: inline-flex; align-items: center; justify-content: center; border-radius: 4px; }
.dia-mais:hover { background: var(--fundo); color: var(--destaque); }
.marcacao {
  display: block; text-decoration: none; color: inherit; padding: .45rem .55rem; margin-bottom: .4rem; border-radius: 5px;
  background: color-mix(in srgb, var(--cor) 9%, white); border-left: 4px solid var(--cor);
}
.marcacao:hover { background: color-mix(in srgb, var(--cor) 16%, white); }
.marcacao > span, .marcacao > strong { display: block; }
.marcacao strong { font-size: .92rem; line-height: 1.25; }
.marcacao-hora { font-size: .78rem; font-weight: 600; color: var(--cor); }
.marcacao-tipo, .marcacao-pessoas { font-size: .78rem; color: var(--suave); line-height: 1.3; }
.marcacao-pessoas { margin-top: .15rem; }
.estado-m-feita { opacity: .6; }
.estado-m-cancelada { opacity: .5; }
.estado-m-cancelada strong { text-decoration: line-through; }
.estado-m-marcada-etiqueta { background: #e7eef8; color: #1f4f8a; }
.estado-m-feita-etiqueta { background: #e3f3e9; color: #125c33; }
.estado-m-cancelada-etiqueta { background: #eceff1; color: #47525c; }
.sem-marcacoes { margin: 0; padding: .2rem .25rem; font-size: .8rem; color: var(--suave); }
@media (max-width: 999px) {
  .dia.vazio-dia { min-height: 0; padding: .35rem .5rem; }
  .dia.vazio-dia header { padding-bottom: 0; }
  .dia.vazio-dia .sem-marcacoes { display: none; }
}
.opcoes-calendario { display: grid; gap: .75rem; }
@media (min-width: 560px) { .opcoes-calendario { grid-template-columns: 1fr 1fr; } }
.opcoes-calendario > div { display: flex; flex-direction: column; gap: .4rem; align-items: flex-start; padding: .8rem; border: 1px solid var(--linha); border-radius: var(--raio); }
.agenda-hoje { display: grid; gap: .5rem; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); margin-bottom: 1rem; }
.agenda-hoje h2 { grid-column: 1 / -1; margin-bottom: 0; }
.agenda-hoje .marcacao { margin: 0; background: color-mix(in srgb, var(--cor) 9%, white); border: 1px solid var(--linha); border-left: 4px solid var(--cor); }
.agenda-hoje .vazio { grid-column: 1 / -1; }

.tabela .acoes-manut { flex-wrap: nowrap; }
.tabela th a { white-space: nowrap; }
.tabela .acoes-manut .botao, .tabela .acoes-manut button { white-space: nowrap; }

.numeros { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); margin-bottom: 1.25rem; }
.numero-cartao { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: .9rem 1rem; display: flex; flex-direction: column; gap: .25rem; }
.numero-cartao > span { font-size: .82rem; color: var(--suave); }
.numero-cartao strong { font-size: 1.75rem; line-height: 1.15; font-variant-numeric: tabular-nums; }
.numero-cartao small { font-size: .8rem; color: var(--suave); }
.numero-cartao.alerta { border-color: #e7b49b; box-shadow: inset 0 3px 0 #c2410c; }
.numero-cartao.alerta strong { color: #a3360a; }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.numero-cartao strong.mono { font-size: 1.35rem; }
.variacao.sobe { color: #1f7a45; }
.variacao.desce { color: #a3360a; }
.medidor { height: .45rem; background: var(--fundo); border-radius: 999px; overflow: hidden; margin: .2rem 0 .1rem; }
.medidor span { display: block; height: 100%; background: var(--destaque); border-radius: 999px; }
.medidor.cheio span { background: #c2410c; }
.barras { width: 96px; height: 28px; display: block; }
.barras rect { fill: color-mix(in srgb, var(--destaque) 45%, white); }
.barras rect.atual { fill: var(--destaque); }
.barras rect.zero { fill: var(--linha); }
.lista-atencao { margin: 0; padding-left: 1.1rem; }
.lista-atencao li { padding: .2rem 0; }
.aviso-alerta { box-shadow: inset 3px 0 0 #c2410c; margin-bottom: .6rem; }
.duas-colunas-largas { display: grid; gap: 1rem; }
@media (min-width: 900px) { .duas-colunas-largas { grid-template-columns: 1fr 1fr; } }
.ficha-dados { display: grid; grid-template-columns: auto 1fr; gap: .45rem 1rem; margin: 0; font-size: .92rem; }
.ficha-dados dt { color: var(--suave); }
.ficha-dados dd { margin: 0; }
.tabela-simples { width: 100%; border-collapse: collapse; font-size: .92rem; }
.tabela-simples th { text-align: left; font-size: .8rem; color: var(--suave); font-weight: 600; padding: .4rem .5rem; border-bottom: 1px solid var(--linha); }
.tabela-simples td { padding: .5rem; border-bottom: 1px solid var(--linha-fina); vertical-align: top; }
.tabela-simples tfoot td { font-weight: 600; border-bottom: 0; }
.tabela-simples .numero { text-align: right; }
.painel .cabecalho h2 { margin: 0; }

.assistente { max-width: 760px; }
.passo h2 { display: flex; align-items: center; gap: .5rem; }
.passo-n { display: inline-flex; align-items: center; justify-content: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--destaque); color: #fff; font-size: .85rem; }
.cartoes-modulos { display: grid; gap: .5rem; margin-bottom: 1rem; }
@media (min-width: 640px) { .cartoes-modulos:not(.compacto) { grid-template-columns: 1fr 1fr; } }
.cartao-modulo { display: flex; gap: .6rem; align-items: flex-start; padding: .7rem .8rem; border: 1px solid var(--linha); border-radius: var(--raio); cursor: pointer; background: var(--superficie); }
.cartao-modulo:has(input:checked) { border-color: var(--destaque); background: var(--destaque-claro); }
.cartao-modulo input { margin-top: .2rem; width: 1.05rem; height: 1.05rem; flex: none; }
.cartao-modulo strong { display: block; font-size: .92rem; }
.cartao-modulo small { display: block; font-size: .8rem; color: var(--suave); line-height: 1.35; margin-top: .15rem; }
.cartao-modulo em { font-style: normal; font-size: .72rem; font-weight: 600; color: var(--suave); background: var(--fundo); padding: .05rem .35rem; border-radius: 4px; margin-left: .2rem; }
.cartao-modulo.em-breve { cursor: default; opacity: .65; }
.compacto .cartao-modulo { padding: .55rem .65rem; }
.credenciais { border-color: var(--destaque); box-shadow: inset 0 3px 0 var(--destaque); }
.credencial { display: flex; gap: .75rem; align-items: flex-start; flex-wrap: wrap; margin-top: .75rem; }
.credencial pre { flex: 1 1 320px; margin: 0; padding: .75rem .9rem; background: var(--fundo); border-radius: var(--raio); white-space: pre-wrap; font-family: inherit; font-size: .9rem; line-height: 1.45; }
.numeros-compactos .numero-cartao strong { font-size: 1.45rem; }
.numero-cartao strong.mais-pequeno { font-size: 1.15rem; padding: .2rem 0; }
.arranque { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.arranque li { display: flex; gap: .65rem; align-items: flex-start; padding: .45rem 0; }
.arranque .marca { flex: none; width: 1.15rem; height: 1.15rem; border-radius: 50%; border: 2px solid var(--linha); margin-top: .1rem; position: relative; }
.arranque .feito .marca { background: #2f8f57; border-color: #2f8f57; }
.arranque .feito .marca::after { content: ""; position: absolute; left: .3rem; top: .1rem; width: .3rem; height: .55rem; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.arranque .feito strong { font-weight: 500; color: var(--suave); }
.arranque small { display: block; font-size: .82rem; color: var(--suave); }
.lista-utilizadores { list-style: none; margin: 0 0 1rem; padding: 0; border: 1px solid var(--linha); border-radius: var(--raio); }
.lista-utilizadores > li { padding: .7rem .9rem; }
.lista-utilizadores > li + li { border-top: 1px solid var(--linha-fina); }
.lista-utilizadores > li.inativo { opacity: .6; }
.utilizador-cabeca { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; flex-wrap: wrap; }
.utilizador-acoes { display: flex; gap: .9rem; }
.utilizador-acoes form { margin: 0; }
.lista-utilizadores details { margin-top: .3rem; }
.lista-utilizadores details summary { font-size: .82rem; color: var(--destaque); margin: 0; }
.lista-utilizadores details form { margin-top: .5rem; }
.novo-utilizador h3 { font-size: .95rem; margin: 0 0 .5rem; }
.zona-perigo { border-color: #efc9bd; }
.lista-commits { margin: 0 0 .9rem; padding-left: 1.1rem; font-size: .92rem; }
.lista-commits li { padding: .15rem 0; }
.registo { max-height: 16rem; overflow: auto; background: #1f2328; color: #e6e8ea; padding: .75rem .9rem; border-radius: var(--raio); font-size: .8rem; line-height: 1.45; white-space: pre-wrap; margin: .5rem 0 0; }
.estado-atualizacao { margin-top: .75rem; }
.aviso-ativo { border-color: #f0d58c; box-shadow: inset 0 3px 0 #e0b23a; }
.aviso-geral { margin-bottom: 1rem; }
.aviso-geral summary { cursor: pointer; color: var(--texto); margin: 0; }
.aviso-geral form { margin-top: .75rem; }
.nota-modelo { margin: -.25rem 0 .75rem; }
.topo-syncra img { height: 26px; max-width: none; }
.topo-etiqueta { margin-left: .55rem; padding: .1rem .45rem; border-radius: 4px; background: #E3E7ED; color: #0B3C5D; font-size: .72rem; font-weight: 600; letter-spacing: .02em; }
.entrar-logotipo { display: block; max-height: 64px; max-width: 220px; margin: 0 auto 1.25rem; }
.entrar-syncra { display: flex; align-items: center; justify-content: center; gap: .2rem; margin-bottom: 1.4rem; }
.feito-com { display: inline-flex; align-items: center; gap: .4rem; margin-top: 1.25rem; color: var(--suave); font-size: .8rem; text-decoration: none; justify-self: center; }
.feito-com:hover { color: #0B3C5D; }

.abertura { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; background: #fff; transition: opacity .35s ease; }
.abertura.fim { opacity: 0; pointer-events: none; }
.abertura svg { width: 88px; height: auto; overflow: visible; }
.abertura #abertura-linha { stroke-dasharray: var(--c); stroke-dashoffset: var(--c); animation: abertura-desenhar .5s cubic-bezier(.6, 0, .3, 1) .15s forwards; }
.abertura #abertura-b1, .abertura #abertura-b2 { transform-box: fill-box; transform-origin: center; transform: scale(0); }
.abertura #abertura-b1 { animation: abertura-surgir .3s cubic-bezier(.3, 1.5, .5, 1) forwards; }
.abertura #abertura-b2 { animation: abertura-surgir .35s cubic-bezier(.3, 1.7, .5, 1) .6s forwards; }
@keyframes abertura-desenhar { to { stroke-dashoffset: 0; } }
@keyframes abertura-surgir { to { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .abertura { display: none !important; } }

main.com-folha { max-width: none; padding: 24px 24px 48px; }
.folha { max-width: 1120px; margin: 0 auto; background: var(--superficie); border: 1px solid var(--linha); border-radius: 10px; padding: 36px 40px 44px; }
.folha-duas { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 48px; }
.folha-principal { min-width: 0; }
.folha-lado { border-left: 1px solid var(--linha-fina); padding-left: 32px; font-size: 14px; }
.folha-lado p { margin: 6px 0 0; }
.folha-lado .rotulo { margin: 28px 0 6px; }
.folha-lado > .rotulo:first-child { margin-top: 4px; }
.folha-lado .acao-linha { display: inline-block; margin-top: 6px; }
.lado-aviso { color: var(--aviso); }
.lado-suave { color: var(--suave); }
.lado-ligacao { color: var(--texto); text-decoration: none; }
.lado-ligacao:hover { text-decoration: underline; text-underline-offset: 3px; }
.numerico { font-variant-numeric: tabular-nums; }
@media (max-width: 960px) {
  .folha-duas { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .folha-lado { border-left: 0; padding-left: 0; }
  .folha-lado > .rotulo:first-child { margin-top: 28px; }
}
@media (max-width: 720px) {
  main.com-folha { padding: 0 0 calc(72px + env(safe-area-inset-bottom)); }
  .folha { border: 0; border-radius: 0; padding: 20px 16px 32px; }
}
.folha-topo { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.data-hoje { margin: 0; font-size: 13px; color: var(--tenue); }
.resumo-frase { font-size: 22px; line-height: 1.35; font-weight: 500; letter-spacing: 0; margin: 6px 0 0; }
.apoio { font-size: 15px; line-height: 1.5; color: var(--suave); margin: 8px 0 0; }
.acao-linha { font-size: 13px; color: var(--suave); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; transition: color .13s ease-out; }
.acao-linha:hover { color: var(--texto); }
.apoio .acao-linha { margin-right: .35rem; }

.novo-menu { position: relative; }
.novo-menu > summary { list-style: none; margin: 0; }
.novo-menu > summary::-webkit-details-marker { display: none; }
.botao-novo { font-size: 13px; font-weight: 600; color: var(--texto); background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 6px 14px; cursor: pointer; transition: border-color .13s ease-out; }
.botao-novo::before { content: "+ "; }
.botao-novo:hover, .novo-menu[open] .botao-novo { border-color: var(--suave); }
.novo-opcoes { position: absolute; right: 0; top: calc(100% + 6px); z-index: 20; min-width: 170px; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 4px 0; }
.novo-opcoes a { display: block; padding: 9px 14px; font-size: 14px; color: var(--texto); text-decoration: none; transition: background-color .12s ease-out; }
.novo-opcoes a:hover { background: var(--fundo); }

.rotulo { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin: 28px 0 6px; font-size: 13px; color: var(--tenue); }
.rotulo.primeiro { margin-top: 32px; }
.rotulo b { font-weight: 600; color: var(--suave); font-variant-numeric: tabular-nums; }
.itens { border-top: 1px solid var(--linha-fina); }
.item { display: grid; gap: 16px; align-items: baseline; padding: 12px 0; border-bottom: 1px solid var(--linha-fina); font-size: 15px; color: var(--texto); text-decoration: none; }
a.item:hover .item-texto { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--linha); }
.itens-agenda .item { grid-template-columns: 56px minmax(0, 1fr) auto; }
.itens-espera .item { grid-template-columns: minmax(0, 1fr) auto 64px; }
.item-hora { font-size: 13px; color: var(--suave); font-variant-numeric: tabular-nums; }
.item-det { display: block; font-size: 13px; color: var(--tenue); }
.item-quem { font-size: 13px; color: var(--tenue); }
.item.tenue, .item.tenue .item-hora { color: var(--tenue); }
.item-texto { min-width: 0; }
.item-nome { color: var(--texto); text-decoration: none; }
.item-nome:hover { text-decoration: underline; text-underline-offset: 3px; }
.item-estado { font-size: 13px; color: var(--tenue); font-variant-numeric: tabular-nums; }
.item-estado::before { content: "·"; margin-right: 4px; }
.item-estado.vencido { color: var(--estado-vencido); }
.item-valor { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.item-acao { text-align: right; }
.ver-mais { display: inline-block; margin-top: 14px; font-size: 14px; color: var(--suave); text-decoration: none; }
.ver-mais:hover { color: var(--texto); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 600px) {
  .itens-espera .item { grid-template-columns: minmax(0, 1fr) auto; row-gap: 2px; column-gap: 12px; }
  .itens-espera .item-texto { display: contents; }
  .itens-espera .item-nome { grid-column: 1; grid-row: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .itens-espera .item-valor { grid-column: 2; grid-row: 1; }
  .itens-espera .item-estado { grid-column: 1; grid-row: 2; }
  .itens-espera .item-estado::before { content: none; }
  .itens-espera .item-acao { grid-column: 2; grid-row: 2; }
}

.guarda-sozinho .so-sem-js { display: none !important; }
.estado-guardar { font-size: 13px; color: var(--tenue); align-self: center; min-width: 0; }
.campo-erro { display: block; font-size: 13px; color: var(--perigo); margin-top: 4px; grid-column: 1 / -1; }

a.botao-novo { display: inline-block; text-decoration: none; }
.folha-lista { max-width: 1040px; }
.folha-titulo { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.folha-titulo h1, .titulo-ecra { font-size: 22px; line-height: 1.3; font-weight: 600; margin: 0; letter-spacing: 0; }
.folha-titulo + .apoio { margin-top: 6px; }
.filtros-texto { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 24px; padding-bottom: 10px; border-bottom: 1px solid var(--linha); }
.procurar { display: flex; align-items: center; gap: 8px; flex: 1; min-width: 200px; color: var(--tenue); margin: 0; }
.icone-procurar { width: 20px; height: 20px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.6; stroke-linecap: round; }
.procurar input:not([type=radio]):not([type=checkbox]) { border: 0; outline: 0; font: inherit; font-size: 14px; color: var(--texto); background: transparent; width: 100%; padding: 4px 0; margin: 0; box-shadow: none; min-height: 0; }
.procurar input:focus { outline: 0; }
.procurar input::placeholder { color: var(--tenue); }
.procurar:focus-within { color: var(--texto); }
.filtros-lista { display: flex; gap: 18px; align-items: baseline; }
.filtro { font-size: 14px; color: var(--suave); text-decoration: none; white-space: nowrap; transition: color .12s ease-out; }
.filtro:hover { color: var(--texto); }
.filtro span { color: var(--tenue); font-variant-numeric: tabular-nums; margin-left: 4px; font-weight: 400; }
.filtro.ativo { color: var(--texto); font-weight: 600; }
.filtro-separado { margin-left: 10px; padding-left: 18px; border-left: 1px solid var(--linha); }
.filtros-texto + .rotulo { margin-top: 28px; }
.vazio-texto { margin-top: 32px; color: var(--suave); }

.itens-orc .item { grid-template-columns: 56px minmax(0, 1fr) 170px 120px; }
.item-num { font-size: 13px; color: var(--tenue); }
.item-ligacao { color: var(--texto); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.item-ligacao:hover { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--linha); }
.item-inline { font-size: 13px; color: var(--tenue); }
.item-valor.morto { color: var(--tenue); }

.estado-ponto { position: relative; display: inline-flex; align-items: center; font-size: 13px; color: var(--suave); white-space: nowrap; margin: 0; }
.estado-ponto::before { content: ""; width: 6px; height: 6px; border-radius: 50%; margin-right: 6px; background: var(--suave); flex: none; }
.estado-ponto select:focus { outline: 0; }
.estado-ponto select { appearance: none; -webkit-appearance: none; border: 0; background: transparent; font: inherit; color: inherit; padding: 2px 0; margin: 0; cursor: pointer; min-height: 0; box-shadow: none; width: auto; max-width: 100%; }
.estado-ponto select:hover { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--linha); }
.estado-ponto select:focus-visible { outline: 2px solid var(--destaque); outline-offset: 2px; border-radius: 3px; }
.estado-ponto.ponto-espera::before { background: var(--estado-espera); }
.estado-ponto.ponto-aceite::before { background: var(--estado-aceite); }
.estado-ponto.ponto-recusado::before { background: var(--estado-recusado); }
.estado-ponto.ponto-rascunho::before { background: var(--estado-rascunho); }
.estado-ponto.ponto-vencido { color: var(--estado-vencido); }
.estado-ponto.ponto-vencido::before { background: var(--estado-vencido); }

@media (max-width: 720px) {
  .filtros-texto { gap: 12px; }
  .filtros-lista { width: 100%; overflow-x: auto; scrollbar-width: none; gap: 16px; padding-bottom: 2px; }
  .filtros-lista::-webkit-scrollbar { display: none; }
  .itens-orc .item { grid-template-columns: auto minmax(0, 1fr) auto; row-gap: 2px; column-gap: 6px; }
  .itens-orc .item-ligacao { grid-column: 1 / 3; grid-row: 1; }
  .itens-orc .item-valor { grid-column: 3; grid-row: 1; }
  .itens-orc .item-num { grid-column: 1; grid-row: 2; }
  .itens-orc .item-num::after { content: " ·"; }
  .itens-orc .item-estado-ponto { grid-column: 2 / 4; grid-row: 2; min-width: 0; }
  .itens-orc .item-inline { display: none; }
}

.so-movel-inline, .so-movel-flex { display: none !important; }
@media (max-width: 720px) {
  .so-movel-inline { display: inline !important; }
  .so-movel-flex { display: flex !important; }
  .so-computador-inline, .so-computador-flex { display: none !important; }
}
.so-computador-flex { display: inline-flex; gap: 10px; align-items: center; }

.orc-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; flex-wrap: wrap; }
.orc-cab-texto { min-width: 0; flex: 1 1 320px; }
.orc-voltar-linha { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.orc-voltar { font-size: 13px; color: var(--suave); text-decoration: none; }
.orc-voltar:hover { color: var(--texto); }
.orc-numero { font-size: 22px; line-height: 1.3; font-weight: 600; margin: 8px 0 0; letter-spacing: 0; }
.orc-numero .estado-ponto { font-weight: 400; margin-left: 10px; vertical-align: 3px; }
.orc-meta { font-size: 14px; color: var(--suave); margin: 4px 0 0; line-height: 1.5; }
.orc-meta a { color: var(--texto); text-underline-offset: 3px; }
.orc-meta .acao-linha { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; }
.orc-acoes { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.orc-acoes form, .barra-total form { margin: 0; }
.orc-acoes .estado-guardar { margin-right: 6px; }
.btn-orc { display: inline-flex; align-items: center; font: inherit; font-size: 14px; font-weight: 600; line-height: 1.2; border-radius: var(--raio); padding: 8px 16px; border: 1px solid var(--linha); background: var(--superficie); color: var(--texto); cursor: pointer; text-decoration: none; min-height: 0; transition: border-color .13s ease-out, background-color .13s ease-out; }
.btn-orc:hover { border-color: var(--suave); }
.btn-orc.principal { background: var(--destaque); border-color: var(--destaque); color: #fff; }
.btn-orc.principal:hover { background: #183e4a; border-color: #183e4a; }
.btn-orc.icone { padding: 8px 12px; letter-spacing: 1px; }
.btn-orc:disabled { opacity: .7; cursor: progress; }

.menu-orc { position: relative; }
.menu-orc > summary { list-style: none; }
.menu-orc > summary::-webkit-details-marker { display: none; }
.menu-orc-opcoes { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; min-width: 240px; background: var(--superficie); border: 1px solid var(--linha); border-radius: 8px; padding: 6px 0; }
.menu-orc-opcoes form { margin: 0; }
.menu-orc-opcoes a, .menu-orc-opcoes button { display: block; width: 100%; text-align: left; padding: 9px 16px; font: inherit; font-size: 14px; color: var(--texto); background: none; border: 0; text-decoration: none; cursor: pointer; min-height: 0; transition: background-color .12s ease-out; }
.menu-orc-opcoes a:hover, .menu-orc-opcoes button:hover { background: var(--fundo); }
.menu-orc-grupo { font-size: 12px; color: var(--tenue); margin: 6px 0 0; padding: 8px 16px 2px; border-top: 1px solid var(--linha-fina); }
.menu-orc-opcoes .menu-orc-sub { padding-left: 28px; color: var(--suave); }
.menu-orc-opcoes .menu-orc-perigo { color: var(--perigo); border-top: 1px solid var(--linha-fina); margin-top: 6px; }

.editar-dados { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px 24px; margin: 20px 0 0; padding: 14px 0 16px; border-top: 1px solid var(--linha-fina); border-bottom: 1px solid var(--linha-fina); }
.editar-dados[hidden] { display: none; }
.ed-campo { margin: 0; font-size: 12px; color: var(--tenue); display: flex; flex-direction: column; gap: 2px; min-width: 120px; }
.ed-largo { flex: 1 1 220px; }
.ed-curto { min-width: 90px; flex: 0 0 110px; }
.ed-campo input:not([type=radio]):not([type=checkbox]), .ed-campo select { border: 0; border-bottom: 1px solid var(--destaque); border-radius: 0; padding: 3px 0; margin: 0; min-height: 0; font-size: 15px; background: transparent; }
.ed-campo input:focus, .ed-campo select:focus { outline: 0; border-bottom-width: 2px; padding-bottom: 2px; }
.ed-fechar { background: none; border: 0; padding: 0 0 4px; cursor: pointer; margin-left: auto; }

.orc-aviso { margin: 14px 0 0; font-size: 14px; color: var(--aviso); }
.em-linha { display: inline; margin: 0; }
.aviso-acao { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; color: var(--aviso); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.orc-relacoes { margin: 10px 0 0; font-size: 13px; color: var(--suave); line-height: 1.6; }
.orc-relacoes a { color: var(--suave); text-underline-offset: 3px; font-variant-numeric: tabular-nums; }
.orc-relacoes a.atual { color: var(--texto); font-weight: 600; text-decoration: none; }

.orc-duas { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 48px; margin-top: 32px; }
.orc-principal-col { min-width: 0; }
.orc-principal-col form { margin: 0; }
.linhas-cab, .linha-orc { display: grid; grid-template-columns: minmax(0, 1fr) 170px 120px; gap: 0 16px; align-items: baseline; }
.linhas-cab { font-size: 13px; color: var(--tenue); padding-bottom: 8px; border-bottom: 1px solid var(--linha); }
.linhas-cab span:not(:first-child) { text-align: right; }
.linha-orc { padding: 12px 0; border-bottom: 1px solid var(--linha-fina); cursor: text; transition: background-color .15s ease-out; }
.linha-orc[hidden] { display: none; }
.lo-campo { font: inherit; color: var(--texto); background: transparent; border: 0; border-radius: 0; padding: 0 0 1px; margin: 0; min-height: 0; box-shadow: none; outline: 0; width: auto; display: inline; border-bottom: 1px solid transparent; }
input.lo-campo:not([type=radio]):not([type=checkbox]) { display: inline; width: auto; padding: 0 0 1px; margin: 0; min-height: 0; border: 0; border-bottom: 1px solid transparent; border-radius: 0; background: transparent; font-size: inherit; }
textarea.lo-campo { display: block; width: 100%; resize: none; overflow: hidden; line-height: 1.45; min-height: 0; border: 0; border-bottom: 1px solid transparent; padding: 0 0 1px; font-size: 15px; }
.lo-campo:focus { outline: 0; }
.lo-campo::placeholder { color: var(--tenue); }
.lo-texto { min-width: 0; }
.lo-extra { display: block; font-size: 13px; color: var(--tenue); }
.lo-extra:empty { display: none; }
.lo-qp { text-align: right; font-size: 14px; color: var(--suave); font-variant-numeric: tabular-nums; white-space: nowrap; }
.lo-qp .lo-campo { color: var(--suave); text-align: right; font-variant-numeric: tabular-nums; }
.lo-x, .lo-euro { margin: 0 2px; }
@supports (field-sizing: content) { input.lo-numero.lo-campo:not([type=radio]), input.dv-nome.lo-campo:not([type=radio]) { field-sizing: content; min-width: 1ch; } }
.lo-desconto { font-size: 13px; color: var(--tenue); }
.lo-total { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.lo-opcoes { grid-column: 1 / -1; display: none; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; margin-top: 8px; font-size: 13px; color: var(--suave); }
.lo-opcao { margin: 0; font-size: 13px; color: var(--suave); display: inline-flex; align-items: baseline; gap: 4px; }
.lo-opcao .lo-campo { color: var(--texto); text-align: right; }
.lo-botao { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; color: var(--suave); cursor: pointer; min-height: 0; transition: color .12s ease-out; }
.lo-botao:hover { color: var(--texto); text-decoration: underline; text-underline-offset: 3px; }
.lo-apagar, .lo-apagar:hover { color: var(--perigo); }
.linha-orc.ed { border-radius: 6px; background: #f6f8f9; margin: 0 -10px; padding: 12px 10px; border-bottom-color: transparent; }
.linha-orc.ed .lo-opcoes { display: flex; }
.linha-orc.ed .lo-campo, .divisao-orc.ed .lo-campo { border-bottom-color: var(--destaque); }
.linha-orc.ed .lo-campo:focus, .divisao-orc.ed .lo-campo:focus { border-bottom-width: 2px; padding-bottom: 0; }
.linha-orc.ed .lo-qp .lo-campo { color: var(--texto); }
.linha-orc.ed .lo-desconto { display: none; }
.linha-orc .campo-erro, .divisao-orc .campo-erro { grid-column: 1 / -1; text-align: left; white-space: normal; }
.linha-orc.piscar, .divisao-orc.piscar { animation: piscar-linha .6s ease-out; }
@keyframes piscar-linha { from { background-color: #e9eef1; } to { background-color: transparent; } }
@media (prefers-reduced-motion: reduce) { .linha-orc.piscar { animation: none; } }
.linhas-guardar { margin-top: 12px; }

.adicionar-linha { display: flex; align-items: center; gap: 8px; margin: 0; padding: 12px 0; border-bottom: 1px solid var(--linha-fina); font-size: 14px; color: var(--tenue); cursor: text; }
.adicionar-mais { font-size: 16px; line-height: 1; transition: color .12s ease-out; }
.adicionar-linha input:not([type=radio]):not([type=checkbox]) { flex: 1; border: 0; border-bottom: 1px solid transparent; border-radius: 0; padding: 0 0 1px; margin: 0; min-height: 0; font: inherit; font-size: 14px; background: transparent; color: var(--texto); }
.adicionar-linha input::placeholder { color: var(--tenue); transition: color .12s ease-out; }
.adicionar-linha input:focus { outline: 0; border-bottom-color: var(--destaque); }
.adicionar-linha:focus-within, .adicionar-linha:focus-within input::placeholder { color: var(--texto); }
.adicionar-abrir { display: block; width: 100%; text-align: left; justify-content: flex-start; background: none; border: 0; border-bottom: 1px solid var(--linha-fina); padding: 12px 0; font: inherit; font-size: 14px; color: var(--tenue); cursor: pointer; min-height: 0; }
.adicionar-quantidade { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 10px; padding: 10px 0; font-size: 14px; color: var(--texto); border-bottom: 1px solid var(--linha-fina); }
.adicionar-quantidade[hidden] { display: none; }
.adicionar-quantidade .lo-campo { border-bottom-color: var(--destaque) !important; text-align: right; }
.adicionar-dica { font-size: 13px; color: var(--tenue); }
.sugestoes-orc { border: 1px solid var(--linha); border-radius: 8px; margin-top: 6px; padding: 6px 0; font-size: 14px; max-width: 560px; max-height: 360px; overflow-y: auto; background: var(--superficie); }
.sugestoes-orc[hidden] { display: none; }
.sg-grupo { font-size: 12px; color: var(--tenue); padding: 8px 14px 4px; margin: 0; }
.sg-opcao { display: flex; justify-content: space-between; gap: 12px; padding: 6px 14px; cursor: pointer; }
.sg-opcao.sel { background: #f6f8f9; }
.sg-preco { color: var(--suave); white-space: nowrap; font-variant-numeric: tabular-nums; }
.adicionar-orc .campo-erro { margin: 6px 0 0; }

.orc-totais { margin: 18px 0 0 auto; width: 300px; max-width: 100%; display: grid; grid-template-columns: 1fr auto; gap: 6px 0; font-variant-numeric: tabular-nums; }
.ot-rotulo { font-size: 14px; color: var(--suave); }
.ot-base { font-size: 13px; color: var(--tenue); }
.ot-valor { text-align: right; white-space: nowrap; padding-left: 16px; }
.ot-total { font-size: 18px; font-weight: 600; border-top: 1px solid var(--linha); padding-top: 8px; }
.desconto-todas { text-align: right; margin-top: 8px; font-size: 13px; color: var(--suave); }
.desconto-todas > button { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; }
.desconto-todas-form { display: inline-flex; align-items: baseline; gap: 6px; margin: 0 0 0 12px; }
.desconto-todas-form[hidden] { display: none; }
.desconto-todas-form .lo-campo { border-bottom-color: var(--destaque) !important; text-align: right; color: var(--texto); }
.desconto-todas-form button { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; }

.outras-formas { margin-top: 8px; font-size: 13px; color: var(--suave); }
.outras-formas > summary { cursor: pointer; color: var(--tenue); list-style: none; margin: 0; display: inline-block; font-size: 13px; }
.outras-formas > summary::-webkit-details-marker { display: none; }
.outras-formas > summary:hover { color: var(--texto); text-decoration: underline; text-underline-offset: 3px; }
.outras-formas > form { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--linha-fina); font-size: 15px; color: var(--texto); }
.of-titulo { font-size: 14px; color: var(--suave); margin: 0 0 10px; }

.orc-lado .lado-secao + .lado-secao .rotulo { margin-top: 28px; }
.orc-lado .rotulo:first-child { margin-top: 4px; }
.lado-abrir, .lado-abrir:hover, .lado-abrir:focus { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: default; min-height: 0; text-align: left; box-shadow: none; }
.lado-tenue { color: var(--tenue); }
.divisao-orc { padding: 4px 0 8px; border-radius: 6px; cursor: text; }
.divisao-orc p { margin: 6px 0 0; }
.dv-linha1 { color: var(--texto); font-size: 14px; }
.dv-linha2 { font-size: 13px; color: var(--tenue); }
.dv-linha2 .lo-campo { color: var(--tenue); font-size: 13px; }
.dv-sep, .dv-un { margin: 0 3px; }
.dv-un { margin-left: 2px; }
select.dv-passagem { appearance: none; -webkit-appearance: none; border: 0; border-bottom: 1px solid transparent; padding: 0 0 1px; margin: 0; min-height: 0; width: auto; display: inline; background: transparent; font: inherit; font-size: 13px; color: var(--tenue); cursor: pointer; }
.dv-opcoes { display: none; margin: 6px 0 0; }
.divisao-orc.ed { background: #f6f8f9; margin: 0 -10px; padding: 4px 10px 8px; }
.divisao-orc.ed .dv-opcoes { display: block; }
.divisao-orc.ed .lo-campo { color: var(--texto); }
.dv-nova { margin: 10px 0 0; padding: 0; border: 0; }
.dv-nova .acao-linha { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; }
textarea.obs-campo { font-size: 14px; line-height: 1.5; min-height: 2.6em; }
.obs-campo:focus { border-bottom-color: var(--destaque) !important; }

.barra-total { position: fixed; left: 0; right: 0; bottom: calc(62px + env(safe-area-inset-bottom)); z-index: 39; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 16px; border-top: 1px solid var(--linha); background: var(--superficie); }
.barra-total small { display: block; font-size: 12px; color: var(--tenue); }
.barra-total strong { font-size: 17px; font-weight: 600; font-variant-numeric: tabular-nums; }
.barra-total-acao { display: flex; gap: 8px; }

.painel-fundo { position: fixed; inset: 0; z-index: 60; background: rgb(23 32 42 / .35); }
.painel-baixo { position: fixed; left: 0; right: 0; bottom: 0; z-index: 61; max-height: 85vh; overflow-y: auto; background: var(--superficie); border-radius: 16px 16px 0 0; border-top: 1px solid var(--linha); padding: 10px 16px calc(18px + env(safe-area-inset-bottom)); transition: transform .15s ease-out; }
.painel-baixo[hidden], .painel-fundo[hidden] { display: none; }
.painel-puxador { width: 36px; height: 4px; border-radius: 2px; background: var(--linha); margin: 0 auto 14px; }
.painel-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.painel-cab .acao-linha { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; }
.painel-titulo { font-weight: 600; }
.painel-corpo { margin-top: 8px; }
.pb-campo { display: block; margin: 0; padding: 9px 0; border-bottom: 1px solid var(--linha-fina); font-size: 15px; color: var(--texto); }
.pb-campo small { display: block; font-size: 12px; color: var(--tenue); margin-bottom: 2px; }
.pb-campo .lo-campo { display: block; width: 100%; text-align: left; color: var(--texto); font-size: 16px; }
.pb-campo input.lo-campo:not([type=radio]):not([type=checkbox]) { display: block; width: 100%; font-size: 16px; }
.pb-campo:focus-within { border-bottom-color: var(--destaque); }
.pb-duas { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.pb-acoes { display: flex; gap: 20px; margin-top: 16px; }
.pb-acoes .lo-botao { font-size: 14px; }
.pb-acoes .lo-apagar { margin-left: auto; }
.painel-guardar { margin: 14px 0 0; min-height: 1em; }
.painel-corpo .lado-conteudo, .painel-corpo .adicionar-conteudo { display: block !important; }
.painel-corpo .divisao-orc { padding: 8px 0; border-bottom: 1px solid var(--linha-fina); }
.painel-corpo .divisao-orc .lo-campo { border-bottom-color: var(--linha); font-size: 16px; }
.painel-corpo .dv-opcoes { display: block; }
.painel-corpo textarea.obs-campo { font-size: 16px; border-bottom: 1px solid var(--linha); min-height: 6em; }
body.com-painel { overflow: hidden; }

.aviso-desfazer { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 70; display: flex; gap: 14px; align-items: baseline; padding: 10px 16px; background: var(--texto); color: #fff; border-radius: 8px; font-size: 14px; max-width: calc(100% - 32px); }
.aviso-desfazer[hidden] { display: none; }
.aviso-desfazer .acao-linha { color: #fff; background: none; border: 0; padding: 0; font: inherit; font-size: 14px; cursor: pointer; }
.aviso-desfazer .acao-linha[hidden] { display: none; }

@media (max-width: 960px) {
  .orc-duas { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .orc-lado { border-left: 0; padding-left: 0; }
  .orc-lado .lado-secao:first-child .rotulo { margin-top: 28px; }
}
@media (max-width: 720px) {
  .orc-cab { flex-wrap: nowrap; gap: 12px; }
  .orc-acoes { align-self: flex-end; }
  .orc-numero { font-size: 20px; }
  .orc-meta { font-size: 13px; }
  .orc-duas { margin-top: 18px; }
  .linhas-cab { display: none; }
  .linha-orc { grid-template-columns: minmax(0, 1fr) auto; cursor: pointer; border-top: 0; }
  .linhas-orc { border-top: 1px solid var(--linha-fina); }
  .linha-orc .lo-texto { grid-column: 1 / -1; }
  .linha-orc .lo-qp { text-align: left; font-size: 13px; color: var(--tenue); margin-top: 2px; }
  .linha-orc .lo-qp .lo-campo { color: var(--tenue); text-align: left; }
  .linha-orc .lo-total { margin-top: 2px; }
  .linha-orc .lo-campo { pointer-events: none; }
  .linha-orc.ed { background: transparent; margin: 0; padding: 12px 0; border-bottom-color: var(--linha-fina); }
  .linha-orc.ed .lo-opcoes { display: none; }
  .adicionar-orc > .adicionar-conteudo { display: none; }
  .orc-lado .lado-conteudo { display: none; }
  .orc-lado .lado-secao:not(.lado-ligado) .rotulo { margin: 0; padding: 12px 0; border-bottom: 1px solid var(--linha-fina); }
  .orc-lado .lado-secao:first-child .rotulo { margin-top: 18px; border-top: 1px solid var(--linha-fina); }
  .orc-lado .lado-secao + .lado-secao:not(.lado-ligado) .rotulo { margin-top: 0; }
  .lado-abrir { cursor: pointer; width: 100%; font-size: 14px; color: var(--texto); }
  .orc-lado .lado-ligado .rotulo { margin-top: 24px; }
  .desconto-todas { margin-bottom: 8px; }
  main.com-folha:has(.folha-orc) { padding-bottom: calc(140px + env(safe-area-inset-bottom)); }
  .aviso-desfazer { bottom: calc(136px + env(safe-area-inset-bottom)); }
}

button.acao-linha, button.lo-botao, button.lado-abrir, button.adicionar-abrir, .menu-orc-opcoes button, button.aviso-acao { min-height: 0; justify-content: flex-start; font-weight: 400; border-radius: 0; gap: 0; }
button.acao-linha:hover, button.lo-botao:hover, button.lado-abrir:hover, button.adicionar-abrir:hover, button.aviso-acao:hover { background: none; border-color: transparent; }
.menu-orc-opcoes button:hover { background: var(--fundo); border-color: transparent; }
button.btn-orc { min-height: 0; gap: 0; }
button.btn-orc:hover { background: var(--superficie); border-color: var(--suave); }
button.btn-orc.principal:hover { background: #183e4a; border-color: #183e4a; }
.menu-orc-opcoes .menu-orc-perigo:hover { color: var(--perigo); }
button.lado-abrir { display: inline; }
@media (max-width: 720px) {
  button.lado-abrir, button.lado-abrir:hover, button.lado-abrir:focus { display: block; color: var(--texto); }
}
@media (min-width: 721px) { .menu-orc-opcoes .so-movel { display: none; } }

.sg-outras { color: var(--suave); border-top: 1px solid var(--linha-fina); margin-top: 4px; padding-top: 8px; }
.lo-espelho { color: inherit; }
.lo-espelho-texto { display: block; white-space: pre-line; }

.orc-previsto { font-size: 13px; font-weight: 400; color: var(--tenue); margin-left: 10px; vertical-align: 3px; font-variant-numeric: tabular-nums; }
.para-quem { margin-top: 24px; max-width: 560px; }
.para-quem-rotulo { display: block; margin: 0 0 4px; font-size: 13px; color: var(--tenue); }
input.para-quem-campo:not([type=radio]):not([type=checkbox]) { border: 0; border-bottom: 1px solid var(--destaque); border-radius: 0; padding: 4px 0; margin: 0; min-height: 0; font-size: 17px; background: transparent; }
input.para-quem-campo:focus { outline: 0; border-bottom-width: 2px; padding-bottom: 3px; }
.sg-criar { color: var(--destaque); }
.cliente-rapido { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px 20px; margin-top: 16px; }
.cliente-rapido[hidden] { display: none; }
.para-quem .campo-erro { margin-top: 8px; }
.orc-esbatido { opacity: .45; pointer-events: none; user-select: none; }
.orc-nota-cliente { margin: 18px 0 0; font-size: 13px; color: var(--tenue); }
.orc-novo .orc-numero { margin-top: 8px; }

button.filtro { background: none; border: 0; padding: 0; min-height: 0; font: inherit; font-size: 14px; color: var(--suave); cursor: pointer; border-radius: 0; gap: 0; }
button.filtro:hover { background: none; color: var(--texto); }
button.filtro.ativo { color: var(--texto); font-weight: 600; }
.imp-titulo { margin-top: 8px; }
.imp-ficheiro { margin: 2px 0 0; font-size: 13px; color: var(--tenue); }
.imp-erro { color: var(--perigo); }
.imp-marca { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px 24px; margin-top: 18px; }
.filtros-imp { margin-top: 24px; }
.filtros-imp + .imp-grupo .itens, .filtros-imp ~ .imp-grupo > .itens:first-child { margin-top: 0; }
.imp-grupo { margin-top: 20px; }
.imp-grupo[hidden] { display: none; }
.itens-mudam .item { grid-template-columns: minmax(0, 1fr) 120px 120px 64px; }
.itens-novos .item { grid-template-columns: minmax(0, 1fr) 120px 110px 120px; }
.itens-iguais .item { grid-template-columns: minmax(0, 1fr) 120px; }
.itens-iguais.tenue .item, .itens-iguais.tenue .item-valor { color: var(--tenue); }
.imp-btu { text-align: right; }
.imp-dif { text-align: right; font-size: 13px; color: var(--suave); font-variant-numeric: tabular-nums; }
.imp-dif.sobe { color: var(--texto); }
.imp-aviso { margin: 0 0 12px; font-size: 14px; color: var(--aviso); }
.imp-escolha { display: flex; gap: 24px; flex-wrap: wrap; margin: 0 0 14px; font-size: 14px; color: var(--texto); }
.imp-escolha label { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 14px; color: var(--texto); }
.imp-escolha input { accent-color: var(--destaque); margin: 0; }
.imp-ignoradas { margin-top: 20px; font-size: 13px; color: var(--tenue); }
.imp-ignoradas summary { cursor: pointer; }
.imp-acoes { display: flex; align-items: center; gap: 18px; margin-top: 28px; }
.a-ler-barra { margin-top: 24px; height: 2px; background: var(--linha-fina); overflow: hidden; max-width: 420px; }
.a-ler-barra span { display: block; width: 30%; height: 100%; background: var(--destaque); animation: a-ler 1.4s ease-in-out infinite; }
@keyframes a-ler { from { transform: translateX(-100%); } to { transform: translateX(340%); } }
@media (prefers-reduced-motion: reduce) { .a-ler-barra span { animation: none; width: 100%; } }
@media (max-width: 720px) {
  .itens-mudam .item { grid-template-columns: minmax(0, 1fr) auto auto; row-gap: 2px; }
  .itens-mudam .item-texto { grid-column: 1 / -1; }
  .itens-novos .item { grid-template-columns: minmax(0, 1fr) auto; row-gap: 2px; }
  .itens-novos .item-inline { grid-row: 2; }
  .itens-novos .imp-btu { text-align: left; grid-column: 1; }
}
.imp-grupo { margin-top: 0; }
.imp-grupo > .itens { border-top: 0; }
.imp-grupo > .imp-aviso, .imp-grupo > .imp-escolha { margin-top: 16px; }

.catalogo-nav { display: flex; gap: 8px; align-items: baseline; font-size: 14px; color: var(--tenue); margin-bottom: 14px; }
.catalogo-nav a { color: var(--suave); text-decoration: none; }
.catalogo-nav a:hover { color: var(--texto); }
.catalogo-nav a[aria-current="page"] { color: var(--texto); font-weight: 600; }
.cat-acoes { display: flex; align-items: center; gap: 18px; }
.cat-acoes .acao-linha { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; }
.cat-aviso { color: var(--aviso); }
.filtros-cat .filtros-lista { flex-wrap: wrap; row-gap: 6px; }
.grupo-cat + .grupo-cat .rotulo-cat { margin-top: 28px; }
.rotulo-cat { margin-top: 28px; }
.rc-marca { font-size: 15px; font-weight: 600; color: var(--texto); }
.rc-tabela.velha { color: var(--aviso); }
.rc-tabela .acao-linha { font-size: 13px; }
.itens-cat { border-top: 1px solid var(--linha-fina); }
.linha-cat { display: grid; grid-template-columns: minmax(0, 1fr) 120px 120px; gap: 0 16px; align-items: baseline; padding: 12px 0; border-bottom: 1px solid var(--linha-fina); cursor: text; }
.lc-texto { min-width: 0; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.lc-modelo { font-size: 15px; min-width: 6ch; }
input.lc-modelo.lo-campo:not([type=radio]) { flex: 0 1 auto; max-width: 100%; }
@supports (field-sizing: content) { input.lc-modelo.lo-campo:not([type=radio]), input.lc-marca-nova.lo-campo:not([type=radio]) { field-sizing: content; } }
.lc-detalhe { font-size: 13px; color: var(--tenue); white-space: nowrap; }
.lc-inativo { display: none; }
.linha-cat.inativo .lc-inativo { display: inline; }
.linha-cat.inativo, .linha-cat.inativo .lo-campo { color: var(--tenue); }
.lc-btu { text-align: right; font-size: 14px; color: var(--suave); white-space: nowrap; }
.lc-btu .lo-campo { color: var(--suave); text-align: right; font-size: 14px; }
.lc-btu input:placeholder-shown + .lc-un { visibility: hidden; }
.lc-preco { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.lc-preco .lo-campo { text-align: right; font-variant-numeric: tabular-nums; }
.lc-opcoes { grid-column: 1 / -1; display: none; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; margin-top: 8px; font-size: 13px; color: var(--suave); }
.lc-opcoes select.lo-campo { appearance: auto; font-size: 13px; color: var(--texto); padding: 0; border: 0; border-bottom: 1px solid var(--destaque); background: transparent; min-height: 0; width: auto; display: inline; margin: 0; }
.lc-opcoes a.lo-botao { text-decoration: none; }
.lc-opcoes a.lo-botao:hover { text-decoration: underline; text-underline-offset: 3px; }
.lc-dica { color: var(--tenue); }
.lc-dica.falta { color: var(--aviso); }
.linha-cat.ed { background: #f6f8f9; margin: 0 -10px; padding: 12px 10px; border-bottom-color: transparent; border-radius: 6px; }
.linha-cat.ed .lc-opcoes { display: flex; }
.linha-cat.ed .lo-campo { border-bottom-color: var(--destaque); color: var(--texto); }
.linha-cat.ed .lo-campo:focus { border-bottom-width: 2px; padding-bottom: 0; }
.linha-cat.ed .lc-un { visibility: visible; }
.linha-cat.piscar { animation: piscar-linha .6s ease-out; }
.linha-cat .campo-erro { grid-column: 1 / -1; }
.linha-nova .lo-campo::placeholder { color: var(--tenue); }
@media (max-width: 720px) {
  .folha-titulo { flex-wrap: wrap; }
  .cat-acoes { gap: 14px; }
  .filtros-cat .filtros-lista { flex-wrap: nowrap; }
  .linha-cat { grid-template-columns: minmax(0, 1fr) auto; row-gap: 2px; cursor: pointer; }
  .linha-cat:not(.linha-nova) .lo-campo { pointer-events: none; }
  .lc-texto { grid-column: 1; grid-row: 1; flex-wrap: nowrap; overflow: hidden; }
  .lc-preco { grid-column: 2; grid-row: 1; }
  .lc-texto .lc-detalhe { display: none; }
  .lc-btu { grid-column: 1 / -1; grid-row: 2; text-align: left; font-size: 13px; color: var(--tenue); }
  .lc-btu .lo-campo { text-align: left; font-size: 13px; color: var(--tenue); }
  .lc-btu::before { content: attr(data-tipo); }
  .linha-cat.ed:not(.linha-nova) { background: transparent; margin: 0; padding: 12px 0; border-bottom-color: var(--linha-fina); }
  .linha-cat.ed:not(.linha-nova) .lc-opcoes { display: none; }
  .linha-cat.ed:not(.linha-nova) .lo-campo { border-bottom-color: transparent; color: inherit; }
  .rotulo-cat .rc-tabela:not(.velha) { display: none; }
  .rotulo-cat .rc-atualizar { display: none; }
  .linha-cat .lc-btu input.lo-campo { color: var(--tenue); }
}
.linha-orc.ed input.lo-campo:not([type=radio]):not([type=checkbox]), .divisao-orc.ed input.lo-campo:not([type=radio]):not([type=checkbox]),
.linha-cat.ed input.lo-campo:not([type=radio]):not([type=checkbox]) { border-bottom-color: var(--destaque); }
.linha-orc.ed input.lo-campo:not([type=radio]):not([type=checkbox]):focus, .divisao-orc.ed input.lo-campo:not([type=radio]):not([type=checkbox]):focus,
.linha-cat.ed input.lo-campo:not([type=radio]):not([type=checkbox]):focus { border-bottom-width: 2px; padding-bottom: 0; }
.desconto-todas-form input.lo-campo:not([type=radio]):not([type=checkbox]), .adicionar-quantidade input.lo-campo:not([type=radio]):not([type=checkbox]) { border-bottom: 1px solid var(--destaque); }
@media (max-width: 720px) {
  .linha-cat.ed:not(.linha-nova) input.lo-campo:not([type=radio]):not([type=checkbox]), .linha-orc.ed input.lo-campo:not([type=radio]):not([type=checkbox]) { border-bottom-color: transparent; }
}

.largar { margin-top: 24px; }
.largar[hidden] { display: none; }
.largar-zona { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; height: 160px; margin: 0; border: 1px dashed var(--linha); border-radius: 8px; font-size: 15px; color: var(--suave); cursor: pointer; text-align: center; padding: 0 16px; transition: border-color .13s ease-out, background-color .13s ease-out; }
.largar-zona:hover, .largar-zona:focus-within { border-color: var(--suave); }
.largar-zona.por-cima { border-color: var(--destaque); background: #f6f8f9; }
.largar-zona.a-enviar { cursor: progress; }
.largar-zona u { text-underline-offset: 3px; }
.largar-estado { font-size: 13px; color: var(--tenue); min-height: 1em; }
.largar-nota { margin: 12px 0 0; font-size: 13px; color: var(--tenue); }
.largar-nota .acao-linha { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; margin-left: 6px; }
.folha-lado .acao-linha { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; }
.tabela-recente { margin: 10px 0 0; }
.tabela-recente-det { display: block; font-size: 13px; color: var(--tenue); margin-top: 1px; }
.tabela-recente-det.por-rever { color: var(--aviso); }
@media (max-width: 720px) {
  .largar-zona { height: auto; padding: 18px 0; border: 0; align-items: flex-start; }
}
.largar-zona { position: relative; overflow: hidden; }

.linha-serv { grid-template-columns: minmax(0, 1fr) auto; }
.ls-regra { text-align: right; font-size: 14px; color: var(--suave); font-variant-numeric: tabular-nums; }
.linha-serv.sem-valor .ls-regra { color: var(--aviso); }
.ls-campos label[hidden] { display: none; }
.ls-largo { flex: 1 1 320px; }
.ls-largo input.lo-campo:not([type=radio]):not([type=checkbox]) { flex: 1; min-width: 0; }
.ls-campos input.lo-campo:not([type=radio]):not([type=checkbox]) { font-size: 13px; color: var(--texto); }
@media (max-width: 720px) {
  .linha-serv { grid-template-columns: minmax(0, 1fr); }
  .linha-serv .ls-regra { text-align: left; font-size: 13px; }
}
.ls-campos input.lo-campo:not(.lo-numero):not([type=radio]):not([type=checkbox]) { text-align: left; }
.itens-serv { margin-top: 24px; }
@media (max-width: 720px) {
  .filtros-cat { position: sticky; top: calc(56px + env(safe-area-inset-top)); z-index: 20; background: var(--superficie); margin-left: -16px; margin-right: -16px; padding: 10px 16px; }
}

.cli-contactos { display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 10px 0 0; font-size: 14px; }
.cli-contacto { display: inline-flex; align-items: center; gap: 6px; color: var(--destaque); text-decoration: none; }
.cli-contacto:hover span { text-decoration: underline; text-underline-offset: 3px; }
.icone-contacto { width: 16px; height: 16px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.cli-sem-contactos { color: var(--tenue); }
.cli-sem-contactos .acao-linha { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; }
.cli-acoes { align-self: flex-start; }
.cli-dados .cli-tipo { border: 0; padding: 0; margin: 0; display: flex; flex-direction: row; flex-wrap: wrap; gap: 4px 16px; align-items: baseline; min-width: 0; }
.cli-dados .cli-tipo legend { float: left; width: 100%; padding: 0; font-size: 12px; color: var(--tenue); margin-bottom: 2px; }
.cli-dados .cli-tipo label { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: 15px; color: var(--texto); cursor: pointer; }
.cli-dados .cli-tipo input { accent-color: var(--destaque); margin: 0; }
.cli-nota-nif { flex-basis: 100%; margin: 0; font-size: 13px; color: var(--tenue); }
.cli-nota-nif[hidden] { display: none; }
.cli-dados-fim { flex-basis: 100%; display: flex; align-items: baseline; gap: 18px; }
.cli-dados-fim .ed-fechar { margin-left: 0; }
.cli-apagar { margin-left: auto; color: var(--perigo) !important; background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; }
.cli-dados .campo-erro { flex-basis: 100%; margin: 0; }
.cli-resumo { margin: 0; font-size: 18px; line-height: 1.4; font-weight: 500; color: var(--texto); }
.filtros-hist { margin-top: 20px; }
.historia .hist-grupo:first-child .rotulo { margin-top: 28px; }
.hist-grupo[hidden], .item-hist[hidden] { display: none; }
.itens .item-hist { grid-template-columns: 56px minmax(0, 1fr) auto; color: var(--texto); text-decoration: none; }
.item-hist:hover .ih-titulo { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--linha); }
.ih-mes { font-size: 13px; color: var(--tenue); }
.ih-titulo.aviso { color: var(--aviso); }
.ih-detalhe { display: block; font-size: 13px; color: var(--tenue); }
.ih-detalhe .estado-ponto { color: var(--tenue); }
.item-hist.morto .ih-direita { color: var(--tenue); }
.ih-direita .acao-linha { font-size: 13px; }
.cli-equip { margin: 10px 0 0 !important; }
.cli-lado .lado-secao + .lado-secao .rotulo { margin-top: 28px; }
@media (max-width: 720px) {
  .cli-acoes { align-self: flex-start; }
  .cli-contactos { gap: 0; justify-content: space-between; margin-top: 16px; }
  .cli-contacto { flex-direction: column; gap: 4px; width: 25%; font-size: 12px; color: var(--destaque); }
  .cli-contacto span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: center; }
  .cli-ligar span, .cli-email span { font-size: 0; }
  .cli-ligar span::after { content: "Ligar"; font-size: 12px; }
  .cli-email span::after { content: "Email"; font-size: 12px; }
  .cli-mapa span { font-size: 0; }
  .cli-mapa span::after { content: "Mapa"; font-size: 12px; }
  .icone-contacto { width: 26px; height: 26px; }
  .cli-resumo { font-size: 16px; }
  .itens .item-hist { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .cli-barra small { font-size: 13px; color: var(--suave); max-width: 50vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  main.com-folha:has(.folha-cli) { padding-bottom: calc(140px + env(safe-area-inset-bottom)); }
}

.filtros-cli + #clientes-resultados > .itens.sem-rotulo:first-child { margin-top: 20px; }
#clientes-resultados > .rotulo:first-child { margin-top: 28px; }
.itens-cli .item { grid-template-columns: minmax(0, 1fr) 140px 240px; color: var(--texto); text-decoration: none; }
.itens-cli .item:hover .ic-nome { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--linha); }
.ic-local { font-size: 14px; color: var(--suave); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ic-mov { font-size: 13px; color: var(--suave); text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ic-mov .estado-ponto { color: var(--suave); }
.ic-mov .estado-ponto.ponto-vencido { color: var(--estado-vencido); }
@media (max-width: 720px) {
  .itens-cli .item { grid-template-columns: auto minmax(0, 1fr); row-gap: 2px; column-gap: 8px; }
  .itens-cli .item-texto { grid-column: 1 / -1; }
  .itens-cli .ic-local { font-size: 13px; color: var(--tenue); }
  .itens-cli .ic-local:empty { display: none; }
  .itens-cli .ic-local:not(:empty)::after { content: " ·"; }
  .itens-cli .ic-mov { text-align: left; }
}

/* Ordens de serviço */
main.com-folha > .aviso { max-width: 1120px; margin: 0 auto 12px; }
.itens-os .item { grid-template-columns: 56px minmax(0, 1fr) 140px 200px; color: var(--texto); text-decoration: none; }
.itens-os .item:hover .io-cliente { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--linha); }
.itens-os .item-texto { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.io-cliente { font-size: 15px; }
.io-visita { font-size: 14px; color: var(--suave); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.io-visita.sem { font-size: 13px; color: var(--tenue); }
.io-estado { text-align: right; min-width: 0; overflow: hidden; }
@media (max-width: 720px) {
  main.com-folha > .aviso { margin: 12px 16px; }
  .itens-os .item { grid-template-columns: auto auto minmax(0, 1fr) auto; row-gap: 2px; column-gap: 6px; }
  .itens-os .item-texto { grid-column: 1 / 4; grid-row: 1; }
  .itens-os .io-estado { grid-column: 4; grid-row: 1; }
  .itens-os .item-num { grid-column: 1; grid-row: 2; }
  .itens-os .item-num::after { content: " ·"; }
  .itens-os .io-visita { grid-column: 2 / 5; grid-row: 2; font-size: 13px; color: var(--tenue); }
  .itens-os .item-inline { display: none; }
}

.os-meta a[href^="tel:"] { white-space: nowrap; }
.os-meta .os-morada { background: none; border: 0; padding: 0; margin: 0; font: inherit; color: var(--suave); cursor: pointer; min-height: 0; text-decoration: underline dotted; text-decoration-color: var(--linha); text-underline-offset: 3px; }
.os-meta .os-morada:hover { color: var(--texto); }
.os-morada-campo { margin-top: 10px; max-width: 520px; }
.os-morada-campo[hidden] { display: none; }
.os-duas { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 48px; margin-top: 28px; }
.os-col { min-width: 0; }
.os-lado { border-left: 1px solid var(--linha-fina); padding-left: 32px; font-size: 14px; }
.os-lado .os-sec:first-child .rotulo, .os-principal .os-sec:first-child .rotulo { margin-top: 4px; }
.os-lado .os-faixa + .os-sec .rotulo { margin-top: 24px; }
.os-sec .rotulo { margin-top: 28px; }
.os-texto { margin: 0; font-size: 15px; line-height: 1.55; }
.os-texto-livre { white-space: pre-line; }
.os-vazio { color: var(--tenue); }
.os-perigo { color: var(--perigo); background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; min-height: 0; }

.os-faixa { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 16px; background: #f6f8f9; border-radius: 6px; padding: 14px 16px; }
.os-faixa form { margin: 0; }
.os-faixa-texto { min-width: 0; }
.os-faixa-titulo { margin: 0; font-size: 15px; color: var(--texto); }
.os-faixa-so { flex: 1 1 180px; }
.os-faixa-det { margin: 2px 0 0; font-size: 13px; color: var(--tenue); }
.os-quem { background: none; border: 0; padding: 0; margin: 0; font: inherit; color: var(--suave); cursor: pointer; min-height: 0; text-decoration: underline dotted; text-decoration-color: var(--tenue); text-underline-offset: 3px; }
.os-quem-editar { flex: 1 1 100%; display: flex; flex-direction: column; gap: 10px; padding-top: 10px; border-top: 1px solid var(--linha-fina); }
.os-quem-editar[hidden] { display: none; }
.os-quem-editar .acao-linha { align-self: flex-start; background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; }
.os-km { flex: 1 1 100%; display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 16px; }
.os-km .os-faixa-titulo { flex: 1 1 100%; }
.os-km-campo { flex: 1 1 140px; }
.os-km-acoes { display: flex; align-items: center; gap: 16px; }

.os-tipos { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.os-tipo { display: inline-flex; align-items: center; background: none; border: 0; padding: 6px 0; margin: 0; min-height: 0; font: inherit; font-size: 15px; color: var(--suave); cursor: pointer; transition: color .12s ease-out; }
.os-tipo:hover { color: var(--texto); }
.os-tipo::before { content: ""; width: 6px; height: 6px; border-radius: 50%; margin-right: 7px; background: transparent; border: 1px solid var(--linha); box-sizing: border-box; transition: background-color .12s ease-out, border-color .12s ease-out; }
.os-tipo.ligado { color: var(--texto); font-weight: 600; }
.os-tipo.ligado::before { background: var(--destaque); border-color: var(--destaque); }
.os-tipo:focus-visible { outline: 2px solid var(--destaque); outline-offset: 2px; border-radius: 3px; }

textarea.os-trabalho { display: block; width: 100%; font-size: 15px; line-height: 1.55; resize: none; overflow: hidden; border-bottom: 1px solid var(--linha-fina); padding-bottom: 8px; }
textarea.os-trabalho:focus { border-bottom: 1px solid var(--destaque); }

.os-equip { padding: 8px 0 10px; border-bottom: 1px solid var(--linha-fina); cursor: text; border-radius: 6px; }
.os-equip:focus-visible, .os-visita:focus-visible { outline: 2px solid var(--destaque); outline-offset: 2px; }
.os-equip p { margin: 0; }
.os-equip-nome { font-size: 15px; }
.os-equip-serie { font-size: 13px; color: var(--tenue); margin: 2px 0 0; }
.os-equip-serie [data-serie-valor] { color: var(--suave); }
.os-escrever, .os-ler-codigo { color: var(--destaque); }
.os-ler-codigo { background: none; border: 0; padding: 0; margin: 0; font: inherit; cursor: pointer; min-height: 0; text-decoration: underline; text-underline-offset: 3px; }
.os-ler { display: none; }
.com-codigo .os-ler { display: inline; }
.os-equip-campos { display: none; flex-wrap: wrap; align-items: flex-end; gap: 12px 20px; margin-top: 12px; }
.os-equip-campos .acao-linha { background: none; border: 0; padding: 0 0 4px; font: inherit; font-size: 13px; cursor: pointer; }
.os-equip.ed { background: #f6f8f9; margin: 0 -10px; padding: 8px 10px 12px; border-bottom-color: transparent; }
.os-equip.ed .os-equip-campos { display: flex; }
.os-equip.ed .os-equip-serie { display: none; }

.os-mat { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; align-items: baseline; padding: 10px 0; border-bottom: 1px solid var(--linha-fina); border-radius: 6px; }
.os-mat .lo-campo { width: 100%; }
.os-mat-desc { font-size: 15px; min-width: 0; }
.os-mat .os-mat-qtd, .os-mat input.os-mat-qtd { font-size: 14px; color: var(--suave); text-align: right; width: 4.5em; }
.os-mat-opcoes { display: none; grid-column: 1 / -1; }
.os-mat-opcoes form { margin: 0; }
.os-mat.ed { background: #f6f8f9; margin: 0 -10px; padding: 10px; border-bottom-color: transparent; }
.os-mat.ed .os-mat-opcoes { display: block; }
.os-mat.ed .lo-campo { border-bottom-color: var(--destaque); }
.os-mat.piscar, .os-visita.piscar { animation: piscar-linha .6s ease-out; }
.os-mat-novo .adicionar-linha { border-bottom: 1px solid var(--linha-fina); }

.os-visita { padding: 10px 0; border-bottom: 1px solid var(--linha-fina); border-radius: 6px; }
.os-fechada .os-visita { cursor: default; }
.folha-os:not(.os-fechada) .os-visita { cursor: pointer; }
.os-visita p { margin: 0; }
.os-v1 { font-size: 15px; color: var(--texto); font-variant-numeric: tabular-nums; }
.os-v2 { font-size: 13px; color: var(--tenue); margin-top: 2px; }
.os-v-campos { display: none; flex-wrap: wrap; align-items: flex-end; gap: 12px 18px; margin-top: 12px; }
.os-v-campos .ed-campo { min-width: 0; }
.os-v-apagar { margin: 0; flex: 1 1 100%; }
.os-visita.ed { background: #f6f8f9; margin: 0 -10px; padding: 10px; border-bottom-color: transparent; cursor: default; }
.os-visita.ed .os-v-campos { display: flex; }
.os-mao { margin-top: 10px; }
.os-mao > summary { list-style: none; display: inline-block; font-size: 13px; color: var(--suave); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; margin: 0; }
.os-mao > summary::-webkit-details-marker { display: none; }
.os-mao-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 18px; margin: 12px 0 0; }
.os-mao-form .ed-campo { min-width: 0; }

.os-concluir { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 36px; padding-top: 16px; border-top: 1px solid var(--linha); }
.os-concluir form { margin: 0; }
.os-rodape { font-size: 13px; color: var(--tenue); }

.os-assinatura { display: block; max-width: 320px; width: 100%; height: auto; margin: 4px 0 0; }
.os-assinado { margin: 6px 0 0; font-size: 13px; color: var(--tenue); }
.os-recolher { margin-top: 12px; }

.folha-assinatura { max-width: 640px; }
.os-assinar { margin: 0; }
.os-a-resumo { font-size: 14px; color: var(--suave); margin-top: 10px; }
.os-a-resumo p { margin: 4px 0 0; line-height: 1.5; }
.os-a-trabalho { white-space: pre-line; }
.os-a-area { position: relative; height: 200px; margin-top: 24px; border-bottom: 1px solid var(--texto); background: var(--superficie); }
.os-a-area canvas { display: block; width: 100%; height: 100%; touch-action: none; cursor: crosshair; }
.os-a-limpar { position: absolute; top: 0; right: 0; background: none; border: 0; padding: 4px 0; font: inherit; font-size: 13px; cursor: pointer; }
.os-a-dica { margin: 6px 0 0; font-size: 13px; color: var(--tenue); }
.os-a-nome { margin-top: 22px; }
.os-a-acoes { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 28px; }
.os-a-acoes .acao-linha { background: none; border: 0; padding: 0; font: inherit; font-size: 14px; cursor: pointer; }
.os-a-acoes .btn-orc:disabled { opacity: .45; cursor: not-allowed; }
.os-fechar-janela { float: right; background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; }
dialog.os-janela { max-width: 640px; width: calc(100% - 32px); padding: 28px 32px 30px; border-radius: 10px; }
dialog.os-camara { max-width: 480px; }
.os-camara video { display: block; width: 100%; border-radius: 6px; background: #000; margin-bottom: 10px; }
.os-camara-titulo { font-size: 14px; color: var(--suave); }
.os-camara .acao-linha { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; }

@media (max-width: 960px) {
  .os-duas { display: flex; flex-direction: column; gap: 0; margin-top: 20px; }
  .os-col { display: contents; }
  .os-faixa { order: 1; }
  .os-sec-servico { order: 2; }
  .os-sec-trabalho { order: 3; }
  .os-sec-equip { order: 4; }
  .os-sec-material { order: 5; }
  .os-sec-visitas { order: 6; }
  .os-sec-ligado { order: 7; }
  .os-sec-assinatura { order: 8; }
  .os-lado { border: 0; padding: 0; }
  .os-duas .os-sec .rotulo, .os-duas .os-sec:first-child .rotulo, .os-lado .os-faixa + .os-sec .rotulo { margin-top: 28px; }
  .os-duas .os-sec-servico .rotulo { margin-top: 24px; }
}
@media (max-width: 720px) {
  main.com-folha:has(.os-concluir) { padding-bottom: calc(140px + env(safe-area-inset-bottom)); }
  .os-concluir { position: fixed; left: 0; right: 0; bottom: calc(62px + env(safe-area-inset-bottom)); z-index: 39; margin: 0; padding: 10px 16px; background: var(--superficie); }
  .os-tipo { padding: 8px 0; }
  .os-a-area { margin-left: -16px; margin-right: -16px; }
  .os-a-limpar { right: 16px; }
  body.ecra-assinatura .topo, body.ecra-assinatura .barra-baixo { display: none; }
  body.ecra-assinatura main.com-folha { padding-bottom: 0; }
  body.ecra-assinatura .folha-assinatura { min-height: 100dvh; padding-bottom: calc(24px + env(safe-area-inset-bottom)); }
  dialog.os-janela { padding: 20px 16px; }
}
@media (orientation: landscape) and (max-height: 520px) {
  .os-a-area { height: 60vh; }
}

/* Manutenções */
.im-adicionar { font-size: 13px; color: var(--suave); }
.rotulo-aviso span { color: var(--aviso); }
.itens-manut .im-bloco { position: relative; z-index: 0; border-bottom: 1px solid var(--linha-fina); transition: opacity .2s ease-out, transform .2s ease-out; }
.itens-manut .im-bloco.a-sair { opacity: 0; transform: translateX(-12px); }
.itens-manut .im-linha { grid-template-columns: minmax(0, 1fr) 150px auto; border-bottom: 0; background: var(--superficie); position: relative; z-index: 1; transition: transform .15s ease-out; }
.im-cliente { display: block; font-size: 15px; color: var(--texto); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.im-cliente:hover { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--linha); }
.im-det { display: block; font-size: 13px; color: var(--tenue); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 1px; }
.im-prevista { font-size: 14px; color: var(--suave); white-space: nowrap; }
.im-prevista.im-atraso { color: var(--aviso); }
.im-acoes { display: flex; align-items: baseline; justify-content: flex-end; gap: 16px; font-size: 13px; white-space: nowrap; }
.im-acoes .menu-orc { align-self: center; }
.im-contactar, .im-contactado, .im-acao, .im-marcada { display: inline-flex; align-items: center; gap: 5px; background: none; border: 0; padding: 0; margin: 0; min-height: 0; font: inherit; font-size: 13px; cursor: pointer; text-decoration: none; }
.im-contactar { color: var(--destaque); font-weight: 500; }
.im-contactado { color: var(--tenue); }
.im-acao { color: var(--suave); }
.im-acao:hover, .im-contactar:hover, .im-contactado:hover { text-decoration: underline; text-underline-offset: 3px; }
.im-marcada { color: var(--estado-aceite); }
.icone-im { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; flex: none; }
.im-mais { list-style: none; cursor: pointer; color: var(--suave); font-size: 15px; letter-spacing: 1px; padding: 0 2px; line-height: 1; }
.im-mais::-webkit-details-marker { display: none; }
.im-menu .menu-orc-opcoes { right: 0; min-width: 170px; }
.im-menu .menu-orc-opcoes form { margin: 0; }
.im-registo { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 22px; background: #f6f8f9; border-radius: 6px; padding: 12px 14px 14px; margin: 0 0 12px; }
.im-registo[hidden] { display: none; }
.im-registo .ed-campo { min-width: 0; }
.im-meses { display: inline-flex; align-items: baseline; gap: 6px; font-size: 14px; color: var(--suave); }
.im-meses input { width: 3em; }
.im-registo .os-tipo { padding-bottom: 6px; }
.im-registo-acoes { display: inline-flex; align-items: center; gap: 16px; margin-left: auto; }
.im-registo-acoes .acao-linha { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; }
.im-registo .campo-erro { flex: 1 1 100%; margin: 0; }
.im-deslizar { position: absolute; right: 0; top: 0; bottom: 0; width: 88px; align-items: center; justify-content: center; border: 0; border-radius: 0; background: var(--estado-aceite); color: #fff; font: inherit; font-size: 14px; font-weight: 600; min-height: 0; padding: 0; }
.im-bloco.deslizada .im-linha { transform: translateX(-88px); }
.painel-corpo .im-registo { background: none; padding: 0; margin: 8px 0 0; }
.painel-corpo .im-registo-acoes { margin-left: 0; flex: 1 1 100%; justify-content: space-between; flex-direction: row-reverse; }
@media (max-width: 720px) {
  .itens-manut .im-linha { grid-template-columns: minmax(0, 1fr) auto auto; column-gap: 10px; row-gap: 2px; align-items: center; padding: 10px 0; }
  .itens-manut .im-linha .item-texto { display: contents; }
  .im-cliente { grid-column: 1; grid-row: 1; }
  .im-det { grid-column: 1 / 3; grid-row: 2; margin: 0; }
  .im-prevista { grid-column: 2; grid-row: 1; font-size: 13px; }
  .im-acoes { grid-column: 3; grid-row: 1 / 3; gap: 0; align-items: center; }
  .im-acoes .im-contactar span, .im-acoes .im-contactado span { display: none; }
  .im-acoes .im-contactar, .im-acoes .im-contactado { width: 44px; height: 44px; justify-content: center; border-radius: 50%; }
  .im-acoes .icone-im { width: 22px; height: 22px; }
  .im-acoes .im-marcada { font-size: 12px; white-space: normal; text-align: right; max-width: 80px; }
  .im-mais { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; font-size: 18px; }
  .im-registo { margin: 0 0 12px; }
}
.itens-manut .im-bloco:has(details[open]) { z-index: 5; }
.itens-manut .im-bloco:has(details[open]) .im-linha { z-index: 5; }
.im-acoes button:hover, .im-acoes button:focus { background: none; color: var(--texto); }
.im-acoes button:focus-visible, .im-acoes a:focus-visible, .im-mais:focus-visible { outline: 2px solid var(--destaque); outline-offset: 2px; border-radius: 3px; }

.ob-cliente { color: var(--texto); text-decoration: none; }
.ob-cliente:hover { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--linha); }
.ob-acoes { align-items: center; }
.ob-contactar { display: inline-flex; align-items: center; gap: 6px; }
.ob-contactar .icone-im { width: 16px; height: 16px; }
.ob-contactado-nota { margin: 4px 0 0; font-size: 13px; color: var(--tenue); text-align: right; }
.ob-alternados { display: flex; flex-wrap: wrap; gap: 4px 22px; align-items: flex-end; padding-bottom: 4px; }
.ob-alternar { cursor: pointer; }
.ob-alternar:focus-within { outline: 2px solid var(--destaque); outline-offset: 2px; border-radius: 3px; }
.ob-dados-fim { display: flex; align-items: center; gap: 16px; flex: 1 1 100%; }
.ob-dados-fim .acao-linha { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; }
.ob-nota-orc { flex: 1 1 100%; margin: 0; font-size: 13px; color: var(--tenue); }
.ob-duas { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 48px; margin-top: 28px; }
.ob-principal { min-width: 0; }
.ob-frase { margin: 0; font-size: 18px; font-weight: 500; line-height: 1.4; color: var(--texto); }
.ob-frase.ob-aviso { color: var(--aviso); }
.ob-apoio { margin: 4px 0 0; font-size: 15px; color: var(--suave); }
.ob-voltar-lista { margin: 8px 0 0; }
.ob-voltar-lista .acao-linha { background: none; border: 0; padding: 0; font: inherit; font-size: 14px; cursor: pointer; }
.ob-faixa { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 22px; background: #f6f8f9; border-radius: 6px; padding: 14px 16px 16px; margin: 22px 0 0; }
.ob-faixa-titulo { flex: 1 1 100%; margin: 0; font-size: 15px; color: var(--texto); }
.ob-faixa .ed-campo { min-width: 0; }
.ob-com-nota { background: none; border: 0; padding: 0 0 6px; font: inherit; font-size: 13px; color: var(--suave); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.ob-nota { flex: 1 1 220px; }
.ob-nota[hidden] { display: none; }
.ob-faixa-acoes { display: inline-flex; align-items: center; gap: 16px; margin-left: auto; }
.ob-faixa-acoes .acao-linha { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; }
.itens-obra .ob-hist { grid-template-columns: 56px minmax(0, 1fr) auto; color: var(--texto); text-decoration: none; }
.itens-obra > .ob-hist, .itens-obra .ob-registo { border-bottom: 1px solid var(--linha-fina); }
.itens-obra .ob-registo .ob-hist { border-bottom: 0; }
.ob-registo { cursor: pointer; border-radius: 6px; }
.ob-registo:focus-visible { outline: 2px solid var(--destaque); outline-offset: 2px; }
.ob-registo-campos { display: none; flex-wrap: wrap; align-items: flex-end; gap: 12px 20px; padding: 0 0 12px 72px; }
.ob-registo-campos .ed-campo { min-width: 0; }
.ob-registo-apagar { flex: 1 1 100%; margin: 0; }
.ob-registo.ed { background: #f6f8f9; margin: 0 -10px; padding: 0 10px; border-bottom-color: transparent; cursor: default; }
.ob-registo.ed .ob-registo-campos { display: flex; }
.ob-equip { margin: 0 0 4px; font-size: 14px; }
.ob-lado .ob-apagar { margin-top: 32px; font-size: 13px; }
.ob-ou { margin: 18px 0 0; font-size: 13px; color: var(--tenue); display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
.ob-orc-campo { width: 9em; font-size: 15px; border-bottom: 1px solid var(--linha); }
.ob-dados .ob-dados-fim .btn-orc { margin-right: 4px; }
@media (max-width: 960px) {
  .ob-duas { grid-template-columns: 1fr; gap: 0; }
  .ob-lado { border: 0; padding: 0; margin-top: 8px; }
}
@media (max-width: 720px) {
  .ob-acoes .btn-orc, .ob-acoes .im-marcada { display: none; }
  .ob-contactado-nota { text-align: left; }
  main.com-folha:has(.ob-barra) { padding-bottom: calc(140px + env(safe-area-inset-bottom)); }
  .ob-frase { font-size: 17px; }
  .ob-faixa-acoes { margin-left: 0; flex: 1 1 100%; justify-content: space-between; }
  .ob-registo-campos { padding-left: 0; }
}
@media (max-width: 720px) {
  .filtros-hist .filtros-lista { flex-wrap: wrap; row-gap: 6px; }
}

/* Agenda */
.ag-duas { display: grid; grid-template-columns: minmax(0, 1fr); }
.com-painel-ag .ag-duas { grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; }
.ag-principal { min-width: 0; }
.ag-painel { border-left: 1px solid var(--linha-fina); padding-left: 24px; align-self: start; position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow-y: auto; }
.ag-painel[hidden], .ag-fundo { display: none; }
.vista-semana .ag-vista-lista, .vista-lista .ag-vista-semana, .vista-auto .ag-vista-lista { display: none; }
.ag-cab { display: flex; align-items: baseline; gap: 18px; flex-wrap: wrap; }
.ag-cab h1 { margin: 0; }
.ag-nav { display: flex; gap: 12px; font-size: 14px; }
.ag-nav a { color: var(--suave); text-decoration: none; }
.ag-nav a:hover { color: var(--texto); text-decoration: underline; text-underline-offset: 3px; }
.ag-nav a[aria-label] { font-size: 18px; line-height: 1; padding: 0 2px; }
.ag-filtros { flex-wrap: wrap; row-gap: 8px; }
.ag-ponto { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--cor); margin-right: 6px; vertical-align: 1px; }
.ag-vistas { margin-left: auto; }

.ag-grelha { display: grid; grid-template-columns: 44px repeat(var(--dias), minmax(0, 1fr)); margin-top: 16px; user-select: none; }
.ag-canto { border-bottom: 1px solid var(--linha-fina); }
.ag-dia-cab { padding: 6px 8px 8px; font-size: 13px; color: var(--suave); border-left: 1px solid var(--linha-fina); border-bottom: 1px solid var(--linha-fina); white-space: nowrap; }
.ag-dia-cab b { font-size: 15px; font-weight: 600; color: var(--texto); }
.ag-dia-cab.hoje, .ag-dia-cab.hoje b { color: var(--destaque); }
.ag-dia-cab.hoje { background: #fafbfc; }
.ag-dia-cab span { font-size: 12px; }
.ag-eixo { position: relative; }
.ag-eixo span { position: absolute; right: 8px; font-size: 11px; color: var(--tenue); transform: translateY(-50%); font-variant-numeric: tabular-nums; }
.ag-eixo span:first-child { transform: none; margin-top: 2px; }
.ag-dia { position: relative; border-left: 1px solid var(--linha-fina); background-image: repeating-linear-gradient(to bottom, #f0f3f5 0, #f0f3f5 1px, transparent 1px, transparent var(--hora-px)); cursor: cell; }
.ag-dia.hoje { background-color: #fafbfc; }
.ag-bloco { position: absolute; box-sizing: border-box; margin-left: 2px; padding: 3px 6px; overflow: hidden; z-index: 2; background: color-mix(in srgb, var(--cor) 12%, #fff); border-left: 3px solid var(--cor); border-radius: 0 4px 4px 0; color: var(--texto); text-decoration: none; font-size: 12px; line-height: 1.3; cursor: pointer; }
.ag-bloco:hover { background: color-mix(in srgb, var(--cor) 20%, #fff); }
.ag-bloco:focus-visible { outline: 2px solid var(--destaque); outline-offset: 1px; }
.ag-bloco.ativo { box-shadow: 0 0 0 2px var(--cor); }
.ag-b-tipo { display: block; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-b-cliente { display: block; color: var(--suave); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-b-pessoas { display: block; color: var(--tenue); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-bloco.curto { padding: 1px 6px; white-space: nowrap; }
.ag-bloco.curto .ag-b-tipo, .ag-bloco.curto .ag-b-cliente { display: inline; }
.ag-bloco.curto .ag-b-cliente::before { content: " · "; }
.ag-b-feita, .ag-b-feita .ag-b-cliente { color: var(--tenue); }
.ag-b-feita .ag-b-tipo { font-weight: 500; }
.ag-b-cancelada { text-decoration: line-through; opacity: .6; }
.ag-agora { position: absolute; left: 0; right: 0; border-top: 1px solid var(--perigo); z-index: 3; pointer-events: none; }
.ag-agora::before { content: ""; position: absolute; left: -4px; top: -4px; width: 7px; height: 7px; border-radius: 50%; background: var(--perigo); }
.ag-rascunho { position: absolute; left: 2px; right: 3px; box-sizing: border-box; z-index: 4; border: 1.5px dashed var(--destaque); border-radius: 4px; background: color-mix(in srgb, var(--destaque) 6%, #fff); padding: 3px 6px; font-size: 12px; line-height: 1.3; color: var(--destaque); pointer-events: none; overflow: hidden; }
.ag-rascunho b { display: block; font-weight: 600; }
.ag-fds { margin: 10px 0 0; font-size: 13px; color: var(--tenue); }
.ag-rodape { margin: 28px 0 0; font-size: 13px; }
.ag-rodape a { color: var(--suave); }

.itens-ag .ag-item { grid-template-columns: 56px minmax(0, 1fr); }
.ag-hora { font-size: 14px; color: var(--suave); font-variant-numeric: tabular-nums; }
.ag-i-titulo { font-size: 15px; color: var(--texto); text-decoration: none; }
.ag-i-titulo:hover { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--linha); }
.ag-i-det { display: block; font-size: 13px; color: var(--tenue); margin-top: 1px; }
.ag-i-links { display: block; font-size: 13px; margin-top: 2px; }
.ag-i-links a { color: var(--destaque); }
.ag-i-feita .ag-i-titulo { color: var(--tenue); }
.ag-i-cancelada .ag-i-titulo { text-decoration: line-through; color: var(--tenue); }
.ag-rotulo-hoje span { color: var(--destaque); }
.ag-vazio-dias { margin: 18px 0 0; font-size: 13px; color: var(--tenue); }
.ag-mais { margin: 18px 0 0; font-size: 13px; }

.ag-p { margin: 0; }
.ag-p-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.ag-p-cab .acao-linha, .ag-p-acoes .acao-linha, .ag-p-acoes-texto .acao-linha, .ag-p-guardado .acao-linha { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; min-height: 0; }
.ag-p-titulo { margin: 0; font-size: 17px; font-weight: 600; }
.ag-p-estado { font-weight: 500; color: var(--suave); }
.ag-estado-feita { color: var(--estado-aceite); }
.ag-estado-cancelada { color: var(--tenue); }
.ag-p-quando { background: none; border: 0; padding: 0; margin: 4px 0 0; min-height: 0; font: inherit; font-size: 13px; color: var(--tenue); cursor: pointer; text-decoration: underline dotted; text-underline-offset: 3px; text-align: left; }
.ag-p-quando:hover { color: var(--texto); background: none; }
.ag-p-quando-texto { margin: 4px 0 0; font-size: 13px; color: var(--tenue); }
.ag-quando-campos { display: flex; flex-wrap: wrap; gap: 10px 16px; margin-top: 12px; }
.ag-quando-campos[hidden] { display: none; }
.ag-quando-campos .ed-campo { min-width: 0; }
.ag-p-dica { margin: 10px 0 0; font-size: 13px; color: var(--destaque); }
.ag-p-ligado { margin: 10px 0 0; font-size: 13px; color: var(--tenue); }
.ag-campo { display: block; margin: 18px 0 0; padding: 0; border: 0; min-width: 0; }
.ag-rotulo { display: block; padding: 0; margin: 0 0 4px; font-size: 13px; color: var(--tenue); }
.ag-linha { display: block; width: 100%; font-size: 15px; border-bottom: 1px solid var(--linha-fina); }
textarea.ag-linha { resize: none; overflow: hidden; }
.ag-escolha { cursor: pointer; font-size: 14px; padding: 4px 0; }
.ag-escolha:has(input:checked) { color: var(--texto); font-weight: 600; }
.ag-escolha:has(input:checked)::before { background: var(--destaque); border-color: var(--destaque); }
.ag-escolha:has(input:focus-visible) { outline: 2px solid var(--destaque); outline-offset: 2px; border-radius: 3px; }
.ag-pessoa::before { border-color: var(--cor); }
.ag-pessoa:has(input:checked)::before { background: var(--cor); border-color: var(--cor); }
.ag-campo .os-tipos { gap: 2px 16px; }
.ag-aviso { margin: 8px 0 0; font-size: 13px; color: var(--aviso); }
.ag-aviso[hidden] { display: none; }
.ag-sugestoes { position: static; margin-top: 4px; }
.ag-p-acoes { display: flex; align-items: center; gap: 16px; margin-top: 24px; }
.ag-p-linha { margin: 8px 0 0; font-size: 14px; color: var(--suave); }
.ag-p-linha a { color: var(--destaque); }
a.ag-p-cliente { font-size: 15px; color: var(--texto); }
.ag-p-pessoas { color: var(--texto); }
.ag-p-notas { margin: 10px 0 0; font-size: 14px; color: var(--suave); white-space: pre-line; }
.ag-p-acoes-texto { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 18px; margin-top: 20px; }
.ag-p-acoes-texto form { margin: 0; }
.ag-p-ordem { margin: 16px 0 0; }
.ag-p-criador { margin: 18px 0 0; font-size: 12px; color: var(--tenue); }
.ag-p-grandes { gap: 10px; margin: 14px 0 0; }
.ag-p-grandes .btn-orc { flex: 1; justify-content: center; display: inline-flex; align-items: center; gap: 6px; }
.ag-p-guardado { display: flex; align-items: center; gap: 16px; margin-top: 20px; }
@media (max-width: 960px) {
  .com-painel-ag .ag-duas { grid-template-columns: minmax(0, 1fr); }
  .ag-painel { position: fixed; left: 0; right: 0; bottom: 0; top: auto; z-index: 61; max-height: 88vh; overflow-y: auto; background: var(--superficie); border: 0; border-top: 1px solid var(--linha); border-radius: 16px 16px 0 0; padding: 16px 16px calc(20px + env(safe-area-inset-bottom)); }
  .ag-painel::before { content: ""; display: block; width: 36px; height: 4px; border-radius: 2px; background: var(--linha); margin: -4px auto 12px; }
  .ag-fundo:not([hidden]) { display: block; }
}
@media (max-width: 720px) {
  .vista-auto .ag-vista-semana { display: none; }
  .vista-auto section.ag-vista-lista, .vista-auto div.ag-vista-lista { display: block; }
  .ag-vistas { margin-left: 0; }
  .ag-grelha { grid-template-columns: 36px repeat(var(--dias), calc(100vw - 68px)); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: 36px; scrollbar-width: none; }
  .ag-dia, .ag-dia-cab { scroll-snap-align: start; }
  .ag-canto, .ag-eixo { position: sticky; left: 0; z-index: 5; background: var(--superficie); }
  .ag-p-quando { display: none; }
}
.ag-p input.lo-campo.ag-linha:not([type=radio]):not([type=checkbox]), .ag-p textarea.lo-campo.ag-linha { width: 100%; max-width: none; border: 0; border-bottom: 1px solid var(--linha); border-radius: 0; padding: 4px 0; }
.ag-p input.lo-campo.ag-linha:not([type=radio]):not([type=checkbox]):focus, .ag-p textarea.lo-campo.ag-linha:focus { border-bottom-color: var(--destaque); outline: 0; }
.tm-folha { max-width: 680px; }
.tm-escolha { display: flex; flex-wrap: wrap; gap: 4px 22px; margin-top: 22px; }
.tm-escolha .ag-escolha { font-size: 15px; }
.tm-explica { margin: 6px 0 0; font-size: 13px; color: var(--tenue); }
.tm-acoes { display: flex; align-items: center; gap: 18px; margin: 20px 0 0; }
.tm-acoes .acao-linha, .tm-outro .acao-linha, .tm-novo .acao-linha { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; cursor: pointer; min-height: 0; }
.tm-como p { margin: 8px 0 0; font-size: 14px; line-height: 1.55; color: var(--texto); }
.tm-outro { margin: 10px 0 0; }
.tm-nota { margin: 14px 0 0; font-size: 13px; color: var(--tenue); }
.tm-novo { margin: 28px 0 0; font-size: 13px; color: var(--suave); }

/* Avisos do painel às empresas */
.faixa-aviso { padding: 10px 24px; font-size: 14px; line-height: 1.5; }
.faixa-informacao { background: #eaf0f4; border-bottom: 1px solid #d3dee6; color: var(--texto); }
.faixa-importante { background: #fbf1df; border-bottom: 1px solid #ecd7ae; color: #4a2f00; }
.faixa-dentro { display: flex; align-items: flex-start; gap: 10px; max-width: 1120px; margin: 0 auto; }
.faixa-icone { width: 16px; height: 16px; flex: none; margin-top: 3px; }
.faixa-informacao .faixa-icone { color: var(--estado-espera); }
.faixa-importante .faixa-icone { color: var(--aviso); }
.faixa-texto { flex: 1; margin: 0; white-space: pre-line; }
.faixa-texto b { font-weight: 600; }
.faixa-fechar { background: none; border: 0; padding: 0; margin: 0; min-height: 0; font: inherit; font-size: 13px; color: var(--suave); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; flex: none; }
.faixa-fechar:hover { background: none; color: var(--texto); }
.faixa-fechar-x { display: none; }
.centro:has(.faixa-aviso) { place-items: start center; align-content: center; gap: .75rem; }
.centro > .faixa-aviso { width: 100%; max-width: 380px; box-sizing: border-box; border: 1px solid #d3dee6; border-radius: 6px; padding: 10px 14px; }
.centro > .faixa-importante { border-color: #ecd7ae; }
.nivel-aviso { display: flex; gap: 4px 20px; flex-wrap: wrap; margin-top: 4px; }
.nivel-ajuda { margin: 4px 0 0; font-size: 13px; color: var(--tenue); }
.previa-aviso { margin-top: 12px; border: 1px solid var(--linha-fina); border-radius: 6px; overflow: hidden; }
.previa-aviso .faixa-aviso { padding: 10px 14px; border-bottom: 0; }
.nivel-ponto { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 500; color: var(--suave); }
.nivel-ponto::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #9db6c7; }
.nivel-importante::before { background: #d9a03b; }
@media (max-width: 720px) {
  .faixa-aviso { padding: 9px 16px; font-size: 13px; }
  .faixa-fechar-texto { display: none; }
  .faixa-fechar-x { display: inline; font-size: 20px; line-height: 1; text-decoration: none; color: var(--suave); }
  .faixa-fechar { text-decoration: none; padding: 0 2px; }
}

/* Configurações */
.cf-grelha { display: grid; grid-template-columns: 160px minmax(0, 640px) 260px; gap: 40px; justify-content: space-between; }
.cf-grelha.sem-exemplo { grid-template-columns: 160px minmax(0, 640px); justify-content: start; }
.cf-indice { position: sticky; top: 24px; align-self: start; display: flex; flex-direction: column; gap: 10px; padding-top: 6px; font-size: 14px; }
.cf-indice a { color: var(--suave); text-decoration: none; }
.cf-indice a:hover { color: var(--texto); }
.cf-indice a.ativo { color: var(--texto); font-weight: 600; }
.cf-indice-movel { display: none; }
.cf-conteudo { min-width: 0; }
.cf-conteudo h1 { margin: 0; }
.cf-apoio { display: flex; gap: 12px; align-items: baseline; }
.cf-secao { scroll-margin-top: 24px; margin-top: 40px; }
.cf-secao h2 { margin: 0 0 8px; font-size: 18px; font-weight: 600; }
.cf-campos { border-top: 1px solid var(--linha-fina); }
.cf-campo { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 4px 20px; padding: 14px 0; border-bottom: 1px solid var(--linha-fina); align-items: baseline; }
.cf-nome { font-size: 14px; color: var(--suave); padding-top: 4px; }
.cf-valor { min-width: 0; }
.cf-grupo { margin: 22px 0 0; padding-bottom: 8px; border-bottom: 1px solid var(--linha-fina); font-size: 13px; color: var(--tenue); }
.cf-campos > .cf-grupo:first-child { margin-top: 12px; }
.cf-valor input.lo-campo.cf-input:not([type=radio]):not([type=checkbox]), .cf-valor textarea.lo-campo.cf-input { width: 100%; max-width: none; font-size: 15px; border: 0; border-bottom: 1px solid var(--linha); border-radius: 0; padding: 4px 0; background: transparent; }
.cf-valor input.lo-campo.cf-input:not([type=radio]):not([type=checkbox]):focus, .cf-valor textarea.lo-campo.cf-input:focus { outline: 0; border-bottom: 2px solid var(--destaque); padding-bottom: 3px; }
.cf-valor input.lo-campo.cf-curto:not([type=radio]):not([type=checkbox]) { width: 6em; }
.cf-numero { display: inline-flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.cf-unidade { font-size: 14px; color: var(--suave); }
textarea.cf-longo { resize: none; overflow: hidden; line-height: 1.5; }
.cf-ajuda { margin: 6px 0 0; font-size: 13px; color: var(--tenue); line-height: 1.45; }
.cf-ajuda.cf-erro { color: var(--perigo); }
.cf-ajuda-inline { font-size: 13px; color: var(--tenue); }
.cf-aviso { margin: 6px 0 0; font-size: 13px; color: var(--aviso); }
.cf-texto { margin: 0; font-size: 15px; line-height: 1.5; }
.cf-simnao { display: flex; gap: 4px 20px; }
.cf-marcador { background: none; border: 0; padding: 0; margin: 0; min-height: 0; font: inherit; color: var(--destaque); cursor: pointer; text-decoration: underline dotted; text-underline-offset: 3px; }
.cf-marcador:hover { background: none; color: var(--texto); }
.cf-realce { position: relative; }
.cf-realce-fundo { position: absolute; inset: 0; padding: 4px 0; font-size: 15px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: break-word; color: var(--texto); pointer-events: none; border-bottom: 1px solid transparent; }
.cf-realce-fundo mark { background: none; color: var(--destaque); }
.cf-realce textarea.cf-input { position: relative; color: transparent; caret-color: var(--texto); }
.cf-realce textarea.cf-input::placeholder { color: var(--tenue); }
.cf-realce textarea.cf-input::selection { color: transparent; background: color-mix(in srgb, var(--destaque) 25%, transparent); }
.cf-mensagem { margin: 0; font-size: 14px; line-height: 1.5; color: var(--texto); background: #f6f8f9; border-radius: 6px; padding: 10px 12px; white-space: pre-line; }
.cf-cor { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; position: relative; }
.cf-cor input[type=color] { left: 0; top: 0; padding: 0; border: 0; }
.cf-bolinha { width: 16px; height: 16px; border-radius: 50%; background: var(--cor); box-shadow: inset 0 0 0 1px rgb(0 0 0 / .12); }
.cf-cor-codigo { font-size: 14px; font-variant-numeric: tabular-nums; color: var(--texto); }
.cf-cor:focus-within { outline: 2px solid var(--destaque); outline-offset: 3px; border-radius: 4px; }
.cf-imagem { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; border-radius: 6px; }
.cf-imagem-area { display: flex; align-items: center; min-height: 48px; }
.cf-imagem img { max-height: 64px; max-width: 220px; object-fit: contain; display: block; }
.cf-barra .cf-imagem-area { box-sizing: border-box; height: 56px; min-width: 220px; padding: 0 14px; background: var(--superficie); border: 1px solid var(--linha-fina); border-bottom-color: var(--linha); border-radius: 4px; }
.cf-barra img { max-height: 34px; max-width: 180px; }
.cf-imagem-vazia { font-size: 13px; color: var(--tenue); }
.cf-imagem.a-largar { outline: 2px dashed var(--destaque); outline-offset: 4px; }
.cf-imagem-acoes { display: inline-flex; gap: 14px; font-size: 13px; }
.cf-imagem-acoes .acao-linha { background: none; border: 0; padding: 0; font: inherit; cursor: pointer; min-height: 0; }
.cf-imagem-form input[type=file] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.cf-como p { margin: 8px 0 0; font-size: 14px; line-height: 1.5; }
.cf-ver-como { margin: 14px 0 0; font-size: 13px; display: none; }
#form-config { margin-top: 24px; }
.cf-exemplo { position: sticky; top: 24px; align-self: start; }
.cf-exemplo-cab { margin: 6px 0 10px; font-size: 13px; color: var(--tenue); }
.cf-exemplo-cab .filtro { font-size: 13px; }
.cf-sep { color: var(--tenue); }
.cf-folha { aspect-ratio: 1 / 1.414; border: 1px solid var(--linha); background: #fff; overflow: hidden; }
.cf-folha img { display: block; width: 100%; height: auto; transition: opacity .15s ease-out; }
.cf-exemplo-pe { margin: 8px 0 0; font-size: 13px; }
.cf-exemplo-pe .acao-linha { background: none; border: 0; padding: 0; font: inherit; cursor: pointer; }
dialog.cf-janela-exemplo { width: min(560px, calc(100% - 32px)); padding: 16px; border-radius: 10px; }
@media (max-width: 1100px) {
  .cf-grelha, .cf-grelha.sem-exemplo { grid-template-columns: 150px minmax(0, 1fr); gap: 32px; }
  .cf-exemplo { display: none; }
  .cf-ver-como { display: block; }
}
@media (max-width: 720px) {
  .cf-grelha, .cf-grelha.sem-exemplo { grid-template-columns: minmax(0, 1fr); }
  .cf-indice { display: none; }
  .cf-indice-movel { display: flex; gap: 18px; overflow-x: auto; margin: 16px -16px 0; padding: 0 16px 10px; border-bottom: 1px solid var(--linha-fina); font-size: 14px; white-space: nowrap; scrollbar-width: none; position: sticky; top: 0; background: var(--superficie); z-index: 5; }
  .cf-indice-movel a { color: var(--suave); text-decoration: none; }
  .cf-campo { grid-template-columns: minmax(0, 1fr); }
  .cf-nome { padding-top: 0; font-size: 13px; color: var(--tenue); }
  .cf-secao { scroll-margin-top: 56px; }
}

/* Ajustes de usabilidade (computador) */
.ico { width: 16px; height: 16px; flex: none; }
.numeros-resumo, .faixa-guardar, .guardado-ok { display: none; }
@media (max-width: 959px) { .so-pc { display: none !important; } }
@media (min-width: 960px) {
  .fora-pc { display: none !important; }

  /* 1.1 Campos com caixa */
  input:not([type=radio]):not([type=checkbox]):not([type=color]):not([type=file]):not([type=range]), select, textarea,
  input.lo-campo:not([type=radio]):not([type=checkbox]), textarea.lo-campo, select.lo-campo,
  .ed-campo input:not([type=radio]):not([type=checkbox]), .ed-campo select,
  input.para-quem-campo:not([type=radio]):not([type=checkbox]),
  .cf-valor input.lo-campo.cf-input:not([type=radio]):not([type=checkbox]), .cf-valor textarea.lo-campo.cf-input,
  .ag-p input.lo-campo.ag-linha:not([type=radio]):not([type=checkbox]), .ag-p textarea.lo-campo.ag-linha,
  .lc-opcoes select.lo-campo, select.dv-passagem {
    display: block; width: 100%; max-width: none; margin: 0; min-height: 38px;
    border: 1px solid #b9c3ca; border-radius: 6px; background: #fff; padding: 8px 10px;
    font: inherit; font-size: 15px; line-height: 1.4; color: var(--texto); box-shadow: none; appearance: auto;
    transition: border-color .12s ease-out, box-shadow .12s ease-out;
  }
  input:not([type=radio]):not([type=checkbox]):focus, select:focus, textarea:focus,
  .lo-campo:focus, .ed-campo input:focus, .ed-campo select:focus, input.para-quem-campo:focus,
  .cf-valor .cf-input:focus, .ag-p .ag-linha:focus, .obs-campo:focus, textarea.os-trabalho:focus {
    outline: 0; border: 1px solid var(--destaque) !important; box-shadow: 0 0 0 3px rgba(30, 77, 92, .12); padding: 8px 10px;
  }
  input::placeholder, textarea::placeholder { color: var(--tenue); opacity: 1; }
  .lo-campo[aria-invalid="true"], input[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: var(--perigo) !important; }
  .campo-guardado { border-color: var(--estado-aceite) !important; }
  .guardado-ok { display: inline-flex; align-items: center; gap: 3px; position: absolute; z-index: 6; font-size: 12px; line-height: 1; color: var(--estado-aceite); white-space: nowrap; pointer-events: none; }
  textarea { resize: vertical; }
  textarea.obs-campo, textarea.os-trabalho, textarea.ag-linha, textarea.cf-longo, textarea.campo-longo, .ob-nota textarea, .cli-notas textarea {
    min-height: calc(4.2em + 18px); overflow: hidden; resize: none; line-height: 1.4; font-size: 15px;
  }
  .procurar { border: 1px solid #b9c3ca; border-radius: 6px; background: #fff; padding: 0 10px; min-height: 38px; flex: 0 1 320px; }
  .procurar:focus-within { border-color: var(--destaque); box-shadow: 0 0 0 3px rgba(30, 77, 92, .12); }
  .procurar input:not([type=radio]):not([type=checkbox]), .procurar input:focus { border: 0 !important; box-shadow: none; padding: 7px 0; min-height: 0; }
  .cf-realce textarea.cf-input { color: transparent; }
  .cf-realce-fundo { padding: 8px 10px; border: 1px solid transparent; }

  /* Etiquetas por cima */
  .ed-campo, .ag-rotulo, .cf-nome, .para-quem-rotulo, label.campo, .cli-dados .cli-tipo legend { font-size: 13px; color: var(--suave); }
  .ed-campo { gap: 5px; }
  .cf-campo { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .cf-nome { padding-top: 0; }
  .rotulo, .cf-grupo, .cf-ajuda, .cf-ajuda-inline, .nivel-ajuda, .lc-dica, .adicionar-dica, .tm-explica { color: var(--suave); }

  /* 1.2 Botões */
  .btn-orc, button.btn-orc, a.btn-orc, summary.btn-orc {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 38px;
    border: 1px solid #b9c3ca; border-radius: 6px; padding: 8px 14px; font-size: 14px; font-weight: 600; line-height: 1.2;
    background: #fff; color: var(--texto); text-decoration: none; cursor: pointer; white-space: nowrap;
  }
  .btn-orc:hover, button.btn-orc:hover { border-color: var(--suave); background: #fff; }
  .btn-orc.principal, button.btn-orc.principal { background: var(--destaque); border-color: var(--destaque); color: #fff; }
  .btn-orc.principal:hover, button.btn-orc.principal:hover { background: var(--destaque-escuro); border-color: var(--destaque-escuro); }
  .btn-orc.perigo { color: var(--perigo); }
  .btn-orc.perigo:hover { border-color: var(--perigo); }
  .btn-orc:disabled, button.btn-orc:disabled { opacity: .5; cursor: default; }
  .btn-orc.so-icone { padding: 0; width: 32px; min-height: 32px; height: 32px; color: var(--suave); }
  .btn-orc.so-icone:hover { color: var(--texto); }
  .btn-orc.so-icone.perigo:hover { color: var(--perigo); }
  .btn-orc .ico { margin-left: -2px; }
  .botoes { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
  button.acao-linha:not(.acao-texto), .ed-fechar, .cf-imagem-acoes .acao-linha, .pb-acoes .lo-botao {
    display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 6px 12px;
    border: 1px solid #b9c3ca !important; border-radius: 6px; background: #fff; color: var(--texto); font: inherit; font-size: 14px; font-weight: 600;
    text-decoration: none; cursor: pointer; white-space: nowrap;
  }
  button.acao-linha:not(.acao-texto):hover, .ed-fechar:hover { border-color: var(--suave) !important; background: #fff; color: var(--texto); }
  .aviso-desfazer .acao-linha { border: 0 !important; background: none !important; color: #fff !important; padding: 0 !important; min-height: 0 !important; text-decoration: underline; }
  a.acao-linha, .acao-texto { font-size: 14px; }

  /* 1.3 Linhas que abrem ao clicar */
  a.item:hover, .itens-cli .item:hover, .itens-os .item:hover, .item-hist:hover, .itens-obra .ob-hist:hover, .ag-item:hover { background: #f6f8f9; cursor: pointer; }
  .bloco-cab { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .bloco-acoes { display: flex; align-items: center; gap: 10px; margin-top: 16px; flex: 1 1 100%; }
  [data-bloco].a-editar { background: #f8fafb; border: 1px solid var(--linha-fina); border-radius: 8px; padding: 14px 16px 16px; margin-left: -17px; margin-right: -17px; }

  /* 1.4 Faixa do guardar sozinho */
  .faixa-guardar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 0 0 10px; padding: 7px 12px; border-radius: 6px; background: #eef4ef; color: #2f5a3a; font-size: 13px; }
  .faixa-guardar .fg-texto { display: inline-flex; align-items: center; gap: 6px; }
  .faixa-guardar .fg-tempo { color: #2f5a3a; opacity: .8; font-variant-numeric: tabular-nums; }
  .faixa-guardar.a-guardar .ico { visibility: hidden; }
  .faixa-guardar.sem-ligacao { background: #fbf1df; color: #5c3900; }
  .faixa-guardar.sem-ligacao .ico { display: none; }
  .nota-acoes { display: flex; justify-content: flex-start; margin-top: 8px; }

  /* 1.5 Texto */
  .item-det, .item-quem, .item-estado, .item-num, .item-inline, .lo-extra, .dv-linha2, .os-v2, .os-equip-serie, .os-rodape, .os-assinado, .ih-mes, .ih-detalhe,
  .im-det, .ob-contactado-nota, .ag-i-det, .ag-p-criador, .ag-dia-cab span, .sg-grupo, .menu-orc-grupo, .nivel-ponto, .data-hoje, .faixa-fechar,
  .lc-detalhe, .imp-ficheiro, .tabela-recente-det, .ag-b-pessoas { font-size: 13px; }
  .ag-bloco { font-size: 13px; }
  .ag-eixo span { font-size: 12px; }
  .orc-meta, .cli-contactos { font-size: 15px; }
  .rotulo { font-size: 13px; }

  /* 1.6 Estados */
  .estado-ponto::before { width: 8px; height: 8px; }
  .pilula, .estado-ponto.ponto-vencido, .estado-ponto.ponto-atencao {
    display: inline-flex; align-items: center; gap: 6px; background: #fbf1df; color: #5c3900; border-radius: 999px; padding: 3px 10px; font-size: 13px; font-weight: 500; white-space: nowrap;
  }
  .pilula::before, .estado-ponto.ponto-vencido::before, .estado-ponto.ponto-atencao::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--aviso); margin: 0; flex: none; }
  .item-estado.vencido::before { content: none; }
  .item-estado.vencido { background: #fbf1df; color: #5c3900; border-radius: 999px; padding: 3px 10px; }

  /* 1.7 Números ao lado da frase */
  .numeros-resumo { display: flex; flex-wrap: wrap; gap: 12px 40px; margin: 16px 0 0; }
  .nr { display: flex; flex-direction: column; gap: 1px; color: var(--texto); text-decoration: none; }
  .nr b { font-size: 20px; font-weight: 600; line-height: 1.2; font-variant-numeric: tabular-nums; }
  .nr span { font-size: 13px; color: var(--suave); }
  .nr.nr-atencao b { color: var(--aviso); }
  a.nr:hover span { color: var(--texto); text-decoration: underline; text-underline-offset: 3px; }

  /* 1.8 Filtros como separadores */
  .filtros-texto { align-items: flex-end; padding-bottom: 0; gap: 24px; }
  .filtros-texto .procurar { margin-bottom: 8px; }
  .filtros-lista { align-items: flex-end; gap: 24px; }
  .filtro, button.filtro { font-size: 14px; color: var(--suave); padding: 0 0 10px; margin-bottom: -1px; border-bottom: 2px solid transparent !important; border-radius: 0; }
  .filtro.ativo, button.filtro.ativo { color: var(--texto); font-weight: 600; border-bottom-color: var(--destaque) !important; }
  .filtro span { color: var(--suave); }
  .filtro-separado { border-left: 0; margin-left: 0; padding-left: 0; }
  .filtros-texto + .rotulo, .filtros-texto + * .rotulo:first-child { margin-top: 28px; }
  .catalogo-nav { gap: 24px; border-bottom: 1px solid var(--linha); margin-bottom: 18px; }
  .catalogo-nav a, .catalogo-nav span.cn-sep { padding: 0 0 10px; margin-bottom: -1px; border-bottom: 2px solid transparent; font-size: 14px; }
  .catalogo-nav a[aria-current="page"] { border-bottom-color: var(--destaque); }
  .catalogo-nav a span { color: var(--suave); font-weight: 400; margin-left: 4px; font-variant-numeric: tabular-nums; }

  /* Escolhas alternáveis (tipo, quem vai) */
  .alternaveis { display: flex; flex-wrap: wrap; gap: 8px; }
  .alternavel, .os-tipos .os-tipo, .ag-campo .ag-escolha, .ag-quem .ag-escolha {
    display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 6px 12px; margin: 0;
    border: 1px solid #b9c3ca; border-radius: 6px; background: #fff; color: var(--texto); font-size: 14px; font-weight: 500; cursor: pointer;
  }
  .os-tipos .os-tipo::before, .ag-campo .ag-escolha::before, .ag-quem .ag-escolha::before { content: none; }
  .os-tipos .os-tipo.ligado, .ag-campo .ag-escolha:has(input:checked), .ag-quem .ag-escolha:has(input:checked), .alternavel.ligado, .alternavel:has(input:checked) {
    background: #e9eff4; border-color: var(--destaque); color: var(--texto); font-weight: 600;
  }
  .os-tipos .os-tipo.ligado::after, .ag-campo .ag-escolha:has(input:checked)::after, .alternavel:has(input:checked)::after, .alternavel.ligado::after {
    content: ""; width: 9px; height: 5px; border: solid var(--destaque); border-width: 0 0 2px 2px; transform: rotate(-45deg) translate(1px, -2px); margin-left: 2px;
  }
  .ag-pessoa .ag-ponto, .ag-pessoa::before { flex: none; }
  .os-tipos { gap: 8px; }
}
@media (min-width: 960px) {
  .estado-ponto select, .estado-ponto select:focus { display: inline; width: auto; min-height: 0; border: 0 !important; padding: 2px 0; background: transparent; box-shadow: none; appearance: none; font-size: 13px; }
  .estado-ponto.ponto-vencido select { color: inherit; }
  select.estado-orc { display: inline-block; width: auto; }
  .desconto-todas-form input.lo-campo, .adicionar-quantidade input.lo-campo, .im-meses input, .ob-orc-campo, .cf-valor input.lo-campo.cf-curto,
  .os-mat input.os-mat-qtd, .tm-folha input { display: inline-block; width: 6em; }
  .filtros select { width: auto; }
  .topo input, .aviso-desfazer input { width: auto; }
}
@media (min-width: 960px) {
  .botao-novo, a.botao-novo { display: inline-flex; align-items: center; gap: 6px; min-height: 38px; padding: 8px 14px; font-size: 14px; font-weight: 600; border-radius: 6px; background: var(--destaque); border: 1px solid var(--destaque); color: #fff; }
  .botao-novo:hover, .novo-menu[open] .botao-novo { background: var(--destaque-escuro); border-color: var(--destaque-escuro); }
  a.acao-lembrar, a.im-adicionar, a.btn-link {
    display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 6px 12px; border: 1px solid #b9c3ca; border-radius: 6px;
    background: #fff; color: var(--texto); font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap;
  }
  a.acao-lembrar:hover, a.im-adicionar:hover, a.btn-link:hover { border-color: var(--suave); }
  .itens-espera .item { align-items: center; grid-template-columns: minmax(0, 1fr) auto 120px; }
}
.dv-rot, .lo-icones .so-pc .visualmente-escondido { }
@media (max-width: 959px) {
  .dv-rot { display: none; }
  label.dv-c { display: inline; margin: 0; font-size: inherit; color: inherit; }
}
@media (min-width: 960px) {
  /* Orçamento: linhas como folha de cálculo */
  .linhas-cab, .linha-orc { grid-template-columns: minmax(0, 1fr) 70px 110px 70px 70px 110px 108px; gap: 0 8px; align-items: start; }
  .linhas-cab { padding-bottom: 6px; color: var(--suave); }
  .linhas-cab span:nth-child(n+2):nth-child(-n+6) { text-align: right; }
  .linha-orc, .linha-orc.ed { padding: 6px 0; margin: 0; background: none; border-radius: 0; border-bottom: 1px solid var(--linha-fina); cursor: default; }
  .linha-orc .lo-qp, .linha-orc .lo-opcoes, .linha-orc.ed .lo-opcoes { display: contents; }
  .linha-orc .lo-x, .linha-orc .lo-euro, .linha-orc .lo-desconto, .linha-orc .lo-rot, .linha-orc .lo-pct { display: none; }
  .lo-celula { position: relative; margin: 0; min-width: 0; display: block; }
  .lo-texto { grid-column: 1; }
  .lo-c-qtd { grid-column: 2; grid-row: 1; }
  .lo-c-preco { grid-column: 3; grid-row: 1; }
  .lo-c-desc { grid-column: 4; grid-row: 1; }
  .lo-c-iva { grid-column: 5; grid-row: 1; }
  .linha-orc .lo-total { grid-column: 6; grid-row: 1; padding-top: 9px; font-size: 15px; }
  .lo-icones { grid-column: 7; grid-row: 1; display: flex; gap: 4px; justify-content: flex-end; padding-top: 3px; }
  .linha-orc input.lo-campo.lo-numero:not([type=radio]):not([type=checkbox]) { width: 100%; text-align: right; padding: 8px 8px; field-sizing: fixed; font-size: 15px; }
  .linha-orc input.lo-campo.lo-numero:focus { padding: 8px 8px; }
  .linha-orc textarea.lo-descricao { resize: none; overflow: hidden; line-height: 1.4; min-height: 38px; }
  .linha-orc .lo-qp .lo-campo, .linha-orc.ed .lo-qp .lo-campo { color: var(--texto); }
  .linha-orc .lo-extra { margin-top: 3px; padding-left: 2px; }
  .linha-orc .campo-erro { grid-column: 1 / -1; grid-row: 2; }
  button.lo-botao, .lo-botao { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border: 1px solid transparent; border-radius: 6px; color: var(--suave); background: none; }
  button.lo-botao:hover { border-color: #b9c3ca; color: var(--texto); background: #fff; text-decoration: none; }
  button.lo-apagar:hover { color: var(--perigo); border-color: #e4b9b4; }
  .linha-orc.piscar { animation: piscar-linha .6s ease-out; }
  .orc-principal-col .faixa-guardar { margin-bottom: 14px; }

  .adicionar-linha { margin-top: 12px; padding: 0 12px; min-height: 42px; border: 1px dashed #b9c3ca; border-radius: 6px; color: var(--suave); background: #fff; }
  .adicionar-linha:focus-within { border-style: solid; border-color: var(--destaque); box-shadow: 0 0 0 3px rgba(30, 77, 92, .12); }
  .adicionar-linha input:not([type=radio]):not([type=checkbox]), .adicionar-linha input:focus { border: 0 !important; box-shadow: none; padding: 9px 0; min-height: 0; background: transparent; }
  .adicionar-linha input::placeholder { color: var(--suave); }
  .adicionar-quantidade { border-bottom: 0; }
  .sugestoes-orc { max-width: none; }

  .editar-dados { background: #f8fafb; border: 1px solid var(--linha-fina); border-radius: 8px; padding: 16px 18px 18px; gap: 14px 18px; margin-top: 18px; }
  .ed-titulo { flex: 1 1 100%; margin: 0; font-size: 15px; font-weight: 600; }
  .ed-largo { flex: 1 1 260px; }
  .ed-curto { flex: 0 0 130px; }
  .editar-dados .bloco-acoes { margin-top: 4px; }

  /* Visita técnica */
  .divisao-orc, .divisao-orc.ed { display: grid; grid-template-columns: 1fr 1fr 32px; gap: 8px 6px; padding: 12px 0 14px; margin: 0; background: none; border-bottom: 1px solid var(--linha-fina); border-radius: 0; cursor: default; }
  .divisao-orc .dv-linha1, .divisao-orc .dv-linha2 { display: contents; }
  .divisao-orc .dv-sep, .divisao-orc .dv-un { display: none; }
  .dv-c { display: flex; flex-direction: column; gap: 4px; margin: 0; font-size: 13px; color: var(--suave); min-width: 0; }
  .dv-c-nome { grid-column: 1 / 3; grid-row: 1; }
  .dv-c-area { grid-row: 2; grid-column: 1; }
  .dv-c-metros { grid-row: 2; grid-column: 2; }
  .dv-c-passagem { grid-row: 3; grid-column: 1 / 3; }
  .divisao-orc input.lo-campo:not([type=radio]):not([type=checkbox]), .divisao-orc select.dv-passagem { width: 100%; field-sizing: fixed; font-size: 15px; color: var(--texto); padding: 7px 8px; min-height: 36px; }
  .divisao-orc select.dv-passagem { padding: 7px 4px; font-size: 14px; }
  .divisao-orc .dv-opcoes, .divisao-orc.ed .dv-opcoes { display: block; grid-column: 3; grid-row: 1; align-self: end; margin: 0 0 2px; }
  .divisao-orc .campo-erro { grid-column: 1 / -1; }
  .dv-nova { margin-top: 14px; }
  .orc-lado .obs-campo { width: 100%; }
  .folha.folha-orc { max-width: 1360px; }
  .folha-orc .orc-duas { grid-template-columns: minmax(0, 1fr) 260px; gap: 40px; }
}
@media (min-width: 960px) and (max-width: 1279px) {
  .folha-orc .orc-duas { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .folha-orc .orc-lado { border-left: 0; padding-left: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; }
  .folha-orc .orc-lado .lado-secao:first-child .rotulo { margin-top: 28px; }
}
@media (min-width: 960px) { .menu-orc > summary, .novo-menu > summary { margin: 0; } }
@media (min-width: 960px) { .orc-acoes #estado-guardar { display: none; } }
@media (min-width: 960px) {
  .cli-contactos { gap: 8px; margin-top: 14px; }
  .cli-contacto { min-height: 34px; padding: 6px 12px; border: 1px solid #b9c3ca; border-radius: 6px; background: #fff; color: var(--texto); font-size: 14px; font-weight: 600; }
  .cli-contacto:hover { border-color: var(--suave); }
  .cli-contacto:hover span { text-decoration: none; }
  .cli-contacto .icone-contacto { width: 16px; height: 16px; color: var(--destaque); }
  .cli-sem-contactos { display: inline-flex; align-items: center; gap: 10px; }
  .cli-dados .cli-tipo { flex: 1 1 100%; gap: 8px; }
  .cli-dados .cli-tipo legend { margin-bottom: 6px; font-size: 13px; color: var(--suave); }
  .cli-dados .cli-tipo label { min-height: 36px; padding: 6px 12px; border: 1px solid #b9c3ca; border-radius: 6px; background: #fff; font-size: 14px; }
  .cli-dados .cli-tipo label:has(input:checked) { background: #e9eff4; border-color: var(--destaque); font-weight: 600; }
  .cli-dados-fim { align-items: center; }
  .cli-apagar { margin-left: auto; }
  .cli-notas .obs-campo { width: 100%; }
  .folha-cli .orc-nota-cliente { font-size: 14px; color: var(--suave); }
}
@media (min-width: 960px) {
  .ih-direita span.acao-linha { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 5px 12px; border: 1px solid #b9c3ca; border-radius: 6px; background: #fff; color: var(--texto); font-size: 14px; font-weight: 600; text-decoration: none; }
  .ih-direita span.acao-linha:hover { border-color: var(--suave); }
}
@media (min-width: 960px) {
  .ag-cab .ag-telemovel { margin-left: auto; align-self: center; }
  .ag-p-tipo { margin: 4px 0 0; font-size: 15px; color: var(--texto); }
  .ag-p-contactos { margin-top: 14px; }
  .ag-p-acoes-texto { gap: 8px; margin-top: 18px; }
  .ag-p-acoes-texto .ag-feita { background: var(--destaque); border-color: var(--destaque) !important; color: #fff; }
  .ag-p-acoes-texto .ag-feita:hover { background: var(--destaque-escuro); color: #fff; }
  .ag-p-acoes-texto .os-perigo { color: var(--perigo); }
  .ag-p-guardar { margin-top: 22px; }
  .ag-p-acoes { gap: 10px; }
  .ag-campo .ag-pessoa::before { content: ""; width: 8px; height: 8px; border-radius: 50%; border: 0; background: var(--cor); margin: 0; }
  .ag-campo .os-tipos { gap: 8px; }
  .ag-quando-campos { gap: 10px 12px; }
  .ag-p .ag-linha { width: 100%; }
  .ag-p-cab { align-items: center; }
  .ag-filtros .ag-ponto { margin-right: 6px; }
}
@media (min-width: 960px) {
  .ag-p textarea.lo-campo.ag-linha.obs-campo, .cf-valor textarea.lo-campo.cf-input.cf-longo { min-height: calc(4.2em + 18px); }
  .ag-p-titulo, h2.ag-p-titulo { color: var(--texto); }
}
@media (min-width: 960px) {
  .ag-p-acoes-texto button.acao-linha.ag-feita { background: var(--destaque); border-color: var(--destaque) !important; color: #fff; }
  .ag-p-acoes-texto button.acao-linha.ag-feita:hover { background: var(--destaque-escuro); }
  button.acao-linha.os-perigo, button.acao-linha.cli-apagar { color: var(--perigo) !important; }
}

/* Página pública de assinatura */
body.ecra-publico { background: var(--superficie); }
.pub { max-width: 560px; margin: 0 auto; padding: calc(20px + env(safe-area-inset-top)) 16px calc(32px + env(safe-area-inset-bottom)); }
.pub-topo { display: flex; align-items: center; gap: 12px; padding-bottom: 16px; margin-bottom: 20px; border-bottom: 1px solid var(--linha-fina); }
.pub-logo { max-height: 40px; max-width: 160px; object-fit: contain; }
.pub-empresa { font-weight: 600; font-size: 15px; }
.pub-logo + .pub-empresa { color: var(--suave); font-weight: 400; font-size: 14px; }
.pub-titulo { font-size: 22px; line-height: 1.3; font-weight: 600; margin: 0; }
.pub-meta { margin: 6px 0 0; font-size: 15px; color: var(--suave); }
.pub-rotulo { margin: 22px 0 4px; font-size: 13px; color: var(--suave); }
.pub-texto { margin: 6px 0 0; font-size: 15px; line-height: 1.5; }
.pub-livre { white-space: pre-line; }
.pub-assinar { margin-top: 8px; }
.pub-assinar .os-a-area { margin-top: 4px; border: 1px solid var(--linha); border-bottom: 2px solid var(--texto); border-radius: 6px 6px 0 0; }
.pub-assinar input[name=assinado_por] { font-size: 16px; }
.pub-botao { width: 100%; justify-content: center; margin-top: 18px; padding: 12px 16px; font-size: 16px; }
.pub .btn-orc { display: inline-flex; }
.pub-assinar .os-a-area { margin-left: 0 !important; margin-right: 0 !important; }
.pub-assinar .os-a-limpar { right: 10px !important; top: 6px; }

/* Concluir a ordem */
.os-fim { margin-top: 36px; padding-top: 18px; border-top: 1px solid var(--linha); }
.os-fim-titulo { margin: 0; font-size: 17px; font-weight: 600; color: var(--texto); }
.os-fim-pergunta { margin: 4px 0 0; font-size: 15px; color: var(--suave); }
.os-fim-botoes { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; }
.os-fim-botoes form { margin: 0; }
.os-fim-botoes .btn-orc { width: 100%; justify-content: center; gap: 8px; min-height: 48px; font-size: 15px; }
.os-fim .os-rodape { display: block; margin-top: 12px; }
.os-pedido { margin: 8px 0 0; font-size: 13px; color: var(--suave); }
.os-pedido .acao-texto { background: none; border: 0; padding: 0; min-height: 0; font: inherit; font-size: 13px; color: var(--destaque); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.os-sec-assinatura .os-recolher { margin-top: 12px; margin-right: 8px; }
.os-sec-assinatura form.em-linha { display: inline-block; }
.dialogo-link .link-assinatura { word-break: break-all; font-size: 14px; background: #f6f8f9; border-radius: 6px; padding: 8px 10px; }
@media (min-width: 960px) {
  .os-fim-botoes { flex-direction: row; flex-wrap: wrap; }
  .os-fim-botoes .btn-orc { width: auto; min-height: 42px; padding: 10px 18px; }
  .os-sec-equip .rotulo { align-items: center; }
  .os-equip-editar { min-height: 32px !important; padding: 5px 10px !important; font-size: 13px !important; }
  .os-sec-equip .os-equip, .os-sec-equip .os-equip.ed { cursor: default; background: none; margin: 0; padding: 8px 0 10px; }
  .os-sec-equip:not(.a-editar) .os-equip-campos, .os-sec-equip:not(.a-editar) .os-equip.ed .os-equip-campos { display: none; }
  .os-sec-equip.a-editar .os-equip-campos { display: flex; margin-top: 4px; }
  .os-sec-equip.a-editar .os-equip-nome, .os-sec-equip.a-editar .os-equip-serie { display: none; }
  .os-sec-equip.a-editar .os-equip { border-bottom: 0; }
  .os-sec-equip .os-equip.ed .os-equip-serie { display: block; }
  .os-sec-equip.a-editar .os-equip.ed .os-equip-serie { display: none; }
  .os-equip-campos .ed-campo { flex: 1 1 180px; }
  .os-mat, .os-mat.ed { grid-template-columns: minmax(0, 1fr) 90px 32px; gap: 8px; align-items: center; padding: 6px 0; margin: 0; background: none; border-radius: 0; }
  .os-mat .os-mat-opcoes, .os-mat.ed .os-mat-opcoes { display: block; grid-column: auto; }
  .os-mat input.os-mat-qtd { width: 100%; text-align: right; }
  button.acao-linha.os-mat-apagar { width: 32px; height: 32px; padding: 0 !important; justify-content: center; border-color: transparent !important; color: var(--suave) !important; }
  button.acao-linha.os-mat-apagar:hover { border-color: #e4b9b4 !important; color: var(--perigo) !important; }
  .os-mat .campo-erro { grid-column: 1 / -1; }
  .os-sec-material .faixa-guardar { margin-top: 2px; }
  .os-mat-novo .adicionar-linha { margin-top: 10px; }
  textarea.os-trabalho { border: 1px solid #b9c3ca; padding: 8px 10px; }
}
.pub input[name=assinado_por] { display: block; width: 100%; margin-top: 4px; min-height: 44px; padding: 10px 12px; border: 1px solid #b9c3ca; border-radius: 6px; background: #fff; font-size: 16px; }
.pub input[name=assinado_por]:focus { outline: 0; border-color: var(--destaque); box-shadow: 0 0 0 3px rgba(30, 77, 92, .12); }
.pub .ed-campo { font-size: 13px; color: var(--suave); display: block; }

/* Registar manutenção (janela no computador, painel no telemóvel) */
dialog.janela-registo { max-width: 460px; width: calc(100% - 32px); padding: 22px 24px 24px; border-radius: 10px; }
.registo-form { margin: 0; }
.registo-titulo { margin: 0 0 14px; font-size: 17px; font-weight: 600; }
.painel-corpo .registo-titulo { display: none; }
.registo-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 14px; }
.registo-campos .ed-campo { min-width: 0; margin: 0; }
.registo-oferta, .registo-obs { grid-column: 1 / -1; }
.registo-oferta { border: 0; padding: 0; margin: 0; }
.registo-oferta legend { padding: 0; margin-bottom: 6px; font-size: 13px; color: var(--suave); }
.registo-oferta .alternaveis { display: flex; gap: 8px; }
.registo-oferta .alternavel { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 6px 16px; border: 1px solid #b9c3ca; border-radius: 6px; background: #fff; font-size: 15px; color: var(--texto); cursor: pointer; }
.registo-oferta .alternavel::before { content: none; }
.registo-oferta .alternavel:has(input:checked) { background: #e9eff4; border-color: var(--destaque); font-weight: 600; }
.registo-oferta .alternavel:has(input:focus-visible) { outline: 2px solid var(--destaque); outline-offset: 2px; }
.registo-form input:not([type=radio]), .registo-form textarea { display: block; width: 100%; margin-top: 4px; min-height: 42px; padding: 8px 10px; border: 1px solid #b9c3ca; border-radius: 6px; background: #fff; font: inherit; font-size: 16px; color: var(--texto); }
.registo-form textarea { min-height: 76px; resize: vertical; }
.registo-form .ed-campo { font-size: 13px; color: var(--suave); display: block; }
.registo-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 18px; }
.registo-acoes .btn-orc { min-height: 42px; }
.registo-ordem { margin-left: auto; background: none; border: 0; padding: 0; font: inherit; font-size: 13px; color: var(--suave); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; min-height: 0; }
@media (max-width: 720px) {
  .registo-acoes .btn-orc { flex: 1; justify-content: center; }
  .registo-ordem { flex-basis: 100%; margin: 4px 0 0; text-align: center; }
}
@media (min-width: 960px) {
  .registo-form input:not([type=radio]), .registo-form textarea { font-size: 15px; min-height: 38px; }
  .im-acoes { align-items: center; gap: 8px; }
  .im-acoes .im-contactar, .im-acoes .im-contactado, .im-acoes .im-acao { min-height: 32px; padding: 5px 10px; border: 1px solid #b9c3ca; border-radius: 6px; background: #fff; color: var(--texto); font-size: 13px; font-weight: 600; }
  .im-acoes .im-contactar { color: var(--texto); }
  .im-acoes .im-contactar .icone-im, .im-acoes .im-contactado .icone-im { color: #128c4b; }
  .im-acoes .im-contactado { color: var(--suave); font-weight: 500; }
  .im-acoes .im-acao:hover, .im-acoes .im-contactar:hover, .im-acoes .im-contactado:hover { border-color: var(--suave); text-decoration: none; background: #fff; }
  .im-acoes .im-mais { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: 1px solid #b9c3ca; border-radius: 6px; }
  .itens-manut .im-linha { grid-template-columns: minmax(0, 1fr) 140px auto; align-items: center; }
  .im-prevista.im-atraso { display: inline-flex; align-items: center; gap: 6px; justify-self: start; background: #fbf1df; color: #5c3900; border-radius: 999px; padding: 3px 10px; font-size: 13px; }
  .im-prevista.im-atraso::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--aviso); }
  .ob-notas .obs-campo { width: 100%; }
  .ob-acoes .btn-orc { min-height: 38px; }
}
@media (min-width: 960px) {
  button .so-pc, a .so-pc { display: inline-flex; align-items: center; gap: 6px; }
  .itens-manut .im-linha { grid-template-columns: minmax(0, 1fr) 190px auto; }
}
@media (min-width: 960px) {
  .ob-apagar .os-perigo, .ob-registo-apagar .os-perigo { min-height: 34px; padding: 6px 12px; border: 1px solid #e4b9b4; border-radius: 6px; background: #fff; font-size: 14px; font-weight: 600; }
}
.ob-registar-movel { width: 100%; justify-content: center; gap: 8px; margin-top: 18px; min-height: 46px; }
.registo-cliente { display: block; font-size: 14px; font-weight: 400; color: var(--suave); margin-top: 2px; }
@media (min-width: 960px) {
  /* Catálogo: tabela com caixas */
  .faixa-cat { margin-top: 18px; }
  .lc-cab, .linha-cat:not(.linha-serv) { display: grid; grid-template-columns: minmax(0, 1fr) 170px 110px 120px 230px; gap: 0 8px; align-items: center; }
  .lc-cab { padding: 6px 0; font-size: 13px; color: var(--suave); border-bottom: 1px solid var(--linha); }
  .lc-cab span:nth-child(3), .lc-cab span:nth-child(4) { text-align: right; }
  .linha-cat, .linha-cat.ed, .linha-cat.ed:not(.linha-nova) { padding: 6px 0; margin: 0; background: none; border-radius: 0; cursor: default; }
  .linha-cat:not(.linha-serv) .lc-opcoes, .linha-cat.ed:not(.linha-serv) .lc-opcoes { display: contents; }
  .linha-cat:not(.linha-serv) .lc-texto { grid-column: 1; grid-row: 1; flex-wrap: nowrap; }
  .linha-cat:not(.linha-serv) .lc-opcoes .lo-opcao { grid-column: 2; grid-row: 1; font-size: 0; margin: 0; display: block; }
  .linha-cat:not(.linha-serv) .lc-opcoes .lo-opcao select { font-size: 14px; }
  .linha-cat:not(.linha-serv) .lc-btu { grid-column: 3; grid-row: 1; }
  .linha-cat:not(.linha-serv) .lc-preco { grid-column: 4; grid-row: 1; }
  .linha-cat:not(.linha-serv) .lc-acoes { grid-column: 5; grid-row: 1; }
  .linha-cat .lc-detalhe .lc-tipo, .linha-cat .lc-un { display: none; }
  .linha-cat .lc-texto input.lc-modelo.lo-campo:not([type=radio]) { flex: 1 1 auto; width: 100%; field-sizing: fixed; }
  .linha-cat .lc-btu input.lo-campo, .linha-cat .lc-preco input.lo-campo { width: 100%; text-align: right; field-sizing: fixed; color: var(--texto); font-size: 15px; }
  .lc-opcoes select.lo-campo, .linha-cat select.lc-tipo-campo { width: 100%; min-height: 38px; padding: 8px 6px; border: 1px solid #b9c3ca; }
  .lc-acoes { display: flex; gap: 6px; justify-content: flex-end; flex-wrap: nowrap; }
  .lc-acoes .lo-botao, .lc-acoes a.lo-botao { width: auto; height: 32px; padding: 0 10px; border: 1px solid #b9c3ca; border-radius: 6px; font-size: 13px; font-weight: 600; color: var(--texto); text-decoration: none; display: inline-flex; align-items: center; white-space: nowrap; }
  .lc-acoes .lo-apagar { color: var(--perigo); border-color: #e4b9b4; }
  .linha-cat .campo-erro { grid-column: 1 / -1; grid-row: 2; }
  .linha-cat.inativo .lo-campo { color: var(--tenue); }
  .linha-serv, .linha-serv.ed { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; padding: 12px 0 14px; }
  .linha-serv .ls-regra { align-self: center; }
  .linha-serv .lc-opcoes, .linha-serv.ed .lc-opcoes { display: flex; grid-column: 1 / -1; flex-wrap: wrap; align-items: flex-end; gap: 10px 12px; margin: 0; font-size: 13px; }
  .linha-serv .lo-opcao { display: flex; flex-direction: column; align-items: stretch; gap: 4px; font-size: 13px; color: var(--suave); }
  .linha-serv .lo-opcao input.lo-campo:not([type=radio]), .linha-serv .lo-opcao select.lo-campo { width: 100%; min-width: 90px; font-size: 15px; color: var(--texto); field-sizing: fixed; }
  .linha-serv .ls-largo { flex: 1 1 280px; }
  .linha-serv .lc-acoes { margin-left: auto; align-self: flex-end; }
  .linha-serv input.lc-modelo { font-weight: 600; }
}
@media (min-width: 960px) {
  .lc-cab, .linha-cat:not(.linha-serv) { grid-template-columns: minmax(0, 1fr) 150px 100px 115px 280px; }
  .linha-cat select.lo-campo, .lc-opcao select.lo-campo { text-align: left; }
}
@media (min-width: 960px) {
  .linha-serv .ls-un { display: none; }
  .linha-serv .lo-opcao > span:first-child { white-space: nowrap; }
}
@media (min-width: 960px) {
  .cf-numero { display: flex; align-items: center; gap: 10px; flex-wrap: nowrap; }
  .cf-valor .cf-numero input.lo-campo.cf-input:not([type=radio]):not([type=checkbox]) { display: inline-block; width: 8em; }
}
@media (min-width: 960px) {
  .cf-valor .cf-realce textarea.lo-campo.cf-input { color: transparent; background: transparent; }
  .cf-realce { background: #fff; border-radius: 6px; }
  .cf-realce-fundo { line-height: 1.4; }
}
.subfiltro { margin: 16px 0 0; font-size: 14px; color: var(--suave); }
@media (min-width: 960px) {
  .divisao-orc:not(.a-editar) { display: flex; padding: 8px 0; }
  .divisao-orc:not(.a-editar) .dv-linha1, .divisao-orc:not(.a-editar) .dv-linha2,
  .divisao-orc:not(.a-editar) .dv-opcoes, .divisao-orc:not(.a-editar) .dv-acoes { display: none; }
  .dv-ver { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; }
  .dv-resumo { margin: 0; font-size: 15px; min-width: 0; }
  .divisao-orc.a-editar { margin: 6px -10px; padding: 10px 10px 12px; }
  .divisao-orc.a-editar .dv-ver { display: none; }
  .divisao-orc .dv-acoes { grid-column: 1 / -1; margin-top: 6px; }
  .divisao-orc .dv-acoes .btn-orc { min-height: 34px; padding: 6px 12px; }
}
