/* =====================================================================================================
   La Colmena v2 · adaptación a móvil («como una app»)
   Todo lo móvil vive en este archivo. Se carga después de app.css y solo actúa en pantallas estrechas
   o táctiles, así que el escritorio no cambia. Para quitarlo basta con eliminar el <link> de index.html.
   ===================================================================================================== */

/* ---------- Base común a pantallas táctiles ---------- */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
.sheet-grip{display:none;}
@media (pointer:coarse){
  button,a,[role=button],summary,label,select,.chip,.btn,.tab,.nav-i,.pop-i,.opt-card,.plan-opt,.gd-tab,.gd-opt,.gd-seqtab{-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
  button,.chip,.btn,.tab,.seg button,.icon-btn,.tabbar button{-webkit-user-select:none;user-select:none;}
  /* Sin :hover en el dedo: el feedback es al pulsar */
  .btn:active,.chip:active,.icon-btn:active,.seg button:active,.pop-i:active,.tab:active{transform:scale(.97);}
  .btn:active{background:var(--surface-3);} .btn-primary:active{filter:brightness(.92);}
  .tabbar button:active{transform:scale(.94);}
}

/* ---------- Móvil y tablet vertical ---------- */
@media (max-width:900px){
  html{font-size:16px;}
  body{overscroll-behavior-x:none;-webkit-touch-callout:none;}
  input,textarea,select,[contenteditable]{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text;}

  /* Zonas seguras (muesca arriba, barra de inicio abajo, laterales en horizontal) */
  body::before{content:'';position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);background:var(--bg);z-index:90;pointer-events:none;}
  .main{padding-top:env(safe-area-inset-top,0px);}
  .top{top:env(safe-area-inset-top,0px);padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));}
  .content{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:calc(112px + env(safe-area-inset-bottom,0px));}
  .tabbar{bottom:calc(10px + env(safe-area-inset-bottom,0px));left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));}
  .toast{bottom:calc(92px + env(safe-area-inset-bottom,0px));max-width:calc(100vw - 32px);text-align:center;}

  /* Objetivos táctiles de 44 px como mínimo */
  .btn{height:46px;padding:0 18px;font-size:15px;border-radius:13px;}
  .btn-sm{height:40px;padding:0 14px;font-size:14px;border-radius:11px;}
  .btn-xs{height:36px;padding:0 12px;font-size:13.5px;border-radius:10px;}
  .icon-btn{width:44px;height:44px;border-radius:12px;}
  .chip{height:40px;padding:0 14px;font-size:14px;}
  .seg button{height:38px;padding:0 14px;font-size:14px;}
  .tab{padding:14px 16px;font-size:15px;}
  .sel-inline{height:40px;font-size:16px;padding:0 32px 0 12px;}
  .pop-i{padding:13px 12px;font-size:15px;border-radius:10px;}
  .tabbar{height:calc(64px);} .tabbar button{font-size:11px;} .tabbar .ic{width:23px;height:23px;}

  /* iOS hace zoom si el campo tiene menos de 16 px */
  .inp,.sel,.txa,.search-inp input,input[type=date],input[type=number],input[type=search],input[type=text],input[type=email],input[type=password],input[type=tel],textarea,select{font-size:16px;}
  .inp,.sel{height:48px;} .txa{min-height:96px;}
  .search-inp{height:46px;}
  input[type=date]{min-height:48px;}

  /* Hojas inferiores (sheets) */
  .sheet{max-height:min(92vh,92dvh);padding-bottom:0;box-shadow:0 -18px 60px rgba(0,0,0,.45);}
  .sheet-grip{display:flex;justify-content:center;padding:9px 0 2px;flex:none;touch-action:none;cursor:grab;} .sheet-grip::before{content:'';width:44px;height:5px;border-radius:5px;background:var(--line-3);}
  .sheet-head{padding:8px 20px 14px;touch-action:none;} .sheet-head h2{font-size:19px;}
  .sheet-body{padding:18px 20px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
  .sheet-foot{padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));gap:10px;} .sheet-foot .btn{flex:1;}
  .sheet.dragging{transition:none!important;}

  /* Diálogos de confirmación como hoja de acciones */
  .dialog-wrap{place-items:end center;}
  .dialog{width:100vw;border-radius:22px 22px 0 0;border-bottom:0;padding:24px 20px calc(20px + env(safe-area-inset-bottom,0px));transform:translateY(40px);}
  .dialog-wrap.open .dialog{transform:none;}
  .dialog-actions{flex-direction:column-reverse;gap:10px;} .dialog-actions .btn{width:100%;}
}
@media (max-width:900px) and (orientation:landscape){
  .content{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px));} .tabbar{height:54px;} .tabbar button{flex-direction:row;gap:7px;font-size:12px;} .tabbar .ic{width:19px;height:19px;}
  .sheet{max-height:94vh;}
}

/* =====================================================================================================
   Lote 1 · estructura general (banner, filtros, tarjetas, cabeceras)
   ===================================================================================================== */
@media (max-width:900px){
  :root{--gap:12px;}

  /* Banner de Discord: una sola fila */
  .dc-banner{margin:6px max(16px,env(safe-area-inset-left)) 0;padding:10px 12px;gap:10px;flex-wrap:nowrap;border-radius:14px;align-items:center;}
  .dc-ic{width:36px;height:36px;border-radius:10px;} .dc-ic .ic{width:21px;height:21px;}
  .dc-t{flex:1 1 auto;flex-basis:auto;} .dc-t b{font-size:14.5px;line-height:1.25;} .dc-t span{display:none;}
  .dc-btn{flex:none;height:40px;padding:0 14px;font-size:14px;} .dc-banner .icon-btn{width:40px;height:40px;flex:none;}

  /* Franja de aviso de modo demo más fina */
  .demo-strip{padding:5px 16px;font-size:11.5px;}

  /* Cabecera de página */
  .top{--top:58px;} .top h1{font-size:20px;letter-spacing:-.025em;}
  .page-head{margin:2px 0 14px;} .page-head p{font-size:13.5px;line-height:1.5;margin-top:0;max-width:none;}
  .mentor-bar{gap:8px 10px;padding:9px 16px;font-size:13px;} .mentor-bar .btn{height:36px;font-size:13px;padding:0 12px;}

  /* Filtros: fila 1 = periodo + mes (caben siempre); fila 2 = empresas, que se desliza si no caben */
  #filters .toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:2px 0 12px!important;padding:0;}
  #filters .toolbar .grow{display:none;}
  #filters .seg{flex:1 1 0;min-width:0;display:flex;} #filters .seg button{flex:1 1 0;min-width:0;padding:0 4px;text-align:center;}
  #filters .sel-inline{flex:0 0 auto;width:112px;height:46px;border-radius:13px;padding:0 30px 0 12px;}
  #filters .toolbar>div:not(.seg){flex:1 1 100%;display:flex;flex-wrap:nowrap!important;gap:8px;overflow-x:auto;margin:0 -16px;padding:2px 16px 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-padding:0 16px;overscroll-behavior-x:contain;}
  #filters .toolbar>div:not(.seg)::-webkit-scrollbar{display:none;} #filters .toolbar>div:not(.seg)>*{flex:none;}

  /* Tarjetas más compactas */
  .card{padding:16px;border-radius:18px;}
  .card-h{margin-bottom:12px;} .card-h h3{font-size:15.5px;} .card-h .sub{font-size:13px;}
  .grid.g3:has(>.kpi),.grid.g2:has(>.kpi){grid-template-columns:repeat(2,minmax(0,1fr));}
  .kpi{gap:5px;} .kpi .k-l{font-size:12.5px;} .kpi .k-v{font-size:24px;} .kpi .k-s{font-size:12.5px;}

  /* Barras de herramientas: se alinean arriba, sin botones duplicados */
  .toolbar{gap:8px;margin-bottom:12px;}
  #view .toolbar [data-new]{display:none;}
  #view .toolbar .seg{max-width:100%;overflow-x:auto;scrollbar-width:none;} #view .toolbar .seg::-webkit-scrollbar{display:none;}
  #view .toolbar .search-inp{flex:1 1 100%;min-width:0;order:5;}

  /* Pestañas deslizables con aviso de que hay más */
  .tabs{margin:0 -16px 14px;padding:0 16px;gap:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scroll-padding:0 16px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);}
  .tabs::-webkit-scrollbar{display:none;} .tab{flex:none;scroll-snap-align:start;padding:13px 14px;}

  /* Tablas con deslizamiento horizontal suave */
  .tbl-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;}
}

/* Correcciones de desborde detectadas en la prueba de humo */
@media (max-width:900px){
  .seg{max-width:100%;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;} .seg::-webkit-scrollbar{display:none;} .seg button{flex:none;}
  .kv[style*="repeat(3"]{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .lcr-tabs,.lcr-subtabs{display:flex;width:100%;} .lcr-tabs button,.lcr-subtabs button{flex:1 0 auto;}
}

/* Menús en hoja inferior: «Más», «Añadir» y cuenta */
@media (max-width:900px){
  .menu-sheet .sheet-body{gap:10px;padding-top:6px;}
  .more-sec{font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--text-3);font-weight:700;margin:10px 2px 0;} .more-sec:first-child{margin-top:0;}
  .more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
  .more-tile{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:9px;padding:14px 6px 12px;border-radius:16px;background:var(--surface-2);border:1px solid var(--line);font-size:12.5px;font-weight:600;line-height:1.25;text-align:center;color:var(--text-2);min-height:88px;}
  .more-tile.on{border-color:var(--accent);background:var(--accent-soft);color:var(--text);}
  .more-ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--surface-3);color:var(--accent-2);flex:none;} .more-ic .ic{width:20px;height:20px;}
  .more-tile.on .more-ic{background:var(--accent);color:#fff;}
  .more-list{display:flex;flex-direction:column;border-radius:16px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden;padding:4px;}
  .more-list .pop-i{padding:14px 12px;font-size:15.5px;} .more-list .pop-sep{margin:3px 8px;}
  .add-list{display:flex;flex-direction:column;gap:10px;}
  .add-row{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:14px;border-radius:16px;background:var(--surface-2);border:1px solid var(--line);color:var(--text);} .add-row b{display:block;font-size:16px;} .add-row small{display:block;color:var(--text-3);font-size:13px;margin-top:2px;line-height:1.4;} .add-row>.ic{margin-left:auto;color:var(--text-3);flex:none;}
  .add-row:active{background:var(--surface-3);}
}

/* Miembros (Equipo): cada alumno es una tarjeta con sus acciones al pie */
@media (max-width:900px){
  .eq-row,.eq-row.pl,.eq-row.pl.fl{grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;padding:16px 6px;align-items:center;}
  .eq-who{order:1;} .eq-who b{font-size:15.5px;}
  .eq-acc{order:2;flex-direction:column;align-items:center;gap:5px;text-align:center;} .eq-acc-l{font-size:11.5px;}
  .eq-roles{order:3;grid-column:1/-1;}
  .eq-plan{order:4;grid-column:1/-1;} .eq-prog{order:5;grid-column:1/-1;}
  .eq-row .eq-go,.eq-row.pl .eq-go{order:6;grid-column:1/-1;display:flex;gap:8px;justify-content:stretch;flex-wrap:nowrap;} .eq-go .btn{flex:1;min-width:0;padding:0 8px;}
  .switch{width:54px;height:32px;border-radius:32px;} .switch i{width:26px;height:26px;top:2px;left:2px;} .switch.on i{transform:translateX(22px);}
}

/* Tablas: listas de cuentas como tarjetas; el resto con deslizamiento y pista visual */
@media (max-width:760px){
  .m-acc,.m-ev,.m-fu{display:block;} .m-acc thead,.m-ev thead,.m-fu thead{display:none;} .m-acc tbody,.m-ev tbody,.m-fu tbody{display:block;}
  .m-acc tr,.m-ev tr,.m-fu tr{display:grid;gap:5px 10px;padding:13px 16px;border-bottom:1px solid var(--line);align-items:center;}
  .m-acc td,.m-ev td,.m-fu td{display:block;padding:0;border:0;min-width:0;} .m-acc tbody tr:last-child,.m-ev tbody tr:last-child,.m-fu tbody tr:last-child{border-bottom:0;}
  .m-acc tbody tr:active,.m-ev tbody tr:active,.m-fu tbody tr:active{background:var(--surface-2);}
  /* Cuentas · Lista: cuenta + etapa / tamaño + resultado */
  .m-acc tr{grid-template-columns:minmax(0,1fr) auto;}
  .m-acc td:nth-child(1){grid-column:1;grid-row:1;} .m-acc td:nth-child(3){grid-column:2;grid-row:1;justify-self:end;} .m-acc td:nth-child(2),.m-acc td:nth-child(5),.m-acc td:nth-child(6),.m-acc td:nth-child(8){display:none;}
  .m-acc td:nth-child(4){grid-column:1;grid-row:2;font-size:13.5px;} .m-acc td:nth-child(7){grid-column:2;grid-row:2;justify-self:end;font-weight:700;font-size:15px;}
  /* Analítica · evaluaciones */
  .m-ev tr{grid-template-columns:auto auto minmax(0,1fr);}
  .m-ev td:nth-child(1){grid-column:1/3;grid-row:1;} .m-ev td:nth-child(6){grid-column:3;grid-row:1;text-align:right;font-size:12.5px;}
  .m-ev td:nth-child(4){grid-column:1/-1;grid-row:2;} .m-ev td:nth-child(4) .sel-inline{width:100%;}
  .m-ev td:nth-child(2){grid-column:1;grid-row:3;font-size:13px;} .m-ev td:nth-child(3){grid-column:2;grid-row:3;font-size:13px;} .m-ev td:nth-child(5){grid-column:3;grid-row:3;text-align:right;font-weight:700;}
  /* Analítica · fondeadas */
  .m-fu tr{grid-template-columns:auto minmax(0,1fr) auto;}
  .m-fu td:nth-child(1){grid-column:1/3;grid-row:1;} .m-fu td:nth-child(2){grid-column:3;grid-row:1;justify-self:end;}
  .m-fu td:nth-child(3){grid-column:1/-1;grid-row:2;} .m-fu td:nth-child(3) .sel-inline{width:100%;}
  .m-fu td:nth-child(4){grid-column:1/3;grid-row:3;font-size:13px;color:var(--text-2);text-align:left;} .m-fu td:nth-child(4)::before{content:'Payouts · ';color:var(--text-3);}
  .m-fu td:nth-child(5){grid-column:3;grid-row:3;text-align:right;font-weight:700;font-size:15px;}
}
@media (max-width:900px){
  /* resto de tablas: la primera columna queda fija y el borde derecho se difumina para indicar que hay más */
  .tbl-wrap:has(.tbl:not(.m-acc):not(.m-ev):not(.m-fu)){-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 22px),transparent);}
  .tbl:not(.m-acc):not(.m-ev):not(.m-fu) td:first-child,.tbl:not(.m-acc):not(.m-ev):not(.m-fu) th:first-child{position:sticky;left:0;z-index:2;background:var(--surface);}
  .tbl td,.tbl th{padding-left:12px;padding-right:12px;}
}

/* Tablas pequeñas que deben caber enteras en la pantalla */
@media (max-width:900px){
  .tbl.m-fit{width:100%;table-layout:fixed;} .tbl.m-fit th,.tbl.m-fit td{padding:10px 5px;font-size:13.5px;white-space:normal;} .tbl.m-fit th{font-size:10px;letter-spacing:.03em;line-height:1.2;vertical-align:bottom;}
  .tbl.m-fit th:first-child,.tbl.m-fit td:first-child{width:31%;position:static;} .tbl.m-fit .cell-brand{gap:7px;} .tbl.m-fit .badge{font-size:11px;padding:2px 6px;}
  .tbl-wrap:has(.tbl.m-fit){-webkit-mask-image:none;mask-image:none;}
}

/* Barra superior: el título se recorta con puntos suspensivos y nunca empuja los botones fuera de la pantalla */
@media (max-width:900px){
  .top{gap:10px;} .top h1{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;} .top .grow{min-width:0;flex:1 1 0;} .top-tools{flex:none;}
}

/* Ranking: el podio sigue siendo un podio (2.º · 1.º · 3.º) pero compacto */
@media (max-width:900px){
  .podium{grid-template-columns:1fr 1.12fr 1fr!important;gap:8px;align-items:end;}
  .pod{padding:14px 6px;border-radius:16px;} .pod.p1{order:0!important;padding-top:20px;padding-bottom:18px;}
  .pod .avatar{width:48px!important;height:48px!important;font-size:19px!important;margin:0 auto 8px;} .pod.p1 .avatar{width:58px!important;height:58px!important;font-size:23px!important;}
  .pod .medal{width:26px;height:26px;font-size:12.5px;margin-bottom:7px;} .pod.p1 .medal{width:30px;height:30px;font-size:14px;}
  .pod b{font-size:13px;margin-bottom:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} .pod .v{font-size:14.5px;} .pod.p1 .v{font-size:17px;} .pod .badge{font-size:10.5px;padding:1px 6px;}
}

/* Guía de cuentas y formularios */
@media (max-width:900px){
  .gd-firms{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px;} .gd-tab{flex-direction:column;align-items:flex-start;gap:8px;padding:12px;} .gd-tab b{font-size:14px;} .gd-tab small{font-size:12px;}
  .gd-opts{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px;} .gd-opt{padding:12px 14px;} .gd-opt .gd-price{font-size:21px;}
  .gd-seqtabs{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px;} .gd-seqtab{padding:11px 12px;gap:9px;} .gd-seqtab b{font-size:13.5px;line-height:1.2;} .gd-seqic{width:32px;height:32px;border-radius:10px;}
  .gd-pricebar{padding:14px 16px;} .gd-pb-p b{font-size:30px;}
  #fu-form .btn-primary,#fu-form .btn[type=submit]{width:100%;}
}

.inst-steps{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:12px;font-size:15.5px;line-height:1.5;} .inst-steps li::marker{color:var(--accent-2);font-weight:700;}

/* Plan de acción: tarjetas de cuenta, resumen y camino en dos columnas */
@media (max-width:900px){
  .plan-acct{grid-template-columns:44px minmax(0,1fr) minmax(0,1fr);grid-template-areas:"logo meta meta" ". n1 n2";gap:10px 12px;padding:14px;}
  .plan-acct>.brand-ico,.plan-acct>img{grid-area:logo;align-self:start;} .plan-acct>.plan-acct-m{grid-area:meta;min-width:0;}
  .plan-acct>.plan-acct-n:nth-child(3){grid-area:n1;text-align:left;} .plan-acct>.plan-acct-n:nth-child(4){grid-area:n2;text-align:left;}
  .plan-acct-n{min-width:0;} .plan-acct-n small{display:block;font-size:12px;line-height:1.3;color:var(--text-3);} .plan-acct-n .plan-big.sm{font-size:22px;}
  .plan-acct>.plan-acct-n:last-child{display:block;}
  .plan-acct.later{grid-template-areas:"logo meta meta";} .plan-acct.later>.plan-acct-n,.plan-acct.later>.plan-acct-n:last-child{display:none;}
  .plan-acct-t b{font-size:15px;white-space:normal;}
  .plan-glance{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;} .plan-gl{padding:13px;} .plan-gl b{font-size:15.5px;} .plan-gl span:not(.plan-gl-i){font-size:12.5px;line-height:1.35;}
  .plan-journey{grid-template-columns:repeat(2,minmax(0,1fr))!important;} .plan-jn{padding:12px;}
  .plan-sizes{grid-template-columns:minmax(0,1fr);} .plan-opts{gap:8px;}
}

/* Hojas: el contenido no se encoge (vistas previas, certificados) y el pie admite varios botones */
@media (max-width:900px){
  .sheet-body>*{flex-shrink:0;}
  .sheet-foot{flex-wrap:wrap;} .sheet-foot .btn{flex:1 1 auto;min-width:0;padding:0 14px;}
  .sheet-foot .btn[data-close]:not(:only-child){flex:0 0 auto;}
  .sheet-foot:has(.btn:nth-child(3)) .btn[data-close]{flex:1 1 100%;order:3;height:42px;background:transparent;border-color:transparent;color:var(--text-3);}
}

/* Hoy (uso diario): cada tarea es una tarjeta con botones grandes al alcance del pulgar */
@media (max-width:900px){
  .hoy-head{padding:16px;gap:14px;} .hoy-title h3{font-size:21px;} .hoy-stat{padding:11px 12px;} .hoy-stat b{font-size:24px;}
  .hoy-sec{padding:2px 0;} .hoy-sec-h{padding:14px 16px 6px;}
  .hoy-row{grid-template-columns:minmax(0,1fr);gap:12px;padding:14px 16px 16px 20px;border-top:1px solid var(--line);}
  .hoy-who{gap:12px;} .hoy-who b{font-size:15px;} .hoy-who small{font-size:12.5px;}
  .hoy-what b{font-size:16px;line-height:1.3;} .hoy-what small{font-size:13.5px;display:block;margin-top:2px;line-height:1.4;}
  .hoy-act{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:8px;justify-content:stretch;}
  .hoy-act .btn{height:48px;font-size:15px;width:100%;min-width:0;padding:0 10px;} .hoy-act .btn-ghost{background:var(--surface-2);border:1px solid var(--line-2);}
  .hoy-act .btn-ok,.hoy-act .btn-primary{order:-1;grid-column:1/-1;grid-auto-flow:row;} .hoy-act:has(.btn-ghost) .btn-ok,.hoy-act:has(.btn-ghost) .btn-primary{grid-column:auto;}
  .hoy-act:has(.btn-ghost:nth-child(2)){grid-template-columns:1fr 1fr;} .hoy-act:has(.btn-ghost:nth-child(2)) .btn-ok,.hoy-act:has(.btn-ghost:nth-child(2)) .btn-primary{grid-column:1/-1;order:-1;}
  .hoy-done{flex-wrap:wrap;gap:6px 10px;padding:12px 16px;} .hoy-done .btn{margin-left:auto;height:38px;}
  div[style*="justify-content:space-between"][style*="Resultado"],.closed-list .cr{padding:13px 16px;}
}

/* Pantallas muy estrechas (320–360 px) */
@media (max-width:420px){
  .feed-i{min-width:0;} .feed-i .t{overflow-wrap:anywhere;} .feed-i .a{flex:none;}
  .hoy-row,.hoy-who,.hoy-what,.hoy-act{min-width:0;max-width:100%;} .hoy-what b,.hoy-what small{overflow-wrap:anywhere;} .hoy-act .btn{white-space:normal;line-height:1.15;height:auto;min-height:48px;padding-top:6px;padding-bottom:6px;}
  .st-card{padding:18px;} .st-card-f{flex-wrap:wrap;} .st-card-go{white-space:nowrap;}
  .st-cards.two,.st-cards.three{grid-template-columns:minmax(0,1fr);}
  .hint-i{display:none;}
  .page-head p{overflow-wrap:anywhere;}
  .kpi .k-v{font-size:22px;}
}
@media (max-width:900px){ .feed{grid-template-columns:minmax(0,1fr)!important;} .feed>*{min-width:0;} }
@media (max-width:420px){ div[style*="justify-content:space-between"]>span{min-width:0;} #view .card>div[style*="padding:10px 14px"]{flex-wrap:wrap;} }

/* Móvil en horizontal: poca altura, así que se compacta lo fijo */
@media (max-width:950px) and (max-height:520px){
  .dc-banner,.demo-strip{display:none;} .top{--top:48px;} .top h1{font-size:18px;}
  .tabbar{left:max(120px,env(safe-area-inset-left));right:max(120px,env(safe-area-inset-right));height:50px;}
  .content{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px));}
  .sheet{max-height:100vh;border-radius:16px 16px 0 0;} .sheet-head{padding-top:4px;padding-bottom:8px;}
}

/* Aviso de instalación de la app */
.inst-banner{display:flex;align-items:center;gap:12px;margin:6px max(16px,env(safe-area-inset-left)) 0;padding:10px 10px 10px 12px;border-radius:16px;background:linear-gradient(90deg,var(--accent-soft),transparent),var(--surface);border:1px solid rgba(91,125,255,.45);}
.inst-ic{width:40px;height:40px;border-radius:11px;overflow:hidden;flex:none;box-shadow:0 4px 14px rgba(0,0,0,.35);} .inst-ic img{width:100%;height:100%;display:block;object-fit:cover;transform:scale(1.3) translateY(3%);}
.inst-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;} .inst-t b{font-size:15px;line-height:1.2;} .inst-t span{font-size:12.5px;color:var(--text-2);line-height:1.3;}
.inst-banner .btn{flex:none;} .inst-banner .icon-btn{width:38px;height:38px;flex:none;}
.inst-steps{margin:0 0 14px;padding-left:22px;display:flex;flex-direction:column;gap:12px;font-size:15.5px;line-height:1.5;}
@media (min-width:901px){ #install-slot{display:none;} }
@media (max-width:950px) and (max-height:520px){ .inst-banner{display:none;} }

/* Datos de estrategias: las listas de chips (fechas y datasets) se parten en varias líneas */
@media (max-width:900px){ .st-chips{display:flex;flex-wrap:wrap;gap:8px;} .st-chips .chip{max-width:100%;white-space:normal;height:auto;min-height:40px;padding:6px 14px;line-height:1.25;} }

/* Filas de «Hoy» con 3 o más botones: el principal arriba a todo el ancho y los demás debajo en dos columnas */
@media (max-width:900px){
  .hoy-act.x3{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));}
  .hoy-act.x3 .btn.btn-ok,.hoy-act.x3 .btn.btn-primary{grid-column:1/-1;order:-1;}
}

/* «Hoy»: resumen compacto para que quepan todos los datos sin empujar la lista */
@media (max-width:900px){
  .hoy-stats{gap:6px;}
  .hoy-stat{padding:8px 10px;gap:1px;} .hoy-stat span{font-size:11.5px;line-height:1.2;align-items:flex-start;} .hoy-stat span .ic{margin-top:1px;flex:none;}
  .hoy-stat b{font-size:19px;line-height:1.2;}
}
