/* Gigarte Tasks — identidade Gigarte: Lexend (títulos), Manrope (texto), laranja #FF4C00. */
:root {
  --laranja: #FF4C00;
  --laranja-forte: #E04300;
  --laranja-escuro: #732200;
  --laranja-claro: #FDF2ED;
  --tinta: #1A1A1A;
  --preto: #000;
  --cinza: #6B6B6B;
  --cinza-claro: #9A948F;
  --fundo: #F7F4F2;
  --superficie: #FFFFFF;
  --linha: #E7E1DC;
  --linha-forte: #D8D2CE;
  --vermelho: #B42318;
  --vermelho-claro: #FDECEA;
  --verde: #2F7D4F;
  --verde-claro: #E3F1E8;
  --ambar: #8A5A00;
  --ambar-claro: #FBF0D9;
  --raio: 10px;
  --raio-p: 7px;
  --sombra: 0 1px 2px rgba(26, 26, 26, .05), 0 2px 8px rgba(26, 26, 26, .04);
  --sombra-forte: 0 8px 24px rgba(26, 26, 26, .12);
  --titulos: 'Lexend', 'Helvetica Neue', Arial, sans-serif;
  --texto: 'Manrope', 'Helvetica Neue', Arial, sans-serif;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--fundo); color: var(--tinta);
  font: 15px/1.5 var(--texto); -webkit-font-smoothing: antialiased;
}
h1, h2, h3 { font-family: var(--titulos); font-weight: 600; letter-spacing: -.01em; line-height: 1.2; margin: 0; }
h1 { font-size: 28px; }
h2 { font-size: 17px; }
h3 { font-size: 16px; }
p { margin: 0 0 .6em; }
a { color: inherit; text-decoration-color: var(--linha-forte); text-underline-offset: 3px; }
a:hover { color: var(--laranja); }
code { font-family: ui-monospace, 'SF Mono', Menlo, monospace; font-size: .9em; background: var(--fundo); padding: 2px 6px; border-radius: 5px; }
small { font-size: 12.5px; }
.ic { width: 16px; height: 16px; flex: none; vertical-align: -3px; }
.oculto { display: none !important; }
.cinza { color: var(--cinza); }
.vermelho { color: var(--vermelho); }
.verde { color: var(--verde); font-weight: 600; }
.castanho { color: var(--laranja-escuro); }
.pequeno { font-size: 13px; }
.nowrap { white-space: nowrap; }
.selecionavel { user-select: all; }

/* ---------- Topo ---------- */
.topo { background: var(--superficie); border-bottom: 1px solid var(--linha); position: sticky; top: 0; z-index: 20; }
.topo-in { max-width: 1280px; margin: 0 auto; padding: 0 24px; height: 60px; display: flex; align-items: center; gap: 28px; }
.marca { display: flex; align-items: center; gap: 8px; text-decoration: none; flex: none; }
.marca .logo { height: 26px; width: auto; display: block; }
.logo-texto { font-family: var(--titulos); font-weight: 700; font-size: 20px; letter-spacing: -.02em; }
.marca-produto { font-family: var(--titulos); font-weight: 600; font-size: 13px; color: var(--laranja); border: 1.5px solid var(--laranja); border-radius: 999px; padding: 1px 9px; letter-spacing: .02em; }
.nav { display: flex; gap: 4px; flex: 1; overflow-x: auto; scrollbar-width: none; }
.nav::-webkit-scrollbar { display: none; }
.nav a { text-decoration: none; color: var(--cinza); font-weight: 600; font-size: 14px; padding: 8px 12px; border-radius: var(--raio-p); white-space: nowrap; display: flex; align-items: center; gap: 6px; }
.nav a:hover { color: var(--tinta); background: var(--fundo); }
.nav a.ativo { color: var(--tinta); background: var(--fundo); box-shadow: inset 0 -2px 0 var(--laranja); }
.badge { background: var(--laranja); color: #fff; font-size: 11px; font-weight: 700; border-radius: 999px; padding: 1px 7px; line-height: 1.5; }
.conta { position: relative; flex: none; }
.conta summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px; padding: 4px; border-radius: 999px; }
.conta summary::-webkit-details-marker { display: none; }
.conta-nome { font-weight: 600; font-size: 14px; }
.conta-menu { position: absolute; right: 0; top: calc(100% + 8px); background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra-forte); min-width: 180px; padding: 6px; display: flex; flex-direction: column; }
.conta-menu a, .conta-menu button { text-align: left; padding: 9px 12px; border-radius: var(--raio-p); text-decoration: none; font: 600 14px var(--texto); background: none; border: 0; cursor: pointer; color: var(--tinta); width: 100%; }
.conta-menu a:hover, .conta-menu button:hover { background: var(--fundo); color: var(--tinta); }

/* Barra do cronómetro */
.cronobar { background: var(--tinta); color: #fff; }
.cronobar-in { max-width: 1280px; margin: 0 auto; padding: 8px 24px; display: flex; align-items: center; gap: 14px; }
.pulso { width: 9px; height: 9px; border-radius: 50%; background: var(--laranja); box-shadow: 0 0 0 0 rgba(255, 76, 0, .6); animation: pulso 1.8s infinite; flex: none; }
@keyframes pulso { 70% { box-shadow: 0 0 0 9px rgba(255, 76, 0, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 76, 0, 0); } }
.cronobar-tempo { font: 600 17px var(--titulos); font-variant-numeric: tabular-nums; min-width: 72px; }
.cronobar-tarefa { color: #fff; text-decoration: none; font-weight: 600; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cronobar-tarefa span { color: #B9B2AD; font-weight: 500; }
.cronobar-tarefa:hover { color: #fff; text-decoration: underline; }
.faixa-aviso { background: var(--ambar-claro); border-bottom: 1px solid #EED9B0; color: var(--ambar); }
.faixa-in { max-width: 1280px; margin: 0 auto; padding: 9px 24px; display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: 14px; flex-wrap: wrap; }
.faixa-in a { margin-left: auto; color: var(--ambar); }

/* ---------- Conteúdo ---------- */
.conteudo { max-width: 1280px; margin: 0 auto; padding: 28px 24px 64px; }
.cab-pagina { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 22px; flex-wrap: wrap; }
.sobretitulo { color: var(--cinza); font-size: 13px; font-weight: 600; margin: 0 0 6px; }
.sobretitulo a { text-decoration: none; }
.sobretitulo a:hover { text-decoration: underline; }
.cab-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 10px; font-size: 13.5px; color: var(--cinza); }
.acoes-cab { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.numeros { display: flex; gap: 6px; }
.numeros > div { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 10px 16px; min-width: 96px; }
.numeros strong { display: block; font: 600 22px var(--titulos); font-variant-numeric: tabular-nums; }
.numeros span { font-size: 12.5px; color: var(--cinza); font-weight: 600; }
.nota { color: var(--cinza); font-size: 13.5px; }
.nota-faixa { color: var(--cinza); font-size: 13.5px; background: var(--superficie); border: 1px dashed var(--linha-forte); border-radius: var(--raio-p); padding: 8px 12px; }
.rodape-nota { margin-top: 28px; text-align: center; }

/* Avisos */
.aviso { padding: 12px 16px; border-radius: var(--raio-p); margin-bottom: 16px; font-weight: 600; font-size: 14px; border-left: 4px solid; }
.aviso.ok { background: var(--verde-claro); border-color: var(--verde); color: #1F5A37; }
.aviso.erro { background: var(--laranja-claro); border-color: var(--laranja-escuro); color: var(--laranja-escuro); }
.aviso code { display: inline-block; margin-top: 6px; background: #fff; }
.destaque-senha { background: var(--laranja-claro); border-color: var(--laranja); color: var(--tinta); display: flex; flex-direction: column; gap: 8px; font-weight: 500; }
.destaque-senha code { font-size: 20px; font-weight: 700; background: #fff; padding: 8px 14px; align-self: flex-start; letter-spacing: .04em; }
.destaque-senha code:not(.senha) { font-size: 13px; letter-spacing: 0; word-break: break-all; }

/* Botões */
.botao { display: inline-flex; align-items: center; justify-content: center; gap: 7px; font: 600 14px var(--texto); padding: 9px 16px; border-radius: var(--raio-p); border: 1px solid var(--linha-forte); background: var(--superficie); color: var(--tinta); cursor: pointer; text-decoration: none; white-space: nowrap; transition: background .15s, border-color .15s; }
.botao:hover { border-color: var(--tinta); color: var(--tinta); }
.botao.primario { background: var(--laranja); border-color: var(--laranja); color: #fff; }
.botao.primario:hover { background: var(--laranja-forte); border-color: var(--laranja-forte); color: #fff; }
.botao.escuro { background: var(--tinta); border-color: var(--tinta); color: #fff; }
.botao.escuro:hover { background: #000; color: #fff; }
.botao.perigo { color: var(--vermelho); border-color: #E8C3BF; }
.botao.perigo:hover { background: var(--vermelho); border-color: var(--vermelho); color: #fff; }
.botao.claro { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .25); color: #fff; }
.botao.claro:hover { background: #fff; color: var(--tinta); }
.botao.pequeno { padding: 6px 11px; font-size: 13px; }
.botao.largo { width: 100%; }
.ligacao { background: none; border: 0; padding: 0; font: 600 14px var(--texto); color: var(--laranja); cursor: pointer; text-decoration: none; }
.ligacao:hover { text-decoration: underline; }
.ligacao.pequena { font-size: 13px; }
.ligacao.perigo { color: var(--vermelho); }
.x { background: none; border: 0; color: var(--cinza-claro); font-size: 20px; line-height: 1; cursor: pointer; padding: 0 4px; border-radius: 4px; }
.x:hover { color: var(--vermelho); background: var(--vermelho-claro); }

/* Formulários */
input, select, textarea { font: 15px var(--texto); color: var(--tinta); background: var(--superficie); border: 1px solid var(--linha-forte); border-radius: var(--raio-p); padding: 9px 11px; width: 100%; min-width: 0; }
input:focus, select:focus, textarea:focus, .botao:focus-visible, a:focus-visible { outline: 2px solid var(--laranja); outline-offset: 1px; border-color: var(--laranja); }
input[type="checkbox"], input[type="radio"] { width: 17px; height: 17px; accent-color: var(--laranja); padding: 0; flex: none; margin: 0; }
input[type="file"] { padding: 7px; background: var(--fundo); }
textarea { resize: vertical; line-height: 1.5; }
.form { display: flex; flex-direction: column; gap: 14px; }
.form label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: 13.5px; }
.form label small { color: var(--cinza); font-weight: 500; }
label.check, .form label.check { flex-direction: row; align-items: center; gap: 9px; font-weight: 500; font-size: 14px; cursor: pointer; }
.form-linha { display: flex; gap: 8px; align-items: flex-start; }
.form-linha textarea { min-height: 42px; }
.acoes-form { display: flex; gap: 10px; flex-wrap: wrap; }
.grelha-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
fieldset.opcoes { border: 1px solid var(--linha); border-radius: var(--raio-p); padding: 10px 14px; display: flex; flex-direction: column; gap: 10px; margin: 0; }
fieldset.opcoes legend { font-weight: 600; font-size: 13.5px; padding: 0 4px; }
input.curto { width: 70px; }

/* Criação rápida */
.rapida { display: flex; align-items: center; gap: 8px; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 8px 8px 8px 14px; margin-bottom: 22px; box-shadow: var(--sombra); }
.rapida-ic { color: var(--laranja); display: flex; }
.rapida input[name="titulo"] { flex: 1; border: 0; padding: 8px 4px; font-size: 15px; }
.rapida input[name="titulo"]:focus { outline: none; }
.rapida select, .rapida input[type="date"] { width: auto; max-width: 210px; font-size: 14px; padding: 8px 10px; }
.rapida:focus-within { border-color: var(--laranja); }

/* Blocos e listas */
.bloco { margin-bottom: 22px; }
.bloco-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.bloco-cab h2 { display: flex; align-items: center; gap: 8px; font-size: 15px; text-transform: none; }
.bloco-cab a { font-size: 13.5px; font-weight: 600; color: var(--laranja); text-decoration: none; display: flex; align-items: center; gap: 4px; }
.contagem { font: 600 12px var(--texto); color: var(--cinza); background: var(--superficie); border: 1px solid var(--linha); border-radius: 999px; padding: 0 8px; line-height: 20px; }
.bloco.alerta .bloco-cab h2 { color: var(--vermelho); }
.bloco.calmo { opacity: .85; }
.bloco.destaque { background: var(--laranja-claro); border: 1px solid #F6D3C2; border-radius: var(--raio); padding: 14px 16px 16px; }
.bloco.destaque .bloco-cab h2 { color: var(--laranja-escuro); }
details.dobravel > summary { list-style: none; cursor: pointer; }
details.dobravel > summary::-webkit-details-marker { display: none; }
details.dobravel > summary h2::before { content: '▸'; color: var(--cinza); font-size: 12px; margin-right: 2px; transition: transform .15s; display: inline-block; }
details.dobravel[open] > summary h2::before { transform: rotate(90deg); }
.lista { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); overflow: hidden; }
.tarefa-linha { display: flex; align-items: center; gap: 14px; padding: 11px 14px; border-bottom: 1px solid var(--linha); }
.tarefa-linha:last-child { border-bottom: 0; }
.tarefa-linha:hover { background: #FCFBFA; }
.tl-principal { flex: 1; min-width: 0; }
.tl-titulo { font-weight: 600; text-decoration: none; margin-right: 6px; }
.tl-meta { font-size: 13px; color: var(--cinza); display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; margin-top: 2px; }
.tl-meta a { text-decoration: none; }
.tl-meta a:hover { text-decoration: underline; }
.sep { color: var(--linha-forte); }
.extra { display: inline-flex; align-items: center; gap: 3px; margin-left: 6px; }
.extra .ic { width: 14px; height: 14px; }
.tl-prazo { font-size: 13px; font-weight: 600; color: var(--cinza); white-space: nowrap; }
.tl-prazo.atrasada { color: var(--vermelho); }
.tl-prazo.hoje { color: var(--laranja); }
.tarefa-linha .tl-prazo { min-width: 84px; text-align: right; }
.duracao { font: 600 15px var(--titulos); }

/* Estado */
.pill { font: 600 12px var(--texto); padding: 3px 9px; border-radius: 999px; white-space: nowrap; flex: none; }
.e-a_fazer { background: #EFEBE8; color: #4A4542; }
.e-em_curso { background: #FFE4D8; color: #B23500; }
.e-em_espera { background: var(--ambar-claro); color: var(--ambar); }
.e-aprovacao { background: #F1DED3; color: var(--laranja-escuro); }
.e-concluida { background: var(--verde-claro); color: var(--verde); }
.tarefa-linha .pill { min-width: 128px; text-align: center; }
.marca-tag { font: 700 11px var(--texto); text-transform: uppercase; letter-spacing: .04em; padding: 2px 7px; border-radius: 4px; background: #EFEBE8; color: var(--cinza); vertical-align: 1px; white-space: nowrap; }
.marca-tag.devolvida { background: var(--vermelho-claro); color: var(--vermelho); }
.marca-tag.nova { background: var(--laranja); color: #fff; }
.marca-tag.escuro { background: var(--tinta); color: #fff; }
.marca-tag.mensal { background: #EAE4F7; color: #4B3B8A; }
.laranja { color: var(--laranja); }
.faixa-mensal { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; background: var(--superficie); border: 1px solid var(--linha); border-left: 4px solid var(--laranja-escuro); border-radius: var(--raio); padding: 12px 16px; margin-bottom: 18px; box-shadow: var(--sombra); font-size: 14.5px; }
.faixa-mensal span { display: flex; align-items: center; gap: 8px; }
.mensal-bloco { margin: 14px 0 0; padding-top: 14px; border-top: 1px solid var(--linha); display: flex; flex-direction: column; gap: 8px; }
.mensal-bloco form { margin: 0; }
.tabela.mensais td { vertical-align: middle; }
.tabela.mensais tr.aberta td { color: var(--cinza); }
.tabela.mensais select, .tabela.mensais input[type="date"] { min-width: 150px; padding: 7px 9px; font-size: 14px; }
.barra-abrir { margin-top: 14px; justify-content: flex-end; }

/* Avatar */
.avatar { width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font: 600 12px var(--titulos); color: #fff; flex: none; letter-spacing: 0; }
.avatar.pequeno { width: 24px; height: 24px; font-size: 10.5px; }
.avatar.vazio { background: #EFEBE8; color: var(--cinza); }
.a0 { background: #FF4C00; } .a1 { background: #1A1A1A; } .a2 { background: #732200; } .a3 { background: #8A6E5E; } .a4 { background: #C2410C; }
.equipa-mini { display: flex; }
.equipa-mini .avatar { margin-left: -6px; border: 2px solid var(--fundo); }

/* Cronómetro em linha */
.form-crono { margin: 0; display: inline-flex; }
.crono { width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--linha-forte); background: var(--superficie); color: var(--tinta); display: flex; align-items: center; justify-content: center; cursor: pointer; flex: none; transition: all .15s; }
.crono .ic { width: 13px; height: 13px; }
.crono:hover { border-color: var(--laranja); color: var(--laranja); }
.crono.a-correr { background: var(--tinta); color: #fff; border-color: var(--tinta); }

/* Separadores e filtros */
.separadores { display: inline-flex; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio-p); padding: 3px; }
.separadores a { text-decoration: none; font-weight: 600; font-size: 13.5px; color: var(--cinza); padding: 6px 12px; border-radius: 5px; display: flex; align-items: center; gap: 6px; }
.separadores a.ativo { background: var(--tinta); color: #fff; }
.barra-filtros { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.filtros { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.filtros select { width: auto; font-size: 14px; padding: 7px 10px; }
.filtros .check { font-size: 13.5px; }

/* Projetos */
.grupo-cliente { margin-bottom: 26px; }
.titulo-grupo { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--cinza); margin-bottom: 10px; }
.grelha-projetos { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.projeto-cartao { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 16px; text-decoration: none; display: flex; flex-direction: column; gap: 10px; box-shadow: var(--sombra); transition: border-color .15s, transform .15s; }
.projeto-cartao:hover { border-color: var(--laranja); color: inherit; transform: translateY(-1px); }
.pc-topo { display: flex; justify-content: space-between; align-items: center; }
.pc-numeros { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 13px; color: var(--cinza); margin-top: auto; }
.pc-numeros strong { color: var(--tinta); }
.pc-numeros .vermelho strong { color: var(--vermelho); }
.pc-numeros .castanho strong { color: var(--laranja-escuro); }
.tipo { font: 700 11px var(--texto); text-transform: uppercase; letter-spacing: .05em; padding: 3px 8px; border-radius: 4px; background: #EFEBE8; color: #4A4542; }
.t-avença { background: #FFE4D8; color: #B23500; }
.t-branding { background: var(--tinta); color: #fff; }
.t-website { background: #F1DED3; color: var(--laranja-escuro); }
.descricao-projeto { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 14px 16px; margin-bottom: 16px; font-size: 14px; }

/* Quadro */
.quadro { display: grid; grid-template-columns: repeat(5, minmax(230px, 1fr)); gap: 12px; overflow-x: auto; padding-bottom: 8px; align-items: start; }
.coluna { background: #EFEBE8; border-radius: var(--raio); padding: 10px; min-height: 160px; transition: background .15s, box-shadow .15s; }
.coluna.sobre { background: var(--laranja-claro); box-shadow: inset 0 0 0 2px var(--laranja); }
.coluna-cab { display: flex; align-items: center; gap: 8px; font: 600 13.5px var(--titulos); padding: 2px 4px 10px; }
.coluna-cab .contagem { margin-left: auto; }
.ponto { width: 9px; height: 9px; border-radius: 50%; }
.ponto.e-a_fazer { background: #8A8580; } .ponto.e-em_curso { background: var(--laranja); } .ponto.e-em_espera { background: #D49B20; } .ponto.e-aprovacao { background: var(--laranja-escuro); } .ponto.e-concluida { background: var(--verde); }
.coluna-corpo { display: flex; flex-direction: column; gap: 8px; min-height: 40px; }
.coluna-vazia { color: var(--cinza-claro); font-size: 13px; text-align: center; padding: 18px 6px; border: 1.5px dashed #DCD5D0; border-radius: var(--raio-p); }
.cartao { background: var(--superficie); border-radius: var(--raio-p); padding: 11px 12px; box-shadow: var(--sombra); border: 1px solid transparent; display: flex; flex-direction: column; gap: 6px; }
.cartao[draggable="true"] { cursor: grab; }
.cartao:hover { border-color: var(--linha-forte); }
.cartao.a-arrastar { opacity: .4; }
.cartao.a-gravar { opacity: .6; pointer-events: none; }
.cartao-fase { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--cinza); }
.cartao-titulo { font-weight: 600; text-decoration: none; line-height: 1.35; }
.cartao-rodape { display: flex; align-items: center; gap: 8px; margin-top: 2px; }
.cartao-rodape .extras { display: flex; color: var(--cinza); font-size: 12.5px; margin-right: auto; }
.cartao-rodape .extra { margin-left: 4px; }
.cartao .crono { width: 28px; height: 28px; }

/* Tarefa */
.tarefa-grelha { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; align-items: start; }
.tarefa-principal, .tarefa-lado { display: flex; flex-direction: column; gap: 16px; }
.tarefa-lado { position: sticky; top: 76px; }
.painel { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); padding: 18px; box-shadow: var(--sombra); }
.painel + .painel { margin-top: 0; }
.painel.form, form.painel { margin-bottom: 18px; }
.painel-cab { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; gap: 10px; }
.painel-cab h2 { display: flex; align-items: center; gap: 8px; }
.lado-titulo { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--cinza); margin-bottom: 12px; }
h2.sub { font-size: 17px; margin-top: 8px; }
.descricao { font-size: 15px; }
.pilha { display: flex; flex-direction: column; gap: 8px; }
.pilha form { margin: 0; }
.checklist { list-style: none; padding: 0; margin: 0 0 12px; }
.checklist li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 0; border-bottom: 1px solid var(--linha); }
.checklist li:last-child { border-bottom: 0; }
.checklist li.feito span { text-decoration: line-through; color: var(--cinza); }
.checklist form { margin: 0; }
.chk-form { flex: 1; }
.anexos { list-style: none; padding: 0; margin: 0 0 12px; }
.anexos li { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--linha); flex-wrap: wrap; }
.anexos li a { font-weight: 600; text-decoration: none; display: inline-flex; gap: 6px; align-items: center; }
.anexos li span { font-size: 12.5px; margin-left: auto; }
.anexos li form { margin: 0; }
.anexos.compactos { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 10px 0 0; }
.anexos.compactos li { border: 0; padding: 0; }
.atividade { list-style: none; padding: 0; margin: 0 0 16px; }
.atividade .evento { font-size: 13px; color: var(--cinza); padding: 5px 0 5px 42px; display: flex; gap: 10px; flex-wrap: wrap; }
.atividade .evento strong { color: var(--tinta); font-weight: 600; }
.atividade .comentario { display: flex; gap: 12px; padding: 12px 0; }
.com-corpo { flex: 1; background: var(--fundo); border-radius: var(--raio-p); padding: 10px 14px; }
.comentario.devolucao .com-corpo { background: var(--vermelho-claro); }
.com-cab { display: flex; gap: 10px; align-items: center; font-size: 13.5px; flex-wrap: wrap; margin-bottom: 4px; }
.com-cab .cinza { font-size: 12.5px; }
.com-apagar { margin: 0 0 0 auto; }
.com-texto { font-size: 14.5px; word-wrap: break-word; }
.numeros-lado { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 14px 0 6px; }
.numeros-lado dt { font-size: 12px; color: var(--cinza); font-weight: 600; }
.numeros-lado dd { margin: 0; font: 600 20px var(--titulos); }
.por-pessoa { list-style: none; padding: 0; margin: 6px 0; font-size: 13.5px; }
.por-pessoa li { display: flex; justify-content: space-between; padding: 3px 0; }
.registos { margin-top: 10px; font-size: 13.5px; }
.registos > summary, details.manual > summary, .acoes-tarefa summary, details.corrigir > summary, .corrigir-inline > summary { cursor: pointer; font-weight: 600; color: var(--laranja); list-style: none; font-size: 13px; }
.registos > summary::-webkit-details-marker, details.manual > summary::-webkit-details-marker, .acoes-tarefa summary::-webkit-details-marker, .corrigir > summary::-webkit-details-marker, .corrigir-inline > summary::-webkit-details-marker { display: none; }
.registos ul { list-style: none; padding: 0; margin: 8px 0 0; }
.registos li { padding: 8px 0; border-top: 1px solid var(--linha); }
.reg-linha { display: flex; justify-content: space-between; }
.reg-tags { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 3px; }
.corrigir form, .manual form, .acoes-tarefa form { margin-top: 10px; }
details.manual { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--linha); }
.acoes-tarefa { display: flex; flex-direction: column; gap: 10px; }
.devolver summary { list-style: none; }
.devolver summary::-webkit-details-marker { display: none; }
.devolver[open] summary { margin-bottom: 8px; }
.lista-dados { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.lista-dados + .lista-dados { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--linha); }
.lista-dados div { display: flex; justify-content: space-between; gap: 10px; font-size: 14px; }
.lista-dados dt { color: var(--cinza); }
.lista-dados dd { margin: 0; font-weight: 600; text-align: right; }
.lista-dados.colunas { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px 28px; margin-bottom: 16px; }
.lista-dados.colunas div { flex-direction: column; gap: 2px; }
.lista-dados.colunas dd { text-align: left; font-weight: 500; }
.detalhes { gap: 12px; }

/* Aprovações */
.aprovacoes { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; }
.aprovacao { background: var(--superficie); border: 1px solid var(--linha); border-left: 4px solid var(--laranja-escuro); border-radius: var(--raio); padding: 16px 18px; display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 20px; box-shadow: var(--sombra); }
.aprovacao h2 a { text-decoration: none; }
.ap-acoes { display: flex; flex-direction: column; gap: 8px; }
.ap-acoes form { margin: 0; }

/* Tabelas */
.tabela { width: 100%; border-collapse: collapse; font-size: 14px; }
.tabela th { text-align: left; font: 700 11.5px var(--texto); text-transform: uppercase; letter-spacing: .05em; color: #fff; background: var(--tinta); padding: 9px 12px; }
.tabela th:first-child { border-top-left-radius: var(--raio-p); }
.tabela th:last-child { border-top-right-radius: var(--raio-p); }
.tabela td { padding: 10px 12px; border-bottom: 1px solid var(--linha); vertical-align: top; }
.tabela tbody tr:nth-child(even) td { background: #FBFAF9; }
.tabela tfoot td { font-weight: 700; border-bottom: 0; }
.tabela .num { text-align: right; font-variant-numeric: tabular-nums; }
.tabela .centro { text-align: center; }
.tabela .direita { text-align: right; }
.tabela .estreita { width: 90px; }
.tabela tr.inativo td { color: var(--cinza-claro); }
.tabela form { margin: 0; display: inline; }
.tabela .linha-cliente td { font-weight: 700; background: var(--fundo) !important; }
.tabela .linha-projeto td:first-child { padding-left: 26px; color: var(--cinza); }
.tabela-rolar { overflow-x: auto; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); }
.tabela-rolar .tabela th { border-radius: 0; }
.registos-tabela td { vertical-align: middle; }
.corrigir-inline { position: relative; }
.corrigir-inline[open] > form, .corrigir-inline[open] > .form { position: absolute; right: 0; top: 24px; z-index: 5; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra-forte); padding: 14px; width: 260px; }
.corrigir-inline[open] > form + form { position: static; box-shadow: none; border: 0; padding: 0; width: auto; }
.tarefa-linha.confirmar .corrigir-inline[open] > form { width: 240px; }
.pessoa-link { display: flex; gap: 10px; align-items: center; text-decoration: none; font-weight: 600; }
.pessoa-link small { font-weight: 500; }

/* Equipa, tempo */
.grelha-equipa { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 18px; align-items: start; margin-bottom: 18px; }
.grelha-resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 18px; margin-bottom: 22px; align-items: start; }
.painel.perigo { border-color: #EED3CF; }
.linha-acao { display: flex; gap: 20px; justify-content: space-between; align-items: center; padding: 12px 0; border-top: 1px solid var(--linha); }
.linha-acao:first-of-type { border-top: 0; }
.linha-acao input { margin-top: 6px; max-width: 320px; }
.botoes-linha { display: flex; gap: 8px; flex-wrap: wrap; }
.botoes-linha form { margin: 0; }
.sistema { margin-top: 4px; }
.mes-nav { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.mes-nav a { width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--linha-forte); display: flex; align-items: center; justify-content: center; background: var(--superficie); }
.mes-nav strong { font: 600 16px var(--titulos); min-width: 150px; text-align: center; }

/* Vazio */
.vazio { text-align: center; padding: 48px 20px; background: var(--superficie); border: 1px dashed var(--linha-forte); border-radius: var(--raio); margin-bottom: 22px; }
.vazio h2 { font-size: 19px; margin-bottom: 8px; }
.vazio p { color: var(--cinza); margin: 0; }
.vazio.grande { padding: 80px 20px; }
.vazio.grande h1 { margin-bottom: 10px; }
.vazio .botao { margin-top: 16px; }

/* Páginas de entrada */
.porta { max-width: 420px; margin: 0 auto; padding: 72px 20px; }
.porta-marca { display: flex; align-items: center; gap: 8px; justify-content: center; margin-bottom: 28px; }
.porta-marca .logo { height: 34px; }
.porta-caixa { background: var(--superficie); border: 1px solid var(--linha); border-top: 4px solid var(--laranja); border-radius: var(--raio); padding: 28px; box-shadow: var(--sombra); }
.porta-caixa h1 { font-size: 24px; margin-bottom: 18px; }
.porta-caixa .nota { margin-bottom: 18px; }
.porta-link { text-align: center; margin: 18px 0 0; font-size: 14px; }
.porta-link a { color: var(--cinza); }

/* ---------- Telemóvel ---------- */
@media (max-width: 960px) {
  .tarefa-grelha, .grelha-equipa { grid-template-columns: 1fr; }
  .tarefa-lado { position: static; order: -1; }
  .quadro { grid-template-columns: repeat(5, 260px); }
  .aprovacao { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  body { font-size: 15px; }
  .topo-in { padding: 0 14px; gap: 12px; height: auto; flex-wrap: wrap; padding-top: 10px; }
  .nav { order: 3; flex-basis: 100%; padding-bottom: 6px; }
  .marca { flex: 1; }
  .conta-nome { display: none; }
  .conteudo { padding: 20px 16px 48px; }
  .cronobar-in, .faixa-in { padding-left: 16px; padding-right: 16px; }
  .cronobar-tarefa span { display: none; }
  h1 { font-size: 23px; }
  .numeros { width: 100%; }
  .numeros > div { flex: 1; min-width: 0; padding: 8px 10px; }
  .numeros strong { font-size: 18px; }
  .rapida { flex-wrap: wrap; padding: 10px; }
  .rapida input[name="titulo"] { flex-basis: calc(100% - 30px); }
  .rapida select, .rapida input[type="date"] { flex: 1; max-width: none; }
  .rapida .botao { flex-basis: 100%; }
  .tarefa-linha { flex-wrap: wrap; gap: 6px 10px; padding: 12px; }
  .tarefa-linha .pill { min-width: 0; order: 2; }
  .tarefa-linha .tl-principal { flex-basis: 100%; order: 1; }
  .tarefa-linha .tl-prazo { order: 3; min-width: 0; text-align: left; margin-right: auto; }
  .tarefa-linha .avatar { order: 2; }
  .tarefa-linha .form-crono { order: 4; }
  .tarefa-linha.confirmar > * { order: 0; }
  .grelha-2 { grid-template-columns: 1fr; }
  .linha-acao { flex-direction: column; align-items: stretch; }
  .tabela th, .tabela td { padding: 8px; }
  .porta { padding-top: 40px; }
}

/* Circuito do cliente (1.2) */
.e-cliente { background: #EAE4F7; color: #4B3B8A; }
.e-producao { background: #DDEFF5; color: #1D5E73; }
.e-faturar { background: #1A1A1A; color: #fff; }
.ponto.e-cliente { background: #6A55C2; } .ponto.e-producao { background: #2C8BA8; } .ponto.e-faturar { background: #1A1A1A; }
.marca-tag.alteracoes { background: #EAE4F7; color: #4B3B8A; }
.comentario.cliente .com-corpo { background: #F1EDFA; }
.badge.escuro { background: var(--tinta); }
.bloco.cliente .bloco-cab h2 { color: #4B3B8A; }
.percurso { list-style: none; margin: 16px 0 0; padding: 14px 0 0; border-top: 1px solid var(--linha); display: flex; flex-direction: column; gap: 8px; font-size: 13px; }
.percurso li { position: relative; padding-left: 16px; display: flex; flex-direction: column; }
.percurso li::before { content: ''; position: absolute; left: 0; top: 6px; width: 7px; height: 7px; border-radius: 50%; background: var(--laranja); }
.percurso span { color: var(--cinza); }
.faturar-linha .form-linha { align-items: center; }
.ref-fatura { width: 150px; padding: 6px 9px; font-size: 13.5px; }
.tarefa-linha .pill.e-faturar, .tarefa-linha .pill.e-cliente, .tarefa-linha .pill.e-producao { min-width: 128px; }
.roxo { color: #4B3B8A; }
.pc-numeros .roxo strong { color: #4B3B8A; }
.cartao .marca-tag { align-self: flex-start; }
