/*
 * LBM Diário Oficial — Identidade pública institucional
 * Interface unificada para consulta, lightbox e página single.
 */
.lbm-diario-oficial,.lbm-single{
    --lbm-primary:#174d86;
    --lbm-highlight:#e8f1f8;
    --lbm-navy:#123d68;
    --lbm-ink:#17212b;
    --lbm-muted:#5c6875;
    --lbm-border:#d7e0e8;
    --lbm-surface:#f5f7fa;
    --lbm-white:#fff;
    --lbm-shadow:0 10px 26px rgba(16,35,55,.06);
    color:var(--lbm-ink);
    font-family:"Roboto","Helvetica Neue",Arial,sans-serif;
    line-height:1.5;
}
.lbm-public-portal{max-width:1180px;margin:0 auto;padding:8px 0 48px}
.lbm-public-header{text-align:center;margin:0 auto 34px;max-width:780px}
.lbm-public-kicker{display:inline-block;margin:0 0 9px;color:var(--lbm-primary);font-size:12px;line-height:1.2;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.lbm-public-header h2{margin:0 0 12px;color:var(--lbm-primary);font-size:clamp(30px,4vw,43px);line-height:1.15;font-weight:800}
.lbm-public-header p{margin:0;color:var(--lbm-muted);font-size:17px;line-height:1.55}
.lbm-panel{background:var(--lbm-white);border:1px solid var(--lbm-border);border-top:4px solid var(--lbm-primary);border-radius:9px;padding:25px 27px 27px;box-shadow:var(--lbm-shadow)}
.lbm-filters{margin:0 0 30px}
.lbm-section-heading{display:flex;align-items:flex-start;gap:13px;margin:0 0 23px;padding:0 0 19px;border-bottom:1px solid #e6ebf0}
.lbm-section-heading .dashicons{flex:0 0 auto;width:25px;height:25px;font-size:25px;color:var(--lbm-primary);margin-top:3px}
.lbm-section-heading h3{margin:0 0 3px;color:var(--lbm-ink);font-size:22px;line-height:1.25;font-weight:750}
.lbm-section-heading p{margin:0;color:var(--lbm-muted);font-size:15px}
.lbm-search-label{display:block;margin:0 0 19px;max-width:none}
.lbm-search-label span,.lbm-filter-select span{display:block;margin:0 0 7px;color:var(--lbm-ink);font-size:14px;line-height:1.3;font-weight:700}
.lbm-search-input,.lbm-filter-select select{display:block;width:100%;min-height:48px;margin:0;border:1px solid #bdcad7;border-radius:6px;background:#fff;color:var(--lbm-ink);padding:11px 13px;font-size:16px;line-height:1.35;box-shadow:none;transition:border-color .15s ease,box-shadow .15s ease}
.lbm-search-input:focus,.lbm-filter-select select:focus{border-color:var(--lbm-primary);outline:none;box-shadow:0 0 0 3px rgba(23,77,134,.14)}
.lbm-search-input::placeholder{color:#728091}
.lbm-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));gap:16px;margin:0}
.lbm-filter-select{display:block;margin:0}
.lbm-filter-actions{display:flex;align-items:center;gap:12px;margin:24px 0 0}
.lbm-filter-actions button,.lbm-filter-actions a{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:45px;border-radius:6px;padding:10px 19px;text-decoration:none;font-size:15px;line-height:1.2;font-weight:700;transition:background-color .15s ease,color .15s ease,border-color .15s ease;cursor:pointer}
.lbm-filter-actions button{background:var(--lbm-primary);border:1px solid var(--lbm-primary);color:#fff}
.lbm-filter-actions button:hover,.lbm-filter-actions button:focus{background:var(--lbm-navy);border-color:var(--lbm-navy);color:#fff}
.lbm-filter-actions a{background:#fff;border:1px solid #bac8d6;color:var(--lbm-primary)}
.lbm-filter-actions a:hover,.lbm-filter-actions a:focus{background:var(--lbm-surface);border-color:var(--lbm-primary);color:var(--lbm-primary)}
.lbm-filter-actions .dashicons{font-size:18px;width:18px;height:18px}
.lbm-results{margin-top:0}
.lbm-results.is-loading{opacity:.83}
.lbm-results-header{display:flex;align-items:flex-end;justify-content:space-between;margin:0 0 17px;padding:0 3px}
.lbm-results-header h3{margin:0 0 3px;color:var(--lbm-ink);font-size:25px;line-height:1.25;font-weight:800}
.lbm-results-header p{margin:0;color:var(--lbm-muted);font-size:15px;font-weight:500}
.lbm-results-list{display:grid;gap:15px}
.lbm-card{background:#fff;border:1px solid var(--lbm-border);border-left:5px solid var(--lbm-primary);border-radius:8px;padding:20px 21px 19px;box-shadow:0 3px 12px rgba(16,35,55,.04);transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease}
.lbm-card:hover{box-shadow:0 12px 28px rgba(16,35,55,.1);transform:translateY(-1px);border-color:#c2d2df}
.lbm-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 13px}
.lbm-process-label{display:inline-flex;align-items:center;background:var(--lbm-highlight);border-radius:4px;color:var(--lbm-primary);padding:6px 11px;font-size:13px;line-height:1.2;font-weight:750;text-transform:uppercase;letter-spacing:.04em}
.lbm-status-badge{display:inline-flex;align-items:center;border:1px solid #c1d0df;background:#f4f7fa;border-radius:20px;color:var(--lbm-primary);padding:6px 12px;font-size:13px;line-height:1.2;font-weight:700}
.lbm-card h4{margin:0 0 18px;color:#111b24;font-size:20px;line-height:1.43;font-weight:750}
.lbm-card-meta{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:0;margin:0 0 18px;background:var(--lbm-surface);border:1px solid #e1e7ed;border-radius:6px;overflow:hidden}
.lbm-card-meta div{padding:11px 14px;border-right:1px solid #e1e7ed}
.lbm-card-meta div:last-child{border-right:0}
.lbm-card-meta dt{display:block;margin:0 0 4px;color:var(--lbm-muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.lbm-card-meta dd{margin:0;color:var(--lbm-ink);font-size:15px;font-weight:700}
.lbm-card-actions{display:flex;justify-content:flex-end}
.lbm-open-detail{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:43px;border:1px solid var(--lbm-primary);border-radius:6px;background:#fff;color:var(--lbm-primary);padding:10px 16px;font-size:15px;line-height:1.2;font-weight:700;cursor:pointer;transition:background-color .15s ease,color .15s ease}
.lbm-open-detail .dashicons{width:18px;height:18px;font-size:18px}
.lbm-open-detail:hover,.lbm-open-detail:focus{background:var(--lbm-primary);color:#fff}
.lbm-pagination{display:flex;align-items:center;justify-content:center;gap:7px;margin:30px 0 0}
.lbm-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-height:42px;min-width:42px;border:1px solid var(--lbm-border);border-radius:5px;background:#fff;color:var(--lbm-primary);padding:8px 13px;text-decoration:none;font-weight:700}
.lbm-pagination .page-numbers:hover{border-color:var(--lbm-primary);background:var(--lbm-surface)}
.lbm-pagination .current{border-color:var(--lbm-primary);background:var(--lbm-primary);color:#fff}
.lbm-empty{display:flex;align-items:center;gap:11px;margin:0;border:1px solid var(--lbm-border);border-left:4px solid var(--lbm-primary);border-radius:7px;background:var(--lbm-surface);padding:22px;color:var(--lbm-muted)}
.lbm-empty .dashicons{color:var(--lbm-primary);font-size:24px;width:24px;height:24px}
.lbm-empty p{margin:0;font-size:16px;font-weight:600}
.lbm-loading-inline{margin:0;border:1px solid var(--lbm-border);border-left:4px solid var(--lbm-primary);border-radius:7px;background:var(--lbm-surface);padding:21px;color:var(--lbm-muted);text-align:left}

/* Modal */
.lbm-modal{display:none;position:fixed;inset:0;z-index:999999}
.lbm-modal.is-open{display:block}
.lbm-modal-overlay{position:absolute;inset:0;background:rgba(11,24,37,.7)}
.lbm-modal-dialog{position:relative;width:min(1160px,calc(100% - 34px));max-height:calc(100vh - 40px);margin:20px auto;overflow:auto;border-radius:10px;background:#fff;padding:38px 40px 43px;box-shadow:0 22px 60px rgba(0,0,0,.3)}
.lbm-modal-close{position:absolute;z-index:1;right:14px;top:11px;width:42px;height:42px;border:1px solid transparent;border-radius:50%;background:#fff;color:var(--lbm-primary);font-size:34px;line-height:34px;cursor:pointer}
.lbm-modal-close:hover,.lbm-modal-close:focus{border-color:var(--lbm-border);background:var(--lbm-surface)}
body.lbm-modal-active{overflow:hidden}
.lbm-loading,.lbm-error{text-align:center;padding:60px 20px;color:var(--lbm-muted);font-size:18px}

/* Single e conteúdo do lightbox */
.lbm-direct-single{max-width:1260px;margin:50px auto;padding:0 24px;background:#fff;color:var(--lbm-ink)}
.lbm-direct-single .lbm-single{max-width:1120px;margin:0 auto;padding:6px 0 65px}
.lbm-single-modern{max-width:1120px;margin:0 auto;color:var(--lbm-ink)}
.lbm-single-head{text-align:center;margin:0 0 28px;padding:0 48px}
.lbm-single-head h2{margin:2px 0 11px;color:var(--lbm-primary);font-size:clamp(34px,4.3vw,48px);line-height:1.12;font-weight:800}
.lbm-single-head p{margin:0;color:var(--lbm-muted);font-size:13px;line-height:1.4;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.lbm-single-panel{margin:0 0 22px;overflow:hidden;border:1px solid var(--lbm-border);border-radius:9px;background:#fff;box-shadow:var(--lbm-shadow)}
.lbm-single-summary{padding:0}
.lbm-single-table-wrap{overflow-x:auto}
.lbm-single-table{width:100%;border-collapse:collapse;table-layout:fixed}
.lbm-single-table th,.lbm-single-table td{padding:15px 17px;border-bottom:1px solid #e5ebf0;font-size:16px;line-height:1.4}
.lbm-single-table tr:last-child th,.lbm-single-table tr:last-child td{border-bottom:0}
.lbm-single-table th{width:18%;background:var(--lbm-primary);color:#fff;text-align:left;font-weight:700}
.lbm-single-table td{width:32%;background:var(--lbm-surface);color:var(--lbm-ink);font-weight:700}
.lbm-single-table .lbm-single-empty{border-bottom:0;background:#fff}
.lbm-single-object-panel{padding:24px 26px 27px}
.lbm-object-title{margin:0 0 16px;color:var(--lbm-ink);font-size:25px;line-height:1.2;font-weight:800;text-align:left}
.lbm-object-box{border-left:4px solid var(--lbm-primary);border-radius:6px;background:var(--lbm-surface);padding:19px 21px}
.lbm-object{margin:0;color:var(--lbm-ink);font-size:17px;line-height:1.62;font-weight:600;text-align:justify}
.lbm-documents-panel{padding:24px 26px 28px}
.lbm-documents-title{margin:0 0 16px;color:var(--lbm-ink);font-size:22px;line-height:1.25;font-weight:800}
.lbm-documents{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:12px}
.lbm-document-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:190px;min-height:48px;border:1px solid var(--lbm-primary);border-radius:6px;background:#fff;color:var(--lbm-primary);padding:12px 17px;text-decoration:none;font-weight:700;transition:background-color .15s ease,color .15s ease,transform .15s ease}
.lbm-document-button:hover,.lbm-document-button:focus{background:var(--lbm-primary);color:#fff;transform:translateY(-1px)}
.lbm-document-button .dashicons{width:20px;height:20px;font-size:20px}

@media(max-width:900px){
    .lbm-public-portal{padding-left:10px;padding-right:10px}
    .lbm-card-meta{grid-template-columns:repeat(2,minmax(130px,1fr))}
    .lbm-card-meta div:nth-child(2){border-right:0}
    .lbm-card-meta div:nth-child(1),.lbm-card-meta div:nth-child(2){border-bottom:1px solid #e1e7ed}
    .lbm-single-table th,.lbm-single-table td{padding:13px 13px;font-size:15px}
}
@media(max-width:767px){
    .lbm-public-header{margin-bottom:24px;padding:0 8px}
    .lbm-public-header p{font-size:15px}
    .lbm-panel{padding:20px 17px}
    .lbm-section-heading h3{font-size:20px}
    .lbm-filter-grid{grid-template-columns:1fr;gap:12px}
    .lbm-search-input,.lbm-filter-select select{font-size:15px}
    .lbm-filter-actions{flex-direction:column;align-items:stretch}
    .lbm-filter-actions button,.lbm-filter-actions a{width:100%}
    .lbm-results-header h3{font-size:22px}
    .lbm-card{padding:16px 14px}
    .lbm-card-top{align-items:flex-start;flex-direction:column}
    .lbm-card h4{font-size:17px}
    .lbm-card-meta{grid-template-columns:1fr}
    .lbm-card-meta div,.lbm-card-meta div:nth-child(2){border-right:0;border-bottom:1px solid #e1e7ed}
    .lbm-card-meta div:last-child{border-bottom:0}
    .lbm-card-actions,.lbm-open-detail{width:100%}
    .lbm-modal-dialog{width:calc(100% - 20px);max-height:calc(100vh - 20px);margin:10px auto;padding:48px 13px 22px;border-radius:8px}
    .lbm-modal-close{right:6px;top:5px}
    .lbm-single-head{margin-bottom:20px;padding:0 22px}
    .lbm-single-head h2{font-size:clamp(28px,9vw,38px)}
    .lbm-single-head p{font-size:11px;letter-spacing:.12em}
    .lbm-single-table,.lbm-single-table tbody,.lbm-single-table tr,.lbm-single-table th,.lbm-single-table td{display:block;width:100%}
    .lbm-single-table tr{border-bottom:1px solid #e5ebf0}
    .lbm-single-table tr:last-child{border-bottom:0}
    .lbm-single-table th{padding:11px 13px 7px}
    .lbm-single-table td{padding:0 13px 13px}
    .lbm-single-table .lbm-single-empty{display:none}
    .lbm-single-object-panel,.lbm-documents-panel{padding:19px 16px 20px}
    .lbm-object-title{font-size:22px}
    .lbm-object{font-size:16px;text-align:left}
    .lbm-documents-title{font-size:20px}
    .lbm-document-button{width:100%;min-width:0}
}

/* v1.1.0 — compatibilidade com modelo simplificado e refinamentos mobile */
.lbm-card-meta-summary{grid-template-columns:repeat(2,minmax(180px,1fr))}
.lbm-card-meta-summary div:nth-child(2){border-right:0}
@media(max-width:767px){
    .lbm-public-portal{padding-left:6px;padding-right:6px}
    .lbm-card-meta-summary{grid-template-columns:1fr}
    .lbm-card-meta-summary div{border-right:0}
    .lbm-modal-content .lbm-single-head{padding-left:8px;padding-right:8px}
    .lbm-modal-content .lbm-single-head h2{word-break:break-word}
    .lbm-single-table-wrap{overflow:visible}
}

/* v1.2.0 — mini calendário mensal e filtros derivados das publicações */
.lbm-consult-grid{display:grid;grid-template-columns:336px minmax(0,1fr);gap:20px;align-items:start;margin-bottom:30px}
.lbm-consult-grid .lbm-panel{margin-bottom:0}
.lbm-calendar-panel{padding:18px 17px 16px}
.lbm-calendar-target.is-loading{opacity:.62;pointer-events:none}
.lbm-calendar-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:17px}
.lbm-calendar-header div{text-align:center}
.lbm-calendar-header h3{margin:0;color:var(--lbm-primary);font-size:18px;line-height:1.18;font-weight:800}
.lbm-calendar-header span{color:var(--lbm-muted);font-size:13px;font-weight:700}
.lbm-calendar-nav{display:inline-flex;align-items:center;justify-content:center;width:37px;height:37px;border:1px solid var(--lbm-border);border-radius:8px;background:#fff;color:var(--lbm-primary);cursor:pointer;transition:background-color .15s ease,border-color .15s ease}
.lbm-calendar-nav:hover,.lbm-calendar-nav:focus{border-color:var(--lbm-primary);background:var(--lbm-highlight)}
.lbm-calendar-nav .dashicons{font-size:17px;width:17px;height:17px}
.lbm-calendar-week,.lbm-calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.lbm-calendar-week{margin-bottom:7px}
.lbm-calendar-week span{color:var(--lbm-muted);font-size:11px;line-height:1.2;font-weight:800;text-align:center;text-transform:uppercase}
.lbm-calendar-blank,.lbm-calendar-day{min-height:38px}
.lbm-calendar-day{position:relative;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--lbm-ink);font-size:14px;font-weight:700}
button.lbm-calendar-day{cursor:pointer}
.lbm-calendar-day.has-publication{border-color:#c6daeb;background:var(--lbm-highlight);color:var(--lbm-primary)}
.lbm-calendar-day.has-publication:hover,.lbm-calendar-day.has-publication:focus{border-color:var(--lbm-primary);background:var(--lbm-primary);color:#fff}
.lbm-calendar-day i{position:absolute;bottom:4px;left:50%;display:block;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--lbm-primary)}
.lbm-calendar-day.has-publication:hover i,.lbm-calendar-day.has-publication:focus i{background:#fff}
.lbm-calendar-day small{position:absolute;right:3px;top:3px;display:flex;align-items:center;justify-content:center;min-width:15px;height:15px;border-radius:50%;background:var(--lbm-primary);color:#fff;font-size:9px;font-weight:800}
.lbm-calendar-day.has-publication:hover small,.lbm-calendar-day.has-publication:focus small{background:#fff;color:var(--lbm-primary)}
.lbm-calendar-legend{display:flex;align-items:center;gap:8px;margin:15px 1px 0;padding-top:13px;border-top:1px solid #e4eaf0;color:var(--lbm-muted);font-size:12px;font-weight:600}
.lbm-calendar-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--lbm-primary)}
@media(max-width:980px){.lbm-consult-grid{grid-template-columns:1fr}.lbm-calendar-panel{max-width:360px;width:100%;margin:0 auto}}
@media(max-width:767px){.lbm-consult-grid{gap:15px;margin-bottom:22px}.lbm-calendar-panel{padding:16px 12px 13px}.lbm-calendar-day{min-height:40px}.lbm-calendar-week,.lbm-calendar-days{gap:3px}}
