.portal-obras-wrap,.portal-obras-single{max-width:1240px;margin:32px auto;padding:0 16px;font-family:inherit;color:#183153}
.portal-obras-header,.portal-obras-card{background:#fff;border:1px solid #d9e4ef;border-radius:20px;box-shadow:0 10px 30px rgba(17,43,77,.04)}
.portal-obras-header{padding:28px 28px 12px;margin-bottom:18px}
.portal-obras-header h2{margin:0 0 8px;font-size:2rem;line-height:1.15}
.portal-obras-header p{margin:0 0 12px;color:#5d6f82}

.portal-obras-form{padding:0;margin-bottom:18px}
.portal-obras-form form{background:#fff;border:1px solid #d9e4ef;border-radius:20px;box-shadow:0 10px 30px rgba(17,43,77,.04);padding:22px}

.portal-obras-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;align-items:end}
.portal-obras-grid label{display:block}
.portal-obras-grid span{display:block;margin:0 0 8px;font-size:.95rem;font-weight:600}
.portal-obras-grid input,.portal-obras-grid select{width:100%;height:48px;padding:0 14px;border:1px solid #c6d3df;border-radius:12px;background:#fff;font-size:1rem}

.portal-obras-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.portal-obras-export{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.portal-obras-export-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.portal-obras-export-label{font-weight:700;color:#24476b;margin-right:2px}

.portal-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border-radius:12px;border:1px solid #b8c9da;text-decoration:none;font-weight:600;transition:.2s ease;background:#fff;color:#0f4c81;cursor:pointer}
.portal-btn:hover{transform:translateY(-1px)}
.portal-btn-primary{background:#0f5e9c;border-color:#0f5e9c;color:#fff}
.portal-btn-secondary{background:#fff;border-color:#0f5e9c;color:#0f5e9c}
.portal-btn-light{background:#f6f9fc;color:#24476b}
.portal-btn-small{min-height:38px;padding:0 14px}

.portal-obras-results-meta{padding:0 6px 10px;color:#44596d}
.portal-obras-empty{margin:0 0 18px;padding:18px;border:1px dashed #c7d5e4;border-radius:14px;background:#f8fbfd}

.portal-obras-table-wrap{overflow:auto}
.portal-obras-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid #d3deea;border-radius:18px;overflow:hidden}
.portal-obras-table th,.portal-obras-table td{padding:16px 14px;border-right:1px solid #dfe7ef;border-bottom:1px solid #dfe7ef;vertical-align:top}
.portal-obras-table th:last-child,.portal-obras-table td:last-child{border-right:none}
.portal-obras-table tr:last-child td{border-bottom:none}
.portal-obras-table th{background:#eef3f8;font-size:.95rem;text-align:left;white-space:nowrap}
.portal-obras-table small{color:#6b7f92}

.portal-obras-pagination{display:flex;gap:8px;flex-wrap:wrap;padding:14px 0 0}
.portal-obras-pagination a{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;border-radius:10px;border:1px solid #ccd8e5;text-decoration:none;color:#264768;background:#fff}
.portal-obras-pagination a.is-active{background:#0f5e9c;border-color:#0f5e9c;color:#fff}

.portal-obras-single__inner{max-width:1100px;margin:0 auto}
.portal-obras-single__top{margin:10px 0 18px}
.portal-obras-card{padding:24px;margin-bottom:18px}
.portal-obras-card h1,.portal-obras-card h2{margin:0 0 14px}
.portal-obras-subtitle{margin:-8px 0 0;color:#5d6f82}
.portal-obras-grid-2{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
.portal-obras-card p{margin:0;line-height:1.6}
.portal-obras-card__head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}

.portal-obras-files{margin:0;padding-left:18px}
.portal-obras-files li{margin:6px 0}
.portal-obras-files a{color:#0f5e9c;word-break:break-word}

.portal-obras-footer-links{margin-top:12px}

@media (max-width:1080px){
  .portal-obras-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .portal-obras-grid-2{grid-template-columns:1fr}
}
@media (max-width:767px){
  .portal-obras-wrap,.portal-obras-single{padding:0 10px}
  .portal-obras-header,.portal-obras-form form{padding:16px}
  .portal-obras-grid{grid-template-columns:1fr}
  .portal-obras-actions{display:grid;grid-template-columns:1fr}
  .portal-obras-export{display:grid;grid-template-columns:1fr;align-items:stretch}
  .portal-obras-export-row{display:grid;grid-template-columns:1fr}
  .portal-btn{width:100%}
}
