:root{color-scheme:dark;--bg:#071824;--panel:#112c3d;--panel2:#163a50;--border:#355c72;--fg:#edf8fc;--muted:#a9c7d7;--cyan:#58d5f0;--good:#5ae5ae;--warn:#ffc67c}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:radial-gradient(ellipse at top left,#123f56,transparent 45%),var(--bg);color:var(--fg);min-height:100vh}h1{font-size:clamp(1.5rem,3vw,2rem);line-height:1.16;margin:7px 0 12px}h2{font-size:1.12rem;margin:0 0 10px}p{line-height:1.55}a{color:#73e0fb}button,input{font:inherit}button{cursor:pointer;border-radius:9px;padding:12px 17px;font-weight:680;border:1px solid var(--border);transition:background .15s ease}button:disabled{opacity:.52;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ffe89a;outline-offset:3px}.primary{background:#087ba0;color:white;border-color:#33bce6}.primary:hover:not(:disabled){background:#078daf}.secondary{background:#193a50;color:#eef7fd}.secondary:hover:not(:disabled){background:#245069}.small-button{padding:7px 10px;color:var(--fg);background:#153f56;font-size:12px}.link{border:0;background:transparent;color:#8ae2fa;padding:7px;text-decoration:underline}.site-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px max(18px,calc((100vw - 1200px)/2));border-bottom:1px solid #244f66;background:#0a202fcf}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--fg)}.brand img{width:100px;height:75px;object-fit:contain;background:#fff;border-radius:9px}.brand div{display:grid;gap:3px}.brand strong{font-size:17px;letter-spacing:.025em}.brand span{font-size:12px;color:#b7d1e0}.tag{border:1px solid var(--border);border-radius:24px;padding:8px 11px;color:#cce7f4;font-size:12px;white-space:nowrap}.container{max-width:1200px;padding:25px 16px;margin:auto}.card{border:1px solid var(--border);background:linear-gradient(130deg,#122f41,#0b2232);border-radius:16px;box-shadow:0 13px 35px #010b1380;padding:25px}.auth-card{max-width:540px;margin:clamp(15px,5vw,65px) auto}.heading-icon{height:44px;width:44px;border-radius:12px;background:#1a4258;display:grid;place-items:center;font-size:22px;margin-bottom:13px}.eyebrow{color:#72d9f1;font-size:11px;letter-spacing:.11em;font-weight:750;text-transform:uppercase;margin:0}.eyebrow.success{color:var(--good)}.muted{color:var(--muted)}.introduction{margin:0 0 20px}.tabs{display:flex;background:#0c2738;border:1px solid #2f5b71;border-radius:10px;padding:4px;margin-bottom:18px;gap:4px}.tabs .tab{flex:1;background:transparent;border:0;color:#adc8d6;font-size:13px}.tabs .tab.active{background:#176786;color:white}.form{display:grid;gap:15px}.form label:not(.check){display:grid;gap:7px;font-size:13px;font-weight:620}.form input:not([type=checkbox]){width:100%;padding:13px;background:#091f2e;border:1px solid #416780;color:#fff;border-radius:8px}.form input::placeholder{color:#7698ac}.form input:focus{border-color:#66d9ef}.form .check{font-size:12px;font-weight:400;display:flex;align-items:start;gap:8px;color:#c6dbe5}.form .check input{margin-top:2px;accent-color:#3cceef}.small{font-size:12px;color:#b7cedc}.banner{margin:0 auto 15px;max-width:850px;padding:13px 15px;border-left:4px solid var(--cyan);background:#143647;border-radius:9px;line-height:1.5}.banner.error{border-left-color:#ff7289;background:#472735}.banner.good{border-left-color:var(--good)}[hidden]{display:none!important}.dashboard{display:grid;gap:15px}.dashboard>.card{margin:0}.status-circle{display:grid;place-items:center;width:60px;height:60px;border-radius:60px;font-size:28px;background:#79552c;color:#fff}.pending{background:#684a2c}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:7px}.welcome{display:flex;gap:20px;justify-content:space-between;align-items:center}.progress-card{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.sim-area{border:1px solid var(--border);background:#0a2030;border-radius:12px;overflow:hidden}.sim-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 14px;flex-wrap:wrap;border-bottom:1px solid var(--border)}.sim-area iframe{display:block;width:100%;height:min(78vh,920px);border:0;background:#0b1924}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:650px;font-size:13px;margin-top:15px}th,td{border-bottom:1px solid #36586b;padding:12px 9px;text-align:left}th{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:#abc6d4}td button{font-size:12px;padding:7px 10px}footer{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:35px;color:#92b4c6;font-size:11px}footer p{margin:0}@media(max-width:620px){.site-header{padding:12px}.site-header .brand img{height:55px;width:72px}.site-header .brand strong{font-size:12px}.tag{font-size:10px;padding:6px}.container{padding:14px 9px}.card{padding:16px}.welcome,.progress-card{align-items:stretch;flex-direction:column}.sim-area iframe{height:78vh}.sim-toolbar strong{font-size:12px}}

/* TAC JMGL sistema unificado V2 · DEMO + acceso controlado */
.portal-top-links {display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.demo-top-link,.demo-cta {color:#eafaff;text-decoration:none;border:1px solid #3a92ac;border-radius:9px;padding:9px 12px;background:#114258;font-size:12px;font-weight:700}
.demo-top-link:hover,.demo-cta:hover {background:#126685}
.demo-guest {display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center;margin:13px auto 20px}
.demo-guest .demo-cta{font-size:14px;padding:12px 16px}
.demo-guest span{font-size:12px;color:#b7d2e1}
@media(max-width:650px){.portal-top-links{width:100%;justify-content:center}.demo-top-link{font-size:12px}}

/* Evita el desbordamiento horizontal en el panel de administración móvil. */
.dashboard{min-width:0;grid-template-columns:minmax(0,1fr)}
.dashboard > *, .admin-card, .table-wrap {min-width:0;max-width:100%}
.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:650px){.site-header{flex-wrap:wrap}.site-header .brand{min-width:0}.portal-top-links{min-width:0}.admin-header{min-width:0}}
