/* =========================================================
   TECHNOLOGY NFC
   A technology solution by Presto Web
   Admin UI
========================================================= */

/* ===== VARIABLES ===== */
:root{--presto-blue:#2982f0; --presto-yellow:#f0a929; --presto-blue-soft:#4a78b0; --presto-navy:#253767; --presto-slate:#4b5c70; --presto-dark:#2a2e33; --background:#f5f7fb; --surface:#ffffff; --border:#e7ebf1; --text:#2a2e33; --text-soft:#6f7b8a; --sidebar-width:260px; --radius:14px; --radius-small:9px; --shadow:0 4px 20px rgba(37,55,103,.06);}

/* ===== RESET ===== */
*{box-sizing:border-box;}
html,body{margin:0; padding:0;}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; background:var(--background); color:var(--text);}
a{color:inherit;}

/* ===== APP ===== */
.tnfc-app{display:flex; min-height:100vh;}

/* ===== SIDEBAR ===== */
.tnfc-sidebar{position:fixed; top:0; left:0; bottom:0; width:var(--sidebar-width); display:flex; flex-direction:column; background:var(--presto-navy); color:#fff; padding:26px 18px; z-index:100;}

/* ===== BRAND ===== */
.tnfc-brand{display:flex; align-items:center; gap:13px; padding:0 8px 28px; border-bottom:1px solid rgba(255,255,255,.10);}
.tnfc-brand-mark{width:46px; height:46px; display:flex; align-items:center; justify-content:center; flex-shrink:0; border-radius:12px; background:var(--presto-blue); color:#fff; font-size:13px; font-weight:800; letter-spacing:.7px;}
.tnfc-brand-text{display:flex; flex-direction:column; min-width:0;}
.tnfc-brand-text strong{font-size:15px; line-height:1.2; font-weight:700;}
.tnfc-brand-text span{margin-top:5px; font-size:10px; line-height:1.35; color:rgba(255,255,255,.58);}

/* ===== NAVIGATION ===== */
.tnfc-navigation{display:flex; flex-direction:column; gap:5px; margin-top:27px;}
.tnfc-nav-item{display:flex; align-items:center; gap:12px; min-height:46px; padding:0 13px; border-radius:10px; color:rgba(255,255,255,.72); text-decoration:none; font-size:14px; font-weight:500; transition:background .2s ease,color .2s ease;}
.tnfc-nav-item:hover{color:#fff; background:rgba(255,255,255,.08);}
.tnfc-nav-icon{width:21px; text-align:center; color:var(--presto-blue); font-size:18px;}

/* ===== SIDEBAR FOOTER ===== */
.tnfc-sidebar-footer{margin-top:auto; padding-top:20px; border-top:1px solid rgba(255,255,255,.10);}
.tnfc-system-status{display:flex; align-items:center; gap:11px; padding:10px;}
.tnfc-status-dot{width:9px; height:9px; flex-shrink:0; border-radius:50%; background:var(--presto-yellow); box-shadow:0 0 0 4px rgba(240,169,41,.12);}
.tnfc-system-status div{display:flex; flex-direction:column;}
.tnfc-system-status strong{font-size:12px;}
.tnfc-system-status small{margin-top:3px; font-size:10px; color:rgba(255,255,255,.48);}

/* ===== MAIN ===== */
.tnfc-main{width:calc(100% - var(--sidebar-width)); margin-left:var(--sidebar-width); padding:38px 42px 50px;}

/* ===== TOPBAR ===== */
.tnfc-topbar{display:flex; align-items:flex-start; justify-content:space-between; gap:30px; margin-bottom:34px;}
.tnfc-eyebrow{margin:0 0 7px; color:var(--presto-blue); font-size:11px; font-weight:800; letter-spacing:1.5px;}
.tnfc-topbar h1{margin:0; color:var(--presto-dark); font-size:30px; line-height:1.2; letter-spacing:-.7px;}
.tnfc-page-description{margin:8px 0 0; color:var(--text-soft); font-size:14px;}

/* ===== ADMIN USER ===== */
.tnfc-topbar-user{display:flex; align-items:center; gap:11px; padding:7px 11px 7px 7px; background:#fff; border:1px solid var(--border); border-radius:12px;}
.tnfc-user-avatar{width:38px; height:38px; display:flex; align-items:center; justify-content:center; border-radius:9px; background:rgba(41,130,240,.10); color:var(--presto-blue); font-size:12px; font-weight:800;}
.tnfc-topbar-user>div:last-child{display:flex; flex-direction:column;}
.tnfc-topbar-user strong{font-size:12px;}
.tnfc-topbar-user span{margin-top:2px; color:var(--text-soft); font-size:10px;}

/* ===== DASHBOARD STATS ===== */
.tnfc-stats{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-bottom:24px;}
.tnfc-stat-card{position:relative; overflow:hidden; display:flex; flex-direction:column; min-height:150px; padding:23px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); transition:transform .2s ease,box-shadow .2s ease;}
.tnfc-stat-card:hover{transform:translateY(-2px); box-shadow:0 8px 28px rgba(37,55,103,.09);}
.tnfc-stat-card::before{content:""; position:absolute; top:0; left:0; width:100%; height:3px; background:var(--presto-blue);}
.tnfc-stat-label{color:var(--text-soft); font-size:12px; font-weight:600;}
.tnfc-stat-card strong{margin-top:15px; color:var(--presto-navy); font-size:35px; line-height:1; letter-spacing:-1px;}
.tnfc-stat-card small{margin-top:auto; padding-top:15px; color:var(--text-soft); font-size:11px;}

/* ===== PANEL ===== */
.tnfc-panel{overflow:hidden; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); margin: 0 0 30px 0;}
.tnfc-panel-header{display:flex; align-items:center; justify-content:space-between; padding:23px 25px; border-bottom:1px solid var(--border);}
.tnfc-panel-header h2{margin:0; color:var(--presto-dark); font-size:16px;}
.tnfc-panel-header p{margin:5px 0 0; color:var(--text-soft); font-size:12px;}

/* ===== ACTIVITY ===== */
.tnfc-activity-list{padding:0 25px;}
.tnfc-empty-state{padding:55px 20px; text-align:center;}
.tnfc-empty-state strong{display:block; color:var(--presto-navy); font-size:14px;}
.tnfc-empty-state p{margin:7px 0 0; color:var(--text-soft); font-size:12px;}
.tnfc-activity-item{display:flex; align-items:center; justify-content:space-between; gap:30px; padding:18px 0; border-bottom:1px solid var(--border);}
.tnfc-activity-item:last-child{border-bottom:0;}
.tnfc-activity-item strong{font-size:13px;}
.tnfc-activity-item p{margin:5px 0 0; color:var(--text-soft); font-size:11px;}
.tnfc-activity-item time{flex-shrink:0; color:var(--text-soft); font-size:11px;}

/* ===== GENERAL BUTTONS - PREPARADOS PARA LOS MÓDULOS ===== */
.tnfc-btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:42px; padding:0 17px; border:0; border-radius:9px; font-family:inherit; font-size:13px; font-weight:600; text-decoration:none; cursor:pointer; transition:all .2s ease;}
.tnfc-btn-primary{background:var(--presto-blue); color:#fff;}
.tnfc-btn-primary:hover{background:var(--presto-blue-soft); transform:translateY(-1px);}
.tnfc-btn-secondary{background:#fff; color:var(--presto-navy); border:1px solid var(--border);}
.tnfc-btn-secondary:hover{border-color:var(--presto-blue); color:var(--presto-blue);}

/* ===== STATUS - PREPARADOS PARA TARJETAS ===== */
.tnfc-badge{display:inline-flex; align-items:center; justify-content:center; min-height:26px; padding:0 9px; border-radius:20px; font-size:10px; font-weight:700;}
.tnfc-badge-active{background:rgba(41,130,240,.10); color:var(--presto-blue);}
.tnfc-badge-available{background:rgba(240,169,41,.13); color:#9c6800;}
.tnfc-badge-inactive{background:rgba(75,92,112,.10); color:var(--presto-slate);}
.tnfc-nav-item.is-active{color:#fff; background:rgba(41,130,240,.18);}
.tnfc-nav-item.is-active .tnfc-nav-icon{color:#fff;}

/* ===== INICIO - MÓDULO CLIENTES / TABLA ===== */
.tnfc-table-wrapper{width:100%; overflow-x:auto;}
.tnfc-table{width:100%; border-collapse:collapse;}
.tnfc-table th{padding:14px 20px; background:#fafbfd; border-bottom:1px solid var(--border); color:var(--text-soft); font-size:10px; font-weight:700; text-align:left; text-transform:uppercase; letter-spacing:.5px;}
.tnfc-table td{padding:17px 20px; border-bottom:1px solid var(--border); color:var(--text); font-size:12px; vertical-align:middle;}
.tnfc-table tbody tr:last-child td{border-bottom:0;}
.tnfc-table tbody tr:hover{background:#fafcff;}
.tnfc-table td strong{display:block; color:var(--presto-navy); font-size:13px;}
.tnfc-table td small{display:block; margin-top:4px; color:var(--text-soft); font-size:10px;}
.tnfc-table-action{color:var(--presto-blue); font-size:11px; font-weight:700; text-decoration:none;}
.tnfc-table-action:hover{text-decoration:underline;}
/* ===== FIN - MÓDULO CLIENTES / TABLA ===== */

/* ===== INICIO - MÓDULO CLIENTES / FORMULARIO ===== */
.tnfc-alert-success{background:#effaf4; border:1px solid #ccebd9; color:#27734a;}
.tnfc-client-id{padding:6px 10px; border-radius:20px; background:rgba(41,130,240,.08); color:var(--presto-blue); font-size:10px; font-weight:700;}
.tnfc-form-panel{width:100%;}
.tnfc-form{padding:26px;}
.tnfc-form-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px;}
.tnfc-field{display:flex; flex-direction:column; gap:8px;}
.tnfc-field-full{grid-column:1/-1;}
.tnfc-field label{color:var(--presto-dark); font-size:12px; font-weight:700;}
.tnfc-field label span{color:var(--presto-blue);}
.tnfc-field input,.tnfc-field select{width:100%; height:46px; padding:0 13px; border:1px solid var(--border); border-radius:9px; outline:none; background:#fff; color:var(--text); font-family:inherit; font-size:13px; transition:border-color .2s ease,box-shadow .2s ease;}
.tnfc-field input::placeholder{color:#a3adba;}
.tnfc-field input:focus,.tnfc-field select:focus{border-color:var(--presto-blue); box-shadow:0 0 0 3px rgba(41,130,240,.10);}
.tnfc-form-actions{display:flex; align-items:center; justify-content:flex-end; gap:10px; margin-top:28px; padding-top:22px; border-top:1px solid var(--border);}
.tnfc-alert{max-width:100%;max-width:none; margin-bottom:18px; padding:15px 18px; border-radius:10px; font-size:12px;}
.tnfc-alert strong{display:block; margin-bottom:5px;}
.tnfc-alert ul{margin:7px 0 0; padding-left:18px;}
.tnfc-alert-error{background:#fff2f2; border:1px solid #ffd8d8; color:#9f3030;}
.tnfc-alert{width:100%; margin-bottom:18px; padding:15px 18px; border-radius:10px; font-size:12px;}
.tnfc-alert strong{display:block; margin-bottom:5px;}
.tnfc-alert-success{background:#effaf4; border:1px solid #ccebd9; color:#27734a;}
.tnfc-alert-error{background:#fff2f2; border:1px solid #ffd8d8; color:#9f3030;}
/* ===== FIN - MÓDULO CLIENTES / FORMULARIO ===== */

/* ===== INICIO - MÓDULO ASIGNACIONES / FORMULARIO ===== */
.tnfc-assignment-info{display:flex; align-items:center; gap:12px; width:100%;}
.tnfc-assignment-info strong{font-size:13px; color:var(--presto-dark);}
.tnfc-assignment-info span{font-size:12px; color:var(--text-soft);}
/* ===== FIN - MÓDULO ASIGNACIONES / FORMULARIO ===== */

/* ===== INICIO - TARJETAS NFC / DETALLE ===== */
.tnfc-card-detail-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:22px;}
.tnfc-card-detail{display:flex; flex-direction:column; gap:7px; padding:20px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow);}
.tnfc-card-detail span{font-size:11px; font-weight:700; color:var(--text-soft); text-transform:uppercase; letter-spacing:.04em;}
.tnfc-card-detail strong{font-size:14px; font-weight:700; color:var(--presto-dark);}
.tnfc-card-section{margin-bottom:22px;}
.tnfc-card-info{padding:0 26px 8px;}
.tnfc-card-info-row{display:grid; grid-template-columns:220px minmax(0,1fr); gap:20px; align-items:center; padding:16px 0; border-bottom:1px solid var(--border);}
.tnfc-card-info-row:last-child{border-bottom:0;}
.tnfc-card-info-row span{font-size:12px; font-weight:600; color:var(--text-soft);}
.tnfc-card-info-row strong{font-size:13px; font-weight:600; color:var(--presto-dark); overflow-wrap:anywhere;}
.tnfc-card-url{color:var(--presto-blue)!important;}
/* ===== FIN - TARJETAS NFC / DETALLE ===== */

/* ===== INICIO - TOPBAR / GRUPO DE ACCIONES ===== */
.tnfc-topbar-actions{display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap;}
/* ===== FIN - TOPBAR / GRUPO DE ACCIONES ===== */

/* ===== INICIO - NFC BUSINESS / VISTA PREVIA ===== */
.tnfc-business-preview-wrap{display:flex; justify-content:center; padding:20px 0 50px;}
.tnfc-business-profile{width:100%; max-width:430px; overflow:hidden; background:#fff; border:1px solid var(--border); border-radius:24px; box-shadow:0 18px 50px rgba(37,55,103,.12);}
.tnfc-business-profile-top{padding:42px 30px 28px; text-align:center; background:linear-gradient(180deg,#f4f8ff 0%,#fff 100%);}
.tnfc-business-avatar{display:flex; align-items:center; justify-content:center; width:92px; height:92px; margin:0 auto 20px; overflow:hidden; border-radius:50%; background:var(--presto-blue); color:#fff; font-size:34px; font-weight:700; box-shadow:0 8px 24px rgba(41,130,240,.22);}
.tnfc-business-avatar img{width:100%; height:100%; object-fit:cover;}
.tnfc-business-profile-top h2{margin:0 0 7px; color:var(--presto-dark); font-size:25px; font-weight:700;}
.tnfc-business-position{margin:0 0 5px; color:var(--presto-blue); font-size:14px; font-weight:700;}
.tnfc-business-company{margin:0; color:var(--text-soft); font-size:13px;}
.tnfc-business-actions{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:25px 28px;}
.tnfc-business-actions a{display:flex; align-items:center; justify-content:center; min-height:48px; padding:10px 14px; border:1px solid var(--border); border-radius:10px; background:#fff; color:var(--presto-dark); font-size:12px; font-weight:700; text-decoration:none; transition:.2s ease;}
.tnfc-business-actions a:hover{border-color:var(--presto-blue); color:var(--presto-blue); transform:translateY(-1px);}
.tnfc-business-location{display:flex; flex-direction:column; gap:6px; margin:0 28px 25px; padding:16px; border-radius:10px; background:#f6f8fb;}
.tnfc-business-location span{font-size:10px; font-weight:700; color:var(--text-soft); text-transform:uppercase; letter-spacing:.05em;}
.tnfc-business-location strong{font-size:12px; font-weight:600; color:var(--presto-dark);}
.tnfc-business-powered{display:flex; flex-direction:column; align-items:center; gap:4px; padding:20px; border-top:1px solid var(--border); text-align:center;}
.tnfc-business-powered strong{font-size:11px; color:var(--presto-blue); text-transform:uppercase; letter-spacing:.08em;}
.tnfc-business-powered span{font-size:10px; color:var(--text-soft);}
/* ===== FIN - NFC BUSINESS / VISTA PREVIA ===== */

/* ===== INICIO - TARJETAS NFC / ESTADO DE PROGRAMACIÓN ===== */
.tnfc-program-status{display:inline-flex; align-items:center; justify-content:center; padding:6px 10px; border-radius:20px; font-size:11px; font-weight:700; line-height:1;}
.tnfc-program-status.is-pending{background:#fff6e5; color:#a56a00;}
.tnfc-program-status.is-programmed{background:#eaf8f0; color:#247348;}
/* ===== FIN - TARJETAS NFC / ESTADO DE PROGRAMACIÓN ===== */

/* ===== INICIO - NFC BUSINESS / PERFIL PÚBLICO ===== */
.tnfc-public-profile{width:100%; max-width:430px; overflow:hidden; background:#fff; border:1px solid var(--border); border-radius:24px; box-shadow:0 18px 50px rgba(37,55,103,.12);}
.tnfc-public-profile-top{padding:42px 30px 28px; text-align:center; background:linear-gradient(180deg,#f4f8ff 0%,#fff 100%);}
.tnfc-public-avatar{display:flex; align-items:center; justify-content:center; width:92px; height:92px; margin:0 auto 20px; overflow:hidden; border-radius:50%; background:var(--presto-blue); color:#fff; font-size:34px; font-weight:700; box-shadow:0 8px 24px rgba(41,130,240,.22);}
.tnfc-public-avatar img{width:100%; height:100%; object-fit:cover;}
.tnfc-public-profile-top h1{margin:0 0 7px; color:var(--presto-dark); font-size:25px; font-weight:700;}
.tnfc-public-position{margin:0 0 5px; color:var(--presto-blue); font-size:14px; font-weight:700;}
.tnfc-public-company{margin:0; color:var(--text-soft); font-size:13px;}
.tnfc-public-actions{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; padding:25px 28px;}
.tnfc-public-actions a{display:flex; align-items:center; justify-content:center; min-height:48px; padding:10px 14px; border:1px solid var(--border); border-radius:10px; background:#fff; color:var(--presto-dark); font-size:12px; font-weight:700; text-decoration:none; transition:.2s ease;}
.tnfc-public-actions a:hover{border-color:var(--presto-blue); color:var(--presto-blue); transform:translateY(-1px);}
/* ===== FIN - NFC BUSINESS / PERFIL PÚBLICO ===== */

/* ===== INICIO - NFC BUSINESS / UBICACIÓN ===== */
.tnfc-public-location{display:flex; align-items:center; gap:14px; margin:0 28px 25px; padding:17px 18px; border:1px solid var(--border); border-radius:12px; background:#f9fbfd; color:inherit; text-decoration:none; transition:border-color .2s ease,background .2s ease,transform .2s ease;}
.tnfc-public-location-icon{display:flex; align-items:center; justify-content:center; width:42px; height:42px; flex:0 0 42px; border-radius:50%; background:var(--business-primary);}
.tnfc-public-location-icon svg{width:19px; height:19px; fill:#fff;}
.tnfc-public-location-content{display:flex; flex:1; min-width:0; flex-direction:column; gap:4px;}
.tnfc-public-location-content span{color:var(--business-primary); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.07em;}
.tnfc-public-location-content strong{color:var(--business-secondary); font-size:12px; font-weight:600; line-height:1.45;}
.tnfc-public-location-content small{color:var(--business-primary); font-size:11px; font-weight:700;}
.tnfc-public-location:hover{border-color:var(--business-primary); background:#fff; transform:translateY(-1px);}
/* ===== FIN - NFC BUSINESS / UBICACIÓN ===== */

/* ===== INICIO - NFC BUSINESS / PERSONALIZACIÓN Y CONTENIDO ===== */
.tnfc-public-profile{--business-primary:#2982f0; --business-secondary:#253767;}
.tnfc-public-profile-top{position:relative;}
.tnfc-public-profile-top:before{content:""; position:absolute; top:0; left:0; width:100%; height:6px; background:var(--business-primary);}
.tnfc-public-avatar{background:var(--business-primary);}
.tnfc-public-position{color:var(--business-primary);}
.tnfc-public-profile-top h1{color:var(--business-secondary);}
.tnfc-public-bio{max-width:340px; margin:20px auto 0; color:var(--text-soft); font-size:12px; line-height:1.7;}
.tnfc-public-actions a:hover{border-color:var(--business-primary); color:var(--business-primary);}
/* ===== FIN - NFC BUSINESS / PERSONALIZACIÓN Y CONTENIDO ===== */


/* ===== INICIO - NFC BUSINESS / SERVICIOS ===== */
.tnfc-public-section{margin:0 28px 25px; padding:20px 0 0; border-top:1px solid var(--border); border-radius:0; background:transparent;}
.tnfc-public-section-label{display:block; margin-bottom:14px; color:var(--business-secondary); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em;}
.tnfc-public-services{display:flex; flex-wrap:wrap; gap:8px;}
.tnfc-public-service{display:flex; align-items:center; min-height:34px; padding:7px 12px; border:1px solid #e6ebf2; border-radius:8px; background:#f9fbfd; box-sizing:border-box;}
.tnfc-public-service-dot{display:none;}
.tnfc-public-service strong{color:var(--business-secondary); font-size:11px; font-weight:600; line-height:1.35;}
/* ===== FIN - NFC BUSINESS / SERVICIOS ===== */

/* ===== INICIO - NFC BUSINESS / PREVISUALIZACIÓN DE IMÁGENES ===== */
.tnfc-upload-preview{display:flex; align-items:center; gap:12px; margin-bottom:10px; padding:10px; border:1px solid var(--border); border-radius:10px; background:#f8fafc;}
.tnfc-upload-preview img{width:58px; height:58px; border-radius:50%; object-fit:cover;}
.tnfc-upload-preview span{font-size:11px; font-weight:700; color:var(--text-soft);}
.tnfc-upload-preview-logo img{border-radius:8px; object-fit:contain; background:#fff;}
.tnfc-upload-preview-cover{display:block;}
.tnfc-upload-preview-cover img{width:100%; height:140px; border-radius:8px; object-fit:cover;}
.tnfc-upload-preview-cover span{display:block; margin-top:8px;}
/* ===== FIN - NFC BUSINESS / PREVISUALIZACIÓN DE IMÁGENES ===== */

/* ===== INICIO - NFC BUSINESS / CAMPOS DE PERSONALIZACIÓN ===== */
.tnfc-field label{display:block; margin-bottom:8px; color:var(--text); font-size:12px; font-weight:700;}
.tnfc-field small{display:block; margin-top:7px; color:var(--text-soft); font-size:11px; line-height:1.5;}
.tnfc-field input[type="file"]{width:100%; padding:8px; border:1px solid var(--border); border-radius:10px; background:#f8fafc; color:var(--text-soft); font-size:12px; box-sizing:border-box; cursor:pointer;}
.tnfc-field input[type="file"]::file-selector-button{margin-right:12px; padding:10px 14px; border:0; border-radius:7px; background:var(--presto-blue); color:#fff; font-size:11px; font-weight:700; cursor:pointer; transition:.2s ease;}
.tnfc-field input[type="file"]::file-selector-button:hover{opacity:.88;}
.tnfc-field input[type="color"]{width:100%; height:46px; padding:5px; border:1px solid var(--border); border-radius:10px; background:#fff; cursor:pointer;}
.tnfc-field input[type="color"]::-webkit-color-swatch-wrapper{padding:0;}
.tnfc-field input[type="color"]::-webkit-color-swatch{border:0; border-radius:6px;}
.tnfc-field textarea{width:100%; min-height:110px; padding:13px 14px; border:1px solid var(--border); border-radius:10px; outline:none; resize:vertical; background:#fff; color:var(--text); font-family:inherit; font-size:12px; line-height:1.6; box-sizing:border-box; transition:border-color .2s ease,box-shadow .2s ease;}
.tnfc-field textarea:focus{border-color:var(--presto-blue); box-shadow:0 0 0 3px rgba(41,130,240,.10);}
.tnfc-field textarea::placeholder{color:#a3adba;}
.tnfc-upload-preview{position:relative; overflow:hidden; border:1px solid var(--border); background:#f8fafc;}
.tnfc-upload-preview img{border:2px solid #fff; box-shadow:0 2px 8px rgba(37,55,103,.10);}
.tnfc-upload-preview-logo img{padding:5px; border:1px solid var(--border); box-shadow:none;}
.tnfc-upload-preview-cover{padding:10px;}
.tnfc-upload-preview-cover img{height:180px; border:0; box-shadow:none;}
/* ===== FIN - NFC BUSINESS / CAMPOS DE PERSONALIZACIÓN ===== */

/* ===== INICIO - NFC BUSINESS / IDENTIDAD VISUAL PÚBLICA ===== */
.tnfc-public-cover{position:relative; width:100%; height:180px; background:linear-gradient(135deg,var(--business-primary),var(--business-secondary)); background-position:center; background-size:cover; background-repeat:no-repeat;}
.tnfc-public-cover:after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.10) 100%);}

.tnfc-public-profile-top{position:relative; padding:0 28px 28px; text-align:left; background:#fff;}
.tnfc-public-profile-top:before{display:none;}

.tnfc-public-identity{display:flex; align-items:flex-end; justify-content:space-between; min-height:60px; margin-bottom:16px;}

.tnfc-public-avatar{position:relative; z-index:2; width:104px; height:104px; flex:0 0 104px; margin:-52px 0 0; border:5px solid #fff; background:var(--business-primary); box-shadow:0 8px 24px rgba(37,55,103,.16);}
.tnfc-public-avatar img{width:100%; height:100%; object-fit:cover;}

.tnfc-public-company-logo{display:flex; align-items:center; justify-content:center; width:105px; height:72px; margin-top:10px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; box-sizing:border-box;}
.tnfc-public-company-logo img{display:block; width:100%; height:100%; object-fit:contain;}

.tnfc-public-heading{margin-top:4px;}
.tnfc-public-profile-top h1{margin:0 0 6px; color:var(--business-secondary); font-size:25px; line-height:1.15; font-weight:700;}
.tnfc-public-position{margin:0 0 4px; color:var(--business-primary); font-size:13px; font-weight:700;}
.tnfc-public-company{margin:0; color:var(--text-soft); font-size:12px; font-weight:600;}

.tnfc-public-bio{max-width:none; margin:18px 0 0; padding-top:17px; border-top:1px solid var(--border); color:var(--text-soft); font-size:12px; line-height:1.7;}
/* ===== FIN - NFC BUSINESS / IDENTIDAD VISUAL PÚBLICA ===== */

/* ===== INICIO - NFC BUSINESS / ELIMINAR IMÁGENES ===== */
.tnfc-remove-image{display:flex!important; align-items:center; gap:8px; width:max-content; margin:9px 0 11px!important; padding:7px 10px; border-radius:7px; background:#fff2f2; color:#9f3030!important; font-size:10px!important; font-weight:700!important; cursor:pointer;}
.tnfc-remove-image input{width:14px; height:14px; margin:0; accent-color:#c53d3d; cursor:pointer;}
.tnfc-remove-image span{line-height:1;}
/* ===== FIN - NFC BUSINESS / ELIMINAR IMÁGENES ===== */

/* ===== INICIO - NFC BUSINESS / ACCIONES CON ICONOS ===== */
.tnfc-public-actions{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:9px; padding:18px 28px 12px;}
.tnfc-public-actions a{display:flex; align-items:center; justify-content:center; min-width:0; min-height:48px; padding:0; border:1px solid #e6ebf2; border-radius:10px; background:#f9fbfd; color:var(--business-primary); text-decoration:none; transition:border-color .2s ease,background .2s ease,transform .2s ease,box-shadow .2s ease;}
.tnfc-public-actions a svg{width:20px; height:20px; flex:0 0 20px; fill:currentColor; transition:transform .2s ease;}
.tnfc-public-actions a:hover{border-color:var(--business-primary); background:#fff; transform:translateY(-2px); box-shadow:0 5px 14px rgba(37,55,103,.08);}
.tnfc-public-actions a:hover svg{transform:scale(1.1);}
.tnfc-public-actions a:active{transform:translateY(0); box-shadow:none;}
/* ===== FIN - NFC BUSINESS / ACCIONES CON ICONOS ===== */

/* ===== INICIO - NFC BUSINESS / GUARDAR CONTACTO ===== */
.tnfc-public-save-contact{padding:10px 28px 25px;}
.tnfc-public-save-contact a{display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:52px; padding:10px 18px; border-radius:10px; background:var(--business-primary); color:#fff; font-size:12px; font-weight:700; text-decoration:none; box-sizing:border-box; transition:transform .2s ease,opacity .2s ease;}
.tnfc-public-save-contact a svg{width:19px; height:19px; flex:0 0 19px; fill:currentColor;}
.tnfc-public-save-contact a:hover{transform:translateY(-1px); opacity:.90;}
/* ===== FIN - NFC BUSINESS / GUARDAR CONTACTO ===== */

/* ===== INICIO - NFC BUSINESS / FIRMA TECHNOLOGY NFC ===== */
.tnfc-public-powered{display:flex; align-items:center; justify-content:center; gap:10px; padding:20px 28px 22px; border-top:1px solid var(--border); background:#fafbfd; text-align:left;}
.tnfc-public-powered-icon{display:flex; align-items:center; justify-content:center; width:30px; height:30px; flex:0 0 30px; border-radius:8px; background:var(--business-primary);}
.tnfc-public-powered-icon svg{width:16px; height:16px; fill:#fff;}
.tnfc-public-powered-content{display:flex; flex-direction:column; gap:2px;}
.tnfc-public-powered-content strong{color:var(--business-secondary); font-size:10px; font-weight:800; line-height:1.2; text-transform:uppercase; letter-spacing:.07em;}
.tnfc-public-powered-content span{color:var(--text-soft); font-size:9px; line-height:1.3;}
/* ===== FIN - NFC BUSINESS / FIRMA TECHNOLOGY NFC ===== */

/* ===== INICIO - NFC BUSINESS / ENLACES PERSONALIZADOS ADMIN ===== */
.tnfc-custom-links-header{display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:12px;}
.tnfc-custom-links-header label{margin-bottom:5px;}
.tnfc-custom-links{display:flex; flex-direction:column; gap:10px;}
.tnfc-custom-links-empty{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; min-height:105px; padding:20px; border:1px dashed #d9e0e9; border-radius:10px; background:#f9fbfd; text-align:center;}
.tnfc-custom-links-empty strong{color:var(--text); font-size:12px; font-weight:700;}
.tnfc-custom-links-empty span{color:var(--text-soft); font-size:11px;}
.tnfc-custom-link-row{display:flex; align-items:center; gap:10px; padding:10px; border:1px solid var(--border); border-radius:10px; background:#f9fbfd;}
.tnfc-custom-link-number{display:flex; align-items:center; justify-content:center; width:28px; height:28px; flex:0 0 28px; border-radius:7px; background:#eaf2fd; color:var(--presto-blue); font-size:11px; font-weight:800;}
.tnfc-custom-link-fields{display:grid; grid-template-columns:minmax(160px,.7fr) minmax(220px,1.3fr); gap:10px; width:100%;}
.tnfc-custom-link-fields input{width:100%; box-sizing:border-box;}
.tnfc-custom-link-add{display:inline-flex; align-items:center; justify-content:center; gap:7px; margin-top:10px; padding:10px 14px; border:1px solid var(--border); border-radius:8px; background:#fff; color:var(--presto-blue); font-family:inherit; font-size:11px; font-weight:700;}
.tnfc-custom-link-add span{font-size:17px; line-height:1;}
.tnfc-custom-link-add:disabled{opacity:.55; cursor:not-allowed;}
/* ===== FIN - NFC BUSINESS / ENLACES PERSONALIZADOS ADMIN ===== */

/* ===== INICIO - NFC BUSINESS / ENLACES PERSONALIZADOS PÚBLICOS ===== */
.tnfc-public-custom-links{margin:0 28px 25px; padding:20px 0 0; border-top:1px solid var(--border);}
.tnfc-public-custom-links-list{display:flex; flex-direction:column; gap:8px;}
.tnfc-public-custom-links-list a{display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:46px; padding:11px 14px; border:1px solid #e6ebf2; border-radius:10px; background:#f9fbfd; color:var(--business-secondary); text-decoration:none; box-sizing:border-box; transition:border-color .2s ease,background .2s ease,transform .2s ease;}
.tnfc-public-custom-links-list a span{font-size:11px; font-weight:700; line-height:1.4;}
.tnfc-public-custom-links-list a svg{width:17px; height:17px; flex:0 0 17px; fill:var(--business-primary); transition:transform .2s ease;}
.tnfc-public-custom-links-list a:hover{border-color:var(--business-primary); background:#fff; transform:translateY(-1px);}
.tnfc-public-custom-links-list a:hover svg{transform:translateX(2px);}
/* ===== FIN - NFC BUSINESS / ENLACES PERSONALIZADOS PÚBLICOS ===== */

/* ===== INICIO - SUSCRIPCIÓN NFC BUSINESS ===== */
.tnfc-subscription-status{display:inline-flex; align-items:center; justify-content:center; min-height:30px; padding:6px 11px; border-radius:20px; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.04em;}
.tnfc-subscription-status-active{background:#eaf8ef; color:#23824a;}
.tnfc-subscription-status-renewal_due{background:#fff5df; color:#a76a00;}
.tnfc-subscription-status-expired{background:#fff0f0; color:#b83b3b;}
.tnfc-subscription-status-cancelled{background:#eef1f5; color:#5d6877;}
/* ===== FIN - SUSCRIPCIÓN NFC BUSINESS ===== */

/* ===== INICIO - DASHBOARD / RENOVACIONES NFC BUSINESS ===== */
.tnfc-renewals-panel{margin-top:24px;}
.tnfc-renewal-stats{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:20px 24px;}
.tnfc-renewal-stat{display:flex; align-items:center; justify-content:space-between; gap:15px; padding:16px 18px; border:1px solid var(--border); border-radius:10px; background:#f9fbfd;}
.tnfc-renewal-stat span{color:var(--text-soft); font-size:11px; font-weight:700;}
.tnfc-renewal-stat strong{font-size:22px; font-weight:800;}
.tnfc-renewal-stat-active strong{color:#23824a;}
.tnfc-renewal-stat-due strong{color:#a76a00;}
.tnfc-renewal-stat-expired strong{color:#b83b3b;}
.tnfc-renewal-list{padding:0 24px 24px;}
.tnfc-renewal-item{display:grid; grid-template-columns:minmax(180px,1fr) minmax(260px,1fr) auto; align-items:center; gap:20px; padding:15px 0; border-top:1px solid var(--border); color:inherit; text-decoration:none;}
.tnfc-renewal-client{display:flex; flex-direction:column; gap:4px;}
.tnfc-renewal-client strong{color:var(--text); font-size:12px;}
.tnfc-renewal-client span{color:var(--text-soft); font-size:10px;}
.tnfc-renewal-dates{display:flex; flex-direction:column; gap:4px;}
.tnfc-renewal-dates span{color:var(--text-soft); font-size:10px;}
.tnfc-renewal-dates strong{color:var(--text); font-weight:700;}
.tnfc-renewal-item:hover .tnfc-renewal-client strong{color:var(--presto-blue);}
/* ===== FIN - DASHBOARD / RENOVACIONES NFC BUSINESS ===== */

/* ===== INICIO - DETALLE DEL CLIENTE ===== */
.tnfc-client-view-actions{display:flex; align-items:center; gap:8px;}
.tnfc-client-info-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; border-top:1px solid #e7ebf1;}
.tnfc-client-info-item{display:flex; flex-direction:column; gap:7px; padding:20px 28px; border-right:1px solid #e7ebf1;}
.tnfc-client-info-item:last-child{border-right:0;}
.tnfc-client-info-item span{font-size:12px; font-weight:700; color:#7b8798; text-transform:uppercase; letter-spacing:.06em;}
.tnfc-client-info-item strong{font-size:15px; font-weight:700; color:#253767; overflow-wrap:anywhere;}
.tnfc-client-metrics{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:16px 0;}
.tnfc-client-metric{display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 26px; background:#fff; border:1px solid #e7ebf1; border-radius:14px;}
.tnfc-client-metric span{font-size:13px; font-weight:700; color:#68778b;}
.tnfc-client-metric strong{font-size:28px; line-height:1; font-weight:800; color:#2982f0;}
.tnfc-client-activity{border-top:1px solid #e7ebf1;}
.tnfc-client-activity-item{display:flex; align-items:flex-start; justify-content:space-between; gap:30px; padding:18px 28px; border-bottom:1px solid #edf0f4;}
.tnfc-client-activity-item:last-child{border-bottom:0;}
.tnfc-client-activity-item strong{display:block; margin-bottom:5px; font-size:14px; color:#253767;}
.tnfc-client-activity-item p{margin:0; font-size:13px; line-height:1.5; color:#68778b;}
.tnfc-client-activity-item time{flex:0 0 auto; padding-top:2px; font-size:12px; font-weight:600; color:#8b96a5; white-space:nowrap;}
/* ===== FIN - DETALLE DEL CLIENTE ===== */

/* ===== INICIO - REEMPLAZO DE TARJETA NFC ===== */
.tnfc-replace-form{padding:25px;}
.tnfc-replace-form .tnfc-form-grid{display:block;}
.tnfc-replace-form .tnfc-field{max-width:620px; gap:9px;}
.tnfc-replace-form .tnfc-field label{font-size:12px; font-weight:700; color:var(--presto-dark);}
.tnfc-replace-form .tnfc-field select{height:48px; padding:0 14px; border-radius:10px; background:#fff; font-size:13px; cursor:pointer;}
.tnfc-replace-form .tnfc-field select:focus{border-color:var(--presto-blue); box-shadow:0 0 0 3px rgba(41,130,240,.10);}
.tnfc-replace-form .tnfc-form-actions{margin:25px -25px -25px; padding:20px 25px; background:#fafbfd; border-top:1px solid var(--border);}
.tnfc-replace-form .tnfc-form-actions .tnfc-btn{min-height:44px;}
/* ===== FIN - REEMPLAZO DE TARJETA NFC ===== */

/* ===== INICIO - FILTROS DE TARJETAS NFC ===== */
.tnfc-card-filters{display:grid; grid-template-columns:minmax(220px,1.6fr) repeat(3,minmax(140px,1fr)) auto; gap:15px; align-items:end; padding:20px 25px; border-bottom:1px solid var(--border); background:#fafbfd;}
.tnfc-card-filter-search,.tnfc-card-filter-field{display:flex; flex-direction:column; gap:8px;}
.tnfc-card-filter-search label,.tnfc-card-filter-field label{color:var(--presto-dark); font-size:12px; font-weight:700;}
.tnfc-card-filter-search input,.tnfc-card-filter-field select{width:100%; height:46px; padding:0 13px; border:1px solid var(--border); border-radius:9px; outline:none; background:#fff; color:var(--text); font-family:inherit; font-size:13px; box-sizing:border-box; transition:border-color .2s ease,box-shadow .2s ease;}
.tnfc-card-filter-search input::placeholder{color:#a3adba;}
.tnfc-card-filter-search input:focus,.tnfc-card-filter-field select:focus{border-color:var(--presto-blue); box-shadow:0 0 0 3px rgba(41,130,240,.10);}
.tnfc-card-filter-field select{cursor:pointer;}
.tnfc-card-filter-actions{display:flex; align-items:center; gap:8px;}
.tnfc-card-filter-actions .tnfc-btn{height:46px; white-space:nowrap;}

/* ===== INICIO - FILTROS DE ACTIVIDAD ===== */
.tnfc-activity-filters{display:grid; grid-template-columns:minmax(280px,1.7fr) minmax(180px,1fr) minmax(160px,.8fr) auto; gap:15px; align-items:end; padding:20px 25px; border-bottom:1px solid var(--border); background:#fafbfd;}
.tnfc-activity-filter-search,.tnfc-activity-filter-field{display:flex; flex-direction:column; gap:8px;}
.tnfc-activity-filter-search label,.tnfc-activity-filter-field label{color:var(--presto-dark); font-size:12px; font-weight:700;}
.tnfc-activity-filter-search input,.tnfc-activity-filter-field select{width:100%; height:46px; padding:0 13px; border:1px solid var(--border); border-radius:9px; outline:none; background:#fff; color:var(--text); font-family:inherit; font-size:13px; box-sizing:border-box; transition:border-color .2s ease,box-shadow .2s ease;}
.tnfc-activity-filter-search input::placeholder{color:#a3adba;}
.tnfc-activity-filter-search input:focus,.tnfc-activity-filter-field select:focus{border-color:var(--presto-blue); box-shadow:0 0 0 3px rgba(41,130,240,.10);}
.tnfc-activity-filter-field select{cursor:pointer;}
.tnfc-activity-filter-actions{display:flex; align-items:center; gap:8px;}
.tnfc-activity-filter-actions .tnfc-btn{height:46px; white-space:nowrap;}
.tnfc-table-subtext{margin-top:3px; color:var(--text-soft); font-size:11px; font-weight:500;}
.tnfc-table-link{color:var(--presto-blue); font-weight:700; text-decoration:none;}
.tnfc-table-link:hover{text-decoration:underline;}
/* ===== FIN - FILTROS DE ACTIVIDAD ===== */

/* ===== INICIO - PAGINACIÓN ===== */
.tnfc-pagination{display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 25px; border-top:1px solid var(--border); background:#fafbfd;}
.tnfc-pagination-info{color:var(--text-soft); font-size:12px;}
.tnfc-pagination-pages{display:flex; align-items:center; gap:7px;}
.tnfc-pagination-link{display:inline-flex; align-items:center; justify-content:center; min-width:38px; height:38px; padding:0 12px; border:1px solid var(--border); border-radius:8px; background:#fff; color:var(--text); font-size:12px; font-weight:700; text-decoration:none; transition:border-color .2s ease,color .2s ease,background .2s ease;}
.tnfc-pagination-link:hover{border-color:var(--presto-blue); color:var(--presto-blue);}
.tnfc-pagination-link.is-active{border-color:var(--presto-blue); background:var(--presto-blue); color:#fff;}
/* ===== FIN - PAGINACIÓN ===== */

/* ===== INICIO - LOGIN TECHNOLOGY NFC ===== */
.tnfc-login-page{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:40px 20px; background:linear-gradient(135deg,#f4f7fb 0%,#edf3fb 100%);}
.tnfc-login-card{width:100%; max-width:440px; padding:42px; background:#fff; border:1px solid var(--border); border-radius:18px; box-shadow:0 20px 60px rgba(37,55,103,.10);}
.tnfc-login-brand{margin-bottom:30px; text-align:center;}
.tnfc-login-brand .tnfc-eyebrow{margin-bottom:12px;}
.tnfc-login-brand h1{margin:0 0 10px; color:var(--presto-dark); font-size:32px; line-height:1.15;}
.tnfc-login-brand > p:last-child{margin:0; color:var(--text-soft); font-size:13px;}
.tnfc-login-form{display:flex; flex-direction:column; gap:20px;}
.tnfc-login-form .tnfc-field{display:flex; flex-direction:column; gap:8px;}
.tnfc-login-form .tnfc-field label{color:var(--presto-dark); font-size:13px; font-weight:700;}
.tnfc-login-form .tnfc-field input{width:100%; height:48px; padding:0 14px; border:1px solid var(--border); border-radius:9px; outline:none; background:#fff; color:var(--text); font-family:inherit; font-size:14px; box-sizing:border-box; transition:border-color .2s ease,box-shadow .2s ease;}
.tnfc-login-form .tnfc-field input:focus{border-color:var(--presto-blue); box-shadow:0 0 0 3px rgba(41,130,240,.10);}
.tnfc-login-submit{width:100%; height:48px; margin-top:4px; justify-content:center;}
.tnfc-login-card .tnfc-alert{margin-bottom:22px;}
/* ===== FIN - LOGIN TECHNOLOGY NFC ===== */

/* ===== INICIO - CERRAR SESIÓN / SIDEBAR ===== */
.tnfc-sidebar-logout{display:flex; align-items:center; gap:12px; width:100%; margin-top:15px; padding:12px 14px; background:transparent; border:1px solid rgba(255,255,255,.10); border-radius:9px; color:rgba(255,255,255,.72); font-family:inherit; font-size:13px; font-weight:600; line-height:inherit; text-align:left; text-decoration:none; box-sizing:border-box; cursor:pointer; appearance:none; -webkit-appearance:none; transition:background .2s ease,border-color .2s ease,color .2s ease;}
.tnfc-sidebar-logout:hover{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18); color:#fff;}
.tnfc-sidebar-logout .tnfc-nav-icon{display:flex; align-items:center; justify-content:center; width:20px; flex:0 0 20px;}
/* ===== FIN - CERRAR SESIÓN / SIDEBAR ===== */

/* ===== INICIO - PÁGINA PÚBLICA TECHNOLOGY NFC ===== */
.tnfc-public{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:60px 24px; background:#f5f8fc; color:#2a2e33;}
.tnfc-public *{box-sizing:border-box;}
.tnfc-public-container{width:100%; max-width:1100px; margin:auto;}
.tnfc-public-brand{text-align:center; margin-bottom:48px;}
.tnfc-public-eyebrow{margin:0 0 12px; color:#2982f0; font-size:13px; font-weight:700; letter-spacing:2px; text-transform:uppercase;}
.tnfc-public-brand h1{margin:0 0 12px; color:#253767; font-size:52px; line-height:1; font-weight:800;}
.tnfc-public-tagline{margin:0 0 22px; color:#4b5c70; font-size:15px;}
.tnfc-public-intro{max-width:650px; margin:0 auto; color:#4b5c70; font-size:18px; line-height:1.7;}
.tnfc-public-options{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px;}
.tnfc-public-card{display:flex; flex-direction:column; min-height:330px; padding:38px; background:#fff; border:1px solid #e2e9f2; border-radius:20px; box-shadow:0 15px 45px rgba(37,55,103,.08); transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;}
.tnfc-public-card:hover{transform:translateY(-5px); border-color:#cbdcf1; box-shadow:0 20px 55px rgba(37,55,103,.13);}
.tnfc-public-card-number{display:flex; align-items:center; justify-content:center; width:46px; height:46px; margin-bottom:28px; border-radius:12px; background:#edf5ff; color:#2982f0; font-size:14px; font-weight:800;}
.tnfc-public-card h2{margin:0 0 15px; color:#253767; font-size:30px; font-weight:800;}
.tnfc-public-card p{margin:0 0 30px; color:#4b5c70; font-size:16px; line-height:1.7;}
.tnfc-public-btn{display:inline-flex; align-items:center; justify-content:center; min-height:52px; margin-top:auto; padding:14px 22px; border-radius:10px; background:#2982f0; color:#fff; font-size:14px; font-weight:700; text-decoration:none; transition:transform .2s ease,background .2s ease;}
.tnfc-public-btn:hover{background:#253767; color:#fff; transform:translateY(-2px);}
.tnfc-public-footer{text-align:center; margin-top:42px; color:#7b8797; font-size:13px;}
.tnfc-public-footer p{margin:0;}
.tnfc-public-footer strong{color:#253767;}
/* ===== FIN - PÁGINA PÚBLICA TECHNOLOGY NFC ===== */




/* ===== INICIO - RESPONSIVE ===== */


/* ===== INICIO - TABLET GENERAL ===== */
@media(max-width:1050px){
.tnfc-stats{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media(max-width:900px){
.tnfc-card-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}

@media(max-width:760px){
:root{--sidebar-width:76px;}
.tnfc-sidebar{padding-left:12px; padding-right:12px;}
.tnfc-brand{justify-content:center; padding-left:0; padding-right:0;}
.tnfc-brand-text,.tnfc-nav-item span:last-child,.tnfc-system-status div{display:none;}
.tnfc-nav-item{justify-content:center; padding:0;}
.tnfc-nav-icon{width:auto;}
.tnfc-system-status{justify-content:center;}
.tnfc-main{padding:27px 20px 40px;}
.tnfc-renewal-stats{grid-template-columns:1fr;}
.tnfc-renewal-item{grid-template-columns:1fr; gap:10px;}
}
/* ===== FIN - TABLET GENERAL ===== */


/* ===== INICIO - MÓVIL GENERAL ===== */
@media(max-width:560px){
.tnfc-topbar{flex-direction:column;}
.tnfc-topbar-actions{width:100%; justify-content:flex-start;}
.tnfc-topbar-actions .tnfc-btn{width:100%; justify-content:center;}
.tnfc-main{padding-left:16px; padding-right:16px;}
.tnfc-stats{grid-template-columns:1fr;}
.tnfc-form-grid{grid-template-columns:1fr;}
.tnfc-field-full{grid-column:auto;}
.tnfc-form{padding:20px;}
.tnfc-form-actions{flex-direction:column-reverse; align-items:stretch;}
.tnfc-card-detail-grid{grid-template-columns:1fr;}
.tnfc-card-info{padding:0 20px 8px;}
.tnfc-card-info-row{grid-template-columns:1fr; gap:6px;}
.tnfc-business-preview-wrap{padding:10px 0 35px;}
.tnfc-business-profile{max-width:100%;}
.tnfc-business-actions{padding:22px 20px;}
.tnfc-business-location{margin:0 20px 22px;}
.tnfc-public-profile{max-width:100%;}
.tnfc-public-cover{height:165px;}
.tnfc-public-profile-top{padding:0 20px 24px;}
.tnfc-public-avatar{width:94px; height:94px; flex-basis:94px; margin-top:-47px;}
.tnfc-public-company-logo{width:90px; height:62px;}
.tnfc-public-profile-top h1{font-size:23px;}
.tnfc-public-actions{grid-template-columns:repeat(6,minmax(0,1fr)); gap:6px; padding:18px 20px 12px;}
.tnfc-public-section{margin:0 20px 22px; padding:18px 0 0;}
.tnfc-public-bio{max-width:300px;}
.tnfc-public-location{margin:0 20px 22px;}
.tnfc-public-save-contact{padding:0 20px 22px;}
.tnfc-custom-link-row{align-items:flex-start;}
.tnfc-custom-link-fields{grid-template-columns:1fr;}
.tnfc-public-custom-links{margin:0 20px 22px; padding:18px 0 0;}
}
/* ===== FIN - MÓVIL GENERAL ===== */


/* ===== INICIO - PROGRAMACIÓN NFC / ACCIONES ===== */
.tnfc-nfc-programming-actions{display:flex; align-items:center; justify-content:flex-end; gap:10px; padding:18px 30px 40px 0; margin-top:4px; border-top:1px solid #e7ebf1;}
.tnfc-nfc-programming-actions form{margin:0;}
.tnfc-nfc-programming-actions .tnfc-btn{min-height:42px; padding:10px 18px; font-size:13px; white-space:nowrap;}
.tnfc-programming-status{display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:700;}
.tnfc-programming-status::before{content:""; width:8px; height:8px; border-radius:50%; background:#f0a929;}
.tnfc-programming-status.is-programmed::before{background:#2982f0;}

@media(max-width:700px){
.tnfc-nfc-programming-actions{flex-direction:column; align-items:stretch;}
.tnfc-nfc-programming-actions form{width:100%;}
.tnfc-nfc-programming-actions .tnfc-btn{width:100%; justify-content:center;}
.tnfc-pagination{flex-direction:column; align-items:stretch; padding:18px;}
.tnfc-pagination-info{text-align:center;}
.tnfc-pagination-pages{justify-content:center; flex-wrap:wrap;}
}
/* ===== FIN - PROGRAMACIÓN NFC / ACCIONES ===== */


/* ===== INICIO - DETALLE DEL CLIENTE / RESPONSIVE ===== */
@media(max-width:1000px){
.tnfc-client-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.tnfc-client-info-item:nth-child(2){border-right:0;}
.tnfc-client-info-item:nth-child(-n+2){border-bottom:1px solid #e7ebf1;}
}

@media(max-width:700px){
.tnfc-client-view-actions{width:100%;}
.tnfc-client-view-actions .tnfc-btn{flex:1; justify-content:center;}
.tnfc-client-info-grid{grid-template-columns:1fr;}
.tnfc-client-info-item{border-right:0; border-bottom:1px solid #e7ebf1;}
.tnfc-client-info-item:last-child{border-bottom:0;}
.tnfc-client-metrics{grid-template-columns:1fr; gap:10px;}
.tnfc-client-metric{padding:18px 20px;}
.tnfc-client-activity-item{flex-direction:column; gap:8px; padding:18px 20px;}
.tnfc-client-activity-item time{padding-top:0;}
}
/* ===== FIN - DETALLE DEL CLIENTE / RESPONSIVE ===== */


/* ===== INICIO - FILTROS DE TARJETAS NFC / RESPONSIVE ===== */
@media(max-width:1100px){
.tnfc-card-filters{grid-template-columns:repeat(2,minmax(0,1fr));}
.tnfc-card-filter-search{grid-column:1/-1;}
.tnfc-card-filter-actions{grid-column:1/-1;}
}

@media(max-width:700px){
.tnfc-card-filters{grid-template-columns:1fr; padding:18px;}
.tnfc-card-filter-search,.tnfc-card-filter-actions{grid-column:auto;}
.tnfc-card-filter-actions{flex-direction:column; align-items:stretch;}
.tnfc-card-filter-actions .tnfc-btn{width:100%; justify-content:center;}
}
/* ===== FIN - FILTROS DE TARJETAS NFC / RESPONSIVE ===== */


/* ===== INICIO - PAGINACIÓN / RESPONSIVE ===== */
@media(max-width:700px){
.tnfc-pagination{flex-direction:column; align-items:stretch; padding:18px;}
.tnfc-pagination-info{text-align:center;}
.tnfc-pagination-pages{justify-content:center; flex-wrap:wrap;}
}
/* ===== FIN - PAGINACIÓN / RESPONSIVE ===== */


/* ===== INICIO - FILTROS DE ACTIVIDAD / RESPONSIVE ===== */
@media(max-width:1100px){
.tnfc-activity-filters{grid-template-columns:repeat(2,minmax(0,1fr));}
.tnfc-activity-filter-search{grid-column:1/-1;}
.tnfc-activity-filter-actions{grid-column:1/-1;}
}

@media(max-width:700px){
.tnfc-activity-filters{grid-template-columns:1fr; padding:18px;}
.tnfc-activity-filter-search,.tnfc-activity-filter-actions{grid-column:auto;}
.tnfc-activity-filter-actions{flex-direction:column; align-items:stretch;}
.tnfc-activity-filter-actions .tnfc-btn{width:100%; justify-content:center;}
}
/* ===== FIN - FILTROS DE ACTIVIDAD / RESPONSIVE ===== */
/* ===== INICIO - LOGIN TECHNOLOGY NFC / RESPONSIVE ===== */
@media(max-width:700px){
.tnfc-login-page{padding:20px 15px;}
.tnfc-login-card{padding:30px 22px; border-radius:14px;}
.tnfc-login-brand{margin-bottom:25px;}
.tnfc-login-brand h1{font-size:28px;}
}
/* ===== FIN - LOGIN TECHNOLOGY NFC / RESPONSIVE ===== */

/* ===== INICIO - PÁGINA PÚBLICA TECHNOLOGY NFC / RESPONSIVE ===== */
@media(max-width:700px){
.tnfc-public{padding:40px 18px;}
.tnfc-public-brand{margin-bottom:34px;}
.tnfc-public-brand h1{font-size:39px;}
.tnfc-public-intro{font-size:16px;}
.tnfc-public-options{grid-template-columns:1fr;}
.tnfc-public-card{min-height:auto; padding:30px 26px;}
.tnfc-public-card h2{font-size:26px;}
}
/* ===== FIN - PÁGINA PÚBLICA TECHNOLOGY NFC / RESPONSIVE ===== */

/* ===== FIN - RESPONSIVE ===== */



