/* Capa exclusivamente visual y adaptable. El motor de asignaciones permanece intacto. */
:root{--bg:#f3f6fb;--black:#172940;--black-2:#243650;--red:#d42e43;--red-dark:#a92235;--line:#e2e8f0;--shadow:0 12px 36px rgba(26,44,70,.055);--shadow-strong:0 30px 70px rgba(26,44,70,.15)}
body{background:radial-gradient(ellipse 85% 280px at 50% -100px,rgba(211,224,242,.65),transparent),var(--bg);color:#24344b}
.top{background:#172940;border-bottom:2px solid #d42e43;box-shadow:0 4px 18px rgba(11,25,43,.08)}
.brand{max-width:360px}.brand strong{font-weight:850;line-height:1.22}.brand span{color:#b1c0d1}
.mark{background:linear-gradient(135deg,#d93149,#e75162);box-shadow:0 8px 19px rgba(227,56,78,.2)}
.nav a{border-radius:9px;color:#ccdaea}.nav a.active,.nav a:hover{background:#2a3d58}.nav a.active{box-shadow:inset 0 -2px 0 #e75162}
.userbox{flex-wrap:wrap;justify-content:flex-end;row-gap:5px}.userbox a{white-space:nowrap}
.container{width:100%}.container.wide{max-width:1500px}
.hero>div:first-child{border-top-color:#223b5d}
.hero h1,.panel-head h2{color:#192b44}.hero p,.panel-head p{line-height:1.65}
.hero>div:first-child,.my-result,.toolbar,.panel{border-color:#e2e8f1;box-shadow:0 8px 25px rgba(21,41,67,.043)}
.panel{border-radius:15px}.panel-head{background:linear-gradient(120deg,#fff,#fbfcff);padding:20px 23px}
.eyebrow{color:#be2940}.my-result{border-top-color:#d42e43}.my-result strong,.totals strong{color:#1b3150}
.btn{min-height:43px;white-space:normal;text-align:center}
.btn:focus-visible,.nav a:focus-visible,.userbox a:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid #f18b97;outline-offset:3px}
.search,.lookup input,.lookup select,.form input,.filter-row select{max-width:100%;border-color:#d5dfeb}
.table-wrap{scrollbar-color:#b1bed0 #f3f6fa;overscroll-behavior-x:contain}
th{background:#f1f5fa;color:#67758b;letter-spacing:.055em}
td{color:#42536a}
.seat{max-width:100%;color:#172940}
.site-footer{width:100%;border-color:#dde4ee;padding-top:23px}
.login-visual{background:#14263e}.login-card-wrap{background:linear-gradient(135deg,#f4f7fb,#eaf0f8)}
.login-card{border-color:#dfe6ef}.legal-hero{background:#172940}
@media(max-width:1150px){
  .top{gap:12px;padding:12px 18px}
  .brand{max-width:270px}
  .userbox{gap:10px}
}
@media(max-width:930px){
  .top{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 12px;align-items:center;padding:12px 16px 11px}
  .top .brand{grid-column:1;max-width:none;min-width:0}
  .top .brand strong{font-size:14px;overflow-wrap:anywhere}.top .brand span{font-size:11px}
  .top .userbox{grid-column:2;grid-row:1;gap:8px;font-size:11px}
  .top .nav{grid-column:1/-1;grid-row:2;order:0;width:100%;display:flex;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;padding:8px 1px 2px;border-top:1px solid rgba(255,255,255,.14);gap:5px}
  .top .nav::-webkit-scrollbar{display:none}
  .top .nav a{display:inline-flex;align-items:center;justify-content:center;flex:1 0 auto;min-height:38px;padding:9px 11px;font-size:12px;white-space:nowrap}
  .top .userbox span{display:none}
  .container{margin-top:18px}
}
@media(max-width:640px){
  html{font-size:14px}
  .top{grid-template-columns:minmax(0,1fr);padding:10px 12px}
  .top .brand{grid-column:1;grid-row:1}.top .mark{width:37px;height:37px;flex:0 0 37px}
  .top .nav{grid-row:2;grid-column:1;margin:0}
  .top .userbox{grid-row:3;grid-column:1;justify-content:flex-start;gap:6px 12px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.1);padding-top:8px}
  .top .userbox a{font-size:11px;line-height:1.6}
  .container,.container.wide{margin:15px auto 0;padding:0 11px 38px}
  .hero{gap:12px;margin-bottom:13px}.hero>div:first-child,.my-result{padding:22px 19px}
  .hero h1{font-size:clamp(25px,7.5vw,30px)}.hero p{font-size:13px;line-height:1.6}
  .my-result{gap:4px}.my-result strong{font-size:22px}
  .toolbar{padding:16px;gap:15px;margin-bottom:13px}
  .totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 8px;width:100%}
  .totals strong{font-size:24px}
  .toolbar-actions{flex-direction:column;align-items:stretch;width:100%}
  .panel{margin-bottom:13px;border-radius:13px}
  .panel-head{padding:17px 16px;gap:11px}
  .panel-head h2{font-size:17px}.panel-head p{font-size:12px}
  .filter-row{display:grid;grid-template-columns:minmax(0,1fr);gap:9px;width:100%}
  .filter-row select,.filter-row input[type=text],.filter-row .search{min-width:0;width:100%;min-height:43px}
  .filter-row .check{min-height:36px}
  .search{min-width:0;width:100%}
  .lookup{grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%}
  .lookup>*{min-width:0;max-width:100%}
  .site-footer{margin-bottom:0;padding:20px 13px 30px;gap:14px}.site-footer nav{gap:10px 16px}
  .seat-province-table,.seat-province-table tbody,.seat-province-table tr,.seat-province-table td{display:block;width:100%;min-width:0}
  .seat-province-table thead{display:none}
  .seat-province-table tbody{padding:11px;display:grid;gap:10px}
  .seat-province-table tbody tr{border:1px solid #e0e7f1;background:#fff;border-radius:12px;padding:11px 14px;box-shadow:0 4px 12px rgba(22,42,64,.04)}
  .seat-province-table tbody td{display:flex;align-items:center;justify-content:space-between;gap:12px;white-space:normal;text-align:right;padding:8px 0;border-bottom:1px solid #eff2f7;font-size:13px}
  .seat-province-table tbody td:last-child{border:0}
  .seat-province-table tbody td:first-child{font-size:15px;font-weight:850;color:#1e3858}
  .seat-province-table tbody td:nth-child(2){color:#7c899a;font-size:12px}
  .seat-province-table tbody td:nth-child(n+3):before{display:block;flex:1 1 auto;text-align:left;font-weight:650;font-size:11px;color:#8390a2}
  .seat-province-table tbody td:nth-child(3):before{content:'Plazas disponibles'}
  .seat-province-table tbody td:nth-child(4):before{content:'Asignados'}
  .seat-province-table tbody td:nth-child(5):before{content:'Último orden'}
  .seat-province-table .seat{width:98px;min-height:39px;text-align:center;touch-action:manipulation}
  .opponents,.opponents tbody,.opponents tr,.opponents td{display:block;width:100%;min-width:0!important}
  .opponents thead{display:none}
  .opponents tbody{display:grid;gap:10px;padding:11px}
  .opponents tbody tr{background:#fff;border:1px solid #e0e7f1;padding:9px 13px;border-radius:12px;content-visibility:auto;contain-intrinsic-size:240px}
  .opponents tbody td{display:flex;justify-content:space-between;gap:15px;padding:8px 0!important;white-space:normal;text-align:right;font-size:12px;min-width:0!important;border-bottom:1px solid #eff2f7;overflow-wrap:anywhere}
  .opponents tbody td:last-child{border:0}
  .opponents tbody td:before{display:block;flex:0 0 100px;text-align:left;font-size:10px;color:#7e8a9a;font-weight:800;line-height:1.4}
  .opponents tbody td:nth-child(1):before{content:'Orden'}
  .opponents tbody td:nth-child(2):before{content:'Turno'}
  .opponents tbody td:nth-child(3):before{content:'Sede examen'}
  .opponents tbody td:nth-child(4):before{content:'Preferencias'}
  .opponents tbody td:nth-child(5):before{content:'Asignación'}
  .opponents tbody td:nth-child(6):before{content:'Puesto provincial'}
  .opponents tbody td:nth-child(4){font-size:11px;line-height:1.6}
  .opponents tbody td:nth-child(5){color:#a9283d;font-weight:800}
  .login-shell{display:flex;flex-direction:column;min-height:100dvh}
  .login-visual{min-height:0;padding:25px 22px 24px}
  .login-copy{margin:26px 0 16px}.login-copy h1{font-size:clamp(31px,9vw,40px);line-height:1.07;margin:10px 0 13px}
  .login-copy>p{margin:0 0 8px}.visual-foot{margin-top:10px}
  .login-card-wrap{padding:16px 12px 30px;display:block;flex:1}
  .login-card{width:100%;padding:24px 19px}
  .legal-top .nav{grid-column:1;grid-row:2;width:100%;border-top:1px solid rgba(255,255,255,.15)}
  .legal-container{margin-top:16px;padding:0 11px 32px}
  .legal-hero{padding:24px 20px}.legal-hero h1{font-size:29px}
  .legal-card{padding:23px 18px}
}
@media(max-width:385px){.top .nav a{padding:9px 8px;font-size:11px}.lookup{grid-template-columns:1fr}.lookup .btn{grid-column:1}.top .brand strong{font-size:12px}.toolbar .totals{gap:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:0s!important}}

/* Paginación ligera de la lista en escritorio y móvil. */
.opponent-pagination{display:flex;align-items:center;justify-content:center;gap:14px;padding:18px;flex-wrap:wrap;border-top:1px solid #e2e8f0}
.opponent-pagination[hidden]{display:none}
.opponent-pagination span{font-size:13px;font-weight:650;color:#43556c;text-align:center}
.opponent-pagination .btn{min-height:42px}
.opponent-pagination button:disabled,.historical-seats-btn:disabled{opacity:.43;cursor:not-allowed;transform:none;box-shadow:none}
.toolbar-actions:has(.historical-seats-btn){flex-wrap:wrap;justify-content:flex-end}
.historical-seats-btn{background:#e9f1fc;color:#17436d;border:1px solid #bfcee2}
.historical-seats-btn:hover:not(:disabled){background:#dceafd}
.historical-seat-note{flex-basis:100%;width:100%;margin:12px 0 0;font-size:12px;line-height:1.5;color:#52647b}
@media(max-width:640px){
 .opponent-pagination{padding:14px 9px;gap:9px}
 .opponent-pagination span{flex:1 0 100%;order:-1}
 .opponent-pagination .btn{flex:1;min-width:0}
 .toolbar-actions:has(.historical-seats-btn){display:flex;flex-direction:row;flex-wrap:wrap}
 .toolbar-actions:has(.historical-seats-btn) .btn{flex:1 1 calc(50% - 8px);min-width:0}
 .historical-seat-note{font-size:12px}
}
.toolbar:has(.historical-seat-note){flex-wrap:wrap}
