@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root{
  --primary:#0345bf; --primary-dark:#02358f; --primary-soft:#eaf1ff; --bg:#EBF3FE;
  --surface:#ffffff; --text:#172033; --muted:#6b7485; --line:#dce5f2; --footer:#1D2027;
  --green:#138a55; --green-bg:#e8f7ef; --amber:#a86400; --amber-bg:#fff5dc;
  --red:#bd3341; --red-bg:#fff0f2; --shadow:0 14px 38px rgba(24,49,83,.09);
  --radius:16px; --radius-sm:10px; --container:1180px;
  --space:22px; --input-h:46px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--bg);color:var(--text);font-family:'Inter',Arial,sans-serif;font-size:14px;line-height:1.5}
a{color:inherit;text-decoration:none}.container{width:min(calc(100% - 32px),var(--container));margin:0 auto}
.brandbar{background:#fff;border-bottom:1px solid #edf1f7}.brandbar-inner{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:13px}.brand strong{display:block;color:var(--primary);font-size:20px;letter-spacing:-.4px}.brand small{display:block;color:var(--muted);font-size:11px;margin-top:1px}.brandmark{width:38px;height:38px;display:flex;align-items:flex-end;gap:3px;padding:7px;background:var(--primary);border-radius:11px;box-shadow:0 6px 16px rgba(3,69,191,.22)}.brandmark span{display:block;width:7px;background:#fff;border-radius:2px 2px 1px 1px}.brandmark span:nth-child(1){height:14px}.brandmark span:nth-child(2){height:23px}.brandmark span:nth-child(3){height:18px}.admin-link{font-weight:700;color:var(--primary);font-size:12px;border:1px solid #cfdbf4;border-radius:9px;padding:9px 13px;background:#f9fbff}.admin-link:hover{background:var(--primary-soft)}
.titlebar{background:var(--primary);color:#fff}.titlebar-inner{min-height:112px;display:flex;align-items:center;justify-content:space-between;gap:20px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.7px;margin:0 0 4px;opacity:.72}.titlebar h1{font-size:27px;line-height:1.15;margin:0;letter-spacing:-.7px}.title-badge{padding:7px 12px;border:1px solid rgba(255,255,255,.32);border-radius:999px;font-size:11px;font-weight:700;background:rgba(255,255,255,.10)}
.main-content{padding:26px 0 38px}.card{background:var(--surface);border:1px solid rgba(210,223,239,.9);border-radius:var(--radius);box-shadow:var(--shadow)}.form-card{padding:24px;margin-bottom:22px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:18px;border-bottom:1px solid #edf1f6;margin-bottom:20px}.section-kicker{font-size:10px;letter-spacing:1.1px;text-transform:uppercase;color:var(--primary);font-weight:800}.section-heading h2{margin:3px 0 0;font-size:19px;letter-spacing:-.35px}.section-heading p{margin:0;color:var(--muted);font-size:12px;max-width:390px;text-align:right}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}.field{min-width:0}.span-2{grid-column:span 2}.field label{display:block;font-size:11px;font-weight:800;color:#3e4960;margin:0 0 7px;text-transform:uppercase;letter-spacing:.3px}.field input,.field select,.field textarea,.multi-trigger{width:100%;border:1px solid #d4deeb;background:#fbfdff;border-radius:var(--radius-sm);font-family:inherit;color:var(--text);outline:none;transition:.18s border,.18s box-shadow,.18s background}.field input,.field select{height:var(--input-h);padding:0 13px}.field select{appearance:auto;cursor:pointer}.field select:disabled{background:#f2f4f7;color:#9aa2ae;cursor:not-allowed}.field textarea{resize:vertical;min-height:102px;padding:12px 13px}.field input:focus,.field select:focus,.field textarea:focus,.multi-trigger:focus{border-color:#6d95e5;box-shadow:0 0 0 3px rgba(3,69,191,.09);background:#fff}.field input[readonly]{background:#f2f6fb;color:#5a6679;font-weight:700}.field small{display:block;color:#8a93a1;font-size:10px;margin-top:5px}.compact-field{max-width:100%}
.multi{position:relative}.multi-trigger{height:var(--input-h);padding:0 13px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;text-align:left}.multi-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chevron{font-size:18px;color:#77839a;transition:transform .18s}.multi.open .chevron{transform:rotate(180deg)}.multi.is-disabled .multi-trigger{background:#f2f4f7;color:#9aa2ae;cursor:not-allowed}.multi-panel{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 7px);display:none;background:#fff;border:1px solid #d8e2ef;border-radius:12px;box-shadow:0 16px 38px rgba(23,43,73,.16);overflow:hidden}.multi.open .multi-panel{display:block}.multi-actions{display:flex;justify-content:flex-end;gap:8px;padding:9px 10px;border-bottom:1px solid #edf1f6;background:#f8fbff}.multi-actions button{border:0;background:transparent;color:var(--primary);font:700 10px 'Inter',sans-serif;cursor:pointer;padding:5px 7px;border-radius:6px}.multi-actions button:hover{background:var(--primary-soft)}.multi-options{max-height:225px;overflow:auto;padding:7px}.check-option{display:flex!important;align-items:center;gap:9px;padding:8px 9px!important;margin:0!important;border-radius:7px;cursor:pointer;text-transform:none!important;letter-spacing:0!important;font-size:12px!important;font-weight:600!important;color:#364158!important}.check-option:hover{background:#f1f6ff}.check-option input{width:16px!important;height:16px!important;margin:0;accent-color:var(--primary)}.inline-error{padding:12px;color:var(--red);font-size:12px}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding-top:18px;border-top:1px solid #edf1f6}.privacy-note{color:var(--muted);font-size:11px}.privacy-note strong{color:var(--amber)}.btn{border:0;border-radius:10px;font:700 12px 'Inter',sans-serif;padding:12px 17px;cursor:pointer;display:inline-flex;align-items:center;gap:10px}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 7px 16px rgba(3,69,191,.18)}.btn-primary:hover{background:var(--primary-dark)}
.alert{margin-bottom:18px;padding:12px 14px;border-radius:10px;font-weight:600;font-size:12px;border:1px solid}.alert-success{background:var(--green-bg);border-color:#b9e7ce;color:#0e7045}.alert-error{background:var(--red-bg);border-color:#f1c6cb;color:#9f2533}
.list-card{padding:0;overflow:hidden}.list-heading{margin:0;padding:20px 22px}.count-pill{background:var(--primary-soft);color:var(--primary);border-radius:999px;padding:6px 10px;font-size:10px;font-weight:800}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th{background:#f5f8fc;color:#657086;text-transform:uppercase;letter-spacing:.45px;font-size:9px;font-weight:800;text-align:left;padding:11px 16px;border-bottom:1px solid #e1e8f1}td{padding:13px 16px;border-bottom:1px solid #edf1f6;vertical-align:top;font-size:12px;color:#354057}tbody tr:hover{background:#fbfdff}.nowrap{white-space:nowrap;font-weight:600;color:#596579}.status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.35px}.estado-pendiente{background:var(--amber-bg);color:var(--amber)}.estado-resuelto{background:var(--green-bg);color:var(--green)}.estado-anulado{background:var(--red-bg);color:var(--red)}.empty{text-align:center;padding:32px;color:var(--muted)}
.footer{background:var(--footer);color:#aeb5c0;font-size:10px;padding:19px 0;margin-top:8px}
/* Admin */.admin-shell{min-height:100vh;background:#f4f7fb}.admin-top{background:#fff;border-bottom:1px solid #e4eaf2}.admin-top .container{min-height:64px;display:flex;align-items:center;justify-content:space-between}.admin-nav{display:flex;align-items:center;gap:10px}.admin-main{padding:26px 0}.login-wrap{min-height:calc(100vh - 64px);display:grid;place-items:center;padding:26px}.login-card{width:min(100%,410px);padding:28px}.login-card h1{margin:14px 0 5px;font-size:23px}.login-card p{color:var(--muted);font-size:12px;margin:0 0 20px}.admin-table td{vertical-align:middle}.message-cell{max-width:280px}.message-cell strong{display:block;color:#202b40;margin-bottom:3px}.message-cell small{display:block;color:#7c8798;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.state-form{display:flex;gap:7px;align-items:center}.state-form select{height:34px;border:1px solid #d4deeb;border-radius:8px;font:600 11px 'Inter';padding:0 8px;background:#fff}.btn-small{padding:8px 10px;font-size:10px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.toolbar h1{font-size:22px;margin:0}.toolbar p{margin:3px 0 0;color:var(--muted);font-size:11px}.filters{display:flex;gap:8px}.filters select,.filters input{height:38px;border:1px solid #d4deeb;border-radius:9px;padding:0 10px;font:500 11px 'Inter';background:#fff}.detail-meta{font-size:10px;color:#7a8495}
@media(max-width:760px){.container{width:min(calc(100% - 22px),var(--container))}.brand small{display:none}.admin-link{font-size:0}.admin-link:after{content:'Admin';font-size:11px}.titlebar-inner{min-height:96px}.titlebar h1{font-size:22px}.title-badge{display:none}.main-content{padding-top:16px}.form-card{padding:17px}.section-heading{align-items:flex-start;flex-direction:column;gap:5px}.section-heading p{text-align:left}.form-grid{grid-template-columns:1fr;gap:14px}.span-2{grid-column:span 1}.form-footer{align-items:stretch;flex-direction:column}.btn-primary{justify-content:center}.toolbar{align-items:flex-start;flex-direction:column}.filters{width:100%;flex-wrap:wrap}.login-wrap{align-items:start}.multi-panel{position:fixed;left:11px;right:11px;top:20vh;max-height:60vh}.multi-options{max-height:45vh}}


/* ===== Backend avanzado ===== */
.admin-top-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}.user-chip{display:flex;flex-direction:column;text-align:right;color:#fff}.user-chip small{opacity:.78}.admin-menu{background:#fff;border-bottom:1px solid #dbe3ef;box-shadow:0 4px 16px rgba(19,33,68,.04)}.admin-menu .container{display:flex;gap:8px;overflow:auto}.admin-menu a{display:block;padding:14px 16px;color:#4c5872;text-decoration:none;font-weight:700;border-bottom:3px solid transparent;white-space:nowrap}.admin-menu a:hover,.admin-menu a.active{color:#0345bf;border-bottom-color:#0345bf}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.metric{background:#fff;border:1px solid #e0e7f1;border-radius:14px;padding:17px 20px;box-shadow:0 7px 22px rgba(26,43,78,.05)}.metric span{display:block;color:#6c7891;font-size:.82rem;font-weight:700}.metric strong{display:block;font-size:1.8rem;color:#17213a;margin-top:5px}.block{display:block;color:#78849b;margin-top:4px}.detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.detail-head h1{margin:7px 0 4px}.detail-head p{margin:0;color:#667085}.detail-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:20px;margin-bottom:20px}.detail-card,.action-card,.response-card{padding:24px;margin-bottom:20px}.data-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 20px}.data-list div{background:#f7f9fc;border-radius:10px;padding:12px}.data-list dt{font-size:.75rem;color:#77839a;font-weight:700;text-transform:uppercase}.data-list dd{margin:4px 0 0;font-weight:650}.message-box{background:#f7f9fc;border-left:4px solid #0345bf;padding:18px;border-radius:8px;line-height:1.65}.action-card select{width:100%;margin:10px 0 12px}.inline-check{display:flex;align-items:center;gap:9px;font-weight:650;margin:14px 0 18px}.inline-check input{width:auto}.response-item{border-top:1px solid #e5eaf2;padding:18px 0;line-height:1.6}.response-item:first-of-type{border-top:0}.response-meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:9px;color:#6f7a90;font-size:.83rem}.response-meta strong{color:#1d2943}.mail-result{padding:3px 8px;border-radius:999px;font-weight:700}.mail-result.ok{background:#e8f7ef;color:#18784a}.mail-result.fail{background:#fff2df;color:#a15b00}.alert-warning{background:#fff6e6;border-color:#f2c36f;color:#805000}.narrow{max-width:860px}.report-filter{padding:20px;margin-bottom:22px}.report-form{display:grid;grid-template-columns:180px 160px 1fr auto;gap:12px;align-items:end}.report-form .wide{min-width:0}.report-sheet{background:#fff;border:1px solid #dde5ef;border-radius:16px;padding:30px;box-shadow:0 10px 30px rgba(21,39,74,.06)}.report-title{text-align:center;border-bottom:2px solid #0345bf;padding-bottom:18px;margin-bottom:20px}.report-title p{color:#0345bf;font-weight:800;letter-spacing:.12em;font-size:.75rem;margin:0}.report-title h1{font-size:1.5rem;margin:5px 0}.report-title div{color:#67748d}.report-footer{text-align:right;color:#78849a;font-size:.78rem;margin-top:16px}.btn-outline{background:#fff;border:1px solid #cbd5e3;color:#24334f}.btn-outline:hover{border-color:#0345bf;color:#0345bf}.btn-block{width:100%}.empty-block{color:#7d8799;padding:16px 0}
@media(max-width:900px){.metric-grid{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:1fr}.report-form{grid-template-columns:1fr 1fr}.report-form .wide{grid-column:1/-1}.report-form .btn{grid-column:1/-1}.data-list{grid-template-columns:1fr}}
@media(max-width:600px){.metric-grid{grid-template-columns:1fr 1fr}.admin-top-inner{align-items:flex-start}.user-chip{display:none}.detail-head{flex-direction:column}.report-sheet{padding:16px}.report-form{grid-template-columns:1fr}.report-form .wide,.report-form .btn{grid-column:auto}}
@media print{.admin-top,.admin-menu,.no-print{display:none!important}.admin-main{padding:0!important;max-width:none!important}.report-sheet{box-shadow:none;border:0;padding:0}.report-sheet table{font-size:10px}.metric{box-shadow:none}.report-footer{margin-top:20px}@page{size:A4 landscape;margin:12mm}}


/* ===== Ajustes frontend Muniportales - Agosto 2026 ===== */
.front-brandbar{background:#fff;border-bottom:0;box-shadow:0 2px 10px rgba(23,43,73,.04)}
.front-brandbar-inner{min-height:118px;position:relative;display:grid;grid-template-columns:minmax(280px,1fr) minmax(330px,1fr) auto;align-items:center;gap:28px}
.brand-logo{display:inline-flex;align-items:center;width:max-content}
.brand-logo img{display:block;width:280px;height:auto;max-width:100%}
.front-system-title{text-align:center;line-height:1.2}
.front-system-title h1{margin:0;color:var(--primary);font-size:25px;font-weight:800;letter-spacing:-.55px;text-transform:uppercase}
.front-system-title p{margin:8px 0 0;color:#47536d;font-size:15px;font-weight:500}
.front-admin-link{white-space:nowrap}
.front-blue-line{height:18px;background:var(--primary);box-shadow:0 2px 8px rgba(3,69,191,.12)}
.front-page .main-content{padding-top:22px}
.front-form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 16px}
.front-form-grid .front-top-field{grid-column:span 1}
.front-form-grid .front-half{grid-column:span 2}
.front-form-grid .front-full{grid-column:1/-1}
.front-page .form-card{padding:22px}
.front-page .section-heading{padding-bottom:15px;margin-bottom:17px}
.front-page .field label{margin-bottom:6px}
.front-page .form-footer{margin-top:17px;padding-top:16px}
@media(max-width:1050px){
  .front-brandbar-inner{grid-template-columns:280px 1fr auto;gap:18px}
  .front-system-title h1{font-size:21px}
  .front-system-title p{font-size:13px}
  .front-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .front-form-grid .front-top-field{grid-column:span 1}
  .front-form-grid .front-half{grid-column:span 1}
  .front-form-grid .front-full{grid-column:1/-1}
}
@media(max-width:760px){
  .front-brandbar-inner{min-height:auto;padding:16px 0;grid-template-columns:1fr auto;gap:14px}
  .brand-logo img{width:230px}
  .front-system-title{grid-column:1/-1;grid-row:2;text-align:left;padding-top:2px}
  .front-system-title h1{font-size:18px}
  .front-system-title p{font-size:12px;margin-top:5px}
  .front-admin-link{grid-column:2;grid-row:1;font-size:0}
  .front-admin-link:after{content:'Admin';font-size:11px}
  .front-blue-line{height:10px}
  .front-form-grid{grid-template-columns:1fr;gap:14px}
  .front-form-grid .front-top-field,.front-form-grid .front-half,.front-form-grid .front-full{grid-column:1}
}
@media(max-width:460px){
  .brand-logo img{width:205px}
  .front-brandbar-inner{grid-template-columns:1fr}
  .front-admin-link{grid-column:1;grid-row:3;width:max-content}
  .front-system-title{grid-column:1;grid-row:2}
}

/* === V3: edición, activación y archivos adjuntos === */
.optional{font-weight:500;color:#7b879c;font-size:.82em}.field input[type=file]{background:#f8faff;border:1px dashed #b7c6dc;padding:13px;border-radius:10px}.attachments-box,.existing-files{margin-top:20px;padding-top:18px;border-top:1px solid #e2e8f0}.attachments-box h3,.existing-files h3,.admin-actions h3{margin:0 0 12px;font-size:.95rem;color:#263552}.attachment-link{display:flex;align-items:center;gap:10px;text-decoration:none;color:#24324a;background:#f7f9fd;border:1px solid #e1e7f0;border-radius:10px;padding:10px 12px;margin-top:8px}.attachment-link:hover{border-color:#0345bf;background:#f1f5ff}.attachment-link span:last-child{display:flex;flex-direction:column}.attachment-link small,.attachment-chip small{color:#79859a;font-weight:500}.response-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.attachment-chip{display:inline-flex;align-items:center;gap:6px;background:#f4f7fc;border:1px solid #dce4ef;border-radius:999px;padding:7px 11px;text-decoration:none;color:#2c3c58;font-size:.84rem}.active-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 10px;font-size:.75rem;font-weight:800}.active-badge.active{background:#e8f7ef;color:#18784a}.active-badge.inactive{background:#eef0f4;color:#626c7e}.detail-badges{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row-inactive{opacity:.67;background:#fafbfc}.admin-actions{margin-top:22px;padding-top:18px;border-top:1px solid #e1e7ef}.admin-actions form,.admin-actions .btn{margin-top:9px}.btn-danger{background:#c92a2a;color:#fff;border:1px solid #c92a2a}.btn-danger:hover{background:#a91f1f}.btn-warning{background:#fff3cd;color:#765500;border:1px solid #e5c76b}.btn-success{background:#168653;color:#fff;border:1px solid #168653}.file-remove{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;background:#f8fafc;margin:6px 0;cursor:pointer}.file-remove input{width:auto}.edit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.metric-grid-5{grid-template-columns:repeat(5,1fr)}
@media(max-width:1000px){.metric-grid-5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.edit-grid{grid-template-columns:1fr}.edit-grid .span-2{grid-column:auto}.metric-grid-5{grid-template-columns:repeat(2,1fr)}}
