@font-face{font-family:"Unbounded";src:url("assets/fonts/Unbounded.ttf") format("truetype");font-style:normal;font-weight:400 800;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("assets/fonts/IBMPlexSans.ttf") format("truetype");font-style:normal;font-weight:400 700;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("assets/fonts/JetBrainsMono.ttf") format("truetype");font-style:normal;font-weight:400 700;font-display:swap}
:root{color-scheme:dark;--bg:#030814;--surface:#080f20;--surface-raised:#0c162b;--ink:#f3f7ff;--ice:#dce9ff;--blue:#3773ff;--hi:#96baff;--muted:#b4c4e2;--subtle:#869bbf;--line:#273b5d;--line-soft:#1c2c48;--error:#ffb9bc;--gutter:clamp(20px,4vw,64px)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-width:280px;color:var(--ink);background:var(--bg);font:400 16px/1.55 "IBM Plex Sans",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
button,input,select{font:inherit}
button,a,input,select{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
a{color:inherit}
button{cursor:pointer}
img{max-width:100%;height:auto}
::selection{color:var(--bg);background:var(--hi)}
:focus-visible{outline:2px solid var(--hi);outline-offset:4px}
.page-shell{width:min(1512px,100%);min-height:100svh;margin-inline:auto;padding-inline:max(var(--gutter),env(safe-area-inset-left)) max(var(--gutter),env(safe-area-inset-right));display:flex;flex-direction:column}
.main-content{flex:1;min-width:0}
.skip-link{position:absolute;z-index:10;top:12px;left:20px;padding:10px 16px;color:var(--bg);background:var(--ice);transform:translateY(-180%);font-weight:600}
.skip-link:focus{transform:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:24px;border-bottom:1px solid var(--line)}
.brand{display:inline-flex;align-items:center;gap:12px;min-height:44px;text-decoration:none;flex-shrink:0}
.brand-iso{display:block;width:29px}
.brand-word{display:block;width:112px}
.header-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:24px}
.access-tag,.eyebrow,.read-label,.nav-index,.figure-label,.site-footer{font:500 10px/1.6 "JetBrains Mono",ui-monospace,monospace;letter-spacing:.1em}
.access-tag{display:inline-flex;align-items:center;gap:9px;color:var(--muted);white-space:nowrap}
.access-dot{width:5px;height:5px;border:1px solid var(--hi);border-radius:50%}
.logout-form{margin:0;padding:0}
.logout-button{display:flex;align-items:center;gap:14px;min-height:44px;border:0;border-bottom:1px solid var(--line);padding:0;background:none;color:var(--ice);font-size:13px}
.logout-button span{font-family:"JetBrains Mono",ui-monospace,monospace;color:var(--hi)}
.logout-button:hover{color:var(--hi);border-color:var(--hi)}
.site-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px 24px;margin-top:56px;padding-block:21px max(24px,env(safe-area-inset-bottom));border-top:1px solid var(--line);color:var(--subtle);font-size:9px}
.site-footer p{margin:0}
.eyebrow{margin:0 0 20px;color:var(--hi)}
h1,h2,h3{font-family:"Unbounded",system-ui,sans-serif;font-weight:500;letter-spacing:-.035em}
h1{margin:0;font-size:clamp(29px,3.2vw,44px);line-height:1.2;overflow-wrap:anywhere}
h2{margin:0;font-size:18px;line-height:1.4}
p{margin:0}
.button{display:inline-flex;justify-content:center;align-items:center;gap:24px;min-height:46px;border:1px solid transparent;padding:10px 19px;text-decoration:none;font-size:14px;font-weight:600;line-height:1.5;transition:background-color .16s,color .16s,border-color .16s}
.button span{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:16px;font-weight:400}
.button-primary{color:#fff;background:#285fd8;border-color:#4a83ff}
.button-primary:hover{background:#3472f3;border-color:var(--hi)}
.button-secondary{color:var(--ice);background:var(--surface-raised);border-color:#46638e}
.button-secondary:hover{color:#fff;background:#162b4d;border-color:var(--hi)}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field label{color:var(--ice);font-size:13px;font-weight:500}
.field input,.field select{display:block;width:100%;min-width:0;min-height:46px;border:1px solid #405678;border-radius:0;padding:10px 12px;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.5;accent-color:var(--blue)}
.field input:hover,.field select:hover{border-color:#6c8ab8}
.field input:focus,.field select:focus{border-color:var(--hi)}
.field input::placeholder{color:#899dbd;opacity:1}
.field input[type="date"]{color-scheme:dark;min-width:0;font-family:"IBM Plex Sans",system-ui,sans-serif}
.field input[type="search"]::-webkit-search-cancel-button{cursor:pointer}
.field select{padding-right:24px}
.field-hint{color:var(--muted);font-size:12px;line-height:1.5}
.notice{border:1px solid var(--line);border-left:3px solid var(--hi);padding:15px 17px;margin-block:20px;background:var(--surface);font-size:14px;line-height:1.55;overflow-wrap:anywhere}
.notice-error{border-color:#6f414c;border-left-color:var(--error);color:#ffd8db;background:#1b111d}
.notice-info{color:var(--ice)}
.login-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,428px);align-items:start;gap:clamp(50px,9vw,144px);max-width:1160px;margin-inline:auto;padding-block:clamp(58px,8vw,112px) 36px}
.login-intro h1{max-width:13ch;font-size:clamp(34px,4vw,57px);line-height:1.12}
.login-lede{max-width:39ch;margin-top:26px;color:var(--muted);font-size:18px;line-height:1.6}
.ascii-figure{position:relative;width:min(360px,100%);margin-top:36px;padding:20px 12px 0;border-top:1px solid var(--line);overflow:hidden;user-select:none}
.ascii-code{margin:0;text-align:center;white-space:pre;font:400 8.3px/1.15 "JetBrains Mono",ui-monospace,monospace;color:var(--hi);background:linear-gradient(115deg,#5279bc 12%,#9dc0ff 39%,#edf7ff 50%,#92b8ff 62%,#456aab 88%);background-size:220% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:ascii-scan 13s linear infinite}
.figure-cross{position:absolute;color:var(--hi);font:400 15px/1 "JetBrains Mono",ui-monospace,monospace}
.figure-cross-start{top:10px;left:1px}
.figure-cross-end{right:1px;bottom:34px}
.figure-label{display:flex;justify-content:space-between;gap:16px;padding-top:15px;margin-top:16px;border-top:1px solid var(--line);font-size:8px;color:var(--subtle)}
.login-card{padding:30px 30px 24px;border:1px solid var(--line);border-top:3px solid var(--blue);background:var(--surface)}
.login-card .eyebrow{margin-bottom:17px;font-size:9px}
.login-card h2{font-size:24px;line-height:1.25}
.card-description{margin-top:14px;color:var(--muted);font-size:14px;line-height:1.55}
.login-form{display:grid;gap:21px;margin-top:28px}
.login-form .field{gap:7px}
.otp-input{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:18px!important;letter-spacing:.18em}
.login-submit{justify-content:space-between;width:100%;margin-top:4px}
.login-footnote{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);color:var(--subtle);font-size:12px;line-height:1.6}
.section-nav{display:flex;gap:32px;border-bottom:1px solid var(--line)}
.section-nav a{display:inline-flex;align-items:center;gap:12px;min-height:63px;padding:15px 1px 12px;border-bottom:3px solid transparent;text-decoration:none;color:var(--muted);font-size:14px;font-weight:500}
.section-nav a[aria-current="page"]{border-bottom-color:var(--blue);color:var(--ink)}
.section-nav a:hover{color:var(--hi)}
.nav-index{font-size:9px;color:var(--subtle);letter-spacing:0}
.section-nav a[aria-current="page"] .nav-index{color:var(--hi)}
.dashboard{padding-top:43px}
.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;margin-bottom:31px}
.page-heading .eyebrow{margin-bottom:13px;font-size:9px}
.page-description{max-width:75ch;margin-top:17px;color:var(--muted);font-size:15px;line-height:1.6}
.read-label{flex-shrink:0;margin-top:7px;padding:6px 10px;border:1px solid var(--line);color:var(--muted);font-size:9px}
.filter-panel{padding:24px;border:1px solid var(--line);background:var(--surface)}
.filter-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px 24px;margin-bottom:21px}
.filter-heading h2{font-family:"IBM Plex Sans",system-ui,sans-serif;letter-spacing:0;font-size:17px;font-weight:500}
.filter-heading p{color:var(--subtle);font-size:12px}
.filter-fields{display:grid;grid-template-columns:minmax(220px,2fr) minmax(130px,1fr) minmax(150px,1fr) minmax(145px,.9fr) minmax(145px,.9fr);gap:15px}
.filter-fields-subs{grid-template-columns:minmax(250px,2fr) minmax(170px,1fr) minmax(160px,1fr) minmax(160px,1fr)}
.filter-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:22px}
.filter-buttons{display:flex;align-items:center;gap:24px}
.clear-link{display:inline-flex;align-items:center;min-height:44px;text-decoration-thickness:1px;text-underline-offset:4px;font-size:13px;color:var(--muted)}
.clear-link:hover{color:var(--ink)}
.results-panel{margin-top:34px}
.results-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding-bottom:18px}
.results-heading h2{font-size:18px}
.results-heading p{color:var(--muted);font-size:12px}
.result-number{color:var(--ice);font-family:"JetBrains Mono",ui-monospace,monospace}
.result-separator{margin-inline:10px;color:var(--line)}
.records-table-wrap{width:100%}
.records-table{border-collapse:collapse;width:100%;table-layout:fixed;text-align:left}
.records-table th{padding:14px 16px 14px 0;border-bottom:1px solid var(--line);color:var(--subtle);font:500 9px/1.5 "JetBrains Mono",ui-monospace,monospace;letter-spacing:.07em;text-transform:uppercase}
.records-table th:first-child{width:170px}
.records-table th:nth-last-child(2){width:135px}
.records-table th:last-child{width:155px;padding-right:0}
.subscribers-table th:nth-last-child(2){width:auto}
.records-table td{vertical-align:top;border-bottom:1px solid var(--line-soft);padding:21px 16px 21px 0;font-size:14px;overflow-wrap:anywhere}
.records-table td:last-child{padding-right:0}
.records-table tbody tr:hover{background:#071023}
.cell-date{color:var(--muted);font:400 11px/1.7 "JetBrains Mono",ui-monospace,monospace!important}
.cell-type{color:var(--muted)}
.record-subject{display:block;color:var(--ice);font:400 13px/1.7 "JetBrains Mono",ui-monospace,monospace;overflow-wrap:anywhere;word-break:normal}
.record-details{display:grid;gap:7px;margin:13px 0 0;color:var(--muted);font-size:12px;line-height:1.55}
.record-details div{display:grid;grid-template-columns:minmax(80px,140px) minmax(0,1fr);gap:4px 12px}
.record-details dt{color:var(--subtle)}
.record-details dd{margin:0;overflow-wrap:anywhere}
.status-label{display:inline-block;max-width:100%;padding:3px 8px;border:1px solid #3a557d;color:var(--ice);background:#0a1931;font:400 11px/1.6 "JetBrains Mono",ui-monospace,monospace;overflow-wrap:anywhere}
.mobile-label{display:none}
.empty-state{padding:47px 20px 54px;border-bottom:1px solid var(--line);text-align:center}
.empty-mark{display:block;margin-bottom:18px;color:var(--hi);font:400 29px/1.3 "JetBrains Mono",ui-monospace,monospace;letter-spacing:.05em}
.empty-state h3{margin:0;font-size:17px;line-height:1.5}
.empty-state p{max-width:48ch;margin:12px auto 0;color:var(--muted);font-size:14px}
.pagination{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:24px}
.pagination p{max-width:40ch;color:var(--subtle);font-size:12px}
.pagination form{margin:0}
.locked-content{max-width:820px;padding-block:clamp(65px,12vw,150px)}
.locked-mark{display:block;margin:38px 0 24px;color:var(--hi);font:400 45px/1.3 "JetBrains Mono",ui-monospace,monospace}
.locked-content h1{max-width:18ch}
.locked-content>p:not(.eyebrow){max-width:52ch;margin-top:25px;color:var(--muted);font-size:18px;line-height:1.65}
.locked-content .button{margin-top:32px}
@keyframes ascii-scan{0%{background-position:0 50%;opacity:.8}50%{background-position:100% 50%;opacity:1}100%{background-position:0 50%;opacity:.8}}
@media(min-width:1600px){.login-layout{padding-top:118px}}
@media(max-width:1199px){.filter-fields{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr)}.field-search{grid-column:span 2}.filter-fields-subs .field-search{grid-column:span 2}.filter-fields-subs{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-fields-subs .field-status{grid-column:auto}.filter-fields-subs .field-from,.filter-fields-subs .field-until{grid-column:auto}.records-table th:first-child{width:150px}.records-table th:nth-last-child(2){width:110px}.records-table th:last-child{width:138px}.subscribers-table th:nth-last-child(2){width:auto}}
@media(max-width:899px){.header-actions{gap:18px}.login-layout{grid-template-columns:minmax(0,1fr) minmax(300px,1fr);gap:35px}.login-intro h1{font-size:38px}.login-lede{font-size:16px}.login-card{padding:25px 23px 21px}.ascii-code{font-size:7.2px}.page-heading{gap:24px}.read-label{margin-top:3px}.records-table th:first-child{width:133px}.records-table th:nth-last-child(2){width:98px}.records-table th:last-child{width:124px}.subscribers-table th:nth-last-child(2){width:auto}.records-table td{padding-block:18px;padding-right:12px}.record-subject{font-size:12px}.record-details div{grid-template-columns:minmax(0,1fr);gap:1px}.record-details{gap:9px}}
@media(max-width:679px){.site-header{padding-block:17px;gap:14px}.brand{gap:9px}.brand-iso{width:25px}.brand-word{width:99px}.header-actions{gap:8px}.access-tag{font-size:8px;letter-spacing:.06em}.dashboard-page .access-tag{display:none}.logout-button{font-size:12px;gap:8px}.site-footer{margin-top:36px;font-size:8px;letter-spacing:.06em}.login-layout{grid-template-columns:minmax(0,1fr);gap:32px;padding-block:42px 8px;max-width:460px}.login-intro .eyebrow{font-size:9px;margin-bottom:18px}.login-intro h1{font-size:clamp(33px,8.8vw,45px)}.login-lede{max-width:38ch;margin-top:20px;font-size:16px}.ascii-figure{display:none}.login-card{padding:24px 22px 22px}.login-card h2{font-size:23px}.login-form{margin-top:25px;gap:19px}.section-nav{gap:26px}.section-nav a{min-height:59px;font-size:13px;gap:10px}.nav-index{font-size:8px}.dashboard{padding-top:32px}.page-heading{display:block;margin-bottom:25px}.page-heading h1{font-size:clamp(27px,6.9vw,38px);line-height:1.25}.page-heading .eyebrow{font-size:8px;margin-bottom:14px}.page-description{margin-top:16px;font-size:14px;line-height:1.6}.read-label{display:inline-block;margin-top:20px;padding:5px 8px;font-size:8px}.filter-panel{padding:20px 17px}.filter-heading{margin-bottom:19px}.filter-heading h2{font-size:16px}.filter-heading p{font-size:11px}.filter-fields,.filter-fields-subs{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}.field-search,.filter-fields-subs .field-search{grid-column:1/-1}.filter-fields-subs .field-status{grid-column:1/-1}.field input,.field select{padding-inline:10px;min-height:46px;font-size:16px}.field label{font-size:12px}.field input[type="date"]{font-size:14px;padding-inline:8px}.field-hint{font-size:11px}.filter-actions{display:block;margin-top:19px}.filter-buttons{justify-content:space-between;margin-top:16px}.filter-buttons .button{min-width:130px}.results-panel{margin-top:29px}.results-heading{align-items:flex-start;flex-wrap:wrap;gap:10px 20px;padding-bottom:16px}.results-heading h2{font-size:17px}.results-heading p{font-size:11px;margin-top:3px}.result-separator{margin-inline:7px}.notice{font-size:13px;padding:13px 14px}.records-table,.records-table tbody{display:block;width:100%}.records-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.records-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:17px 20px;border-bottom:1px solid var(--line);padding-block:21px}.records-table td{display:block;min-width:0;border:0;padding:0!important;font-size:13px}.records-table .cell-date{grid-column:1/-1;display:flex;align-items:baseline;gap:12px;font-size:11px!important}.records-table .cell-data{grid-column:1/-1}.records-table .cell-type{grid-column:1}.records-table .cell-state{grid-column:2}.subscribers-table .cell-state{grid-column:1/-1}.mobile-label{display:block;margin-bottom:5px;color:var(--subtle);font:400 9px/1.5 "JetBrains Mono",ui-monospace,monospace;letter-spacing:.03em}.cell-date .mobile-label{margin:0}.record-subject{font-size:13px;line-height:1.6}.record-details{font-size:12px;gap:8px;margin-top:13px}.record-details div{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:8px}.status-label{font-size:10px}.empty-state{padding:38px 8px 42px}.empty-state h3{font-size:16px}.empty-state p{font-size:13px;line-height:1.65}.empty-mark{font-size:25px}.pagination{display:block;padding-top:21px}.pagination p{max-width:none;margin-bottom:16px;font-size:11px}.pagination .button{width:100%;justify-content:space-between}.locked-content{padding-block:56px 30px}.locked-content .eyebrow{font-size:9px}.locked-content h1{font-size:33px}.locked-mark{margin-top:30px;font-size:36px}.locked-content>p:not(.eyebrow){font-size:16px;margin-top:21px}}
@media(max-width:359px){:root{--gutter:16px}.brand-word{width:88px}.access-tag{font-size:7px;gap:6px}.login-card{padding-inline:18px}.login-card h2{font-size:21px}.page-heading h1{font-size:26px}.section-nav{gap:20px}.section-nav a{font-size:12px;gap:8px}.record-details div{grid-template-columns:minmax(0,1fr);gap:1px}.results-heading p{width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}.ascii-code{animation:none;background-position:40% 50%;opacity:.9}}
@media(forced-colors:active){.ascii-code{background:none;-webkit-text-fill-color:CanvasText;color:CanvasText}.status-label,.button,.field input,.field select{border:1px solid ButtonText}.access-dot{background:CanvasText}}

/* Acceso reducido al formulario, sin cabecera, portada o pie. */
.access-only{min-height:100svh}
.access-only-main{display:grid;place-items:center;min-height:100svh;padding:24px 16px}
.access-only-card{width:100%;max-width:430px;margin:0;padding:clamp(24px,5vw,34px)}
.access-only .login-form{margin-top:0}
