:root{--navy:#073b70;--blue:#075a9b;--gold:#d5b76b;--ink:#182c42;--muted:#63758a;--line:#e2eaf2;--paper:#fff;--bg:#f3f7fb;--green:#137a53;--red:#a1262f}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(180deg,#eaf2f9 0,#f6f8fb 420px);font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);min-height:100vh}
a{color:var(--blue)}
.wrap{max-width:1240px;margin:auto;padding:24px 22px 40px}
.wrap.narrow{max-width:520px}
.institutional-banner{display:block;width:100%;margin:0 0 20px;padding:0;overflow:hidden;border-radius:22px;background:#eaf5fc;box-shadow:0 14px 36px rgba(11,48,91,.13);line-height:0}
.institutional-banner img{display:block;width:100%;height:auto}

.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.nav{display:flex;gap:8px;flex-wrap:wrap}
.tab{border:1px solid #dbe5ee;background:#fff;color:#31516f;padding:11px 16px;border-radius:12px;font-weight:700;font-size:13px;text-decoration:none;box-shadow:0 4px 14px #183b5c08}
.tab:hover{border-color:#b9cde0}
.tab.active{background:linear-gradient(110deg,var(--navy),var(--blue));color:#fff;border-color:transparent;box-shadow:0 8px 20px #064d8426}
.userbar{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
.userbar form{margin:0}

.card{background:var(--paper);border:1px solid #e4ebf2;border-radius:22px;padding:28px;box-shadow:0 10px 30px #173a5b0b;margin-bottom:18px}
.table-card{background:#fff;border:1px solid #e4ebf2;border-radius:22px;padding:22px;box-shadow:0 10px 30px #173a5b0b;margin-bottom:18px}
.card h2,.table-card h2{margin:0 0 6px;color:#173d60;font-size:22px}
.sub{color:var(--muted);margin:0 0 20px;line-height:1.55;font-size:14px}
.subhead{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;margin-bottom:6px}
.subhead h2{margin:0}
.subhead p{color:var(--muted);margin:7px 0 0;font-size:13px}
.section{margin:28px 0 17px;padding:0 0 12px;border-bottom:1px solid var(--line);color:var(--navy);font-size:15px;font-weight:800;display:flex;align-items:center;gap:10px}
.section:first-child{margin-top:0}
.section:before{content:"";width:5px;height:23px;border-radius:9px;background:linear-gradient(var(--gold),#ead7a2)}

.field{margin-bottom:18px}
label{display:block;margin-bottom:8px;font-size:13px;font-weight:700;color:#344a60}
input,select,textarea{width:100%;border:1px solid #d3dee8;border-radius:11px;padding:12px 14px;font:inherit;font-size:14px;background:#fff;color:var(--ink);outline:none;transition:.18s}
input:focus,select:focus,textarea:focus{border-color:#4787b7;box-shadow:0 0 0 4px #2d7bb31a}
input[readonly]{background:#f2f6f9;font-weight:700}
textarea{min-height:85px;resize:vertical}
.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.note{background:linear-gradient(110deg,#f0f6fc,#f8fbfe);border:1px solid #e0ebf5;border-left:4px solid #4386b7;padding:14px 16px;border-radius:13px;margin:14px 0 20px;font-size:13px;line-height:1.6;color:#415b72}
.help{font-size:12px;color:var(--muted);margin-top:7px;line-height:1.5}
.file{padding:16px;border:1.5px dashed #b8cbdc;border-radius:14px;background:#f8fbfe}
.file input{background:transparent;border:0;padding:6px 0}
.doc-search{margin-bottom:7px;padding:10px 12px}
select option:disabled{color:#a0aab5}

button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:linear-gradient(110deg,var(--navy),var(--blue));color:#fff;border-radius:11px;padding:12px 17px;font:inherit;font-size:14px;font-weight:800;cursor:pointer;text-decoration:none;transition:.18s;width:auto}
button:hover,.btn:hover{transform:translateY(-1px);filter:brightness(1.06)}
button:disabled{opacity:.55;cursor:wait;transform:none}
.btn.sec,button.sec{background:#eaf1f7;color:#244b6b}
.btn.danger,button.danger{background:linear-gradient(110deg,#8a1c24,#b3303a)}
.btn.wa,button.wa{background:#128c7e}
.btn.sm,button.sm{padding:7px 11px;font-size:12px;border-radius:9px}
.btn.block,button.block{width:100%;padding:15px}
form.inline{display:inline;margin:0}

.flash{margin:0 0 16px;padding:14px 17px;border-radius:12px;line-height:1.5;overflow-wrap:anywhere;font-size:14px}
.flash.ok{color:#155b3c;background:#e7f6ed;border:1px solid #ccebd8}
.flash.error{color:#842029;background:#fff0f1;border:1px solid #f4d0d3}
.flash.info{color:#1c4a6e;background:#eaf3fb;border:1px solid #cfe2f1}
.hidden{display:none!important}

.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:0 0 18px}
.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px;box-shadow:0 6px 18px #173a5b08}
.stat b{display:block;font-size:30px;line-height:1.1;color:var(--navy)}
.stat span{font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.stat.s-venc b{color:var(--red)}
.stat.s-hoy b{color:#b45f06}
.stat.s-dia b{color:#8a6d00}
.stat.s-ok b{color:var(--green)}
a.stat{text-decoration:none;color:inherit}
a.stat:hover{border-color:#b9cde0}

.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;align-items:end;margin:14px 0}
.filters .field{margin:0}
.filters .acciones{display:flex;gap:8px}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}
table{width:100%;border-collapse:collapse;font-size:13px;min-width:900px}
th,td{padding:12px 12px;border-bottom:1px solid #e8eef4;text-align:left;vertical-align:top}
th{background:#f1f6fa;color:#35536e;font-size:11px;text-transform:uppercase;letter-spacing:.6px;white-space:nowrap}
tbody tr:hover{background:#f9fbfd}
tbody tr:last-child td{border-bottom:0}
td.acc{white-space:nowrap}
.count{color:var(--muted);font-size:13px;margin:6px 0 0}
.pager{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px;align-items:center;font-size:13px;color:var(--muted)}
.pager a,.pager span.cur{padding:7px 12px;border-radius:9px;border:1px solid var(--line);background:#fff;text-decoration:none;color:#31516f;font-weight:700}
.pager span.cur{background:var(--navy);color:#fff;border-color:var(--navy)}
.link{color:var(--blue);font-weight:800;text-decoration:none}
.link:hover{text-decoration:underline}
.muted{color:var(--muted)}
.mono{font-family:Consolas,monospace;font-size:12px}

.estado{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}
.est-enviado{background:#e1f4e9;color:#176b46}
.est-pendiente{background:#edf1f5;color:#536273;border:1px solid #d7e0e8}
.est-manana{background:#fff3cd;color:#856404;border:1px solid #e7cf78}
.est-hoy{background:#ffe4c2;color:#8a4b00;border:1px solid #f2b36a}
.est-vencido{background:#fde2e2;color:#a1262f;border:1px solid #efb5b5}
.q-Enviado{background:#e1f4e9;color:#176b46}
.q-Pendiente,.q-Reintentar{background:#fff3cd;color:#856404}
.q-En-proceso{background:#eaf3fb;color:#1c4a6e}
.q-Error{background:#fde2e2;color:#a1262f}
.wa-icon{display:inline-flex;align-items:center;gap:6px;margin-top:7px;padding:6px 10px;border-radius:999px;background:#e1f4e9;color:#16834d!important;border:1px solid #bfe5ce;font-weight:800;font-size:12px;text-decoration:none;white-space:nowrap}
.wa-icon:hover{background:#d3f0df}

.exp-card{position:relative;overflow:hidden;background:#fff;border:1px solid #dce7f0;border-radius:16px;padding:18px 18px 18px 24px;box-shadow:0 5px 18px rgba(25,67,100,.07);margin-bottom:16px}
.exp-card:before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:#246b91}
.exp-card.c2:before{background:#6b4f9b}.exp-card.c3:before{background:#2f7d63}.exp-card.c4:before{background:#b36b2c}
.exp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;border-bottom:1px solid #e8eef3;padding-bottom:12px;flex-wrap:wrap}
.exp-label{display:inline-block;padding:3px 8px;border-radius:999px;background:#edf4f8;color:#32627f;font-size:9px;font-weight:900;letter-spacing:.08em;margin-bottom:5px}
.exp-title{font-size:17px;font-weight:800;color:#174f78}
.exp-meta{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;padding:12px 0}
.exp-meta div{background:#f7fafc;border-radius:10px;padding:9px 12px}
.exp-meta span,.doc-title{display:block;font-size:11px;color:#71808c;font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-bottom:5px}
.exp-meta b{font-size:13px;color:#263f52}
.docs-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;background:#f8fafc;border-radius:12px;padding:10px}
.doc-col{min-width:0;border:1px solid #e0e8ee;border-radius:12px;padding:11px;background:#fff}
.doc-title{min-height:28px;color:#245c80}
.file-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:8px 9px;border-radius:8px;background:#175b86;color:#fff!important;text-decoration:none;font-size:12px;font-weight:700}
.file-btn:hover{background:#0f496e}
.plazo-alert{margin:12px 0 0;padding:11px 14px;border-radius:12px;font-weight:900;font-size:13px}
.plazo-alert.est-hoy{background:#ffe4c2;color:#8a4b00;border:1px solid #f2b36a}
.plazo-alert.est-manana{background:#fff3cd;color:#856404;border:1px solid #e7cf78}
.plazo-alert.est-vencido{background:#fde2e2;color:#a1262f;border:1px solid #efb5b5}
.dictamen-area{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding:12px;border-radius:10px;background:#fafcfd;border-top:1px solid #e8eef3}
.dictamen-area form{display:flex;gap:10px;flex-wrap:wrap;align-items:center;width:100%}
.dictamen-area input[type=file]{width:auto;flex:1 1 220px;padding:8px}
.dictamen-area input[type=text]{flex:2 1 260px;padding:9px 12px}
.dict-label{font-size:12px;font-weight:700;color:#425b6c}
.empty{text-align:center;padding:30px;color:#6d7c87;border:1px dashed #cddbe5;border-radius:12px}
.kv{display:grid;grid-template-columns:200px 1fr;gap:8px 16px;font-size:14px}
.kv dt{color:var(--muted);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.4px;padding-top:2px}
.kv dd{margin:0}

.login-accent{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff 0%,#f6fbff 55%,#eef5ff 100%);box-shadow:0 18px 45px rgba(16,43,70,.12)}
.login-accent:before{content:'';position:absolute;left:0;top:0;right:0;height:7px;background:linear-gradient(90deg,#075a9b,#2aa6d6,#d5b76b,#075a9b)}
.login-accent h2{color:var(--navy);font-weight:800;margin-top:6px}

.foot{text-align:center;color:#7a8b9d;font-size:12px;padding:24px 8px 0}

@media(max-width:900px){.docs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.exp-meta{grid-template-columns:1fr}.row3{grid-template-columns:1fr}}
@media(max-width:700px){
  .wrap{padding:12px}
  .card,.table-card{padding:18px}
  .row{grid-template-columns:1fr;gap:0}
  .institutional-banner{border-radius:14px;margin-bottom:14px}
  .tab{flex:1;text-align:center;padding:10px 8px;font-size:12px}
  .kv{grid-template-columns:1fr}
  .docs-grid{grid-template-columns:1fr}
}
