/* Diário Oficial feito no site: formulário do painel (.cces-dsite*) e leitura pública dos atos (.dsite-*). */

/* ---------- formulário ---------- */
.cces-dsite .cces-dsite-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px 18px; margin: 0 0 14px; }
.cces-dsite .cces-dsite-grid .is-wide { grid-column: 1 / -1; }
.cces-dsite [data-signer-other][hidden] { display: none; }
.cces-dsite .cces-dsite-model { max-width: 320px; margin: 0 0 10px; }
.cces-dsite .cces-dsite-model[hidden] { display: none; }
.cces-dsite .cces-gestao-field small { display: block; margin-top: 4px; color: var(--cces-muted, #56685b); font-size: 14px; }
.cces-dsite .cces-dsite-label { display: block; margin: 0 0 6px; font-size: 16px; }
.cces-dsite .cces-dsite-label small { display: inline; font-weight: 400; color: var(--cces-muted, #56685b); }

/* campos do formulário (rótulo em cima, campo inteiro, letras legíveis) */
.cces-dsite .cces-gestao-field label { display: grid; gap: 6px; margin: 0; font-size: 16px; line-height: 1.35; color: #18362a; }
.cces-dsite .cces-gestao-field input[type="text"],
.cces-dsite .cces-gestao-field input[type="date"],
.cces-dsite .cces-gestao-field textarea { width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid #8aa493; border-radius: 14px; background: #fff; color: #18362a; font: 400 17px/1.4 var(--cces-font-body, "Source Sans 3", sans-serif); }
.cces-dsite .cces-gestao-field textarea { min-height: 72px; resize: vertical; }
.cces-dsite .cces-gestao-field select { width: 100%; min-height: 48px; }
.cces-dsite .cces-gestao-field input:focus, .cces-dsite .cces-gestao-field textarea:focus { outline: 3px solid #1c8a55; outline-offset: 0; border-color: #007a2e; }
.cces-dsite .cces-dsite-act { padding: 18px 20px 14px; border-radius: 22px; }
.cces-dsite .cces-dsite-act legend { font-size: 18px; }

.cces-dsite-editor { margin: 0 0 16px; }
.cces-dsite-toolbar { display: flex; flex-wrap: wrap; gap: 4px; padding: 8px; background: #f2f8f3; border: 1px solid #cfe2d3; border-bottom: 0; border-radius: 14px 14px 0 0; }
.cces-dsite-toolbar button { min-width: 40px; min-height: 40px; padding: 0 12px; border: 1px solid transparent; border-radius: 10px; background: #fff; color: #18362a; font: 600 15px/1 var(--cces-font-body, "Source Sans 3", sans-serif); cursor: pointer; box-shadow: 0 1px 0 rgba(6, 67, 44, .08); }
.cces-dsite-toolbar button:hover { border-color: #007a2e; background: #f7fff0; }
.cces-dsite-toolbar button:focus-visible { outline: 3px solid #1c8a55; outline-offset: 1px; }
.cces-dsite-sep { width: 1px; margin: 4px 6px; background: #cfe2d3; }
.cces-dsite-area { min-height: 220px; max-height: 70vh; overflow: auto; padding: 18px 22px; background: #fff; border: 1px solid #cfe2d3; border-radius: 0 0 14px 14px; font: 400 18px/1.6 var(--cces-font-body, "Source Sans 3", sans-serif); color: #18362a; text-align: justify; }
.cces-dsite-area:focus { outline: 3px solid #1c8a55; outline-offset: 0; border-color: #007a2e; }
.cces-dsite-area p { margin: 0 0 .85em; }
.cces-dsite-area ul, .cces-dsite-area ol { margin: 0 0 .85em 1.4em; padding: 0; }
.cces-dsite-area table { width: 100%; border-collapse: collapse; margin: 0 0 .85em; font-size: 16px; }
.cces-dsite-area th, .cces-dsite-area td { border: 1px solid #8aa493; padding: 6px 8px; vertical-align: top; }
.cces-dsite-area th { background: #eaf3ec; }
.cces-dsite-tablepop { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; padding: 10px 12px; background: #fff; border: 1px solid #cfe2d3; border-top: 0; }
.cces-dsite-tablepop label { display: grid; gap: 4px; font-size: 15px; font-weight: 600; }
.cces-dsite-tablepop input { width: 84px; min-height: 40px; padding: 0 8px; border: 1px solid #8aa493; border-radius: 8px; font-size: 16px; }
.cces-dsite-tablepop button { min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid #007a2e; background: #fff; color: #007a2e; font-weight: 700; cursor: pointer; }
.cces-dsite-tablepop button.is-ok { background: #0a5c38; color: #fff; border-color: #0a5c38; }
.cces-dsite-preview { min-height: 48px; padding: 0 22px; border-radius: 999px; border: 2px solid #007a2e; background: #fff; color: #007a2e; font: 700 16px/1 var(--cces-font-display, Montserrat, sans-serif); cursor: pointer; }
.cces-dsite-preview:hover { background: #f2f8f3; }
.cces-diario-merge-status.is-error { color: #b42318; font-weight: 700; }
.cces-dsite .cces-diario-publish { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
@media (max-width: 700px) { .cces-dsite .cces-dsite-grid { grid-template-columns: 1fr; } .cces-dsite-area { padding: 14px; font-size: 17px; } }

/* ---------- leitura pública do ato ---------- */
.dsite-act { background: #fff; border: 1px solid #d9e8dd; border-radius: var(--cces-frame, 28px); padding: clamp(22px, 4vw, 44px); box-shadow: 0 10px 30px rgba(6, 67, 44, .06); scroll-margin-top: calc(var(--cces-header-h, 96px) + var(--cces-adminbar-h, 0px) + 18px); }
.dsite-act + .dsite-act { margin-top: 24px; }
.dsite-act-head { text-align: center; margin: 0 0 22px; }
.dsite-act-section { display: inline-block; margin: 0 0 12px; padding: 4px 14px; border-radius: 999px; background: #06432c; color: #fff; font: 700 13px/1.4 var(--cces-font-display, Montserrat, sans-serif); letter-spacing: .08em; text-transform: uppercase; }
.dsite-act-head h2, .dsite-act-head h3 { margin: 0; font: 800 clamp(20px, 2.6vw, 26px)/1.25 var(--cces-font-display, Montserrat, sans-serif); text-transform: uppercase; color: #18362a; }
.dsite-act-head h2::after, .dsite-act-head h3::after { content: ""; display: block; width: 56px; height: 4px; margin: 12px auto 0; border-radius: 4px; background: #89ff00; }
.dsite-act-ementa { margin: 18px 0 0 auto; max-width: 52%; text-align: left; font: 600 17px/1.5 var(--cces-font-body, "Source Sans 3", sans-serif); text-transform: uppercase; color: #18362a; }
.dsite-act-body { font: 400 18px/1.7 var(--cces-font-body, "Source Sans 3", sans-serif); color: #18362a; text-align: justify; hyphens: auto; }
.dsite-act-body p { margin: 0 0 1em; }
.dsite-act-body ul, .dsite-act-body ol { margin: 0 0 1em 1.4em; padding: 0; }
.dsite-act-body table { width: 100%; border-collapse: collapse; margin: 0 0 1em; font-size: 16px; display: block; overflow-x: auto; }
.dsite-act-body th, .dsite-act-body td { border: 1px solid #8aa493; padding: 6px 10px; vertical-align: top; }
.dsite-act-body th { background: #eaf3ec; }
.dsite-act-fecho { margin: 22px 0 0; text-align: center; font: 700 16px/1.5 var(--cces-font-body, "Source Sans 3", sans-serif); text-transform: uppercase; letter-spacing: .02em; color: #18362a; }
.dsite-act-sign { display: grid; justify-items: center; gap: 2px; margin: 18px 0 0; text-align: center; }
.dsite-act-sign img { max-height: 76px; max-width: 260px; width: auto; height: auto; }
/* a assinatura desce sobre a linha e o nome, como no papel assinado (imagem com fundo transparente, por cima do texto) */
.dsite-act .dsite-act-sign img { position: relative; z-index: 1; margin-bottom: -22px; border-radius: 0; }
.dsite-act-sign strong { padding-top: 6px; border-top: 1px solid #8aa493; min-width: min(300px, 90%); font: 700 15px/1.4 var(--cces-font-display, Montserrat, sans-serif); text-transform: uppercase; color: #18362a; }
.dsite-act-sign span { color: #56685b; font-size: 16px; }
@media (max-width: 700px) { .dsite-act-ementa { max-width: 100%; } .dsite-act-body { text-align: left; } }

/* ---------- conferência de autenticidade ---------- */
.dsite-verify { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 12px 28px; align-items: center; margin: 0 0 28px; padding: 22px 26px; background: #f4f9f4; border: 1px solid #d9e8dd; border-left: 6px solid #89ff00; border-radius: 22px; }
.dsite-verify h2 { margin: 0 0 4px; font: 800 20px/1.25 var(--cces-font-display, Montserrat, sans-serif); color: #18362a; }
.dsite-verify p { margin: 0; color: #3b5446; font-size: 17px; }
.dsite-verify form { display: flex; gap: 10px; flex-wrap: wrap; }
.dsite-verify input[type="text"] { flex: 1 1 200px; min-height: 48px; padding: 0 16px; border: 1px solid #8aa493; border-radius: 999px; background: #fff; font: 700 18px/1 var(--cces-font-display, Montserrat, sans-serif); letter-spacing: .06em; text-transform: uppercase; }
.dsite-verify-result { grid-column: 1 / -1; padding: 12px 16px; border-radius: 14px; background: #fff; }
.dsite-verify-result.is-ok { border: 1px solid #00a63a; }
.dsite-verify-result.is-bad { border: 1px solid #b42318; color: #7a1a12; }
@media (max-width: 800px) { .dsite-verify { grid-template-columns: 1fr; } }

/* ---------- página da edição (modo leitura) ---------- */
.edition-reading .dsite-act { margin-top: 22px; }
.edition-pdf-details { margin-top: 28px; border: 1px solid #d9e8dd; border-radius: 22px; background: #f4f9f4; overflow: hidden; }
.edition-pdf-details summary { cursor: pointer; padding: 16px 22px; font: 700 17px/1.3 var(--cces-font-display, Montserrat, sans-serif); color: #06432c; }
.edition-pdf-details summary:focus-visible { outline: 3px solid #1c8a55; outline-offset: -3px; }
.edition-pdf-details .edition-pdf { display: block; width: 100%; min-height: 760px; border: 0; background: #fff; }

/* quadro "PDF assinado digitalmente" (edição) */
.cces-dsite-signed { margin: 1.6rem 0 0; padding: 1.1rem 1.3rem 1.3rem; border: 2px dashed #bcd3c1; border-radius: 22px; background: #f7fbf7; }
.cces-dsite-signed h4 { margin: 0 0 .4rem; font: 800 1.1rem/1.3 var(--cces-font-display, Montserrat, sans-serif); color: #18362a; }
.cces-dsite-signed p { margin: 0 0 .8rem; color: #3b5446; font-size: 1rem; line-height: 1.55; }
.cces-dsite-signed-state { padding: .5rem .8rem; border-radius: 12px; background: #e0f6e6; color: #0b5a2b !important; font-weight: 700; }
.cces-dsite-signed-row { display: flex; flex-wrap: wrap; align-items: end; gap: .8rem 1.2rem; margin: 0 0 .8rem; }
.cces-dsite-signed-file { display: grid; gap: .3rem; font-weight: 700; }
.cces-dsite-signed-confirm { display: flex; align-items: center; gap: .6rem; margin: 0 0 .9rem; font-size: .95rem; }
.cces-dsite-signed-confirm input { width: 20px; height: 20px; accent-color: #007a2e; }

/* ---------- Diário com várias pessoas publicando: telas do painel (última edição, acrescentar, alterar ato) ---------- */
.cces-app .dsc { display: grid; gap: 1.1rem; }
.cces-app .dsc > * { margin-top: 0; margin-bottom: 0; }
.cces-app .dsc ul > li::before { content: none; }
.cces-app .dsc-card { padding: 1.2rem 1.3rem; border: 1px solid #d9e8dd; border-radius: 22px 44px 22px 22px; background: #fff; box-shadow: 0 10px 26px rgba(14, 54, 28, .07); }
.cces-app .dsc-card > header { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: .8rem 1.4rem; }
.cces-app .dsc-card h4 { margin: .4rem 0 .15rem; font-family: var(--cces-font-display, inherit); font-size: 1.4rem; line-height: 1.2; color: #06432c; }
.cces-app .dsc-card > header p { margin: 0; color: #44564b; font-size: 1rem; }
.cces-app .dsc-chip { display: inline-block; padding: .2rem .75rem; border-radius: 999px; font-size: .875rem; font-weight: 800; }
.cces-app .dsc-chip.is-today { background: #e2f2e7; color: #06432c; }
.cces-app .dsc-chip.is-old { background: #eef1ef; color: #44564b; }
.cces-app .dsc-card-links { display: flex; flex-wrap: wrap; gap: .4rem 1.1rem; }
.cces-app .dsc-card-links a, .cces-app a.dsc-link { color: #0a5c38; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.cces-app .dsc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1.1rem; margin-top: 1rem; }
.cces-app .dsc-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: .4rem 1.25rem; border: 2px solid #0a5c38; border-radius: 999px; background: #0a5c38; color: #fff; font: inherit; font-size: 1rem; font-weight: 700; text-decoration: none; cursor: pointer; }
.cces-app a.dsc-btn { color: #fff; }
.cces-app .dsc-btn:hover { background: #07482c; border-color: #07482c; color: #fff; }
.cces-app .dsc-btn.is-ghost, .cces-app a.dsc-btn.is-ghost { background: #fff; color: #0a5c38; }
.cces-app .dsc-btn.is-ghost:hover { background: #e2f2e7; color: #06432c; }
.cces-app .dsc-btn:focus-visible, .cces-app a.dsc-link:focus-visible { outline: 3px solid #1c8a55; outline-offset: 2px; }
.cces-app .dsc-hint { margin: .8rem 0 0; color: #44564b; font-size: .95rem; }

.cces-app .dsc-table th { font-family: var(--cces-font-body, inherit); }
.cces-app .dsc-table tr.dsc-section th { padding: .75rem 1rem; background: #eef6f0; color: #06432c; font-family: var(--cces-font-display, inherit); font-size: 1.02rem; text-align: left; }
.cces-app .dsc-table tr.dsc-section small { display: block; margin-top: .1rem; color: #44564b; font-family: var(--cces-font-body, inherit); font-size: .9rem; font-weight: 600; }
.cces-app .dsc-ementa { display: block; margin-top: .15rem; color: #44564b; font-size: .95rem; font-weight: 400; line-height: 1.4; }
.cces-app .dsc-person { display: flex; align-items: center; gap: .6rem; }
.cces-app .dsc-person img { flex: none; width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }
.cces-app .dsc-person small { display: block; color: #56685b; font-size: .875rem; }
.cces-app .dsc-person em { color: #56685b; font-style: normal; font-weight: 600; }
.cces-app .dsc-lock { color: #56685b; font-size: .9rem; font-weight: 600; }

.cces-app .dsc-alerts { display: grid; gap: .7rem; }
.cces-app .dsc-alert { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .7rem 1.2rem; padding: .9rem 1.1rem; border: 1px solid #f0d58a; border-left: 6px solid #d9a400; border-radius: 14px; background: #fff9e6; }
.cces-app .dsc-alert p { margin: .15rem 0 0; color: #44564b; font-size: .95rem; }
.cces-app .dsc-alert-actions { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
.cces-app .dsc-alert-actions a { color: #0a5c38; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.cces-app .dsc-alert-actions a.is-ok { padding: .35rem 1rem; border: 2px solid #0a5c38; border-radius: 999px; background: #fff; text-decoration: none; }

.cces-app .dsc-live { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1rem; padding: .85rem 1.1rem; border: 1px solid #bfdcc9; border-left: 6px solid #0a5c38; border-radius: 14px; background: #eef7f1; }
.cces-app .dsc-live[hidden], .cces-app .dsc-presence[hidden], .cces-app .dsc-existing[hidden], .cces-app .cces-dsc-dup[hidden] { display: none; }
.cces-app .dsc-live.is-warn { border-color: #f0d58a; border-left-color: #d9a400; background: #fff9e6; }
.cces-app .dsc-live-text { flex: 1 1 18rem; }
.cces-app .dsc-live-text p { margin: 0 0 .25rem; font-size: 1rem; line-height: 1.45; }
.cces-app .dsc-live-text p:last-child { margin-bottom: 0; }
.cces-app .dsc-live-link { color: #0a5c38; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.cces-app .dsc-live-close { padding: .35rem 1rem; border: 2px solid #0a5c38; border-radius: 999px; background: #fff; color: #0a5c38; font: inherit; font-size: .95rem; font-weight: 700; cursor: pointer; }
.cces-app .dsc-presence { display: flex; align-items: center; gap: .6rem; margin: .8rem 0 0; padding: .55rem 1rem; border-radius: 999px; background: #e2f2e7; color: #06432c; font-size: 1rem; font-weight: 700; }
.cces-app .dsc-dot { flex: none; width: 10px; height: 10px; border-radius: 50%; background: #1c8a55; box-shadow: 0 0 0 0 rgba(28, 138, 85, .5); animation: dscPulse 1.8s ease-out infinite; }
@keyframes dscPulse { 70% { box-shadow: 0 0 0 9px rgba(28, 138, 85, 0); } 100% { box-shadow: 0 0 0 0 rgba(28, 138, 85, 0); } }
@media (prefers-reduced-motion: reduce) { .cces-app .dsc-dot { animation: none; } }

.cces-app .dsc-cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.4rem; }
@media (min-width: 1280px) { .cces-app .dsc-cols { grid-template-columns: minmax(0, 1fr) 290px; align-items: start; } }
.cces-app .dsc-side { padding: 1rem 1.1rem; border: 1px solid #d9e8dd; border-radius: 18px; background: #fff; }
@media (min-width: 1280px) { .cces-app .dsc-side { position: sticky; top: calc(var(--cces-adminbar-h, 0px) + 14px); max-height: calc(100vh - var(--cces-adminbar-h, 0px) - 28px); overflow-y: auto; } }
.cces-app .dsc-side h4 { margin: 0 0 .5rem; font-family: var(--cces-font-display, inherit); font-size: 1.05rem; color: #06432c; }
.cces-app .dsc-side ul { margin: 0; padding: 0; list-style: none; }
.cces-app .dsc-side li { padding: .6rem 0; border-top: 1px solid #e5eee7; }
.cces-app .dsc-side li strong { display: block; font-size: .98rem; line-height: 1.3; }
.cces-app .dsc-side li small, .cces-app .dsc-side-empty { color: #56685b; font-size: .9rem; }
.cces-app .dsc-existing { margin: 0 0 1rem; padding: .8rem 1rem; border-left: 6px solid #0a5c38; border-radius: 14px; background: #eef7f1; font-weight: 600; }
.cces-app .dsc-existing .dsc-btn { margin-left: .5rem; min-height: 40px; }
.cces-app .cces-dsc-dup { margin: .8rem 0; padding: .7rem .9rem; border-left: 6px solid #d9a400; border-radius: 12px; background: #fff3d6; font-weight: 600; }
.cces-app .cces-dsc-dup label { display: flex; align-items: center; gap: .5rem; margin-top: .4rem; font-weight: 700; }
.cces-app .cces-dsc-dup input { width: 20px; height: 20px; accent-color: #0a5c38; }

.cces-app .dsc-others h4, .cces-app .dsc-history h4 { margin: 0 0 .6rem; font-family: var(--cces-font-display, inherit); font-size: 1.1rem; color: #06432c; }
.cces-app .dsc-admin { padding: .3rem 1.1rem; border: 1px solid #d9e8dd; border-radius: 16px; background: #fff; }
.cces-app .dsc-admin summary { padding: .7rem 0; color: #06432c; font-weight: 800; cursor: pointer; }
.cces-app .dsc-admin-body { display: grid; gap: 1.1rem; padding: .3rem 0 1.1rem; }
.cces-app .dsc-admin-body h5 { margin: 0 0 .3rem; font-size: 1rem; color: #06432c; }
.cces-app .dsc-admin-body p { margin: 0 0 .5rem; color: #44564b; font-size: .95rem; }
.cces-app .dsc-admin-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .8rem; }
.cces-app .dsc-admin-row label { display: grid; gap: .25rem; font-weight: 700; }
.cces-app .dsc-log { margin: .3rem 0 0; padding-left: 1.2rem; font-size: .95rem; }
.cces-app .dsc-log li { margin: .25rem 0; }
.cces-app .dsc-log time { color: #56685b; }
.cces-app .dsc-admin-danger { margin: 0; }
.cces-app .dsc-admin-danger a.is-danger, .cces-app a.is-danger { color: #a4262c; font-weight: 700; }

/* na página pública da edição: atualizações depois da primeira publicação (sem nomes de servidores) */
.dsite-updates { margin: 1.2rem 0; padding: 1rem 1.2rem; border: 1px solid #d9e8dd; border-left: 6px solid #0a5c38; border-radius: 14px; background: #f4faf6; font-size: 1rem; line-height: 1.5; }
.dsite-updates ul { margin: .5rem 0 .4rem 1.2rem; padding: 0; }
.dsite-updates p { margin: .3rem 0 0; color: #44564b; font-size: .95rem; }

/* tela do Diário: uma porta de entrada e lista de edições com resumo dos atos */
.cces-app .dsc-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1.2rem; }
.cces-app .dsc-toolbar span { color: #44564b; font-size: .98rem; }
.cces-app .dsc-others-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .3rem 1rem; margin-bottom: .6rem; }
.cces-app .dsc-others-head h4 { margin: 0; }
.cces-app .dsc-others-head p { margin: 0; color: #56685b; font-size: .95rem; }
.cces-app .dsc-list td { vertical-align: top; }
.cces-app .dsc-list .dsc-title-line { color: #2f4237; }

/* tabelas do Diário: não passam da largura da tela (ações quebram de linha, títulos longos quebram) */
.cces-app .dsc > * { min-width: 0; }
.cces-app .dsc .cces-gestao-table td { font-size: .95rem; overflow-wrap: anywhere; }
.cces-app .dsc .cces-gestao-table td.cces-gestao-actions { white-space: normal; }
.cces-app .dsc .cces-gestao-table td.cces-gestao-actions a { margin-right: .8rem; }
.cces-app .dsc-list th:nth-child(1) { width: 22%; }
.cces-app .dsc-list th:nth-child(2) { width: 38%; }
.cces-app .dsc-list th:nth-child(3) { width: 16%; }
.cces-app .dsc-list td:first-child { min-width: 0; }
.cces-app .dsc-list .cces-gestao-actions a { display: inline-block; }
.cces-app .dsc .cces-gestao-table td.cces-gestao-actions { min-width: 7.5rem; overflow-wrap: normal; word-break: normal; }
.cces-app .dsc .cces-gestao-table td.cces-gestao-actions a { display: inline-block; margin: 0 .8rem .3rem 0; }

/* o botão de tirar um ato do formulário só aparece quando há mais de um ato no formulário (o atributo hidden perdia para o display do botão) */
.cces-app .cces-diario-act-tools[hidden], .cces-diario-act-tools[hidden] { display: none; }

/* ---------- calendário de edições do Diário (2026-10-09) ---------- */
.cces-app .dsc-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 1.2rem; align-items: start; }
.cces-app .dsc-main { display: grid; gap: 1.1rem; min-width: 0; }
.cces-app .dsc-main > * { margin-top: 0; margin-bottom: 0; }
.cces-app .dsc-cal { position: sticky; top: calc(var(--cces-adminbar-h, 0px) + 14px); max-height: calc(100vh - var(--cces-adminbar-h, 0px) - 28px); overflow: auto; }
.cces-app .dsc-nav { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.cces-app .dsc-nav-btn { display: inline-flex; align-items: center; gap: .5rem; min-height: 40px; padding: .3rem .95rem; border: 2px solid #d4e3d9; border-radius: 999px; background: #fff; color: #0a5c38; font-size: .95rem; font-weight: 800; text-decoration: none; }
.cces-app .dsc-nav-btn small { color: #4d6256; font-size: .85rem; font-weight: 700; }
.cces-app a.dsc-nav-btn:hover, .cces-app a.dsc-nav-btn:focus-visible { border-color: #0a5c38; background: #e2f2e7; color: #06432c; }
.cces-app .dsc-nav-btn.is-off { opacity: .45; }
.cces-app .dsc-nav-btn.is-here { border-style: dashed; color: #4d6256; font-weight: 700; }
.cces-app .dsc-nav .is-next { margin-left: auto; }
.cces-app .dsc-cal-card { padding: 1rem 1rem 1.1rem; border: 1px solid #d9e8dd; border-radius: 22px 44px 22px 22px; background: #fff; box-shadow: 0 10px 26px rgba(14, 54, 28, .07); }
.cces-app .dsc-cal-card > header { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .6rem; }
.cces-app .dsc-cal-card h4 { margin: 0; color: #06432c; font-family: var(--cces-font-display, inherit); font-size: 1.1rem; line-height: 1.2; text-align: center; }
.cces-app a.dsc-cal-step { display: grid; flex: none; place-items: center; width: 38px; height: 38px; border: 2px solid #d4e3d9; border-radius: 50%; color: #0a5c38; font-size: 1.3rem; font-weight: 900; line-height: 1; text-decoration: none; }
.cces-app a.dsc-cal-step:hover, .cces-app a.dsc-cal-step:focus-visible { border-color: #0a5c38; background: #e2f2e7; }
.cces-app .dsc-cal-grid { width: 100%; margin: 0; border-collapse: separate; border-spacing: 2px; table-layout: fixed; }
.cces-app .dsc-cal-grid th { padding: .2rem 0; border: 0; background: none; color: #4d6256; font-family: var(--cces-font-body, inherit); font-size: .8rem; font-weight: 800; text-align: center; text-transform: none; }
.cces-app .dsc-cal-grid td { height: 38px; padding: 0; border: 0; text-align: center; }
.cces-app .dsc-cal-grid td > span, .cces-app .dsc-cal-grid td > a { position: relative; display: grid; place-items: center; width: 100%; max-width: 38px; height: 36px; margin: 0 auto; border-radius: 50%; color: #6f8176; font-size: .95rem; font-weight: 600; text-decoration: none; }
.cces-app .dsc-cal-grid td.has-ed > a { background: #0a5c38; color: #fff; font-weight: 800; }
.cces-app .dsc-cal-grid td.has-ed > a:hover, .cces-app .dsc-cal-grid td.has-ed > a:focus-visible { background: #07482c; }
.cces-app .dsc-cal-grid td.is-current > a { box-shadow: 0 0 0 3px #fff, 0 0 0 5px #89ff00, 0 0 0 7px #06432c; }
.cces-app .dsc-cal-grid td.is-today:not(.has-ed) > span { box-shadow: inset 0 0 0 2px #1c8a55; color: #0a5c38; font-weight: 800; }
.cces-app .dsc-cal-grid td.is-today.has-ed > a::after { position: absolute; bottom: 3px; left: 50%; width: 5px; height: 5px; margin-left: -2.5px; border-radius: 50%; background: #89ff00; content: ""; }
.cces-app .dsc-cal-grid sup { position: absolute; top: -3px; right: -3px; min-width: 15px; padding: 0 .2rem; border-radius: 999px; background: #89ff00; color: #06432c; font-size: .68rem; font-weight: 900; line-height: 15px; }
.cces-app .dsc-cal-legend { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; margin: .7rem 0 0; color: #4d6256; font-size: .85rem; }
.cces-app .dsc-cal-legend i { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: #0a5c38; }
.cces-app .dsc-cal-sum { margin: .5rem 0 0; color: #18362a; font-size: .95rem; font-weight: 700; }
.cces-app .dsc-cal-list { display: grid; gap: .3rem; margin: .6rem 0 0; padding: 0; list-style: none; }
.cces-app .dsc-cal-list li { margin: 0; }
.cces-app .dsc-cal-list a { display: grid; gap: .05rem; padding: .5rem .7rem; border: 1px solid #e1ece4; border-radius: 12px; color: #18362a; text-decoration: none; }
.cces-app .dsc-cal-list a:hover, .cces-app .dsc-cal-list a:focus-visible { border-color: #0a5c38; background: #f1faf3; }
.cces-app .dsc-cal-list li.is-current a { border-color: #0a5c38; background: #e2f2e7; }
.cces-app .dsc-cal-list b { color: #06432c; font-size: .95rem; }
.cces-app .dsc-cal-list span { color: #4d6256; font-size: .85rem; }
@media (max-width: 1100px) {
  .cces-app .dsc-layout { grid-template-columns: minmax(0, 1fr); }
  .cces-app .dsc-cal { position: static; max-height: none; overflow: visible; }
  .cces-app .dsc-cal-card { max-width: 420px; }
}
@media (max-width: 560px) {
  .cces-app .dsc-nav .is-next { margin-left: 0; }
  .cces-app .dsc-nav-btn { flex: 1 1 auto; justify-content: center; }
}
/* Resultado da conferência: primeira coisa da página quando há ?codigo= */
.dsite-verify { scroll-margin-top: 110px; }
.dsite-verify.has-result { box-shadow: 0 10px 30px rgba(10, 60, 40, .12); }
.dsite-verify-result { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 16px 20px; font-size: 17px; }
.dsite-verify-result strong { flex: 1 0 100%; font: 800 20px/1.3 var(--cces-font-display, Montserrat, sans-serif); }
.dsite-verify-result.is-ok strong { color: #0a5c38; }
.dsite-verify-result.is-ok { background: #eaf7ee; }
.dsite-verify-result.is-bad { background: #fdecea; }
.dsite-verify-result:focus { outline: 3px solid #1c8a55; outline-offset: 2px; }
.dsite-verify-what { flex: 1 1 260px; color: #24402f; }

/* ---- 0.35.0 anexo em PDF do ato (opcional): campo do formulário, quadro nas páginas públicas e marca na lista do painel ---- */
.cces-dsite-annex { margin: 16px 0 6px; padding: 14px 16px 12px; border: 2px dashed #bcd3c1; border-radius: 18px; background: #f7fbf7; }
.cces-dsite-annex.is-busy { border-color: #1c8a55; }
.cces-dsite-annex.is-removing .cces-dsite-annex-current a, .cces-dsite-annex.is-removing .cces-dsite-annex-current > span { text-decoration: line-through; color: #8a9a90; }
.cces-dsite-annex-head { display: grid; gap: 2px; margin: 0 0 10px; }
.cces-dsite-annex-head strong { color: #18362a; font: 800 16px/1.3 var(--cces-font-display, Montserrat, sans-serif); }
.cces-dsite-annex-head em { color: #56685b; font-style: normal; font-weight: 600; }
.cces-dsite-annex-head small { color: #3b5446; font-size: 14.5px; line-height: 1.45; }
.cces-dsite-annex-current { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 0 0 10px; padding: 8px 12px; border-radius: 12px; background: #e6f4ea; color: #18362a; font-size: 15px; }
.cces-dsite-annex-current.is-tmp { background: #e8f1fb; }
.cces-dsite-annex-current a { font-weight: 700; color: #0a5c38; overflow-wrap: anywhere; }
.cces-dsite-annex-current strong { overflow-wrap: anywhere; }
.cces-dsite-annex-current > span { color: #44564b; }
.cces-dsite-annex-remove { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; font-weight: 700; color: #a3261b; cursor: pointer; }
.cces-dsite-annex-remove input { width: 18px; height: 18px; accent-color: #a3261b; }
.cces-dsite-annex-pick { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.cces-dsite-annex-btn { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border: 2px solid #007a2e; border-radius: 999px; background: #fff; color: #007a2e; font: 700 14.5px/1 var(--cces-font-display, Montserrat, sans-serif); cursor: pointer; }
.cces-dsite-annex-btn:hover { background: #f2f8f3; }
.cces-dsite-annex-btn.is-ghost { border-color: transparent; color: #56685b; }
.cces-dsite-annex-btn.is-file { position: relative; overflow: hidden; }
.cces-dsite-annex-btn.is-file input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.cces-dsite-annex-btn.is-file:focus-within { outline: 3px solid #1c8a55; outline-offset: 2px; }
.cces-dsite-annex-current .cces-dsite-annex-btn { min-height: 34px; margin-left: auto; padding: 0 12px; border-color: #a3261b; color: #a3261b; font-size: 13.5px; }
.cces-dsite-annex-info { margin: 10px 0 0; padding: 8px 12px; border-radius: 12px; background: #fff; border: 1px solid #d9e8dd; color: #18362a; font-size: 15px; overflow-wrap: anywhere; }
.cces-dsite-annex-info.is-error { border-color: #f2c2bd; background: #fdecea; color: #8a1f15; }
.dsite-act-annex { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 22px 0 0; padding: 14px 18px; border: 1px solid #d9e8dd; border-left: 6px solid #89ff00; border-radius: 18px; background: #f4f9f4; }
.dsite-act-annex-ico { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 14px; background: #06432c; color: #89ff00; }
.dsite-act-annex-text { display: grid; gap: 2px; flex: 1 1 260px; min-width: 0; }
.dsite-act-annex-text strong { color: #18362a; font: 800 15px/1.3 var(--cces-font-display, Montserrat, sans-serif); text-transform: uppercase; letter-spacing: .02em; }
.dsite-act-annex-text span { color: #24402f; font-size: 16px; overflow-wrap: anywhere; }
.dsite-act-annex-text small { color: #56685b; font-size: 14px; line-height: 1.4; }
.dsite-act-annex-link { display: inline-flex; align-items: center; min-height: 42px; padding: 0 18px; border-radius: 999px; background: #0a5c38; color: #fff !important; font: 700 15px/1 var(--cces-font-display, Montserrat, sans-serif); text-decoration: none !important; }
.dsite-act-annex-link:hover, .dsite-act-annex-link:focus-visible { background: #07482c; }
.cces-app .dsc-annex { display: block; margin-top: .25rem; color: #44564b; font-size: .92rem; }
.cces-app .dsc-annex a { font-weight: 700; color: #0a5c38; }
@media print { .dsite-act-annex-link { display: none; } }
/* anexo em PDF: o botão "Escolher o PDF" é um <label>; as regras de label do formulário (display: grid/block, margem) venciam e o texto
   ficava no alto do botão (2026-10-14). Mais específica, com o texto centralizado nos dois eixos. */
.cces-dsite .cces-dsite-annex-pick label.cces-dsite-annex-btn, .cces-gestao-form .cces-dsite-annex-pick label.cces-dsite-annex-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0; min-height: 40px; margin: 0; padding: 0 18px; font-size: 14.5px; line-height: 1; }
.cces-dsite-annex-pick .cces-dsite-annex-btn > span { display: block; line-height: 1.2; }
.cces-dsite-annex-btn[hidden] { display: none; } /* "Desfazer a escolha" só aparece depois de escolher um PDF */
