/* Scoped to the contract dashboard; uses the existing Dynaton theme tokens. */
.contrato-dashboard { --contrato-blue:#68b9ff; --contrato-green:#08d68a; --contrato-yellow:#ffc522; --contrato-red:#fb7185; display:grid; gap:1.25rem; min-width:0; color:var(--app-text,#15283e); }
.contrato-dashboard .contrato-painel { min-width:0; padding:1.15rem; border:1px solid var(--app-border,#d7eaff); border-radius:.75rem; background:var(--dash-surface,#fff); box-shadow:var(--dash-surface-shadow); overflow-wrap:anywhere; }
.dark .contrato-dashboard .contrato-painel { border-color:#123c55; background:linear-gradient(115deg,#0c2132,#041522); }
.contrato-dashboard h2,.contrato-dashboard h3,.contrato-dashboard p { margin:0; }
.contrato-dashboard h2,.contrato-dashboard h3 { font-weight:600; }
.contrato-dashboard h2 { font-size:.875rem; }
.contrato-dashboard strong { font-size:.9rem; font-weight:600; line-height:1.4; }
.contrato-dashboard p { font-size:.79rem; line-height:1.5; color:var(--app-secondary,#526d88); }
.dark .contrato-dashboard p { color:#b0c7e0; }
.contrato-dashboard .fi-icon { width:1.1rem; height:1.1rem; flex-shrink:0; }
.contrato-dashboard .contrato-icone { display:inline-flex; align-items:center; justify-content:center; width:2.35rem; height:2.35rem; flex:0 0 2.35rem; border-radius:.55rem; color:#3194e8; background:#e3f0ff; }
.dark .contrato-dashboard .contrato-icone { color:#80c4ff; background:linear-gradient(135deg,#143d67,#082848); box-shadow:inset 0 1px 0 #71b7ff15; }
.contrato-dashboard .contrato-icone .fi-icon { width:1.4rem; height:1.4rem; }
.contrato-dashboard .contrato-icone-redondo { border-radius:50%; }
.contrato-dashboard .contrato-icone[data-tone="success"] { color:#007a4f; background:#d5f8e8; }
.dark .contrato-dashboard .contrato-icone[data-tone="success"] { color:var(--contrato-green); background:linear-gradient(135deg,#0b3d2c,#062a1f); }
.contrato-dashboard .contrato-icone[data-tone="warning"] { color:#a77900; background:#fff2bc; }
.dark .contrato-dashboard .contrato-icone[data-tone="warning"] { color:var(--contrato-yellow); background:linear-gradient(135deg,#3d3410,#24240f); }
.contrato-dashboard .contrato-resumos { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.75rem; }
.contrato-dashboard .contrato-resumo { min-height:174px; display:flex; flex-direction:column; align-items:flex-start; gap:.7rem; padding:1.1rem; }
.contrato-dashboard .contrato-resumo-label { display:flex; align-items:center; gap:.65rem; min-height:2.35rem; margin-bottom:.25rem; }
.contrato-dashboard .contrato-resumo-label h2 { font-size:.75rem; font-weight:400; color:var(--app-secondary); }
.dark .contrato-dashboard .contrato-resumo-label h2 { color:#b9d8f4; }
.contrato-dashboard .contrato-metrica { font-size:1.2rem; letter-spacing:-.02em; }
.contrato-dashboard .contrato-metrica-data { font-size:1rem; }
.contrato-dashboard .contrato-status-principal .fi-badge { padding:.4rem .85rem; border-radius:.8rem; font-size:1rem; font-weight:700; line-height:1.35; }
.contrato-dashboard .contrato-status-principal:is([data-status="em_assinatura"],[data-status="aguardando_assinatura"],[data-status="parcialmente_assinado"]) .fi-badge { background:linear-gradient(#ffd75b,#ffbe18); color:#211c0d; box-shadow:0 0 16px #ffc52214; }
.contrato-dashboard .contrato-status-principal[data-status="gerado"] .fi-badge { background:#183c5c; color:#b6dcff; }
.contrato-dashboard .contrato-progresso { display:flex; align-items:center; gap:.55rem; width:100%; font-size:.75rem; color:var(--app-secondary); }
.contrato-dashboard progress { appearance:none; width:100%; min-width:0; height:.5rem; border:none; border-radius:1rem; background:#24394d; overflow:hidden; accent-color:#08c982; }
.contrato-dashboard progress::-webkit-progress-bar { background:#24394d; border-radius:1rem; }
.contrato-dashboard progress::-webkit-progress-value { background:linear-gradient(90deg,#00ae6e,#09d889); border-radius:1rem; }
.contrato-dashboard progress::-moz-progress-bar { background:#08c982; border-radius:1rem; }
.contrato-dashboard .contrato-colunas { display:grid; grid-template-columns:minmax(0,1.85fr) minmax(0,1fr); gap:.9rem; align-items:stretch; }
.contrato-dashboard .contrato-visualizacao,.contrato-dashboard .contrato-assinatura { display:flex; flex-direction:column; height:740px; padding:.85rem; }
.contrato-dashboard .contrato-cabecalho { display:flex; align-items:center; justify-content:space-between; gap:.65rem; min-height:2.5rem; margin-bottom:.85rem; flex-shrink:0; }
.contrato-dashboard .contrato-cabecalho h2 { display:flex; align-items:center; gap:.7rem; min-width:0; }
.contrato-dashboard .contrato-cabecalho .fi-btn { flex-shrink:0; font-size:.7rem; }
.contrato-dashboard .contrato-leitura { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; border:1px solid var(--app-border); border-radius:.55rem; padding:1.75rem 1.25rem; scrollbar-width:thin; scrollbar-color:#526576 transparent; }
.dark .contrato-dashboard .contrato-leitura { background:linear-gradient(110deg,#071825,#061421); border-color:#142d40; }
/* Document sheet: auto height, inherited black text so explicit inline colors still win. */
.contrato-dashboard .contrato-leitura .contrato-folha { box-sizing:border-box; width:100%; max-width:880px; min-height:100%; height:auto; margin:0 auto; padding:2.25rem 2.5rem; border-radius:.35rem; background:#fff; color:#000; color-scheme:light; overflow-x:auto; box-shadow:0 1px 3px #0000001f,0 8px 24px #00000026; }
.contrato-dashboard .contrato-titulo-documento { text-align:center; font-size:1rem; margin:.25rem 0 1.75rem; color:inherit; }
.contrato-dashboard .contrato-html { font-size:.86rem; line-height:1.8; }
.contrato-dashboard .contrato-html p { font-size:inherit; color:inherit; margin-bottom:1rem; line-height:inherit; }
.contrato-dashboard .contrato-html :is(h1,h2,h3,h4) { margin:1.6rem 0 .8rem; line-height:1.4; }
.contrato-dashboard .contrato-html h2 { font-size:1.05rem; }
.contrato-dashboard .contrato-html img { max-width:100%; height:auto; }
.contrato-dashboard .contrato-html table { min-width:100%; }
.contrato-dashboard .contrato-leitura:focus-visible { outline:2px solid var(--contrato-blue); outline-offset:2px; }
.contrato-dashboard .contrato-colunas.contrato-expandido { grid-template-columns:minmax(0,1fr); }
.contrato-dashboard .contrato-expandido .contrato-visualizacao { height:auto; }
.contrato-dashboard .contrato-expandido .contrato-leitura { max-height:none; overflow-x:auto; }
.contrato-dashboard .contrato-expandido .contrato-assinatura { height:auto; }
.contrato-dashboard .contrato-assinatura-conteudo { min-height:0; overflow-y:auto; scrollbar-width:thin; scrollbar-color:#526576 transparent; }
.contrato-dashboard .contrato-via { display:inline-flex; align-items:center; gap:.3rem; padding:.4rem .5rem; border:1px solid #286296; border-radius:.4rem; color:var(--contrato-blue); font-size:.65rem; white-space:nowrap; }
.contrato-dashboard .contrato-via .fi-icon { width:.9rem; height:.9rem; }
.contrato-dashboard .contrato-provider-card { padding:.85rem; border:1px solid var(--app-border); border-radius:.6rem; background:var(--app-subtle); }
.dark .contrato-dashboard .contrato-provider-card { border-color:#123046; background:#051624; }
.contrato-dashboard .contrato-provider-cabecalho { display:flex; align-items:center; flex-wrap:wrap; gap:.65rem; }
.contrato-dashboard .contrato-provider-cabecalho h3 { font-size:.9rem; }
.contrato-dashboard .contrato-provider-cabecalho p { font-size:.65rem; }
.contrato-dashboard .contrato-provider-cabecalho .fi-btn { margin-left:auto; font-size:.65rem; }
.contrato-dashboard .contrato-provider { margin-top:1rem; font-size:.72rem; }
.contrato-dashboard .contrato-provider > div { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:center; gap:.65rem; padding:.65rem 0; border-bottom:1px solid #6e9bc31a; }
.contrato-dashboard .contrato-provider > div:last-child { border:0; padding-bottom:0; }
.contrato-dashboard .contrato-provider dt { color:var(--app-secondary); }
.contrato-dashboard .contrato-provider dd { text-align:right; min-width:0; }
.contrato-dashboard .contrato-provider .fi-badge { display:inline-flex; }
.contrato-dashboard .contrato-provider a { display:flex; justify-content:flex-end; align-items:center; gap:.4rem; color:var(--contrato-blue); word-break:break-all; }
.contrato-dashboard .contrato-signatarios-titulo { font-size:.9rem; margin:1.25rem 0 .75rem; }
.contrato-dashboard .contrato-signatarios-titulo span { color:var(--app-secondary); font-weight:400; }
.contrato-dashboard .contrato-signatarios { display:grid; gap:.65rem; }
.contrato-dashboard .contrato-signatario { display:flex; align-items:flex-start; gap:.7rem; padding:.85rem; border:1px solid var(--app-border); border-radius:.6rem; }
.dark .contrato-dashboard .contrato-signatario { background:linear-gradient(120deg,#081b2b,#051624); border-color:#163349; }
.contrato-dashboard .contrato-avatar { display:flex; align-items:center; justify-content:center; flex:0 0 2.6rem; height:2.6rem; border-radius:50%; background:linear-gradient(140deg,#37a3ff,#0062d9); color:white; font-size:.85rem; font-weight:600; box-shadow:inset 0 2px 4px #ffffff24; }
.contrato-dashboard [data-tone="success"] .contrato-avatar { background:linear-gradient(135deg,#08d087,#008d5b); }
.contrato-dashboard [data-tone="danger"] .contrato-avatar { background:linear-gradient(135deg,#ef6579,#b42c49); }
.contrato-dashboard [data-tone="gray"] .contrato-avatar { background:linear-gradient(135deg,#858ba5,#4d536d); }
.contrato-dashboard .contrato-signatario-dados { flex:1; min-width:0; }
.contrato-dashboard .contrato-signatario-topo { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:.5rem; }
.contrato-dashboard .contrato-signatario-topo > div { flex:1; min-width:100px; }
.contrato-dashboard .contrato-signatario strong { font-size:.76rem; }
.contrato-dashboard .contrato-signatario p { font-size:.7rem; margin-top:.2rem; }
.contrato-dashboard .contrato-signatario .fi-badge { font-size:.62rem; padding:.3rem .45rem; }
.contrato-dashboard .contrato-signatario .fi-badge .fi-icon { width:.8rem; height:.8rem; }
.contrato-dashboard .contrato-contato,.contrato-dashboard .contrato-signatario-datas p { display:flex; align-items:center; gap:.45rem; }
.contrato-dashboard .contrato-contato { margin-top:.4rem !important; }
.contrato-dashboard .contrato-signatario-datas { display:grid; gap:.15rem; margin-top:.4rem; }
.contrato-dashboard .contrato-signatario-datas p { justify-content:flex-end; font-size:.64rem; }
.contrato-dashboard .contrato-signatario-datas .fi-icon { width:.85rem; height:.85rem; }
.contrato-dashboard .contrato-vazio { display:flex; flex-direction:column; align-items:center; text-align:center; gap:1rem; border:1px solid var(--app-border); border-radius:.6rem; padding:2rem 1rem; background:var(--app-subtle); }
.dark .contrato-dashboard .contrato-vazio { background:radial-gradient(ellipse at top,#0c2840,#061725 80%); border-color:#143247; }
.contrato-dashboard .contrato-envio-vazio { min-height:275px; justify-content:center; }
.contrato-dashboard .contrato-envio-vazio > .contrato-icone { width:3.5rem; height:3.5rem; flex-basis:3.5rem; }
.contrato-dashboard .contrato-vazio strong { max-width:240px; }
.contrato-dashboard .contrato-signatarios-vazio { min-height:165px; border-style:dashed; justify-content:center; }
.contrato-dashboard .contrato-historico { padding:1rem 1.4rem 1.6rem; }
.contrato-dashboard .contrato-contagem-eventos { font-size:.75rem; color:var(--app-secondary); }
.contrato-dashboard .contrato-timeline { display:flex; margin:1.25rem 0 0; padding:0 0 .25rem; list-style:none; overflow-x:auto; scrollbar-width:thin; }
.contrato-dashboard .contrato-timeline li { position:relative; flex:1 0 175px; min-width:0; padding-right:1.4rem; }
.contrato-dashboard .contrato-timeline li:only-child { flex:0 1 230px; }
.contrato-dashboard .contrato-timeline li:not(:last-child)::after { content:""; position:absolute; top:21px; left:42px; width:calc(100% - 42px); height:2px; background:linear-gradient(90deg,#2f9eff,#26496a); }
.contrato-dashboard .contrato-evento-marcador { position:relative; z-index:1; display:flex; align-items:center; justify-content:center; width:44px; height:44px; border:2px solid var(--contrato-blue); border-radius:50%; color:var(--contrato-blue); background:var(--app-surface); box-shadow:inset 0 0 0 4px var(--app-subtle); }
.dark .contrato-dashboard .contrato-evento-marcador { background:#08243a; box-shadow:inset 0 0 0 4px #061824; }
.contrato-dashboard .contrato-evento-marcador .fi-icon { width:1.45rem; height:1.45rem; }
.contrato-dashboard [data-tone="success"] .contrato-evento-marcador { color:var(--contrato-green); border-color:var(--contrato-green); }
.contrato-dashboard [data-tone="danger"] .contrato-evento-marcador { color:var(--contrato-red); border-color:var(--contrato-red); }
.contrato-dashboard [data-tone="gray"] .contrato-evento-marcador { color:#94a3b8; border-color:#94a3b8; }
.contrato-dashboard .contrato-evento-texto { padding-top:.85rem; }
.contrato-dashboard .contrato-evento-texto strong { display:block; font-size:.8rem; margin-bottom:.45rem; }
.contrato-dashboard .contrato-evento-texto p { font-size:.75rem; margin-top:.2rem; }
/* Native relation manager tabs keep their behavior, scoped to this page only. */
.fi-page:has(.contrato-dashboard) .fi-sc-tabs > .fi-tabs { border-bottom:1px solid var(--app-border); border-radius:0; padding:0; gap:.35rem; background:transparent; }
.fi-page:has(.contrato-dashboard) .fi-sc-tabs > .fi-tabs .fi-tabs-item { padding:.9rem 1.2rem; border-radius:.55rem .55rem 0 0; border-bottom:2px solid transparent; }
.fi-page:has(.contrato-dashboard) .fi-sc-tabs > .fi-tabs .fi-tabs-item.fi-active { border-bottom-color:var(--dash-accent); background:var(--app-subtle); }
@media (min-width:1600px) { .contrato-dashboard .contrato-resumo { padding:1.3rem; min-height:180px; } }
@media (max-width:1199px) { .contrato-dashboard .contrato-resumos { grid-template-columns:repeat(3,minmax(0,1fr)); } .contrato-dashboard .contrato-colunas { grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); } .contrato-dashboard .contrato-cabecalho { flex-wrap:wrap; } }
@media (max-width:900px) { .contrato-dashboard .contrato-colunas { grid-template-columns:minmax(0,1fr); } .contrato-dashboard .contrato-visualizacao { height:720px; } .contrato-dashboard .contrato-assinatura { height:auto; } .contrato-dashboard .contrato-assinatura-conteudo { overflow:visible; } .contrato-dashboard .contrato-timeline { flex-direction:column; overflow:visible; } .contrato-dashboard .contrato-timeline li,.contrato-dashboard .contrato-timeline li:only-child { display:flex; flex:none; gap:1rem; padding:0 0 1.6rem; } .contrato-dashboard .contrato-evento-marcador { flex:0 0 44px; } .contrato-dashboard .contrato-evento-texto { padding-top:.25rem; } .contrato-dashboard .contrato-timeline li:not(:last-child)::after { top:44px; left:21px; width:2px; height:calc(100% - 44px); } }
@media (max-width:600px) { .contrato-dashboard .contrato-resumos { grid-template-columns:minmax(0,1fr); } .contrato-dashboard .contrato-resumo { min-height:150px; } .contrato-dashboard .contrato-visualizacao { height:650px; } .contrato-dashboard .contrato-leitura { padding:.6rem; } .contrato-dashboard .contrato-leitura .contrato-folha { padding:1.25rem 1rem; } .contrato-dashboard .contrato-cabecalho h2 { font-size:.8rem; } .contrato-dashboard .contrato-provider-cabecalho .fi-btn { margin-left:0; } }
/* Keep long real labels readable and percentages on one line. */
.contrato-dashboard .contrato-status-principal { max-width:100%; }
.contrato-dashboard .contrato-status-principal .fi-badge { white-space:normal; text-align:left; }
.contrato-dashboard .contrato-status-principal .fi-badge-label { white-space:normal; overflow:visible; text-overflow:clip; }
.contrato-dashboard .contrato-progresso > span { flex-shrink:0; white-space:nowrap; }
.contrato-dashboard .contrato-signatario[data-tone="success"] .fi-badge { background:#043a2b; color:#36e69e; border-color:#0c6443; }
.contrato-dashboard .contrato-signatario[data-tone="warning"] .fi-badge { background:#3b310e; color:#ffce3b; border-color:#6d5519; }
.contrato-dashboard .contrato-signatario[data-tone="danger"] .fi-badge { background:#451c29; color:#ff8da0; border-color:#733043; }
.contrato-dashboard .contrato-signatario[data-tone="info"] .fi-badge { background:#103858; color:#8cccff; border-color:#205580; }
.contrato-dashboard .contrato-signatario[data-tone="gray"] .fi-badge { background:#263446; color:#cfdaeb; border-color:#3e5066; }
.fi-page:has(.contrato-dashboard) .fi-sc-tabs > .fi-tabs { margin-inline:0; width:100%; justify-content:flex-start; }

.contrato-dashboard :is(.contrato-status-principal,.contrato-provider-card)[data-status="assinado"] .fi-badge { background:#043a2b; color:#36e69e; }
.contrato-dashboard :is(.contrato-status-principal,.contrato-provider-card):is([data-status="recusado"],[data-status="erro"]) .fi-badge { background:#451c29; color:#ff8da0; }
.contrato-dashboard .contrato-provider-card:is([data-status="em_assinatura"],[data-status="aguardando_assinatura"],[data-status="parcialmente_assinado"]) .fi-badge { background:#ffd044; color:#292009; }
@media (min-width:901px) and (max-width:1199px) {
    .contrato-dashboard .contrato-timeline { flex-direction:column; overflow:visible; }
    .contrato-dashboard .contrato-timeline li,.contrato-dashboard .contrato-timeline li:only-child { display:flex; flex:none; gap:1rem; padding:0 0 1.6rem; }
    .contrato-dashboard .contrato-evento-marcador { flex:0 0 44px; }
    .contrato-dashboard .contrato-evento-texto { padding-top:.25rem; }
    .contrato-dashboard .contrato-timeline li:not(:last-child)::after { top:44px; left:21px; width:2px; height:calc(100% - 44px); }
}
/*
 * Header da página do contrato: o .fi-header do Filament deixa as ações
 * com flex-shrink:0, então com 4+ botões o título é que encolhia até
 * quebrar palavra por palavra. Aqui o título tem largura mínima garantida
 * e as ações quebram para a linha de baixo, alinhadas à direita.
 */
.fi-main:has(.contrato-dashboard) .fi-header { flex-wrap:wrap; align-items:flex-end; row-gap:1rem; }
.fi-main:has(.contrato-dashboard) .fi-header > div:first-child { flex:1 1 30rem; min-width:min(100%,30rem); }
.fi-main:has(.contrato-dashboard) .fi-breadcrumbs-item-label { white-space:nowrap; }
.fi-main:has(.contrato-dashboard) .fi-header-actions-ctn { flex:0 1 auto; min-width:0; max-width:100%; margin-top:0; margin-left:auto; }
.fi-main:has(.contrato-dashboard) .fi-header-actions-ctn > .fi-ac { flex-wrap:wrap; justify-content:flex-end; }
@media (max-width:639px) {
    .fi-main:has(.contrato-dashboard) .fi-header-actions-ctn { width:100%; margin-left:0; }
    .fi-main:has(.contrato-dashboard) .fi-header-actions-ctn > .fi-ac { display:grid; grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr)); }
}
