/* Map module specific styles */
.map-shell{display:flex;flex-direction:column;height:100%}
.map-tb{padding:12px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;background:var(--panel);flex-wrap:wrap}
.map-tb-title{font-size:14px;font-weight:600;flex:1}
.map-tb-sub{font-size:11.5px;color:var(--text-3);font-weight:400;margin-left:6px}
.mode-pill{display:inline-flex;border:1px solid var(--border-2);border-radius:7px;overflow:hidden}
.mode-pill button{padding:6px 12px;font-size:12px;border:none;background:var(--panel);cursor:pointer;color:var(--text-2);font-family:inherit}
.mode-pill button.on{background:var(--accent);color:var(--ink-on-accent);font-weight:600}

.map-body{display:grid;grid-template-columns:1fr 300px;flex:1;min-height:0}
.map-canvas{display:flex;flex-direction:column;border-right:1px solid var(--border);min-width:0}
.zone-tabs{display:flex;background:var(--panel);border-bottom:1px solid var(--border);flex-shrink:0;padding:0 16px}
.zone-tab{padding:10px 16px;font-size:12.5px;cursor:pointer;color:var(--text-2);border-bottom:2px solid transparent}
.zone-tab.on{color:var(--color-selection-text);border-bottom-color:var(--accent);font-weight:600}
.zone-tab.add{color:var(--text-3)}
.canvas-row{display:flex;flex:1;min-height:0;overflow:hidden}
.stands-palette{width:158px;overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--border);background:var(--bg-2);flex-shrink:0;padding:8px 6px;scrollbar-width:thin}
.pal-hd{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-3);margin-bottom:8px;padding:2px 2px 0;display:flex;flex-direction:column;gap:2px}
.pal-sub{font-size:9.5px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-3);opacity:.8}
.pal-loading{font-size:12px;color:var(--text-3);padding:12px 4px}
/* ── Chips de stands ──────────────────────────────────────────── */
.chip-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin-bottom:6px}
.stand-chip{border-radius:5px;cursor:grab;user-select:none;text-align:center;border:1.5px solid transparent;transition:transform .1s,box-shadow .12s;position:relative;line-height:1;aspect-ratio:1;display:flex;align-items:center;justify-content:center;min-width:0}
.stand-chip:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.stand-chip:active{cursor:grabbing;transform:scale(.91)}
.stand-chip.st-available{background:var(--color-success-bg);color:var(--color-success-text);border-color:color-mix(in srgb, var(--color-success) 45%, var(--color-success-bg))}
.stand-chip.st-nego{background:var(--color-warning-bg);color:var(--color-warning-text);border-color:color-mix(in srgb, var(--color-warning) 45%, var(--color-warning-bg))}
.stand-chip.st-sold{background:var(--color-danger-bg);color:var(--color-danger-text);border-color:color-mix(in srgb, var(--color-danger) 45%, var(--color-danger-bg))}
.stand-chip.sq{border-radius:3px}
.stand-chip.cstm{border-style:dashed;opacity:.9}
.stand-chip.repo::after{content:'●';position:absolute;top:1px;right:2px;font-size:5.5px;color:var(--color-brand-action)}
.sc-num{display:block;font-size:10px;font-weight:800;line-height:1}
.sc-lbl{font-size:7.5px;font-weight:700;word-break:break-all;line-height:1.2}
/* ── Bloque de controles globales ──────────────────────────────── */
.pal-ctrl-block{margin-bottom:8px;display:flex;flex-direction:column;gap:6px}
/* Slider de tamaño */
.pal-sz-row{display:flex;align-items:center;gap:4px}
.pal-ctrl-lbl{font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);flex-shrink:0}
.pal-sz-slider{flex:1;height:3px;accent-color:var(--color-brand-action);cursor:pointer;min-width:0}
.pal-sz-num{font-size:8.5px;color:var(--text-3);min-width:24px;text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0}
/* Selector de forma (dentro del bloque de controles) */
.shape-sel{display:flex;gap:3px;background:var(--bg-2);padding:2px;border-radius:6px}
.shape-sel-btn{flex:1;padding:4px 2px;border:none;border-radius:4px;font-size:9.5px;font-weight:600;cursor:pointer;background:none;color:var(--text-3);font-family:inherit;transition:background .12s,color .12s}
.shape-sel-btn.on{background:var(--panel);color:var(--text-1);box-shadow:var(--shadow-sm)}
/* Color pickers */
.pal-cpick-block{background:var(--bg-2);border-radius:6px;padding:6px 5px;display:flex;flex-direction:column;gap:4px}
.cpick-row{display:flex;align-items:center;gap:5px;cursor:pointer}
.cpick-dot{display:inline-block;width:10px;height:10px;border-radius:50%;border:1.5px solid transparent;flex-shrink:0;pointer-events:none}
.cpick-lbl{font-size:9px;color:var(--text-2);font-weight:500;flex:1}
.cpick-inp{width:22px;height:18px;border:none;padding:0;border-radius:3px;cursor:pointer;background:none;flex-shrink:0}
/* Ghost que sigue al cursor */
.chip-ghost{position:fixed;z-index:9999;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:var(--white);pointer-events:none;box-shadow:var(--shadow-md);border:2.5px solid color-mix(in srgb, var(--white) 90%, transparent);transform:scale(1.1)}
.chip-ghost.sq{border-radius:5px}
.chip-ghost.st-available{background:var(--color-success)}
.chip-ghost.st-nego{background:var(--color-warning)}
.chip-ghost.st-sold{background:var(--color-danger)}
.chip-ghost:not(.st-available):not(.st-nego):not(.st-sold){background:var(--color-brand-action)}
/* Botones de acción de zona */
.pal-actions{margin-top:9px;border-top:1px solid var(--border);padding-top:8px;display:flex;flex-direction:column;gap:5px}
.pal-btn{width:100%;padding:6px 4px;border:none;border-radius:6px;font-size:10.5px;font-weight:600;cursor:pointer;font-family:inherit;text-align:center;transition:background .12s,color .12s;letter-spacing:.01em}
.pal-btn-add{background:var(--bg-2);color:var(--text-2);border:1px solid var(--border)}
.pal-btn-add:hover{background:var(--bg-2);color:var(--text-1)}
.pal-btn-reset{background:none;color:var(--text-3);border:1px dashed var(--border)}
.pal-btn-reset:hover{background:var(--bg-2);color:var(--text-2)}
/* Indicador de zona de drop activa */
.map-layer.dnd-over{outline:3px dashed var(--color-brand-action);outline-offset:-4px;border-radius:4px}
/* Contenedor del tablero */
.svg-wrap{flex:1;overflow:hidden;background:var(--carbon);padding:0;position:relative}
/* Viewport del mapa — ocupa todo el contenedor */
.map-viewport{position:relative;width:100%;height:100%;overflow:hidden;cursor:grab;user-select:none}
/* Capa transformable (zoom + pan afecta fondo y stands juntos) */
.map-scene{position:absolute;top:0;left:0;width:100%;height:100%;transform-origin:0 0;will-change:transform}
#zA,#zB{width:100%;height:100%}
.map-layer{position:relative;line-height:0;width:100%;height:100%}
.map-layer img{display:block;width:100%;height:100%;object-fit:contain}
/* Controles flotantes del mapa (solo botón ajustar fondo) */
.map-zoom-ctrl{position:absolute;bottom:14px;right:14px;display:flex;flex-direction:column;gap:4px;z-index:50}
.zoom-btn{width:30px;height:30px;border:none;border-radius:8px;background:color-mix(in srgb, var(--color-control-bg) 88%, transparent);color:var(--text);font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:background .12s,transform .08s;line-height:1;font-family:inherit;padding:0;backdrop-filter:blur(4px)}
.zoom-btn:hover{background:var(--panel);transform:scale(1.08)}
.zoom-btn:active{transform:scale(0.95)}

/* ── Botón Ajustar Fondo ──────────────────────────────────────── */
.bg-adj-btn{font-size:14px;color:var(--text-2)}
.bg-adj-btn.on{background:var(--accent)!important;color:var(--ink-on-accent)!important;box-shadow:var(--focus-ring-compact)!important}

/* ── Contenedor del fondo (bg-wrap) ──────────────────────────── */
.bg-wrap{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible}
.bg-wrap img{display:block;width:100%;height:100%;object-fit:contain}

/* ── Modo edición de fondo ───────────────────────────────────── */
/* Stands no interaccionables mientras se edita el fondo */
.bg-editing g[data-sid]{pointer-events:none!important}
/* Cursor por defecto en el viewport; el bg-wrap tiene su propio cursor */
.map-viewport.bg-editing{cursor:default}
.bg-editing .bg-wrap{outline:2px dashed color-mix(in srgb, var(--accent) 65%, transparent);outline-offset:-1px;cursor:grab}
.bg-editing .bg-wrap:active{cursor:grabbing}

/* ── Handles de redimensionamiento ──────────────────────────── */
.bg-handle{
  position:absolute;width:13px;height:13px;
  background:var(--accent);border:2px solid var(--white);border-radius:3px;
  z-index:20;box-shadow:var(--shadow-sm);
}
.bg-h-nw{top:-7px;left:-7px;cursor:nw-resize}
.bg-h-ne{top:-7px;right:-7px;cursor:ne-resize}
.bg-h-sw{bottom:-7px;left:-7px;cursor:sw-resize}
.bg-h-se{bottom:-7px;right:-7px;cursor:se-resize}

/* ── Panel de controles del editor de fondo ──────────────────── */
.bg-edit-ui{
  position:absolute;bottom:14px;left:50%;transform:translateX(-50%);
  background:color-mix(in srgb, var(--carbon) 92%, transparent);backdrop-filter:blur(8px);
  border:1px solid color-mix(in srgb, var(--white) 10%, transparent);border-radius:10px;
  padding:9px 14px;display:flex;align-items:center;gap:12px;
  z-index:60;white-space:nowrap;box-shadow:var(--shadow-lg);
}
.bg-edit-row{display:flex;align-items:center;gap:6px}
.bg-edit-lbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:color-mix(in srgb, var(--white) 50%, transparent);flex-shrink:0}
.bg-edit-slider{width:82px;height:3px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}
.bg-edit-val{font-size:9.5px;color:color-mix(in srgb, var(--white) 65%, transparent);min-width:30px;text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0}
.bg-edit-sep{width:1px;height:18px;background:color-mix(in srgb, var(--white) 15%, transparent);flex-shrink:0}
.bg-done-btn{padding:5px 13px;border:none;border-radius:6px;background:var(--accent);color:var(--ink-on-accent);font-size:10.5px;font-weight:600;cursor:pointer;font-family:inherit;flex-shrink:0;transition:background .12s}
.bg-done-btn:hover{background:var(--accent-hover)}
.bg-edit-hint{font-size:9.5px;color:color-mix(in srgb, var(--white) 55%, transparent);font-style:italic;white-space:nowrap;flex-shrink:0}

/* ── Papelera de stands ───────────────────────────────────────── */
.map-trash{
  position:absolute;top:14px;right:14px;width:34px;height:34px;
  border-radius:9px;background:color-mix(in srgb, var(--color-control-bg) 88%, transparent);
  backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;
  font-size:16px;cursor:default;z-index:50;
  box-shadow:var(--shadow-sm);
  transition:background .15s,transform .15s,box-shadow .15s;
}
.map-trash-over{
  background:color-mix(in srgb, var(--color-danger) 95%, transparent)!important;
  transform:scale(1.18)!important;
  box-shadow:var(--shadow-md)!important;
}

/* ── Popup de creación de stand con clic ──────────────────────── */
.map-create-popup{
  position:fixed;z-index:9999;
  background:var(--panel);border-radius:10px;padding:13px 14px 12px;
  box-shadow:var(--shadow-lg);
  border:1px solid var(--border);min-width:200px;
  animation:mcpIn .12s ease;
}
@keyframes mcpIn{ from{opacity:0;transform:scale(.92) translateY(-4px)} to{opacity:1;transform:scale(1) translateY(0)} }
.mcp-title{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-bottom:8px}
.mcp-inp{width:100%;box-sizing:border-box;padding:7px 9px;border:1.5px solid var(--border-2);border-radius:6px;font-size:13px;font-family:inherit;outline:none;margin-bottom:7px;color:var(--text);transition:border-color .12s}
.mcp-inp:focus{border-color:var(--color-brand-action)}
.mcp-sel{width:100%;box-sizing:border-box;padding:6px 9px;border:1.5px solid var(--border-2);border-radius:6px;font-size:12.5px;font-family:inherit;outline:none;margin-bottom:11px;color:var(--text);background:var(--panel);cursor:pointer}
.mcp-btns{display:flex;gap:6px;justify-content:flex-end}
.mcp-cancel{padding:5px 11px;border:1px solid var(--border-2);border-radius:5px;background:var(--panel);font-size:12px;cursor:pointer;font-family:inherit;color:var(--text-2)}
.mcp-cancel:hover{background:var(--bg-2)}
.mcp-confirm{padding:5px 11px;border:none;border-radius:5px;background:var(--color-brand-action);color:var(--white);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .12s}
.mcp-confirm:hover{background:var(--accent-hover)}

.legend{display:flex;gap:14px;padding:10px 18px;border-top:1px solid var(--border);background:var(--panel);align-items:center;flex-wrap:wrap;flex-shrink:0}
.leg-item{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--text-2)}
.leg-d{width:11px;height:11px;border-radius:3px;border:1.5px solid;flex-shrink:0}
.leg-spacer{margin-left:auto;font-size:11.5px;color:var(--text-3)}

.detail-side{background:var(--panel);display:flex;flex-direction:column;overflow:hidden}
.stat-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;padding:14px;border-bottom:1px solid var(--border)}
.stat-cell{background:var(--bg-2);border-radius:7px;padding:9px 6px;text-align:center}
.stat-v{font-size:18px;font-weight:600;line-height:1}
.stat-l{font-size:10px;color:var(--text-3);margin-top:3px}
.detail-body{flex:1;overflow-y:auto;padding:16px}
.empty-detail{display:flex;flex-direction:column;align-items:center;justify-content:center;height:160px;color:var(--text-3);font-size:12.5px;text-align:center;gap:8px}
.f-l{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-3);margin-bottom:3px}
.f-v{font-size:13px;color:var(--text);margin-bottom:11px;font-weight:500}
.ai-box{background:var(--color-selection-bg);border:1px solid var(--color-selection-border);border-radius:7px;padding:10px;margin:10px 0;font-size:11.5px;color:var(--text);line-height:1.5}
.act-stack{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.act-stack .btn{width:100%;text-align:center}

/* 4-step flow */
.flow-wrap{padding:32px;max-width:760px;margin:0 auto}
.steps-bar{display:flex;align-items:center;gap:8px;margin-bottom:28px}
.step{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-3)}
.step-num{width:24px;height:24px;border-radius:50%;background:var(--bg-2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:11px;color:var(--text-3)}
.step.on{color:var(--text)}
.step.on .step-num{background:var(--accent);color:var(--ink-on-accent);border-color:var(--accent)}
.step.done .step-num{background:var(--color-success);color:var(--white);border-color:var(--color-success)}
.step-arrow{flex:1;height:1px;background:var(--border);min-width:20px}

.upload-zone{border:2px dashed var(--color-selection-border);background:var(--color-selection-bg);border-radius:12px;padding:48px 24px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}
.upload-zone:hover{border-color:var(--accent)}
.upload-zone.compact{padding:24px 20px}
.upload-zone.drag-over{border-color:var(--accent);background:var(--color-selection-bg);box-shadow:var(--focus-ring)}
.upload-icon{font-size:36px;margin-bottom:12px}
.upload-zone.compact .upload-icon{font-size:28px;margin-bottom:8px}
.upload-title{font-size:15px;font-weight:600;margin-bottom:5px;color:var(--text)}
.upload-zone.compact .upload-title{font-size:13.5px}
.upload-sub{font-size:12.5px;color:var(--text-2)}
.upload-hint{font-size:11px;color:var(--text-3);margin-top:10px}
.import-filename{margin-top:8px;font-size:12px;font-weight:500;color:var(--color-selection-text);background:var(--panel);border:1px solid var(--color-selection-border);border-radius:6px;padding:4px 10px;display:inline-block}

.file-chip{display:inline-flex;align-items:center;gap:8px;background:var(--color-success-bg);border:1px solid color-mix(in srgb, var(--color-success) 45%, var(--color-success-bg));color:var(--color-success-text);padding:8px 12px;border-radius:7px;font-size:12.5px;font-weight:500;margin-bottom:14px}
.file-chip-check{width:18px;height:18px;border-radius:50%;background:var(--color-success);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}

.process-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.process-item{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-2)}
.process-item.done{color:var(--text)}
.proc-bar{height:6px;background:var(--bg-2);border-radius:3px;overflow:hidden;margin-top:18px}
.proc-bar-fill{height:100%;background:var(--color-brand-action);transition:width .4s}

/* dashboard */
.activity{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}
.activity:last-child{border-bottom:none}
.act-av{width:34px;height:34px;border-radius:50%;background:var(--bg-2);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--text-2);flex-shrink:0}
.act-name{font-size:13px;font-weight:500}
.act-msg{font-size:11.5px;color:var(--text-3);margin-top:1px}
.act-meta{margin-left:auto;text-align:right}
.act-val{font-size:13px;font-weight:600}
.act-time{font-size:11px;color:var(--text-3);margin-top:1px}

.quick-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;cursor:pointer;transition:all .12s;display:flex;gap:12px;align-items:flex-start;position:relative}
.quick-card:hover{border-color:var(--accent);transform:translateY(-1px)}
.quick-card:hover .quick-del{display:flex}
.quick-icon-wrap{width:36px;height:36px;border-radius:8px;background:var(--color-selection-bg);color:var(--color-selection-text);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px}
.quick-l{font-size:13px;font-weight:600}
.quick-d{font-size:11.5px;color:var(--text-3);margin-top:2px}

/* Quick card: botón eliminar (X) */
.quick-del{display:none;position:absolute;top:6px;right:6px;width:20px;height:20px;border-radius:50%;background:var(--text-2);color:var(--bg);border:none;cursor:pointer;font-size:15px;line-height:1;align-items:center;justify-content:center;z-index:2;padding:0;font-family:inherit;transition:background .1s}
.quick-del:hover{background:var(--color-danger)}

/* Quick card: tarjeta de agregar */
.quick-card-add{border:2px dashed var(--border-2);border-radius:var(--radius);background:var(--bg-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:14px 16px;cursor:pointer;transition:all .14s;color:var(--text-3);font-size:12.5px;min-height:72px;user-select:none}
.quick-card-add:hover{border-color:var(--accent);color:var(--color-selection-text);background:var(--color-selection-bg)}
.quick-add-icon{font-size:22px;line-height:1;font-weight:300}

/* Quick card: animación al eliminar */
@keyframes qcRemove{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0.88)}}
.quick-card.removing{animation:qcRemove .22s ease forwards;pointer-events:none}

/* Modal: agregar acceso rápido */
.modal-overlay{position:fixed;inset:0;background:var(--color-overlay);z-index:2000;display:flex;align-items:center;justify-content:center}
.modal-box{background:var(--panel);border-radius:12px;padding:24px;width:360px;box-shadow:var(--shadow-lg);animation:modalIn .18s ease}
@keyframes modalIn{from{opacity:0;transform:translateY(8px) scale(0.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.modal-h{font-size:15px;font-weight:600;margin-bottom:12px;color:var(--text)}
/* Lista de secciones */
.aq-list{margin-top:8px;max-height:248px;overflow-y:auto;border:1px solid var(--border);border-radius:8px}
.aq-item{display:flex;align-items:center;gap:10px;padding:9px 12px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .1s;user-select:none}
.aq-item:last-child{border-bottom:none}
.aq-item:hover,.aq-item.aq-focused{background:var(--color-selection-bg)}
.aq-item.aq-used{opacity:.4;cursor:default;pointer-events:none}
.aq-item-icon{width:30px;height:30px;border-radius:7px;background:var(--bg-2);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.aq-item:hover .aq-item-icon,.aq-item.aq-focused .aq-item-icon{background:var(--color-selection-border)}
.aq-item-label{font-size:13px;font-weight:500;color:var(--text);flex:1}
.aq-item-desc{font-size:11px;color:var(--text-3)}
.aq-empty{padding:22px 12px;text-align:center;color:var(--text-3);font-size:12.5px}

/* Library / channels grid */
.lib-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;gap:12px;align-items:flex-start}
.lib-icon-bx{width:42px;height:42px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px}
.lib-icon-bx.pdf{background:var(--color-selection-bg);color:var(--color-selection-text)}
.lib-icon-bx.img{background:var(--color-info-bg);color:var(--color-info)}
.lib-id{font-size:10.5px;color:var(--text-3);font-family:ui-monospace,Menlo,monospace}
.lib-name{font-size:13px;font-weight:600;margin-top:1px}
.lib-desc{font-size:11.5px;color:var(--text-3);margin-top:3px}

.channel-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:10px}
.channel-card.connected{border-color:var(--color-success);background:var(--color-success-bg)}
.channel-card.warn{border-color:var(--color-warning);background:var(--color-warning-bg)}
.channel-card.error{border-color:var(--color-danger);background:var(--color-danger-bg)}
.channel-h{display:flex;align-items:center;gap:10px}
.channel-icon{width:40px;height:40px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.channel-name{font-size:14px;font-weight:600}
.channel-status{font-size:11.5px;color:var(--text-3)}
.channel-status.live{color:var(--color-success-text)}
.channel-status.warn{color:var(--color-warning-text)}
.channel-status.error{color:var(--color-danger-text)}
.channel-meta{font-size:11.5px;color:var(--text-3);line-height:1.6}

/* CRM */
.crm-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:18px}
.crm-tab{padding:8px 14px;font-size:13px;cursor:pointer;color:var(--text-2);border-bottom:2px solid transparent}
.crm-tab.on{color:var(--color-selection-text);border-bottom-color:var(--accent);font-weight:600}

/* Playground */
.pg-grid{display:grid;grid-template-columns:1fr 300px;gap:16px;height:calc(100vh - 98px)}
.chat-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}
.chat-h{padding:12px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;background:var(--bg-2)}
.chat-av{width:32px;height:32px;border-radius:50%;background:var(--color-selection-bg);color:var(--color-selection-text);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12px}
.chat-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.msg{max-width:78%;padding:9px 13px;border-radius:14px;font-size:13px;line-height:1.5}
.msg.bot{background:var(--bg-2);color:var(--text);border-radius:14px 14px 14px 4px;align-self:flex-start}
.msg.user{background:var(--accent);color:var(--ink-on-accent);border-radius:14px 14px 4px 14px;align-self:flex-end;font-weight:500}
.chat-in{display:flex;gap:8px;padding:10px;border-top:1px solid var(--border);background:var(--panel)}
.chat-in input{flex:1;padding:8px 11px;border:1px solid var(--border-2);border-radius:7px;font-size:13px;font-family:inherit}

/* Marketplace */
.mkt-card{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:10px;transition:border-color .12s;height:100%;min-height:200px}
.mkt-card:hover{border-color:var(--color-selection-border)}
.mkt-card.installed{border-color:var(--color-success);background:var(--color-success-bg)}
.mkt-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.mkt-name{font-size:14px;font-weight:600}
.mkt-desc{font-size:12px;color:var(--text-2);line-height:1.5;flex:1}
.mkt-foot{display:flex;align-items:center;gap:8px;margin-top:auto}
.mkt-status-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mkt-price-group{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.mkt-price-sep{font-size:10.5px;color:var(--text-3)}
.mkt-price{font-size:10.5px;font-weight:500;color:var(--text-3)}
.mkt-price.active{color:var(--text-2)}
.mkt-info-btn{position:absolute;top:12px;right:12px;width:22px;height:22px;border-radius:50%;border:1px solid var(--border);background:var(--bg-2);color:var(--text-3);font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;font-family:inherit;z-index:5}
.mkt-info-btn:hover,.mkt-info-btn:focus-visible{color:var(--text);border-color:var(--color-selection-border);outline:2px solid var(--accent);outline-offset:2px}
.mkt-info-tooltip{position:absolute;top:38px;right:12px;width:220px;max-width:calc(100% - 24px);background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:11.5px;line-height:1.55;color:var(--text-2);box-shadow:var(--shadow-md);z-index:30;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity 120ms ease,transform 120ms ease}
.mkt-info-btn:hover + .mkt-info-tooltip,.mkt-info-btn:focus-visible + .mkt-info-tooltip{opacity:1;visibility:visible;transform:translateY(0)}
@media (max-width:480px){.mkt-info-tooltip{display:none}}

/* Staff (Agendamiento y reservas) */
.staff-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px}
.staff-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
.staff-name{font-weight:600;font-size:13.5px}
.staff-role{font-size:11.5px;color:var(--text-3);margin-top:2px}
.staff-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.staff-type-chip{display:inline-flex;align-items:center;font-size:11.5px;padding:4px 10px;border-radius:20px;background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);cursor:pointer;user-select:none;transition:background .12s,border-color .12s,color .12s}
.staff-type-chip.active{background:var(--color-selection-bg);border-color:var(--color-selection-border);color:var(--color-selection-text);font-weight:600}

/* Ws picker */
.ws-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.ws-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px;cursor:pointer;transition:all .12s}
.ws-card:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.ws-card.cur{border-color:var(--accent);box-shadow:var(--focus-ring)}
.ws-card-logo{width:46px;height:46px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:10px}
.ws-card-name{font-size:15px;font-weight:600}
.ws-card-sub{font-size:12px;color:var(--text-3);margin-top:2px}
.ws-card-st{display:flex;align-items:center;gap:6px;font-size:11.5px;margin-top:10px}
.dot{width:7px;height:7px;border-radius:50%}
.dot.green{background:var(--color-success)}
.dot.yellow{background:var(--color-warning)}
.dot.red{background:var(--color-danger)}
.dot.gray{background:var(--text-3)}

/* Demo-data badge */
.demo-tag{font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:var(--bg-2);color:var(--text-3);border:1px solid var(--border);border-radius:20px;padding:2px 9px;display:inline-block}
.real-tag{font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:var(--color-success-bg);color:var(--color-success-text);border:1px solid color-mix(in srgb, var(--color-success) 35%, var(--color-success-bg));border-radius:20px;padding:2px 9px;display:inline-block}

/* Estado operativo (Dashboard) */
.status-list{display:flex;flex-direction:column;gap:8px}
.status-item{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border:1px solid var(--border);border-radius:8px;background:var(--panel)}
.status-lbl{display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:500;color:var(--text)}
.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.status-dot.on{background:var(--color-success)}
.status-dot.off{background:var(--text-3)}
.status-dot.warn{background:var(--color-warning)}
.status-val{font-size:11.5px;color:var(--text-3)}
.status-val.on{color:var(--color-success-text)}
.status-val.warn{color:var(--color-warning-text)}

/* Consumo del plan */
.plan-bar-track{height:10px;border-radius:6px;background:var(--bg-2);overflow:hidden;margin:10px 0 8px}
.plan-bar-fill{height:100%;background:var(--accent);transition:width .4s}
.plan-bar-fill.warn{background:var(--color-warning)}
.plan-bar-fill.over{background:var(--color-danger)}
.plan-row{display:flex;justify-content:space-between;font-size:12px;color:var(--text-2)}

/* Bandeja de entrada */
.inbox-shell{display:grid;grid-template-columns:290px 1fr 280px;height:calc(100vh - 98px);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--panel)}
.inbox-list{border-right:1px solid var(--border);overflow-y:auto;display:flex;flex-direction:column;min-width:0}
.inbox-search{padding:12px;border-bottom:1px solid var(--border);flex-shrink:0}
.inbox-item{display:flex;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);cursor:pointer;position:relative}
.inbox-item:hover{background:var(--bg-2)}
.inbox-item.on{background:var(--color-selection-bg);border-left:3px solid var(--accent);padding-left:11px}
.inbox-av{width:36px;height:36px;border-radius:50%;background:var(--color-selection-bg);color:var(--color-selection-text);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12.5px;flex-shrink:0}
.inbox-row1{display:flex;justify-content:space-between;gap:6px}
.inbox-name{font-size:13px;font-weight:600;color:var(--text)}
.inbox-time{font-size:10.5px;color:var(--text-3);flex-shrink:0}
.inbox-last{font-size:11.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.inbox-row2{display:flex;align-items:center;gap:6px;margin-top:6px;flex-wrap:wrap}
.inbox-chip{font-size:9.5px;font-weight:600;padding:2px 7px;border-radius:8px}
.inbox-chip.ai{background:var(--color-selection-bg);color:var(--color-selection-text)}
.inbox-chip.human{background:var(--color-info-bg);color:var(--color-info-text)}
.inbox-chip.paused{background:var(--bg-2);color:var(--text-2);border:1px solid var(--border)}
.inbox-unread{margin-left:auto;background:var(--accent);color:var(--ink-on-accent);border-radius:10px;font-size:10px;font-weight:700;padding:1px 7px;flex-shrink:0}

.inbox-conv{display:flex;flex-direction:column;min-width:0;border-right:1px solid var(--border)}
.inbox-conv-h{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;background:var(--bg-2);flex-shrink:0}
.inbox-conv-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--bg)}
.inbox-msg{max-width:72%;padding:9px 13px;border-radius:14px;font-size:13px;line-height:1.5}
.inbox-msg.contact{background:var(--panel);border:1px solid var(--border);border-radius:14px 14px 14px 4px;align-self:flex-start;color:var(--text)}
.inbox-msg.ai{background:var(--color-selection-bg);color:var(--color-selection-text);border-radius:14px 14px 4px 14px;align-self:flex-end}
.inbox-msg.human{background:var(--accent);color:var(--ink-on-accent);border-radius:14px 14px 4px 14px;align-self:flex-end;font-weight:500}
.inbox-msg.event{align-self:center;background:none;color:var(--text-3);font-size:11px;font-style:italic;max-width:100%;text-align:center}
.inbox-msg-tag{font-size:9px;text-transform:uppercase;letter-spacing:.05em;opacity:.75;margin-bottom:3px;display:block;font-weight:700}
.inbox-in{display:flex;gap:8px;padding:10px;border-top:1px solid var(--border);background:var(--panel);flex-shrink:0}
.inbox-in input{flex:1;min-width:0;padding:8px 11px;border:1px solid var(--border-2);border-radius:7px;background:var(--color-control-bg);color:var(--text);font-size:13px;font-family:inherit}
.inbox-in input:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}

.inbox-side{overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:16px;min-width:0}
.inbox-side-av{width:52px;height:52px;border-radius:50%;background:var(--color-selection-bg);color:var(--color-selection-text);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:17px;margin:0 auto}
.inbox-controls{display:flex;flex-direction:column;gap:6px}
.inbox-tag-list{display:flex;gap:5px;flex-wrap:wrap;min-height:22px}
.inbox-tag{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:12px;background:var(--bg-2);color:var(--text-2);padding:2px 7px;font-size:10.5px}
.inbox-tag button{border:0;background:none;color:var(--text-3);padding:0;cursor:pointer;font:inherit;line-height:1}
.inbox-tag button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.inbox-tag-empty{color:var(--text-3);font-size:11px}
@media (max-width:900px){
  .inbox-shell{grid-template-columns:1fr;height:auto;overflow:visible}
  .inbox-list{max-height:280px;border-right:0;border-bottom:1px solid var(--border)}
  .inbox-conv{height:68vh;min-height:480px;border-right:0;border-bottom:1px solid var(--border)}
  .inbox-side{overflow:visible}
}
@media (max-width:520px){
  .inbox-in{align-items:stretch;flex-direction:column}
  .inbox-msg{max-width:88%}
}

/* Pipeline (CRM Kanban) */
.pipeline-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:10px;align-items:flex-start}
.pipeline-col{flex:0 0 216px;background:var(--bg-2);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}
.pipeline-col-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2);display:flex;justify-content:space-between;align-items:center;padding:2px 4px}
.pipeline-col-count{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:0 7px;font-size:10.5px;color:var(--text-3)}
.pipeline-cards{display:flex;flex-direction:column;gap:8px;min-height:40px}
.pipeline-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 12px;cursor:pointer;transition:border-color .12s}
.pipeline-card:hover{border-color:var(--accent)}
.pipeline-card-name{font-size:12.5px;font-weight:600;color:var(--text)}
.pipeline-card-co{font-size:11px;color:var(--text-3);margin-top:2px}
.pipeline-card-val{font-size:12px;font-weight:700;color:var(--color-selection-text);margin-top:8px}
.pipeline-card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:6px;font-size:10.5px;color:var(--text-3)}
.pipeline-empty{font-size:11px;color:var(--text-3);text-align:center;padding:14px 6px;border:1px dashed var(--border-2);border-radius:8px}

/* Beneficios de plan (grid de checks) */
.benefits-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 16px;margin-top:12px}
.benefit-item{font-size:12.5px;color:var(--text-2);display:flex;align-items:baseline;gap:6px}
@media (max-width:900px){.benefits-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.benefits-grid{grid-template-columns:1fr}}
