@charset "UTF-8";
:root{color-scheme:dark;--bg:#090d19;--surface:#101827;--surface2:#182235;--border:#273349;--text:#f5f7ff;--muted:#9ba8bd;--accent:#818cf8;--accent2:#2dd4bf;--shadow:0 25px 80px rgba(0,0,0,.22)}
:root[data-theme="light"]{color-scheme:light;--bg:#f7f9fd;--surface:#fff;--surface2:#eef1fb;--border:#dde5f2;--text:#152039;--muted:#5b6880;--accent:#4f46e5;--accent2:#0d9488;--shadow:0 24px 70px rgba(23,43,77,.09)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,"Noto Color Emoji","Apple Color Emoji","Segoe UI Emoji",sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.15;letter-spacing:-.04em}h1{font-size:clamp(2.6rem,6vw,5.1rem)}h2{font-size:clamp(1.65rem,3.2vw,2.5rem)}h3{font-size:1.12rem}p{color:var(--muted)}.wrap{width:min(1160px,calc(100% - 40px));margin:auto}.site{min-height:100vh;display:flex;flex-direction:column}.content{flex:1}.topbar{border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10;background:var(--bg)}.topbar-inner,.actions,nav{display:flex;align-items:center;gap:27px}.topbar-inner{justify-content:space-between;min-height:78px}.wordmark{font-weight:850;font-size:1.45rem;letter-spacing:-.06em}.wordmark span{color:var(--accent)}.wordmark .wordmark-dot{color:var(--accent2)}nav a,.link-button{color:var(--muted);font-size:.94rem}nav a:hover,.link-button:hover{color:var(--text)}.actions{gap:14px}.theme-toggle{display:grid;place-items:center;border:1px solid var(--border);background:var(--surface);border-radius:13px;height:41px;width:41px;color:var(--text);font-size:1.15rem}.link-button{border:0;background:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:15px;padding:13px 22px;border:1px solid var(--border);border-radius:13px;background:var(--surface2);color:var(--text);font-weight:700}.btn:hover{filter:brightness(1.09);transform:translateY(-1px)}.btn.primary{background:linear-gradient(130deg,#6366f1,#7464ec);color:#fff;border-color:transparent;box-shadow:0 8px 23px #6366f13d}.btn-sm{padding:8px 13px}.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:.74rem;letter-spacing:.16em;font-weight:850;color:var(--accent2)}.live{height:8px;width:8px;border-radius:100%;background:#35dfba;box-shadow:0 0 0 5px #35dfba18}.hero{min-height:590px;display:grid;grid-template-columns:1.06fr .94fr;align-items:center;gap:25px}.hero h1{margin:24px 0}.hero h1 em{font-style:normal;background:linear-gradient(110deg,#8b91ff,#45d8d1);color:transparent;background-clip:text}.hero-copy>p{max-width:550px;font-size:1.1rem}.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:30px}.muted{color:var(--muted);font-size:.86rem}.hero-art{min-height:410px;position:relative;display:flex;justify-content:center;flex-direction:column;gap:19px;padding:38px 24px}.orb{position:absolute;z-index:-1;width:370px;height:370px;top:20px;left:13%;background:radial-gradient(ellipse,#6469f15b,transparent 66%);filter:blur(24px)}.glass{display:flex;align-items:center;gap:17px;background:linear-gradient(130deg,var(--surface2),var(--surface));border:1px solid var(--border);padding:22px;border-radius:20px;box-shadow:var(--shadow);max-width:385px}.glass:nth-of-type(3){transform:translateX(40px)}.glass:nth-of-type(4){transform:translateX(15px)}.glass>span:first-child{font-size:2.3rem}.glass strong,.glass small{display:block}.glass small{color:var(--muted)}.glass .arrow{margin-left:auto;color:var(--accent)}.section{padding:25px 0 75px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:23px}.section-heading h2{margin:10px 0}.inline-link{color:var(--accent);font-weight:700;border:0;background:none;padding:0}.feature-grid,.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}.feature,.service-card,.panel,.stat{border:1px solid var(--border);background:var(--surface);border-radius:20px;padding:25px}.feature-icon{display:grid;place-items:center;width:56px;height:56px;background:var(--surface2);border-radius:16px;font-size:1.8rem;margin-bottom:27px}.feature p,.service-card p{font-size:.93rem}.banner{border-radius:26px;background:linear-gradient(115deg,#242f73,#453783);padding:43px 55px;margin-bottom:76px;color:#fff}.banner span{font-size:.75rem;letter-spacing:.12em;font-weight:800;color:#8dfff1}.banner h2{margin:10px 0}.banner p{color:#d4dafa;max-width:720px;margin-bottom:0}.page-head{padding:70px 0 26px}.page-head h1{font-size:clamp(2.2rem,4vw,3.4rem);margin:9px 0}.filters{display:flex;gap:12px;margin:0 0 25px}.filters input{flex:1}.filters select{min-width:170px}.catalog-grid{margin-bottom:55px}.service-card{display:flex;flex-direction:column;gap:8px}.service-card h3{margin:4px 0}.service-card>small{display:block}.service-card footer{border-top:1px solid var(--border);padding-top:16px;display:flex;justify-content:space-between;gap:10px;font-size:.8rem;margin-top:auto}.chip{display:inline-flex;align-self:start;padding:4px 10px;border-radius:30px;background:var(--surface2);color:var(--accent);font-size:.74rem;font-weight:800}.service-card details{font-size:.85rem;color:var(--muted);overflow-wrap:anywhere}.service-card details summary{cursor:pointer;color:var(--accent)}.auth{min-height:65vh;display:grid;place-items:center;padding:60px 0}.auth .panel{width:min(440px,100%)}.panel h1{font-size:2rem}.panel h2{font-size:1.4rem}form label{display:flex;flex-direction:column;gap:7px;color:var(--text);font-size:.87rem;font-weight:650;margin-bottom:15px}input,select,textarea{width:100%;min-width:0;border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--text);padding:12px 13px;outline:0}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #818cf820}textarea{resize:vertical}form .btn{margin-top:4px}.alert,.notice{padding:13px 17px;border:1px solid #fb71857a;border-radius:12px;background:#fb718512;margin:18px 0}.notice{border-color:#2dd4bf73;background:#2dd4bf10}.empty{text-align:center;padding:75px 25px;border:1px dashed var(--border);border-radius:20px;margin-bottom:55px}.empty>span{font-size:2.5rem}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-bottom:20px}.stat{display:flex;flex-direction:column;gap:5px}.stat span{color:var(--muted)}.stat strong{font-size:2rem}.admin-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:18px}.pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.table-panel{margin:20px 0 75px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:13px 10px;border-bottom:1px solid var(--border);vertical-align:middle;font-size:.87rem}td small{display:block}td form{display:inline}.footer{border-top:1px solid var(--border);padding:26px 0}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:.85rem;color:var(--muted)}.footer .wordmark{color:var(--text);font-size:1.15rem}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.85em;overflow-wrap:anywhere}
@media(max-width:800px){.hero{grid-template-columns:1fr;padding:70px 0 35px;min-height:0}.hero-art{min-height:310px;padding:0 15px}.glass{padding:15px}.glass:nth-of-type(3){transform:translateX(12px)}.glass:nth-of-type(4){transform:translateX(3px)}.feature-grid,.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-grid{grid-template-columns:1fr}.banner{padding:30px}.footer-inner{flex-wrap:wrap}nav{gap:13px}}@media(max-width:540px){.wrap{width:min(100% - 28px,1160px)}.topbar-inner{min-height:67px;gap:10px}.wordmark{font-size:1.27rem}nav{gap:10px}nav a{font-size:.82rem}.actions{gap:8px}.btn-sm{font-size:.8rem;padding:7px 9px}.theme-toggle{width:35px;height:35px}.feature-grid,.catalog-grid,.stats{grid-template-columns:1fr}.filters{flex-direction:column}.hero{padding-top:50px}.hero-art{display:none}.section-heading{align-items:start;flex-direction:column}.pair{grid-template-columns:1fr}.page-head{padding-top:45px}h1{font-size:2.7rem}.footer-inner{flex-direction:column;align-items:start}}

/* MobiKey v0.3 Premium: top navigation only, no sidebar. */
.admin-premium .wrap{width:min(1300px,calc(100% - 44px))}.admin-premium .content{padding-bottom:64px}.admin-premium{--premium-radius:15px}.premium-head{display:flex;justify-content:space-between;align-items:end;gap:20px;padding:44px 0 24px}.premium-head h1{font-size:clamp(2rem,3.1vw,2.85rem);margin:10px 0}.premium-head p{margin:0}.premium-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.premium-tabs{display:flex;gap:7px;overflow-x:auto;border-bottom:1px solid var(--border);padding:0 0 12px;margin-bottom:24px;scrollbar-width:thin}.premium-tabs a{flex:0 0 auto;padding:10px 16px;border-radius:10px;font-weight:700;font-size:.86rem;color:var(--muted)}.premium-tabs a:hover{background:var(--surface2);color:var(--text)}.premium-tabs a.selected{background:var(--accent);color:#fff}.premium-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px}.premium-stat,.premium-panel{border:1px solid var(--border);border-radius:var(--premium-radius);background:var(--surface);box-shadow:0 5px 22px #03071208}.premium-stat{padding:22px;display:flex;flex-direction:column;align-items:start;gap:5px}.premium-stat .stat-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--accent);background:var(--surface2);font-size:1.2rem;margin-bottom:7px}.premium-stat small,.premium-stat span{color:var(--muted)}.premium-stat strong{font-size:2.1rem;line-height:1.3;letter-spacing:-.05em}.premium-stat span{font-size:.78rem}.premium-columns{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:16px}.premium-panel{padding:24px;min-width:0}.premium-panel h2{font-size:1.22rem;margin:0}.panel-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:18px}.panel-heading p{font-size:.84rem;margin:4px 0 0}.premium-table{white-space:normal}.premium-table th{background:var(--surface2);color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.premium-table th:first-child{border-radius:8px 0 0 0}.premium-table th:last-child{border-radius:0 8px 0 0}.premium-table td{font-size:.87rem}.premium-table tr:hover td{background:color-mix(in srgb,var(--surface2) 48%,transparent)}.premium-table td small{font-size:.77rem;color:var(--muted);margin-top:4px}.status-tag{display:inline-block;border-radius:8px;padding:4px 9px;font-size:.73rem;font-weight:800;white-space:nowrap}.status-tag.published{background:#19a98022;color:#19b58e}.status-tag.draft{background:#e8a63a24;color:#d69827}.empty-cell{padding:28px!important;text-align:center;color:var(--muted)}.type-summary{display:flex;flex-direction:column;gap:13px}.type-summary>div{background:var(--surface2);border-radius:11px;display:flex;justify-content:space-between;padding:13px 15px}.info-note{margin:20px 0 0;padding:14px;background:var(--surface2);border-radius:10px;font-size:.81rem}.premium-filters{display:grid;grid-template-columns:minmax(180px,2fr) minmax(130px,1fr) minmax(130px,1fr) auto;gap:10px;margin-bottom:18px}.premium-filters .btn{margin:0}.premium-bottom{margin-bottom:35px}.cell-actions{display:flex;gap:14px;align-items:center}.cell-actions form{margin:0}.categories-columns{grid-template-columns:minmax(260px,.7fr) minmax(350px,1.3fr)}.form-shell{max-width:880px;margin:0 auto 40px}.form-subtabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px;padding-bottom:14px;border-bottom:1px solid var(--border)}.form-subtabs span{padding:7px 12px;background:var(--surface2);border-radius:9px;font-size:.8rem;color:var(--muted)}.form-subtabs span:first-child{color:var(--accent);font-weight:700}.form-footer{display:flex;gap:16px;justify-content:space-between;align-items:center;margin-top:24px}.placeholder-panel{text-align:center;max-width:700px;margin:35px auto;padding:54px 26px}.placeholder-icon{font-size:2.8rem;color:var(--accent)}.placeholder-panel p{max-width:470px;margin:14px auto 22px}.admin-premium .topbar-inner nav{flex-wrap:wrap}
@media(max-width:900px){.premium-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.premium-columns,.categories-columns{grid-template-columns:1fr}.premium-head{align-items:start;flex-direction:column}.premium-filters{grid-template-columns:1fr 1fr}.premium-filters input{grid-column:1/-1}}
@media(max-width:560px){.admin-premium .wrap{width:calc(100% - 26px)}.premium-head{padding-top:30px}.premium-panel{padding:16px}.premium-stat{padding:15px}.premium-filters{grid-template-columns:1fr}.premium-filters input{grid-column:auto}.form-footer{align-items:start;flex-direction:column}.premium-table{min-width:530px}}

/* v0.4 Catálogo agrupado */
.grouped-catalog{display:grid;gap:16px;margin-top:28px}.type-label h2{font-size:22px;margin:18px 0 2px}.catalog-group{border:1px solid var(--line,#dce4f2);border-radius:16px;overflow:hidden;background:var(--panel,#fff)}.catalog-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 22px;font-size:17px;font-weight:800;cursor:pointer;list-style:none}.catalog-group>summary::-webkit-details-marker{display:none}.catalog-group>summary small{font-size:12px;font-weight:500;opacity:.7}.catalog-group .premium-table{margin:0;width:100%}.catalog-group td details{max-width:360px}.catalog-group td details summary{cursor:pointer;color:#6051e8}.fields-editor{padding:24px 0;border-top:1px solid #dce4f2;margin-top:25px}.fields-editor h3{font-size:19px}.field-form{margin-top:20px}.checklabel{display:flex;align-items:center;gap:8px;margin-bottom:16px}.checklabel input{width:auto}.premium-tabs{flex-wrap:wrap}@media(max-width:680px){.catalog-group>summary{padding:15px}.type-label h2{font-size:19px}}

/* v0.5 editor inspirado en DHRU, sin menú lateral */
.mk-config-section{border-top:1px solid var(--border);margin-top:24px;padding-top:23px}.mk-config-section h3{margin:0 0 8px;font-size:1.15rem}.mk-config-section p{margin-bottom:17px}.mk-price-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mk-price-item{display:flex;align-items:end;gap:9px;padding:12px;background:var(--surface2);border-radius:12px}.mk-price-item label{flex:1;margin:0}.mk-price-item .btn{margin:0;white-space:nowrap}.mk-field-edit-list{display:grid;gap:9px;margin:18px 0}.mk-field-edit{border:1px solid var(--border);border-radius:12px;padding:12px}.mk-field-edit summary{cursor:pointer;font-weight:700}.mk-field-edit form{padding-top:15px}.mk-field-edit .checklabel,.mk-config-section .checklabel{flex-direction:row;align-items:center}.mk-field-edit .checklabel input,.mk-config-section .checklabel input{width:auto}@media(max-width:680px){.mk-price-grid{grid-template-columns:1fr}.mk-price-item{flex-wrap:wrap}}

/* v0.6 pricing editor */
#service-pricing .premium-table input,#service-pricing .premium-table select{min-width:130px;max-width:240px}#service-pricing .premium-table td{vertical-align:middle}#service-pricing .table-scroll{margin:1rem 0 1.25rem}#service-pricing strong{font-weight:700}

.mk-api-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mk-api-actions select{max-width:180px}.premium-panel{overflow-wrap:anywhere}

.mk-show-key{display:flex;align-items:center;gap:.5rem;margin:1rem 0}.mk-show-key input{width:auto;accent-color:#665cf4}

/* Gestión protegida de proveedores */
.mk-delete-tools {display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin-top:16px}
.mk-delete-tools label {max-width:230px; font-size:13px}
.mk-danger{background:#933047!important;color:white!important;border:1px solid #c95d6d!important}
.mk-danger:hover{background:#b53c54!important}


/* v1.1 - Administrador DHRU con navegación lateral, aislado del sitio público */
@media(min-width:961px){
 body.admin-premium .mk-admin-side{position:fixed;left:0;top:73px;bottom:0;width:252px;z-index:18;overflow-y:auto;background:var(--surface);border-right:1px solid var(--border);box-shadow:6px 0 24px rgba(4,12,30,.035)}
 body.admin-premium .content.wrap{width:auto!important;max-width:none!important;margin-left:252px!important;margin-right:0!important;padding:18px 30px 72px!important}
 body.admin-premium .footer{margin-left:252px}
 body.admin-premium .topbar-inner.wrap{width:calc(100% - 52px)!important;max-width:none}
 body.admin-premium .mk-side-toggle{display:none}
 body.admin-premium .mk-side-collapsible:not([open]) .mk-side-inner{display:block}
}
.mk-admin-side{font-family:inherit}
.mk-side-inner{padding:18px 12px 22px}
.mk-side-title{display:flex;gap:10px;align-items:center;padding:7px 10px 17px;border-bottom:1px solid var(--border);margin-bottom:12px}
.mk-side-title strong,.mk-side-title small{display:block}.mk-side-title strong{font-size:.96rem;line-height:1.3}.mk-side-title small{color:var(--muted);font-size:.73rem}
.mk-side-symbol{display:grid;place-items:center;background:var(--accent);color:#fff;width:34px;height:34px;border-radius:9px;font-weight:900}
.mk-side-caption{padding:15px 12px 7px;color:var(--muted);letter-spacing:.09em;font-size:.65rem;font-weight:800}
.mk-side-inner>a{display:flex;gap:11px;align-items:center;padding:10px 12px;margin:2px 0;border-radius:10px;color:var(--text);font-size:.83rem;font-weight:600;line-height:1.35;border:1px solid transparent}
.mk-side-inner>a>span{width:20px;text-align:center;color:var(--accent);font-size:1rem;flex-shrink:0}
.mk-side-inner>a:hover{background:var(--surface2);border-color:var(--border)}
.mk-side-inner>a.active{background:color-mix(in srgb,var(--accent) 12%,var(--surface));border-color:color-mix(in srgb,var(--accent) 26%,var(--border));color:var(--accent)}
.mk-side-foot{padding:20px 12px 5px;margin-top:16px;border-top:1px solid var(--border);font-size:.7rem;color:var(--muted)}
.admin-premium .premium-head{padding-top:17px}
.admin-premium .mk-section-shortcuts{gap:6px;margin-bottom:23px}
.admin-premium .mk-section-shortcuts a{padding:8px 12px;font-size:.76rem}
.mk-side-toggle{padding:12px 16px;font-weight:800;background:var(--surface);cursor:pointer;border-radius:12px;border:1px solid var(--border);list-style:none;display:flex;justify-content:space-between}
.mk-side-toggle::-webkit-details-marker{display:none}
@media(max-width:960px){body.admin-premium .mk-admin-side{position:relative;margin:8px 0 18px}body.admin-premium .mk-side-inner{border:1px solid var(--border);border-top:0;background:var(--surface);border-radius:0 0 12px 12px}body.admin-premium .mk-side-collapsible:not([open]) .mk-side-inner{display:none}body.admin-premium .mk-side-collapsible[open] .mk-side-toggle{border-radius:12px 12px 0 0}body.admin-premium .mk-side-inner>a{padding:9px 12px}}

/* v1.2 admin simplificado */
.mk-section-shortcuts{display:none!important}
.mk-dialog{position:fixed;max-width:min(1080px,calc(100vw - 32px));width:100%;max-height:80vh;overflow:auto;padding:24px;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--text);box-shadow:0 25px 85px #0007}
.mk-dialog::backdrop{background:#050a19b9;backdrop-filter:blur(4px)}
.mk-dialog-head,.mk-heading-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.mk-import-controls{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:20px 0}
.mk-import-controls label{min-width:180px;flex:1;margin:0}.mk-import-controls .btn{margin-bottom:1px}
.mk-service-select{width:auto!important;min-width:16px}
@media(max-width:700px){.mk-import-controls{display:grid;grid-template-columns:1fr}.mk-dialog{padding:14px}}

/* MobiKey v1.3 proveedor individual */
.mk-provider-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.mk-provider-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px;border:1px solid var(--line,#2e3850);border-radius:14px}.mk-provider-card small{display:block;opacity:.7;margin-top:6px}.mk-provider-detail{display:grid;gap:16px}.mk-provider-search{width:100%;margin:14px 0;padding:13px 16px;border-radius:10px;border:1px solid #35415c;background:var(--surface,#101827);color:inherit}.mk-provider-service[hidden]{display:none!important}.mk-provider-detail .premium-table td{vertical-align:middle}.mk-provider-detail .mk-import-controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px}.mk-provider-detail .mk-import-controls label{min-width:200px;flex:1}

/* v1.4 - Importación independiente por servicio */
.mk-import-table{min-width:970px}.mk-import-table td:nth-child(1){min-width:280px;max-width:420px}.mk-import-table select{min-width:150px;width:100%;padding:10px 12px}.mk-import-table td:nth-child(3){min-width:210px}.mk-import-table .btn{white-space:nowrap}.mk-import-table form{margin:0}.mk-import-table td{vertical-align:middle}
/* MobiKey v1.5: contratos DHRU y vista previa, sin alterar diseño Premium global. */
.mk-type-section[hidden],.mk-provider-service[hidden]{display:none!important}
.mk-contract-warning{border:1px solid #e0b25a77;border-radius:12px;padding:16px;margin:12px 0;background:var(--surface,#f6f8ff)}
.mk-contract-warning p{margin:6px 0 14px}
.mk-quantity-form{display:grid;gap:12px;margin:16px 0;padding:16px;border:1px solid var(--border,#d9dfed);border-radius:12px}
.mk-verify-form{display:grid;gap:12px;margin:16px 0;padding:16px;border:1px solid var(--border,#d9dfed);border-radius:12px}
.mk-form-dialog{color:var(--text,#141a31);background:var(--panel,#fff);width:min(590px,calc(100vw - 32px));max-height:85vh;overflow:auto;border:1px solid var(--border,#d9dfed);border-radius:16px;padding:22px;box-shadow:0 24px 80px #0005}
.mk-form-dialog::backdrop{background:rgba(12,16,35,.68)}
.mk-dialog-title{display:flex;align-items:start;gap:12px;justify-content:space-between;margin-bottom:18px}
.mk-preview-field{display:block;margin:10px 0;font-weight:600}
.mk-preview-field input,.mk-preview-field select,.mk-preview-field textarea{margin-top:6px;width:100%}
.mk-form-dialog .btn.primary[disabled]{opacity:.55;cursor:not-allowed}
.mk-form-open{display:inline-flex;margin-top:12px}
@media(max-width:660px){.mk-form-dialog{padding:15px}}
/* MobiKey v1.6: Custom Fields manuales (sin proveedor). */
.mk-manual-field-list{display:grid;gap:14px;margin:16px 0}
.mk-manual-row{border:1px solid var(--border,#29354b);border-radius:14px;padding:18px;background:var(--card,#111a2b)}
.mk-manual-row-heading,.mk-manual-actions{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}
.mk-manual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}
.mk-manual-field-options[hidden]{display:none!important}
.mk-manual-row label{min-width:0}
.mk-manual-row .mk-manual-grid>.checklabel{align-self:center}
.mk-quantity-config{padding:16px;border:1px solid var(--border,#29354b);border-radius:12px;margin-top:20px}
.mk-preview-choices{display:flex;gap:12px;flex-wrap:wrap;padding:10px 0}
.mk-preview-choices label{display:inline-flex;gap:5px;align-items:center}
.mk-preview-field{display:flex;flex-direction:column;gap:7px;margin:12px 0}
.mk-preview-field strong{font-size:.92rem}
@media(max-width:760px){.mk-manual-grid{grid-template-columns:1fr}.mk-manual-row{padding:12px}}

/* v1.7: editor manual visible junto al contrato DHRU */
#mk-service-field-editor{scroll-margin-top:24px;padding:18px 0 8px;margin-top:18px}
.mk-manual-link{display:inline-flex;text-decoration:none;align-items:center;gap:6px;border:1px solid var(--border)}
.mk-field-add-card{padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface2);margin:14px 0 22px}
.mk-field-add-card h4{margin:0 0 8px;font-size:1rem}
.mk-field-add-card .field-form{margin-top:15px}
.mk-field-add-card .field-form>label{display:block}
.mk-field-add-card button.primary{margin-top:10px}
#mk-service-field-editor:target .mk-field-add-card{outline:2px solid #7771f5;outline-offset:3px}


/* v1.8 — Light/Dark coherentes: editor Custom Fields + overlays.
   Hereda el tema aplicado al elemento <html data-theme="light">. */
:root {
  --card:var(--surface2);
  --panel:var(--surface);
  --line:var(--border);
  --field-bg:var(--surface);
  --field-label:var(--text);
  --field-placeholder:var(--muted);
}
/* Estilos de ambos modos; nunca se fija un color oscuro en Light Mode. */
.mk-manual-row,
.mk-field-add-card,
.mk-quantity-config,
.mk-quantity-form,
.mk-verify-form,
.mk-field-edit {
  background:var(--surface2);
  color:var(--text);
  border:1px solid var(--border);
}
.mk-manual-row {
  border-radius:14px;
  padding:18px;
}
.mk-manual-row-heading strong,
.mk-manual-row label,
.mk-manual-row .checklabel,
.mk-field-add-card label,
.mk-quantity-config label,
.mk-field-edit label {
  color:var(--text);
  opacity:1;
}
.mk-manual-row input:not([type="checkbox"]),
.mk-manual-row textarea,
.mk-manual-row select,
.mk-field-add-card input:not([type="checkbox"]),
.mk-field-add-card textarea,
.mk-field-add-card select,
.mk-quantity-config input:not([type="checkbox"]),
.mk-quantity-config select,
.mk-quantity-config textarea {
  background:var(--field-bg);
  color:var(--text);
  border:1px solid var(--border);
}
.mk-manual-row input::placeholder,
.mk-manual-row textarea::placeholder,
.mk-field-add-card input::placeholder,
.mk-field-add-card textarea::placeholder {
  color:var(--field-placeholder);
  opacity:1;
}
.mk-manual-row input:focus-visible,
.mk-manual-row textarea:focus-visible,
.mk-manual-row select:focus-visible,
.mk-field-add-card input:focus-visible,
.mk-field-add-card textarea:focus-visible,
.mk-field-add-card select:focus-visible {
  border-color:var(--accent);
  outline:2px solid var(--accent);
  outline-offset:1px;
}
.mk-manual-row input[type="checkbox"],
.mk-field-add-card input[type="checkbox"] {
  width:auto;
  accent-color:var(--accent);
}
/* La vista previa y los paneles externos antes usaban --panel sin definir. */
.mk-form-dialog, .mk-dialog, .catalog-group, .mk-provider-card {
  background:var(--surface);
  color:var(--text);
  border-color:var(--border);
}
.mk-provider-search {
  background:var(--surface);
  color:var(--text);
  border-color:var(--border);
}
.fields-editor { border-top-color:var(--border); }
#mk-service-field-editor:target .mk-field-add-card {
  outline-color:var(--accent);
}
@media (max-width:760px) {
  .mk-manual-row {padding:12px;}
}

/* v1.9 — Formularios claros por tipo, sin bloques de diagnóstico permanentes */
.mk-type-section[hidden], #mk-active-type-fields[hidden], .mk-type-change-note[hidden], .mk-remote-quantity[hidden] {display:none!important}
.mk-field-editor-heading {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 14px}
.mk-field-editor-heading h3 {margin:0}
.mk-type-change-note {padding:14px 16px;border:1px solid var(--border);background:var(--surface2);border-radius:12px;color:var(--text);font-size:.9rem;line-height:1.5}
.mk-edit-quantity {margin-top:20px;padding:18px;border-radius:12px;border:1px solid var(--border);background:var(--surface2)}
.mk-edit-quantity h3 {margin-bottom:14px}
.mk-remote-quantity {margin-top:18px;border:1px solid var(--border);background:var(--surface2);border-radius:12px;padding:15px}
.mk-remote-quantity summary {cursor:pointer;font-weight:700;color:var(--text)}
.mk-remote-quantity .mk-quantity-form {margin-top:14px}
.mk-remote-quantity .mk-quantity-form .pair {margin-top:12px}
#mk-create-manual-fields .mk-manual-field-list {margin-top:16px}
.mk-config-section .mk-type-section p {color:var(--muted)}
#mk-dhru-tools {background:var(--surface);color:var(--text)}
#mk-dhru-tools .mk-verify-form {display:grid;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}
#mk-dhru-tools .checklabel {color:var(--text)}

/* MobiKey v2.0 — mismos contrastes en light/dark, sin colores fijos. */
.mk-editor-tabs{display:flex;gap:8px;flex-wrap:wrap;align-items:center;border-bottom:1px solid var(--border);padding:0 0 14px;margin:8px 0 22px}
.mk-editor-tab{appearance:none;cursor:pointer;border:1px solid var(--border);background:var(--surface2);color:var(--text);font:inherit;font-size:.87rem;font-weight:700;line-height:1.4;border-radius:10px;padding:11px 14px;transition:background .18s,border-color .18s}
.mk-editor-tab:hover,.mk-editor-tab:focus-visible{border-color:var(--accent);outline-offset:2px}
.mk-editor-tab.is-active{background:var(--accent);border-color:var(--accent);color:#fff}
[data-editor-panel][hidden],.mk-category-row[hidden]{display:none!important}
.mk-category-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.mk-category-tabs .btn{font-size:.83rem;white-space:nowrap}
.mk-category-tabs .btn.is-active{background:var(--accent);border-color:var(--accent);color:#fff}
.mk-delete-link{color:#d13d50!important;cursor:pointer}
.mk-delete-link:hover{text-decoration:underline}
.mk-category-row .cell-actions{flex-wrap:wrap;gap:7px}
.mk-category-row .cell-actions form{margin:0}
.mk-price-group-list{display:grid;gap:10px;margin:14px 0}
.mk-price-group-row{display:grid;grid-template-columns:minmax(145px,.9fr) minmax(170px,1.2fr) minmax(115px,.8fr) minmax(115px,.7fr);gap:10px;align-items:end;border:1px solid var(--border);border-radius:12px;background:var(--surface2);padding:14px}
.mk-price-group-row label{margin:0!important;min-width:0;color:var(--text)}
.mk-price-group-row label:not(.checklabel){font-size:.78rem;font-weight:700}
.mk-price-group-row label select,.mk-price-group-row label input{margin-top:7px;min-width:0;width:100%;background:var(--surface);color:var(--text);border:1px solid var(--border)}
.mk-price-group-row label.checklabel{align-self:center;display:flex;align-items:center;gap:9px;line-height:1.3}
.mk-price-group-row label.checklabel input{width:auto;margin:0}
.mk-computed-price{font-size:.94rem;white-space:nowrap;font-weight:800;color:var(--text);padding:12px 0 10px}
.mk-computed-price.mk-price-inactive{color:var(--muted);font-weight:500}
.mk-price-editor{color:var(--text)}
.mk-price-editor h3{color:var(--text)}
.mk-price-editor p{color:var(--muted)}
.mk-price-editor input:focus-visible,.mk-price-editor select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mk-category-tabs button:focus-visible,.mk-editor-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:760px){.mk-price-group-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.mk-price-group-row{grid-template-columns:minmax(0,1fr)}.mk-editor-tab{width:100%;text-align:left}}
.mk-dhru-secondary{background:var(--surface2);border:1px solid var(--border);border-radius:12px;margin:16px 0;padding:12px 15px;color:var(--text)}
.mk-dhru-secondary summary{cursor:pointer;font-size:.88rem;color:var(--muted)}
.mk-dhru-secondary[open] summary{font-weight:700;color:var(--text);margin-bottom:10px}
.mk-dhru-secondary form{margin:12px 0 0}
.mk-dhru-secondary label{color:var(--text)}

/* MobiKey v2.1 — Cuentas de clientes, compatibles con tema claro/oscuro. */
.mk-client-auth .panel{max-width:510px;width:min(100%,510px);box-shadow:var(--shadow)}
.mk-client-auth .panel h1{font-size:clamp(1.9rem,4vw,2.6rem);margin:11px 0}
.mk-client-auth form{margin-top:20px}
.mk-client-auth .btn.primary{width:100%}
.mk-client-auth .mk-google{margin-top:12px;width:100%;border:1px solid var(--border);background:var(--surface2);color:var(--text)}
.mk-auth-links{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:space-between;margin-top:19px;font-size:.88rem;color:var(--accent)}
.mk-info-msg{padding:15px;border:1px solid var(--border);border-radius:13px;background:var(--surface2);color:var(--text)}
.mk-customer-account{padding:46px 0 90px}.mk-customer-account h1{font-size:clamp(2rem,5vw,3rem);margin:11px 0}
.mk-account-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px;margin:25px 0}
.mk-account-grid .premium-panel{padding:23px}.mk-account-grid .premium-panel h2{margin-bottom:18px}
.mk-profile-data{display:grid;grid-template-columns:1fr 1fr;gap:13px 18px}
.mk-profile-data dt{color:var(--muted);font-weight:650;font-size:.85rem}.mk-profile-data dd{margin:0;color:var(--text);font-weight:700;overflow-wrap:anywhere}
.mk-security-option{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:17px 0}.mk-security-option>span{background:var(--surface2);border:1px solid var(--border);padding:3px 11px;border-radius:20px;color:var(--text);font-size:.79rem}
.mk-rule{border:0;border-top:1px solid var(--border);margin:23px 0}
.mk-client-search{display:flex;gap:10px;margin:18px 0}.mk-client-search input{flex:1;max-width:460px}.mk-client-search button{flex:none}
.mk-client-actions{min-width:185px;max-width:320px;border:1px solid var(--border);border-radius:12px;padding:11px;background:var(--surface2);color:var(--text)}
.mk-client-actions summary{font-weight:800;cursor:pointer;color:var(--accent)}
.mk-client-actions>p{margin:10px 0}.mk-client-actions>form{margin:13px 0;border-top:1px solid var(--border);padding-top:12px}
.mk-client-actions input,.mk-client-actions .btn{font-size:.82rem}.mk-client-actions form label{margin-bottom:9px}
.mk-client-action-buttons{display:flex;flex-wrap:wrap;gap:6px}.mk-client-action-buttons .btn{padding:8px 10px}
.mk-client-actions .mk-danger{background:#b91c1c;color:#fff;border-color:#dc2626}
@media(max-width:790px){.mk-account-grid{grid-template-columns:1fr}.mk-client-search{flex-direction:column}.mk-client-search input{max-width:none}}
.mk-verify-again{border-top:1px solid var(--border);margin-top:18px;padding-top:13px}.mk-verify-again summary{cursor:pointer;color:var(--accent);font-size:.9rem;font-weight:650}

/* MobiKey v2.2: onboarding, country/language/mobile */
.mk-client-onboard .panel{max-width:680px;width:min(100%,680px)}
.mk-client-onboard label,.mk-customer-account label{display:block}
.mk-phone-row{display:grid;grid-template-columns:minmax(180px,.95fr) minmax(160px,1.05fr);gap:12px;align-items:start}
.mk-phone-row label{min-width:0}
.mk-phone-help{font-size:.78rem;line-height:1.55;margin:4px 0 10px}
.mk-client-onboard select,.mk-account-grid select{width:100%;min-width:0}
@media(max-width:560px){.mk-phone-row{grid-template-columns:1fr}}


/* ===============================================================
   MobiKey v3.0 — PORTAL CLIENTE / ACCESO PREMIUM
   Solo aplica a ?page=client-login; no afecta administracion,
   registro, Google OAuth, OTP, perfil, catalogo ni otras pantallas.
   =============================================================== */
.mk-login-page {
  --mk-blue: #1266ff;
  --mk-violet: #842dff;
  --mk-cyan: #23caff;
  --mk-link: #82a7ff;
  --mk-login-muted: #a8b7dd;
  background: #07112d;
  color: #f6f8ff;
}
.mk-login-page .site { min-height:100vh; min-height:100dvh; }
.mk-login-page .topbar {
  position:relative; top:auto; z-index:5;
  background:linear-gradient(100deg,#0b1a41 0%,#080f2b 54%,#11133c 100%);
  border-bottom:1px solid rgba(125,158,242,.3);
}
.mk-login-page .topbar-inner.wrap,
.mk-login-page .footer-inner.wrap { width:min(1010px,calc(100% - 40px)); }
.mk-login-page .topbar-inner {min-height:74px;}
.mk-login-page .wordmark {font-size:1.53rem;letter-spacing:-.065em;color:#fff;font-weight:850;}
.mk-login-page .wordmark span {color:#6d51ff;}
.mk-login-page .wordmark .wordmark-dot {color:#00e5c7;}
.mk-login-page nav a {color:#e0e8ff;font-size:.93rem;}
.mk-login-page nav a:hover {color:#fff;text-shadow:0 0 14px rgba(78,156,255,.8);}
.mk-login-page .theme-toggle {
  width:46px;height:46px;border-radius:14px;background:rgba(13,25,60,.8);
  border:1px solid rgba(109,153,255,.48);color:#eef4ff;
  transition:box-shadow .22s,border-color .22s,transform .22s;
}
.mk-login-page .theme-toggle:hover {border-color:#7dd6ff;box-shadow:0 0 18px #176df966;transform:translateY(-1px);}
.mk-login-page .actions .btn-sm {min-height:46px;background:linear-gradient(135deg,rgba(43,58,114,.64),rgba(45,34,107,.65));border-color:rgba(118,137,245,.4);color:#fff;border-radius:14px;}
.mk-login-page .actions .btn-sm:hover {box-shadow:0 0 22px rgba(94,81,255,.38);}
.mk-login-page .content.wrap {
  width:100%;max-width:none; margin:0; position:relative; display:flex;
  flex-direction:column; justify-content:center; isolation:isolate;
  overflow:hidden; padding:0;
  background:
    radial-gradient(ellipse 56% 95% at -8% 35%,rgba(20,66,199,.33),transparent 70%),
    radial-gradient(ellipse 53% 72% at 111% 69%,rgba(92,22,214,.26),transparent 72%),
    radial-gradient(ellipse 39% 50% at 48% 51%,rgba(22,61,156,.27),transparent 85%),
    linear-gradient(115deg,#08163e 0%,#080e2b 48%,#0c1747 100%);
}
.mk-login-page .footer {position:relative;z-index:2;flex-shrink:0;padding:0;border-top:1px solid rgba(113,155,241,.25);background:linear-gradient(100deg,#081532,#08112b 70%,#0b1742);}
.mk-login-page .footer-inner {min-height:84px;gap:16px;color:#acb9da;font-size:.85rem;}
.mk-login-page .footer .wordmark {font-size:1.17rem;}
.mk-login-v3 {
  position:relative;display:flex;align-items:center;justify-content:center;
  flex:1;width:100%;min-height:0;isolation:isolate;
  padding:34px 22px 20px;margin:0;
}
.mk-login-v3 .mk-login-scene {position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1;}
.mk-login-v3 .mk-orbit {position:absolute;display:block;border-radius:50%;pointer-events:none;}
.mk-login-v3 .mk-orbit-left {
  width:780px;height:780px;top:-160px;left:calc(50% - 1150px);
  border:2px solid rgba(46,126,255,.85);
  background:radial-gradient(ellipse at 15% 22%,#143caa 0%,#0a1b59 39%,#10104b 63%,#101a50 67%,transparent 69%);
  box-shadow:inset -10px -22px 65px rgba(64,24,211,.45),0 0 24px rgba(25,97,255,.34);
}
.mk-login-v3 .mk-orbit-right {
  width:790px;height:790px;right:calc(50% - 1250px);top:-120px;
  border:2px solid rgba(75,82,245,.75);
  background:radial-gradient(ellipse at 45% 65%,#15155f 0%,#140c45 48%,#0a143b 65%,transparent 70%);
  box-shadow:0 0 24px rgba(135,47,255,.25);
}
.mk-login-v3 .mk-planet {position:absolute;display:block;border-radius:50%;}
.mk-login-v3 .mk-planet-left {
  width:450px;height:450px;bottom:-175px;left:calc(50% - 1200px);
  border:1px solid rgba(97,120,255,.55);
  background:radial-gradient(circle at 72% 24%,#173fe1 0%,#241f9b 24%,#0d1552 66%,#071135 100%);
  box-shadow:0 -5px 30px rgba(117,58,255,.58);
}
.mk-login-v3 .mk-planet-mid {
  width:155px;height:155px;left:calc(50% + 200px);top:31%;
  background:radial-gradient(circle at 23% 30%,#8042fb 0%,#30117d 41%,#10133f 79%);
  box-shadow:-15px 0 42px rgba(112,57,255,.22);
}
.mk-login-v3 .mk-planet-right {
  width:415px;height:415px;right:calc(50% - 930px);bottom:-150px;
  border:2px solid rgba(114,77,255,.83);
  background:radial-gradient(circle at 37% 16%,#5630db 0%,#211376 31%,#0a1541 75%);
  box-shadow:0 -12px 34px rgba(108,59,255,.3);
}
.mk-login-v3 .mk-dots {position:absolute;width:133px;height:88px;opacity:.85;background-image:radial-gradient(circle,#675dff 1.6px,transparent 2px);background-size:22px 22px;}
.mk-login-v3 .mk-dots-left {left:5%;top:21%;}
.mk-login-v3 .mk-dots-right {right:4%;top:43%;}
.mk-login-v3 .mk-login-card {
  position:relative;isolation:isolate;z-index:1;overflow:visible;
  width:min(532px,100%);max-width:532px;
  padding:38px 38px 24px;border-radius:32px;border:2px solid transparent;
  background:linear-gradient(145deg,rgba(17,31,63,.96),rgba(9,18,47,.96) 57%,rgba(26,16,60,.96)) padding-box,
             linear-gradient(130deg,#4dd2ff 0%,#2671ff 33%,#875aff 69%,#f04dff 100%) border-box;
  box-shadow:0 0 11px rgba(40,140,255,.78),0 0 34px rgba(18,102,255,.45),0 0 32px rgba(213,60,255,.36),0 30px 90px rgba(0,0,0,.36);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
}
.mk-login-v3 .mk-login-card::before {
  content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;
  background:radial-gradient(ellipse 66% 29% at 50% 0%,rgba(60,113,242,.18),transparent),
             radial-gradient(ellipse 48% 38% at 100% 90%,rgba(180,45,241,.12),transparent);
}
.mk-login-v3 .mk-login-heading {text-align:center;margin-bottom:19px;}
.mk-login-v3 .mk-login-kicker {
  display:inline-flex;gap:10px;align-items:center;justify-content:center;
  min-height:41px;padding:6px 15px;border:1px solid rgba(102,111,230,.35);border-radius:100px;
  background:linear-gradient(105deg,rgba(42,52,113,.54),rgba(27,24,78,.42));
  color:#91a5ff;font-size:.76rem;font-weight:850;letter-spacing:.15em;line-height:1.4;
}
.mk-login-v3 .mk-login-kicker svg {width:19px;height:19px;flex:none;}
.mk-login-v3 .mk-login-heading h1 {
  margin:18px -10px 4px;font-size:clamp(2.5rem,4.1vw,3.65rem);font-weight:850;
  line-height:1.09;letter-spacing:-.059em;white-space:nowrap;color:#fff;
}
.mk-login-v3 .mk-login-heading h1 span {
  background:linear-gradient(110deg,#47b8ff,#5274ff 47%,#a13aff 90%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#7a69ff;
}
.mk-login-v3 .mk-login-accent {display:block;width:72px;height:7px;border-radius:100px;margin:12px auto 12px;background:linear-gradient(90deg,#13c4ff,#185dff 40%,#b23afa);box-shadow:0 0 12px rgba(72,94,252,.42);}
.mk-login-v3 .mk-login-heading p {color:var(--mk-login-muted);margin:0;line-height:1.45;font-size:1.05rem;}
.mk-login-v3 .mk-login-form {margin:19px 0 0;}
.mk-login-v3 .mk-login-field {display:flex;flex-direction:column;gap:8px;margin:0 0 18px;color:#eff4ff;font-size:.93rem;font-weight:750;}
.mk-login-v3 .mk-field-caption {display:block;line-height:1.35;}
.mk-login-v3 .mk-field-control {display:flex;align-items:center;gap:14px;position:relative;min-height:55px;padding:0 17px;border-radius:16px;border:1px solid rgba(127,153,241,.48);background:linear-gradient(110deg,rgba(18,32,70,.7),rgba(37,43,94,.65));transition:border-color .23s,box-shadow .23s,background .23s;}
.mk-login-v3 .mk-field-control:focus-within {border-color:#67baff;box-shadow:0 0 0 2px rgba(55,118,255,.17),0 0 20px rgba(31,115,255,.37);background:rgba(27,45,91,.86);}
.mk-login-v3 .mk-field-control > svg {flex:none;width:21px;height:21px;color:#d6e5ff;}
.mk-login-v3 .mk-field-control input {margin:0;padding:15px 0;min-height:52px;min-width:0;width:100%;border:0;background:transparent;box-shadow:none!important;outline:none;color:#fff;font-size:.92rem;font-weight:500;line-height:1.4;}
.mk-login-v3 .mk-field-control input::placeholder {color:#a1afd1;opacity:1;}
.mk-login-v3 .mk-password-toggle {flex:none;display:grid;place-items:center;width:28px;height:34px;margin:0 -5px 0 0;border:0;padding:0;background:transparent;color:#d6e3ff;cursor:pointer;}
.mk-login-v3 .mk-password-toggle:hover {color:#fff;filter:drop-shadow(0 0 7px #479eff);}
.mk-login-v3 .mk-password-toggle svg {width:22px;height:22px;}
.mk-login-v3 .mk-login-submit {
  display:flex;width:100%;min-height:62px;margin:21px 0 0;padding:12px 18px;
  border:1px solid #7ccfff;border-radius:36px;
  background:linear-gradient(105deg,#009dff 0%,#155df6 33%,#533af1 65%,#b323ec 100%);
  box-shadow:0 0 0 1px rgba(153,211,255,.4) inset,0 0 17px rgba(42,112,255,.7),0 0 25px rgba(168,39,255,.5),0 10px 24px rgba(20,38,148,.28);
  color:white;font-size:1.14rem;font-weight:750;
  transition:transform .22s,box-shadow .22s,filter .22s;
}
.mk-login-v3 .mk-login-submit svg {width:25px;height:25px;}
.mk-login-v3 .mk-login-submit:hover {
  transform:translateY(-2px);filter:brightness(1.17);
  box-shadow:0 0 0 1px #c6f5ff inset,0 0 27px rgba(35,172,255,.98),0 0 36px rgba(188,49,255,.85),0 14px 32px rgba(14,30,90,.4);
}
.mk-login-v3 .mk-login-submit:active {transform:translateY(0);}
.mk-login-v3 .mk-login-google {
  display:flex;width:100%;min-height:55px;margin:18px 0 0;padding:12px 15px;
  gap:15px;border-radius:24px;border:1px solid #d5defa;
  background:linear-gradient(180deg,#fff,#f1f4ff);color:#101934;
  font-size:1.03rem;font-weight:800;
  box-shadow:0 0 19px rgba(91,119,252,.17),0 8px 22px rgba(0,0,0,.17);
  transition:transform .22s,box-shadow .22s,filter .22s;
}
.mk-login-v3 .mk-login-google:hover {filter:brightness(1.04);transform:translateY(-2px);box-shadow:0 0 24px rgba(82,179,255,.49),0 0 26px rgba(154,75,255,.32);}
.mk-login-v3 .mk-google-icon {width:26px;height:26px;flex:none;}
.mk-login-v3 .mk-auth-links {display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:25px 0 0;font-size:.92rem;color:var(--mk-link);}
.mk-login-v3 .mk-auth-links a {color:var(--mk-link);}
.mk-login-v3 .mk-auth-links a:hover {color:#c9dbff;text-shadow:0 0 12px rgba(58,144,255,.56);}
.mk-login-v3 .mk-verify-again {border-top:1px solid rgba(128,145,211,.27);margin:18px 0 0;padding-top:15px;}
.mk-login-v3 .mk-verify-again summary {color:#85a9ff;font-size:.89rem;font-weight:650;cursor:pointer;}
.mk-login-v3 .mk-verify-again summary::marker {color:#6991ff;}
.mk-login-v3 .mk-verify-again[open] summary {margin-bottom:14px;}
.mk-login-v3 .mk-verify-again form {margin:0;}
.mk-login-v3 .mk-verify-again label {color:var(--text);}
.mk-login-v3 a:focus-visible,.mk-login-v3 button:focus-visible,.mk-login-page .topbar a:focus-visible,.mk-login-page .topbar button:focus-visible,.mk-login-v3 summary:focus-visible {outline:3px solid #8fd7ff;outline-offset:3px;}

/* Tema claro: mismas proporciones y posicion del marco de acceso. */
:root[data-theme="light"] .mk-login-page {--mk-link:#444dff;--mk-login-muted:#7988ad;background:#f4f8ff;color:#121935;}
:root[data-theme="light"] .mk-login-page .topbar {background:rgba(255,255,255,.93);border-bottom-color:#dce4f6;}
:root[data-theme="light"] .mk-login-page .wordmark {color:#10182e;}
:root[data-theme="light"] .mk-login-page nav a {color:#536184;}
:root[data-theme="light"] .mk-login-page nav a:hover {color:#3834db;}
:root[data-theme="light"] .mk-login-page .theme-toggle {background:white;color:#142047;border-color:#d4dcf3;}
:root[data-theme="light"] .mk-login-page .actions .btn-sm {background:linear-gradient(145deg,#fff,#eef1fc);color:#11182b;border-color:#dae2f5;}
:root[data-theme="light"] .mk-login-page .content.wrap {
  background:radial-gradient(ellipse 45% 85% at -6% 34%,rgba(138,174,255,.38),transparent 75%),
             radial-gradient(ellipse 43% 85% at 108% 61%,rgba(175,147,255,.22),transparent 80%),
             radial-gradient(ellipse 40% 55% at 50% 65%,rgba(214,226,255,.68),transparent 85%),
             #f7faff;
}
:root[data-theme="light"] .mk-login-page .footer {background:rgba(255,255,255,.94);border-top-color:#dce5f7;}
:root[data-theme="light"] .mk-login-page .footer-inner {color:#667696;}
:root[data-theme="light"] .mk-login-v3 .mk-orbit-left {border-color:rgba(103,137,255,.34);background:radial-gradient(circle at 27% 24%,rgba(196,219,255,.66),rgba(223,233,255,.46) 55%,rgba(230,239,255,.3) 65%,transparent 69%);box-shadow:none;}
:root[data-theme="light"] .mk-login-v3 .mk-orbit-right {border-color:rgba(149,143,249,.36);background:radial-gradient(circle,rgba(221,221,255,.4),rgba(245,247,255,.1) 66%,transparent 70%);box-shadow:none;}
:root[data-theme="light"] .mk-login-v3 .mk-planet-left {background:radial-gradient(circle at 70% 18%,#b7ccff,#ebefff 53%,#f6f9ff);border-color:rgba(173,184,255,.3);box-shadow:none;}
:root[data-theme="light"] .mk-login-v3 .mk-planet-mid {background:radial-gradient(circle at 22% 20%,#c4c5ff,#edebff 65%);box-shadow:none;opacity:.72;}
:root[data-theme="light"] .mk-login-v3 .mk-planet-right {background:radial-gradient(circle at 23% 10%,#d6cbff,#c0d5ff 42%,#ecf3ff);border-color:rgba(141,139,242,.27);box-shadow:none;}
:root[data-theme="light"] .mk-login-v3 .mk-dots {opacity:.4;}
:root[data-theme="light"] .mk-login-v3 .mk-login-card {
  background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(252,253,255,.96)) padding-box,
             linear-gradient(130deg,#63d8ff,#819dff 48%,#f3a0ff 100%) border-box;
  box-shadow:0 0 17px rgba(38,133,255,.18),0 0 29px rgba(187,69,255,.17),0 24px 66px rgba(45,67,140,.12);
}
:root[data-theme="light"] .mk-login-v3 .mk-login-kicker {background:linear-gradient(120deg,#f2f4ff,#f9f8ff);border-color:#e4e6ff;color:#534bdb;}
:root[data-theme="light"] .mk-login-v3 .mk-login-heading h1 {color:#111932;}
:root[data-theme="light"] .mk-login-v3 .mk-login-field {color:#121a36;}
:root[data-theme="light"] .mk-login-v3 .mk-field-control {background:linear-gradient(130deg,#f8faff,#f6f8fd);border-color:#dce5fa;}
:root[data-theme="light"] .mk-login-v3 .mk-field-control:focus-within {background:white;border-color:#6db5ff;}
:root[data-theme="light"] .mk-login-v3 .mk-field-control > svg, :root[data-theme="light"] .mk-login-v3 .mk-password-toggle {color:#697ba3;}
:root[data-theme="light"] .mk-login-v3 .mk-field-control input {color:#101934;}
:root[data-theme="light"] .mk-login-v3 .mk-field-control input::placeholder {color:#7f91b6;}
:root[data-theme="light"] .mk-login-v3 .mk-verify-again {border-top-color:#dce4f5;}

@media(max-width:780px) {
  .mk-login-page .topbar-inner.wrap,.mk-login-page .footer-inner.wrap {width:calc(100% - 32px);}
  .mk-login-v3 {padding:28px 16px 35px;}
  .mk-login-v3 .mk-orbit-left {left:-580px;}
  .mk-login-v3 .mk-orbit-right {right:-610px;}
  .mk-login-v3 .mk-planet-left {left:-300px;}
  .mk-login-v3 .mk-planet-mid {left:70%;}
  .mk-login-v3 .mk-planet-right {right:-270px;}
}
@media(max-width:620px) {
  .mk-login-page .topbar-inner {min-height:74px;flex-wrap:wrap;justify-content:space-between;gap:9px;padding:9px 0;}
  .mk-login-page .topbar-inner nav {order:3;width:100%;justify-content:center;gap:21px;padding:2px 0 4px;}
  .mk-login-page .topbar-inner .actions {margin-left:auto;gap:9px;}
  .mk-login-page .wordmark {font-size:1.3rem;}
  .mk-login-page .theme-toggle {width:39px;height:39px;}
  .mk-login-page .actions .btn-sm {min-height:39px;padding:7px 10px;}
  .mk-login-v3 .mk-login-card {padding:30px 21px 22px;border-radius:25px;}
  .mk-login-v3 .mk-login-heading h1 {font-size:clamp(2.4rem,9vw,3.25rem);margin:18px -5px 6px;}
  .mk-login-v3 .mk-login-kicker {font-size:.67rem;letter-spacing:.12em;}
  .mk-login-v3 .mk-login-heading p {font-size:.92rem;}
  .mk-login-v3 .mk-login-field {font-size:.87rem;}
  .mk-login-v3 .mk-field-control {gap:9px;padding:0 12px;}
  .mk-login-v3 .mk-field-control input {font-size:.86rem;}
  .mk-login-v3 .mk-login-google {font-size:.93rem;gap:10px;}
  .mk-login-v3 .mk-auth-links {font-size:.84rem;gap:10px;}
  .mk-login-page .footer-inner {padding:20px 0;min-height:auto;align-items:center;text-align:center;gap:8px;}
}
@media(max-width:380px) {
  .mk-login-v3 .mk-login-card {padding:24px 16px 19px;}
  .mk-login-v3 .mk-login-heading h1 {font-size:2.18rem;}
  .mk-login-v3 .mk-login-field {font-size:.8rem;}
  .mk-login-v3 .mk-field-control input::placeholder {font-size:.79rem;}
  .mk-login-v3 .mk-auth-links {font-size:.78rem;}
  .mk-login-page .topbar-inner nav {gap:14px;}
}
@media(prefers-reduced-motion:reduce) {
  .mk-login-v3 .mk-login-submit,.mk-login-v3 .mk-login-google,.mk-login-v3 .mk-field-control {transition:none;}
}


/* ===============================================================
   MobiKey v3.1 - formularios públicos adicionales y emotes inline
   =============================================================== */
.mk-auth-v3 {padding:52px 20px;min-height:calc(100vh - 160px);}
.mk-auth-v3 .mk-auth-card {width:min(532px,100%);max-width:532px;padding:36px 38px;}
.mk-auth-v3 .mk-auth-card > .eyebrow {display:block;text-align:center;color:#64dcd5;letter-spacing:.18em;font-size:.72rem;font-weight:850;margin:0 0 13px;}
.mk-auth-v3 .mk-auth-card > h1 {text-align:center;color:#fff;font-size:clamp(1.75rem,3.2vw,2.55rem);font-weight:850;letter-spacing:-.05em;margin:0 0 11px;line-height:1.17;}
.mk-auth-v3 .mk-auth-card > p {color:#bdc8ec;line-height:1.58;font-size:.92rem;text-align:center;}
.mk-auth-v3 .mk-auth-card form {margin-top:24px;}
.mk-auth-v3 .mk-auth-card form label {color:#f3f6ff;font-size:.84rem;font-weight:700;margin-bottom:15px;gap:8px;}
.mk-auth-v3 .mk-auth-card input:not([type="hidden"]):not([type="checkbox"]),.mk-auth-v3 .mk-auth-card select {height:48px;padding:10px 13px;background:linear-gradient(110deg,rgba(33,47,91,.82),rgba(24,34,75,.86));border:1px solid rgba(112,145,237,.55);border-radius:13px;color:#fff;outline:0;transition:border-color .18s,box-shadow .18s;}
.mk-auth-v3 .mk-auth-card input:focus,.mk-auth-v3 .mk-auth-card select:focus {border-color:#52c6ff!important;box-shadow:0 0 0 3px rgba(32,137,245,.16),0 0 17px rgba(56,140,255,.28);}
.mk-auth-v3 .mk-auth-card input::placeholder {color:#96a7cd;}
.mk-auth-v3 .mk-auth-card select option {color:#18213b;background:#fff;}
.mk-auth-v3 .mk-auth-card .mk-phone-row {gap:12px;}
.mk-auth-v3 .mk-auth-card .btn.primary {display:flex;align-items:center;justify-content:center;width:100%;min-height:51px;margin-top:15px;color:#fff;border:1px solid rgba(169,200,255,.5);border-radius:13px;background:linear-gradient(105deg,#126bff,#493aff 52%,#a22cf0);font-weight:800;box-shadow:0 4px 22px rgba(50,80,255,.4);transition:transform .2s,box-shadow .2s,filter .2s;}
.mk-auth-v3 .mk-auth-card .btn.primary:hover {transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 0 23px rgba(28,121,255,.67),0 0 24px rgba(152,42,255,.48);}
.mk-auth-v3 .mk-auth-card .btn.mk-google {display:flex;align-items:center;justify-content:center;gap:10px;margin-top:14px;border:1px solid #c6d5fc;border-radius:13px;background:linear-gradient(#fff,#f4f6ff);color:#151b36;min-height:48px;font-weight:780;box-shadow:0 5px 20px rgba(18,48,130,.24);}
.mk-auth-v3 .mk-auth-card .btn.mk-google:hover {box-shadow:0 0 17px rgba(75,137,255,.34);transform:translateY(-1px);}
.mk-auth-v3 .mk-auth-card .mk-auth-links a {color:#9dbbff;}
.mk-auth-v3 .mk-auth-card .mk-phone-help {font-size:.78rem;text-align:left;}
.mk-auth-v3 .mk-auth-card .mk-info-msg {padding:12px;border-radius:12px;border:1px solid #6c79b7;}
.mk-auth-v3 .mk-auth-card #mk-resend-otp {margin:0;min-height:44px;border-radius:12px;background:rgba(65,77,141,.68);border:1px solid #7180c8;color:#fff;}
.mk-auth-v3 .mk-auth-card #mk-resend-otp:not(:disabled):hover {box-shadow:0 0 16px rgba(99,136,255,.43);}
.mk-auth-v3 .mk-auth-card #mk-resend-otp:disabled {opacity:.72;cursor:wait;}
.mk-auth-password-wrap {position:relative;display:block;width:100%;}
.mk-auth-password-wrap input {padding-right:52px!important;}
.mk-auth-eye {position:absolute;right:7px;top:50%;transform:translateY(-50%);width:39px;height:39px;border:0;border-radius:10px;background:transparent;color:#9eaee2;cursor:pointer;display:grid;place-items:center;}
.mk-auth-eye:hover {background:rgba(117,153,240,.16);color:#fff;}
.mk-auth-eye svg {width:20px;height:20px;}
.mk-auth-eye:focus-visible {outline:2px solid #68c6ff;outline-offset:0;}
:root[data-theme="light"] .mk-auth-v3 .mk-auth-card > .eyebrow {color:#358d8a;}
:root[data-theme="light"] .mk-auth-v3 .mk-auth-card > h1 {color:#0e1734;}
:root[data-theme="light"] .mk-auth-v3 .mk-auth-card > p {color:#617094;}
:root[data-theme="light"] .mk-auth-v3 .mk-auth-card form label {color:#151d39;}
:root[data-theme="light"] .mk-auth-v3 .mk-auth-card input:not([type="hidden"]):not([type="checkbox"]),:root[data-theme="light"] .mk-auth-v3 .mk-auth-card select {background:linear-gradient(#f9fbff,#f5f8ff);border-color:#d6e0f6;color:#121936;}
:root[data-theme="light"] .mk-auth-v3 .mk-auth-card select option {color:#161e39;}
:root[data-theme="light"] .mk-auth-v3 .mk-auth-card input::placeholder {color:#8191ae;}
:root[data-theme="light"] .mk-auth-v3 .mk-auth-card .mk-auth-eye {color:#657aa8;}
:root[data-theme="light"] .mk-auth-v3 .mk-auth-card .mk-auth-eye:hover {color:#222c61;}
:root[data-theme="light"] .mk-auth-v3 .mk-auth-card #mk-resend-otp {background:#ecf1ff;color:#17264c;border-color:#d3def5;}
.mk-inline-emote {display:inline-flex;align-items:center;justify-content:center;position:relative;vertical-align:-.14em;margin-left:.22em;font-size:1em;line-height:1;white-space:nowrap;max-width:1.35em;}
.mk-inline-emote img {display:block;width:1.15em;height:1.15em;object-fit:contain;vertical-align:middle;}
.mk-inline-emote.mk-emoji-pulse .mk-emote-glyph {animation:mkEmojiPulse 2.4s ease-in-out infinite;transform-origin:50% 65%;}
.mk-inline-emote.mk-emoji-wiggle .mk-emote-glyph {animation:mkEmojiWiggle 2.7s ease-in-out infinite;}
.mk-inline-emote.mk-emoji-float .mk-emote-glyph {animation:mkEmojiFloat 2.9s ease-in-out infinite;}
.mk-inline-emote.mk-emoji-static .mk-emote-glyph {animation:none;}
@keyframes mkEmojiPulse {0%,65%,100%{transform:scale(1)}72%{transform:scale(1.12)}82%{transform:scale(.95)}90%{transform:scale(1.04)}}
@keyframes mkEmojiWiggle {0%,60%,100%{transform:rotate(0)}68%{transform:rotate(-14deg)}76%{transform:rotate(11deg)}84%{transform:rotate(-6deg)}92%{transform:rotate(3deg)}}
@keyframes mkEmojiFloat {0%,60%,100%{transform:translateY(0)}72%{transform:translateY(-.18em)}85%{transform:translateY(.04em)}}
@media(prefers-reduced-motion:reduce){.mk-inline-emote .mk-emote-glyph{animation:none!important}.mk-auth-v3 .btn{transition:none;}}
.mk-emote-admin {display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:18px;align-items:start;}
.mk-emote-admin section {margin:0;}
.mk-emote-admin .mk-emote-library {display:flex;flex-wrap:wrap;gap:10px;padding:12px 0;}
.mk-emote-chip {display:inline-flex;align-items:center;gap:9px;padding:9px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:13px;font-size:.92rem;}
.mk-emote-chip .mk-inline-emote {font-size:1.3rem;}
.mk-emote-admin form {margin:12px 0;}
.mk-emote-admin .mk-emote-admin-desc {font-size:.84rem;color:var(--muted);}
@media(max-width:560px){.mk-auth-v3{padding:28px 12px}.mk-auth-v3 .mk-auth-card{padding:28px 20px}.mk-auth-v3 .mk-auth-card .mk-phone-row {display:grid;grid-template-columns:1fr}.mk-auth-v3 .mk-auth-card .mk-phone-row>* {min-width:0;}}
/* Contraste accesible para los enlaces del registro en modo claro. */
:root[data-theme="light"] .mk-auth-v3 .mk-auth-card .mk-auth-links a {color:#4546cc;}
:root[data-theme="light"] .mk-auth-v3 .mk-auth-card .mk-auth-links a:hover {color:#282a9b;}
.mk-auth-v3 .mk-auth-card .mk-google-icon {width:25px;height:25px;flex:none;}

/* En producción MobiKey usa CSP style-src 'self', por eso el OTP no usa estilos inline. */
.mk-auth-v3 .mk-auth-card .mk-otp-resend {margin-top:20px;text-align:center;border-top:1px solid rgba(123,151,226,.34);padding-top:17px;}
.mk-auth-v3 .mk-auth-card .mk-otp-resend-title {margin:0 0 10px;color:#b8c5ea;font-size:.9rem;}
.mk-auth-v3 .mk-auth-card .mk-otp-resend-form {margin:0;}
.mk-auth-v3 .mk-auth-card .mk-otp-resend-help {margin:10px 0 0;font-size:.78rem;color:#afbee2;line-height:1.5;}
:root[data-theme="light"] .mk-auth-v3 .mk-auth-card .mk-otp-resend {border-top-color:#d9e3f6;}
:root[data-theme="light"] .mk-auth-v3 .mk-auth-card .mk-otp-resend-title,
:root[data-theme="light"] .mk-auth-v3 .mk-auth-card .mk-otp-resend-help {color:#617094;}
/* MobiKey v3.2 — Biblioteca de emotes junto al nombre, sin alterar campos DHRU */
.mk-emote-name-field{min-width:0;margin:0 0 14px}
.mk-emote-name-field>label{display:block;margin-bottom:7px;font-weight:750}
.mk-name-pick-row{display:flex;align-items:stretch;gap:8px;min-width:0}
.mk-name-pick-row>input[name="name"]{flex:1;min-width:0;margin:0;min-height:46px}
.mk-open-emotes,.mk-picker-help{position:relative;display:inline-flex;justify-content:center;align-items:center;flex:none;width:47px;min-height:45px;border:1px solid var(--border);border-radius:12px;background:var(--surface2);color:var(--text);font-size:1.55rem;cursor:pointer;transition:background .17s,border-color .17s,box-shadow .17s,transform .17s;text-decoration:none}
.mk-open-emotes:hover,.mk-open-emotes[aria-expanded="true"]{border-color:#7776ff;background:var(--surface);box-shadow:0 0 0 2px #6b5cff30,0 0 18px #6961ff4f;transform:translateY(-1px)}
.mk-open-emotes:focus-visible{outline:2px solid #7784ff;outline-offset:3px}
.mk-open-emotes .mk-inline-emote{margin:0;font-size:1.1rem}
.mk-name-preview{font-size:.77rem;color:var(--muted);margin:8px 0 0;display:flex;align-items:center;gap:5px;min-height:20px}
.mk-name-preview.mk-chosen{color:var(--text)}
.mk-name-preview .mk-inline-emote{margin-left:0}
.mk-cat-quick-emote{display:inline-flex;align-items:center;gap:5px;vertical-align:middle;margin-left:10px}
.mk-cat-quick-emote .mk-open-emotes{width:30px;min-height:30px;height:30px;font-size:1rem;border-radius:8px}
.mk-cat-quick-emote .mk-open-emotes .mk-inline-emote{font-size:.92rem}
.mk-cat-save-emote{border:1px solid var(--border);color:var(--muted);background:var(--surface2);border-radius:8px;font:inherit;font-size:.72rem;font-weight:700;padding:5px 8px;cursor:pointer;transition:all .17s}
.mk-cat-quick-emote.mk-pending .mk-cat-save-emote,.mk-cat-save-emote:hover{border-color:#887cff;color:var(--text);box-shadow:0 0 9px #5556ef33}
.mk-emoji-popup{z-index:99999;position:fixed;display:flex;flex-direction:column;width:min(378px,calc(100vw - 24px));height:min(423px,calc(100vh - 24px));box-sizing:border-box;padding:15px;border:1px solid #756fff6b;border-radius:20px;background:var(--surface);color:var(--text);box-shadow:0 22px 75px #03062280,0 0 0 1px #a267fe22,0 0 30px #5756fd4b;overflow:hidden}
.mk-picker-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:12px}
.mk-picker-heading{display:flex;flex-direction:column;gap:3px}
.mk-picker-heading strong{font-size:.95rem;letter-spacing:-.02em}
.mk-picker-heading small{font-size:.72rem;color:var(--muted)}
.mk-picker-close{border:1px solid var(--border);background:var(--surface2);color:var(--text);height:29px;width:29px;border-radius:9px;cursor:pointer;font-size:1.2rem;line-height:1}
.mk-picker-search{width:100%;min-height:41px;box-sizing:border-box;margin-bottom:11px;border:1px solid var(--border);border-radius:11px;background:var(--surface2);color:var(--text);font-size:.86rem;padding:9px 12px;outline:none}
.mk-picker-search:focus{border-color:#8079ff;box-shadow:0 0 0 3px #6a5cff27}
.mk-picker-tabs{display:flex;gap:5px;overflow-x:auto;flex:none;padding:0 0 9px;scrollbar-width:thin}
.mk-picker-tab{flex:none;cursor:pointer;color:var(--muted);border:1px solid var(--border);background:var(--surface2);border-radius:30px;padding:7px 10px;font:inherit;font-size:.7rem;font-weight:700;white-space:nowrap}
.mk-picker-tab.active{border-color:#8e6dff;color:#fff;background:linear-gradient(120deg,#2465ff,#8c38ed);box-shadow:0 3px 14px #735afa40}
.mk-picker-grid{overflow:auto;flex:1;min-height:60px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-content:start;gap:6px;padding:2px;scrollbar-width:thin}
.mk-picker-option{border:1px solid transparent;background:var(--surface2);border-radius:11px;min-width:0;aspect-ratio:1/1;display:grid;place-items:center;cursor:pointer;font-size:1.34rem;color:var(--text);transition:transform .14s,box-shadow .14s,border-color .14s}
.mk-picker-option:hover,.mk-picker-option:focus-visible{transform:scale(1.08);border-color:#8176fa;outline:none;box-shadow:0 0 15px #675cf46b}
.mk-picker-option .mk-inline-emote{font-size:1em;margin:0}
.mk-picker-option .mk-inline-emote img{max-width:1.4em;max-height:1.4em}
.mk-picker-foot{display:flex;justify-content:space-between;align-items:center;margin-top:9px;padding-top:8px;border-top:1px solid var(--border);gap:8px;color:var(--muted)}
.mk-picker-remove{border:0;background:none;font:inherit;font-size:.76rem;color:#8087ff;cursor:pointer;font-weight:700}
.mk-picker-no-results{grid-column:1/-1;color:var(--muted);font-size:.82rem;padding:16px 5px;text-align:center}
.mk-inline-emote.mk-emoji-wave .mk-emote-glyph{transform-origin:0 100%;animation:mkEmojiWave 2.8s ease-in-out infinite}
.mk-inline-emote.mk-emoji-bounce .mk-emote-glyph{animation:mkEmojiBounce 2.5s ease-in-out infinite}
.mk-inline-emote.mk-emoji-shine .mk-emote-glyph{animation:mkEmojiShine 2.9s ease-in-out infinite}
.mk-inline-emote.mk-emoji-spin .mk-emote-glyph{animation:mkEmojiSpin 6s linear infinite}
.mk-inline-emote.mk-emoji-beat .mk-emote-glyph{animation:mkEmojiBeat 2.8s ease-in-out infinite}
@keyframes mkEmojiWave{0%,54%,100%{transform:rotate(0)}63%{transform:rotate(-8deg)}76%{transform:rotate(10deg)}89%{transform:rotate(-5deg)}}
@keyframes mkEmojiBounce{0%,60%,100%{transform:translateY(0)}70%{transform:translateY(-.18em)}79%{transform:translateY(0)}87%{transform:translateY(-.07em)}}
@keyframes mkEmojiShine{0%,60%,100%{filter:brightness(1);transform:scale(1)}72%{filter:brightness(1.3);transform:scale(1.16)}85%{filter:brightness(1.1);transform:scale(1.04)}}
@keyframes mkEmojiSpin{to{transform:rotate(360deg)}}
@keyframes mkEmojiBeat{0%,60%,100%{transform:scale(1)}70%{transform:scale(1.2)}78%{transform:scale(1)}86%{transform:scale(1.13)}}
@media(prefers-reduced-motion:reduce){.mk-inline-emote .mk-emote-glyph{animation:none!important}.mk-picker-option,.mk-open-emotes{transition:none!important}}
@media(max-width:640px){.mk-emoji-popup{position:fixed;top:auto!important;left:8px!important;right:8px!important;bottom:8px!important;width:auto!important;height:min(445px,calc(100dvh - 30px));border-radius:18px}.mk-picker-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.mk-picker-option{font-size:1.22rem}.mk-cat-quick-emote{display:flex;margin:6px 0 0}}
/* MobiKey v3.3 · Integración Telemoji. Mismo tamaño de tipografía en nombres. */
.mk-inline-emote.mk-emote-telemoji{display:inline-flex;vertical-align:-.13em;line-height:1;align-items:center;justify-content:center;width:1.12em;height:1.12em;margin-left:.23em}
.mk-inline-emote.mk-emote-telemoji img{display:block;width:100%;height:100%;object-fit:contain}
.mk-picker-license{display:block;margin-top:7px;font-size:.65rem;line-height:1.3;color:var(--muted);opacity:.88}
.mk-picker-grid .mk-picker-more{grid-column:1/-1;background:var(--surface2);border:1px dashed var(--border);color:var(--text);border-radius:10px;padding:10px;cursor:pointer;font:inherit;font-size:.75rem;font-weight:650}
.mk-picker-grid .mk-picker-more:hover{border-color:#8176fa}
.mk-picker-grid .mk-picker-loading{grid-column:1/-1;color:var(--muted);font-size:.72rem}
.mk-picker-option .mk-emote-telemoji{margin:0;width:1.15em;height:1.15em}
/* MobiKey v3.4: editor WYSIWYG de texto + varios emotes entre palabras. */
.mk-rich-name-field{min-width:0;margin:0 0 16px}
.mk-rich-name-field>label{display:block;margin-bottom:7px;font-weight:750}
.mk-rich-name-row{min-width:0;display:flex;gap:7px;align-items:stretch}
.mk-rich-name-fallback{width:100%;min-width:0}
.mk-rich-name-fallback.mk-rich-enhanced-fallback{display:none!important}
.mk-rich-controls{display:flex;flex:1;min-width:0;align-items:stretch;gap:7px}
.mk-rich-controls[hidden]{display:none}
.mk-rich-editor{display:block;flex:1;min-width:0;min-height:46px;max-height:132px;overflow-y:auto;padding:12px 13px;border-radius:12px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font:inherit;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere;box-sizing:border-box;cursor:text;outline:none}
.mk-rich-editor:empty:before{content:attr(data-placeholder);color:var(--muted);pointer-events:none}
.mk-rich-editor:focus{border-color:#7a6dfc;box-shadow:0 0 0 3px #6963ff27,0 0 12px #7575ff32}
.mk-rich-editor[aria-invalid=true]{border-color:#e45474}
.mk-open-inline-emotes{width:46px;min-height:46px;flex:none;border-radius:12px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font:inherit;font-size:1.45rem;cursor:pointer}
.mk-open-inline-emotes:hover,.mk-open-inline-emotes:focus-visible,.mk-open-inline-emotes[aria-expanded=true]{border-color:#8775ff;box-shadow:0 0 16px #886aff66;outline:none}
.mk-rich-inline{margin:0 .025em!important;vertical-align:-.12em;user-select:all;cursor:default;line-height:1;display:inline-flex!important;width:1.12em;height:1.12em;max-width:1.4em;align-items:center;justify-content:center}
.mk-rich-inline img{width:100%;height:100%;object-fit:contain}
.mk-rich-tip{display:block;margin:6px 0 0;color:var(--muted);font-size:.72rem;line-height:1.5}
.mk-rich-tip.mk-rich-error{color:#d74a70}
.mk-category-rich-details{margin-top:7px}
.mk-category-rich-details summary{font-size:.76rem;color:#8177fd;cursor:pointer}
.mk-category-rich-details form{margin-top:10px;min-width:240px;max-width:450px;display:flex;flex-direction:column;gap:10px}
.mk-category-rich-details .mk-rich-name-field{margin-bottom:0}
.mk-category-rich-details .mk-rich-tip{max-width:340px}
@media(max-width:700px){.mk-category-rich-details form{min-width:190px}.mk-rich-editor{font-size:.88rem}}
@media(prefers-reduced-motion:reduce){.mk-rich-inline .mk-emote-glyph{animation:none!important}}
/* v3.5: respaldos locales visibles incluso si Telemoji no responde.
   El editor, el selector y el catálogo usan exactamente las mismas dimensiones. */
.mk-inline-emote.mk-emote-media,.mk-rich-inline.mk-emote-media{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:1.16em;height:1.16em;min-width:1.16em;vertical-align:-.16em;
  overflow:visible;isolation:isolate;
}
.mk-emote-media>.mk-emote-backup-img,.mk-emote-media>.mk-emote-animated-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
}
.mk-emote-media>.mk-emote-backup-text{display:inline-grid;place-items:center;font-size:.95em;width:100%;height:100%;white-space:nowrap}
.mk-emote-media>.mk-emote-animated-img{opacity:0;pointer-events:none}
.mk-emote-media.mk-asset-ready>.mk-emote-animated-img{opacity:1}
.mk-emote-media.mk-asset-ready>.mk-emote-backup-img,.mk-emote-media.mk-asset-ready>.mk-emote-backup-text{visibility:hidden}
.mk-emote-static-flag img{width:100%;height:100%;object-fit:contain}
.mk-picker-option .mk-emote-media,.mk-picker-option .mk-emote-static-flag{width:1.22em;height:1.22em;margin:0}
.mk-rich-inline.mk-emote-media{margin:0 .025em!important}
/* El boton contextual Nuevo servicio sigue disponible dentro de Catalogo. */

/* v3.6: flags animated from same-origin WebP with static PNG fallback. */
.mk-picker-option:has(.mk-emote-media) {overflow:hidden}
.mk-picker-option .mk-emote-backup-text{font-size:1.1em}
.mk-picker-option .mk-inline-emote.mk-emote-media{width:1.36em;height:1.36em}
.mk-inline-emote.mk-local-moving-flag{vertical-align:-.18em}
@media(prefers-reduced-motion:reduce){.mk-local-moving-flag .mk-emote-animated-img{display:none!important}.mk-local-moving-flag .mk-emote-backup-img{visibility:visible!important}}

/* v3.6 Accesibilidad: con movimiento reducido conservar una imagen fija. */
@media(prefers-reduced-motion:reduce){.mk-local-reaction .mk-emote-animated-img{display:none!important}.mk-local-reaction .mk-emote-backup-img{visibility:visible!important}}

/* MobiKey v3.7 — Biblioteca ordenada con cuadrante fijo.
   El scroll vertical afecta SOLO al listado, sin alterar el tamaño del popup. */
.mk-emoji-popup{height:min(470px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);overscroll-behavior:contain}
.mk-picker-head,.mk-picker-search,.mk-picker-tabs,.mk-picker-license,.mk-picker-foot{flex-shrink:0}
.mk-picker-results{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:hidden}
.mk-picker-grid{
  position:relative;display:grid;flex:1 1 0;min-height:0;
  overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;
  grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:42px;
  align-content:start;justify-content:start;gap:6px;
  padding:4px 7px 5px 3px;
  scrollbar-width:auto;scrollbar-color:#8378ed #7582a21c;
}
.mk-picker-grid::-webkit-scrollbar{width:7px}
.mk-picker-grid::-webkit-scrollbar-thumb{background:#8378ed;border-radius:10px}
.mk-picker-grid::-webkit-scrollbar-track{background:#7582a21c;border-radius:10px}
.mk-picker-option{width:100%;height:100%;min-width:0;min-height:0;aspect-ratio:auto;box-sizing:border-box;transition:border-color .14s,box-shadow .14s}
.mk-picker-option:hover,.mk-picker-option:focus-visible{transform:none;position:relative;z-index:1}
.mk-picker-actions{display:flex;align-items:center;justify-content:center;flex:none;height:37px;padding:5px 1px 0;box-sizing:border-box}
.mk-picker-actions .mk-picker-more{
  width:100%;height:30px;min-height:0;display:flex;align-items:center;justify-content:center;
  border:1px dashed var(--border);border-radius:9px;background:var(--surface2);
  color:var(--text);font:inherit;font-size:.72rem;font-weight:700;cursor:pointer;
}
.mk-picker-actions .mk-picker-more:hover,.mk-picker-actions .mk-picker-more:focus-visible{border-color:#8176fa;outline-offset:1px;color:#7165e8}
.mk-picker-actions .mk-picker-more[hidden]{visibility:hidden;pointer-events:none}
.mk-picker-tabs{min-height:34px;overscroll-behavior-x:contain;scrollbar-width:thin}
.mk-picker-grid .mk-picker-no-results,.mk-picker-grid .mk-picker-loading{grid-column:1/-1;align-self:start;margin:0}
@media(max-width:640px){
  .mk-emoji-popup{height:min(455px,calc(100dvh - 20px));max-height:calc(100dvh - 20px)}
  .mk-picker-grid{grid-auto-rows:clamp(31px,calc((100vw - 78px)/7),42px);gap:5px;padding-right:5px}
  .mk-picker-actions{height:35px}
}
@media(prefers-reduced-motion:reduce){.mk-picker-option{transition:none!important}.mk-picker-grid{scroll-behavior:auto!important}}
/* MobiKey v3.8 — selección de conexión DHRU en editor */
.mk-api-picker{display:grid;gap:13px;max-width:100%;min-width:0}
.mk-api-picker-top{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,.8fr);gap:12px}
.mk-api-picker label{min-width:0}
.mk-api-picker input,.mk-api-picker select{max-width:100%;min-width:0}
.mk-api-picker select[data-api-results]{height:228px;overflow-y:auto;line-height:1.5;border:1px solid var(--border,#d8def1);border-radius:12px;background:var(--surface,#f5f7ff);padding:5px;color:inherit;font-size:.91rem}
.mk-api-picker select[data-api-results] option{white-space:normal;padding:8px 9px;border-radius:5px}
.mk-api-picker select[data-api-results] option:disabled{opacity:.48}
.mk-api-search-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.mk-api-search-footer [data-api-status]{font-size:.82rem;color:var(--muted,#64708e)}
.mk-api-selection{display:grid;gap:4px;border:1px solid #8881ec70;border-radius:12px;background:rgba(112,98,246,.08);padding:13px 15px}
.mk-api-selection small{font-size:.82rem;opacity:.8}
.mk-api-current{display:flex;flex-wrap:wrap;align-items:center;gap:10px;border:1px solid rgba(115,120,195,.22);border-radius:12px;padding:13px;margin-bottom:18px}
.mk-api-link-save{display:grid;gap:12px}
.mk-api-help,.mk-api-disconnect{margin-top:15px}
.mk-api-link-save>.btn{justify-self:start}
@media(max-width:560px){.mk-api-picker-top{grid-template-columns:1fr}.mk-api-picker select[data-api-results]{height:215px}.mk-api-search-footer{align-items:flex-start}}

/* MobiKey v3.9: contratos de campos separados por tipo, responsive */
.mk-field-mode-card{display:grid;gap:16px;border:1px solid var(--border);background:var(--surface2);padding:18px;border-radius:15px;margin:10px 0 22px}
.mk-field-mode-card>h3{margin:0;color:var(--text)}
.mk-field-mode-card>p{margin:0}
.mk-mode-choices{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.mk-mode-choices legend{font-weight:750;margin-bottom:12px;color:var(--text)}
.mk-mode-choice{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--border);background:var(--surface);border-radius:11px;padding:10px 13px;cursor:pointer;font-size:.88rem;font-weight:700;color:var(--text)}
.mk-mode-choice:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent),transparent 82%)}
.mk-mode-choice input{width:17px;height:17px;accent-color:var(--accent);margin:0}
.mk-mode-choice.mk-bulk-choice{margin-left:auto}
.mk-imei-custom-settings{display:grid;gap:13px}
.mk-imei-custom-settings label{margin:0}
.mk-imei-standard{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:12px 14px}
.mk-imei-standard summary{cursor:pointer;font-weight:700;color:var(--text)}
.mk-imei-standard p{font-size:.86rem}
.mk-toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.mk-switch-row{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:10px;padding:10px 12px;min-width:0}
.mk-switch-row span{flex:1;min-width:0}
.mk-switch-row input{width:18px;height:18px;accent-color:var(--accent);margin:0}
.mk-switch-row small{color:var(--muted)}
.mk-type-help{padding:12px 15px;background:var(--surface2);border-left:3px solid var(--accent);border-radius:8px;color:var(--text);line-height:1.5}
.mk-input-highlight{border-radius:10px;outline:2px solid color-mix(in srgb,var(--accent),transparent 70%);outline-offset:3px}

@media(max-width:620px){.mk-field-mode-card{padding:13px}.mk-toggle-grid{grid-template-columns:1fr}.mk-mode-choice.mk-bulk-choice{margin-left:0}}

/* MobiKey v3.10 · revisión explícita DHRU (solo interfaz) */
.mk-dhru-review{border:1px solid #a1aaf9;border-radius:16px;padding:18px;margin:20px 0;background:color-mix(in srgb,var(--surface,#fff) 94%,#7877ff 6%);scroll-margin-top:18px}
.mk-dhru-review h3{margin:0 0 8px}.mk-dhru-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
.mk-dhru-review-head p{margin:0 0 12px}.mk-dhru-review-meta{display:flex;flex-wrap:wrap;gap:8px 16px;padding:10px 0;border-block:1px solid #cbd2ee;font-size:.92rem}
.mk-dhru-review-example{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0;font-size:.9rem}.mk-dhru-review-example strong{padding:5px 9px;border-radius:8px;background:rgba(96,101,239,.11)}
.mk-dhru-warnings{border:1px solid #f2ba9b;border-radius:10px;padding:12px;margin:10px 0;background:rgba(244,159,95,.08)}.mk-dhru-warnings ul{padding-left:20px;margin:8px 0 0}
.mk-dhru-ok{color:#257b66}.mk-dhru-review-actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.mk-dhru-review details{margin-top:16px}.mk-dhru-review details summary{cursor:pointer}
@media(max-width:520px){.mk-dhru-review{padding:14px}.mk-dhru-review-actions>.btn{flex:1 1 100%}}
