/*
 * Sistema visual principal de MiceMark Mensajería.
 * Define componentes, estados y patrones compartidos de la interfaz.
 */
[hidden]{display:none!important}

:root{
  --sidebar-w:260px;--top-h:64px;--control-h:38px;
  --radius-sm:8px;--radius-md:10px;--radius-lg:12px;
  --brand:#22c55e;--brand-hover:#16a34a;--brand-soft:#dcfce7;--brand-contrast:#07130b;
  --success:#16a34a;--success-soft:#dcfce7;--warning:#b77900;--warning-soft:#fff7d6;
  --info:#2563eb;--info-soft:#eff6ff;--danger:#dc2626;--danger-soft:#fee2e2;
  --app-bg:#f7f8fa;--surface:#fff;--surface-raised:#fff;--surface-subtle:#f3f5f7;
  --text:#171a1f;--text-secondary:#68717d;--border:#dde2e7;--border-strong:#cbd2d9;
  --sidebar:#090c0f;--sidebar-hover:#151a1f;--sidebar-text:#9aa4b0;
  --shadow-sm:none;--shadow-md:0 14px 32px rgba(0,0,0,.18);
}
:root[data-theme="dark"]{
  --brand:#4ade80;--brand-hover:#5ee28e;--brand-soft:#123c25;--brand-contrast:#06120a;
  --success:#4ade80;--success-soft:#123824;--warning:#facc15;--warning-soft:#30280a;
  --info:#60a5fa;--info-soft:#14243b;--danger:#ff5d67;--danger-soft:#3a171b;
  --app-bg:#0f1117;--surface:#191d23;--surface-raised:#1c2128;--surface-subtle:#161a20;
  --text:#f3f4f6;--text-secondary:#8f99a6;--border:#2d333b;--border-strong:#363d46;
  --sidebar:#090c0f;--sidebar-hover:#151a1f;--sidebar-text:#98a2ae;--focus:#4ade80;
  --shadow-sm:none;--shadow-md:0 16px 38px rgba(0,0,0,.34);
}

body{font-size:14px;line-height:1.45;background:var(--app-bg)}
h1,h2,h3{font-weight:600}h2{font-size:18px}.app{background:var(--app-bg)}
.sidebar{padding:0;background:var(--sidebar);border-right:1px solid var(--border);box-shadow:none}
.sidebar-head{min-height:68px;padding:12px 18px;border-bottom:1px solid var(--border)}
.brand{gap:10px}.brand-mark{width:38px;height:38px;flex-basis:38px;border-radius:11px;background:var(--brand);color:#06120a;box-shadow:none}
.brand strong{font-size:15px;color:#fff}.brand small{margin-top:1px;color:#a6b0bc;font-size:12px}
.client-context{gap:2px;margin:0;padding:14px 16px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent}
.client-context span{color:var(--text-secondary);font-size:12px}.client-context strong{color:#fff;font-size:14px}.client-context small{position:relative;padding-left:12px;color:var(--brand);font-size:12px}.client-context small::before{content:"";position:absolute;left:0;top:6px;width:6px;height:6px;border-radius:50%;background:currentColor}
.sidebar nav{gap:3px;padding:12px 12px}.sidebar nav a{min-height:38px;padding:0 12px;border-radius:9px;color:var(--sidebar-text);font-weight:500}
.sidebar nav a:hover{background:var(--sidebar-hover);color:#e5e7eb}.sidebar nav a[aria-current="page"]{background:#123c25;color:var(--brand);box-shadow:none}
.side-user{grid-template-columns:34px minmax(0,1fr);margin-top:auto;padding:16px;border-color:var(--border)}.side-user form{grid-column:1/-1;width:100%}
.user-avatar{width:34px;height:34px;background:#123c25;color:var(--brand)}.side-user strong{color:#fff}.side-user small{color:#9aa4b0}
.side-user .text-btn{display:flex;align-items:center;gap:10px;min-height:34px;padding:5px 4px;color:#9aa4b0}.side-user .text-btn svg{width:17px;height:17px}
.side-user .text-btn:hover{background:transparent;color:#fff}

.top{min-height:var(--top-h);padding:12px 32px;border-color:var(--border);background:var(--app-bg);backdrop-filter:none}
.top h1{font-size:18px;font-weight:600}.top p{font-size:13px}.content{max-width:none;padding:32px}
.card,.table-wrap{border-color:var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:none}
.card{padding:20px}.metric{min-height:102px}.metric small,th{color:var(--text-secondary);font-size:12px;font-weight:500;letter-spacing:.055em;text-transform:uppercase}.metric strong{font-size:26px}
.toolbar,.actions{gap:12px;margin-bottom:24px}.toolbar form.toolbar{border-radius:var(--radius-lg)}
.btn,button{min-height:38px;border-radius:9px;padding:8px 14px;font-weight:600;box-shadow:none}
.btn.secondary,button.secondary{background:transparent;border-color:var(--border);color:var(--text)}
.btn.secondary:hover,button.secondary:hover{background:var(--surface);border-color:var(--border-strong);color:var(--text)}
label{font-weight:500}input,select,textarea{min-height:38px;border-color:var(--border);border-radius:9px;background:var(--surface-subtle);font-weight:400}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 18%,transparent)}
.ai-seller-form .switch{display:flex;flex-direction:row;align-items:center;gap:10px}
.ai-seller-form .switch input[type="checkbox"]{flex:0 0 18px;width:18px;height:18px;min-height:18px;margin:0;accent-color:var(--brand)}
.table-wrap{overflow:hidden}table{background:var(--surface)}th,td{padding:13px 20px;border-color:var(--border)}th{background:var(--surface);font-size:12px}tbody tr:hover{background:var(--surface-subtle)}
.badge{min-height:22px;padding:3px 10px;border:1px solid color-mix(in srgb,currentColor 28%,transparent);font-weight:600}
.alert{border-radius:10px;box-shadow:none}.empty-state{min-height:260px}

.theme-picker{position:relative;flex:0 0 auto}.theme-trigger{min-width:92px;height:38px}.theme-trigger svg{width:17px;height:17px}
.theme-menu{position:absolute;z-index:32;top:calc(100% + 8px);right:0;width:176px;padding:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface-raised);box-shadow:var(--shadow-md)}
.theme-menu-title{display:block;padding:2px 8px 7px;color:var(--text-secondary);font-size:12px}
.theme-menu button{display:grid;grid-template-columns:18px 1fr 18px;width:100%;min-height:36px;padding:7px 8px;border:0;background:transparent;color:var(--text);text-align:left}
.theme-menu button:hover{background:var(--surface-subtle);color:var(--text)}.theme-menu button svg{width:17px;height:17px}.theme-menu button .theme-check{visibility:hidden;color:var(--brand)}.theme-menu button[aria-checked="true"] .theme-check{visibility:visible}
.section-navigation{display:flex;align-items:center;gap:24px;min-height:48px;padding:0 32px;border-bottom:1px solid var(--border);background:var(--app-bg);overflow-x:auto;scrollbar-width:none}.section-navigation::-webkit-scrollbar{display:none}.section-navigation a{position:relative;display:flex;align-items:center;align-self:stretch;min-width:max-content;color:var(--text-secondary);font-size:13px;font-weight:600}.section-navigation a:hover{color:var(--text)}.section-navigation a[aria-current="page"]{color:var(--brand)}.section-navigation a[aria-current="page"]::after{content:"";position:absolute;right:0;bottom:0;left:0;height:2px;background:var(--brand)}

/* Conversaciones: panel continuo, sin tarjeta exterior ni avisos flotantes. */
.page-conversations .content{padding:0}.page-conversations .top{position:relative}
.conversation-shell{height:calc(100dvh - var(--top-h));min-height:0;margin:0;border:0;border-radius:0;background:var(--app-bg)}
.conversation-list-pane{background:var(--app-bg)}.conversation-list-head{padding:12px;border-color:var(--border);background:var(--app-bg)}
.conversation-search input{background:var(--app-bg)}.conversation-list{background:var(--app-bg)}
.conversation-item{min-height:64px;padding:11px 16px;border-color:var(--border)}.conversation-item:hover{background:var(--surface)}.conversation-item.active{background:var(--surface);box-shadow:none}
.conversation-avatar{width:40px;height:40px;background:var(--surface);color:var(--text);font-weight:600}.conversation-item.active .conversation-avatar{background:var(--surface-raised)}
.conversation-item strong{font-size:14px}.conversation-preview{font-size:12px}.conversation-time{font-size:11px}
.conversation-panel{background:var(--app-bg)}.chat-header{min-height:64px;padding:10px 16px;border-color:var(--border);background:var(--app-bg);box-shadow:none}
.chat-header .conversation-avatar{background:var(--surface)}.chat-identity h2{font-size:14px}.window-status{border:1px solid color-mix(in srgb,currentColor 30%,transparent);background:var(--success-soft)}
.sound-toggle{border-color:var(--border);background:transparent}.sound-toggle .sound-on{display:none}.sound-toggle[data-sound="on"] .sound-on{display:block}.sound-toggle[data-sound="on"] .sound-off{display:none}
.chat-delete-form{flex:0 0 auto;margin:0}.chat-delete-form .icon-btn{min-height:38px;padding:0;color:var(--danger);background:transparent;border-color:var(--border)}.chat-delete-form svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.campaign-delete-form{margin-top:14px;margin-bottom:0;padding-top:14px;border-top:1px solid var(--border)}
.messages{padding:24px;background:var(--app-bg);background-image:none}
.date-separator{margin:14px 0;text-transform:none;letter-spacing:0}.date-separator::before,.date-separator::after{display:none}.date-separator span{margin:auto;padding:4px 10px;border-radius:999px;background:var(--surface);font-size:11px}
.message-row{margin:7px 0}.message{max-width:min(76%,560px);padding:10px 13px 7px;border-color:var(--border);border-radius:6px 14px 14px 14px;background:var(--surface);box-shadow:none}
.message.out{border-color:transparent;border-radius:14px 6px 14px 14px;background:var(--brand);color:#07130b}.message.out .message-meta{color:#14532d}
.message-meta{font-size:10px}.composer{padding:16px 20px;border-color:var(--border);background:var(--app-bg);box-shadow:none}
.composer-form{grid-template-columns:38px minmax(0,1fr) 38px;max-width:none}.composer textarea{min-height:38px;padding:8px 13px;border-radius:9px;background:var(--surface)}
.attach-button,.send-button{width:38px;height:38px;min-height:38px;padding:0;border-radius:9px}.attach-button{border:0!important;background:transparent!important;color:var(--text-secondary)!important}.send-button svg{width:18px;height:18px}.attach-button svg{width:23px;height:23px;stroke-width:2}
.closed-composer{background:var(--app-bg)}

.login-shell{background:var(--app-bg)}.login-card{border-color:var(--border);background:var(--surface);box-shadow:none}.login-brand{margin-bottom:24px;color:var(--text)}.login-brand strong{color:var(--text)}.login-brand small{color:var(--text-secondary)}.login-theme{display:flex;justify-content:flex-end;margin-top:20px}

/* Componentes compartidos de las referencias: acciones, tablas y estados. */
.page-actions{margin-bottom:24px}.page-actions .btn,.page-actions button{display:inline-flex;align-items:center;gap:8px}.page-actions svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.reference-table{overflow:visible}.reference-table table{table-layout:auto}.reference-table th:first-child,.reference-table td:first-child{padding-left:20px}.reference-table th:last-child,.reference-table td:last-child{padding-right:20px}.reference-table td{height:64px}.reference-table strong{font-weight:600}.align-right{text-align:right}.align-center{text-align:center}.mono{font-family:var(--font-mono);font-size:12px}.muted-cell{color:var(--text-secondary)}.truncate-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-name{display:block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.badge.connected,.badge.active,.badge.approved{color:var(--success);background:var(--success-soft)}.badge.disconnected,.badge.inactive,.badge.rejected,.badge.disabled{color:var(--danger);background:var(--danger-soft)}.badge.pending,.badge.paused{color:var(--warning);background:var(--warning-soft)}.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge{display:inline-flex;align-items:center;gap:6px}
.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.row-actions form{margin:0}.row-menu{position:relative}.row-menu summary{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;color:var(--text-secondary);cursor:pointer;list-style:none}.row-menu summary::-webkit-details-marker{display:none}.row-menu summary:hover,.row-menu[open] summary{background:var(--surface-subtle);color:var(--text)}.row-menu summary svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.row-menu-panel{position:absolute;z-index:35;top:calc(100% + 6px);right:0;width:200px;padding:7px;border:1px solid var(--border);border-radius:10px;background:var(--surface-raised);box-shadow:var(--shadow-md)}.row-menu-panel a,.row-menu-panel button{display:flex;align-items:center;gap:10px;width:100%;min-height:36px;padding:7px 9px;border:0;border-radius:7px;background:transparent;color:var(--text);font-weight:500;text-decoration:none;text-align:left}.row-menu-panel a:hover,.row-menu-panel button:hover{background:var(--surface-subtle)}.row-menu-panel svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.row-menu-panel .danger-link{color:var(--danger)}
.person-cell{display:flex;align-items:center;gap:11px}.table-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--surface-subtle);color:var(--text);font-size:12px}.authorization{position:relative;padding-left:13px}.authorization::before{content:"";position:absolute;left:0;top:7px;width:6px;height:6px;border-radius:50%;background:currentColor}.authorization.yes{color:var(--success)}.authorization.no{color:var(--danger)}

/* Panel. */
.dashboard-metrics{gap:16px}.dashboard-metrics .metric{min-height:102px;padding:20px}.metric-head{display:flex;align-items:center;justify-content:space-between}.metric-icon{color:var(--text-secondary)}.metric-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.dashboard-metrics .metric:nth-child(2) .metric-icon{color:var(--brand)}.campaigns-summary{margin-top:24px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.campaigns-summary>h2{margin:0;padding:16px 20px;border-bottom:1px solid var(--border);font-size:14px}.campaigns-summary .table-wrap{border:0;border-radius:0}.dashboard-empty{min-height:248px}.dashboard-empty .empty-icon{display:grid;place-items:center;width:56px;height:56px;margin-bottom:14px;border:1px solid var(--border);border-radius:16px;color:var(--text-secondary)}.dashboard-empty .empty-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.dashboard-empty strong{color:var(--text);font-size:16px}.dashboard-empty p{margin-top:5px}

/* Contactos y plantillas. */
.table-filters{display:grid;grid-template-columns:minmax(260px,1fr) 170px 180px;gap:12px;padding:16px;border-bottom:1px solid var(--border)}.search-field{position:relative;display:block}.search-field>svg{position:absolute;z-index:1;left:12px;top:50%;width:17px;height:17px;transform:translateY(-50%);fill:none;stroke:var(--text-secondary);stroke-width:1.8;stroke-linecap:round}.search-field input{width:100%;padding-left:38px}.list-footer{display:flex;justify-content:space-between;align-items:center;padding-top:16px;color:var(--text-secondary);font-size:12px}.list-footer .pagination{margin:0}.info-alert{display:flex;align-items:flex-start;gap:10px;color:var(--info);background:var(--info-soft);border-color:color-mix(in srgb,var(--info) 35%,var(--border))}.info-alert>svg{flex:0 0 auto;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.info-alert span{color:inherit}.templates-actions{align-items:center}.templates-actions form{margin:0}.inline-error{margin-top:5px;color:var(--danger);font-size:12px}

/* Formularios de las referencias. */
.content>form.card.form-grid{max-width:672px;padding:24px;gap:20px}.content>form.card.form-grid label{gap:8px}.content>form.card.form-grid label>small{display:block;margin-top:10px;padding:12px;border:1px solid var(--border);border-radius:9px;background:var(--surface-subtle);line-height:1.55}.content>form.card.form-grid>.actions{margin:4px 0 0}.template-layout{gap:24px}.template-form{padding:24px}.template-preview{padding:20px}.variable-card{background:var(--surface-subtle);border-radius:10px}.preview-message{border-radius:10px}

.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Contactos, segmentos e importación. */
.contact-email{display:block;margin-top:4px;color:var(--text-secondary);font-size:12px}.contact-filters{grid-template-columns:minmax(260px,1fr) 190px 180px}.segments-layout{display:grid;gap:24px}.segment-form{align-content:start}.segments-table .empty-state{min-height:220px}.custom-fields{padding:18px;border:1px solid var(--border);border-radius:var(--radius-md)}.custom-fields legend{padding:0 8px;font-weight:700}
.contact-import{display:grid;gap:20px}.import-source{display:grid;gap:12px}.import-source h2{margin:0}.source-option{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer}.source-option input{width:auto;min-height:auto;margin-top:3px}.source-option span,.source-option small{display:block}.source-option small{margin-top:3px;color:var(--text-secondary)}.source-option.disabled{opacity:.55;cursor:not-allowed}.import-upload{display:grid;gap:12px;max-width:680px}.import-upload label{display:grid;gap:8px}.import-upload .btn{justify-self:start}.import-workspace{display:grid;gap:20px}.import-read{display:flex;align-items:center;gap:10px;margin:0}.import-read span{color:var(--text-secondary)}.import-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.import-stats .metric{min-height:90px;padding:16px}.import-stats .metric strong{font-size:23px}.import-mapping{max-width:none}.import-mapping h2,.import-mapping p{margin:0}.import-preview{margin-top:14px;max-height:430px;overflow:auto}.import-preview table{min-width:720px}.import-preview th{position:sticky;top:0;z-index:1}.checkbox-row{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start;gap:10px!important}.checkbox-row input{width:auto;min-height:auto;margin-top:3px}.confirm-import{padding:14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle)}.import-actions{margin-bottom:0}.contact-import.is-loading{cursor:progress}.segment-selector{padding:14px;border:1px solid var(--border);border-radius:var(--radius-md)}.segment-selector legend{padding:0 7px;font-weight:700}.segment-selector>small{display:block;margin-top:10px;color:var(--text-secondary)}.segment-options{display:flex;flex-wrap:wrap;gap:8px;font-size:12px}.segment-options label{display:block}.segment-options input{position:absolute;opacity:0;pointer-events:none}.segment-options span{display:block;padding:7px 11px;border:1px solid var(--border);border-radius:999px;background:var(--surface-subtle);color:#8b949c;cursor:pointer}.segment-options input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}.segment-options input:checked+span{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.bulk-toolbar{display:flex;align-items:flex-end;gap:14px;padding:14px 16px;border-bottom:1px solid var(--border);background:var(--surface-subtle)}.bulk-toolbar>label{display:grid;gap:5px}.bulk-toolbar>label:first-child{display:flex;align-items:center;align-self:center}.bulk-toolbar input[type="checkbox"],.select-column input,.segment-members-table input[type="checkbox"]{width:auto;min-height:auto}.bulk-toolbar select[multiple]{min-width:190px}.bulk-toolbar .actions{margin:0 0 0 auto}.select-column{width:42px}.compact{min-height:32px;padding:5px 9px}.segment-member-filters{margin-bottom:16px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.bulk-members-form{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.bulk-members-form .table-wrap{border:0;border-radius:0}.fields-layout{display:grid;gap:24px}.field-form{align-content:start}.inline-field-form{display:flex;align-items:center;gap:8px}.inline-field-form input{min-width:170px}.campaign-form{max-width:840px!important}.campaign-variables{display:grid;gap:12px}.campaign-variable{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle)}.campaign-variable legend{padding:0 7px;font-weight:700}.campaign-variable p{grid-column:1/-1;margin:0;color:var(--text-secondary);font-size:12px}.campaign-preview{display:grid;gap:10px}.campaign-preview p{margin:0;white-space:pre-wrap}.mapping-summary{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.mapping-summary span{padding:5px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface-subtle);font-size:12px}.campaign-detail{margin-top:16px}
@media(min-width:960px){.segments-layout{grid-template-columns:minmax(280px,380px) minmax(0,1fr)}}
@media(min-width:960px){.fields-layout{grid-template-columns:minmax(300px,380px) minmax(0,1fr)}}
@media(max-width:760px){.import-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.import-read{align-items:flex-start;flex-direction:column}.contact-filters{grid-template-columns:1fr}.bulk-toolbar{align-items:stretch;flex-direction:column}.bulk-toolbar .actions{margin:0}.campaign-variable{grid-template-columns:1fr}.inline-field-form{align-items:stretch;flex-direction:column}}

@media(min-width:960px){
  .conversation-shell{grid-template-columns:340px minmax(0,1fr);height:calc(100vh - var(--top-h));margin:0;border:0;border-radius:0;box-shadow:none}
  .conversation-panel,body.chat-selected .conversation-panel{border-left:1px solid var(--border)}
}
@media(max-width:959px){
  .top{padding-left:12px;padding-right:12px}.top .page-heading{min-width:0}.top .page-heading h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top .menu{order:3;margin-left:auto}.top .theme-picker{display:none}.content{padding:20px 12px}.section-navigation{gap:20px;min-height:46px;padding:0 12px}.conversation-shell{margin:0}.page-conversations .content{padding:0}
  .sidebar{width:min(88vw,280px)}.sidebar-backdrop,.sidebar-backdrop:hover,.sidebar-backdrop:focus,.sidebar-backdrop:active{background:rgba(5,13,10,.54);color:transparent}
}
@media(max-width:560px){
  .conversation-shell{margin:0}.chat-header{padding:9px 12px}.messages{padding:14px}.composer{padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.message{max-width:88%}
  .theme-trigger{min-width:42px;padding:0}.theme-trigger span{display:none}.table-wrap{overflow:auto}
}

@media(max-width:760px){
  .table-filters{grid-template-columns:1fr;padding:12px}.reference-table{overflow:visible;border:0;background:transparent}.reference-table table,.reference-table tbody,.reference-table tr,.reference-table td{display:block;width:100%;min-width:0}.reference-table thead{display:none}.reference-table tbody{display:grid;gap:12px}.reference-table tr{padding:14px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.reference-table td{display:flex;align-items:center;justify-content:space-between;gap:16px;height:auto;min-height:38px;padding:7px 0!important;border:0;text-align:right}.reference-table td::before{content:attr(data-label);color:var(--text-secondary);font-size:11px;text-transform:uppercase;letter-spacing:.05em;text-align:left}.reference-table td>*{max-width:65%}.reference-table td .person-cell{max-width:none}.reference-table td .row-actions{max-width:none}.row-menu-panel{position:fixed;top:auto;right:14px;bottom:14px;left:14px;width:auto}.clients-table td:first-child,.users-table td:first-child,.contacts-table td:first-child{font-size:15px}.list-footer{padding:14px 2px}.truncate-cell{white-space:normal}.content>form.card.form-grid{padding:18px}
}

/* Patrones administrativos compartidos: formulario lateral, tabla y seleccion masiva. */
.section-back{margin-bottom:24px}.section-back .btn{min-height:36px;padding:7px 14px}.section-form-title{display:flex;align-items:center;gap:10px;margin:0 0 4px;font-size:16px}.section-form-title svg{width:17px;height:17px;color:var(--brand);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.segments-layout,.fields-layout{align-items:start;width:min(100%,1205px);max-width:none}.segment-form,.field-form{grid-template-columns:1fr!important;gap:18px!important;width:100%;max-width:396px!important;padding:20px!important}.segment-form textarea{min-height:78px}.segment-form button.full,.field-form button.full{justify-content:center;width:100%}.segments-table,.fields-table{min-height:336px}.segments-table table,.fields-table table{min-width:680px}.fields-table .inline-field-form input{width:198px;min-width:0}.fields-table code{color:var(--text-secondary);background:transparent}.text-action,.icon-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:transparent;color:var(--text);text-decoration:none}.text-action{padding:7px 8px;font-weight:600}.icon-action{width:36px;height:36px;padding:0}.text-action svg,.icon-action svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.danger-link{color:var(--danger)!important}
.contacts-actions{gap:10px}.contacts-actions .btn{min-height:36px}.bulk-toolbar[hidden]{display:none}.bulk-toolbar{display:flex;align-items:center;gap:14px;margin:0 0 24px;padding:16px;border:1px solid color-mix(in srgb,var(--brand) 40%,var(--border));border-radius:var(--radius-lg);background:color-mix(in srgb,var(--brand) 6%,var(--surface))}.bulk-toolbar strong{min-width:max-content}.bulk-scope-link{min-height:auto;padding:0;border:0;background:transparent;color:var(--brand);font-weight:600;text-decoration:underline;text-underline-offset:3px}.bulk-segments{display:flex;flex:1;flex-wrap:wrap;gap:8px;padding:0;border:0}.bulk-segments label{display:block}.bulk-segments input{position:absolute;opacity:0;pointer-events:none}.bulk-segments span{display:block;padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-secondary);cursor:pointer}.bulk-segments input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}.bulk-segments input:checked+span{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.bulk-toolbar .actions{display:flex;align-items:center;gap:8px;margin:0}.bulk-toolbar .actions button{min-height:36px;padding:7px 14px}.bulk-toolbar .actions .bulk-cancel{background:transparent;color:var(--text);font-weight:600}.select-column input,.contacts-table td input[type="checkbox"]{width:18px;min-height:18px;accent-color:var(--brand)}

/* Edicion de contacto: tarjetas independientes, sin contenedor exterior. */
.page-contact-edit .content{max-width:none}.contact-edit-form{display:grid;gap:18px;width:min(100%,505px)}.contact-edit-form>.card{margin:0;padding:20px}.contact-primary-grid,.contact-custom-fields{gap:16px 14px}.contact-primary-grid label,.contact-custom-fields label{gap:7px}.contact-authorization-help,.contact-section-help{margin:8px 0 0;color:var(--text-secondary);font-size:11px;line-height:1.5}.consent-details{margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.contact-section-card{display:grid;gap:14px}.contact-section-card h2{margin:0;font-size:14px}.contact-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.contact-section-head a{color:var(--brand);font-size:11px;font-weight:600;text-decoration:none}.contact-section-head a:hover{text-decoration:underline;text-underline-offset:3px}.contact-segment-selector{padding:0;border:0}.contact-section-help{margin:0}.contact-custom-fields small{display:block;margin-top:5px;color:var(--text-secondary);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;font-weight:400}.contact-edit-actions{margin:0}.contact-edit-actions .btn,.contact-edit-actions button{display:inline-flex;align-items:center;gap:8px}.contact-edit-actions svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Crear campana: flujo vertical compacto y sin cortes visuales. */
.campaign-create-shell{display:grid;gap:18px;max-width:1000px}.campaign-consent{margin:0;line-height:1.55}.campaign-create-form{display:grid;gap:18px}.campaign-form-card{display:grid;gap:20px;padding:20px}.campaign-form-card>label{display:grid;gap:8px;font-weight:500}.campaign-form-card .segment-selector{padding:0;border:0}.campaign-form-card .segment-selector legend{padding:0 0 8px}.campaign-form-card .segment-selector small{line-height:1.5}.template-body-preview,.campaign-preview{padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface-subtle);color:var(--text-secondary);white-space:pre-wrap}.campaign-variable-section,.campaign-preview,.campaign-estimate{display:grid;gap:10px}.campaign-variable-section h2,.campaign-preview h2,.campaign-estimate h2{margin:0;font-size:13px}.campaign-variable{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle)}.campaign-variable legend{display:flex;align-items:center;gap:8px;padding:0 6px}.campaign-variable legend code{padding:3px 7px;border-radius:6px;background:var(--brand-soft);color:var(--brand)}.campaign-variable legend span{color:var(--text-secondary);font-size:12px}.campaign-variable-grid{display:grid;grid-template-columns:minmax(125px,.9fr) minmax(145px,1fr) minmax(140px,1fr);gap:8px}.campaign-variable-grid label{display:grid;gap:6px;font-size:11px}.campaign-variable small{color:var(--text-secondary)}.campaign-preview p,.campaign-estimate p{margin:0}.campaign-estimate strong{margin-right:8px;font-size:22px}.campaign-safety{display:flex;align-items:center;gap:8px;padding-top:10px;border-top:1px solid var(--border);font-size:12px}.campaign-safety svg{width:16px;height:16px;color:var(--success);fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.campaign-create-actions{margin:0}.campaign-create-actions .btn,.campaign-create-actions button{display:inline-flex;align-items:center;gap:8px}.campaign-create-actions svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

@media(min-width:960px){.segments-layout,.fields-layout{grid-template-columns:396px minmax(0,1fr);gap:18px}}
@media(max-width:760px){.segment-form,.field-form{max-width:none!important}.segments-table,.fields-table{min-height:0}.bulk-toolbar{align-items:stretch;flex-direction:column}.bulk-toolbar .actions{justify-content:flex-start}.campaign-create-shell{max-width:none}.campaign-variable-grid{grid-template-columns:1fr}.contact-edit-form{width:100%}.contact-edit-form>.card{padding:18px}.contact-primary-grid,.contact-custom-fields{grid-template-columns:1fr}.contact-section-head{align-items:flex-start;flex-direction:column;gap:6px}}

/* Configuracion: una tarjeta compacta, campos relacionados y acciones externas. */
.page-settings .content{max-width:none}.settings-shell{position:relative;width:min(100%,538px)}.settings-form{display:grid;gap:18px}.settings-card{display:grid;gap:16px;margin:0;padding:20px}.settings-grid,.settings-token-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.settings-grid label,.settings-token-grid label{display:grid;align-content:start;gap:7px}.settings-grid label:last-child{grid-column:1}.settings-token-grid{padding-top:16px;border-top:1px solid var(--border)}.settings-token-label{display:flex;align-items:center;gap:7px}.settings-token-label svg{width:15px;height:15px;color:var(--text-secondary);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.settings-token-grid small{color:var(--text-secondary);font-size:10px}.settings-actions{margin:0}.settings-actions button,.settings-test-form button{display:inline-flex;align-items:center;gap:8px}.settings-actions svg,.settings-test-form svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.settings-test-form{position:absolute;bottom:0;left:214px;margin:0}

/* Crear plantilla: editor compacto y vista previa breve, segun la referencia. */
.page-template-create .content{max-width:none}.page-template-create .content>.alert{width:min(100%,682px);margin-bottom:16px}.page-template-create .template-layout{grid-template-columns:minmax(0,413px) minmax(0,253px);gap:16px;width:min(100%,682px)}.page-template-create .template-editor{gap:16px}.page-template-create .template-editor>.card{margin:0;padding:16px}.page-template-create .template-editor>.card:first-child{gap:16px}.page-template-create .template-side{min-width:0}.page-template-create .template-preview{top:calc(var(--top-h) + 16px);margin:0;padding:16px}.page-template-create .template-preview h2{font-size:14px}.page-template-create .template-preview .muted{font-size:11px}.page-template-create .review-list{display:none}.page-template-create .variable-toolbar{align-items:flex-start}.page-template-create .variable-toolbar h2{font-size:14px}.page-template-create .variable-toolbar .muted{font-size:11px}.page-template-create .variable-card{padding:12px}.page-template-create .actions{margin:0}

.settings-shell{width:100%}
.row-menu-panel button{justify-content:flex-start}
.content>form.card.form-grid{max-width:1000px}
.page-template-create .template-layout{grid-template-columns:1.5fr 1fr;width:100%}
.page-template-create .content>.alert{width:100%}
.variable-toolbar{justify-content:space-between;margin-bottom:15px}
@media(max-width:760px){.settings-shell{width:100%}.settings-grid,.settings-token-grid{grid-template-columns:1fr}.settings-grid label:last-child{grid-column:auto}.settings-test-form{position:static;margin-top:-54px;margin-left:174px}.page-template-create .content>.alert,.page-template-create .template-layout{width:100%}.page-template-create .template-layout{grid-template-columns:1fr}.page-template-create .template-side{grid-row:1}.page-template-create .template-preview{position:static}}
@media(max-width:460px){.settings-actions{display:grid}.settings-actions button{justify-content:center;width:100%}.settings-test-form{margin:0}.settings-test-form button{justify-content:center;width:100%}}
/* Conversaciones multicanal: lista, chat y ficha de contacto. */
.conversation-status-tabs{display:flex;align-items:center;gap:6px;min-height:40px;padding:6px 10px;border-bottom:1px solid var(--border)}.conversation-status-tabs button{min-height:28px;padding:5px 10px;border:0;border-radius:999px;background:transparent;color:var(--text-secondary);font-size:11px;font-weight:500}.conversation-status-tabs button:hover{background:var(--surface-subtle);color:var(--text)}.conversation-status-tabs button.active{background:var(--brand-soft);color:var(--brand)}.conversation-channel-tabs{display:grid;grid-template-columns:1.3fr repeat(2,1fr);align-items:center;gap:0;min-height:40px;padding:5px 10px;border-bottom:1px solid var(--border)}.conversation-channel-tabs button{min-width:0;min-height:28px;padding:5px 8px;border:0;border-radius:999px;background:transparent;color:var(--text-secondary);font-size:11px;font-weight:500}.conversation-channel-tabs button:hover{background:var(--surface-subtle);color:var(--text)}.conversation-channel-tabs button.active{background:var(--surface-subtle);color:var(--text);box-shadow:none}.conversation-channel-tabs svg{width:14px;height:14px}.channel-service-notice{display:grid;place-items:center;align-content:center;gap:10px;flex:1;padding:28px;text-align:center}.channel-service-icon{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--border);border-radius:14px;color:var(--text-secondary)}.channel-service-icon svg{width:22px;height:22px}.channel-service-notice h2{margin:0;font-size:15px}.channel-service-notice p{max-width:245px;margin:0;color:var(--text-secondary);font-size:12px}.channel-service-notice button{margin-top:5px}.channel-badge{display:inline-flex;align-items:center;margin-left:7px;padding:2px 7px;border:1px solid color-mix(in srgb,var(--brand) 40%,var(--border));border-radius:5px;background:var(--brand-soft);color:var(--brand);font-size:10px;font-weight:500;vertical-align:middle}.conversation-contact-panel{display:none;min-width:0;border-left:1px solid var(--border);background:var(--surface)}.contact-panel-profile{display:grid;justify-items:center;padding:28px 18px 20px;border-bottom:1px solid var(--border);text-align:center}.contact-panel-avatar{display:grid;place-items:center;width:54px;height:54px;margin-bottom:12px;border-radius:50%;background:var(--surface-subtle);font-size:18px;font-weight:600}.contact-panel-profile strong{font-weight:600}.contact-panel-profile small{color:var(--text-secondary)}.contact-panel-section{display:grid;gap:12px;padding:18px;border-bottom:1px solid var(--border)}.contact-panel-section h2{margin:0;color:var(--text-secondary);font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}.contact-panel-section p{margin:0}.contact-panel-email{display:flex;align-items:center;gap:8px;min-width:0;color:var(--text);font-size:12px}.contact-panel-email span{overflow:hidden;text-overflow:ellipsis}.contact-panel-email svg,.contact-panel-link svg{flex:0 0 auto;width:15px;height:15px}.contact-panel-link{width:100%;min-height:34px;font-size:12px}.contact-panel-future{gap:9px}.contact-panel-future small{color:var(--text-secondary);font-size:10px}.contact-panel-control{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;width:100%;min-height:34px;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text);text-align:left}.contact-panel-control svg{width:14px;height:14px;color:var(--text-secondary)}.contact-panel-empty{color:var(--text-secondary);font-size:11px}
.channel-workspace-notice{display:none;place-items:center;align-content:center;gap:12px;min-width:0;padding:40px;text-align:center}.channel-workspace-notice h2{margin:0;font-size:18px;font-weight:600}.channel-workspace-notice p{max-width:360px;margin:0;color:var(--text-secondary)}.channel-workspace-notice button{margin-top:4px}
@media(min-width:1200px){body.chat-selected .conversation-shell{grid-template-columns:340px minmax(0,1fr) 238px}.conversation-contact-panel{display:block}.conversation-shell.channel-locked{grid-template-columns:340px minmax(0,1fr)}.conversation-shell.channel-locked .conversation-panel,.conversation-shell.channel-locked .conversation-contact-panel,.conversation-shell.channel-locked .channel-service-notice{display:none}.conversation-shell.channel-locked .channel-workspace-notice{display:grid}}
@media(max-width:560px){.conversation-status-tabs{overflow-x:auto}.conversation-channel-tabs button{min-height:34px}.conversation-channel-tabs svg{width:17px;height:17px}}

/* Planificacion de campanas por cupos. */
.campaign-rate{display:grid;gap:10px;padding-top:18px;border-top:1px solid var(--border)}
.campaign-rate h2{margin:0;font-size:13px}
.campaign-rate-grid,.campaign-schedule-form{display:grid;grid-template-columns:minmax(120px,1fr) minmax(100px,.75fr) minmax(130px,1fr);gap:12px;align-items:end}
.campaign-schedule-form{grid-template-columns:minmax(110px,150px) minmax(90px,120px) minmax(130px,160px) auto;margin:18px 0;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-subtle)}
@media(max-width:720px){.campaign-rate-grid,.campaign-schedule-form{grid-template-columns:1fr}}

/* IA híbrida: configuración, fuentes y control por conversación. */
.ai-settings-shell,.ai-sources-shell{display:grid;gap:24px;width:min(100%,1100px)}
.ai-settings-shell>.card,.ai-sources-shell>.card{margin:0;padding:20px}
.ai-settings-shell h2,.ai-sources-shell h2{margin:0 0 8px;font-size:16px}
.ai-sources-shell{grid-template-columns:1fr;align-items:start}
.ai-source-editor{display:grid;gap:20px;width:min(100%,900px)}
.ai-source-editor>form{width:100%}
.source-upload{margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}
.ai-source-list table{min-width:620px}.ai-source-list td strong,.ai-source-list td small{display:block}
.danger-text{margin-top:5px;color:var(--danger)}
.ai-conversation-control label{display:flex;align-items:center;gap:9px;font-weight:500}
.ai-conversation-control input{width:18px;min-height:18px;accent-color:var(--brand)}
.ai-conversation-control small{color:var(--text-secondary);line-height:1.45}
@media(max-width:900px){.ai-source-list .section-head{align-items:flex-start}.ai-source-list .section-head .actions{width:100%}.ai-source-list .section-head .actions .btn{flex:1}}

/* Historial de campañas, estados y etiquetas de conversaciones. */
.conversation-status-tabs a{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border-radius:999px;color:var(--text-secondary);font-size:11px;font-weight:500;text-decoration:none}
.conversation-status-tabs a:hover{background:var(--surface-subtle);color:var(--text)}
.conversation-status-tabs a.active{background:var(--brand-soft);color:var(--brand)}
.conversation-channel-tabs a{display:inline-flex;align-items:center;justify-content:center;min-width:0;min-height:28px;padding:5px 8px;border-radius:999px;color:var(--text-secondary);font-size:11px;font-weight:500;text-decoration:none}.conversation-channel-tabs a:hover{background:var(--surface-subtle);color:var(--text)}.conversation-channel-tabs a.active{background:var(--surface-subtle);color:var(--text)}
.social-inbox .composer{display:block}.social-inbox .composer-form{width:100%;grid-template-columns:38px minmax(0,1fr) 38px}.social-inbox .composer textarea{display:block;width:100%;min-width:0;min-height:38px;max-height:160px;overflow-y:hidden;resize:none}.social-inbox .composer .attach-button:disabled{opacity:.58;cursor:not-allowed}.social-inbox .composer-error,.social-inbox .composer-help{grid-column:2/4}.social-inbox .social-unavailable[hidden]{display:none}.conversation-channel-tabs a svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.channel-status-summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.channel-status-summary .badge{gap:6px}.channel-test-row{display:flex;align-items:center;gap:12px;margin:0 0 16px}.connection-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.connection-actions form{margin:0}
.conversation-tag-filter{position:relative;padding:8px 10px;border-bottom:1px solid var(--border)}.conversation-tag-filter details{position:relative}.conversation-tag-filter summary{display:flex;align-items:center;gap:7px;min-height:32px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);font-size:11px;cursor:pointer;list-style:none}.conversation-tag-filter summary::-webkit-details-marker{display:none}.conversation-tag-filter summary svg{width:14px;height:14px}.conversation-tag-filter fieldset{position:absolute;z-index:20;top:38px;left:0;display:grid;gap:8px;width:min(280px,calc(100vw - 32px));padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-lg)}.conversation-tag-filter label{display:flex;align-items:center;gap:8px}.conversation-tag-filter label>input{width:16px;min-height:16px;accent-color:var(--brand)}.conversation-tag-filter .actions{display:flex;gap:8px;margin-top:4px}.conversation-tag-filter .actions>*{min-height:32px;padding:6px 10px;font-size:11px}
.conversation-panel,body.chat-selected .conversation-panel{grid-template-rows:auto auto minmax(0,1fr) auto}
.chat-tag-strip{display:flex;align-items:center;gap:7px;min-height:32px;padding:6px 14px;border-bottom:1px solid var(--border);overflow-x:auto;background:var(--app-bg)}
.message-origin{display:flex;align-items:center;gap:5px;margin-bottom:5px;color:color-mix(in srgb,var(--text) 68%,transparent);font-size:10px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}
.message-origin svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.contact-panel-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.tag-add-toggle{display:grid;place-items:center;width:26px;height:26px;padding:0;border:0;background:transparent;color:var(--brand);font-size:20px;font-weight:400}.tag-add-toggle:hover{background:var(--brand-soft)}
.tag-create-form{display:grid;gap:9px}.tag-create-form input{min-height:34px;font-size:12px}.tag-create-form .btn{min-height:32px;font-size:11px}.tag-error,.state-error{margin:0;color:var(--danger);font-size:11px}
.tag-color-palette{display:grid;grid-template-columns:repeat(9,1fr);gap:4px;width:100%}.tag-color{display:grid;place-items:center;width:100%;height:22px;padding:0;border:1px solid transparent;border-radius:5px;background:transparent}.tag-color.selected{border-color:var(--text-secondary);background:var(--surface-raised)}
.assigned-tags,.chat-tag-strip{display:flex;flex-wrap:wrap;gap:6px}.conversation-tag{display:inline-flex;align-items:center;min-height:26px;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-secondary);font-size:10px;font-weight:500;white-space:nowrap}.conversation-tag:hover{background:var(--surface-hover);color:var(--text)}.conversation-tag.is-assigned{border-color:color-mix(in srgb,var(--tag-color) 52%,var(--border));background:color-mix(in srgb,var(--tag-color) 15%,transparent);color:var(--tag-color)}.tag-color .tag-dot{width:8px;height:8px;border-radius:50%;background:var(--tag-color)}
.tag-red{--tag-color:#f87171}.tag-orange{--tag-color:#fb923c}.tag-yellow{--tag-color:#facc15}.tag-green{--tag-color:#4ade80}.tag-teal{--tag-color:#2dd4bf}.tag-blue{--tag-color:#60a5fa}.tag-indigo{--tag-color:#818cf8}.tag-purple{--tag-color:#c084fc}.tag-pink{--tag-color:#f472b6}.tag-gray{--tag-color:#9ca3af}
.contact-panel-control{appearance:auto}.custom-css-shell{display:grid;gap:16px;width:min(100%,1000px)}.custom-css-form{display:grid;gap:12px}.custom-css-form textarea{min-height:520px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;line-height:1.55;tab-size:4;resize:vertical}

/* El chat ocupa exactamente el viewport disponible. El historial es la unica
   fila flexible y el compositor permanece visible en el borde inferior. */
.page-conversations #main-content{display:grid;grid-template-rows:var(--top-h) minmax(0,1fr);height:100dvh;min-height:0;overflow:hidden}
.page-conversations .top{height:var(--top-h);min-height:0}
.page-conversations .content{height:auto;min-height:0;overflow:hidden}
.page-conversations .conversation-shell{height:100%;max-height:100%;min-height:0;overflow:hidden}
.page-conversations .conversation-list-pane,.page-conversations .conversation-panel{height:100%;min-height:0;overflow:hidden}
.page-conversations .conversation-list{min-height:0}
.page-conversations .conversation-panel{grid-template-rows:auto minmax(0,1fr) auto!important}
.page-conversations .chat-header{grid-row:1}
.page-conversations .messages{grid-row:2}
.page-conversations .composer,.page-conversations .closed-composer{grid-row:3}
.page-conversations .messages{min-height:0;overflow-y:auto}
.page-conversations .composer,.page-conversations .closed-composer{min-height:0}
.page-conversations .conversation-contact-panel{height:100%;min-height:0;overflow-y:auto}
.data-connections-shell,.connection-edit-shell{display:grid;gap:24px;width:100%}.connection-edit-shell>form{width:min(100%,900px)}.data-connections-shell table td:first-child small,.data-connections-shell table td:nth-child(4) small{display:block;margin-top:5px}.settings-shell{display:grid;gap:24px;width:100%}.settings-shell>form{width:min(100%,900px)}.section-divider{border-top:1px solid var(--border);padding-top:20px;margin-top:4px}

/* Navigation hierarchy */
.client-context a{display:inline-flex;margin-top:7px;color:var(--brand);font-size:11px;font-weight:600}.client-context a:hover{text-decoration:underline;text-underline-offset:3px}
.sidebar nav .nav-group{margin:0;border:0;border-radius:9px}.sidebar nav .nav-group>summary{display:flex;align-items:center;gap:12px;min-height:38px;padding:0 12px;border-radius:9px;color:var(--sidebar-text);font-size:14px;font-weight:500;list-style:none}.sidebar nav .nav-group>summary::-webkit-details-marker{display:none}.sidebar nav .nav-group>summary:hover{background:var(--sidebar-hover);color:#e5e7eb}.sidebar nav .nav-group>summary>svg:first-child{width:19px;height:19px;flex:0 0 19px}.sidebar nav .nav-group .nav-chevron{width:15px;height:15px;margin-left:auto;transition:transform var(--transition)}.sidebar nav .nav-group[open] .nav-chevron{transform:rotate(90deg)}.sidebar nav .nav-group>div{display:grid;gap:3px;margin:3px 0 4px 18px;padding-left:11px;border-left:1px solid var(--border)}.sidebar nav .nav-group>div a{min-height:34px;font-size:13px}.sidebar nav .nav-group:has(a[aria-current="page"])>summary{color:var(--brand)}
.conversation-nav-tag .tag-dot{flex:0 0 7px;width:7px;height:7px;border-radius:50%;background:var(--tag-color)}
.composer-modes{display:flex;align-items:stretch;gap:6px;margin:0 -14px;padding:0 14px;border-bottom:1px solid var(--border)}.composer-modes button{display:flex;align-items:center;justify-content:center;height:44px;min-height:44px;padding:0 10px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--text-secondary);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.composer-modes button.active{border-bottom-color:var(--brand);color:var(--brand)}.composer-modes button:disabled{opacity:.52;cursor:not-allowed}
.composer-modes [data-composer-mode="private_note"].active{border-bottom-color:#f5c451;color:#f5c451}.composer-modes [data-composer-mode="ai_correction"].active{border-bottom-color:#a78bfa;color:#a78bfa}

/* Global and client configuration */
.settings-section-nav,.client-settings-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.settings-section-nav a,.client-settings-tabs a{display:inline-flex;align-items:center;min-height:38px;padding:8px 14px;border:1px solid var(--border);border-radius:9px;color:var(--text-secondary);font-size:13px;font-weight:500}.settings-section-nav a:hover,.client-settings-tabs a:hover{border-color:var(--border-strong);color:var(--text)}.client-settings-tabs a.active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.client-settings-tabs a.disabled{pointer-events:none;opacity:.45}
.global-settings-shell{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:1180px}.integration-card{margin:0;scroll-margin-top:84px}.integration-card .section-head{align-items:flex-start}.integration-card form{margin-top:18px}.integration-card .badge{flex:0 0 auto}.client-settings-shell{display:grid;gap:18px;width:min(100%,1000px)}.client-settings-shell>.card{margin:0}.client-settings-shell>.form-grid{max-width:760px}.client-settings-shell .compact-list{display:grid;margin-top:14px;border:1px solid var(--border);border-radius:10px;overflow:hidden}.client-settings-shell .compact-list>div{display:grid;grid-template-columns:minmax(140px,1fr) minmax(180px,1.4fr) auto;align-items:center;gap:14px;padding:12px 14px;border-bottom:1px solid var(--border)}.client-settings-shell .compact-list>div:last-child{border-bottom:0}.client-settings-shell .compact-list span{color:var(--text-secondary)}.service-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.service-heading h2{margin-bottom:4px}.service-heading p{margin:0}.service-heading .switch{display:flex;flex-direction:row;align-items:center;gap:9px;white-space:nowrap}.service-heading .switch input{width:18px;min-height:18px}.inline-action-form{display:flex;align-items:center;gap:12px;margin:0}.page-client-settings .content,.page-global-settings .content{width:100%}
@media(max-width:800px){.global-settings-shell{grid-template-columns:1fr}.client-settings-shell .compact-list>div{grid-template-columns:1fr;gap:5px}.service-heading{flex-direction:column}.settings-section-nav,.client-settings-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.settings-section-nav a,.client-settings-tabs a{white-space:nowrap}}

/* Global settings: one integration panel at a time. */
.settings-section-nav a.active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.global-settings-shell{display:block;width:min(100%,820px);max-width:none}
.global-settings-shell>.integration-card{width:100%}
.source-option[href]{color:var(--text);text-decoration:none}.source-option[href]:hover{border-color:var(--brand);background:var(--surface-subtle)}.source-option[href]>svg{width:20px;height:20px;flex:0 0 20px;margin-top:2px}

/* Consolidated interface adjustments */
.login-shell .card{max-width:430px}
.mapping-summary{flex-direction:column}
.channel-workspace-notice{border-left:1px solid var(--border)}
.side-user .text-btn{justify-content:flex-start}
.integration-card .section-head{margin-bottom:10px}
.chat-header .alert{width:auto}
.window-status{padding:10px}
.page-conversations .alert{max-width:100%;margin-bottom:0}
.conversation-status-tabs{justify-content:space-between}

/* Bandeja unificada de conversaciones */
.conversation-list-toolbar{position:relative;z-index:4;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px;border-bottom:1px solid var(--border);background:var(--app-bg)}
.conversation-list-toolbar .conversation-search{min-width:0}.conversation-list-toolbar .conversation-search input{height:38px;padding-left:38px;border-radius:8px;background:var(--surface)}.conversation-list-toolbar .conversation-search svg{top:10px;left:11px;width:17px;height:17px}
.conversation-source-filter{position:relative}.conversation-source-filter>summary{display:flex;align-items:center;justify-content:center;gap:7px;min-width:38px;height:38px;padding:0 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text-secondary);cursor:pointer;list-style:none}.conversation-source-filter>summary::-webkit-details-marker{display:none}.conversation-source-filter>summary svg{width:16px;height:16px}.conversation-source-filter>summary span{display:none}
.conversation-source-menu{position:absolute;z-index:30;top:44px;right:0;display:grid;width:190px;padding:6px;border:1px solid var(--border);border-radius:10px;background:var(--surface-raised);box-shadow:var(--shadow-lg)}.conversation-source-menu a{min-height:34px;padding:7px 9px;border-radius:7px;color:var(--text);font-size:12px}.conversation-source-menu a:hover{background:var(--surface-subtle)}.conversation-source-menu a.active{background:var(--brand-soft);color:var(--brand)}
.conversation-status-tabs{min-height:42px;padding:6px 10px}.conversation-status-tabs a{justify-content:center;flex:1;min-width:max-content}
.conversation-item{position:relative;grid-template-columns:40px minmax(0,1fr) auto;min-height:76px;padding:10px 14px}.conversation-item.active::before{content:"";position:absolute;inset:8px auto 8px 0;width:3px;border-radius:0 3px 3px 0;background:var(--brand)}.conversation-item-heading{min-width:0;display:grid;align-content:center}.conversation-item-heading strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-source{margin-top:1px;overflow:hidden;color:var(--text-secondary);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.conversation-preview{margin-top:3px}.conversation-item.active{background:color-mix(in srgb,var(--brand) 8%,var(--surface));box-shadow:none}
.contact-panel-toggle{flex:0 0 38px;width:38px;height:38px;min-height:38px;background:transparent}.contact-panel-close{position:absolute;z-index:2;top:12px;right:12px;width:34px;height:34px;min-height:34px}
.conversation-contact-panel{position:relative}.page-conversations.contact-panel-collapsed .conversation-contact-panel{display:none}.page-conversations.contact-panel-collapsed .conversation-shell{grid-template-columns:320px minmax(0,1fr)!important}
.chat-header{gap:10px}.chat-header .window-status{margin-left:auto}.messages{padding:22px clamp(18px,4vw,52px)}.message{max-width:min(68%,520px);line-height:1.45}.message.out{background:color-mix(in srgb,var(--brand) 84%,#fff);color:#07130b}.page-conversations .composer{padding:0 14px 12px}.page-conversations .composer-form,.page-conversations .social-inbox .composer-form{position:relative;display:block;width:100%;max-width:none;min-height:136px;padding:10px 0 54px}.page-conversations .composer textarea,.page-conversations .social-inbox .composer textarea{display:block;width:100%;min-height:68px;max-height:120px;padding:8px 0;border:0;border-radius:0;background:transparent;box-shadow:none;resize:none}.page-conversations .composer textarea:focus{border:0;box-shadow:none}.page-conversations .composer-error{position:absolute;right:50px;bottom:12px;left:50px;margin:0}.page-conversations .attach-button,.page-conversations .send-button{position:absolute;bottom:4px;width:36px;height:36px;min-height:36px;border-radius:6px}.page-conversations .attach-button{left:0}.page-conversations .send-button{right:0}.page-conversations .file-preview{position:absolute;z-index:2;right:48px;bottom:0;left:48px;min-height:44px;margin:0}.page-conversations select.contact-panel-control{color-scheme:dark;background:var(--surface-raised);color:var(--text)}.page-conversations select.contact-panel-control option{background:#171a20;color:#f3f4f6}
.page-conversations .attach-button[hidden]{display:none!important}.message-row.internal{display:flex;justify-content:center}.message.internal{width:min(82%,620px);max-width:620px;border-style:dashed;border-color:color-mix(in srgb,#f5c451 45%,var(--border));border-radius:9px;background:color-mix(in srgb,#f5c451 8%,var(--surface));color:var(--text)}.message.internal.ai_correction{border-color:color-mix(in srgb,#a78bfa 48%,var(--border));background:color-mix(in srgb,#a78bfa 9%,var(--surface))}.internal-entry-label{margin-bottom:6px;color:#f5c451;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.message.ai_correction .internal-entry-label{color:#a78bfa}.message.internal .message-meta{justify-content:flex-end;color:var(--text-secondary)}
.chat-actions-menu{position:relative;flex:0 0 auto}.chat-actions-menu>summary{display:grid;place-items:center;width:38px;height:38px;min-height:38px;list-style:none}.chat-actions-menu>summary::-webkit-details-marker{display:none}.chat-actions-menu>div{position:absolute;z-index:40;top:44px;right:0;width:210px;padding:6px;border:1px solid var(--border);border-radius:10px;background:var(--surface-raised);box-shadow:var(--shadow-lg)}.chat-actions-menu form{margin:0}.chat-actions-menu button{justify-content:flex-start;width:100%;min-height:36px;padding:7px 9px;border:0;border-radius:7px;background:transparent}.chat-actions-menu button:hover{background:var(--danger-soft)}.chat-actions-menu button svg{width:17px;height:17px}
@media(min-width:960px){.page-conversations #main-content{grid-template-rows:minmax(0,1fr)}.page-conversations .top{display:none}.page-conversations .conversation-shell{grid-template-columns:300px minmax(0,1fr);height:100dvh}.page-conversations.contact-panel-collapsed .conversation-shell{grid-template-columns:300px minmax(0,1fr)!important}}
@media(min-width:1200px){body.chat-selected .conversation-shell{grid-template-columns:300px minmax(0,1fr) 270px}.conversation-contact-panel{display:block}}
@media(max-width:1199px){.page-conversations.contact-panel-open .conversation-contact-panel{position:fixed;z-index:60;top:0;right:0;display:block;width:min(92vw,320px);height:100dvh;overflow-y:auto;box-shadow:var(--shadow-lg)}.page-conversations.contact-panel-open::after{content:"";position:fixed;z-index:59;inset:0;background:rgba(0,0,0,.48)}}
@media(max-width:959px){.page-conversations .conversation-shell{display:block;width:100%;max-width:100%;overflow:hidden}.page-conversations .conversation-list-pane,.page-conversations .conversation-panel{width:100%;max-width:100%}body.chat-selected .conversation-list-pane{display:none}body:not(.chat-selected) .conversation-panel{display:none}.chat-header{min-width:0}.messages{width:100%;max-width:100%;overflow-x:hidden}.message{max-width:min(84%,520px)}.message-text{overflow-wrap:anywhere;word-break:break-word}}
@media(max-width:560px){.page-conversations .top{min-height:56px}.chat-header{min-height:62px;padding:8px 10px}.chat-header .conversation-avatar{width:36px;height:36px}.chat-identity h2{font-size:13px}.window-status{max-width:92px;padding:6px 8px}.contact-panel-toggle{width:36px;height:36px;min-height:36px}.messages{padding:14px 12px}.message{max-width:86%;font-size:14px}.page-conversations .composer{padding:0 10px calc(9px + env(safe-area-inset-bottom))}.composer-modes{gap:18px;margin:0 -10px;padding:0 10px}.composer-modes button{font-size:11px}.page-conversations .composer-form,.page-conversations .social-inbox .composer-form{min-height:112px;padding:8px 0 44px}.page-conversations .composer textarea,.page-conversations .social-inbox .composer textarea{min-height:60px}.conversation-source-filter>summary span{display:none}}
.social-inbox .composer-form.social-text-only{grid-template-columns:minmax(0,1fr) 38px}

/* Legacy structural adjustments pending component-level refinement */
.segments-layout,.fields-layout,.card,.client-settings-shell>.form-grid,.global-settings-shell,.contact-edit-form,.ai-source-editor,.alert,.custom-css-shell,.grid,.campaigns-summary,.table-wrap,.template-layout,.campaign-create-shell,.ai-settings-shell,.ai-sources-shell{width:100%;max-width:100%}
.table-wrap{overflow:visible}
@media(min-width:960px){
  .app{height:100dvh;min-height:0;overflow:hidden}
  #main-content{height:100dvh;min-height:0;overflow-y:auto;overscroll-behavior:contain}
  .sidebar{height:100dvh;min-height:0}
  .sidebar nav{min-height:0}
}
.conversation-channel-tabs a{border-radius:0}

/* Acciones exclusivas del superadministrador sobre entradas individuales. */
.message{position:relative}.message-delete{position:absolute;z-index:2;top:-9px;right:-9px;display:grid;place-items:center;width:26px;height:26px;padding:0;border:1px solid var(--border);border-radius:7px;background:var(--surface-raised);color:var(--text-secondary);cursor:pointer;opacity:0;transition:opacity var(--transition),color var(--transition),border-color var(--transition)}.message-delete svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}.message:hover .message-delete,.message-delete:focus-visible{opacity:1}.message-delete:hover{border-color:var(--danger);color:var(--danger)}.message-delete:disabled{opacity:.45;cursor:wait}@media(pointer:coarse){.message-delete{opacity:1}}

/* Channels: clearer scalable connection management */
.page-channels .settings-shell{gap:22px}
.page-channels .section-head{align-items:flex-start;gap:18px}
.page-channels .section-head>.actions{justify-content:flex-end;margin:0}
.channels-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.channels-summary .metric{min-height:118px;padding:18px 20px}
.channels-summary .metric small{display:block;margin-bottom:8px;color:var(--text-secondary);font-size:12px;font-weight:650}
.channels-summary .metric strong{display:block;margin:0 0 7px;font-size:30px;line-height:1;letter-spacing:-.035em}
.channels-summary .metric span{display:block;color:var(--text-secondary);font-size:12px}
.channels-table{margin-top:2px}
.channels-table table{table-layout:fixed}
.channels-table th:nth-child(1){width:130px}
.channels-table th:nth-child(2){width:auto}
.channels-table th:nth-child(3){width:170px}
.channels-table th:nth-child(4){width:190px}
.channels-table th:nth-child(5){width:250px}
.channels-table .channel-row td{vertical-align:middle}
.channel-kind{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface-subtle);font-size:12px;font-weight:700;white-space:nowrap}
.channel-kind.whatsapp{color:#30b978}
.channel-kind.instagram{color:#c57adf}
.channel-kind.facebook{color:#6c9cff}
.channel-account{display:grid;gap:3px;min-width:0}
.channel-account strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.channel-account small{display:block;color:var(--text-secondary);font-size:11px}
.channel-identifier{display:block;color:var(--text-secondary);font-family:var(--font-mono);font-size:12px;letter-spacing:.01em}
.channel-verified{color:var(--text-secondary);font-size:12px}
.channels-table .connection-actions{justify-content:flex-end;flex-wrap:nowrap}
.channels-table .connection-actions button{min-height:36px;padding:7px 12px;font-size:12px}
@media(max-width:1100px){.channels-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.channels-table th:nth-child(4){width:160px}.channels-table th:nth-child(5){width:220px}}
@media(max-width:760px){.page-channels .section-head{display:grid}.page-channels .section-head>.actions{justify-content:flex-start}.channels-summary{grid-template-columns:1fr 1fr}.channels-summary .metric{min-height:104px}.channels-table .connection-actions{justify-content:flex-start;flex-wrap:wrap}.channel-account{max-width:100%!important;text-align:right}.channel-identifier{white-space:normal}.channel-kind{max-width:none!important}}
@media(max-width:480px){.channels-summary{grid-template-columns:1fr}}

/* R7: one WhatsApp entry point while keeping Meta's two official onboarding paths. */
.wa-connect-menu{position:relative}
.wa-connect-menu>summary{list-style:none;cursor:pointer;user-select:none}
.wa-connect-menu>summary::-webkit-details-marker{display:none}
.wa-connect-menu[open]>summary{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 28%,transparent)}
.wa-connect-options{position:absolute;z-index:30;top:calc(100% + 8px);right:0;display:grid;gap:8px;width:min(360px,calc(100vw - 32px));padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface-raised);box-shadow:0 14px 34px rgba(0,0,0,.22)}
.wa-connect-options button{display:grid;gap:3px;width:100%;min-height:0;padding:12px 14px;text-align:left}
.wa-connect-options button strong{font-size:13px}
.wa-connect-options button small{color:var(--text-secondary);font-size:11px;font-weight:500;line-height:1.35}
@media(max-width:760px){.wa-connect-options{right:auto;left:0}}


/* R9 bot editor */
.bot-form{display:grid;gap:18px;max-width:1100px}.bot-form>.card{display:grid;gap:16px}.bot-channel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.channel-choice{display:flex!important;align-items:center;gap:10px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);cursor:pointer}.channel-choice input{width:auto!important;margin:0}.channel-choice span{display:grid;gap:3px}.channel-choice small{color:var(--muted)}.page-ai-general .settings-shell{max-width:1000px}

/* R10 — Bots UX: simple on the surface, modular underneath */
.bots-shell-v2,.bot-editor-v2{width:min(100%,1120px);display:grid;gap:22px}.bots-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.bots-head h2{margin:0 0 5px;font-size:20px}.bots-head p{margin:0;color:var(--text-secondary)}.bots-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.bots-summary>div{padding:16px 18px;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.bots-summary strong{display:block;font-size:24px;line-height:1.1}.bots-summary span{display:block;margin-top:5px;color:var(--text-secondary);font-size:12px}.bot-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.bot-list-card{display:grid;gap:18px;padding:20px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:0 8px 26px rgba(0,0,0,.08)}.bot-list-top{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:12px}.bot-avatar{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--brand) 18%,transparent);color:var(--brand);font-weight:800;font-size:12px}.bot-list-card h3{margin:1px 0 4px;font-size:16px}.bot-list-card p{margin:0;color:var(--text-secondary);font-size:12px}.status-pill{padding:5px 8px;border-radius:999px;font-size:10px;font-weight:700}.status-pill.on{color:#43e18a;background:rgba(37,181,103,.14)}.status-pill.off{color:var(--text-secondary);background:var(--surface-2)}.bot-card-stats{display:flex;flex-wrap:wrap;gap:8px}.bot-card-stats span{padding:7px 9px;border-radius:9px;background:var(--surface-2);color:var(--text-secondary);font-size:11px}.bot-card-stats strong{color:var(--text)}.bot-card-action{display:flex;justify-content:flex-end;padding-top:2px}.bot-empty{grid-column:1/-1}
.bot-form-v2{display:grid;gap:16px;padding-bottom:88px}.bot-hero-card,.bot-panel,.bot-advanced{border:1px solid var(--border);border-radius:16px;background:var(--surface)}.bot-hero-card{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:22px}.bot-hero-copy h2{margin:3px 0 5px;font-size:22px}.bot-hero-copy p{margin:0;color:var(--text-secondary)}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--brand)}.status-toggle,.simple-toggle{display:flex!important;align-items:center;gap:10px}.status-toggle input,.simple-toggle input{position:absolute;opacity:0;pointer-events:none}.status-toggle>span,.simple-toggle>span{position:relative;width:38px;height:22px;border-radius:999px;background:var(--surface-3);border:1px solid var(--border);transition:.2s}.status-toggle>span:after,.simple-toggle>span:after{content:"";position:absolute;width:16px;height:16px;left:2px;top:2px;border-radius:50%;background:#fff;transition:.2s}.status-toggle input:checked+span,.simple-toggle input:checked+span{background:var(--brand);border-color:var(--brand)}.status-toggle input:checked+span:after,.simple-toggle input:checked+span:after{transform:translateX(16px)}.status-toggle em{font-style:normal;font-size:12px;font-weight:700}.bot-panel{padding:22px;display:grid;gap:16px}.bot-panel-head{display:flex;align-items:flex-start;gap:12px}.bot-panel-head>div{flex:1}.bot-panel-head h3{margin:0 0 4px;font-size:16px}.bot-panel-head p{margin:0;color:var(--text-secondary);font-size:12px}.step-badge{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:color-mix(in srgb,var(--brand) 16%,transparent);color:var(--brand);font-size:11px;font-weight:800}.text-action{color:var(--brand);font-size:12px;font-weight:700;white-space:nowrap}.choice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.choice-card{position:relative;display:flex!important;align-items:center;gap:11px;padding:13px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);cursor:pointer;transition:.15s}.choice-card:hover{border-color:color-mix(in srgb,var(--brand) 45%,var(--border))}.choice-card input{position:absolute;opacity:0}.choice-check{width:18px;height:18px;border-radius:6px;border:1px solid var(--border-strong);display:grid;place-items:center;flex:0 0 auto}.choice-card input:checked+.choice-check{background:var(--brand);border-color:var(--brand)}.choice-card input:checked+.choice-check:after{content:"✓";font-size:12px;font-weight:900;color:#08130d}.choice-card strong,.choice-card small{display:block}.choice-card strong{font-size:12px}.choice-card small{margin-top:2px;color:var(--text-secondary);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.choice-card:has(input:checked){border-color:color-mix(in srgb,var(--brand) 55%,var(--border));background:color-mix(in srgb,var(--brand) 7%,var(--surface-2))}.toggle-stack{display:grid;gap:10px}.simple-toggle{padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);cursor:pointer}.simple-toggle div{display:grid;gap:2px}.simple-toggle strong{font-size:12px}.simple-toggle small{color:var(--text-secondary);font-size:10px}.bot-advanced{overflow:hidden}.bot-advanced>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px}.bot-advanced>summary::-webkit-details-marker{display:none}.bot-advanced summary span:first-child{display:grid;gap:3px}.bot-advanced summary small{color:var(--text-secondary);font-weight:400}.bot-advanced .chevron{font-size:20px;transition:.2s}.bot-advanced[open] .chevron{transform:rotate(180deg)}.advanced-content{display:grid;gap:16px;padding:0 22px 22px;border-top:1px solid var(--border);padding-top:18px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.empty-inline{grid-column:1/-1;padding:14px;border:1px dashed var(--border);border-radius:12px;color:var(--text-secondary);font-size:12px}.sticky-actions{position:sticky;bottom:14px;z-index:8;display:flex;justify-content:flex-end;gap:10px;padding:10px;border:1px solid var(--border);border-radius:14px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(12px);box-shadow:0 10px 30px rgba(0,0,0,.16)}
.sources-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:22px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.sources-intro h2{margin:4px 0 6px}.sources-intro p{margin:0;color:var(--text-secondary)}
@media(max-width:760px){.bots-head,.sources-intro{align-items:stretch;flex-direction:column}.bots-summary{grid-template-columns:1fr 1fr}.bots-summary>div:first-child{grid-column:1/-1}.bot-card-grid{grid-template-columns:1fr}.bot-hero-card{grid-template-columns:1fr}.bot-panel{padding:17px}.bot-panel-head{flex-wrap:wrap}.bot-panel-head .text-action{margin-left:38px}.choice-grid{grid-template-columns:1fr}.form-grid.three{grid-template-columns:1fr}.sticky-actions{bottom:8px}.bot-list-top{grid-template-columns:auto 1fr}.bot-list-top .status-pill{grid-column:2;justify-self:start}.sources-intro .actions{display:grid;grid-template-columns:1fr 1fr}}

/* R11 — Bots/channel UX hardening: full width, one page scroll, accessible contrast. */
.page-bots .content,.page-bot-edit .content,.page-channels .content{width:100%;max-width:none}
.bots-shell-v2,.bot-editor-v2{width:100%;max-width:none}
.bot-form-v2{width:100%}
.bot-hero-card,.bot-panel,.bot-advanced{width:100%}
.bot-avatar,.eyebrow,.step-badge,.text-action{color:var(--brand)}
.bot-avatar,.step-badge{background:color-mix(in srgb,var(--brand) 16%,transparent)}
.status-toggle>span,.simple-toggle>span{background:var(--surface-subtle);border-color:var(--border-strong)}
.status-toggle input:checked+span,.simple-toggle input:checked+span{background:var(--brand);border-color:var(--brand)}
.status-toggle>span:after,.simple-toggle>span:after{background:var(--surface-raised);box-shadow:0 1px 2px rgba(0,0,0,.28)}
.choice-card{background:var(--surface-subtle);border-color:var(--border-strong);color:var(--text)}
.choice-card:hover{border-color:color-mix(in srgb,var(--brand) 55%,var(--border-strong));background:var(--surface-raised)}
.choice-check{border-color:var(--border-strong);background:var(--surface)}
.choice-card input:checked+.choice-check{background:var(--brand);border-color:var(--brand)}
.choice-card input:checked+.choice-check:after{color:var(--brand-contrast)}
.choice-card:has(input:checked){border-color:color-mix(in srgb,var(--brand) 72%,var(--border));background:color-mix(in srgb,var(--brand) 10%,var(--surface))}
.choice-copy{min-width:0;display:block}.choice-copy strong,.choice-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.choice-copy small{max-width:none}
.status-pill.on{color:var(--success);background:var(--success-soft)}.status-pill.off{color:var(--text-secondary);background:var(--surface-subtle)}
.bot-card-stats span{background:var(--surface-subtle);color:var(--text-secondary)}
.sticky-actions{background:color-mix(in srgb,var(--surface) 96%,transparent)}

/* Channel aliases are optional; the real Meta identity remains visible. */
.channel-identifier{display:block;color:var(--text-secondary);font-size:12px;line-height:1.35}
.connection-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}
.channel-rename{position:relative;margin:0}.channel-rename>summary{list-style:none}.channel-rename>summary::-webkit-details-marker{display:none}
.channel-rename-form{position:absolute;z-index:30;top:calc(100% + 8px);right:0;width:260px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-raised);box-shadow:var(--shadow-md)}
.channel-rename-form label{gap:6px;font-size:12px}.channel-rename-form input{margin-bottom:10px}.channel-rename-form button{width:100%}

@media(min-width:960px){
  html,body{height:100%;overflow:hidden}
  .app{height:100dvh;min-height:0;overflow:hidden}
  #main-content{height:100dvh;min-height:0;overflow-y:auto;overflow-x:hidden}
  .page-bots .content,.page-bot-edit .content,.page-channels .content{min-height:0}
}
@media(max-width:760px){.connection-actions{justify-content:flex-start}.channel-rename-form{position:fixed;right:12px;bottom:12px;left:12px;top:auto;width:auto}}

/* R12: bot ownership, portability and inline contact memory */
.choice-card.is-disabled{cursor:not-allowed;opacity:.62;background:var(--surface-subtle)}
.choice-card.is-disabled:hover{border-color:var(--border-strong);background:var(--surface-subtle)}
.choice-card.is-disabled .choice-check{background:var(--surface);border-style:dashed}
.choice-card .choice-owner{margin-top:5px!important;color:var(--warning,#d69e2e)!important;font-weight:700;white-space:normal;max-width:none}
.bots-head-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.bot-import-form{display:flex;align-items:center;margin:0}
.bot-card-action{gap:8px;flex-wrap:wrap}
.contact-memory-shell{width:100%;display:grid;gap:14px;margin-top:22px;padding-top:22px;border-top:1px solid var(--border)}
.contact-memory-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
.contact-memory-head h2{margin:4px 0 4px;font-size:20px}
.contact-memory-head p{margin:0;color:var(--text-secondary);font-size:12px;max-width:760px}
.contact-memory-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);gap:14px;align-items:start}
.contact-memory-card{display:grid;gap:14px;padding:20px}
.contact-memory-card h3{margin:0 0 3px;font-size:15px}
.contact-memory-card>div>p{margin:0;color:var(--text-secondary);font-size:11px}
.contact-event-form{display:grid;gap:12px;padding-top:2px}
.contact-event-list{display:grid;gap:8px;max-height:440px;overflow:auto;padding-right:4px}
.contact-event-list article{display:grid;grid-template-columns:1fr auto;gap:14px;padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-subtle)}
.contact-event-list strong,.contact-event-list small{display:block}.contact-event-list small{margin-top:3px;color:var(--text-secondary);font-size:10px}.contact-event-list p{margin:7px 0 0;font-size:11px;line-height:1.5}.contact-event-list form{margin:0}
.page-contact-edit .content{width:100%;max-width:none}
@media(max-width:900px){.contact-memory-grid{grid-template-columns:1fr}}
@media(max-width:760px){.bots-head-actions{width:100%}.bots-head-actions .btn,.bot-import-form{flex:1}.bot-import-form label{width:100%;justify-content:center}.contact-memory-card{padding:16px}.contact-memory-head{align-items:flex-start;flex-direction:column}}
