:root{--primary:#4b1f86;--secondary:#6d35b8;--accent:#f5c542;--bg:#f3f4f8;--text:#14141a}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--text)}a{text-decoration:none;color:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:260px;background:linear-gradient(180deg,#2b1058,#4b1f86);color:white;padding:18px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;gap:12px;align-items:center;margin-bottom:24px}.brand-logo{width:42px;height:42px;border-radius:14px;background:white;color:#4b1f86;display:grid;place-items:center;font-weight:900}.brand small{display:block;color:#d8c9ff}.sidebar nav{display:grid;gap:6px}.sidebar a{padding:11px 12px;border-radius:12px;color:#f5efff}.sidebar a:hover{background:rgba(255,255,255,.14)}.main{flex:1;padding:22px;min-width:0}.topbar{height:58px;background:white;border-radius:18px;padding:0 18px;display:flex;align-items:center;gap:16px;box-shadow:0 10px 30px rgba(16,24,40,.06);margin-bottom:22px}.topbar span{color:#667085}.topbar a{margin-left:auto;background:#111;color:white;padding:9px 14px;border-radius:12px}.panel,.card{background:white;border-radius:18px;padding:18px;box-shadow:0 10px 30px rgba(16,24,40,.06);margin-bottom:18px}.grid{display:grid;gap:16px}.cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.card small{color:#667085;text-transform:uppercase}.card b{display:block;font-size:34px;margin-top:8px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}input,select,textarea,button{font:inherit;border:1px solid #d0d5dd;border-radius:12px;padding:11px;background:white}textarea{min-height:44px}button{background:#5b2cab;color:white;border:none;font-weight:700;cursor:pointer}table{width:100%;border-collapse:collapse;overflow:auto}th,td{text-align:left;border-bottom:1px solid #eef0f4;padding:11px;vertical-align:top}th{font-size:13px;color:#667085}.checkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px;margin-bottom:15px}.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.flash{background:#ecfdf3;border:1px solid #abefc6;padding:12px;border-radius:12px;margin-bottom:14px}.login-wrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#2b1058,#6d35b8)}.login-card{width:min(420px,92vw);background:white;border-radius:24px;padding:28px;box-shadow:0 30px 80px rgba(0,0,0,.25);display:grid;gap:10px}.login-card h1{margin:0;font-size:42px;color:#4b1f86}.login-card p{margin:0 0 10px;color:#667085}.id-phone{max-width:490px;margin:0 auto;background:var(--cardbg);border-radius:22px;overflow:hidden;box-shadow:0 20px 60px rgba(16,24,40,.15);color:var(--text)}.id-head{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;padding:22px;display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.id-head h1{margin:8px 0 0;font-size:28px}.id-head p{margin:0;opacity:.9}.seal{width:74px;height:74px;background:white;color:var(--primary);border-radius:18px;display:grid;place-items:center;font-weight:900;overflow:hidden}.seal img,.profile img{width:100%;height:100%;object-fit:cover}.id-body{padding:24px}.profile{width:108px;height:108px;border-radius:16px;overflow:hidden;background:#eee;float:left;margin:0 18px 8px 0}.avatar{width:100%;height:100%;display:grid;place-items:center;font-size:44px;background:#eee}.id-meta{display:grid;gap:10px;margin-bottom:20px}.id-meta div{display:grid;grid-template-columns:90px 1fr;gap:12px}.id-meta span{color:#667085}.qr{clear:both;width:150px;height:150px;border:8px solid #111;margin:18px auto;display:grid;place-items:center;font-weight:900}.verify{display:block;text-align:center;color:#667085;word-break:break-all}.app-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.app{background:#fff;border:1px solid #f2f4f7;border-radius:14px;padding:12px;box-shadow:0 8px 20px rgba(16,24,40,.06);min-height:76px}.app span{color:var(--primary);font-weight:900}.app b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app small{color:#667085}.id-actions{display:flex;gap:10px;margin-top:18px}.id-actions a{border:1px solid var(--secondary);color:var(--secondary);padding:10px 12px;border-radius:12px;font-weight:700}.id-actions .dark{background:#111;color:white;border-color:#111}.id-phone footer{text-align:center;color:#667085;padding:12px 20px 22px}@media(max-width:860px){.app-shell{display:block}.sidebar{position:relative;width:auto;height:auto}.main{padding:12px}.app-grid{grid-template-columns:repeat(2,1fr)}}
.mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:16px 0}.mini-grid div{background:#f7f7fb;border:1px solid #ececf5;border-radius:14px;padding:14px}.mini-grid b{display:block}.mini-grid span{color:#667085}.flash{background:#eef9f0;border:1px solid #bde5c5;color:#176b2c;padding:10px 14px;border-radius:10px;margin:10px 0}.card code,.panel code{background:#f3f1f8;padding:2px 6px;border-radius:6px}.app small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.thumb{width:48px;height:48px;border-radius:12px;object-fit:cover;border:1px solid #e5e7eb;background:#f3f4f6}.id-preview{max-width:520px;border-radius:24px;overflow:hidden;border:1px solid #e5e7eb;background:#fff;box-shadow:0 18px 45px rgba(15,23,42,.08)}.idp-head{color:#fff;padding:26px 30px;display:flex;justify-content:space-between;gap:20px;align-items:center}.idp-head h2{margin:.25rem 0}.idp-logo{width:86px;height:86px;border-radius:20px;background:#fff;color:#4b1f86;display:flex;align-items:center;justify-content:center;font-weight:900}.idp-logo img{max-width:80%;max-height:80%;object-fit:contain}.idp-body{padding:26px 30px;display:grid;grid-template-columns:130px 1fr;gap:24px}.idp-avatar{width:120px;height:120px;border-radius:22px;background:#eee;display:flex;align-items:center;justify-content:center;font-size:48px}.id-preview footer{padding:18px 30px;text-align:center;color:#64748b;border-top:1px solid #eef2f7}.btn,.danger{display:inline-block;padding:10px 16px;border-radius:12px;border:0;background:#f3f4f6;color:#111;text-decoration:none;cursor:pointer;font-weight:700}.danger{background:#5e2db4;color:#fff}.form-grid label{display:flex;align-items:center;gap:10px}.form-grid input[type=file]{padding:10px;background:#fff}
/* UX fixes: labels claros, formularios ordenados, previews de imágenes */
.ux-form label{display:grid!important;gap:6px;font-weight:800;color:#344054;align-items:start}
.ux-form label small{font-weight:500;color:#667085;font-size:12px;line-height:1.25}
.ux-form input,.ux-form select,.ux-form textarea{width:100%;font-weight:500;color:#111827}
.form-section{border-top:1px solid #eef0f4;padding-top:10px;margin-top:4px}.form-section h3{margin:0;color:#111827;font-size:18px}.span-all{grid-column:1/-1}.span-2{grid-column:span 2}.form-actions{display:flex;gap:10px;align-items:center}.file-label input[type=file]{padding:9px;background:#fff}.logo-preview-box{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;padding:10px;display:grid;gap:8px;align-content:start}.logo-preview-box span{font-size:12px;font-weight:800;color:#667085;text-transform:uppercase}.logo-preview-box div{width:74px;height:74px;border-radius:14px;background:#fff;border:1px solid #e5e7eb;display:grid;place-items:center;font-weight:900;color:#5b2cab;overflow:hidden}.logo-preview-box img{width:100%;height:100%;object-fit:contain}.muted{color:#98a2b3;font-size:12px}@media(max-width:760px){.span-2{grid-column:1/-1}.form-actions{display:grid}.ux-form{grid-template-columns:1fr!important}}

/* FORMULARIO EMPRESAS - layout limpio */
.form-headline{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.form-headline h2{margin:0 0 4px}.form-headline p{margin:0;color:#667085}.tenant-form-clean{display:grid;gap:18px}.form-block{border:1px solid #eef0f4;background:#fff;border-radius:18px;padding:18px}.form-block h3{margin:0 0 14px;font-size:19px;color:#111827}.clean-grid{display:grid;gap:14px}.clean-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.clean-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.clean-grid.cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.tenant-form-clean label,.full-label{display:grid!important;grid-template-columns:1fr!important;gap:7px;font-weight:800;color:#344054;line-height:1.2}.tenant-form-clean input,.tenant-form-clean select,.tenant-form-clean textarea{width:100%;min-width:0;height:48px}.tenant-form-clean textarea{height:80px;resize:vertical}.tenant-form-clean small{font-weight:500;color:#667085;font-size:12px;line-height:1.25}.two-col-block{display:grid;grid-template-columns:1fr 220px;gap:20px;align-items:start}.wide-field{grid-column:span 3}.brand-preview-card{border:1px dashed #d0d5dd;background:#f8fafc;border-radius:16px;padding:14px;display:grid;gap:10px;justify-items:center;text-align:center}.brand-preview-card>span{font-size:12px;font-weight:900;color:#667085;text-transform:uppercase}.logo-preview{width:120px;height:120px;border-radius:22px;background:#fff;border:1px solid #e5e7eb;display:grid;place-items:center;font-weight:900;color:#5b2cab;font-size:44px;overflow:hidden}.logo-preview img{width:100%;height:100%;object-fit:contain;padding:8px}.clean-actions{display:flex;gap:12px;justify-content:flex-end}.clean-actions button{min-width:180px}.table-actions{white-space:nowrap}.table-actions .btn,.table-actions .danger{padding:8px 12px;border-radius:10px}@media(max-width:1200px){.clean-grid.cols-4,.clean-grid.cols-5{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col-block{grid-template-columns:1fr}.wide-field{grid-column:span 2}}@media(max-width:760px){.clean-grid.cols-3,.clean-grid.cols-4,.clean-grid.cols-5{grid-template-columns:1fr}.wide-field{grid-column:span 1}.clean-actions{display:grid;justify-content:stretch}.clean-actions button{width:100%}}


/* FIX FINAL: evitar campos montados y pantallas cortadas */
.main{overflow-x:hidden}.panel{max-width:100%;overflow-x:auto}.tenant-form-clean{max-width:100%}.clean-grid.cols-4,.clean-grid.cols-5{grid-template-columns:repeat(2,minmax(240px,1fr))}.clean-grid.cols-3{grid-template-columns:repeat(3,minmax(220px,1fr))}.two-col-block{grid-template-columns:minmax(0,1fr) 220px}.tenant-form-clean label{min-width:0}.tenant-form-clean input,.tenant-form-clean select,.tenant-form-clean textarea{font-size:15px}.file-label input[type=file]{height:auto}.topbar{max-width:100%}@media(max-width:1100px){.clean-grid.cols-3,.clean-grid.cols-4,.clean-grid.cols-5{grid-template-columns:1fr}.two-col-block{grid-template-columns:1fr}.wide-field{grid-column:span 1}}

/* Unified ID builder/theme cleanup */
.builder-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.8fr);gap:24px;align-items:start}.clean-form{display:block}.clean-form label{display:block;font-weight:700;color:#334155;margin:0 0 14px}.clean-form input,.clean-form select,.clean-form textarea{width:100%;box-sizing:border-box;margin-top:8px}.form-row{display:grid;gap:16px}.form-row.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-row.five{grid-template-columns:2fr 2fr 1.2fr 1fr .8fr}.check{display:flex!important;align-items:center;gap:10px;margin-top:28px}.check input{width:auto!important;margin:0!important}.id-preview{max-width:520px;border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 20px 60px rgba(15,23,42,.12);border:1px solid #e5e7eb}.idp-head{color:#fff;padding:28px;display:flex;justify-content:space-between;gap:16px;align-items:center}.idp-head h2{margin:10px 0 6px}.idp-logo{width:92px;height:92px;border-radius:22px;background:#fff;color:#4b1f86;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:34px;overflow:hidden}.idp-logo img{width:100%;height:100%;object-fit:contain}.idp-body{padding:28px;display:grid;grid-template-columns:120px 1fr;gap:22px}.idp-avatar{width:120px;height:120px;border-radius:22px;background:#eee;display:flex;align-items:center;justify-content:center;font-size:54px}.id-preview footer{padding:0 28px 24px;text-align:center;color:#64748b}@media(max-width:1050px){.builder-grid,.form-row.two,.form-row.three,.form-row.five{grid-template-columns:1fr}.check{margin-top:0}.id-preview{max-width:none}}

/* Tenant/member branding */
.brand-logo{overflow:hidden}.brand-logo img{width:100%;height:100%;object-fit:contain;padding:5px}.topbar-brand{display:flex;align-items:center;gap:10px;color:#111827!important}.topbar-brand img,.topbar-brand i{width:34px;height:34px;border-radius:10px;background:#f3f4f6;display:grid;place-items:center;object-fit:contain;font-style:normal;font-weight:900;color:#5b2cab}.member-shell{display:block;min-height:100vh}.member-shell .main{max-width:760px;margin:0 auto;padding:22px}.member-shell .topbar{margin-bottom:26px}.member-shell .id-phone{margin-top:10px}.member-shell .id-actions{justify-content:center}.member-shell .id-actions a:first-child:last-child{width:100%;text-align:center}

/* Tenant admin final UX: no licencias/roles, member cards in sidebar */
.sidebar-members{margin-top:22px;padding-top:16px;border-top:1px solid rgba(255,255,255,.16)}
.sidebar-members h4{margin:0 0 6px;color:#fff;font-size:16px}.sidebar-members .app-use{display:block;color:#d8c9ff;margin-bottom:12px;line-height:1.25}.member-mini{display:flex;gap:10px;align-items:center;padding:9px;border-radius:14px;background:rgba(255,255,255,.08);margin-bottom:8px}.member-mini-photo{width:38px;height:38px;border-radius:12px;background:#fff;color:#4b1f86;display:grid;place-items:center;font-weight:900;overflow:hidden;flex:0 0 auto}.member-mini-photo img{width:100%;height:100%;object-fit:cover}.member-mini b{display:block;font-size:13px;line-height:1.15;color:#fff;max-width:155px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-mini small{display:block;font-size:11px;color:#d8c9ff;line-height:1.2}.member-mini small.is-online{color:#90f7b0;font-weight:800}.readonly-role{border:1px solid #e5e7eb;background:#f8fafc;border-radius:14px;padding:12px;display:grid;gap:4px;align-content:center}.readonly-role span{font-size:12px;font-weight:900;color:#667085;text-transform:uppercase}.readonly-role b{font-size:18px}.readonly-role small,.muted-note{color:#667085}.muted-note{margin-top:-6px}


.member-shell .main{padding-top:32px}
.id-only{margin-top:0}
.qr img{width:100%;height:100%;object-fit:contain;display:block}
.login-card .ok{color:#087f23;background:#e8f5e9;border:1px solid #a5d6a7;padding:12px;border-radius:12px}

/* Fase 2 - accesos de apps en ID digital */
.app-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:14px;margin:16px 0 22px}
.app-access{display:flex;flex-direction:column;align-items:center;text-align:center;text-decoration:none;border:1px solid rgba(80,54,130,.14);background:linear-gradient(180deg,#fff,rgba(248,246,255,.95));border-radius:22px;padding:16px 12px;color:var(--text,#171720);box-shadow:0 10px 24px rgba(30,20,60,.08);transition:.18s ease}
.app-access:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(30,20,60,.14)}
.app-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;margin-bottom:10px;background:linear-gradient(135deg,var(--primary,#4b1f86),var(--secondary,#6d35b8));color:#fff;box-shadow:0 10px 20px rgba(75,31,134,.28)}
.app-icon svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.app-access b{font-size:15px;line-height:1.15;margin-bottom:4px}
.app-access small{font-size:11px;line-height:1.2;color:#667085;max-width:110px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.muted{color:#667085}
.admin-app-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary,#4b1f86),var(--secondary,#6d35b8));color:#fff;float:left;margin-right:12px}
.admin-app-icon svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}

/* Phase 2.1: Builder preview with QR and enabled apps */
.id-preview{overflow:hidden; max-width:520px; min-height:720px; display:flex; flex-direction:column;}
.id-preview .idp-qr{display:flex; flex-direction:column; align-items:center; gap:8px; margin:18px 0 10px;}
.id-preview .qr-box{width:148px; height:148px; border:10px solid #111; display:grid; place-items:center; font-weight:800; background:#fff; color:#111;}
.id-preview .idp-access-title{margin:16px 0 10px;}
.preview-apps{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:16px;}
.preview-apps .app{min-height:84px; padding:12px; text-decoration:none;}
.preview-apps .app-icon svg{width:28px; height:28px;}

/* Phase 2.2 cleanup: ID apps as simple icon + text, QR visible, no framed app cards */
.id-preview .qr-box{border:0!important;width:160px!important;height:160px!important;background:#fff!important;display:grid!important;place-items:center!important}
.id-preview .qr-box img{width:160px;height:160px;object-fit:contain;display:block}
.id-preview .app-grid,.id-phone .app-grid{display:grid;grid-template-columns:1fr;gap:8px;margin:12px 0 22px}
.id-preview .app-access,.id-phone .app-access{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:10px!important;text-align:left!important;border:0!important;background:transparent!important;box-shadow:none!important;border-radius:10px!important;padding:8px 2px!important;color:var(--text,#171720)!important;min-height:0!important}
.id-preview .app-access:hover,.id-phone .app-access:hover{transform:none!important;background:rgba(75,31,134,.06)!important;box-shadow:none!important}
.id-preview .app-icon,.id-phone .app-icon{width:28px!important;height:28px!important;border-radius:0!important;margin:0!important;background:transparent!important;box-shadow:none!important;color:var(--primary,#4b1f86)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 28px!important}
.id-preview .app-icon svg,.id-phone .app-icon svg{width:24px!important;height:24px!important;stroke:currentColor!important;fill:none!important;stroke-width:4!important}
.id-preview .app-access b,.id-phone .app-access b{font-size:16px!important;line-height:1.2!important;margin:0!important}
.id-phone .qr{border:0!important;background:#fff!important;padding:0!important}
.id-phone .qr img{width:190px!important;height:190px!important;object-fit:contain!important}

/* Phase 2.3 - catálogo comercial de apps y accesos del ID tipo cards */
.catalog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:18px}
.catalog-card{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid #edf0f6;border-radius:22px;padding:18px;box-shadow:0 12px 28px rgba(16,24,40,.06)}
.catalog-card.is-enabled{border-color:rgba(91,44,171,.28);box-shadow:0 14px 34px rgba(91,44,171,.10)}
.catalog-card.is-requested{border-color:#f2d28a;background:#fffdf6}
.catalog-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;flex:0 0 58px;background:linear-gradient(135deg,var(--primary,#4b1f86),var(--secondary,#6d35b8));color:#fff;box-shadow:0 10px 24px rgba(75,31,134,.25)}
.catalog-icon svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.catalog-content{flex:1;min-width:0}.catalog-content h3{margin:0 0 6px;font-size:20px}.catalog-content p{margin:0 0 8px;color:#475467;line-height:1.35}.catalog-content small{color:#667085}.catalog-topline{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.catalog-topline span{font-size:12px;font-weight:800;color:#5b2cab;background:#f3edff;border-radius:999px;padding:6px 9px;white-space:nowrap}.catalog-card.is-requested .catalog-topline span{color:#9a5b00;background:#fff2c6}
.catalog-actions,.catalog-config{margin-top:14px}.catalog-actions button{width:100%}.catalog-config{display:grid;grid-template-columns:1fr 92px 120px auto;gap:10px;align-items:end}.catalog-config label{font-size:12px;color:#344054;font-weight:700}.catalog-config input,.catalog-config select{width:100%;margin-top:4px}.catalog-config button{height:44px;white-space:nowrap}
.admin-catalog .catalog-card{min-height:150px}
.id-preview .app-id-grid,.id-phone .app-id-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;margin:14px 0 24px!important}.id-phone .app-id-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.id-preview .app-id-grid .app-access,.id-phone .app-id-grid .app-access{display:flex!important;flex-direction:row!important;gap:12px!important;align-items:center!important;background:#fff!important;border:1px solid #f2f4f7!important;border-radius:20px!important;box-shadow:0 14px 28px rgba(16,24,40,.06)!important;padding:13px!important;min-height:84px!important;text-align:left!important;overflow:hidden!important}.id-preview .app-id-grid .app-icon,.id-phone .app-id-grid .app-icon{width:42px!important;height:42px!important;flex:0 0 42px!important;border-radius:0!important;background:transparent!important;color:var(--primary,#4b1f86)!important;box-shadow:none!important;margin:0!important}.id-preview .app-id-grid .app-icon svg,.id-phone .app-id-grid .app-icon svg{width:38px!important;height:38px!important;stroke:currentColor!important;stroke-width:4!important}.app-copy{display:block;min-width:0}.id-preview .app-id-grid .app-copy b,.id-phone .app-id-grid .app-copy b{display:block!important;font-size:15px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;line-height:1.15!important}.id-preview .app-id-grid .app-copy small,.id-phone .app-id-grid .app-copy small{display:-webkit-box!important;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;color:#667085;font-size:12px;line-height:1.25;margin-top:3px}
@media(max-width:900px){.catalog-config{grid-template-columns:1fr}.id-preview .app-id-grid,.id-phone .app-id-grid{grid-template-columns:1fr!important}}
.tenant-grants{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-top:18px}.tenant-grant-card{background:#fff;border:1px solid #edf0f6;border-radius:20px;padding:18px;box-shadow:0 14px 32px rgba(16,24,40,.04)}.tenant-grant-card h3{margin:0 0 2px}.grant-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}.grant-row{display:grid;grid-template-columns:1.2fr 1.2fr .5fr .8fr auto;gap:8px;align-items:center;padding:10px;border:1px solid #f0f2f7;border-radius:14px}.grant-row input,.grant-row select{min-height:42px;border:1px solid #d4dbe8;border-radius:10px;padding:0 10px}.app-grant-form label{font-weight:700;color:#344054}.app-grant-form label input,.app-grant-form label select{margin-top:6px;width:100%}@media(max-width:900px){.grant-row{grid-template-columns:1fr}.tenant-grants{grid-template-columns:1fr}}


/* Dashboard ejecutivo Nexoid restaurado */
.dash-wrap{display:grid;gap:18px}.dash-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:4px}.dash-head h1{font-size:42px;margin:0 0 6px}.dash-head p{margin:0;color:#667085;font-size:16px}.dash-refresh{background:#fff;border:1px solid #eef0f4;border-radius:16px;padding:10px 14px;display:flex;align-items:center;gap:9px;box-shadow:0 10px 28px rgba(16,24,40,.06)}.dash-refresh small{color:#667085}.dash-refresh b{font-size:18px}.pulse-dot{width:10px;height:10px;border-radius:50%;background:#12b76a;box-shadow:0 0 0 0 rgba(18,183,106,.7);animation:pulseDash 1.7s infinite}@keyframes pulseDash{70%{box-shadow:0 0 0 9px rgba(18,183,106,0)}}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}.kpi-card{position:relative;display:flex;gap:14px;align-items:center;background:#fff;border:1px solid #edf0f6;border-radius:22px;padding:18px;min-height:122px;overflow:hidden;box-shadow:0 14px 34px rgba(16,24,40,.06)}.kpi-card:after{content:"";position:absolute;right:-28px;bottom:-36px;width:120px;height:120px;border-radius:50%;background:var(--kpi-soft,#f3edff)}.kpi-icon{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;flex:0 0 auto;background:linear-gradient(135deg,var(--kpi,#5b2cab),var(--kpi2,#7c3aed));color:#fff;box-shadow:0 12px 28px rgba(91,44,171,.22)}.kpi-icon svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.kpi-copy{position:relative;z-index:1;min-width:0}.kpi-copy small{display:block;color:#667085;text-transform:uppercase;font-size:12px;font-weight:900;letter-spacing:.02em}.kpi-copy strong{display:block;font-size:32px;line-height:1.05;margin:5px 0}.kpi-copy span{color:#667085;font-size:13px}.kpi-card em{position:absolute;right:14px;top:14px;font-style:normal;font-size:12px;color:#12b76a;background:#ecfdf3;border-radius:999px;padding:4px 8px;font-weight:800}.kpi-2{--kpi:#1d4ed8;--kpi2:#38bdf8;--kpi-soft:#e0f2fe}.kpi-3{--kpi:#059669;--kpi2:#34d399;--kpi-soft:#dcfce7}.kpi-4{--kpi:#f97316;--kpi2:#facc15;--kpi-soft:#fff7ed}.kpi-5{--kpi:#7c3aed;--kpi2:#c084fc;--kpi-soft:#f3e8ff}.kpi-6{--kpi:#0ea5e9;--kpi2:#22d3ee;--kpi-soft:#ecfeff}.kpi-7{--kpi:#ef4444;--kpi2:#fb7185;--kpi-soft:#fee2e2}.kpi-8{--kpi:#111827;--kpi2:#64748b;--kpi-soft:#f1f5f9}.dash-grid-main{display:grid;grid-template-columns:1.15fr 1.4fr 1fr;gap:18px}.dash-grid-secondary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.dash-grid-secondary.bottom{grid-template-columns:2fr 1fr}.dash-panel{background:#fff;border:1px solid #edf0f6;border-radius:24px;padding:20px;box-shadow:0 15px 38px rgba(16,24,40,.06);min-width:0}.two-wide{grid-column:span 1}.panel-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.panel-title h2{margin:0;font-size:20px}.panel-title span{color:#667085;font-size:13px;font-weight:800}.fake-map{height:240px;border-radius:18px;background:radial-gradient(circle at 30% 50%,rgba(91,44,171,.24),transparent 9%),radial-gradient(circle at 45% 63%,rgba(29,78,216,.20),transparent 9%),radial-gradient(circle at 62% 42%,rgba(91,44,171,.18),transparent 8%),linear-gradient(135deg,#eef2ff,#f8fafc);position:relative;overflow:hidden}.fake-map:before{content:"";position:absolute;inset:16px;border:1px dashed rgba(91,44,171,.18);border-radius:55% 45% 48% 52%}.pin{position:absolute;width:16px;height:16px;background:#5b2cab;border:4px solid #c4b5fd;border-radius:50%;box-shadow:0 0 0 12px rgba(91,44,171,.14)}.p1{left:28%;top:38%}.p2{left:44%;top:58%}.p3{left:58%;top:36%}.p4{left:70%;top:52%}.p5{left:36%;top:70%}.region-list,.activity-list,.health-list,.status-list{display:grid;gap:10px;margin-top:14px}.region-list div,.activity-list div,.health-list div,.status-list div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #f0f2f7;padding-bottom:9px}.region-list span,.activity-list span{color:#667085}.bar-chart{height:220px;display:flex;align-items:flex-end;gap:12px;padding:16px 8px;border-bottom:1px solid #e5e7eb;background:linear-gradient(180deg,#fff,#fafafa);border-radius:18px}.bar-chart i{flex:1;border-radius:999px 999px 0 0;background:linear-gradient(180deg,#7c3aed,#38bdf8);min-height:24px}.chart-legend{display:flex;gap:18px;flex-wrap:wrap;color:#667085;font-size:13px;margin-top:12px}.mini-table{display:grid;gap:8px}.mini-table div{display:grid;grid-template-columns:1.2fr .7fr .7fr auto;gap:8px;align-items:center;border-bottom:1px solid #f0f2f7;padding:9px 0}.mini-table span,.mini-table strong{color:#667085}.mini-table a{background:#5b2cab;color:#fff;border-radius:10px;padding:7px 9px;text-align:center;font-weight:800}.hbars{display:grid;gap:10px}.hbars div{display:grid;grid-template-columns:120px 1fr 34px;gap:10px;align-items:center}.hbars label{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hbars span{height:12px;background:#eef2ff;border-radius:999px;overflow:hidden}.hbars i{display:block;height:100%;background:linear-gradient(90deg,#5b2cab,#38bdf8);border-radius:999px}.donut{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;margin:10px auto;background:conic-gradient(#5b2cab 0 72%,#38bdf8 72% 88%,#ef4444 88% 100%);position:relative;color:#111}.donut:before{content:"";position:absolute;inset:24px;background:#fff;border-radius:50%}.donut b,.donut span{position:relative;z-index:1}.donut span{display:block;margin-top:28px;color:#667085;font-size:12px}.ok{color:#12b76a}.warn{color:#f59e0b}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick-grid a{display:grid;gap:6px;place-items:center;text-align:center;border:1px solid #edf0f6;border-radius:16px;padding:14px;color:#5b2cab;background:#fff}.quick-grid svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.tenant-dash{grid-template-columns:1fr 1.4fr 1fr}.license-meter{position:relative;border-radius:20px;background:#f8fafc;padding:18px;margin-top:12px;overflow:hidden}.license-meter b{font-size:46px}.license-meter span{color:#667085;margin-left:8px}.license-meter i{position:absolute;left:0;bottom:0;height:6px;background:linear-gradient(90deg,#12b76a,#7c3aed);border-radius:999px}.tenant-app-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.tenant-app-row div{display:flex;gap:10px;align-items:center;border:1px solid #edf0f6;border-radius:16px;padding:12px;background:#fff}.tenant-app-row svg{width:32px;height:32px;fill:none;stroke:#5b2cab;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.tenant-app-row b{display:block}.tenant-app-row small{color:#667085;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-cards-dash{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.member-cards-dash>div{border:1px solid #edf0f6;border-radius:18px;padding:14px;background:#fff}.member-avatar{width:54px;height:54px;border-radius:16px;background:#f3edff;color:#5b2cab;display:grid;place-items:center;font-weight:900;overflow:hidden;margin-bottom:10px}.member-avatar img{width:100%;height:100%;object-fit:cover}.member-cards-dash b{display:block}.member-cards-dash span,.member-cards-dash small{display:block;color:#667085}.ok-text{color:#12b76a!important;font-weight:900}@media(max-width:1200px){.dash-grid-main,.dash-grid-secondary,.tenant-dash{grid-template-columns:1fr}.dash-head{display:grid}.mini-table div{grid-template-columns:1fr}.hbars div{grid-template-columns:1fr 1fr 40px}}@media(max-width:680px){.dash-head h1{font-size:32px}.kpi-grid{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr}}


/* === Nexid login v3 responsive redesign === */
.login-wrap,.login-card{all:unset}
.nx-login-v3{
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(390px,520px);
  background:#f8fafc;
  font-family:Inter,Arial,Helvetica,sans-serif;
  color:#0f172a;
}
.nx-v3-left{
  min-height:100vh;
  background:
    radial-gradient(circle at 12% 12%,rgba(124,58,237,.32),transparent 34%),
    radial-gradient(circle at 82% 80%,rgba(6,182,212,.18),transparent 30%),
    linear-gradient(135deg,#070b18 0%,#0a1425 56%,#111827 100%);
  color:#fff;
  position:relative;
  overflow:hidden;
}
.nx-v3-left:before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:52px 52px;
  opacity:.85;
}
.nx-v3-left-inner{
  position:relative;
  z-index:1;
  min-height:100vh;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:24px;
  padding:42px clamp(34px,6vw,88px);
  max-width:860px;
}
.nx-v3-logo{
  width:210px;
  max-width:52vw;
  height:auto;
  object-fit:contain;
  display:block;
}
.nx-v3-copy{max-width:680px}
.nx-v3-kicker{
  display:inline-flex;
  margin:0 0 15px;
  padding:9px 14px;
  border:1px solid rgba(34,211,238,.35);
  border-radius:999px;
  color:#67e8f9;
  background:rgba(15,23,42,.58);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:11px;
  font-weight:900;
}
.nx-v3-copy h1{
  margin:0;
  max-width:650px;
  font-size:clamp(36px,4.4vw,58px);
  line-height:1.02;
  letter-spacing:-2.4px;
  color:#fff;
}
.nx-v3-copy p:not(.nx-v3-kicker){
  margin:18px 0 0;
  max-width:660px;
  color:#bfccdd;
  font-size:17px;
  line-height:1.55;
}
.nx-v3-preview{
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
}
.nx-v3-card{
  width:300px;
  max-width:100%;
  border-radius:28px;
  background:#071121;
  border:1px solid rgba(148,163,184,.24);
  box-shadow:0 28px 80px rgba(0,0,0,.34);
  overflow:hidden;
}
.nx-v3-card-top{
  display:flex;
  align-items:center;
  gap:13px;
  padding:16px 18px;
  background:linear-gradient(105deg,#6d28d9 0%,#3b82f6 58%,#06b6d4 100%);
}
.nx-v3-card-top img{
  width:42px;
  height:42px;
  object-fit:contain;
  background:#08111f;
  border-radius:13px;
  padding:5px;
  box-sizing:border-box;
}
.nx-v3-card-top b{display:block;color:#fff;font-size:17px;line-height:1.1}
.nx-v3-card-top span{display:block;color:rgba(255,255,255,.78);font-size:12px;margin-top:2px}
.nx-v3-person{display:flex;align-items:center;gap:14px;padding:20px 18px 12px}
.nx-v3-avatar{
  width:58px;height:58px;border-radius:18px;display:grid;place-items:center;
  background:linear-gradient(135deg,#7c3aed,#0ea5e9);
  color:#fff;font-size:26px;font-weight:1000;
  border:4px solid #fff;
}
.nx-v3-person strong{display:block;color:#fff;font-size:22px}
.nx-v3-person small{display:block;color:#9fb0ca;font-size:13px;margin-top:4px}
.nx-v3-apps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:8px 18px 18px}
.nx-v3-apps span{background:#13233d;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:10px 4px;text-align:center;color:#eaf2ff;font-weight:900;font-size:12px}
.nx-v3-chip{
  min-width:180px;
  border-radius:22px;
  border:1px solid rgba(148,163,184,.26);
  background:rgba(15,23,42,.72);
  padding:18px;
  box-shadow:0 20px 58px rgba(0,0,0,.28);
}
.nx-v3-chip b{display:block;color:#fff;font-size:20px}
.nx-v3-chip span{display:block;color:#a8b7cc;margin-top:6px;font-weight:700}

.nx-v3-right{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:34px;
  box-sizing:border-box;
  background:linear-gradient(180deg,#fff,#f8fbff);
}
.nx-v3-form{
  width:min(410px,100%);
  margin:0 auto;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:28px;
  padding:32px;
  box-shadow:0 24px 72px rgba(15,23,42,.14);
  display:grid;
  gap:12px;
}
.nx-v3-form-logo{
  width:150px;
  height:auto;
  object-fit:contain;
  margin-bottom:6px;
}
.nx-v3-form h2{
  margin:0;
  color:#0f172a;
  font-size:31px;
  letter-spacing:-1.1px;
  line-height:1.05;
}
.nx-v3-sub{
  margin:0 0 10px;
  color:#64748b;
  font-weight:800;
}
.nx-v3-form label{font-weight:900;color:#111827;margin-top:4px}
.nx-v3-form input{
  width:100%;
  box-sizing:border-box;
  border:1px solid #cfd8e5;
  border-radius:16px;
  padding:15px 16px;
  font-size:16px;
  background:#fff;
  outline:none;
  transition:.18s ease;
}
.nx-v3-form input:focus{border-color:#6d28d9;box-shadow:0 0 0 4px rgba(109,40,217,.12)}
.nx-v3-form button{
  border:0;
  border-radius:16px;
  padding:16px 18px;
  margin-top:8px;
  background:linear-gradient(135deg,#6d28d9,#2563eb,#06b6d4);
  color:#fff;
  font-size:17px;
  font-weight:950;
  cursor:pointer;
  box-shadow:0 18px 36px rgba(37,99,235,.25);
}
.nx-v3-help{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  margin-top:5px;
  color:#64748b;
  font-size:13px;
  line-height:1.35;
}
.nx-v3-help a{color:#5b21b6;text-decoration:none;font-weight:950;white-space:nowrap}

/* Tablet */
@media (max-width:1050px){
  .nx-login-v3{grid-template-columns:1fr}
  .nx-v3-left{min-height:auto}
  .nx-v3-left-inner{
    min-height:auto;
    padding:28px 28px 18px;
    gap:16px;
  }
  .nx-v3-logo{width:165px}
  .nx-v3-copy h1{font-size:34px;letter-spacing:-1.5px;max-width:780px}
  .nx-v3-copy p:not(.nx-v3-kicker){font-size:15px;margin-top:12px;max-width:760px}
  .nx-v3-preview{display:none}
  .nx-v3-right{min-height:auto;padding:24px;background:#f8fafc}
  .nx-v3-form{width:min(520px,100%);padding:28px}
}
/* Mobile */
@media (max-width:620px){
  .nx-login-v3{display:block;min-height:100vh}
  .nx-v3-left-inner{padding:22px 18px 14px}
  .nx-v3-logo{width:142px}
  .nx-v3-kicker{font-size:10px;letter-spacing:.08em;padding:7px 11px;margin-bottom:10px}
  .nx-v3-copy h1{font-size:27px;line-height:1.06;letter-spacing:-1px}
  .nx-v3-copy p:not(.nx-v3-kicker){display:none}
  .nx-v3-right{padding:14px 16px 24px}
  .nx-v3-form{border-radius:22px;padding:22px;box-shadow:0 14px 45px rgba(15,23,42,.13)}
  .nx-v3-form-logo{width:130px}
  .nx-v3-form h2{font-size:25px}
  .nx-v3-sub{font-size:14px}
  .nx-v3-help{display:block}
  .nx-v3-help a{display:inline-block;margin-top:8px}
}
