/* =================================================================
   CRM / ERP interactive experience — "De WhatsApp a sistema"
   Acto 1: terminal de diagnostico sobre la imagen.
   Acto 2: sistema de gestion a pantalla completa.
   Paleta: oscuro + contornos violeta, acentos pixel (marca SITW).
   ================================================================= */
@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=VT323&display=swap');

.crm-xp,
.crm-system {
  --c-bg:#050309;
  --c-bg2:#0a0614;
  --c-violet:#a45bff;
  --c-violet-soft:#7a45d6;
  --c-violet-deep:#2a1450;
  --c-line:#7b3fff;
  --c-green:#46f0a6;
  --c-amber:#ffb648;
  --c-red:#ff445f;
  --c-text:#e7ddff;
  --c-dim:#8a7cb5;
  --c-panel:rgba(8,5,18,.94);
  --c-panel-line:rgba(150,85,255,.5);
  --c-pixel:"Press Start 2P","Courier New",monospace;
  --c-mono:"VT323","Courier New",monospace;
  box-sizing:border-box;
}
.crm-xp *,
.crm-system *{box-sizing:border-box}

/* -----------------------------------------------------------------
   Acto 1 — capa sobre la imagen del room
   ----------------------------------------------------------------- */
.crm-xp{
  position:absolute;inset:0;z-index:30;
  display:flex;align-items:center;justify-content:center;
  pointer-events:none;
}
.crm-xp[data-state="boot"]{background:radial-gradient(120% 90% at 50% 50%,transparent 40%,rgba(3,1,8,.55) 100%)}
.crm-xp[data-state="terminal"]{background:radial-gradient(120% 90% at 50% 50%,rgba(10,5,22,.55) 30%,rgba(3,1,8,.86) 100%);backdrop-filter:blur(2px)}
.crm-xp[data-state="done"]{display:none}

/* launch button (pulsa sobre la imagen antes de abrir la terminal) */
.crm-xp-launch{
  position:relative;pointer-events:auto;cursor:pointer;
  font-family:var(--c-pixel);font-size:12px;letter-spacing:1px;text-transform:uppercase;
  color:#f3ecff;background:rgba(8,5,18,.86);
  border:2px solid var(--c-violet);border-radius:4px;padding:18px 26px;
  text-shadow:2px 2px 0 #000;
  box-shadow:0 0 0 2px rgba(0,0,0,.5),4px 4px 0 rgba(130,70,255,.45),0 0 26px rgba(130,70,255,.4);
  transition:.14s;
}
.crm-xp-launch:hover{background:var(--c-violet);color:#0a0418;text-shadow:none;transform:translate(-1px,-1px)}
.crm-xp-launch:active{transform:translate(3px,3px);box-shadow:0 0 0 2px rgba(0,0,0,.5)}
.crm-xp-launch-glow{position:absolute;inset:-30px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(160,110,255,.35),transparent 70%);animation:crmPulse 2.2s infinite}
.crm-xp[data-state="terminal"] .crm-xp-launch,
.crm-xp[data-state="done"] .crm-xp-launch{display:none}

/* terminal window */
.crm-terminal{
  display:none;pointer-events:auto;
  width:min(680px,92vw);max-height:min(78vh,640px);
  background:linear-gradient(180deg,rgba(10,6,22,.98),rgba(3,1,8,.99));
  border:2px solid var(--c-violet);border-radius:6px;
  box-shadow:0 0 0 2px rgba(0,0,0,.6),0 0 40px rgba(130,70,255,.35),inset 0 0 60px rgba(40,20,80,.25);
  flex-direction:column;overflow:hidden;position:relative;
}
.crm-terminal::after{ /* scanlines */
  content:"";position:absolute;inset:0;pointer-events:none;z-index:3;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,0) 0 2px,rgba(0,0,0,.18) 2px 3px);
  mix-blend-mode:multiply;opacity:.6}
.crm-xp[data-state="terminal"] .crm-terminal{display:flex;animation:crmTermIn .35s ease}

.crm-term-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;
  background:rgba(20,10,40,.7);border-bottom:2px solid var(--c-panel-line)}
.crm-term-dot{width:11px;height:11px;border-radius:50%;background:#3a2466;border:1px solid rgba(160,110,255,.5)}
.crm-term-dot:nth-child(1){background:#ff445f}.crm-term-dot:nth-child(2){background:#ffb648}.crm-term-dot:nth-child(3){background:#46f0a6}
.crm-term-title{font-family:var(--c-mono);font-size:16px;color:var(--c-dim);letter-spacing:1px;margin-left:6px}
.crm-term-close{margin-left:auto;background:none;border:none;color:var(--c-dim);font-size:22px;line-height:1;cursor:pointer;padding:0 4px}
.crm-term-close:hover{color:var(--c-violet)}

.crm-term-screen{flex:1;overflow-y:auto;padding:20px 22px;font-family:var(--c-mono);
  font-size:23px;line-height:1.36;color:var(--c-text)}
.crm-term-screen::-webkit-scrollbar{width:8px}
.crm-term-screen::-webkit-scrollbar-thumb{background:rgba(160,110,255,.3);border-radius:8px}

.crm-line{margin:0 0 7px;white-space:pre-wrap}
.crm-line.sys{color:var(--c-green)}
.crm-line.sys::before{content:"> ";color:var(--c-violet)}
.crm-line.bot{color:var(--c-text)}
.crm-line.bot::before{content:"SITW:: ";font-family:var(--c-pixel);font-size:9px;color:var(--c-violet);letter-spacing:1px}
.crm-line.user{color:var(--c-amber)}
.crm-line.user::before{content:"VOS:: ";font-family:var(--c-pixel);font-size:9px;color:var(--c-amber);letter-spacing:1px}
.crm-line.dim{color:var(--c-dim);font-size:19px}
.crm-caret{display:inline-block;width:10px;height:17px;background:var(--c-green);
  vertical-align:-2px;margin-left:2px;box-shadow:0 0 8px var(--c-green);animation:crmBlink 1s steps(1) infinite}

.crm-term-zone{padding:12px 16px;border-top:2px solid var(--c-panel-line);background:rgba(6,3,14,.6);
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:54px}
.crm-opt{font-family:var(--c-pixel);font-size:10px;letter-spacing:.5px;text-transform:uppercase;
  color:#f3ecff;background:rgba(120,60,255,.16);border:2px solid var(--c-violet-soft);border-radius:4px;
  padding:11px 14px;cursor:pointer;transition:.12s;text-shadow:1px 1px 0 #000}
.crm-opt:hover{background:var(--c-violet);color:#0a0418;text-shadow:none}
.crm-opt:active{transform:translate(2px,2px)}
.crm-term-field{display:flex;gap:10px;width:100%}
.crm-term-field input{flex:1;font-family:var(--c-mono);font-size:24px;color:var(--c-text);
  background:transparent!important;border:2px solid var(--c-violet);border-radius:6px;padding:12px 14px;outline:none;
  caret-color:var(--c-violet);box-shadow:inset 0 0 0 1px rgba(164,91,255,.18),0 0 18px rgba(130,70,255,.16)}
.crm-term-field input::placeholder{color:rgba(205,178,255,.58)}
.crm-term-field input:focus{background:transparent!important;border-color:#caa7ff;box-shadow:inset 0 0 0 1px rgba(202,167,255,.32),0 0 22px rgba(130,70,255,.42)}
.crm-term-field input:-webkit-autofill,
.crm-term-field input:-webkit-autofill:hover,
.crm-term-field input:-webkit-autofill:focus{-webkit-text-fill-color:var(--c-text)!important;caret-color:var(--c-violet);
  box-shadow:0 0 0 1000px transparent inset, inset 0 0 0 1px rgba(164,91,255,.18),0 0 18px rgba(130,70,255,.16)!important;
  transition:background-color 9999s ease-in-out 0s;background:transparent!important}
.crm-term-field button{font-family:var(--c-pixel);font-size:10px;text-transform:uppercase;color:#0a0418;
  background:var(--c-green);border:none;border-radius:4px;padding:0 16px;cursor:pointer}

/* -----------------------------------------------------------------
   Acto 2 — sistema a pantalla completa (montado en <body>)
   ----------------------------------------------------------------- */
.crm-system{
  position:fixed;inset:0;z-index:99999;display:none;flex-direction:column;
  background:
    radial-gradient(1100px 600px at 50% -6%,rgba(70,32,130,.18),transparent 60%),
    linear-gradient(180deg,var(--c-bg),var(--c-bg2));
  color:var(--c-text);font-family:"Segoe UI",system-ui,sans-serif;
  opacity:0;transition:opacity .5s}
.crm-system.show{display:flex;opacity:1}
.crm-system::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:5;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,0) 0 2px,rgba(0,0,0,.12) 2px 3px);
  mix-blend-mode:multiply;opacity:.5}

/* top bar */
.crm-sys-top{display:flex;align-items:center;gap:14px;padding:14px 22px;
  border-bottom:2px solid var(--c-panel-line);background:rgba(6,3,14,.8);z-index:6}
.crm-sys-brand{font-family:var(--c-pixel);font-size:12px;letter-spacing:1px;color:#f3ecff;text-shadow:2px 2px 0 #000}
.crm-sys-brand b{color:var(--c-violet)}
.crm-sys-biz{font-family:var(--c-mono);font-size:17px;color:var(--c-dim);letter-spacing:.5px}
.crm-sys-clock{margin-left:auto;font-family:var(--c-mono);font-size:16px;color:var(--c-dim)}
.crm-sys-money{font-family:var(--c-pixel);font-size:10px;color:var(--c-green);text-shadow:2px 2px 0 #000;
  border:2px solid rgba(70,240,166,.4);border-radius:4px;padding:8px 12px;background:rgba(4,2,10,.7)}

/* zones grid */
.crm-zones{flex:1;display:grid;grid-template-columns:repeat(5,1fr);gap:12px;padding:16px 22px;overflow:hidden;z-index:6}
.crm-zone{display:flex;flex-direction:column;min-height:0;background:rgba(6,3,14,.75);
  border:2px solid var(--c-panel-line);border-radius:6px;overflow:hidden;transition:.3s}
.crm-zone.flash{animation:crmFlash .6s}
.crm-zone.alarm{border-color:var(--c-red);box-shadow:0 0 0 2px rgba(0,0,0,.4),0 0 22px rgba(255,68,95,.35)}
.crm-zone-head{display:flex;align-items:center;gap:8px;padding:11px 13px;border-bottom:2px solid var(--c-panel-line);
  background:rgba(20,10,40,.5)}
.crm-zone-ic{width:22px;height:22px;flex:0 0 auto;display:grid;place-items:center;color:var(--c-violet)}
.crm-zone-ic svg{width:20px;height:20px}
.crm-zone-name{font-family:var(--c-pixel);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:#f3ecff;text-shadow:1px 1px 0 #000}
.crm-zone-count{margin-left:auto;font-family:var(--c-pixel);font-size:8px;color:#0a0418;background:var(--c-violet);
  border-radius:3px;padding:4px 6px;min-width:20px;text-align:center}
.crm-zone-count.zero{background:#3a2466;color:var(--c-dim)}
.crm-zone-count.warn{background:var(--c-amber)}
.crm-zone-count.bad{background:var(--c-red);color:#fff}
.crm-zone-body{flex:1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:8px}
.crm-zone-body::-webkit-scrollbar{width:7px}
.crm-zone-body::-webkit-scrollbar-thumb{background:rgba(160,110,255,.3);border-radius:7px}
.crm-zone-empty{font-family:var(--c-mono);font-size:15px;color:var(--c-dim);text-align:center;margin:auto;opacity:.7;padding:18px 6px}

/* cards inside zones */
.crm-card{background:rgba(80,45,150,.08);border:1px solid rgba(150,85,255,.25);border-radius:5px;
  padding:9px 11px;font-family:var(--c-mono);font-size:16px;line-height:1.2;animation:crmSlideIn .3s}
.crm-card .ct{display:block;color:var(--c-text)}
.crm-card .cmeta{display:block;color:var(--c-dim);font-size:14px;margin-top:3px}
.crm-card .ctag{display:inline-block;margin-top:6px;font-family:var(--c-pixel);font-size:7px;letter-spacing:.5px;
  text-transform:uppercase;padding:4px 6px;border-radius:3px;background:rgba(255,182,72,.16);color:var(--c-amber);
  border:1px solid rgba(255,182,72,.3)}
.crm-card.ok{background:rgba(70,240,166,.07);border-color:rgba(70,240,166,.3)}
.crm-card.ok .ctag{background:rgba(70,240,166,.16);color:var(--c-green);border-color:rgba(70,240,166,.35)}
.crm-card.bad{background:rgba(255,68,95,.08);border-color:rgba(255,68,95,.35)}
.crm-card.bad .ctag{background:rgba(255,68,95,.18);color:var(--c-red);border-color:rgba(255,68,95,.4)}
.crm-card.msg .cwho{color:var(--c-violet);font-size:14px;display:block;margin-bottom:2px}

/* alert box (floating, center) */
.crm-alert{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:30;
  width:min(440px,88vw);background:rgba(8,4,16,.98);border:2px solid var(--c-red);border-radius:6px;
  box-shadow:0 0 0 2px rgba(0,0,0,.6),0 0 36px rgba(255,68,95,.35);padding:20px 22px;display:none}
.crm-alert.show{display:block;animation:crmPop .35s}
.crm-alert.kind-amber{border-color:var(--c-amber);box-shadow:0 0 0 2px rgba(0,0,0,.6),0 0 36px rgba(255,182,72,.35)}
.crm-alert.kind-violet{border-color:var(--c-violet);box-shadow:0 0 0 2px rgba(0,0,0,.6),0 0 36px rgba(130,70,255,.4)}
.crm-alert-t{font-family:var(--c-pixel);font-size:12px;letter-spacing:1px;text-transform:uppercase;color:#fff;
  text-shadow:2px 2px 0 #000;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.crm-alert.kind-amber .crm-alert-t{color:var(--c-amber)}
.crm-alert.kind-violet .crm-alert-t{color:var(--c-violet)}
.crm-alert-body{font-family:var(--c-mono);font-size:17px;line-height:1.3;color:var(--c-text);margin-bottom:14px}
.crm-alert-rec{font-family:var(--c-mono);font-size:16px;color:var(--c-green);background:rgba(70,240,166,.07);
  border-left:3px solid var(--c-green);padding:8px 10px;border-radius:0 4px 4px 0;margin-bottom:14px}
.crm-alert-actions{display:flex;flex-wrap:wrap;gap:8px}

/* generic pixel button */
.crm-btn{font-family:var(--c-pixel);font-size:10px;letter-spacing:.5px;text-transform:uppercase;cursor:pointer;
  color:#f3ecff;background:rgba(120,60,255,.16);border:2px solid var(--c-violet);border-radius:4px;
  padding:11px 15px;transition:.12s;text-shadow:1px 1px 0 #000}
.crm-btn:hover{background:var(--c-violet);color:#0a0418;text-shadow:none}
.crm-btn:active{transform:translate(2px,2px)}
.crm-btn.green{border-color:var(--c-green);background:rgba(70,240,166,.14)}
.crm-btn.green:hover{background:var(--c-green);color:#0a2418}
.crm-btn.ghost{border-color:var(--c-panel-line);background:transparent;color:var(--c-dim)}
.crm-btn.ghost:hover{border-color:var(--c-violet);color:#f3ecff;background:transparent}

/* narrator dock (Hotline-style) */
.crm-dock{display:flex;gap:14px;align-items:center;padding:16px 22px;margin:0 22px 18px;z-index:6;
  background:linear-gradient(180deg,rgba(10,5,20,.96),rgba(4,2,10,.98));
  border:2px solid var(--c-violet);border-radius:5px;
  box-shadow:0 0 0 2px rgba(0,0,0,.6),0 0 22px rgba(130,70,255,.3)}
.crm-dock-av{width:44px;height:44px;flex:0 0 auto;border-radius:4px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--c-violet),var(--c-violet-deep));
  box-shadow:0 0 0 2px rgba(0,0,0,.5),0 0 14px rgba(130,70,255,.4)}
.crm-dock-av svg{width:26px;height:26px}
.crm-dock-body{flex:1;min-height:42px;display:flex;flex-direction:column;justify-content:center}
.crm-dock-who{font-family:var(--c-pixel);font-size:8px;letter-spacing:2px;text-transform:uppercase;color:var(--c-violet);
  margin-bottom:8px;text-shadow:1px 1px 0 #000}
.crm-dock-say{font-family:var(--c-pixel);font-size:13px;line-height:1.6;text-transform:uppercase;color:#f3ecff;
  text-shadow:2px 2px 0 #000,0 0 12px rgba(150,90,255,.5);white-space:pre-line;min-height:21px}
.crm-dock-say .crm-caret{height:13px;width:9px;vertical-align:-1px}
.crm-dock-cta{margin-left:14px;display:flex;flex-direction:column;align-items:flex-end;gap:7px;flex:0 0 auto}
.crm-next{font-family:var(--c-pixel);font-size:11px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;
  color:#f3ecff;background:rgba(10,5,22,.9);border:2px solid var(--c-violet);border-radius:3px;padding:12px 18px;
  white-space:nowrap;text-shadow:2px 2px 0 #000;transition:.12s;
  box-shadow:0 0 0 2px rgba(0,0,0,.5),3px 3px 0 rgba(130,70,255,.4)}
.crm-next:hover{background:var(--c-violet);color:#0a0418;text-shadow:none;box-shadow:0 0 0 2px #000,0 0 20px rgba(150,90,255,.7)}
.crm-next:active{transform:translate(2px,2px)}
.crm-next:disabled{opacity:.35;cursor:not-allowed}
.crm-next.hidden{display:none}
.crm-hint{font-family:var(--c-mono);font-size:14px;color:var(--c-dim);letter-spacing:1px}

/* flying transform chip (msg -> record) */
.crm-fly{position:fixed;z-index:40;pointer-events:none;font-family:var(--c-mono);font-size:15px;
  color:#f3ecff;background:rgba(8,4,16,.96);border:2px solid var(--c-violet);border-radius:5px;padding:7px 11px;
  box-shadow:0 0 20px rgba(130,70,255,.5);
  transition:transform .9s cubic-bezier(.5,-.2,.3,1.2),opacity .9s}

/* toast */
.crm-toast{position:fixed;left:50%;top:80px;transform:translateX(-50%);z-index:50;
  font-family:var(--c-pixel);font-size:10px;letter-spacing:.5px;text-transform:uppercase;color:#0a2418;
  background:var(--c-green);border-radius:4px;padding:12px 18px;box-shadow:0 0 26px rgba(70,240,166,.5);
  display:none;text-shadow:none}
.crm-toast.show{display:block;animation:crmDropIn .4s}

/* -----------------------------------------------------------------
   Dashboard final
   ----------------------------------------------------------------- */
.crm-dash{position:absolute;inset:0;z-index:60;display:none;align-items:center;justify-content:center;
  background:radial-gradient(800px 600px at 50% 24%,rgba(70,240,166,.1),transparent 60%),rgba(4,2,10,.96);overflow-y:auto}
.crm-dash.show{display:flex;animation:crmFade .6s}
.crm-dash-inner{width:min(960px,94vw);padding:30px 20px;text-align:center}
.crm-dash h2{font-family:var(--c-pixel);font-size:20px;line-height:1.4;text-transform:uppercase;color:#f3ecff;
  text-shadow:3px 3px 0 #000,0 0 18px rgba(150,90,255,.55);margin:0 0 8px}
.crm-dash .crm-dash-sub{font-family:var(--c-mono);font-size:18px;color:var(--c-dim);margin-bottom:24px}
.crm-dash-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;text-align:left}
.crm-dash-card{background:rgba(8,5,18,.9);border:2px solid var(--c-panel-line);border-radius:6px;padding:15px 14px}
.crm-dash-card h3{font-family:var(--c-pixel);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--c-violet);
  margin:0 0 11px;text-shadow:1px 1px 0 #000}
.crm-dash-card ul{list-style:none;margin:0;padding:0;font-family:var(--c-mono);font-size:16px;line-height:1.45;color:var(--c-text)}
.crm-dash-card li{display:flex;justify-content:space-between;gap:8px;border-bottom:1px dashed rgba(150,85,255,.18);padding:3px 0}
.crm-dash-card li b{color:var(--c-green)}
.crm-dash-card.tasks ul{color:var(--c-amber)}
.crm-dash-card.tasks li{justify-content:flex-start;gap:7px}
.crm-dash-card.tasks li::before{content:"\25A2";color:var(--c-violet)}
.crm-dash-pitch{font-family:var(--c-pixel);font-size:13px;line-height:1.7;text-transform:uppercase;color:#f3ecff;
  text-shadow:2px 2px 0 #000;margin:6px 0 4px}
.crm-dash-pitch b{color:var(--c-violet)}
.crm-dash-note{font-family:var(--c-mono);font-size:16px;color:var(--c-dim);max-width:560px;margin:10px auto 22px;line-height:1.4}
.crm-cta{font-family:var(--c-pixel);font-size:13px;letter-spacing:1px;text-transform:uppercase;cursor:pointer;
  color:#0a2418;background:var(--c-green);border:2px solid var(--c-green);border-radius:4px;padding:18px 30px;
  box-shadow:0 0 0 2px rgba(0,0,0,.5),4px 4px 0 rgba(70,240,166,.4),0 0 26px rgba(70,240,166,.4);transition:.12s}
.crm-cta:hover{transform:translate(-1px,-1px);box-shadow:0 0 0 2px rgba(0,0,0,.5),5px 5px 0 rgba(70,240,166,.5),0 0 40px rgba(70,240,166,.6)}
.crm-cta:active{transform:translate(3px,3px)}
.crm-dash-restart{display:block;margin:16px auto 0;background:none;border:none;color:var(--c-dim);cursor:pointer;
  font-family:var(--c-mono);font-size:15px;text-decoration:underline}

/* -----------------------------------------------------------------
   keyframes
   ----------------------------------------------------------------- */
@keyframes crmPulse{0%,100%{opacity:.9;transform:scale(1)}50%{opacity:.4;transform:scale(1.12)}}
@keyframes crmBlink{0%,50%{opacity:1}51%,100%{opacity:0}}
@keyframes crmTermIn{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
@keyframes crmSlideIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes crmPop{0%{transform:translate(-50%,-50%) scale(.85);opacity:0}70%{transform:translate(-50%,-50%) scale(1.04)}100%{transform:translate(-50%,-50%) scale(1);opacity:1}}
@keyframes crmDropIn{from{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translateX(-50%)}}
@keyframes crmFade{from{opacity:0}to{opacity:1}}
@keyframes crmFlash{0%,100%{background:rgba(6,3,14,.75)}40%{background:rgba(120,70,220,.22)}}

/* -----------------------------------------------------------------
   responsive
   ----------------------------------------------------------------- */
@media (max-width:900px){
  .crm-zones{grid-template-columns:repeat(2,1fr);overflow-y:auto}
  .crm-dash-grid{grid-template-columns:repeat(2,1fr)}
  .crm-sys-clock{display:none}
}
@media (max-width:560px){
  /* barra superior en dos filas compactas */
  .crm-sys-top{flex-wrap:wrap;gap:6px 10px;padding:10px 12px}
  .crm-sys-brand{font-size:11px}
  .crm-sys-biz{width:100%;order:4;font-size:11px;opacity:.8}

  /* zonas: columna con scroll y altura real por zona (nada aplastado) */
  .crm-zones{grid-template-columns:1fr;grid-auto-rows:minmax(172px,auto);
    overflow-y:auto;padding:10px 12px;gap:10px}
  .crm-zone{min-height:172px}

  .crm-dock{flex-wrap:wrap;margin:0 10px 10px;padding:12px;gap:10px}
  .crm-dock-cta{margin-left:0;width:100%;align-items:stretch}
  .crm-dash-grid{grid-template-columns:1fr}
  .crm-dash h2{font-size:15px}
}

/* En mobile/tablet el room mide 1180px (scroll horizontal), asi que la
   terminal centrada dentro del canvas queda cortada por el viewport.
   Cuando la terminal esta abierta la fijamos a la pantalla. */
@media (max-width:768px){
  .crm-xp[data-state="terminal"]{position:fixed;inset:0;z-index:100020}
  .crm-term-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
