/* Monitor DOU - Portarias Municipais por Estado
 * As cores do degradê e dos botões públicos vêm das variáveis
 * --mdg-cor-clara e --mdg-cor-escura, definidas inline no wrapper
 * conforme as configurações do plugin ou os atributos do shortcode. */

.mdg-admin-wrap *,
.mdg-public-wrap * { box-sizing: border-box; }

/* ───────────────────────── Admin ───────────────────────── */
.mdg-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
.mdg-card { background: #fff; border: 1px solid #dcdcde; border-radius: 14px; padding: 18px; box-shadow: 0 8px 24px rgba(0, 0, 0, .04); }
.mdg-full { margin-top: 18px; }
.mdg-card h2 { margin: 0 0 12px; font-size: 19px; }
.mdg-card label { display: block; font-weight: 700; margin-bottom: 6px; }
.mdg-card input[type=text],
.mdg-card input[type=number],
.mdg-card input[type=date],
.mdg-card select,
.mdg-filter-form input,
.mdg-filter-form select { width: 100%; max-width: 100%; border-radius: 8px; border: 1px solid #c3c4c7; padding: 7px 10px; }
.mdg-card input[type=color] { width: 100%; height: 38px; border-radius: 8px; border: 1px solid #c3c4c7; padding: 2px; cursor: pointer; }
.mdg-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.mdg-inline-form { display: inline-block; margin-right: 10px; }
.mdg-progress { height: 12px; background: #f0f0f1; border-radius: 999px; overflow: hidden; margin: 10px 0 14px; }
.mdg-progress span { display: block; height: 100%; background: #2271b1; }
.mdg-log { max-height: 180px; overflow: auto; background: #f6f7f7; border: 1px solid #dcdcde; border-radius: 8px; padding: 10px; }
.mdg-queue-item { border: 1px solid #e5e7eb; border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; background: #fafafa; }
.mdg-queue-item.is-current { background: #f0f6fc; border-color: #c5d9ed; }
.mdg-queue-item p { margin: 0 0 8px; }
.mdg-queue-item .mdg-progress { margin: 8px 0 10px; }
.mdg-queue-title { font-size: 13px; }
.mdg-filter-form { display: grid; grid-template-columns: 1.1fr 160px 160px 1.5fr auto auto; gap: 10px; align-items: center; margin-bottom: 14px; }

.mdg-table-responsive { overflow-x: auto; }
.mdg-table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid #dcdcde; border-radius: 12px; overflow: hidden; background: #fff; }
.mdg-table th { background: #f6f7f7; text-align: left; font-weight: 800; }
.mdg-table th, .mdg-table td { padding: 11px 12px; border-bottom: 1px solid #ececec; vertical-align: top; }
.mdg-table tr:last-child td { border-bottom: 0; }
.mdg-table small { display: block; color: #646970; margin-top: 3px; }
.mdg-badge { display: inline-flex; align-items: center; border-radius: 999px; background: #e8f3ff; color: #0b5797; padding: 4px 9px; font-weight: 700; font-size: 12px; white-space: nowrap; }
.mdg-badge-multi { white-space: normal; line-height: 1.5; text-align: left; padding: 8px 12px !important; border-radius: 20px !important; }
.mdg-link { display: inline-flex; text-decoration: none; background: #2271b1; color: #fff !important; border-radius: 8px; padding: 7px 10px; font-weight: 700; }
.mdg-delete-link { display: inline-flex; text-decoration: none; background: #b32d2e; color: #fff !important; border-radius: 8px; padding: 7px 10px; font-weight: 700; }
.mdg-delete-link:hover { background: #8a2424; color: #fff !important; }
.mdg-empty { background: #fff8e5; border: 1px solid #f0d98c; border-radius: 12px; padding: 16px; color: #5a4400; }

/* ───────────────────────── Público ───────────────────────── */
.mdg-public-wrap { font-family: inherit; --mdg-cor-clara: #0a56b9; --mdg-cor-escura: #021846; }

.mdg-public-hero { border-radius: 20px; background: linear-gradient(135deg, var(--mdg-cor-clara), var(--mdg-cor-escura)); color: #fff; padding: 26px; margin-bottom: 18px; }
.mdg-public-hero span { display: inline-flex; border: 1px solid rgba(255, 255, 255, .35); border-radius: 999px; padding: 5px 10px; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.mdg-public-hero h2 { color: #fff; margin: 12px 0 8px; font-size: clamp(22px, 3vw, 34px); }
.mdg-public-hero p { margin: 0; color: rgba(255, 255, 255, .9); }

.mdg-public-filter { display: grid; grid-template-columns: 1.2fr 150px 150px 1.4fr auto; gap: 10px; margin-bottom: 8px; background: #fff; border: 1px solid #e5e7eb; border-radius: 16px; padding: 14px; }
.mdg-public-filter input,
.mdg-public-filter select { width: 100%; border: 1px solid #d1d5db; border-radius: 10px; padding: 10px; margin-bottom: 0 !important; }
.mdg-public-filter button { border: 0; border-radius: 10px; background: var(--mdg-cor-clara); color: #fff; font-weight: 800; padding: 10px 16px; cursor: pointer; }
.mdg-public-filter button:hover { filter: brightness(.92); }

.mdg-filter-state { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin-bottom: 14px; min-height: 24px; }
.mdg-active-filters { font-size: 12px; color: #666; }
.mdg-active-filters strong { color: var(--mdg-cor-clara); }
.mdg-f-limpar { font-size: 12px; font-weight: 600; color: #888; border: 1.5px solid #d0dce8; border-radius: 5px; padding: 0 10px; height: 28px; line-height: 26px; background: #fff; cursor: pointer; transition: all .15s; white-space: nowrap; display: inline-flex; align-items: center; gap: 4px; }
.mdg-f-limpar:hover { border-color: #c0392b; color: #c0392b; }

/* Loading */
.mdg-loading { text-align: center; padding: 26px 0; }
.mdg-spinner { display: inline-block; width: 2.4rem; height: 2.4rem; border: 3px solid var(--mdg-cor-clara); border-right-color: transparent; border-radius: 50%; animation: mdg-spin .75s linear infinite; }
@keyframes mdg-spin { to { transform: rotate(360deg); } }

/* Resultados */
.mdg-results { transition: opacity .2s; }
.mdg-result-list { display: flex; flex-direction: column; gap: 10px; }
.mdg-result-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; background: #fff; border: 1px solid #e5e7eb; border-radius: 12px; padding: 14px 16px; }
.mdg-result-row h3 { font-size: 17px; line-height: 1.35; margin: 8px 0; color: #111827; }
.mdg-result-row .mdg-summary { font-size: 14px; line-height: 1.45; color: #1f2937; margin: 0 0 6px; }
.mdg-result-row small { display: block; color: #6b7280; margin: 0; }
.mdg-result-meta { display: flex; flex-wrap: wrap; gap: 8px; }
.mdg-result-meta span { background: #f3f4f6; border-radius: 999px; padding: 5px 9px; color: #374151; font-size: 12px; font-weight: 800; }
.mdg-result-row-action { display: flex; justify-content: flex-end; align-items: center; }
.mdg-result-row-action a { display: inline-flex; text-decoration: none; background: var(--mdg-cor-escura); color: #fff !important; border-radius: 9px; padding: 9px 12px; font-weight: 800; white-space: nowrap; }
.mdg-result-row-action a:hover { filter: brightness(1.25); }

/* Paginação (usada no público e no admin — no admin as variáveis do wrapper
   público não existem, por isso os fallbacks nas cores) */
.mdg-pagination { text-align: center; margin: 22px 0; }
.mdg-pagination .mdg-page-btn { display: inline-block; padding: 6px 13px; margin: 0 2px; border-radius: 5px; font-size: 14px; font-weight: 600; color: var(--mdg-cor-clara, #0a56b9); border: 1.5px solid #d0dce8; cursor: pointer; text-decoration: none; transition: background .15s, color .15s, border-color .15s; background: #fff; }
.mdg-pagination .mdg-page-btn:hover,
.mdg-pagination .mdg-page-btn.active { background: var(--mdg-cor-clara, #0a56b9) !important; color: #fff !important; border-color: var(--mdg-cor-clara, #0a56b9) !important; }
.mdg-pagination .mdg-page-btn.mdg-ellipsis { border: none; cursor: default; pointer-events: none; color: #aaa; background: transparent !important; }

/* ───────────────────────── Responsivo ───────────────────────── */
@media (max-width: 1100px) {
    .mdg-grid { grid-template-columns: 1fr; }
    .mdg-filter-form { grid-template-columns: 1fr 1fr; }
    .mdg-public-filter { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
    .mdg-result-row { grid-template-columns: 1fr; }
    .mdg-result-row-action { justify-content: flex-start; }
    .mdg-result-row-action a { width: 100%; justify-content: center; }
}

@media (max-width: 640px) {
    .mdg-row-2, .mdg-filter-form, .mdg-public-filter { grid-template-columns: 1fr; }
    .mdg-card { padding: 14px; }
    .mdg-public-hero { padding: 20px; }
    .mdg-table th, .mdg-table td { padding: 9px; }
    .mdg-filter-state { justify-content: flex-start; }
}
