:root{--navy:#071c3c;--blue:#1167d8;--cyan:#25b8e9;--ink:#10213c;--muted:#6c7890;--line:#e5eaf2;--bg:#f5f7fb;--white:#fff;--green:#19a974;--red:#df4b5f;--shadow:0 16px 38px rgba(10,32,67,.09)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:"DM Sans",sans-serif}.sidebar{position:fixed;inset:0 auto 0 0;width:242px;background:linear-gradient(180deg,#061a38,#09264f);padding:28px 18px;color:white;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 34px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--cyan),var(--blue));font:800 23px Manrope;box-shadow:0 8px 24px #0b67bc66}.brand div{display:flex;flex-direction:column}.brand strong{font:800 18px Manrope;letter-spacing:.08em}.brand small{color:#9fb4d1}nav{display:grid;gap:7px}.nav-item{border:0;background:transparent;color:#aebed5;text-align:left;padding:13px 14px;border-radius:11px;font:600 14px "DM Sans";cursor:pointer;display:flex;gap:12px;align-items:center}.nav-item span{font-size:19px;width:22px}.nav-item:hover,.nav-item.active{background:#ffffff12;color:white}.nav-item.active{box-shadow:inset 3px 0 var(--cyan)}.sidebar-status{margin-top:auto;border-top:1px solid #ffffff18;padding:20px 10px 0;display:flex;gap:10px;align-items:center}.sidebar-status i,.console-head i{width:8px;height:8px;background:#31d79b;border-radius:50%;box-shadow:0 0 0 5px #31d79b20}.sidebar-status div{display:flex;flex-direction:column}.sidebar-status strong{font-size:12px}.sidebar-status small{font-size:11px;color:#8da6c7;margin-top:3px}main{margin-left:242px;min-height:100vh}header{height:91px;background:#ffffffdd;backdrop-filter:blur(18px);border-bottom:1px solid var(--line);padding:0 42px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}header h1{margin:1px 0 0;font:700 21px Manrope}.eyebrow,.section-label{margin:0;color:var(--blue);font-size:10px;font-weight:800;letter-spacing:.16em}.user{display:flex;align-items:center;gap:10px}.user>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#eaf2ff;color:var(--blue);font-weight:800}.user div{display:flex;flex-direction:column}.user strong{font-size:13px}.user small{font-size:11px;color:var(--muted)}.menu-button{display:none}#app{padding:34px 42px 55px;max-width:1500px;margin:auto}.hidden{display:none!important}.hero{background:linear-gradient(125deg,#071d3e 0%,#0b3973 70%,#0b69a6 130%);border-radius:25px;color:white;padding:45px 52px;display:flex;justify-content:space-between;align-items:center;overflow:hidden;position:relative;box-shadow:0 22px 50px #092b5740}.hero:after{content:"";position:absolute;width:420px;height:420px;border:1px solid #ffffff12;border-radius:50%;right:-100px}.hero>div:first-child{position:relative;z-index:1}.tag{font-size:11px;font-weight:700;color:#9fdcff;background:#ffffff10;border:1px solid #ffffff1c;border-radius:50px;padding:7px 12px}.hero h2{font:700 37px/1.18 Manrope;margin:20px 0 12px}.hero h2 em{font-style:normal;color:#64d5fa}.hero p{color:#b9c9de;max-width:600px;margin:0 0 26px;line-height:1.65}.primary{border:0;border-radius:10px;background:linear-gradient(135deg,#1486e8,#1161d1);color:white;font:700 13px "DM Sans";padding:12px 18px;cursor:pointer;box-shadow:0 8px 18px #1167d833}.primary:hover{transform:translateY(-1px);filter:brightness(1.05)}.hero-card{z-index:1;width:265px;min-width:265px;padding:25px;background:#ffffff0c;border:1px solid #ffffff20;border-radius:19px;backdrop-filter:blur(12px);position:relative}.pulse{position:absolute;right:20px;top:20px;width:9px;height:9px;background:#35dea4;border-radius:50%;box-shadow:0 0 0 6px #35dea422}.hero-card small{display:block;font-size:9px;letter-spacing:.14em;color:#90b6d9}.hero-card>strong{display:block;font:700 27px Manrope;margin:4px 0 18px;letter-spacing:.07em}.mini-tree{display:grid;gap:9px}.mini-tree span{font-size:11px;color:#c1d4e9;padding-left:14px;position:relative}.mini-tree span:before{content:"";position:absolute;left:0;top:6px;width:6px;height:6px;border-radius:50%;background:#3bc5f2}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:22px 0}.stat{background:white;border:1px solid var(--line);border-radius:15px;padding:18px 20px;box-shadow:0 4px 14px #10213c08}.stat span{font-size:11px;color:var(--muted);font-weight:600}.stat strong{display:block;font:700 27px Manrope;margin-top:5px}.stat:nth-child(4) strong{color:var(--green)}.panel{background:white;border:1px solid var(--line);border-radius:17px;padding:23px;box-shadow:0 6px 24px #11284a08}.panel-head,.toolbar{display:flex;align-items:center;justify-content:space-between}.panel h3,.toolbar h2{margin:4px 0 0;font:700 19px Manrope}.toolbar{margin-bottom:25px}.toolbar h2{font-size:26px}.toolbar p{margin:6px 0 0;color:var(--muted);font-size:13px}.text-button,.back{border:0;background:none;color:var(--blue);font-weight:700;cursor:pointer}.data-table{width:100%;border-collapse:collapse;margin-top:17px}.data-table th{text-align:left;color:#8b95a7;font-size:10px;letter-spacing:.08em;padding:10px;border-bottom:1px solid var(--line)}.data-table td{padding:15px 10px;border-bottom:1px solid #eef1f6;font-size:13px}.data-table tr:last-child td{border:0}.tid{font:700 13px Manrope;color:var(--blue);letter-spacing:.05em}.status{display:inline-flex;align-items:center;gap:6px;border-radius:20px;padding:5px 9px;font-size:10px;font-weight:700}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status.active{color:#13835f;background:#e8f8f2}.status.draft{color:#a16a10;background:#fff5df}.status.inactive{color:#8993a3;background:#edf0f4}.search-wrap{background:white;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;padding:0 15px;margin-bottom:18px}.search-wrap span{font-size:22px;color:#8591a3}.search-wrap input{border:0;outline:0;width:100%;padding:14px 10px;font:13px "DM Sans";background:transparent}.terminal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.terminal-card{background:white;border:1px solid var(--line);border-radius:17px;padding:22px;cursor:pointer;transition:.2s;box-shadow:0 5px 18px #10213c06}.terminal-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#bcd6f5}.terminal-card-head{display:flex;justify-content:space-between;align-items:flex-start}.terminal-icon{width:42px;height:42px;border-radius:12px;background:#eaf3ff;color:var(--blue);display:grid;place-items:center;font-size:20px}.terminal-card h3{font:700 18px Manrope;margin:16px 0 4px;letter-spacing:.05em}.terminal-card p{font-size:12px;color:var(--muted);margin:0;min-height:18px}.counts{display:flex;gap:10px;margin-top:19px;border-top:1px solid var(--line);padding-top:15px}.counts span{font-size:11px;color:var(--muted);background:#f5f7fa;padding:6px 9px;border-radius:7px}.back{padding:0;margin-bottom:20px}.detail-hero{background:white;border:1px solid var(--line);border-radius:18px;padding:25px;display:flex;justify-content:space-between;align-items:center}.detail-title{display:flex;gap:16px;align-items:center}.detail-title h2{margin:0;font:700 26px Manrope;letter-spacing:.06em}.detail-title p{margin:5px 0 0;color:var(--muted);font-size:12px}.merchant{margin-top:18px;background:white;border:1px solid var(--line);border-radius:17px;overflow:hidden}.merchant-head{padding:20px 23px;background:#fafbfe;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.merchant-head h3{margin:0;font:700 17px Manrope}.merchant-head p{margin:4px 0 0;font-size:11px;color:var(--muted)}.secondary{border:1px solid #bfd2ea;background:white;color:var(--blue);font:700 11px "DM Sans";padding:8px 11px;border-radius:8px;cursor:pointer}.acquirer-list{padding:9px}.acquirer-row{display:grid;grid-template-columns:36px 1fr 140px 190px 90px 150px;align-items:center;gap:12px;padding:12px;border-radius:10px}.acquirer-row:hover{background:#f7f9fc}.acq-icon{width:32px;height:32px;border-radius:9px;background:#eaf3ff;color:var(--blue);display:grid;place-items:center;font-weight:800;font-size:11px}.acquirer-row strong{font-size:13px}.acquirer-row small{display:block;color:var(--muted);font-size:10px}.row-actions{display:flex;gap:6px}.icon-button{border:1px solid var(--line);background:white;border-radius:7px;padding:6px 8px;cursor:pointer;color:#526077}.add-merchant{width:100%;margin-top:17px;border:1px dashed #aac6e8;background:#f5f9ff;color:var(--blue);border-radius:13px;padding:14px;font-weight:700;cursor:pointer}.modal-backdrop{position:fixed;inset:0;background:#07162d99;backdrop-filter:blur(5px);display:grid;place-items:center;z-index:50;padding:22px}.modal{width:min(580px,100%);max-height:90vh;overflow:auto;background:white;border-radius:20px;padding:27px;position:relative;box-shadow:0 25px 70px #0004}.modal-close{position:absolute;right:18px;top:14px;border:0;background:none;font-size:25px;color:#8090a5;cursor:pointer}.modal h2{margin:0 0 5px;font:700 22px Manrope}.modal .intro{margin:0 0 22px;color:var(--muted);font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .wide{grid-column:1/-1}label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:700;color:#536078}input,select,textarea{border:1px solid #dbe2ec;border-radius:9px;padding:11px;font:13px "DM Sans";outline:0;background:white;color:var(--ink)}input:focus,select:focus,textarea:focus{border-color:#3a8fe3;box-shadow:0 0 0 3px #1685e814}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.simulator-layout{display:grid;grid-template-columns:380px 1fr;gap:18px}.simulator-form{display:flex;flex-direction:column;gap:15px}.flow{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.flow span{font-size:9px;padding:6px;background:#eef4fc;color:#526987;border-radius:6px}.flow b{font-size:10px;color:#a1adbd}.console{background:#06172f;border-radius:17px;color:#d3e5f7;overflow:hidden;box-shadow:var(--shadow)}.console-head{display:flex;justify-content:space-between;padding:14px 17px;border-bottom:1px solid #ffffff13;color:#9fb7d1;font-size:11px}.console-head span{display:flex;align-items:center;gap:9px}.console pre{margin:0;padding:20px;max-height:430px;min-height:255px;overflow:auto;color:#7ee0c2;font:11px/1.6 Consolas,monospace;white-space:pre-wrap}.event-panel{margin-top:18px}.empty{text-align:center;color:var(--muted);padding:35px;font-size:13px}.toast{position:fixed;right:25px;bottom:25px;background:#0b254b;color:white;padding:13px 18px;border-radius:10px;box-shadow:var(--shadow);font-size:12px;opacity:0;transform:translateY(15px);pointer-events:none;transition:.25s;z-index:70}.toast.show{opacity:1;transform:none}.switch{position:relative;width:38px;height:22px}.switch input{display:none}.switch span{position:absolute;inset:0;background:#cad2de;border-radius:20px;cursor:pointer}.switch span:after{content:"";position:absolute;width:16px;height:16px;background:white;border-radius:50%;top:3px;left:3px;transition:.2s;box-shadow:0 1px 4px #0003}.switch input:checked+span{background:var(--green)}.switch input:checked+span:after{left:19px}
@media(max-width:1100px){.stats{grid-template-columns:repeat(3,1fr)}.terminal-grid{grid-template-columns:repeat(2,1fr)}.hero-card{display:none}.acquirer-row{grid-template-columns:36px 1fr 110px 160px 80px}.acquirer-row>span:nth-child(5){display:none}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.menu-button{display:block;border:0;background:none;font-size:21px}.sidebar{width:240px}main{margin:0}header{padding:0 18px;height:76px;justify-content:flex-start;gap:13px}.user{margin-left:auto}.user div{display:none}#app{padding:22px 16px}.hero{padding:30px 24px}.hero h2{font-size:28px}.stats{grid-template-columns:1fr 1fr}.terminal-grid{grid-template-columns:1fr}.simulator-layout{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.acquirer-row{grid-template-columns:34px 1fr auto}.acquirer-row>span:nth-child(3),.acquirer-row>span:nth-child(4),.acquirer-row>span:nth-child(5){display:none}.toolbar{align-items:flex-end}.toolbar p{display:none}}

.emv-toggle{justify-content:flex-start}.emv-toggle b{margin-left:auto;font-size:15px;transition:.2s}.emv-toggle.expanded b{transform:rotate(90deg)}.nav-submenu{display:grid;gap:4px;margin:0 0 7px 28px;border-left:1px solid #ffffff1b;padding-left:9px}.nav-subitem{border:0;background:transparent;color:#91a8c6;text-align:left;border-radius:8px;padding:9px 10px;font:600 12px "DM Sans";cursor:pointer}.nav-subitem:hover,.nav-subitem.active{background:#ffffff10;color:white}
.aid-list{display:grid;gap:16px}.aid-card{background:white;border:1px solid var(--line);border-radius:17px;padding:22px;box-shadow:0 5px 18px #10213c06}.aid-card-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.aid-card h3{margin:5px 0 0;font:700 18px Manrope;color:var(--blue);letter-spacing:.04em}.aid-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px;background:#f8faff;border-radius:12px}.aid-details span{min-width:0}.aid-details small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.06em}.aid-details strong{display:block;margin-top:4px;font-size:12px;overflow-wrap:anywhere}.aid-flags{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}.aid-flags span{font-size:10px;color:#7c8798;background:#edf0f4;padding:5px 8px;border-radius:12px}.aid-flags span.on{color:#117457;background:#e5f7f0}.aid-form-grid .toggle-field{min-height:46px;padding:10px 0;border-bottom:1px solid var(--line)}.emv-coming{background:white;border:1px dashed #b7c9df;border-radius:17px;padding:44px;text-align:center;color:var(--muted)}
#binsTable{overflow-x:auto}.bins-table{min-width:760px}.bins-table td{height:58px}
.emv-card-list{display:grid;gap:16px}.emv-data-card{background:white;border:1px solid var(--line);border-radius:17px;padding:22px;box-shadow:0 5px 18px #10213c06}.emv-card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.emv-card-head h3{margin:5px 0 0;font:700 18px Manrope;color:var(--blue)}.emv-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px;background:#f8faff;border-radius:12px;margin-bottom:14px}.emv-detail-grid span{min-width:0}.emv-detail-grid small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.06em}.emv-detail-grid strong{display:block;margin-top:4px;font-size:12px;overflow-wrap:anywhere}.emv-detail-grid .wide-detail{grid-column:1/-1}.hex-value{font:11px/1.55 Consolas,monospace!important;max-height:72px;overflow:auto}.key-form-grid textarea{font:11px/1.5 Consolas,monospace;word-break:break-all}
.application-list{display:grid;gap:17px}.application-card{background:white;border:1px solid var(--line);border-radius:17px;overflow:hidden;box-shadow:0 5px 18px #10213c06}.application-summary{display:grid;grid-template-columns:62px 1fr auto;gap:16px;align-items:center;padding:21px}.application-icon,.application-icon-preview{width:58px;height:58px;border-radius:14px;background:#eaf3ff;color:var(--blue);display:grid;place-items:center;font-size:28px;overflow:hidden}.application-icon img,.application-icon-preview img{width:100%;height:100%;object-fit:contain}.application-info h3{margin:3px 0;font:700 18px Manrope}.application-info p{margin:0 0 10px;color:var(--muted);font-size:11px}.version-list{border-top:1px solid var(--line);background:#fafbfe}.version-row{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:center;padding:12px 20px;border-bottom:1px solid var(--line)}.version-row:last-child{border:0}.version-row strong{display:block;font-size:12px}.version-row small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.version-row.latest{background:#f0f7ff}.latest-badge{font-size:9px;color:#117457;background:#dcf5ec;padding:5px 8px;border-radius:10px;font-weight:700}.download-link{text-decoration:none;font-size:10px}.application-icon-preview{width:82px;height:82px;margin:0 auto 18px}.upload-field small{font-weight:500;color:var(--muted)}.upload-message{margin-top:16px;padding:11px;background:#edf6ff;color:var(--blue);border-radius:9px;font-size:11px;font-weight:700}.empty.compact{padding:17px}
.currencies-table{min-width:850px}#currenciesTable{overflow-x:auto}
.loader-overlay{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:rgba(255,255,255,.72);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);z-index:9999;font-family:"DM Sans",sans-serif}.loader-logo-wrap{position:relative;width:112px;height:112px;background:#fff;border-radius:50%;padding:22px;box-shadow:0 12px 38px rgba(0,0,0,.18)}.loader-logo{width:100%;height:100%;object-fit:contain;animation:loaderSpin 1.6s cubic-bezier(.65,.05,.36,1) infinite}.loader-ring{position:absolute;inset:-9px;border-radius:50%;border:4px solid transparent;border-top-color:#d12027;border-right-color:#7cb442;border-bottom-color:#1565a8;animation:loaderSpin 1s linear infinite reverse}@keyframes loaderSpin{to{transform:rotate(360deg)}}.loader-text{text-align:center;color:#26364e;background:rgba(255,255,255,.94);padding:10px 20px;border-radius:20px;box-shadow:0 5px 16px rgba(0,0,0,.1)}.loader-text strong{font-size:14px}.loader-text small{display:block;color:#69778c;font-size:10px;margin-top:4px}.loader-text .dots span{animation:loaderBlink 1.4s infinite both;color:#7cb442}.loader-text .dots span:nth-child(2){animation-delay:.2s;color:#d12027}.loader-text .dots span:nth-child(3){animation-delay:.4s;color:#1565a8}@keyframes loaderBlink{0%,80%,100%{opacity:0}40%{opacity:1}}.upload-progress{width:min(520px,calc(100vw - 40px));background:white;border-radius:16px;padding:18px 20px;box-shadow:0 12px 35px rgba(14,38,70,.16)}.progress-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.progress-head strong{font:800 20px Manrope;color:var(--blue)}.progress-head span{font-size:11px;color:var(--muted)}.progress-track{height:13px;background:#e8edf4;border-radius:10px;overflow:hidden}.progress-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,#1565a8,#25b8e9,#7cb442);border-radius:10px;transition:width .15s linear}.upload-progress>small{display:block;margin-top:10px;color:#526077;font-size:10px;text-align:center}.interaction-locked{overflow:hidden}
@media(max-width:900px){.aid-details{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.aid-details,.emv-detail-grid{grid-template-columns:1fr}.nav-submenu{margin-left:20px}.application-summary{grid-template-columns:52px 1fr}.application-summary>.status{grid-column:1/-1;width:max-content}.version-row{grid-template-columns:1fr auto}.latest-badge{display:none}}
.terminal-grid{grid-template-columns:1fr}.terminal-list-card{display:grid;grid-template-columns:52px minmax(190px,1.2fr) minmax(180px,1fr) minmax(170px,1fr) auto auto;gap:18px;align-items:center;width:100%;background:white;border:1px solid var(--line);border-radius:17px;padding:20px 22px;cursor:pointer;transition:.2s;box-shadow:0 5px 18px #10213c06}.terminal-list-card:hover{border-color:#bcd6f5;box-shadow:var(--shadow);transform:translateY(-2px)}.terminal-list-card h3{font:700 19px Manrope;letter-spacing:.06em;margin:3px 0}.terminal-list-card p,.terminal-list-card small,.terminal-list-card span{font-size:11px}.terminal-primary p,.terminal-commerce span,.terminal-device span{display:block;color:var(--muted);margin-top:3px}.terminal-commerce strong,.terminal-device strong{display:block;font-size:13px;margin-top:5px}.terminal-list-card .counts{margin:0;padding:0;border:0;white-space:nowrap}.terminal-list-card .card-actions{display:flex;align-items:center;gap:8px}.bin-tags{display:flex;flex-wrap:wrap;gap:5px}.bin-tags span{background:#edf5ff;color:var(--blue);font-size:10px;font-weight:700;padding:5px 8px;border-radius:7px}.multi-picker{border:1px solid #dbe2ec;border-radius:10px;background:white}.multi-picker summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:12px;list-style:none}.multi-picker summary b{color:var(--blue);font-size:10px}.multi-options{max-height:280px;overflow:auto;padding:6px;border-top:1px solid var(--line)}.multi-options>label{display:grid;grid-template-columns:20px 1fr;align-items:center;padding:9px;border-radius:7px;cursor:pointer}.multi-options>label:hover{background:#f3f7fc}.multi-options input{width:16px;height:16px}.multi-options strong,.multi-options small{display:block}.multi-options small{color:var(--muted);margin-top:2px}.issuer-detail-list{display:grid;gap:9px}.issuer-detail-list>div{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);padding:12px;border-radius:10px}.issuer-detail-list strong,.issuer-detail-list small{display:block}.issuer-detail-list small{color:var(--muted);margin-top:3px}
@media(max-width:1100px){.terminal-list-card{grid-template-columns:48px 1fr 1fr auto}.terminal-device{display:none}.terminal-list-card .counts{grid-column:2/4}}
@media(max-width:760px){.terminal-list-card{grid-template-columns:42px 1fr auto;gap:12px}.terminal-commerce,.terminal-list-card .counts{grid-column:1/-1}.terminal-list-card .card-actions{grid-column:3;grid-row:1}.terminal-list-card .counts{white-space:normal}}

/* Escala tipográfica compacta v1.13 */
body{font-size:12px}.nav-item{font-size:12px;padding:11px 13px}.nav-item span{font-size:17px}.nav-subitem{font-size:11px}header h1{font-size:18px}.hero h2{font-size:32px}.toolbar h2{font-size:22px}.toolbar p{font-size:11px}.panel h3{font-size:17px}.data-table td{font-size:11px}.tid{font-size:12px}.primary{font-size:11px;padding:10px 16px}.modal h2{font-size:19px}.modal .intro{font-size:11px}label{font-size:10px}input,select,textarea{font-size:12px;padding:9px}.detail-title h2{font-size:22px}.merchant-head h3{font-size:15px}.terminal-list-card h3{font-size:17px}.terminal-commerce strong,.terminal-device strong{font-size:12px}.stat strong{font-size:23px}.empty{font-size:11px}
.issuer-selection-summary{display:flex;align-items:center;justify-content:space-between;gap:18px}.issuer-selection-summary>div{min-width:0}.selected-issuer-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.selected-issuer-chips span{padding:7px 10px;border-radius:8px;background:#eaf3ff;color:var(--blue);font-size:10px;font-weight:800}.selected-issuer-chips small,.section-help{color:var(--muted);font-size:10px;margin:0}.issuer-picker-overlay{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px;background:#07162d99;backdrop-filter:blur(5px)}.issuer-picker-window{width:min(680px,100%);max-height:82vh;display:flex;flex-direction:column;background:white;border-radius:19px;padding:23px;box-shadow:0 25px 70px #0004}.issuer-search{margin:18px 0 10px}.issuer-picker-list{display:grid;gap:7px;overflow:auto;max-height:420px;padding:3px}.issuer-picker-list>label{display:grid;grid-template-columns:22px 1fr;align-items:center;padding:12px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.issuer-picker-list>label:hover{background:#f4f8fd;border-color:#b9d4f3}.issuer-picker-list input{width:17px;height:17px}.issuer-picker-list strong,.issuer-picker-list small{display:block}.issuer-picker-list small{color:var(--muted);margin-top:3px}.user-admin-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:18px}.table-sub{display:block;color:var(--muted);font-size:9px;margin-top:3px}.role-list{display:grid;gap:9px;margin-top:15px}.role-list article{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:10px}.role-list strong,.role-list small{display:block}.role-list small{color:var(--muted);margin-top:3px}.role-list>article>span{font-size:9px;color:var(--blue);background:#eaf3ff;padding:5px 7px;border-radius:7px}.permission-table{margin-top:18px;border:1px solid var(--line);border-radius:11px;overflow:hidden}.permission-table>div{display:grid;grid-template-columns:minmax(150px,1fr) repeat(4,70px);align-items:center;padding:9px 12px;border-bottom:1px solid var(--line)}.permission-table>div:last-child{border:0}.permission-table .permission-head{background:#f5f8fc;font-size:9px;color:var(--muted)}.permission-table label{align-items:center}.permission-table input{width:16px;height:16px}.permission-hidden{display:none!important}.user .icon-button{margin-left:4px}
@media(max-width:900px){.user-admin-grid{grid-template-columns:1fr}.issuer-selection-summary{align-items:flex-start;flex-direction:column}.permission-table{overflow-x:auto}.permission-table>div{min-width:500px}}

/* Paleta blanco y gris tomada del login PMT */
:root{--navy:#374151;--blue:#4b5563;--cyan:#9ca3af;--ink:#374151;--muted:#727b89;--line:#dde1e7;--bg:#f4f5f7;--white:#fff;--green:#239b73;--red:#c94c5d;--shadow:0 16px 38px rgba(55,65,81,.12)}
body{background:radial-gradient(circle at 88% 8%,rgba(156,163,175,.1),transparent 22%),linear-gradient(135deg,#fff 0%,#f4f5f7 48%,#e7eaef 100%)}.sidebar{background:linear-gradient(180deg,#313945,#4b5563)}.brand-mark,.primary{background:linear-gradient(135deg,#9ca3af,#4b5563)}.primary{box-shadow:0 8px 18px rgba(75,85,99,.25)}.nav-item.active{box-shadow:inset 3px 0 #d1d5db}.section-label,.eyebrow,.tid,.text-button,.back{color:#4b5563}.terminal-icon,.acq-icon{background:#f0f1f3;color:#4b5563}.panel,.operation-stat,.operations-search-panel{backdrop-filter:blur(16px)}
.dashboard-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:21px}.dashboard-heading h2{font:700 25px Manrope;margin:5px 0}.dashboard-heading p{margin:0;color:var(--muted);font-size:11px}.dashboard-heading>span{font-size:10px;color:var(--muted);background:#fff;border:1px solid var(--line);padding:7px 10px;border-radius:9px}.operations-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:13px;margin-bottom:17px}.operation-stat{display:flex;gap:13px;align-items:center;background:rgba(255,255,255,.84);border:1px solid var(--line);border-radius:15px;padding:16px;box-shadow:0 5px 18px rgba(55,65,81,.06)}.operation-stat>span{display:grid;place-items:center;min-width:38px;height:38px;border-radius:11px;background:#eef0f3;color:#4b5563;font-weight:800}.operation-stat small{display:block;color:var(--muted);font-size:9px}.operation-stat strong{display:block;font:700 20px Manrope;margin-top:3px}.dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:17px;margin-bottom:17px}.model-dashboard,.activation-dashboard{min-height:270px}.panel-head>strong{font-size:10px;background:#eef0f3;color:#4b5563;padding:6px 9px;border-radius:8px}.model-row{margin-top:17px}.model-row>div:first-child{display:flex;align-items:center;gap:8px}.model-row>div:first-child strong{font-size:11px}.model-row>div:first-child b{margin-left:auto;font-size:12px}.model-dot{width:8px;height:8px;border-radius:50%;background:#4b5563}.tone-1{background:#7c8592}.tone-2{background:#a4aab3}.tone-3{background:#68717e}.tone-4{background:#bcc1c8}.model-track{height:7px;background:#edf0f3;border-radius:10px;margin:7px 0 4px;overflow:hidden}.model-track span{display:block;height:100%;border-radius:10px;background:linear-gradient(90deg,#4b5563,#a8afb8)}.model-row>small{color:var(--muted);font-size:8px}.live-pill{display:flex;align-items:center;gap:6px;font-size:9px;color:#19815f;background:#e8f7f1;padding:6px 8px;border-radius:12px}.live-pill i{width:6px;height:6px;border-radius:50%;background:#25ad7f;box-shadow:0 0 0 4px #25ad7f20}.activation-dashboard #activationSummary{display:flex;align-items:center;justify-content:center;gap:24px;height:205px}.activation-ring{--progress:0deg;width:120px;height:120px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#4b5563 var(--progress),#e6e8ec 0);position:relative}.activation-ring:before{content:"";position:absolute;inset:11px;background:#fff;border-radius:50%}.activation-ring>div{z-index:1;text-align:center}.activation-ring strong{display:block;font:700 25px Manrope}.activation-ring small{font-size:9px;color:var(--muted)}.activation-copy{max-width:210px}.activation-copy>strong{font-size:12px}.activation-copy p{font-size:10px;line-height:1.5;color:var(--muted)}.activation-copy span{font-size:9px;font-weight:700;color:#4b5563;background:#eef0f3;padding:6px 8px;border-radius:7px}.operations-search-panel{margin-bottom:17px}.operations-search-panel .panel-head p{font-size:9px;color:var(--muted);margin:5px 0 0}.operations-search{display:grid;grid-template-columns:28px 1fr auto auto;align-items:center;border:1px solid #d6dbe2;border-radius:12px;padding:5px 5px 5px 13px;margin:18px 0;background:#fff}.operations-search>span{font-size:20px;color:#8a929d}.operations-search input{border:0;box-shadow:none;padding:10px 4px}.operations-search input:focus{box-shadow:none}.operation-result-list{display:grid;gap:8px}.operation-result{width:100%;display:grid;grid-template-columns:42px minmax(170px,1fr) minmax(150px,1fr) minmax(150px,1fr) auto auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:12px;background:#fff;padding:13px;text-align:left;color:var(--ink);cursor:pointer}.operation-result:hover{border-color:#9ca3af;background:#fafafa}.operation-result small,.operation-result p{font-size:8px;color:var(--muted);margin:3px 0}.operation-result strong{font-size:11px}.operation-result>b{font-size:9px;color:#4b5563}.result-counts{display:flex;gap:6px}.result-counts span{font-size:8px;background:#eef0f3;padding:6px 7px;border-radius:7px}.operations-detail{scroll-margin-top:110px}.operation-terminal-head{display:flex;justify-content:space-between;align-items:flex-start}.operation-terminal-head h3{font:700 18px Manrope;margin:5px 0}.operation-terminal-head p{font-size:9px;color:var(--muted);margin:0}.operation-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:20px 0 8px}.operation-tabs button{border:0;background:none;color:#9299a4;padding:10px 13px;font:700 10px "DM Sans";cursor:pointer;border-bottom:2px solid transparent}.operation-tabs button.active{color:#374151;border-bottom-color:#4b5563}.operation-tabs b{font-size:8px;background:#eef0f3;padding:2px 5px;border-radius:7px;margin-left:4px}.operation-table-wrap{overflow:auto}.operation-table{min-width:980px}.operation-table td{font-size:9px}.operation-table td small{display:block;color:var(--muted);font-size:8px;margin-top:2px}.operation-status{display:inline-flex;padding:5px 7px;border-radius:8px;font-size:8px;font-weight:700}.operation-status.approved,.operation-status.closed{color:#177657;background:#e7f6f0}.closure-list{display:grid;gap:10px}.closure-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.closure-card summary{display:grid;grid-template-columns:1fr auto 20px;align-items:center;gap:18px;padding:15px;cursor:pointer;list-style:none}.closure-card summary strong,.closure-card summary small{display:block}.closure-card summary small{font-size:8px;color:var(--muted);margin-top:4px}.closure-card summary>div:nth-child(2){text-align:right}.closure-summary{display:flex;gap:9px;flex-wrap:wrap;padding:11px 15px;background:#f6f7f9;border-block:1px solid var(--line)}.closure-summary>span{font-size:8px;color:var(--muted)}.closure-summary b{color:var(--ink);margin-left:4px}
@media(max-width:1100px){.operations-stats{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr}.operation-result{grid-template-columns:42px 1fr 1fr auto}.operation-result>b{display:none}}
@media(max-width:700px){.operations-stats{grid-template-columns:1fr 1fr}.dashboard-heading{align-items:flex-start;flex-direction:column;gap:10px}.operation-result{grid-template-columns:38px 1fr}.operation-result>div:nth-child(3),.operation-result .result-counts{grid-column:2}.activation-dashboard #activationSummary{flex-direction:column;height:auto;padding:24px 0}.closure-card summary{grid-template-columns:1fr auto}}
.socket-type-picker{padding-bottom:15px;border-bottom:1px solid var(--line)}.socket-fields{margin-top:3px}.socket-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.socket-fields-grid .wide{grid-column:1/-1}.socket-help{grid-column:1/-1;margin:0;padding:11px 12px;background:#f2f3f5;border:1px solid var(--line);border-radius:9px;color:var(--muted);font-size:9px;line-height:1.5}.socket-download{display:block;margin:0 20px 18px;padding:11px 14px;border-radius:9px;background:#e9ebee;color:#374151;text-align:center;text-decoration:none;font-size:10px;font-weight:800}.socket-download:hover{background:#dfe2e6}.simulator-form .primary{margin-top:5px}@media(max-width:700px){.socket-fields-grid{grid-template-columns:1fr}}
.cache-warm-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#edf7ff;border:1px solid #b9dcfa;border-radius:13px;padding:14px 17px;margin:-8px 0 18px;color:#174f83}.cache-warm-panel>div:first-child{display:flex;align-items:center;gap:12px}.cache-warm-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#1685e8;color:white;font-size:20px;animation:cache-spin 1.4s linear infinite}.cache-warm-panel strong{display:block;font-size:12px}.cache-warm-panel small{display:block;margin-top:3px;color:#5e7892;font-size:10px}.cache-warm-progress{display:flex;align-items:center;gap:10px;min-width:260px}.cache-warm-progress>span{font-size:11px;font-weight:800}.cache-warm-progress>div{height:7px;flex:1;background:#d5e7f6;border-radius:20px;overflow:hidden}.cache-warm-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#18a5eb,#176bd7);transition:width .35s}@keyframes cache-spin{to{transform:rotate(360deg)}}@media(max-width:700px){.cache-warm-panel{align-items:flex-start;flex-direction:column}.cache-warm-progress{width:100%;min-width:0}}
.unsettled-panel,.import-history-panel,.simulation-jobs-panel{margin-top:20px}.unsettled-table td small,.import-history-panel td small{display:block;color:#7b8798;margin-top:3px}.pending-days{display:inline-grid;place-items:center;min-width:32px;height:26px;padding:0 8px;border-radius:20px;background:#fff0dd;color:#a85b00;font-weight:800}.job-status{display:inline-flex;padding:5px 9px;border-radius:20px;background:#eef1f5;color:#566274;font-size:10px;font-weight:800;text-transform:uppercase}.job-status.running,.job-status.pending{background:#e7f3ff;color:#1769b0}.job-status.completed{background:#e5f8ef;color:#087b55}.job-status.failed,.job-status.cancelled{background:#ffebed;color:#b22736}.simulation-job-list{display:grid;gap:9px}.simulation-job-list article{display:grid;grid-template-columns:minmax(180px,1fr) minmax(240px,2fr) auto auto;align-items:center;gap:18px;padding:13px 15px;border:1px solid #dfe5ed;border-radius:12px}.simulation-job-list article>div:first-child strong,.simulation-job-list article>div:first-child small{display:block}.simulation-job-list article small{font-size:10px;color:#7b8798;margin-top:4px}.job-progress>span{display:block;height:7px;border-radius:10px;background:#e7ebf0;overflow:hidden}.job-progress i{display:block;height:100%;background:linear-gradient(90deg,#1685e8,#22b58a);border-radius:inherit;transition:width .3s}@media(max-width:850px){.simulation-job-list article{grid-template-columns:1fr}.unsettled-panel,.import-history-panel{overflow:hidden}}
.terminal-list-card{grid-template-columns:52px minmax(190px,1fr) minmax(190px,.9fr) minmax(210px,1fr) auto}.terminal-activity small,.terminal-activity strong,.terminal-activity span,.terminal-activity em{display:block}.terminal-activity small{color:var(--muted)}.terminal-activity strong{font-size:12px;margin-top:5px}.terminal-activity span{color:#596474;margin-top:4px}.terminal-activity em{font-size:8px;color:#969da7;font-style:normal;margin-top:3px}.billing-search-summary{display:flex;align-items:center;gap:28px;background:#f5f6f8;border:1px solid var(--line);border-radius:11px;padding:13px 15px;margin-bottom:12px}.billing-search-summary>div{padding-right:28px;border-right:1px solid var(--line)}.billing-search-summary small,.billing-search-summary strong{display:block}.billing-search-summary small{font-size:8px;color:var(--muted)}.billing-search-summary strong{font:700 17px Manrope;margin-top:3px}.billing-search-summary>span{margin-left:auto;color:var(--muted);font-size:9px}.toolbar>.row-actions{flex-wrap:wrap;justify-content:flex-end}
.terminal-sync-column{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.terminal-sync-column .card-actions{width:100%;justify-content:flex-start}
.pending-closures-panel{margin-top:20px}.pending-closures-panel .panel-head{align-items:flex-end}.pending-closures-panel .panel-head input{width:210px}.pending-closure-group{border:1px solid var(--line);border-radius:14px;margin-top:14px;overflow:hidden}.pending-closure-head{display:flex;justify-content:space-between;gap:20px;align-items:end;padding:16px}.pending-closure-head h4{font:700 16px Manrope;margin:4px 0}.pending-closure-head small{color:var(--muted)}.pending-closure-head label{width:190px}.pending-closure-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:13px 16px;border-top:1px solid var(--line)}.pending-closure-actions span{margin-right:auto;color:var(--muted)}@media(max-width:760px){.pending-closures-panel .panel-head,.pending-closure-head,.pending-closure-actions{align-items:stretch;flex-direction:column}.pending-closures-panel .panel-head input,.pending-closure-head label{width:100%}}
@media(max-width:1100px){.terminal-list-card{grid-template-columns:48px 1fr 1fr auto}.terminal-activity{grid-column:2/4}.terminal-device{display:block}}
@media(max-width:760px){.terminal-list-card{grid-template-columns:42px 1fr auto}.terminal-device,.terminal-activity{grid-column:1/-1}.billing-search-summary{align-items:flex-start;flex-wrap:wrap;gap:12px}.billing-search-summary>span{width:100%;margin:0}}
.configuration-state{display:flex;align-items:center;gap:8px;min-width:158px;border-radius:11px;padding:9px 11px}.configuration-state>i{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.configuration-state span,.configuration-state strong,.configuration-state small{display:block}.configuration-state strong{font-size:10px;white-space:nowrap}.configuration-state small{font-size:8px!important;margin-top:2px}.configuration-state.pending{color:#8a5a00;background:#fff4cf;border:1px solid #f1d47b}.configuration-state.pending>i{background:#e6a500;box-shadow:0 0 0 4px #e6a50020}.configuration-state.downloaded{color:#087451;background:#e8f8f2;border:1px solid #bfeada}.configuration-state.downloaded>i{background:#16a879;box-shadow:0 0 0 4px #16a87920}
@media(max-width:1100px){.configuration-state{grid-column:2/4}}
@media(max-width:760px){.configuration-state{grid-column:1/-1;width:max-content}}

/* v2.0.0-alpha.13 — comercio en tarjeta de terminal */
.terminal-primary .terminal-merchant{font-weight:600;color:#22314a}
.terminal-primary .terminal-desc{display:block;margin-top:2px;color:#8793a5;font-size:12px}

/* v2.0.0-alpha.13 — panel desplegable de pendientes de cierre */
.unsettled-panel .panel-head .row-actions{display:flex;align-items:center;gap:12px}
.unsettled-toggle b{display:inline-block;transition:transform .2s ease}
.unsettled-toggle.expanded b{transform:rotate(180deg)}
.unsettled-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;flex-wrap:wrap}
.unsettled-pagination>div{display:flex;align-items:center;gap:10px}
.unsettled-pagination span{color:#8793a5;font-size:13px}

/* v2.0.0-alpha.15.1 — bitácora: formato Antes/Ahora */
.changelog-change strong{display:block;margin-bottom:2px}
.changelog-change small{display:block;color:#8793a5;line-height:1.5}
.changelog-change small b{color:#5a6b84;font-weight:600}

/* v2.0.0-alpha.15.3 — diagnóstico TMS: solicitud recibida de la terminal */
.tms-request-list{display:flex;flex-direction:column;gap:10px}
.tms-request-card{border:1px solid #e4e9f2;border-radius:12px;background:#fff;overflow:hidden}
.tms-request-card[open]{border-color:#c7d3e6;box-shadow:0 2px 10px rgba(7,28,60,.06)}
.tms-request-card>summary{display:flex;align-items:center;gap:14px;padding:12px 16px;cursor:pointer;list-style:none}
.tms-request-card>summary::-webkit-details-marker{display:none}
.tms-request-card>summary:hover{background:#f7f9fc}
.tms-request-card>summary>div:first-child{flex:1;min-width:0}
.tms-request-card>summary strong{display:block;font-size:15px}
.tms-request-card>summary small{display:block;color:#8793a5;font-size:12px}
.tms-request-meta{text-align:right;min-width:180px}
.tms-request-chevron{color:#8793a5;transition:transform .2s ease}
.tms-request-card[open] .tms-request-chevron{transform:rotate(180deg)}
.tms-request-body{padding:0 16px 16px;border-top:1px solid #eef1f7}
.tms-request-line{margin:12px 0;font-size:13px;color:#22314a;word-break:break-all}
.tms-request-line code{background:#f2f5fa;padding:2px 6px;border-radius:6px}
.tms-request-line small{color:#8793a5}
.tms-request-issues{margin:10px 0;padding:10px 12px;border-radius:10px;background:#fdf6e7;color:#8a6414;font-size:13px;line-height:1.6}
.tms-json-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px}
.tms-json-grid>div:first-child{grid-column:1/-1}
.tms-json{margin:6px 0 0;padding:12px 14px;border-radius:10px;background:#0d1b2f;color:#d7e3f4;font-size:12.5px;line-height:1.6;max-height:340px;overflow:auto;white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
@media(max-width:900px){.tms-json-grid{grid-template-columns:1fr}.tms-request-meta{display:none}}

/* v2.0.0-alpha.16 — respuesta enviada por el portal */
.tms-json-grid>.tms-json-wide{grid-column:1/-1}

/* Nivel de batería reportado por la terminal.
   El selector lleva la etiqueta para ganarle a `.terminal-device span`, que
   fuerza display:block y anulaba el flex (por eso el % quedaba pegado). */
.battery-badge,.terminal-device span.battery-badge,.detail-statuses span.battery-badge{
  display:inline-flex;align-items:center;width:auto;margin-top:8px;
  padding:4px 12px 4px 9px;border-radius:999px;font:700 10px "DM Sans";letter-spacing:.05em}
.battery-badge i{width:16px;height:9px;border-radius:2px;border:1.5px solid currentColor;position:relative;display:inline-block;opacity:.85;margin-right:11px;flex:none}
.battery-badge i::after{content:"";position:absolute;right:-3.5px;top:2px;width:2px;height:3px;border-radius:0 1px 1px 0;background:currentColor}
.battery-badge.ok{background:#e8f7ee;color:#1c7a45}
.battery-badge.low{background:#fdf4e3;color:#94670d}
.battery-badge.critical{background:#fdecec;color:#b02525}

/* v2.0.0-alpha.21 — usuario que solicitó la descarga de parámetros.
   La variante `inferred` es obligatoria visualmente: ese dato se dedujo del
   login por dirección IP y no debe leerse como un hecho comprobado. */
/* Sin margin-top: los dos contenedores donde vive (.terminal-sync-column y
   .detail-statuses) ya separan con `gap`, y sumarle margen lo desalineaba. */
.download-requester{display:flex;align-items:center;gap:8px;max-width:100%;
  padding:7px 11px;border-radius:11px;background:#eef4fd;border:1px solid #d3e2f7;color:#1c4f8a}
.download-requester>i{width:8px;height:8px;border-radius:50%;flex:0 0 auto;
  background:#1486e8;box-shadow:0 0 0 4px #1486e820}
.download-requester>span{display:block;min-width:0}
.download-requester small{display:block;font-size:8px!important;letter-spacing:.06em;
  text-transform:uppercase;opacity:.75}
.download-requester strong{display:block;font-size:10px;margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.download-requester em{display:block;font-size:8px;font-style:normal;opacity:.7;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.download-requester>b{margin-left:auto;flex:none;font:700 8px "DM Sans";letter-spacing:.06em;
  text-transform:uppercase;padding:3px 7px;border-radius:999px;background:#fff4cf;
  color:#8a5a00;border:1px solid #f1d47b}
.download-requester.inferred{background:#fbf7ec;border-color:#eadfc4;color:#6f5a2a}
.download-requester.inferred>i{background:#c99a26;box-shadow:0 0 0 4px #c99a2620}

/* v2.0.0-alpha.31 — logo de la marca de tarjeta en lugar del texto VISA/MC. */
.brand-logo{height:15px;width:auto;display:inline-block;vertical-align:middle}
/* En la tabla de operaciones la marca va DEBAJO del nombre de la operación,
   como estaba el texto antes, no pegada a su derecha. */
.operation-table td .brand-logo{display:block;height:15px;margin-top:4px}
.operation-table td small{display:block;margin-top:3px;color:var(--muted)}

/* El icono de terminal ahora es un SVG: se centra dentro del cuadro. */
.terminal-icon svg{display:block}

/* Iconos del menú lateral: SVG de trazo, tamaño y color uniformes. */
.nav-item svg,.nav-subitem svg{width:19px;height:19px;flex:none;stroke-width:1.8}
.nav-subitem{display:flex;align-items:center;gap:10px}
.nav-subitem svg{width:16px;height:16px}

/* v2.0.0-alpha.24 — acciones del módulo de usuarios. */
.user-actions{flex-wrap:wrap;gap:8px;align-items:center}
.user-actions .own-user{font-size:10px;color:var(--muted);padding:0 4px;font-weight:700}

/* v2.0.0-alpha.26 — acciones sólo con iconos, como el diseño solicitado. Cada
   botón es cuadrado, con borde neutro; el color aparece al pasar el mouse para
   distinguir la acción (azul reiniciar, ámbar/rojo el interruptor, rojo la
   papelera). El significado va en el title y en aria-label. */
.icon-action{display:grid;place-items:center;width:34px;height:34px;padding:0;
  border:1px solid var(--line);border-radius:9px;background:white;color:#526077;
  cursor:pointer;transition:.15s}
.icon-action svg{display:block}
.icon-action:hover{transform:translateY(-1px);box-shadow:0 4px 12px #10213c14}
.icon-action.reiniciar:hover{color:var(--blue);border-color:#bcd6f5;background:#f2f8ff}
.icon-action.activar:hover{color:#13835f;border-color:#bfeada;background:#eafaf3}
.icon-action.desactivar:hover{color:#b06a00;border-color:#f1d47b;background:#fff8e8}
.icon-action.eliminar:hover{color:#c0202f;border-color:#f2c0c6;background:#fdeef0}

/* v2.0.0-alpha.23 — logo institucional en la barra lateral. Reemplaza al
   cuadro azul con la "P": el PNG ya trae fondo transparente, así que no lleva
   fondo ni sombra propios; se apoya sobre el degradado del menú. */
.brand img.brand-mark{width:42px;height:auto;background:none;box-shadow:none;
  border-radius:0;display:block;object-fit:contain}

/* v2.0.0-alpha.22 — el menú lateral no cabía en pantallas bajas y el pie con
   la versión quedaba cortado. Ahora la navegación tiene su propio scroll y el
   pie queda anclado abajo, siempre visible. `min-height:0` es lo que permite
   que un hijo flex se encoja por debajo de su contenido; sin eso el nav se
   niega a achicarse y sigue empujando el pie fuera de la pantalla. */
.sidebar{overflow:hidden}
.sidebar nav{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;
  padding-right:4px;scrollbar-width:thin;scrollbar-color:#ffffff30 transparent}
.sidebar nav::-webkit-scrollbar{width:6px}
.sidebar nav::-webkit-scrollbar-track{background:transparent}
.sidebar nav::-webkit-scrollbar-thumb{background:#ffffff28;border-radius:20px}
.sidebar nav::-webkit-scrollbar-thumb:hover{background:#ffffff45}
.sidebar-status{flex:0 0 auto}

/* v2.0.0-alpha.22 — un renglón por moneda dentro de la misma tarjeta. Con una
   sola moneda se ve exactamente igual que antes; con dos, cada importe queda
   en su línea en vez de sumarse en un total que no existe. */
.operation-stat strong b{display:block;font:inherit;letter-spacing:inherit}
.operation-stat strong b+b{font-size:.82em;color:var(--muted);margin-top:1px}
.billing-search-summary strong b{display:block;font:inherit}
.billing-search-summary strong b+b{font-size:.8em;color:var(--muted)}
.operation-result strong b{display:block;font:inherit}
.operation-result strong b+b{font-size:.82em;color:var(--muted)}

/* Caché degradada: Redis configurado pero sin responder. */
.sidebar-status.degraded i{background:#ffb020;box-shadow:0 0 0 5px #ffb02033}
.sidebar-status.degraded strong{color:#ffcf7a}

/* Guardado en curso dentro de un modal */
.modal-progress{position:sticky;top:0;z-index:3;height:3px;margin:0 34px 16px 0;background:#e4ecf7;border-radius:20px;overflow:hidden}
.modal-progress i{position:absolute;top:0;bottom:0;width:40%;background:linear-gradient(90deg,#1486e8,#48c6f5);animation:modal-progress 1.1s ease-in-out infinite}
@keyframes modal-progress{0%{left:-40%}100%{left:100%}}
.btn-spinner{width:12px;height:12px;margin-right:9px;border-radius:50%;border:2px solid #ffffff55;border-top-color:white;display:inline-block;vertical-align:-2px;animation:btn-spin .7s linear infinite}
@keyframes btn-spin{to{transform:rotate(360deg)}}
.form-busy .form-actions .primary,.form-busy .config-actions .primary{opacity:.85;cursor:progress}
.form-busy input,.form-busy select,.form-busy textarea{background:#fafbfd;color:#7c8798}

/* Plazos de cuotas del adquirente */
.plan-months{display:grid;gap:2px;margin-top:6px;padding-left:6px}
.payment-plans-section .plan-months .toggle-field{padding-top:5px;padding-bottom:5px}

/* Cola de notificaciones del POS */
.inbox-panel{margin-top:18px}
.inbox-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:16px}
.inbox-metric{display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:12px;padding:13px 15px;background:#fbfcfe}
.inbox-metric>span{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:#eaf3ff;color:var(--blue);font-size:14px;flex:none}
.inbox-metric small{display:block;color:var(--muted);font-size:10px;letter-spacing:.03em}
.inbox-metric strong{display:block;font:700 18px Manrope;margin-top:3px}
.inbox-metric.alert{border-color:#f3c9c9;background:#fdf6f6}
.inbox-metric.alert>span{background:#fdecec;color:#b02525}
.live-pill.warning{background:#fdf4e3;color:#94670d}
.live-pill.warning i{background:#e0a41c;box-shadow:0 0 0 5px #e0a41c22}
.inbox-panel .data-table{margin-top:14px}

/* Log de terminales */
.log-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px}
.log-filters label{flex:1 1 170px}
.log-filters .primary{height:38px}
.log-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.log-metric{display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:white}
.log-metric>span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#eaf3ff;color:var(--blue);font-size:13px;flex:none}
.log-metric small{display:block;color:var(--muted);font-size:10px}
.log-metric strong{display:block;font:700 15px Manrope;margin-top:2px}
.log-direction{display:inline-block;padding:4px 9px;border-radius:20px;font-size:10px;font-weight:700}
.log-direction.request{background:#eef4ff;color:#1a5fb4}
.log-direction.response{background:#e8f7ee;color:#1c7a45}
.log-direction.other{background:#f1f3f7;color:#68758a}
.log-table code.log-frame{display:block;max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:11px Consolas,monospace;color:#33405a}
.log-table small{color:var(--muted);font-size:10px}
.log-guid{font:700 11px Consolas,monospace;padding:0}

/* Estado de una transacción anulada */
.operation-status.voided{background:#fdecec;color:#b02525}

/* Monto anulado en el resumen de la consulta transaccional */
.billing-search-summary .voided-amount{color:#b02525}

/* Acciones del filtro de tramas */
.log-filter-actions{display:flex;gap:9px;align-items:flex-end}
.log-filter-actions .secondary,.log-filter-actions .primary{height:38px}

/* Botones de la consulta transaccional: cada uno en su columna */
.operations-search .secondary,.operations-search .primary{white-space:nowrap}
@media(max-width:820px){
  .operations-search{grid-template-columns:28px 1fr;row-gap:8px}
  .operations-search .secondary,.operations-search .primary{grid-column:span 1}
  .operation-result{grid-template-columns:42px 1fr}
}

/* v2.0.0-alpha.33 — Terminales: buscador + botón limpiar filtro en una fila */
.search-row{display:flex;gap:10px;align-items:stretch;margin-bottom:18px}
.search-row .search-wrap{flex:1;margin-bottom:0}
.search-row .clear-filter{white-space:nowrap;flex:none}

/* Usuarios: buscador por nombre o correo dentro del panel */
.users-search{margin:2px 0 16px}

/* Log de terminales: cada fila abre el detalle completo */
.log-table tr.log-row{cursor:pointer}
.log-table tr.log-row:hover td{background:#f5f9ff}

/* Modal con la trama completa */
.log-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:4px 0 18px}
.log-detail-grid .wide{grid-column:1/-1}
.log-detail-grid small{display:block;color:var(--muted);font-size:10px;letter-spacing:.03em}
.log-detail-grid strong{display:block;font:700 14px Manrope;margin-top:3px}
.log-detail-grid .log-detail-guid{font:700 12px Consolas,monospace;word-break:break-all}
.log-detail-frame-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.log-detail-frame-head small{color:var(--muted);font-size:10px;letter-spacing:.08em;font-weight:800}
.log-detail-frame{margin:0;padding:16px;background:#06172f;color:#7ee0c2;border-radius:12px;font:12px/1.7 Consolas,monospace;white-space:pre-wrap;word-break:break-all;max-height:340px;overflow:auto}

/* alpha.50 — búsqueda remota de la terminal que se desea clonar */
.clone-terminal-matches{display:grid;gap:6px;margin-top:7px;padding:6px;border:1px solid var(--line);border-radius:12px;background:#fff;max-height:230px;overflow:auto;box-shadow:0 12px 30px #102b5520}
.clone-terminal-matches button{display:grid;grid-template-columns:90px minmax(120px,1fr) auto;gap:10px;align-items:center;width:100%;padding:10px 12px;border:0;border-radius:9px;background:#f7f9fc;color:var(--text);text-align:left;cursor:pointer}
.clone-terminal-matches button:hover{background:#eaf3ff}
.clone-terminal-matches button strong{font:800 13px Manrope;letter-spacing:.08em}
.clone-terminal-matches button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.clone-terminal-matches button small{color:var(--muted);font-size:10px}
.clone-terminal-empty{padding:12px;color:var(--muted);text-align:center;font-size:12px}
@media(max-width:680px){.clone-terminal-matches button{grid-template-columns:1fr}.clone-terminal-matches button small{display:block}}

/* alpha.59 — card de notificaciones colapsable (escondida por defecto) */
.panel-head-toggle{display:flex;align-items:flex-start;gap:.55rem;cursor:pointer;flex:1;min-width:0}
.panel-head-toggle:focus-visible{outline:2px solid var(--accent,#5b6cff);outline-offset:3px;border-radius:8px}
.collapse-caret{font-size:16px;line-height:1.4;color:var(--muted,#8793a5);transition:transform .18s ease;flex:none;margin-top:2px}
.inbox-panel.collapsed .collapse-caret{transform:rotate(-90deg)}
.inbox-panel.collapsed .inbox-body{display:none}
.inbox-panel .inbox-body{margin-top:14px}

/* alpha.59 — etiqueta de tipo de venta (Cuotas / Puntos / Venta) */
.tx-tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}
.tx-tag.tx-cuotas{background:#fff3d6;color:#8a5a00}
.tx-tag.tx-puntos{background:#e5e0ff;color:#4b39b3}
.tx-tag.tx-normal{background:#eef1f6;color:#5a6675}

/* alpha.59 — módulo Historial por serie */
.serial-history-wrap{display:flex;flex-direction:column;gap:16px}
.serial-history-search{display:flex;gap:10px;flex-wrap:wrap}
.serial-history-search input{flex:1;min-width:220px}
.serial-current-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#dcf5e6;color:#1c7a44}
.serial-past-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#eef1f6;color:#5a6675}

/* ---- alpha.60 · Resumen a nivel bancario (más colorido) ------------------- */
/* Cada tarjeta de estadística lleva su propio color en el ícono y un acento
   lateral. Solo cambia el aspecto; los datos y la estructura son los mismos. */
.operations-stats .operation-stat{position:relative;overflow:hidden;border-radius:15px}
.operations-stats .operation-stat::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--acento,#2563eb)}
.operations-stats .operation-stat>span{background:var(--tinte,#e8efff);color:var(--acento,#2563eb);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--acento,#2563eb) 22%,transparent)}
.operation-stat.tono-azul{--acento:#2563eb;--tinte:#e8effe}
.operation-stat.tono-indigo{--acento:#4f46e5;--tinte:#ebeafe}
.operation-stat.tono-verde{--acento:#16a34a;--tinte:#e4f7ea}
.operation-stat.tono-esmeralda{--acento:#059669;--tinte:#dff6ee}
.operation-stat.tono-rojo{--acento:#dc2626;--tinte:#fdeaea}
.operation-stat.tono-violeta{--acento:#7c3aed;--tinte:#f1e9fe}
.operation-stat.tono-cian{--acento:#0891b2;--tinte:#e2f5fb}
.operation-stat.tono-ambar{--acento:#d97706;--tinte:#fdf0dc}
.operation-stat.tono-naranja{--acento:#ea580c;--tinte:#fdeadd}
.operation-stat.tono-rojo strong{color:#b91c1c}
/* Barras de modelos con color por fila en vez de gris plano. */
#modelDistribution .model-track span{background:linear-gradient(90deg,var(--barra,#2563eb),color-mix(in srgb,var(--barra,#2563eb) 55%,#ffffff))}
#modelDistribution .model-row:nth-child(5n+1){--barra:#2563eb}
#modelDistribution .model-row:nth-child(5n+2){--barra:#16a34a}
#modelDistribution .model-row:nth-child(5n+3){--barra:#7c3aed}
#modelDistribution .model-row:nth-child(5n+4){--barra:#d97706}
#modelDistribution .model-row:nth-child(5n+5){--barra:#0891b2}
#modelDistribution .model-row:nth-child(5n+1) .model-dot{background:#2563eb}
#modelDistribution .model-row:nth-child(5n+2) .model-dot{background:#16a34a}
#modelDistribution .model-row:nth-child(5n+3) .model-dot{background:#7c3aed}
#modelDistribution .model-row:nth-child(5n+4) .model-dot{background:#d97706}
#modelDistribution .model-row:nth-child(5n+5) .model-dot{background:#0891b2}
/* Anillo de activación en color (azul→esmeralda) en lugar de gris. */
.activation-dashboard .activation-ring{background:conic-gradient(from -90deg,#2563eb,#16a34a var(--progress),#e6e8ec 0)}
.activation-dashboard .activation-ring strong{color:#0f2f5c}
.activation-dashboard .activation-copy span{background:#e8effe;color:#2563eb}
.model-dashboard .panel-head>strong{background:#e8effe;color:#2563eb}

/* ---- alpha.60 · Búsqueda de adquirente → terminal madre ------------------- */
/* Distintivo que aparece en la tarjeta de la terminal cuando lo buscado
   coincide con el TID/CID de un adquirente alojado dentro de esa terminal. */
.acquirer-hit-box{margin-top:8px;padding:8px 10px;border-radius:10px;background:#eef4ff;border:1px solid #cddcff}
.acquirer-hit-label{display:block;font-size:9px;font-weight:800;letter-spacing:.04em;color:#2563eb;text-transform:uppercase;margin-bottom:5px}
.acquirer-hit{display:block;font-size:10px;color:#1e3a63}
.acquirer-hit+.acquirer-hit{margin-top:4px}
.acquirer-hit b{font-weight:800}
.acquirer-hit small{display:block;color:#5a6b86;font-size:9px;margin-top:1px}

/* ---- alpha.61 · Íconos SVG en cards + buscador/paginación de actividad ---- */
.operations-stats .operation-stat>span svg{width:20px;height:20px}
/* Cuadro de búsqueda dentro de "Actividad de terminal". */
.operation-activity-search{display:flex;align-items:center;gap:8px;border:1px solid #d6dbe2;border-radius:12px;padding:5px 6px 5px 12px;margin:14px 0 12px;background:#fff}
.operation-activity-search>span{font-size:17px;color:#8a929d}
.operation-activity-search input{flex:1;border:0;box-shadow:none;padding:9px 4px;font-size:12px}
.operation-activity-search input:focus{box-shadow:none;outline:none}
.operation-activity-search button{white-space:nowrap;padding:8px 12px}

/* ---- alpha.64 · Ventana centrada de credenciales --------------------------- */
.cred-modal{text-align:center;padding:6px 4px 2px;max-width:420px}
.cred-modal-icon{display:grid;place-items:center;width:66px;height:66px;border-radius:50%;margin:0 auto 14px}
.cred-modal.ok .cred-modal-icon{background:#e4f7ea;color:#16a34a}
.cred-modal.warn .cred-modal-icon{background:#fdf0dc;color:#d97706}
.cred-modal h2{margin:0 0 8px;font:700 20px Manrope;color:var(--ink)}
.cred-modal-msg{margin:0 auto 18px;max-width:340px;font-size:13px;line-height:1.55;color:var(--muted)}
.cred-modal-msg strong{color:var(--ink)}
.cred-modal-actions{justify-content:center;gap:10px}
.cred-modal-actions a.secondary{display:inline-flex;align-items:center;text-decoration:none}

/* ---- alpha.70 · Etiquetas de check-in / check-out (hotel) ------------------ */
.tx-checkin{background:#e2f0ff;color:#1257b8}
.tx-checkout{background:#dff6ee;color:#0b7a54}


/* alpha.75.4 · Historial de importaciones: los errores permanecen plegados
   hasta que el operador decide revisarlos. */
.import-error-actions{display:flex!important;align-items:center;gap:10px;flex-wrap:wrap}
.link-button{appearance:none;border:0;background:transparent;padding:0;color:#175ed1;font:inherit;text-decoration:underline;cursor:pointer}
.import-error-row[hidden]{display:none}
.import-error-row>td{padding:0 12px 14px!important;background:#fbfcfe}
.import-error-panel{border:1px solid #dfe5ed;border-radius:12px;background:#fff;padding:16px 18px;max-height:430px;overflow:auto}
.import-error-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:12px}
.import-error-head strong{display:block;margin-top:3px;color:#243247}
.import-error-head small{color:#7b8798;white-space:nowrap}
.import-error-list{display:grid;gap:7px}
.import-error-list article{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:start;padding:9px 10px;border:1px solid #edf0f4;border-radius:9px;background:#fcfdff}
.import-error-list article>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#ffebed;color:#b22736;font-size:10px;font-weight:800}
.import-error-list article strong{display:block;font-size:11px;color:#5a6575;margin-bottom:2px}
.import-error-list article p{margin:0;color:#29384d;font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.import-error-note{margin:11px 0 0;color:#7b8798;font-size:11px}
.import-error-download{display:inline-flex;margin-top:12px;font-size:11px;font-weight:700}

/* alpha.75.5 · El historial completo queda plegado por defecto y sólo carga
   visualmente cinco ejecuciones por página. Los errores de cada ejecución
   conservan su segundo nivel desplegable de alpha.75.4. */
.import-history-panel .panel-head{align-items:center}
.import-history-panel.collapsed .collapse-caret{transform:rotate(-90deg)}
.import-history-panel.collapsed .import-history-body{display:none}
.import-history-panel .import-history-body{margin-top:14px}
.import-history-summary{display:inline-flex;align-items:center;white-space:nowrap;padding:6px 10px;border-radius:999px;background:#eef3f9;color:#607086;font-size:10px;font-weight:800}
.import-history-pagination{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 4px 2px;color:#738096;font-size:11px}
.import-history-pagination>div{display:flex;align-items:center;gap:8px}
.import-history-pagination strong{min-width:90px;text-align:center;color:#344258;font-size:11px}
.import-history-pagination button{padding:7px 11px;font-size:10px}
@media(max-width:760px){
  .import-history-panel .panel-head{align-items:flex-start}
  .import-history-summary{display:none}
  .import-history-pagination{align-items:flex-start;flex-direction:column}
  .import-history-pagination>div{width:100%;justify-content:space-between}
}

/* V1.0.1 — búsqueda y paginación de catálogos BIN / Emisores */
.catalog-search{max-width:560px;margin-bottom:6px;background:#f9fbfe}
.catalog-search input{font-size:12px}
.catalog-pagination{padding-top:14px;border-top:1px solid #eef1f6}
@media(max-width:760px){.catalog-search{max-width:none}.catalog-pagination{align-items:stretch}.catalog-pagination>div{width:100%;justify-content:space-between}}

/* V1.0.2 — control explícito de terminal activa/inactiva */
.deactivate-terminal{border-color:#f0b8b8!important;color:#b42318!important;background:#fffafa!important}
.deactivate-terminal:hover{background:#fff1f1!important;border-color:#e69090!important}


/* V1.0.4 · acciones compactas de terminal + historial diario de facturación */
.terminal-power-button{width:34px;height:34px;padding:0!important;display:inline-grid;place-items:center;font-size:16px;line-height:1}
.activate-terminal.terminal-power-button{border-color:#a9dccb!important;color:#0f8a62!important;background:#f5fcf9!important}
.activate-terminal.terminal-power-button:hover{background:#eaf8f2!important;border-color:#72c7aa!important}
.deactivate-terminal.terminal-power-button{border-color:#f0b8b8!important;color:#b42318!important;background:#fffafa!important}
.deactivate-terminal.terminal-power-button:hover{background:#fff1f1!important;border-color:#e69090!important}
.billing-history-panel{margin-bottom:17px}
.billing-history-panel .panel-head p{margin:5px 0 0;color:var(--muted);font-size:10px}
.billing-history-panel .row-actions>strong{font-size:10px;color:#607086;background:#eef3f9;padding:6px 9px;border-radius:999px;white-space:nowrap}
.billing-history-toggle b{display:inline-block;transition:transform .2s ease}
.billing-history-toggle.expanded b{transform:rotate(180deg)}
.billing-history-table td{vertical-align:top}.billing-history-table .muted{color:var(--muted)}
.billing-history-table td>small{display:block;color:var(--muted);font-size:9px;margin-top:4px}
.billing-money-stack{display:grid;gap:3px;white-space:nowrap}
.billing-money-stack span{font-weight:700}
.billing-money-stack span+span{color:#6d7888;font-size:11px}
.billing-history-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding-top:13px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}
.billing-history-pagination>div{display:flex;align-items:center;gap:8px}
.billing-history-pagination strong{font-size:10px;color:var(--ink);min-width:82px;text-align:center}
.billing-history-pagination button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:760px){.billing-history-panel .panel-head{align-items:flex-start;gap:12px}.billing-history-panel .row-actions{flex-wrap:wrap;justify-content:flex-end}.billing-history-pagination{align-items:flex-start;flex-direction:column}.billing-history-pagination>div{width:100%;justify-content:space-between}}

/* V1.0.6 · consulta transaccional antes del historial + refresco manual fluido */
.operations-detail:not(.hidden){margin-bottom:18px}
.dashboard-refresh-tools{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.dashboard-refresh-tools #dashboardUpdated{font-size:10px;color:var(--muted);background:#fff;border:1px solid var(--line);padding:7px 10px;border-radius:9px;white-space:nowrap}
.dashboard-refresh-button{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:7px 11px}
.dashboard-refresh-icon{display:inline-block;font-size:16px;line-height:1}
.dashboard-refresh-button.refreshing .dashboard-refresh-icon{animation:dashboard-refresh-spin .7s linear infinite}
.dashboard-refresh-button:disabled{opacity:.7;cursor:wait}
@keyframes dashboard-refresh-spin{to{transform:rotate(360deg)}}
@media(max-width:700px){.dashboard-refresh-tools{width:100%;justify-content:space-between}.dashboard-refresh-button{flex:0 0 auto}}

/* V1.0.8 · Importación masiva de usuarios */
.user-import-modal .intro{max-width:720px}.import-security-note{display:flex;flex-direction:column;gap:5px;margin:14px 0 16px;padding:13px 15px;border:1px solid #cfe1f5;border-radius:11px;background:#f3f8fe;color:#38516f;font-size:11px}.import-security-note strong{color:#173b66;font-size:12px}.import-template-link{display:inline-flex;align-items:center;margin-bottom:18px;text-decoration:none}.user-import-modal form{display:grid;gap:10px}.user-import-modal input[type=file]{padding:12px;background:#fbfcfe}.import-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.import-summary article{border:1px solid var(--line);border-radius:12px;padding:15px;background:#fafcff}.import-summary strong{display:block;font:800 24px Manrope;color:var(--blue)}.import-summary span{display:block;margin-top:3px;color:var(--muted);font-size:10px}.import-result-table{max-height:330px;overflow:auto;border:1px solid var(--line);border-radius:12px}.import-result-table .data-table{margin-top:0}.import-all-ok{padding:18px;border-radius:12px;background:#e9f8f1;color:#157957;font-size:12px;font-weight:700}.user-import-result.warn .section-label{color:#b56f12}@media(max-width:760px){.import-summary{grid-template-columns:1fr}.import-result-table{overflow:auto}}

/* V1.0.8 · Importación masiva de usuarios */
.user-import-modal .intro{max-width:720px}.import-security-note{display:flex;flex-direction:column;gap:5px;margin:14px 0 16px;padding:13px 15px;border:1px solid #cfe1f5;border-radius:11px;background:#f3f8fe;color:#38516f;font-size:11px}.import-security-note strong{color:#173b66;font-size:12px}.import-template-link{display:inline-flex;align-items:center;margin-bottom:18px;text-decoration:none}.user-import-modal form{display:grid;gap:10px}.user-import-modal input[type=file]{padding:12px;background:#fbfcfe}.import-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.import-summary article{border:1px solid var(--line);border-radius:12px;padding:15px;background:#fafcff}.import-summary strong{display:block;font:800 24px Manrope;color:var(--blue)}.import-summary span{display:block;margin-top:3px;color:var(--muted);font-size:10px}.import-result-table{max-height:330px;overflow:auto;border:1px solid var(--line);border-radius:12px}.import-result-table .data-table{margin-top:0}.import-all-ok{padding:18px;border-radius:12px;background:#e9f8f1;color:#157957;font-size:12px;font-weight:700}.user-import-result.warn .section-label{color:#b56f12}@media(max-width:760px){.import-summary{grid-template-columns:1fr}.import-result-table{overflow:auto}}

/* V1.0.10 · Migración PMT Legacy */
.legacy-safety-panel,.legacy-bulk-panel{overflow:hidden}.legacy-single-grid{display:grid;grid-template-columns:minmax(220px,.55fr) minmax(280px,1fr);gap:18px;margin:8px 0 18px}.legacy-single-grid label{display:flex;flex-direction:column;gap:8px;font-weight:650;color:#344158}.legacy-single-grid input{min-height:46px;border:1px solid #d8e0eb;border-radius:12px;padding:0 14px;background:#fff;color:#243247}.legacy-action-row{justify-content:flex-start;flex-wrap:wrap;margin-bottom:18px}.legacy-analysis{border:1px solid #e0e6ef;border-radius:16px;padding:18px;background:#fbfcfe}.legacy-analysis.ready{border-color:#cfe9df;background:#fbfffd}.legacy-analysis.blocked{border-color:#f2d9d9;background:#fffdfd}.legacy-analysis-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.legacy-analysis-head h4{margin:3px 0;font-size:24px}.legacy-analysis-head small{color:#758198}.legacy-analysis-metrics,.legacy-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:16px 0}.legacy-analysis-metrics span,.legacy-metrics span{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid #e5eaf1;border-radius:12px;background:#fff}.legacy-analysis-metrics b,.legacy-metrics b{font-size:18px;color:#25344b}.legacy-analysis-metrics small,.legacy-metrics small{color:#7a879b}.legacy-inline-note{margin:10px 0;color:#5a667a}.legacy-issues{display:flex;flex-direction:column;gap:6px;border-radius:12px;padding:12px 14px;margin-top:12px}.legacy-issues.danger{background:#fff1f1;color:#9f3030}.legacy-issues.warning{background:#fff8e9;color:#906412}.legacy-merchant-preview{display:grid;gap:8px;margin-top:14px}.legacy-merchant-preview details{border:1px solid #e5eaf1;border-radius:12px;background:#fff}.legacy-merchant-preview summary{display:flex;align-items:center;gap:12px;cursor:pointer;padding:12px 14px;list-style:none}.legacy-merchant-preview summary strong{flex:1}.legacy-merchant-preview summary small{color:#7c889b}.legacy-merchant-preview details>div{padding:0 14px 12px}.legacy-merchant-preview p{margin:6px 0;color:#566275;font-size:13px}.legacy-bulk-status{padding-top:8px}.legacy-progress-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.legacy-progress-head>div{display:flex;flex-direction:column;gap:4px}.legacy-progress-head small{color:#7d899b}.legacy-progress-track{margin:12px 0 4px}.legacy-progress-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,#1677ff,#22a77a);border-radius:inherit;transition:width .35s ease}.legacy-run-issues{margin-top:14px;border-top:1px solid #e7ebf1;padding-top:12px}.legacy-run-issues>strong{display:block;margin-bottom:8px}.legacy-run-issues p{display:grid;grid-template-columns:110px 110px 1fr;gap:10px;margin:0;padding:8px 0;border-bottom:1px solid #eef1f5}.legacy-run-issues p span.warning{color:#a26c05}.legacy-run-issues p span.failed{color:#b53535}.legacy-run-issues p small{color:#647187}.legacy-env-help{display:grid;gap:8px}.legacy-env-help code{display:block;padding:11px 13px;border-radius:10px;background:#f4f7fb;color:#334158;overflow:auto}.permission-hidden{display:none!important}
@media(max-width:900px){.legacy-single-grid{grid-template-columns:1fr}.legacy-analysis-metrics,.legacy-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.legacy-run-issues p{grid-template-columns:1fr}.legacy-analysis-head{align-items:flex-start;flex-direction:column}}

/* V1.0.17 · alta automática individual desde Legacy + reconciliación TID+CID */
.legacy-bulk-controls{display:flex;align-items:flex-end;justify-content:flex-end;gap:8px;flex-wrap:wrap;max-width:760px}.legacy-concurrency-control{min-width:185px;gap:4px}.legacy-concurrency-control>span{font-size:10px;color:#526077}.legacy-concurrency-control input{width:100%;min-height:38px;padding:8px 10px}.legacy-concurrency-control small{font-size:8px;color:#8993a3;font-weight:500}.legacy-bulk-controls .secondary,.legacy-bulk-controls .primary{min-height:38px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap}.legacy-bulk-controls #legacyExportErrors{color:#a33b3b;border-color:#e4bcbc;background:#fffafa}@media(max-width:1000px){.legacy-bulk-panel .panel-head{align-items:flex-start;flex-direction:column;gap:16px}.legacy-bulk-controls{justify-content:flex-start;width:100%}}@media(max-width:620px){.legacy-concurrency-control{width:100%}.legacy-bulk-controls .secondary,.legacy-bulk-controls .primary{flex:1 1 auto}}
/* V1.0.18 · URL configurable del conector PMT Legacy */
.legacy-url-editor{display:grid;grid-template-columns:minmax(320px,1fr) auto;gap:10px;align-items:end;margin:8px 0 16px}.legacy-url-editor label{display:flex;flex-direction:column;gap:7px;font-weight:650;color:#344158}.legacy-url-editor label>span{font-size:12px}.legacy-url-editor input{min-height:42px;border:1px solid #d8e0eb;border-radius:11px;padding:0 12px;background:#fff;color:#243247;font-family:inherit}.legacy-url-editor input:disabled{background:#f3f5f8;color:#788397}.legacy-url-editor small{font-size:10px;color:#7c8798;font-weight:500}.legacy-url-editor button{min-height:42px;white-space:nowrap}@media(max-width:760px){.legacy-url-editor{grid-template-columns:1fr}.legacy-url-editor button{width:100%}}

/* V1.0.19 · valores responsivos del Dashboard */
.operations-stats .operation-stat>div{min-width:0;flex:1}
.operation-stat .dashboard-stat-value{display:block;max-width:100%;min-width:0;white-space:nowrap;overflow:hidden;line-height:1.08;font-variant-numeric:tabular-nums}
.operation-stat .dashboard-stat-value>b{display:block;max-width:100%;white-space:nowrap;overflow:hidden}
