{"id":24638,"date":"2026-05-29T13:36:09","date_gmt":"2026-05-29T17:36:09","guid":{"rendered":"https:\/\/tudomicilioenundia.cl\/laserena\/?page_id=24638"},"modified":"2026-06-01T07:24:58","modified_gmt":"2026-06-01T11:24:58","slug":"clientes","status":"publish","type":"page","link":"https:\/\/tudomicilioenundia.cl\/laserena\/clientes\/","title":{"rendered":"Espacio Clientes"},"content":{"rendered":"<section data-kc-fullheight=\"true\" class=\"kc-elm kc-css-340482 kc_row\"><div class=\"kc-row-container  kc-container\"><div class=\"kc-wrap-columns\"><div class=\"kc-elm kc-css-814812 kc_col-sm-12 kc_column kc_col-sm-12\"><div class=\"kc-col-container\"><div class=\"kc-elm kc-css-277681\" style=\"height: 100px; clear: both; width:100%;\"><\/div>        <div id=\"trs-client-portal\" class=\"trs-client-portal\" data-nonce=\"11f195b085\" data-ajax=\"https:\/\/tudomicilioenundia.cl\/laserena\/wp-admin\/admin-ajax.php\">\n            <style>\n                .trs-client-portal{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;max-width:1500px;margin:24px auto;color:#0f172a}.trs-client-portal *{box-sizing:border-box}.trs-client-portal .card{background:#fff;border:1px solid #e2e8f0;border-radius:26px;padding:24px;box-shadow:0 16px 45px rgba(15,23,42,.08);margin:16px 0}.trs-client-portal .login-card{max-width:900px}.trs-client-portal h2{font-size:36px;line-height:1.08;margin:0 0 12px}.trs-client-portal h3{font-size:28px;margin:0}.trs-client-portal h4{margin:14px 0 8px;font-size:18px}.trs-client-portal p{line-height:1.55}.trs-client-portal input,.trs-client-portal select,.trs-client-portal textarea{padding:14px 15px;border:1px solid #cbd5e1;border-radius:14px;min-height:48px;font-size:16px;width:auto}.trs-client-portal textarea{width:100%}.trs-client-portal button,.trs-primary-link{background:#007AFD;color:#fff!important;border:0;border-radius:14px;padding:13px 18px;font-weight:900;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.trs-client-portal button.secondary{background:#f1f5f9;color:#0f172a!important;border:1px solid #cbd5e1}.trs-client-portal .row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.trs-client-portal .hidden{display:none!important}.trs-client-portal .alert{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:14px;padding:12px;margin:12px 0}.trs-client-portal .alert.ok{background:#dcfce7;border-color:#86efac;color:#166534}.trs-portal-shell{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px}.trs-portal-side{background:#f8fafc;border:1px solid #e2e8f0;border-radius:20px;padding:12px;align-self:start;position:sticky;top:16px}.trs-portal-side button{width:100%;display:block;background:transparent!important;color:#0f172a!important;text-align:left;margin:5px 0;border:1px solid transparent}.trs-portal-side button.active{background:#0f172a!important;color:#fff!important;border-color:#007AFD}.trs-section-label{font-size:13px;text-transform:uppercase;letter-spacing:.14em;color:#64748b;font-weight:900;margin:0 0 8px}.trs-portal-kpis{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:12px;margin-bottom:18px}.trs-portal-kpi{background:#eff6ff;border:1px solid #bfdbfe;border-radius:18px;padding:16px}.trs-portal-kpi.bad{background:#fff1f2;border-color:#fecaca}.trs-portal-kpi span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#64748b;font-weight:900}.trs-portal-kpi strong{display:block;font-size:21px;margin:6px 0}.trs-portal-kpi small{color:#475569}.trs-panel-section{background:#fff;border:1px solid #e2e8f0;border-radius:22px;padding:20px;margin-top:12px}.trs-panel-title{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:18px}.trs-panel-title p{margin:0;color:#64748b}.trs-pill{display:inline-block;border-radius:999px;background:#e0f2fe;color:#075985;padding:5px 10px;font-weight:900;font-size:12px}.trs-pill.ok{background:#dcfce7;color:#166534}.trs-pill.warn{background:#fef3c7;color:#92400e}.trs-pill.bad{background:#fee2e2;color:#991b1b}.trs-pill.muted{background:#e2e8f0;color:#475569}.trs-action-stack{display:flex;gap:8px;flex-wrap:wrap}.trs-action-stack button{padding:10px 13px;font-size:14px}.trs-res-card-list{display:grid;gap:12px}.trs-res-card{display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(150px,.7fr) auto minmax(190px,.9fr);gap:14px;align-items:center;border:1px solid #e2e8f0;border-radius:18px;padding:14px;background:#f8fafc}.trs-res-card small,.trs-res-card b{display:block}.trs-mini-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:900;margin-bottom:4px;display:block}.trs-link-btn{display:inline-block;background:#007AFD;color:#fff!important;text-decoration:none;border-radius:12px;padding:9px 12px;font-weight:900}.trs-empty{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:16px;padding:14px;color:#64748b}.trs-cobros-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.trs-cobros-list{display:grid;gap:10px}.trs-cobro-card{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;border:1px solid #e2e8f0;border-radius:16px;padding:12px;background:#f8fafc}.trs-pack-grid,.trs-plan-grid,.trs-data-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px}.trs-pack-card,.trs-plan-card,.trs-data-card{background:#f8fafc;border:1px solid #dbeafe;border-radius:18px;padding:15px}.trs-pack-card strong{display:block;font-size:24px}.trs-pack-card span,.trs-pack-card small{display:block;color:#475569;margin-top:5px}.trs-pack-card.expired{opacity:.58}.trs-contact-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:18px;padding:16px;margin-top:16px}.trs-modify-box{background:#f8fafc;border:1px solid #cbd5e1;border-radius:20px;padding:16px;margin-top:12px;grid-column:1\/-1}.trs-modify-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.trs-modify-controls{display:grid;grid-template-columns:190px 160px 1fr;gap:12px;align-items:end;margin:12px 0}.trs-modify-days{display:flex;gap:8px;overflow-x:auto;padding:6px 0;margin:6px 0}.trs-modify-day{background:#fff!important;color:#0f172a!important;border:1px solid #cbd5e1!important;min-width:72px;padding:9px 11px!important;border-radius:13px!important}.trs-modify-day.active{background:#0f172a!important;color:#fff!important}.trs-modify-slots{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;margin-top:10px}.trs-modify-slots button{background:#fff!important;color:#0f172a!important;border:1px solid #cbd5e1!important;padding:10px 12px}.trs-modify-slots button:hover{border-color:#007AFD!important;color:#007AFD!important}@media(max-width:900px){.trs-client-portal{margin:12px auto}.trs-portal-shell{grid-template-columns:1fr}.trs-portal-side{position:relative;top:auto;display:flex;overflow-x:auto}.trs-portal-side button{white-space:nowrap}.trs-portal-kpis,.trs-cobros-layout,.trs-pack-grid,.trs-plan-grid,.trs-data-grid{grid-template-columns:1fr}.trs-panel-title{display:block}.trs-client-portal .card{padding:18px;border-radius:20px}.trs-client-portal h2{font-size:30px}.trs-client-portal input{width:100%}.trs-client-portal .row button{width:100%}.trs-cobro-card,.trs-res-card{grid-template-columns:1fr}.trs-cobro-card .trs-link-btn{display:block;text-align:center}.trs-modify-controls{grid-template-columns:1fr}.trs-modify-slots{grid-template-columns:1fr 1fr}}\/* ============================================================\n   PORTAL CLIENTE - HISTORIAL DE PAGOS M\u00c1S SUAVE\n   Pegar al final del CSS p\u00fablico del portal\n   ============================================================ *\/\n\n.trs-panel-section .trs-cobros-layout .trs-history-list .trs-cobro-card {\n    background: #f9fbfd !important;\n    border: 1px solid #e6edf5 !important;\n    box-shadow: none !important;\n    padding: 12px 16px !important;\n    min-height: auto !important;\n}\n\n.trs-panel-section .trs-cobros-layout .trs-history-list .trs-cobro-main .trs-mini-label {\n    font-size: 10px !important;\n    font-weight: 650 !important;\n    color: #64748b !important;\n    letter-spacing: .14em !important;\n}\n\n.trs-panel-section .trs-cobros-layout .trs-history-list .trs-cobro-main b {\n    font-size: 14px !important;\n    line-height: 1.32 !important;\n    font-weight: 600 !important;\n    color: #334155 !important;\n    letter-spacing: 0 !important;\n}\n\n.trs-panel-section .trs-cobros-layout .trs-history-list .trs-cobro-main small {\n    font-size: 12px !important;\n    color: #64748b !important;\n}\n\n.trs-panel-section .trs-cobros-layout .trs-history-list .trs-cobro-amount strong {\n    font-size: 15px !important;\n    font-weight: 650 !important;\n    color: #334155 !important;\n}\n\n.trs-panel-section .trs-cobros-layout .trs-history-list .trs-cobro-amount small {\n    font-size: 10px !important;\n    color: #94a3b8 !important;\n}\n\n.trs-panel-section .trs-cobros-layout .trs-history-list .trs-pill {\n    font-size: 11px !important;\n    font-weight: 600 !important;\n    padding: 5px 10px !important;\n    opacity: .78 !important;\n}\n\n.trs-panel-section .trs-cobros-layout .trs-history-list .trs-cobro-action {\n    font-size: 12px !important;\n    color: #94a3b8 !important;\n}\n\n.trs-panel-section .trs-cobros-layout .trs-history-list .trs-cobro-action span,\n.trs-panel-section .trs-cobros-layout .trs-history-list .trs-small {\n    font-size: 12px !important;\n    color: #94a3b8 !important;\n    font-weight: 500 !important;\n}\n\n\/* T\u00edtulo historial menos protagonista *\/\n.trs-panel-section .trs-cobros-layout > div:nth-child(2) h4 {\n    font-size: 17px !important;\n    font-weight: 600 !important;\n    color: #475569 !important;\n    margin-top: 24px !important;\n    margin-bottom: 14px !important;\n}\n            \n                \/* Ajustes v0.4.10: portal m\u00e1s tipo dashboard y modificaci\u00f3n limpia *\/\n                .trs-client-portal{max-width:1680px}.trs-client-portal .card{border-radius:30px}.trs-portal-shell{grid-template-columns:240px minmax(0,1fr)}.trs-portal-side{background:linear-gradient(180deg,#f8fafc,#fff);box-shadow:0 10px 30px rgba(15,23,42,.04)}.trs-portal-side button{border-radius:14px}.trs-panel-section{border-radius:26px}.trs-panel-title h3{letter-spacing:-.02em}.trs-primary-link[data-tab]{border:0}.trs-session-line{display:flex;gap:10px;align-items:center;justify-content:space-between;background:#f8fafc;border:1px solid #e2e8f0;border-radius:18px;padding:10px 12px;margin-bottom:14px;color:#64748b;font-size:13px}.trs-session-line button{padding:8px 10px;font-size:12px;background:#fff!important;color:#0f172a!important;border:1px solid #cbd5e1}.trs-reserve-iframe{width:100%;min-height:1100px;border:0;border-radius:22px;background:#fff}.trs-res-card{grid-template-columns:minmax(240px,1.25fr) minmax(190px,.95fr) minmax(130px,.55fr) minmax(210px,.85fr);background:#fff}.trs-res-company{color:#475569;margin-top:4px}.trs-modify-box{background:linear-gradient(180deg,#f8fbff,#fff);border:1px solid #cbd5e1;border-radius:24px;padding:18px;margin:14px 0 2px;grid-column:1\/-1;box-shadow:0 12px 30px rgba(15,23,42,.05)}.trs-modify-head{align-items:flex-start}.trs-modify-head b{font-size:22px}.trs-modify-controls{grid-template-columns:220px 170px minmax(240px,1fr);background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:12px}.trs-modify-calendar{background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:12px;margin:12px 0}.trs-modify-weekdays,.trs-modify-days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.trs-modify-weekdays span{text-align:center;color:#64748b;font-size:12px;font-weight:900;text-transform:uppercase}.trs-modify-day{min-width:0!important;width:100%;aspect-ratio:1.35\/1;background:#fff!important;color:#0f172a!important;border:1px solid #dbe3ea!important;padding:7px!important;border-radius:13px!important;text-align:center}.trs-modify-day.empty{visibility:hidden}.trs-modify-day.active{background:#0f172a!important;color:#fff!important}.trs-modify-slots{grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px}.trs-modify-payment-note{background:#fff7ed;border:1px solid #fed7aa;color:#92400e;border-radius:16px;padding:12px;margin-top:12px}.trs-plan-card p{margin:.55em 0}.trs-plan-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.trs-plan-meta span{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:8px}.trs-login-help{color:#64748b;font-size:13px;margin-top:8px}.trs-login-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(210px,.7fr) auto;gap:10px;align-items:center}.trs-login-grid input{width:100%!important;min-width:0!important}\n                @media(max-width:900px){.trs-client-portal{margin:8px auto}.trs-client-portal .card{border-radius:22px;padding:16px}.trs-login-grid{grid-template-columns:1fr}.trs-portal-shell{grid-template-columns:1fr}.trs-portal-side{display:flex;overflow-x:auto;position:relative}.trs-res-card{grid-template-columns:1fr}.trs-action-stack button{flex:1}.trs-modify-controls{grid-template-columns:1fr}.trs-modify-weekdays,.trs-modify-days{gap:5px}.trs-modify-day{border-radius:10px;padding:5px!important}.trs-modify-slots{grid-template-columns:1fr}.trs-reserve-iframe{min-height:1250px}.trs-session-line{display:block}.trs-session-line button{margin-top:8px;width:100%}.trs-plan-meta{grid-template-columns:1fr}.trs-portal-kpis{grid-template-columns:1fr!important}}\n\n                \/* Ajustes v0.4.11 *\/\n                .trs-portal-side button[data-tab=\"packs\"]{display:none!important}.trs-pack-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;background:linear-gradient(135deg,#eff6ff,#fff);border:1px solid #bfdbfe;border-radius:18px;padding:14px 16px;margin:0 0 14px}.trs-pack-summary span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#64748b;font-weight:900}.trs-pack-summary strong{font-size:22px;color:#0f172a}.trs-pack-summary small{color:#475569}.trs-cobro-card{grid-template-columns:minmax(260px,1fr) minmax(160px,.45fr) minmax(95px,.25fr);background:#fff;border-color:#dbeafe}.trs-cobro-main b{display:block;font-size:17px}.trs-cobro-main small{display:block;color:#64748b;margin-top:4px}.trs-cobro-amount{text-align:right}.trs-cobro-amount strong{display:block;font-size:20px;margin-bottom:8px}.trs-cobro-action{text-align:right}.trs-plan-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.trs-plan-card{background:#fff}.trs-contact-form .row{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px}.trs-contact-form input,.trs-contact-form textarea{width:100%!important}.trs-modify-box{max-width:100%;overflow:hidden}.trs-modify-controls{grid-template-columns:180px 130px minmax(240px,1fr)}.trs-modify-slots{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.trs-modify-day{font-size:13px!important}.trs-reserve-iframe{min-height:980px}\n                @media(max-width:900px){.trs-pack-summary{display:block}.trs-pack-summary strong,.trs-pack-summary small{display:block;margin-top:5px}.trs-cobro-card{grid-template-columns:1fr}.trs-cobro-amount,.trs-cobro-action{text-align:left}.trs-contact-form .row{grid-template-columns:1fr}.trs-plan-grid{grid-template-columns:1fr}.trs-modify-box{padding:12px}.trs-modify-controls{grid-template-columns:1fr}.trs-reserve-iframe{min-height:1180px}}\n\n                \/* Ajustes v0.4.12: portal centrado, acceso por correo o WhatsApp y cobros m\u00e1s limpios *\/\n                .trs-client-portal{max-width:1320px!important;margin:28px auto!important;padding:0 18px!important}.trs-client-portal .card{max-width:1280px;margin-left:auto!important;margin-right:auto!important}.trs-client-portal .login-card{max-width:1120px!important}.trs-login-grid{grid-template-columns:minmax(280px,1.1fr) minmax(240px,.8fr) 210px!important;gap:14px!important}.trs-login-grid button{height:54px;white-space:nowrap}.trs-login-help{margin-top:12px!important}.trs-portal-shell{grid-template-columns:220px minmax(0,1fr)!important;align-items:start}.trs-portal-main{min-width:0}.trs-panel-section{padding:24px!important;overflow:hidden}.trs-panel-title h3{font-size:34px!important}.trs-month-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:18px;padding:10px 12px;margin:0 0 14px}.trs-month-nav strong{text-transform:capitalize}.trs-cobros-layout{display:grid!important;grid-template-columns:1fr!important;gap:22px!important}.trs-cobro-card{display:grid!important;grid-template-columns:minmax(280px,1fr) 130px 170px 110px!important;gap:14px!important;align-items:center!important;background:#fff!important;border:1px solid #dbeafe!important;border-radius:18px!important;padding:16px!important;box-shadow:0 8px 24px rgba(15,23,42,.035)}.trs-cobro-main b{font-size:16px!important;line-height:1.35!important}.trs-cobro-main small{display:block;color:#64748b;margin-top:6px}.trs-cobro-amount{text-align:right}.trs-cobro-amount strong{font-size:20px}.trs-cobro-action{text-align:right}.trs-cobro-action .trs-link-btn{min-width:88px;text-align:center}.trs-history-list{max-height:360px;overflow:auto;padding-right:4px}.trs-plan-grid{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))!important}.trs-plan-card{padding:20px!important;border-radius:22px!important;background:#fff!important;box-shadow:0 10px 26px rgba(15,23,42,.035)}.trs-contact-form{max-width:1000px}.trs-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:12px}.trs-contact-grid textarea{grid-column:1\/-1;min-height:110px}.trs-contact-form button{margin-top:14px}.trs-res-card{box-shadow:0 8px 24px rgba(15,23,42,.035)}#trsp-code-box .row{display:grid;grid-template-columns:minmax(260px,1fr) 180px;max-width:720px}#trsp-code-box input{width:100%!important}#trsp-code-box button{height:54px}.trs-client-portal .alert{font-size:15px}\n                @media(max-width:900px){.trs-client-portal{padding:0 10px!important;margin:10px auto!important}.trs-client-portal .card{padding:18px!important}.trs-login-grid{grid-template-columns:1fr!important}.trs-login-grid button{width:100%}.trs-portal-shell{grid-template-columns:1fr!important}.trs-portal-side{order:-1;width:100%;display:flex;gap:8px;overflow-x:auto}.trs-portal-side button{min-width:max-content}.trs-panel-title h3{font-size:28px!important}.trs-month-nav{display:grid;grid-template-columns:1fr;align-items:stretch}.trs-cobro-card{grid-template-columns:1fr!important}.trs-cobro-amount,.trs-cobro-action{text-align:left}.trs-cobro-action .trs-link-btn{display:block;width:100%}.trs-plan-grid,.trs-contact-grid{grid-template-columns:1fr!important}.trs-reserve-iframe{min-height:1200px}.trs-client-portal h2{font-size:32px!important}#trsp-code-box .row{grid-template-columns:1fr}.trs-month-nav button{width:100%}}\n\n                \/* Ajustes v0.4.13: acceso simple, textos breves y selector de modificaci\u00f3n horizontal *\/\n                .trs-client-portal{max-width:1180px!important;margin:24px auto!important}.trs-client-portal .card{border-radius:24px!important}.trs-client-portal .login-card{max-width:1000px!important}.trs-client-portal .login-card p{max-width:820px!important;color:#475569!important}.trs-login-grid{grid-template-columns:minmax(280px,1fr) 210px!important;gap:14px!important;max-width:860px!important}.trs-login-grid input{width:100%!important}.trs-login-grid button{height:54px!important}.trs-login-help{font-size:13px!important;color:#64748b!important}.trs-portal-shell{grid-template-columns:210px minmax(0,1fr)!important}.trs-panel-section{padding:22px!important;border-radius:22px!important}.trs-panel-title h3{font-size:30px!important}.trs-modify-box{padding:16px!important;border-radius:20px!important}.trs-modify-head b{font-size:20px!important}.trs-modify-head p{margin:.4em 0 0!important;color:#64748b!important;line-height:1.45!important}.trs-modify-controls{display:grid!important;grid-template-columns:190px 120px minmax(260px,1fr)!important;gap:12px!important;background:#fff!important;border:1px solid #e2e8f0!important;border-radius:16px!important;padding:12px!important;align-items:end!important}.trs-modify-calendar{background:transparent!important;border:0!important;padding:0!important;margin:12px 0!important}.trs-modify-weekdays{display:none!important}.trs-modify-days{display:flex!important;grid-template-columns:none!important;gap:8px!important;overflow-x:auto!important;padding:4px 0 8px!important}.trs-modify-day{min-width:94px!important;width:auto!important;aspect-ratio:auto!important;padding:11px 13px!important;border-radius:16px!important;background:#fff!important;border:1px solid #cbd5e1!important;color:#0f172a!important;box-shadow:none!important}.trs-modify-day b{display:block!important;font-size:18px!important}.trs-modify-day small{display:block!important;color:#64748b!important;text-transform:capitalize!important}.trs-modify-day.active{background:#0f172a!important;color:#fff!important;border-color:#0f172a!important}.trs-modify-day.active small{color:#cbd5e1!important}.trs-modify-day.empty{display:none!important}.trs-modify-slots{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;gap:10px!important}.trs-modify-slots button{border-radius:14px!important}.trs-session-line span{font-size:13px!important}.trs-cobros-layout{grid-template-columns:1fr!important}.trs-cobro-card{border-radius:16px!important}.trs-contact-form{max-width:900px!important}.trs-contact-grid{grid-template-columns:repeat(2,minmax(220px,1fr))!important}.trs-contact-grid textarea{grid-column:1\/-1!important}.trs-contact-form button{width:auto!important;min-width:180px!important}\n                @media(max-width:900px){.trs-client-portal{max-width:100%!important;margin:10px auto!important;padding:0 10px!important}.trs-login-grid{grid-template-columns:1fr!important;max-width:none!important}.trs-login-grid button{width:100%!important}.trs-portal-shell{grid-template-columns:1fr!important}.trs-panel-title h3{font-size:28px!important}.trs-modify-controls{grid-template-columns:1fr!important}.trs-modify-day{min-width:82px!important}.trs-modify-slots{grid-template-columns:1fr 1fr!important}.trs-contact-grid{grid-template-columns:1fr!important}.trs-contact-form button{width:100%!important}.trs-client-portal .login-card p{font-size:16px!important}.trs-client-portal h2{font-size:34px!important}}\n\n\n                \/* Ajustes v0.4.14: portal m\u00e1s minimalista y modificaci\u00f3n estable *\/\n                .trs-client-portal{max-width:1240px!important;margin:22px auto!important;padding:0 18px!important;color:#111827!important}\n                .trs-client-portal .card{border-radius:28px!important;border-color:#e5e7eb!important;box-shadow:0 18px 44px rgba(15,23,42,.06)!important;background:rgba(255,255,255,.98)!important}\n                .trs-client-portal h2{font-size:34px!important;letter-spacing:-.035em!important;margin-bottom:10px!important}\n                .trs-client-portal h3{letter-spacing:-.035em!important}\n                .trs-client-portal .login-card p{font-size:16px!important;line-height:1.45!important;margin-bottom:18px!important;color:#64748b!important}\n                .trs-login-grid{grid-template-columns:minmax(280px,1fr) 170px!important;max-width:760px!important;align-items:center!important}\n                .trs-login-grid button{height:52px!important;border-radius:16px!important;letter-spacing:.01em!important}\n                #trsp-code-box .row{display:grid!important;grid-template-columns:minmax(240px,1fr) 150px!important;gap:12px!important;max-width:650px!important;align-items:center!important}\n                #trsp-code-box input,#trsp-code-box button{height:52px!important;border-radius:16px!important}\n                .trs-portal-side{position:sticky!important;top:92px!important;border-radius:22px!important;background:#fff!important;border-color:#e5e7eb!important;box-shadow:0 14px 34px rgba(15,23,42,.055)!important;z-index:1!important}\n                .trs-portal-side button{padding:13px 14px!important;font-size:15px!important;line-height:1.25!important;border-radius:16px!important}\n                .trs-portal-side button.active{background:#071123!important;box-shadow:0 0 0 2px rgba(0,122,253,.22)!important}\n                .trs-panel-section{border-color:#e5e7eb!important;background:#fff!important}\n                .trs-panel-title{align-items:flex-start!important}.trs-panel-title p{font-size:15px!important;color:#64748b!important}\n                .trs-res-card,.trs-cobro-card,.trs-plan-card,.trs-data-card,.trs-contact-form{border-color:#e5e7eb!important;background:#fff!important;box-shadow:0 8px 24px rgba(15,23,42,.035)!important}\n                .trs-modify-box{background:#fff!important;border:1px solid #e5e7eb!important;border-radius:24px!important;padding:18px!important;box-shadow:0 16px 40px rgba(15,23,42,.07)!important;overflow:hidden!important}\n                .trs-modify-head{margin-bottom:12px!important}.trs-modify-head b{font-size:20px!important;letter-spacing:-.02em!important}.trs-modify-head p{font-size:14px!important;margin:3px 0 0!important}\n                .trs-modify-controls{display:grid!important;grid-template-columns:190px 115px minmax(0,1fr)!important;gap:12px!important;background:#f8fafc!important;border:1px solid #e5e7eb!important;border-radius:18px!important;padding:12px!important}\n                .trs-modify-controls .trs-modify-spacer{display:none!important}\n                .trs-modify-calendar{margin:12px 0!important;padding:0!important;background:transparent!important;border:0!important}\n                .trs-modify-strip-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;margin:4px 0 10px!important}\n                .trs-modify-strip-head strong{font-size:15px!important;text-transform:capitalize!important;color:#334155!important;letter-spacing:.01em!important}\n                .trs-modify-strip-head button{width:40px!important;height:40px!important;padding:0!important;border-radius:14px!important;background:#f8fafc!important;color:#0f172a!important;border:1px solid #cbd5e1!important}\n                .trs-modify-strip-head button:disabled{opacity:.35!important;cursor:not-allowed!important}\n                .trs-modify-days{display:flex!important;gap:8px!important;overflow-x:auto!important;padding:2px 0 10px!important;scrollbar-width:thin!important}\n                .trs-modify-day{min-width:78px!important;width:auto!important;aspect-ratio:auto!important;border-radius:16px!important;padding:10px 12px!important;background:#fff!important;border:1px solid #dbe3ea!important;color:#0f172a!important;text-align:center!important;flex:0 0 auto!important}\n                .trs-modify-day small{display:block!important;font-size:12px!important;color:#64748b!important;text-transform:capitalize!important;line-height:1!important}.trs-modify-day b{display:block!important;font-size:18px!important;line-height:1.15!important;margin-top:3px!important}\n                .trs-modify-day.active{min-width:96px!important;background:#071123!important;color:#fff!important;border-color:#071123!important}.trs-modify-day.active small{color:#cbd5e1!important}.trs-modify-day.active b{font-size:25px!important}\n                .trs-modify-slots{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important;margin-top:8px!important}\n                .trs-modify-slots button{border-radius:16px!important;background:#fff!important;color:#111827!important;border:1px solid #dbe3ea!important}\n                @media(max-width:900px){.trs-client-portal{padding:0 10px!important;margin:10px auto!important}.trs-client-portal .card{border-radius:22px!important;padding:18px!important}.trs-login-grid,#trsp-code-box .row{grid-template-columns:1fr!important;max-width:none!important}.trs-login-grid button,#trsp-code-box button{width:100%!important}.trs-portal-side{position:relative!important;top:auto!important;display:flex!important;overflow-x:auto!important;gap:8px!important}.trs-portal-side button{min-width:max-content!important}.trs-modify-controls{grid-template-columns:1fr!important}.trs-modify-day{min-width:72px!important}.trs-modify-day.active{min-width:88px!important}.trs-modify-slots{grid-template-columns:1fr!important}}\n\n\n\n                \/* Ajustes v0.4.16: portal m\u00e1s sobrio y liviano *\/\n                .trs-client-portal .login-card{max-width:980px!important}.trs-client-portal .login-card h2{font-size:29px!important;color:#0f172a!important}.trs-client-portal .login-card p{max-width:760px!important}.trs-login-grid{grid-template-columns:minmax(280px,1fr) 190px!important;max-width:780px!important}.trs-login-grid button{min-height:44px!important}.trs-portal-kpis{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))!important}.trs-portal-kpi{background:#f8fbff!important;border:1px solid #bfdbfe!important}.trs-portal-kpi strong,.trs-plan-card h4,.trs-data-card b{color:#007AFD!important}.trs-portal-kpi small{font-size:12.5px!important;line-height:1.45!important}.trs-panel-section h3{font-size:25px!important;font-weight:730!important}.trs-cobro-card,.trs-plan-card,.trs-data-card{background:#f8fbff!important;border:1px solid #dbeafe!important}.trs-cobro-card{grid-template-columns:minmax(300px,1fr) 120px 150px 110px!important}.trs-cobro-main b{font-size:15px!important;line-height:1.35!important}.trs-cobro-amount strong{font-size:18px!important}.trs-plan-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))!important}.trs-plan-card p,.trs-data-card p{font-size:14px!important;line-height:1.45!important}.trs-contact-form h4{font-size:18px!important}.trs-contact-form p{font-size:13.5px!important}.trs-pack-summary{background:#f8fbff!important;border-color:#dbeafe!important}.trs-res-filterbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0}.trs-res-filterbar button{background:#fff!important;color:#475569!important;border:1px solid #dbe3ea!important;padding:8px 10px!important;border-radius:999px!important;font-size:13px!important}.trs-res-filterbar button.active{background:#007AFD!important;color:#fff!important;border-color:#007AFD!important}.trs-res-card{background:#fff!important}.trs-res-card[data-status=\"expirada\"]{opacity:.82}.trs-res-card[data-status=\"expirada\"] .trs-pill{background:#e5e7eb!important;color:#475569!important}.trs-panel-title p{font-size:14px!important}.trs-section-label{font-size:10.5px!important}.trs-res-card b{font-weight:730!important}\n\n                \/* Ajustes v0.4.15: portal m\u00e1s minimalista, compacto y estable como p\u00e1gina *\/\n                .trs-client-portal{max-width:1180px!important;margin:18px auto!important;padding:0 14px!important;color:#111827!important;font-size:15px!important}\n                .trs-client-portal .card{border-radius:22px!important;padding:20px!important;border-color:#e7edf3!important;box-shadow:0 12px 30px rgba(15,23,42,.045)!important;background:#fff!important}\n                .trs-client-portal .login-card{max-width:1040px!important}\n                .trs-client-portal h2{font-size:31px!important;line-height:1.08!important;font-weight:760!important;letter-spacing:-.035em!important;margin-bottom:9px!important}\n                .trs-client-portal h3{font-size:25px!important;font-weight:760!important;letter-spacing:-.03em!important}.trs-client-portal h4{font-size:16px!important;font-weight:750!important}\n                .trs-client-portal p,.trs-panel-title p,.trs-login-help,.trs-session-line{font-size:14px!important;line-height:1.42!important;color:#64748b!important}\n                .trs-client-portal b,.trs-client-portal strong{font-weight:760!important}.trs-mini-label,.trs-section-label{letter-spacing:.1em!important;font-size:11px!important;color:#64748b!important;font-weight:760!important}\n                .trs-client-portal input,.trs-client-portal select,.trs-client-portal textarea{border-radius:12px!important;min-height:42px!important;padding:10px 12px!important;font-size:15px!important;border-color:#d6dee8!important;background:#fff!important}\n                .trs-client-portal button,.trs-primary-link,.trs-link-btn{border-radius:12px!important;padding:10px 14px!important;font-weight:760!important;box-shadow:none!important}\n                .trs-login-grid{grid-template-columns:minmax(280px,1fr) 150px!important;gap:10px!important;max-width:760px!important}.trs-login-grid button{height:46px!important}\n                #trsp-code-box{margin-top:10px!important}#trsp-code-box .row{grid-template-columns:minmax(260px,1fr) 130px!important;gap:10px!important;max-width:620px!important}#trsp-code-box input,#trsp-code-box button{height:46px!important}\n                .trs-portal-shell{grid-template-columns:190px minmax(0,1fr)!important;gap:14px!important;align-items:start!important}\n                .trs-portal-side{position:sticky!important;top:116px!important;max-height:calc(100vh - 136px)!important;overflow:auto!important;border-radius:18px!important;padding:8px!important;background:#fff!important;border-color:#e7edf3!important;box-shadow:0 8px 22px rgba(15,23,42,.045)!important;z-index:2!important}\n                .trs-portal-side button{font-size:14px!important;line-height:1.18!important;padding:10px 11px!important;border-radius:12px!important;font-weight:730!important;color:#334155!important;background:transparent!important}\n                .trs-portal-side button.active{background:#0b1220!important;color:#fff!important;border-color:#0b1220!important;box-shadow:none!important}\n                .trs-session-line{padding:8px 10px!important;border-radius:14px!important;margin-bottom:12px!important}.trs-session-line button{font-size:12px!important;padding:7px 10px!important}\n                .trs-portal-kpis{gap:10px!important;margin-bottom:12px!important}.trs-portal-kpi{border-radius:16px!important;padding:13px!important;background:#f8fbff!important}.trs-portal-kpi strong{font-size:18px!important;font-weight:750!important}.trs-portal-kpi small{font-size:13px!important}\n                .trs-panel-section{border-radius:20px!important;padding:18px!important;margin-top:10px!important;border-color:#e7edf3!important;background:#fff!important;box-shadow:0 8px 24px rgba(15,23,42,.025)!important}\n                .trs-panel-title{margin-bottom:14px!important;align-items:center!important}.trs-panel-title h3{font-size:28px!important}\n                .trs-res-card,.trs-cobro-card,.trs-plan-card,.trs-data-card,.trs-contact-form{border-radius:17px!important;padding:14px!important;border-color:#e7edf3!important;background:#fff!important;box-shadow:none!important}\n                .trs-cobro-card{grid-template-columns:minmax(280px,1fr) 105px 150px 92px!important}.trs-cobro-main b{font-size:15px!important;line-height:1.35!important}.trs-cobro-amount strong{font-size:18px!important}\n                .trs-plan-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))!important}.trs-plan-card p{font-size:15px!important;margin:.45em 0!important}.trs-plan-meta span{border-radius:12px!important;padding:8px 10px!important}\n                .trs-contact-form{max-width:900px!important}.trs-contact-grid{gap:10px!important}.trs-contact-grid textarea{min-height:96px!important}.trs-contact-form button{min-width:150px!important}\n                .trs-alert,.trs-client-portal .alert,.trs-empty{border-radius:14px!important;padding:10px 12px!important;font-size:14px!important}\n                .trs-modify-box{border-radius:20px!important;padding:16px!important;margin:12px 0!important;box-shadow:0 10px 26px rgba(15,23,42,.045)!important;background:#fff!important}\n                .trs-modify-head{margin-bottom:10px!important}.trs-modify-head b{font-size:19px!important}.trs-modify-head p{font-size:14px!important}\n                .trs-modify-controls{grid-template-columns:170px 105px minmax(0,1fr)!important;padding:10px!important;border-radius:15px!important;background:#f8fafc!important}.trs-modify-controls label{font-size:14px!important;font-weight:700!important}.trs-modify-controls input{min-height:40px!important}\n                .trs-modify-strip-head{margin:2px 0 8px!important}.trs-modify-strip-head strong{font-size:14px!important}.trs-modify-strip-head button{width:36px!important;height:36px!important;border-radius:12px!important}\n                .trs-modify-days{gap:7px!important;padding-bottom:8px!important}.trs-modify-day{min-width:68px!important;border-radius:14px!important;padding:8px 10px!important}.trs-modify-day b{font-size:17px!important}.trs-modify-day.active{min-width:84px!important;background:#0b1220!important}.trs-modify-day.active b{font-size:23px!important}\n                .trs-modify-slots{gap:8px!important}.trs-modify-slots button{padding:10px 12px!important;border-radius:14px!important;font-size:15px!important}\n                .trs-reserve-iframe{border-radius:18px!important;min-height:900px!important}\n                @media(max-width:900px){.trs-client-portal{max-width:100%!important;margin:8px auto!important;padding:0 8px!important}.trs-client-portal .card{padding:15px!important;border-radius:18px!important}.trs-client-portal h2{font-size:28px!important}.trs-login-grid,#trsp-code-box .row{grid-template-columns:1fr!important;max-width:none!important}.trs-login-grid button,#trsp-code-box button{width:100%!important}.trs-portal-shell{grid-template-columns:1fr!important}.trs-portal-side{position:relative!important;top:auto!important;max-height:none!important;display:flex!important;gap:7px!important;overflow-x:auto!important;padding:7px!important}.trs-portal-side button{min-width:max-content!important;font-size:13px!important;padding:9px 10px!important}.trs-panel-section{padding:15px!important}.trs-panel-title{display:block!important}.trs-panel-title h3{font-size:24px!important}.trs-res-card,.trs-cobro-card{grid-template-columns:1fr!important}.trs-action-stack button{flex:1 1 140px!important}.trs-cobro-amount,.trs-cobro-action{text-align:left!important}.trs-cobro-action .trs-link-btn{width:100%!important}.trs-plan-grid,.trs-contact-grid{grid-template-columns:1fr!important}.trs-modify-controls{grid-template-columns:1fr!important}.trs-modify-day{min-width:64px!important}.trs-modify-day.active{min-width:78px!important}.trs-modify-slots{grid-template-columns:1fr!important}.trs-reserve-iframe{min-height:1120px!important}}\n                \/* v0.4.17 refinamientos visuales y flujo operativo *\/\n                .trs-client-portal{max-width:1240px!important;margin-left:auto!important;margin-right:auto!important}\n                .trs-client-portal .login-card{max-width:980px!important;padding:24px!important}\n                .trs-client-portal .login-card h2{font-size:30px!important;font-weight:760!important;letter-spacing:-.025em!important;color:#111827!important}\n                .trs-client-portal .login-card>p{max-width:760px!important;font-size:14px!important;color:#64748b!important}\n                .trs-login-grid{grid-template-columns:minmax(280px,1fr) 132px!important;max-width:780px!important}\n                #trsp-code-box{margin-top:14px!important;max-width:620px!important;background:#f8fbff!important;border:1px solid #dbeafe!important;border-radius:16px!important;padding:12px!important}\n                #trsp-code-box .trs-code-label{display:block!important;font-size:12px!important;letter-spacing:.08em!important;text-transform:uppercase!important;color:#64748b!important;font-weight:760!important;margin-bottom:7px!important}\n                #trsp-code-box .row{grid-template-columns:minmax(220px,1fr) 112px!important;gap:10px!important;max-width:none!important}\n                #trsp-code{font-size:18px!important;letter-spacing:.08em!important;text-align:center!important;font-weight:700!important}\n                #trsp-verify{background:#0b1220!important;color:#fff!important}\n                .trs-panel-title h3{font-size:24px!important;font-weight:760!important;color:#111827!important}\n                .trs-panel-title p,.trs-cobros-layout h4,.trs-client-portal p{font-weight:400!important}\n                .trs-cobros-layout h4{font-size:18px!important;color:#111827!important;margin:12px 0!important}\n                .trs-cobro-card{background:#f8fbff!important;border-color:#dbeafe!important;grid-template-columns:minmax(250px,1fr) 110px 140px 86px!important}\n                .trs-cobro-card.bad{background:#fff7f7!important;border-color:#fecaca!important}\n                .trs-cobro-main b{font-size:14px!important;font-weight:730!important;letter-spacing:.01em!important;color:#111827!important;text-transform:none!important}\n                .trs-cobro-breakdown{color:#64748b!important;font-size:12px!important;margin-top:4px!important}\n                .trs-cobro-amount strong{font-size:18px!important;font-weight:760!important;color:#111827!important}.trs-cobro-amount small{display:block;color:#64748b;font-size:11px}\n                .trs-plan-card,.trs-data-card,.trs-contact-form,.trs-res-card{background:#f8fbff!important;border-color:#dbeafe!important}\n                .trs-plan-card h4,.trs-data-card h4{font-size:16px!important;font-weight:760!important;color:#111827!important}\n                .trs-portal-kpi strong{color:#007AFD!important}\n                .trs-res-card .trs-pill.ok{background:#dcfce7!important;color:#166534!important}.trs-res-card .trs-pill.bad{background:#fee2e2!important;color:#991b1b!important}.trs-res-card .trs-pill.muted{background:#e5e7eb!important;color:#374151!important}\n                .trs-res-filterbar{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 14px}.trs-res-filterbar button{border:1px solid #cbd5e1;background:#fff;color:#334155}.trs-res-filterbar button.active{background:#007AFD!important;color:#fff!important;border-color:#007AFD!important}\n                .trs-cal-rep{display:block!important;color:#475569!important;font-size:11px!important;margin-top:2px!important}\n                \/* v0.4.23 ajustes finales producci\u00f3n *\/\n                #trsp-code-box{max-width:430px!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important}\n                #trsp-code-box .row{display:grid!important;grid-template-columns:210px 110px!important;justify-content:center!important;gap:10px!important;max-width:340px!important;margin:0 auto!important}\n                #trsp-code{max-width:210px!important;font-size:18px!important;letter-spacing:.20em!important;text-align:center!important;padding-left:20px!important}\n                #trsp-verify{max-width:110px!important;min-width:0!important;padding-left:10px!important;padding-right:10px!important}\n                .trs-modify-days{display:grid!important;grid-template-columns:repeat(7,minmax(58px,1fr))!important;gap:8px!important;overflow:visible!important;padding-bottom:8px!important}\n                .trs-modify-day{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;min-width:0!important;min-height:58px!important;color:#0f172a!important;background:#fff!important;border:1px solid #dbe3ea!important}\n                .trs-modify-day small,.trs-modify-day b{display:block!important;visibility:visible!important;opacity:1!important;color:inherit!important;line-height:1.05!important}\n                .trs-modify-day small{font-size:11px!important;font-weight:700!important;color:#64748b!important}.trs-modify-day b{font-size:18px!important;font-weight:850!important}.trs-modify-day.active{background:#0b1220!important;color:#fff!important}.trs-modify-day.active small{color:#cbd5e1!important}.trs-modify-day.active b{font-size:24px!important}\n                @media(max-width:900px){.trs-client-portal .login-card{padding:18px!important}.trs-login-grid{grid-template-columns:1fr!important}#trsp-code-box .row{grid-template-columns:1fr!important;max-width:240px!important}#trsp-code,#trsp-verify{max-width:240px!important;width:100%!important}.trs-cobro-card{grid-template-columns:1fr!important}.trs-client-portal .login-card h2{font-size:26px!important}.trs-modify-days{grid-template-columns:repeat(7,minmax(40px,1fr))!important;gap:5px!important}.trs-modify-day{min-height:48px!important;padding:6px 3px!important}.trs-modify-day small{font-size:9px!important}.trs-modify-day b{font-size:14px!important}.trs-modify-day.active b{font-size:18px!important}}\n\n            \n                \/* Ajustes v0.4.18: centrado fino, tipograf\u00eda uniforme y modificaci\u00f3n por reglas *\/\n                .trs-client-portal .login-card{max-width:880px!important;margin-left:auto!important;margin-right:auto!important;text-align:center!important}\n                .trs-client-portal .login-card h2{font-size:28px!important;font-weight:760!important;color:#111827!important}\n                .trs-client-portal .login-card>p{margin-left:auto!important;margin-right:auto!important;font-size:14px!important;line-height:1.45!important;max-width:720px!important}\n                .trs-login-grid{max-width:760px!important;margin:0 auto!important;grid-template-columns:minmax(260px,1fr) 150px!important;gap:10px!important}\n                #trsp-send{min-height:44px!important;height:44px!important;padding:9px 16px!important;border-radius:12px!important;font-size:14px!important}\n                #trsp-code-box{max-width:480px!important;margin:14px auto 0!important;text-align:center!important;background:#f8fbff!important;border:1px solid #dbeafe!important;border-radius:16px!important;padding:12px!important}\n                #trsp-code-box .trs-code-label{font-size:11px!important;letter-spacing:.12em!important;color:#64748b!important;margin-bottom:7px!important}\n                #trsp-code-box .row{display:grid!important;grid-template-columns:220px 110px!important;justify-content:center!important;align-items:center!important;gap:9px!important;max-width:none!important}\n                #trsp-code{height:44px!important;font-size:20px!important;letter-spacing:.16em!important;text-align:center!important;font-weight:800!important;border-radius:12px!important;padding:8px 10px!important}\n                #trsp-verify{height:44px!important;background:#0f172a!important;border-radius:12px!important;padding:8px 14px!important;font-size:14px!important}\n                .trs-panel-section h3,.trs-panel-title h3{font-size:24px!important;font-weight:740!important;color:#111827!important}\n                .trs-cobros-layout h4{font-size:16px!important;font-weight:700!important;color:#111827!important}\n                .trs-plan-card h4,.trs-cobro-main .trs-mini-label{color:#007AFD!important}.trs-plan-card h4,.trs-cobro-card b{font-size:17px!important;font-weight:740!important}.trs-cobro-card,.trs-plan-card{background:#eff6ff!important;border-color:#bfdbfe!important}.trs-cobro-card.bad{background:#fff1f2!important;border-color:#fecaca!important}\n                .trs-modify-strip-head{display:grid!important;grid-template-columns:44px 1fr 44px!important;align-items:center!important;gap:10px!important;margin:12px 0!important}.trs-modify-strip-head strong{text-align:center!important;font-size:17px!important;color:#475569!important}.trs-modify-strip-head button{background:#fff!important;color:#0f172a!important;border:1px solid #cbd5e1!important;border-radius:12px!important;min-height:42px!important;padding:6px 10px!important}.trs-modify-days{display:grid!important;grid-template-columns:repeat(7,minmax(72px,1fr))!important;gap:8px!important;overflow:visible!important}.trs-modify-day{min-width:0!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;min-height:62px!important}.trs-modify-day small{font-size:12px!important;color:inherit!important;opacity:.78!important;text-transform:capitalize!important}.trs-modify-day b{font-size:18px!important}.trs-modify-day.active b{font-size:24px!important}\n                @media(max-width:700px){.trs-client-portal .login-card{text-align:left!important}.trs-login-grid,#trsp-code-box .row{grid-template-columns:1fr!important;max-width:none!important}.trs-modify-days{grid-template-columns:repeat(7,minmax(44px,1fr))!important;gap:5px!important}.trs-modify-day{min-height:52px!important;padding:7px 3px!important}.trs-modify-day small{font-size:10px!important}.trs-modify-day b{font-size:15px!important}.trs-modify-day.active b{font-size:20px!important}}\n\n\n                \/* Ajustes v0.4.21: producci\u00f3n, sin embed y acceso compacto *\/\n                .trs-client-portal .login-card{max-width:820px!important;text-align:center!important}\n                .trs-login-grid{grid-template-columns:minmax(260px,1fr) 150px!important;max-width:640px!important;margin:0 auto!important}\n                #trsp-send:disabled,#trs-send-code:disabled{background:#e5e7eb!important;color:#64748b!important;border-color:#e5e7eb!important;cursor:not-allowed!important}\n                #trsp-code-box{max-width:420px!important;padding:10px!important;border-radius:15px!important}\n                #trsp-code-box .row{grid-template-columns:190px 96px!important;gap:8px!important}\n                #trsp-code{height:42px!important;font-size:18px!important;letter-spacing:.22em!important;text-align:center!important}\n                #trsp-verify{height:42px!important;padding:8px 12px!important;font-size:13px!important}\n                .trs-portal-side button[data-tab=\"reservar\"]{display:none!important}\n                .trs-reserve-iframe{display:none!important}\n                .trs-pay-card{background:#f8fbff!important;border-color:#bfdbfe!important}\n                .trs-modify-box{border-radius:20px!important;padding:14px!important;background:#fff!important}\n                .trs-modify-controls{grid-template-columns:170px 110px!important;background:#f8fafc!important}\n                .trs-modify-strip-head{grid-template-columns:38px 1fr 38px!important}.trs-modify-strip-head button{width:38px!important;height:38px!important}\n                .trs-modify-days{display:grid!important;grid-template-columns:repeat(7,minmax(58px,1fr))!important;gap:7px!important;overflow:visible!important}\n                .trs-modify-day{min-width:0!important;min-height:54px!important;padding:7px 6px!important;border-radius:13px!important}.trs-modify-day small{font-size:11px!important}.trs-modify-day b{font-size:17px!important}.trs-modify-day.active b{font-size:23px!important}\n                .trs-modify-slots{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))!important}\n                @media(max-width:700px){.trs-client-portal .login-card{text-align:center!important}.trs-login-grid{grid-template-columns:1fr!important}.trs-login-grid button{max-width:180px!important;margin:0 auto!important}.trs-login-help{text-align:center!important}#trsp-code-box .row{grid-template-columns:1fr!important}#trsp-code-box{max-width:310px!important}.trs-modify-days{grid-template-columns:repeat(7,minmax(39px,1fr))!important}.trs-modify-day{min-height:46px!important;padding:6px 2px!important}.trs-modify-day small{font-size:9px!important}.trs-modify-day b{font-size:14px!important}.trs-modify-day.active b{font-size:18px!important}}\n\n\n                \/* Ajustes v0.4.22: \u00faltimos retoques producci\u00f3n *\/\n                .trs-client-portal .login-card{max-width:760px!important;padding:22px!important}\n                #trsp-code-box{max-width:330px!important;padding:9px!important;margin-top:12px!important}\n                #trsp-code-box .row{grid-template-columns:150px 82px!important;gap:7px!important;align-items:center!important;justify-content:center!important}\n                #trsp-code{height:38px!important;min-height:38px!important;font-size:16px!important;letter-spacing:.18em!important;border-radius:11px!important;padding:6px 8px!important}\n                #trsp-verify{height:38px!important;min-height:38px!important;font-size:12px!important;border-radius:11px!important;padding:6px 10px!important;background:#0f172a!important}\n                .trs-kpi-top{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;margin-bottom:4px!important}\n                .trs-status-badge{font-style:normal!important;border-radius:999px!important;padding:3px 9px!important;font-weight:800!important;font-size:11px!important;line-height:1.3!important;white-space:nowrap!important}.trs-status-badge.ok{background:#dcfce7!important;color:#166534!important}.trs-status-badge.bad{background:#fee2e2!important;color:#991b1b!important}\n                .trs-available-hours{color:#007AFD!important;font-weight:900!important}.trs-portal-kpi strong{color:#007AFD!important;font-size:20px!important}.trs-portal-kpi small{font-size:14px!important;line-height:1.45!important}\n                .trs-pack-summary{margin:8px 0 14px!important;background:#f8fbff!important;border:1px solid #bfdbfe!important;border-radius:18px!important;padding:13px 16px!important;display:grid!important;grid-template-columns:auto 170px 1fr!important;align-items:center!important;gap:12px!important}.trs-pack-summary span{font-size:12px!important;letter-spacing:.13em!important;text-transform:uppercase!important;color:#64748b!important;font-weight:900!important}.trs-pack-summary strong{font-size:22px!important;color:#0f172a!important;white-space:nowrap!important}.trs-pack-summary small{font-size:13px!important;color:#64748b!important;text-align:right!important}\n                .trs-modify-day:not(.active){color:#475569!important;background:#fff!important}.trs-modify-day small,.trs-modify-day b{display:block!important;color:inherit!important;visibility:visible!important;opacity:1!important;line-height:1.05!important}.trs-modify-day{flex-direction:column!important;gap:4px!important}.trs-modify-day small{text-transform:capitalize!important;font-weight:650!important}.trs-modify-day b{font-weight:850!important}\n                @media(max-width:700px){#trsp-code-box{max-width:270px!important}#trsp-code-box .row{grid-template-columns:1fr!important}.trs-pack-summary{grid-template-columns:1fr!important;text-align:center!important}.trs-pack-summary small{text-align:center!important}.trs-portal-kpis{grid-template-columns:1fr!important}}\n\/* ============================================================\n   PORTAL CLIENTE - MIS PAQUETES DE HORAS FINAL\n   Este bloque debe ir al final del CSS del client_portal_shortcode\n   ============================================================ *\/\n\n.trs-client-portal .trs-pack-summary.trs-pack-summary-final {\n    display: grid !important;\n    grid-template-columns: minmax(0, 1fr) auto !important;\n    align-items: center !important;\n    gap: 18px !important;\n    margin: 8px 0 14px !important;\n    padding: 13px 16px !important;\n    background: #f8fbff !important;\n    border: 1px solid #bfdbfe !important;\n    border-radius: 18px !important;\n    text-align: left !important;\n}\n\n.trs-client-portal .trs-pack-summary-final .trs-pack-summary-left {\n    display: flex !important;\n    align-items: baseline !important;\n    gap: 8px !important;\n    min-width: 0 !important;\n    white-space: nowrap !important;\n}\n\n.trs-client-portal .trs-pack-summary-final .trs-pack-label {\n    font-size: 12px !important;\n    letter-spacing: .13em !important;\n    text-transform: uppercase !important;\n    color: #64748b !important;\n    font-weight: 900 !important;\n    white-space: nowrap !important;\n}\n\n.trs-client-portal .trs-pack-summary-final .trs-pack-hours {\n    font-size: 16px !important;\n    letter-spacing: 0 !important;\n    text-transform: none !important;\n    color: #007AFD !important;\n    font-weight: 900 !important;\n    white-space: nowrap !important;\n}\n\n.trs-client-portal .trs-pack-summary-final .trs-pack-summary-right {\n    font-size: 14px !important;\n    line-height: 1.25 !important;\n    color: #64748b !important;\n    font-weight: 500 !important;\n    text-align: right !important;\n    white-space: nowrap !important;\n}\n\n@media(max-width:700px){\n    .trs-client-portal .trs-pack-summary.trs-pack-summary-final {\n        grid-template-columns: 1fr !important;\n        gap: 6px !important;\n        text-align: center !important;\n    }\n\n    .trs-client-portal .trs-pack-summary-final .trs-pack-summary-left {\n        justify-content: center !important;\n        flex-wrap: wrap !important;\n        white-space: normal !important;\n    }\n\n    .trs-client-portal .trs-pack-summary-final .trs-pack-summary-right {\n        text-align: center !important;\n        white-space: normal !important;\n        font-size: 14px !important;\n    }\n}\n<\/style>\n            <div class=\"card login-card\" id=\"trsp-login-card\"><h2>Espacio clientes<\/h2><p>Inicia sesi\u00f3n en tu panel tudomicilioenundia para revisar cobros de oficina virtual, detalles de tu plan y gestionar reservas de salas u oficinas.<\/p><div class=\"trs-login-grid\"><input id=\"trsp-email\" type=\"text\" placeholder=\"Correo, WhatsApp o ROL\/RUT\" value=\"\"><button type=\"button\" id=\"trsp-send\">Ingresar<\/button><\/div><div class=\"trs-login-help\">Sesi\u00f3n por 1 hora en este navegador.<\/div><div id=\"trsp-code-box\" class=\"hidden\"><span class=\"trs-code-label\">C\u00f3digo de 6 d\u00edgitos<\/span><div class=\"row\"><input id=\"trsp-code\" inputmode=\"numeric\" maxlength=\"6\" placeholder=\"000000\"><button type=\"button\" id=\"trsp-verify\">Entrar<\/button><\/div><\/div><div id=\"trsp-msg\"><\/div><\/div>\n            <div id=\"trsp-data\" class=\"hidden\"><\/div>\n        <\/div>\n        <script>\n        (function(){\n            const app=document.getElementById('trs-client-portal'); if(!app) return;\n            const ajax=app.dataset.ajax, nonce=app.dataset.nonce;\n            const STORE_TOKEN='trs_portal_token', STORE_EMAIL='trs_portal_email', STORE_EXP='trs_portal_exp';\n            let token='';\n            const qs=s=>app.querySelector(s);\n            function esc(s){return String(s||'').replace(\/[&<>\"']\/g,m=>({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#039;'}[m]));}\n            function showMsg(text,ok){const box=qs('#trsp-msg'); if(box) box.innerHTML='<div class=\"alert '+(ok?'ok':'')+'\">'+esc(text)+'<\/div>';}\n            async function post(action,data){data=data||{}; data.action='trs_'+action; data.nonce=nonce; data._ts=Date.now(); const res=await fetch(ajax+'?trs_nocache='+Date.now(),{method:'POST',credentials:'same-origin',cache:'no-store',headers:{'Content-Type':'application\/x-www-form-urlencoded; charset=UTF-8'},body:new URLSearchParams(data)}); const text=await res.text(); try{return JSON.parse(text);}catch(e){throw new Error('Respuesta no v\u00e1lida del servidor: '+text.slice(0,160));}}\n            function saveSession(email,tok){token=tok; localStorage.setItem(STORE_TOKEN,tok); localStorage.setItem(STORE_EMAIL,email); localStorage.setItem(STORE_EXP,String(Date.now()+60*60*1000));}\n            function readSession(){const exp=parseInt(localStorage.getItem(STORE_EXP)||'0',10); if(exp>Date.now()){token=localStorage.getItem(STORE_TOKEN)||''; const email=localStorage.getItem(STORE_EMAIL)||''; if(qs('#trsp-email')&&email) qs('#trsp-email').value=email; return !!token;} return false;}\n            function clearSession(){localStorage.removeItem(STORE_TOKEN);localStorage.removeItem(STORE_EMAIL);localStorage.removeItem(STORE_EXP);token='';}\n            function activateTab(tab){const data=qs('#trsp-data'); if(!data) return; data.querySelectorAll('[data-panel]').forEach(x=>x.classList.toggle('hidden',x.dataset.panel!==tab)); data.querySelectorAll('[data-tab]').forEach(x=>x.classList.toggle('active',x.dataset.tab===tab)); app.querySelectorAll('.trs-modify-box').forEach(x=>x.remove()); setTimeout(()=>{try{app.scrollIntoView({behavior:'smooth',block:'start'});}catch(e){window.scrollTo(0,0);}},30);}\n            function shiftYm(ym,delta){const p=(ym||'').split('-');let y=parseInt(p[0]||'0',10),m=parseInt(p[1]||'1',10)-1;if(!y){const d=new Date();y=d.getFullYear();m=d.getMonth();}const d=new Date(y,m+delta,1);return d.getFullYear()+'-'+String(d.getMonth()+1).padStart(2,'0');}\n            function ymLabel(ym){const p=(ym||'').split('-');const d=new Date(parseInt(p[0],10),parseInt(p[1],10)-1,1);return d.toLocaleDateString('es-CL',{month:'long',year:'numeric'}).replace(\/^.\/,c=>c.toUpperCase());}\n            function setupReservationMonth(root){\n                const list=root.querySelector('[data-res-list]');\n                if(!list||list.dataset.ready==='1')return;\n                list.dataset.ready='1';\n                let ym=list.dataset.currentYm||shiftYm('',0);\n                let filter='vigentes';\n                let sort='upcoming';\n                const label=root.querySelector('[data-res-month-label]'), empty=root.querySelector('[data-res-empty]');\n                function passFilter(c){const st=c.dataset.status||''; if(filter==='pagos') return st==='pago'; if(filter==='expiradas') return st==='expirada'; return (st==='confirmada'||st==='cancelada'||st==='cancelada_sin_reintegro');}\n                function sortCards(){\n                    const cards=Array.from(list.querySelectorAll('[data-res-card],[data-pay-card]'));\n                    const now=Math.floor(Date.now()\/1000);\n                    cards.sort((a,b)=>{\n                        const at=parseInt(a.dataset.ts||'0',10), bt=parseInt(b.dataset.ts||'0',10);\n                        if(sort==='old') return at-bt;\n                        const af=at>=now, bf=bt>=now;\n                        if(af && bf) return at-bt;\n                        if(af && !bf) return -1;\n                        if(!af && bf) return 1;\n                        return bt-at;\n                    });\n                    cards.forEach(c=>list.appendChild(c));\n                }\n                function render(){\n                    sortCards();\n                    let visible=0;\n                    list.querySelectorAll('[data-res-card],[data-pay-card]').forEach(c=>{\n                        const show=(filter==='pagos') ? passFilter(c) : ((c.dataset.ym===ym)&&passFilter(c));\n                        c.classList.toggle('hidden',!show);\n                        if(show) visible++;\n                    });\n                    if(label) label.textContent=(filter==='pagos') ? 'Hist\u00f3rico de pagos' : ymLabel(ym);\n                    if(empty) empty.classList.toggle('hidden',visible>0);\n                }\n                const prev=root.querySelector('[data-res-month-prev]'), next=root.querySelector('[data-res-month-next]');\n                if(prev) prev.onclick=()=>{app.querySelectorAll('.trs-modify-box').forEach(x=>x.remove());ym=shiftYm(ym,-1);render();};\n                if(next) next.onclick=()=>{app.querySelectorAll('.trs-modify-box').forEach(x=>x.remove());ym=shiftYm(ym,1);render();};\n                root.querySelectorAll('[data-res-filter]').forEach(btn=>btn.onclick=function(){\n                    filter=this.dataset.resFilter;\n                    root.querySelectorAll('[data-res-filter]').forEach(x=>x.classList.toggle('active',x===this));\n                    app.querySelectorAll('.trs-modify-box').forEach(x=>x.remove());\n                    render();\n                });\n                const sortBtn=root.querySelector('[data-res-sort]');\n                if(sortBtn) sortBtn.onclick=function(){\n                    sort=(sort==='upcoming')?'old':'upcoming';\n                    this.textContent=(sort==='upcoming')?'Orden \u2193':'Orden \u2191';\n                    app.querySelectorAll('.trs-modify-box').forEach(x=>x.remove());\n                    render();\n                };\n                render();\n            }\n\n            function bindActions(){\n                const data=qs('#trsp-data'); if(!data) return;\n                data.querySelectorAll('[data-tab]').forEach(btn=>btn.onclick=()=>activateTab(btn.dataset.tab)); data.querySelectorAll('.trs-panel-section').forEach(setupReservationMonth);\n                const logout=data.querySelector('[data-logout]'); if(logout) logout.onclick=function(){clearSession(); const dataBox=qs('#trsp-data'); if(dataBox){dataBox.classList.add('hidden');dataBox.innerHTML='';} const login=qs('#trsp-login-card'); if(login) login.classList.remove('hidden'); showMsg('Sesi\u00f3n cerrada.',true);};\n                data.querySelectorAll('[data-cancel]').forEach(btn=>{btn.onclick=function(){ if(!confirm('\u00bfCancelar esta reserva?')) return; post('portal_cancel',{token,id:this.dataset.cancel}).then(x=>{showMsg((x.data&&x.data.message)||'Actualizado',!!x.success); load();}).catch(err=>showMsg(err.message||'No se pudo cancelar.'));};});\n                data.querySelectorAll('[data-modify]').forEach(btn=>{btn.onclick=function(){ openModify(this.dataset.modify,this); };});\n                data.querySelectorAll('[data-save-contact]').forEach(btn=>{btn.onclick=function(){ const box=btn.closest('.trs-contact-form'); btn.disabled=true; post('portal_save_contact_data',{token,nombre:box.querySelector('[data-contact-name]').value,telefono:box.querySelector('[data-contact-phone]').value,extra_emails:box.querySelector('[data-contact-emails]').value,extra_phones:box.querySelector('[data-contact-phones]').value,notas:box.querySelector('[data-contact-notes]').value}).then(r=>{btn.disabled=false; showMsg((r.data&&r.data.message)||'Datos enviados.',!!r.success); if(r.success){box.querySelectorAll('input,textarea').forEach(i=>i.value='');}}).catch(err=>{btn.disabled=false;showMsg(err.message||'No se pudo guardar.');});};});\n            }\n            function openModify(id,btn){\n                const card=btn.closest('.trs-res-card')||btn.closest('td')||btn.parentNode;\n                const holderId='trs-modify-'+id;\n                const oldSame=app.querySelector('#'+holderId);\n                if(oldSame){oldSame.remove();return;}\n                app.querySelectorAll('.trs-modify-box').forEach(x=>x.remove());\n                const holder=document.createElement('div');\n                holder.id=holderId;\n                holder.className='trs-modify-box';\n                holder.innerHTML='Cargando disponibilidad...';\n                if(card && card.parentNode){card.insertAdjacentElement('afterend',holder);} else {btn.parentNode.appendChild(holder);} setTimeout(()=>{try{holder.scrollIntoView({behavior:'smooth',block:'nearest'});}catch(e){}},60);\n                function addDays(dateStr,n){const d=new Date(dateStr+'T12:00:00');d.setDate(d.getDate()+n);return d.getFullYear()+'-'+String(d.getMonth()+1).padStart(2,'0')+'-'+String(d.getDate()).padStart(2,'0');}\n                function clampDate(dateStr,min,max){if(!dateStr)return min||max||''; if(min&&dateStr<min)return min; if(max&&dateStr>max)return max; return dateStr;}\n                function monthLabel(dateStr){try{const d=new Date(dateStr+'T12:00:00');return d.toLocaleDateString('es-CL',{month:'long',year:'numeric'}).replace(\/^.\/,c=>c.toUpperCase());}catch(e){return '';}}\n                function dayList(min,max,active){\n                    active=clampDate(active||min,min,max);\n                    let out='',prev='',next='',prevDisabled='',nextDisabled='';\n                    try{\n                        const minD=new Date(min+'T12:00:00'), maxD=new Date(max+'T12:00:00');\n                        let center=new Date(active+'T12:00:00');\n                        if(center<minD) center=new Date(minD); if(center>maxD) center=new Date(maxD);\n                        let start=new Date(center); start.setDate(center.getDate()-3); if(start<minD) start=new Date(minD);\n                        let end=new Date(start); end.setDate(start.getDate()+6);\n                        if(end>maxD){end=new Date(maxD); start=new Date(end); start.setDate(end.getDate()-6); if(start<minD) start=new Date(minD);}\n                        const fmt=new Intl.DateTimeFormat('es-CL',{weekday:'short'});\n                        for(let d=new Date(start); d<=end; d.setDate(d.getDate()+1)){\n                            let y=d.getFullYear(),m=String(d.getMonth()+1).padStart(2,'0'),dd=String(d.getDate()).padStart(2,'0'), val=y+'-'+m+'-'+dd;\n                            let wd=fmt.format(d).replace('.','');\n                            out+='<button type=\"button\" class=\"trs-modify-day '+(val===active?'active':'')+'\" data-day=\"'+val+'\"><small>'+wd+'<\/small><b>'+parseInt(dd,10)+'<\/b><\/button>';\n                        }\n                        prev=clampDate(addDays(active,-7),min,max); next=clampDate(addDays(active,7),min,max);\n                        if(prev===active) prevDisabled=' disabled'; if(next===active) nextDisabled=' disabled';\n                    }catch(e){}\n                    return '<div class=\"trs-modify-strip-head\"><button type=\"button\" data-day-shift=\"'+prev+'\"'+prevDisabled+'>\u2039<\/button><strong>'+monthLabel(active)+'<\/strong><button type=\"button\" data-day-shift=\"'+next+'\"'+nextDisabled+'>\u203a<\/button><\/div><div class=\"trs-modify-days\">'+out+'<\/div>';\n                }\n                function fetchOpts(date,hours){holder.innerHTML='Cargando disponibilidad...'; post('portal_modify_options',{token,id,date,hours}).then(render).catch(err=>{holder.innerHTML='<div class=\"alert\">'+esc(err.message||'No se pudo conectar.')+'<\/div>';});}\n                function render(r){\n                    if(!r.success){holder.innerHTML='<div class=\"alert\">'+esc((r.data&&r.data.message)||'No se pudo cargar.')+'<\/div>';return;}\n                    const current=r.data||{}, slots=current.slots||[];\n                    holder.innerHTML='<div class=\"trs-modify-head\"><div><b>Modificar reserva<\/b><p class=\"trs-small\">Elige nueva fecha u horario. Solo horas completas.<\/p><\/div><button type=\"button\" class=\"secondary\" data-close-mod>Cerrar<\/button><\/div><div class=\"trs-modify-controls\"><label>Fecha<input type=\"date\" data-mod-date value=\"'+esc(current.date||'')+'\" min=\"'+esc(current.min_date||'')+'\" max=\"'+esc(current.max_date||'')+'\"><\/label><label>Horas<input type=\"number\" step=\"1\" min=\"'+esc(current.min_hours||'')+'\" data-mod-hours value=\"'+esc(current.hours||'')+'\"><\/label><div class=\"trs-modify-spacer\"><\/div><\/div><div class=\"trs-modify-calendar\">'+dayList(current.min_date,current.max_date,current.date)+'<\/div><div class=\"trs-modify-slots\">'+(slots.length?slots.map(sl=>'<button type=\"button\" data-new-start=\"'+esc(sl.start)+'\">'+esc(sl.label)+'<\/button>').join(''):'<div class=\"alert\">No hay horarios disponibles para esa fecha y duraci\u00f3n.<\/div>')+'<\/div>'+(current.payment_note?'<div class=\"trs-modify-payment-note\">'+esc(current.payment_note)+'<\/div>':'');\n                    holder.querySelector('[data-close-mod]').onclick=()=>holder.remove();\n                    const dateInput=holder.querySelector('[data-mod-date]'), hoursInput=holder.querySelector('[data-mod-hours]');\n                    let t=null;\n                    function changed(){clearTimeout(t); t=setTimeout(()=>fetchOpts(dateInput.value,hoursInput.value),220);}\n                    dateInput.onchange=changed;\n                    hoursInput.oninput=function(){ if(parseFloat(hoursInput.value)<parseFloat(hoursInput.min)) hoursInput.value=hoursInput.min; changed();};\n                    holder.querySelectorAll('[data-day]').forEach(b=>b.onclick=function(){fetchOpts(this.dataset.day,hoursInput.value);});\n                    holder.querySelectorAll('[data-day-shift]').forEach(b=>b.onclick=function(){if(this.disabled)return; fetchOpts(this.dataset.dayShift,hoursInput.value);});\n                    holder.querySelectorAll('[data-new-start]').forEach(b=>{b.onclick=function(){const date=holder.querySelector('[data-mod-date]').value; const hours=holder.querySelector('[data-mod-hours]').value; if(!confirm('\u00bfModificar la reserva a '+date+' '+this.textContent+'?')) return; post('portal_modify',{token,id,date,hours,start:this.dataset.newStart}).then(x=>{if(x.data&&x.data.redirect){window.location.href=x.data.redirect;return;} showMsg((x.data&&x.data.message)||'Reserva modificada.',!!x.success); load();}).catch(err=>showMsg(err.message||'No se pudo modificar.'));};});\n                }\n                fetchOpts('', '');\n            }\n            function load(){post('portal_data',{token}).then(r=>{ if(!r.success){clearSession();showMsg((r.data&&r.data.message)||'No se pudo cargar.');return;} const dataBox=qs('#trsp-data'); dataBox.classList.remove('hidden'); const login=qs('#trsp-login-card'); if(login) login.classList.add('hidden'); dataBox.innerHTML=r.data.html||''; if(r.data.email) localStorage.setItem(STORE_EMAIL,r.data.email); bindActions(); activateTab('reservas');}).catch(err=>showMsg(err.message||'No se pudo conectar con el servidor.'));}\n            function portalCodeCooldown(btn, seconds, finalText){\n                if(!btn) return;\n                let left = seconds || 45;\n                btn.disabled = true;\n                btn.textContent = 'Reenviar en '+left+'s';\n                const timer = setInterval(function(){\n                    left--;\n                    if(left <= 0){ clearInterval(timer); btn.disabled = false; btn.textContent = finalText || 'Reenviar c\u00f3digo'; return; }\n                    btn.textContent = 'Reenviar en '+left+'s';\n                },1000);\n            }\n            const sendBtn=qs('#trsp-send'), verifyBtn=qs('#trsp-verify');\n            if(readSession()) load();\n            if(sendBtn) sendBtn.addEventListener('click',function(){const email=(qs('#trsp-email').value||'').trim(); if(!email){showMsg('Ingresa correo, WhatsApp o ROL\/RUT.');return;} sendBtn.disabled=true; sendBtn.textContent='Enviando...'; post('portal_send_code',{email}).then(r=>{sendBtn.disabled=false; if(!r.success){sendBtn.textContent='Ingresar'; showMsg((r.data&&r.data.message)||'No se pudo enviar.');return;} qs('#trsp-code-box').classList.remove('hidden'); showMsg((r.data&&r.data.message)||'Te enviamos un c\u00f3digo.',true); portalCodeCooldown(sendBtn,45,'Reenviar c\u00f3digo');}).catch(err=>{sendBtn.disabled=false;showMsg(err.message||'No se pudo conectar.');});});\n            if(verifyBtn) verifyBtn.addEventListener('click',function(){const email=(qs('#trsp-email').value||'').trim(), code=(qs('#trsp-code').value||'').trim(); if(!email||!code){showMsg('Ingresa el dato de acceso y el c\u00f3digo.');return;} verifyBtn.disabled=true; post('portal_verify_code',{email,code}).then(r=>{verifyBtn.disabled=false; if(!r.success){showMsg((r.data&&r.data.message)||'C\u00f3digo inv\u00e1lido.');return;} saveSession(email,r.data.token||''); showMsg('Acceso validado.',true); load();}).catch(err=>{verifyBtn.disabled=false;showMsg(err.message||'No se pudo conectar.');});});\n        })();\n        <\/script>\n        <\/div><\/div><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"tpl-footer_v1.php","meta":{"footnotes":""},"class_list":["post-24638","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Espacio Clientes - tudomicilioenundia<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tudomicilioenundia.cl\/laserena\/clientes\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Espacio Clientes - tudomicilioenundia\" \/>\n<meta property=\"og:description\" content=\"Espacio Clientes Inicia sesi\u00f3n en tu panel tudomicilioenundia para revisar cobros de oficina virtual, detalles de tu plan y gestionar reservas de salas u oficinas. Ingresar Sesi\u00f3n por 1 hora en este navegador. C\u00f3digo de 6 d\u00edgitos Entrar\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tudomicilioenundia.cl\/laserena\/clientes\/\" \/>\n<meta property=\"og:site_name\" content=\"tudomicilioenundia\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ovpvirtualpyme\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-01T11:24:58+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/tudomicilioenundia.cl\\\/laserena\\\/clientes\\\/\",\"url\":\"https:\\\/\\\/tudomicilioenundia.cl\\\/laserena\\\/clientes\\\/\",\"name\":\"Espacio Clientes - tudomicilioenundia\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/tudomicilioenundia.cl\\\/laserena\\\/#website\"},\"datePublished\":\"2026-05-29T17:36:09+00:00\",\"dateModified\":\"2026-06-01T11:24:58+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/tudomicilioenundia.cl\\\/laserena\\\/clientes\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/tudomicilioenundia.cl\\\/laserena\\\/clientes\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/tudomicilioenundia.cl\\\/laserena\\\/clientes\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/tudomicilioenundia.cl\\\/laserena\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u00c1rea Clientes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/tudomicilioenundia.cl\\\/laserena\\\/#website\",\"url\":\"https:\\\/\\\/tudomicilioenundia.cl\\\/laserena\\\/\",\"name\":\"tudomicilioenundia\",\"description\":\"Domicilio Comercial y Tributario\",\"publisher\":{\"@id\":\"https:\\\/\\\/tudomicilioenundia.cl\\\/laserena\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/tudomicilioenundia.cl\\\/laserena\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/tudomicilioenundia.cl\\\/laserena\\\/#organization\",\"name\":\"Tudomicilioenundia La Serena\",\"url\":\"https:\\\/\\\/tudomicilioenundia.cl\\\/laserena\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/tudomicilioenundia.cl\\\/laserena\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/tudomicilioenundia.cl\\\/laserena\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/tudomicilioenundiaweb.png\",\"contentUrl\":\"https:\\\/\\\/tudomicilioenundia.cl\\\/laserena\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/tudomicilioenundiaweb.png\",\"width\":400,\"height\":192,\"caption\":\"Tudomicilioenundia La Serena\"},\"image\":{\"@id\":\"https:\\\/\\\/tudomicilioenundia.cl\\\/laserena\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/ovpvirtualpyme\\\/\",\"https:\\\/\\\/www.instagram.com\\\/oficinasovp\\\/\",\"https:\\\/\\\/www.youtube.com\\\/watch?v=T162x240ou8\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Espacio Clientes - tudomicilioenundia","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/tudomicilioenundia.cl\/laserena\/clientes\/","og_locale":"es_ES","og_type":"article","og_title":"Espacio Clientes - tudomicilioenundia","og_description":"Espacio Clientes Inicia sesi\u00f3n en tu panel tudomicilioenundia para revisar cobros de oficina virtual, detalles de tu plan y gestionar reservas de salas u oficinas. Ingresar Sesi\u00f3n por 1 hora en este navegador. C\u00f3digo de 6 d\u00edgitos Entrar","og_url":"https:\/\/tudomicilioenundia.cl\/laserena\/clientes\/","og_site_name":"tudomicilioenundia","article_publisher":"https:\/\/www.facebook.com\/ovpvirtualpyme\/","article_modified_time":"2026-06-01T11:24:58+00:00","twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/tudomicilioenundia.cl\/laserena\/clientes\/","url":"https:\/\/tudomicilioenundia.cl\/laserena\/clientes\/","name":"Espacio Clientes - tudomicilioenundia","isPartOf":{"@id":"https:\/\/tudomicilioenundia.cl\/laserena\/#website"},"datePublished":"2026-05-29T17:36:09+00:00","dateModified":"2026-06-01T11:24:58+00:00","breadcrumb":{"@id":"https:\/\/tudomicilioenundia.cl\/laserena\/clientes\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tudomicilioenundia.cl\/laserena\/clientes\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/tudomicilioenundia.cl\/laserena\/clientes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/tudomicilioenundia.cl\/laserena\/"},{"@type":"ListItem","position":2,"name":"\u00c1rea Clientes"}]},{"@type":"WebSite","@id":"https:\/\/tudomicilioenundia.cl\/laserena\/#website","url":"https:\/\/tudomicilioenundia.cl\/laserena\/","name":"tudomicilioenundia","description":"Domicilio Comercial y Tributario","publisher":{"@id":"https:\/\/tudomicilioenundia.cl\/laserena\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tudomicilioenundia.cl\/laserena\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/tudomicilioenundia.cl\/laserena\/#organization","name":"Tudomicilioenundia La Serena","url":"https:\/\/tudomicilioenundia.cl\/laserena\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/tudomicilioenundia.cl\/laserena\/#\/schema\/logo\/image\/","url":"https:\/\/tudomicilioenundia.cl\/laserena\/wp-content\/uploads\/2021\/01\/tudomicilioenundiaweb.png","contentUrl":"https:\/\/tudomicilioenundia.cl\/laserena\/wp-content\/uploads\/2021\/01\/tudomicilioenundiaweb.png","width":400,"height":192,"caption":"Tudomicilioenundia La Serena"},"image":{"@id":"https:\/\/tudomicilioenundia.cl\/laserena\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ovpvirtualpyme\/","https:\/\/www.instagram.com\/oficinasovp\/","https:\/\/www.youtube.com\/watch?v=T162x240ou8"]}]}},"_links":{"self":[{"href":"https:\/\/tudomicilioenundia.cl\/laserena\/wp-json\/wp\/v2\/pages\/24638","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tudomicilioenundia.cl\/laserena\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tudomicilioenundia.cl\/laserena\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tudomicilioenundia.cl\/laserena\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tudomicilioenundia.cl\/laserena\/wp-json\/wp\/v2\/comments?post=24638"}],"version-history":[{"count":7,"href":"https:\/\/tudomicilioenundia.cl\/laserena\/wp-json\/wp\/v2\/pages\/24638\/revisions"}],"predecessor-version":[{"id":24667,"href":"https:\/\/tudomicilioenundia.cl\/laserena\/wp-json\/wp\/v2\/pages\/24638\/revisions\/24667"}],"wp:attachment":[{"href":"https:\/\/tudomicilioenundia.cl\/laserena\/wp-json\/wp\/v2\/media?parent=24638"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}