/* R52 · Workspace integrado. El shell ocupa el viewport; cada panel posee su scroll.
   <=760: lista/chat/detalle. 761–1279: dos paneles + drawer. >=1280: detalle opcional. */
body.is-concierge-app:not(.staff-crm-mode) {
  height:var(--inbox-viewport,100dvh);
  min-height:0;
  overflow:hidden;
}
body.is-concierge-app:not(.staff-crm-mode) #ikatuApp {
  height:100%;
  min-height:0;
  display:grid;
  grid-template-rows:64px minmax(0,1fr);
}
body.is-concierge-app:not(.staff-crm-mode) .concierge-appbar { display:none; }
body.is-concierge-app:not(.staff-crm-mode) .concierge-app-view { --chat-green:var(--brand); --chat-green-soft:color-mix(in srgb,var(--brand) 12%,var(--surface)); }
body.is-concierge-app:not(.staff-crm-mode) :is(.concierge-owner-avatar,.concierge-thread-icon,.concierge-send,#conciergeUnreadCount) { color:var(--surface); }
body.is-concierge-app:not(.staff-crm-mode) .topbar { position:relative; top:auto; height:64px; padding:8px 18px; }
body.is-concierge-app:not(.staff-crm-mode) .desktop-shell {
  width:100%; max-width:none; height:100%; min-height:0;
  grid-template-columns:80px minmax(0,1fr); gap:0; padding:0; margin:0; overflow:hidden;
}
body.is-concierge-app:not(.staff-crm-mode) :is(.workspace,.concierge-app-view) {
  height:100%; min-height:0; min-width:0; padding:0; overflow:hidden;
}
body.is-concierge-app:not(.staff-crm-mode) .left-rail {
  position:static; height:100%; overflow:auto; padding:12px 8px;
  border-right:1px solid var(--line); background:var(--bg);
}
.rail-apps-button { width:100%; border:0; background:transparent; font-family:inherit; cursor:pointer; }
body.is-concierge-app:not(.staff-crm-mode) .rail-link { min-height:60px; padding:8px 2px; flex-direction:column; gap:4px; font-size:11px; border-radius:12px; }
body.is-concierge-app:not(.staff-crm-mode) :is(.ikatu-natural-trigger,.ikatu-charm-dock,.ikatu-cat-habitat,.ikatu-cat-restore,.ikatu-conversation-bridge) { display:none!important; }
body.is-concierge-app:not(.staff-crm-mode) .concierge-layout {
  width:100%; max-width:100%; height:100%; min-height:0;
  grid-template-columns:clamp(280px,27vw,340px) minmax(0,1fr);
  border:0; border-radius:0; box-shadow:none;
}
body.is-concierge-app:not(.staff-crm-mode) .concierge-plan-panel[hidden],
.concierge-detail-backdrop[hidden] { display:none!important; }
.concierge-inbox,.concierge-chat { overflow:hidden; }
.concierge-inbox-list,.concierge-messages,.concierge-plan-panel { overscroll-behavior:contain; scrollbar-gutter:stable; }
.concierge-inbox-head,.concierge-chat-head,.concierge-form,.concierge-search,.concierge-filters { flex-shrink:0; }
.concierge-chat-head .concierge-owner-avatar { box-shadow:none; }
body.is-concierge-app:not(.staff-crm-mode) .concierge-owner-avatar i { display:none; }
.concierge-detail-backdrop { position:absolute; inset:0; z-index:5; border:0; background:rgba(10,25,22,.24); cursor:pointer; }
body.is-concierge-app:not(.staff-crm-mode) .concierge-plan-panel {
  position:absolute; z-index:6; top:0; right:0; bottom:0; width:min(380px,85%);
  transform:none; transition:none; background:var(--surface);
  box-shadow:-12px 0 32px rgba(18,42,34,.12);
}
.concierge-detail-head .concierge-pane-back { display:grid; font-size:26px; }
#conciergeDetailsButton { width:auto; flex-basis:auto; display:flex; gap:8px; padding:0 12px; border-radius:12px; }
.concierge-detail-label { font-size:13px; font-weight:700; }
#conciergeDetailsButton[aria-expanded="true"] { background:var(--surface-3); }
body.is-concierge-app:not(.staff-crm-mode) :is(button,a,input,textarea):focus-visible { outline:3px solid var(--brand); outline-offset:2px; }

.concierge-inbox-head { min-height:72px; padding:12px 16px; }
.concierge-inbox-head h1 { font-size:24px; letter-spacing:-.03em; }
.concierge-inbox-head > div:last-child { display:flex; align-items:center; gap:7px; }
.concierge-inbox-head > div:last-child > span {
  min-width:25px;
  height:25px;
  padding:0 7px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--chat-green);
  color:#fff;
  font-size:12px;
  font-weight:950;
}
.concierge-inbox-head > div:last-child > button {
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  background:var(--brand);
  color:var(--surface);
  cursor:pointer;
  font-size:18px;
  font-weight:800;
}
html[data-mode="dark"] .concierge-inbox-head > div:last-child > button { color:var(--bg); }
.concierge-search { height:44px; margin:0 12px 10px; border-radius:12px; }
.concierge-search input { font-size:15px; }
.concierge-filters { gap:5px; padding:0 12px 10px; flex-wrap:wrap; overflow:visible; }
.inbox-filter { min-width:0; min-height:44px; padding-inline:9px; font-size:12px; }
.concierge-inbox-list { padding:0; }
.concierge-inbox-list .empty-state { margin:20px 16px; padding:24px 8px; border:0; font-size:14px; line-height:1.6; }
.concierge-thread {
  min-height:88px;
  padding:11px 12px;
  grid-template-columns:46px minmax(0,1fr) auto;
  gap:10px;
  border-bottom:1px solid var(--line);
  border-radius:0;
}
.concierge-thread:hover,.concierge-thread.is-active { background:var(--surface-2); }
.concierge-thread.is-active::before { top:0; bottom:0; width:3px; border-radius:0; }
.concierge-thread-icon { width:46px; height:46px; font-size:13px; }
.concierge-thread small { font-size:10px; letter-spacing:0; text-transform:none; }
.concierge-thread strong { margin:4px 0 2px; font-size:15px; }
.concierge-thread em { font-size:13px; }
.concierge-thread time { padding-top:2px; font-size:10px; }
.thread-labels { min-height:16px; margin-top:5px; }
.thread-labels b { padding:3px 6px; font-size:11px; }
.thread-labels .is-state { background:var(--surface-3); color:var(--muted); }
.concierge-thread.is-decision .thread-labels .is-state { background:#fff0d4; color:#8d5907; }
.concierge-thread.is-progress .thread-labels .is-state { background:#e2f2ff; color:#176b9f; }
.concierge-thread.is-done .thread-labels .is-state { background:#e0f6e9; color:#24734e; }
html[data-mode="dark"] .concierge-thread.is-decision .thread-labels .is-state { background:color-mix(in srgb,#e5a02f 19%,var(--surface)); color:#f4c873; }
html[data-mode="dark"] .concierge-thread.is-progress .thread-labels .is-state { background:color-mix(in srgb,#298ac4 19%,var(--surface)); color:#7dc6f0; }
html[data-mode="dark"] .concierge-thread.is-done .thread-labels .is-state { background:color-mix(in srgb,#2d9d68 19%,var(--surface)); color:#79d8aa; }

.concierge-chat { background:var(--surface); background-image:none; }
.concierge-chat-head { min-height:72px; padding:10px 20px; }
.concierge-chat-identity strong { font-size:16px; }
.concierge-chat-identity small { font-size:12px; color:var(--muted); }
.concierge-messages { padding:24px clamp(16px,3.4vw,48px); gap:12px; }
.concierge-empty { max-width:440px; padding:24px 12px; flex-shrink:0; }
.concierge-empty > span { width:56px; height:56px; font-size:26px; }
.concierge-empty strong { font-size:clamp(22px,2.2vw,30px); line-height:1.2; letter-spacing:-.03em; }
.concierge-empty p { margin:12px 0 24px; font-size:16px; line-height:1.55; }
.concierge-empty-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:8px; }
.concierge-empty-actions button { min-height:44px; padding:10px 16px; border:1px solid var(--line); border-radius:12px; font-size:14px; box-shadow:none; }
.concierge-empty-actions button + button { margin:0; }
.concierge-empty-actions button:first-child { background:var(--brand); color:var(--surface); border-color:var(--brand); }
html[data-mode="dark"] .concierge-empty-actions button:first-child { color:var(--bg); }
.concierge-message { max-width:min(82%,680px); padding:12px 16px 10px; border:1px solid var(--line); box-shadow:none; font-size:16px; overflow-wrap:anywhere; flex-shrink:0; }
.concierge-message.is-user { border-color:color-mix(in srgb,var(--chat-green) 18%,var(--line)); }
.concierge-message.is-system { border:0; font-size:12px; }
.concierge-message small,.concierge-message-time { font-size:11px; }
.concierge-day-divider span { border:1px solid var(--line); box-shadow:none; }

.concierge-source-story {
  width:min(100%,610px);
  margin:0 auto 9px;
  padding:12px;
  display:grid;
  grid-template-columns:38px minmax(0,1fr) auto;
  align-items:start;
  gap:10px;
  border:1px solid color-mix(in srgb,var(--chat-green) 28%,var(--line));
  border-radius:15px;
  background:color-mix(in srgb,var(--chat-green) 5%,var(--surface));
}
.concierge-source-story > span { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:var(--brand); color:var(--surface); font-size:8px; font-weight:950; }
html[data-mode="dark"] .concierge-source-story > span { color:var(--bg); }
.concierge-source-story small,.concierge-source-story strong,.concierge-source-story em { display:block; }
.concierge-source-story small { color:var(--chat-green); font-size:6px; font-weight:950; letter-spacing:.08em; }
.concierge-source-story strong { margin-top:3px; font-size:11px; }
.concierge-source-story p { margin:3px 0; color:var(--muted); font-size:9px; line-height:1.4; }
.concierge-source-story em { color:var(--muted); font-size:7px; font-style:normal; }
.concierge-source-story > b { padding:5px 7px; border-radius:999px; background:var(--chat-green-soft); color:#176a4a; font-size:6px; white-space:nowrap; }
html[data-mode="dark"] .concierge-source-story > b { background:color-mix(in srgb,var(--brand) 15%,var(--surface)); color:var(--brand); }

.concierge-inline-actions {
  max-height:min(280px,37dvh);
  padding:10px 12px;
  display:flex;
  gap:8px;
  overflow:auto;
  border-top:1px solid var(--line);
  background:color-mix(in srgb,var(--surface-2) 86%,var(--surface));
  scroll-snap-type:x proximity;
}
.concierge-inline-actions[hidden] { display:none; }
.concierge-inline-actions > article { flex:0 0 min(390px,86%); scroll-snap-align:start; }
.concierge-inline-decision {
  padding:11px;
  border:1px solid color-mix(in srgb,#e6a52f 35%,var(--line));
  border-radius:14px;
  background:var(--surface);
}
.concierge-inline-decision > header { display:flex; align-items:center; gap:8px; }
.concierge-inline-decision > header > span { width:34px; height:34px; display:grid; place-items:center; flex:0 0 34px; border-radius:11px; background:color-mix(in srgb,#e6a52f 16%,var(--surface)); color:#94600c; font-weight:950; }
.concierge-inline-decision .app-icon { margin:0; font-size:13px; }
.concierge-inline-decision header small,.concierge-inline-decision header strong { display:block; }
.concierge-inline-decision header small { color:#94600c; font-size:6px; font-weight:950; letter-spacing:.07em; }
.concierge-inline-decision header strong { margin-top:2px; font-size:10px; }
.concierge-inline-decision > p { margin:7px 0; color:var(--muted); font-size:8px; line-height:1.4; }
.concierge-inline-quote { padding:7px 8px; display:flex; justify-content:space-between; gap:8px; border-radius:9px; background:var(--surface-2); font-size:8px; }
.concierge-inline-decision > footer { margin-top:8px; display:flex; flex-wrap:wrap; gap:6px; }
.concierge-inline-decision > footer button { min-height:34px; padding:0 11px; border:1px solid var(--line); border-radius:999px; background:var(--surface-2); cursor:pointer; font-size:8px; font-weight:900; }
.concierge-inline-decision > footer button.is-primary { border-color:var(--brand); background:var(--brand); color:var(--surface); }
html[data-mode="dark"] .concierge-inline-decision > footer button.is-primary { color:var(--bg); }
.concierge-inline-actions .concierge-interactive-card { margin:0; background:var(--surface); }

.concierge-form { padding:12px 20px max(12px,env(safe-area-inset-bottom)); gap:8px; grid-template-columns:44px 44px minmax(0,1fr) 44px; }
.concierge-form textarea { font-size:16px; line-height:1.4; min-height:46px; border-radius:14px; }
.concierge-form > small { grid-column:1/-1; text-align:center; font-size:11px; }
.concierge-form :is(.voice-button,.concierge-send) { width:44px; height:44px; min-width:44px; box-shadow:none; }
.concierge-form .voice-button span { display:none; }

.concierge-plan-panel { padding:0 15px 18px; }
.concierge-detail-head { min-height:63px; margin-inline:-15px; }
.concierge-owner-card { padding-block:8px 12px; }
.concierge-owner-card .concierge-owner-avatar { width:46px; height:46px; flex-basis:46px; }
.concierge-status-card { border:1px solid var(--line); border-radius:13px; background:var(--surface); }
.concierge-progress { margin:12px 2px 16px; display:grid; grid-template-columns:1fr; gap:0; }
.concierge-progress span {
  position:relative;
  min-height:34px;
  height:auto;
  padding-left:34px;
  display:flex;
  align-items:center;
  border-radius:0;
  background:transparent;
  color:var(--muted);
}
.concierge-progress span::after { content:""; position:absolute; left:12px; top:26px; bottom:-8px; width:2px; background:var(--line); }
.concierge-progress span:last-child::after { display:none; }
.concierge-progress span i { position:absolute; left:2px; top:5px; z-index:1; width:22px; height:22px; display:grid; place-items:center; border:2px solid var(--line); border-radius:50%; background:var(--surface); color:var(--muted); font-size:7px; font-style:normal; font-weight:950; }
.concierge-progress span b { font-size:8px; }
.concierge-progress span.is-done { background:transparent; color:var(--text); }
.concierge-progress span.is-done i { border-color:var(--chat-green); background:var(--chat-green); color:#fff; }
.concierge-progress span.is-done::after { background:var(--chat-green); }
.concierge-progress span.is-current b { color:var(--chat-green); font-weight:950; }
.concierge-progress span.is-current i { box-shadow:0 0 0 4px color-mix(in srgb,var(--chat-green) 13%,transparent); }
.concierge-organize { margin-bottom:15px; }
.concierge-plan-heading h2 { margin:2px 0 0; font-size:18px; }
.concierge-detail-head strong { font-size:16px; }
.concierge-owner-card h2 { font-size:18px; }
.concierge-owner-card small,.concierge-status-card small,.concierge-owner-card .eyebrow { font-size:12px; }
.concierge-status-card strong { font-size:14px; }
.concierge-progress span b { font-size:13px; }
.concierge-progress span i { font-size:11px; }
.concierge-safety { font-size:12px; line-height:1.55; }
.concierge-plan .empty-state { font-size:14px; padding:20px 12px; line-height:1.55; }
.concierge-organize button { min-height:44px; font-size:13px; }
.concierge-inline-decision :is(p,header small),.concierge-inline-quote { font-size:12px; }
.concierge-inline-decision header strong { font-size:15px; }
.concierge-inline-decision > footer button { min-height:44px; font-size:13px; }
.concierge-share-sheet :is(input,button) { min-height:44px; }
.concierge-share-sheet :is(strong,input,button) { font-size:14px; }
.concierge-share-sheet small { font-size:12px; }
.concierge-share-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
.concierge-templates-dialog > header p:last-child,.concierge-template-message p { font-size:14px; line-height:1.5; }
.concierge-template-toolbar { position:static; flex-wrap:wrap; }
.concierge-template-toolbar input { font-size:16px; }
.concierge-template-toolbar > span { font-size:12px; }
.concierge-template-card > header h3 { font-size:17px; }
.concierge-template-card > header small,.concierge-template-message small,.concierge-template-details small { font-size:12px; }
.concierge-template-details span { font-size:13px; white-space:normal; }
.concierge-template-card > button { min-height:44px; font-size:14px; }
.concierge-template-note { font-size:12px; }
.concierge-templates-dialog .dialog-close { min-width:44px; width:44px; height:44px; flex-shrink:0; }
.concierge-layout :is(.concierge-task,.concierge-payment-card,.concierge-shared-action,.concierge-interactive-card) { min-width:0; overflow-wrap:anywhere; }
.concierge-layout :is(.concierge-task,.concierge-payment-card,.concierge-interactive-card) h3 { font-size:16px; }
.concierge-layout :is(.concierge-task,.concierge-payment-card,.concierge-shared-action,.concierge-interactive-card) p { font-size:14px; line-height:1.5; }
.concierge-layout :is(.concierge-task,.concierge-payment-card,.concierge-shared-action,.concierge-interactive-card) small { font-size:12px; }
.concierge-layout :is(.concierge-quote,.concierge-card-field legend,.concierge-card-field > strong,.concierge-card-summary strong) { font-size:14px; }
.concierge-layout .concierge-card-field :is(input:not([type="radio"]):not([type="checkbox"]),textarea) { min-height:44px; font-size:16px; }
.concierge-layout :is(.concierge-card-actions,.step-actions) { flex-wrap:wrap; }
.concierge-layout :is(.concierge-card-actions button,.concierge-card-actions a,.step-actions button,.concierge-payment-foot button,.concierge-shared-action a,.concierge-card-choices span) { min-height:44px; font-size:13px; }
.concierge-layout .concierge-payment-card > header { flex-wrap:wrap; }
.concierge-layout :is(.step-confirm,.concierge-card-actions button) { color:var(--surface); }
.concierge-layout .concierge-card-choices input:checked + span { color:var(--brand); }
.concierge-source-story strong { font-size:15px; }
.concierge-source-story p { font-size:14px; }
.concierge-source-story :is(small,em),.concierge-source-story > b { font-size:11px; }

@media (min-width:1280px) {
  body.is-concierge-app:not(.staff-crm-mode) .concierge-layout.is-detail-open { grid-template-columns:clamp(280px,24vw,340px) minmax(0,1fr) 320px; }
  body.is-concierge-app:not(.staff-crm-mode) .concierge-plan-panel { position:relative; inset:auto; width:100%; box-shadow:none; }
}

@media (max-width:760px) {
  body.is-concierge-app:not(.staff-crm-mode) { height:var(--inbox-viewport,100dvh); min-height:0; }
  body.is-concierge-app:not(.staff-crm-mode) #ikatuApp { grid-template-rows:minmax(0,1fr); }
  body.is-concierge-app:not(.staff-crm-mode)[data-concierge-pane="inbox"] #ikatuApp { grid-template-rows:calc(56px + env(safe-area-inset-top)) minmax(0,1fr) auto; }
  body.is-concierge-app:not(.staff-crm-mode)[data-concierge-pane="inbox"] .topbar { display:flex!important; justify-content:space-between; height:calc(56px + env(safe-area-inset-top)); padding:calc(6px + env(safe-area-inset-top)) 12px 6px; gap:8px; }
  body.is-concierge-app:not(.staff-crm-mode)[data-concierge-pane="inbox"] .bottom-nav {
    display:grid!important; position:static; height:auto; min-height:64px; padding:6px 8px max(6px,env(safe-area-inset-bottom));
    border-top:1px solid var(--line); box-shadow:none;
  }
  body.is-concierge-app:not(.staff-crm-mode) .desktop-shell { display:block; height:100%; min-height:0; padding:0!important; }
  body.is-concierge-app:not(.staff-crm-mode) .concierge-layout { height:100%; min-height:0; grid-template-columns:minmax(0,1fr); }
  body.is-concierge-app:not(.staff-crm-mode) .concierge-layout > :is(.concierge-inbox,.concierge-chat,.concierge-plan-panel) { min-width:0; width:100%; max-width:100%; }
  body.is-concierge-app:not(.staff-crm-mode) .concierge-plan-panel { position:relative; inset:auto; width:100%; box-shadow:none; }
  .concierge-inbox-head { min-height:64px; padding:8px 14px; }
  .concierge-inbox-head > div:last-child > button { width:44px; height:44px; }
  .concierge-inbox-home { display:none; }
  .concierge-search input { font-size:16px; }
  .concierge-thread { min-height:96px; padding:12px; grid-template-columns:46px minmax(0,1fr) auto; border-radius:0; }
  .concierge-thread-icon { width:46px; height:46px; }
  .concierge-thread strong { font-size:15px; }
  .concierge-thread em { font-size:13px; }
  .concierge-chat-head { min-height:calc(64px + env(safe-area-inset-top)); padding:calc(8px + env(safe-area-inset-top)) 8px 8px; gap:8px; }
  .concierge-chat-head .concierge-owner-avatar { display:none; }
  #conciergeDetailsButton { width:44px; padding:0; justify-content:center; }
  .concierge-detail-label { display:none; }
  .concierge-messages { padding:16px 12px; }
  .concierge-empty { padding:20px 8px; }
  .concierge-empty p { font-size:15px; }
  .concierge-message { max-width:91%; font-size:16px; }
  .concierge-source-story { grid-template-columns:36px minmax(0,1fr); }
  .concierge-source-story > b { grid-column:2; width:max-content; }
  .concierge-inline-actions { max-height:34dvh; padding:8px; }
  .concierge-inline-actions > article { flex-basis:min(360px,92%); }
  body.is-concierge-app:not(.staff-crm-mode) .concierge-form { padding:8px 8px max(8px,env(safe-area-inset-bottom)); gap:6px; grid-template-columns:44px minmax(0,1fr) 44px; }
  .concierge-form #conciergeVoiceButton { display:none; }
  .concierge-form > small { font-size:11px; }
  .concierge-share-sheet { max-height:calc(var(--inbox-viewport,100dvh) - 150px); }
  .concierge-progress span { min-height:40px; }
}

@media (max-width:430px) {
  .concierge-inline-actions > article { flex-basis:96%; }
  .concierge-source-story p { max-height:40px; overflow:hidden; }
}

@media (max-height:500px) {
  .concierge-empty { padding:12px 8px; }
  .concierge-empty > span { display:none; }
  .concierge-empty p { margin:8px 0 12px; }
  .concierge-form > small { display:none; }
  .concierge-inline-actions { max-height:26dvh; }
}

/* R61: una compra se lee como secuencia conversacional, no como carrusel. */
.concierge-inline-actions {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-content:start;
  overflow-x:hidden;
  overflow-y:auto;
  scroll-snap-type:none;
}
.concierge-inline-actions > article {
  width:100%;
  max-width:100%;
  min-width:0;
  flex:none;
}
.concierge-marketplace-card,.concierge-marketplace-card > header,.concierge-marketplace-card > header > div {
  min-width:0;
}
.concierge-marketplace-card > header > b { overflow-wrap:anywhere; }
@media (max-width:760px) {
  .concierge-inline-actions > article { width:100%; max-width:100%; }
}
