/* ===== orden con flechas, gestión de favoritos, dieta, enlaces de recetas, vacíos ===== */
body{ --link-hc:#8a3b12; }
body.dark-mode{ --link-hc:#f2b48f; }

/* Flechas de orden (Gestionar estancias / apartados / favoritos) */
.hc-orden-btns{ display:inline-flex; flex-direction:column; gap:2px; flex:none; }
.hc-orden-btns .icon-btn{ width:26px; height:20px; min-width:0; padding:0; display:inline-flex; align-items:center; justify-content:center; font-size:10px; }
.hc-orden-btns .icon-btn:disabled{ opacity:.3; cursor:default; }
@media (hover:none){ .hc-orden-btns .icon-btn{ width:34px; height:26px; } }

/* Submenú Dieta bajo Recetas */
.nav-item.hc-sub{ padding-left:34px; font-size:.94em; }
.nav-item.hc-sub i:first-child{ font-size:.92em; }

/* Favoritos: estrella con color/icono propios, textos largos en móvil, engranaje */
.nav-item:has(> .hc-fav-star){ padding-right:42px; }
.nav-item:has(> .hc-fav-star) .sidebar-label{ min-width:0; overflow-wrap:anywhere; }
.hc-fav-star.on{ color:var(--hc-fav-c,#e0a100); opacity:1; }
.hc-fav-gear{ opacity:.75; }
.hc-fav-gear:hover, .hc-fav-gear:focus-visible{ opacity:1; }
@media (max-width:820px){
  .nav-item:has(> .hc-fav-star){ padding-right:46px; align-items:center; }
  .nav-item:has(> .hc-fav-star) .sidebar-label{ white-space:normal; line-height:1.25; }
  .hc-fav-star{ width:36px; height:36px; right:4px; }
}
.hc-fav-modal{ max-width:560px; }
.hc-fav-fila{ display:flex; align-items:center; gap:8px; padding:8px 0; border-top:1px solid var(--line); flex-wrap:wrap; }
.hc-fav-fila:first-child{ border-top:0; }
.hc-fav-gen{ border-bottom:2px solid var(--line); margin-bottom:6px; padding-bottom:10px; }
.hc-fav-nom{ flex:1 1 150px; min-width:0; display:flex; align-items:center; gap:8px; font-weight:600; font-size:13.5px; overflow-wrap:anywhere; }
.hc-fav-gen .hc-fav-nom{ flex-direction:column; align-items:flex-start; gap:2px; }
.hc-fav-fila input[type=color]{ width:40px; height:34px; padding:2px; border:1px solid var(--line); border-radius:8px; background:transparent; cursor:pointer; flex:none; }
.hc-fav-fila .btn{ padding:6px 10px; }
.hc-fav-roto{ opacity:.6; }

/* Dibujos predefinidos de los estados vacíos */
.hc-pre-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(92px,1fr)); gap:8px; margin:6px 0 12px; max-height:52vh; overflow:auto; }
.hc-pre-b{ display:flex; flex-direction:column; align-items:center; gap:6px; padding:12px 6px; border:1px solid var(--line); border-radius:10px; background:var(--ivory,transparent); cursor:pointer; color:var(--walnut); font-size:12px; }
.hc-pre-b i{ font-size:26px; color:var(--walnut-soft); }
.hc-pre-b:hover, .hc-pre-b:focus-visible{ border-color:var(--gold); outline:none; }
.hc-va-col{ width:38px; height:32px; padding:2px; border:1px solid var(--line); border-radius:8px; background:transparent; cursor:pointer; }
.hc-va-col:disabled{ opacity:.4; cursor:not-allowed; }

/* Enlaces de Recetas y menú semanal: legibles en claro y oscuro */
#view-recetas a, #view-dieta a{ color:var(--link-hc); font-weight:600; text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; }
#view-recetas a:hover, #view-dieta a:hover{ text-decoration-thickness:2px; }
#view-recetas a:focus-visible, #view-dieta a:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; border-radius:3px; }
#view-recetas .receta-source a{ color:var(--link-hc); }
#view-recetas .receta-source{ font-size:12px; }

/* Historial: el detalle puede ser largo */
#historialTable .txn-cat{ white-space:normal; overflow-wrap:anywhere; }
#historialTable .txn-left{ min-width:0; }

/* Dieta */
.hc-di-form{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; margin-bottom:6px; }
.hc-di-form label{ display:block; font-size:13px; margin-bottom:4px; }
.hc-di-form input, .hc-di-form textarea, .hc-di-form select{ width:100%; }
.hc-di-sem{ display:grid; gap:10px; }
.hc-di-dia{ border:1px solid var(--line); border-radius:12px; padding:10px 12px; background:var(--ivory,transparent); }
.hc-di-dia h4{ margin:0 0 8px; font-size:14px; }
.hc-di-comidas{ display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:8px; }
.hc-di-comidas label{ display:block; font-size:12px; color:var(--walnut-soft); margin-bottom:2px; }
.hc-di-comidas input{ width:100%; }
.hc-di-aviso{ font-size:12.5px; color:var(--walnut-soft); margin-top:10px; }

/* Gestionar estancias / apartados: el nombre siempre se ve entero.
   La fila puede partirse en dos líneas: nombre ancho arriba/a la izquierda y acciones a la derecha. */
.estancia-gestion-row{ flex-wrap:wrap; row-gap:6px; }
.estancia-gestion-row .hc-ges-nombre{ flex:1 1 220px; min-width:min(100%,180px); font-size:15px; min-height:40px; text-overflow:ellipsis; }
.estancia-gestion-row .hc-ges-acc{ display:inline-flex; align-items:center; gap:8px; flex:none; margin-left:auto; }
.hc-modal-ges{ width:min(96vw,720px); max-height:90vh; overflow-y:auto; }
@media (max-width:560px){
  .estancia-gestion-row .hc-ges-nombre{ flex-basis:calc(100% - 100px); }
  .estancia-gestion-row .hc-ges-acc{ flex:1 1 100%; justify-content:flex-end; padding-left:0; }
}

/* Gestionar estancias / apartados: barra de desplazamiento siempre visible en la lista */
#listaGestionEstancias, #listaGestionSubapartados{ max-height:min(55vh,520px); overflow-y:scroll; padding-right:8px; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
#listaGestionEstancias::-webkit-scrollbar, #listaGestionSubapartados::-webkit-scrollbar{ width:12px; }
#listaGestionEstancias::-webkit-scrollbar-track, #listaGestionSubapartados::-webkit-scrollbar-track{ background:var(--line,#e3e5ee); border-radius:8px; }
#listaGestionEstancias::-webkit-scrollbar-thumb, #listaGestionSubapartados::-webkit-scrollbar-thumb{ background:var(--gold,#4F5BC8); border-radius:8px; border:2px solid transparent; background-clip:content-box; }
body.dark-mode #listaGestionEstancias::-webkit-scrollbar-track, body.dark-mode #listaGestionSubapartados::-webkit-scrollbar-track{ background:rgba(255,255,255,.12); }
@supports not selector(::-webkit-scrollbar){ #listaGestionEstancias, #listaGestionSubapartados{ scrollbar-width:auto; scrollbar-color:var(--gold,#4F5BC8) var(--line,#e3e5ee); } }

/* Filas más finas en Gestionar estancias / apartados: menos espacio por línea */
#listaGestionEstancias .estancia-gestion-row, #listaGestionSubapartados .estancia-gestion-row{ padding:3px 0; gap:6px; row-gap:3px; }
#listaGestionEstancias .hc-ges-nombre, #listaGestionSubapartados .hc-ges-nombre{ min-height:32px; height:32px; padding-top:4px; padding-bottom:4px; font-size:14px; }
#listaGestionEstancias .hc-orden-btns, #listaGestionSubapartados .hc-orden-btns{ gap:0; }
#listaGestionEstancias .hc-orden-btns .icon-btn, #listaGestionSubapartados .hc-orden-btns .icon-btn{ height:16px; width:24px; font-size:9px; }
#listaGestionEstancias .icon-btn:not(.hc-orden-btns .icon-btn), #listaGestionSubapartados .icon-btn:not(.hc-orden-btns .icon-btn){ width:30px; height:30px; }
#listaGestionSubapartados .estancia-gestion-row .btn{ padding:3px 8px !important; }
#listaGestionEstancias .hc-est-color{ height:26px; width:32px; }
@media (hover:none){ #listaGestionEstancias .hc-orden-btns .icon-btn, #listaGestionSubapartados .hc-orden-btns .icon-btn{ height:20px; width:30px; } }
#listaGestionEstancias .hc-orden-btns .icon-btn, #listaGestionSubapartados .hc-orden-btns .icon-btn{ min-height:0; min-width:0; height:15px; line-height:1; padding:0; }
@media (hover:none){ #listaGestionEstancias .hc-orden-btns .icon-btn, #listaGestionSubapartados .hc-orden-btns .icon-btn{ height:19px; } }
#listaGestionSubapartados .estancia-gestion-row .btn{ min-height:0; height:30px; line-height:1; }
#listaGestionEstancias .icon-btn, #listaGestionSubapartados .icon-btn{ min-height:0; }

/* Dieta dentro de «Recetas y menú»: sangrada como hija, con selector (flecha) que no pisa la estrella de favorito */
.nav-item[data-view="recetas"]{ position:relative; }
/* La flecha va a la izquierda de la estrella: la estrella ocupa los 34 px del borde derecho y la flecha los 30 siguientes */
@media (min-width:821px){ .sidebar.expanded .nav-item[data-view="recetas"]:has(> .hc-sub-chev){ padding-right:48px; } }
@media (min-width:821px){ .sidebar:not(.expanded) .nav-item[data-view="recetas"] .hc-sub-chev{ display:none; } }
.nav-item[data-view="recetas"] .hc-sub-chev{ position:absolute; right:34px; top:50%; transform:translateY(-50%); border:0; background:transparent; color:inherit; opacity:.7; cursor:pointer; width:17px; min-width:17px; height:26px; padding:0; border-radius:8px; display:inline-flex; align-items:center; justify-content:center; flex:none; }
.nav-item[data-view="recetas"] .hc-sub-chev:hover{ opacity:1; background:rgba(127,127,127,.18); }
.nav-item[data-view="recetas"] .hc-sub-chev:focus-visible{ outline:2px solid var(--gold,#4F5BC8); outline-offset:1px; }
.nav-item[data-view="recetas"] .hc-sub-chev i{ font-size:11px; transition:transform .18s ease; }
.nav-item[data-view="recetas"] .hc-sub-chev.plegada i{ transform:rotate(-90deg); }
.nav-item.hc-sub-plegado{ display:none !important; }
@media (prefers-reduced-motion:reduce){ .nav-item[data-view="recetas"] .hc-sub-chev i{ transition:none; } }
/* Con pantalla táctil la estrella mide 36 px y está a 4 px del borde: la flecha se aparta para no pisarla */
@media (hover:none), (max-width:820px){
  .sidebar.expanded .nav-item[data-view="recetas"]:has(> .hc-sub-chev), .sidebar.open .nav-item[data-view="recetas"]:has(> .hc-sub-chev){ padding-right:64px; }
  .nav-item[data-view="recetas"] .hc-sub-chev{ right:42px; width:22px; min-width:22px; }
}
/* Dieta como hija de Recetas (solo con el menú ancho; con el menú estrecho queda solo el icono) */
.sidebar.expanded #nav .nav-item[data-view="dieta"]:not(#hcFavGrupo .nav-item){ position:relative; margin-left:26px; padding-left:12px; font-size:.95em; }
.sidebar.expanded #nav .nav-item[data-view="dieta"]:not(#hcFavGrupo .nav-item)::before{ content:""; position:absolute; left:-14px; top:-7px; width:11px; height:calc(50% + 7px); border-left:2px solid var(--line,rgba(127,127,127,.35)); border-bottom:2px solid var(--line,rgba(127,127,127,.35)); border-bottom-left-radius:7px; pointer-events:none; }
@media (max-width:820px){
  #nav .nav-item[data-view="dieta"]:not(#hcFavGrupo .nav-item){ position:relative; margin-left:26px; padding-left:12px; font-size:.95em; }
  #nav .nav-item[data-view="dieta"]:not(#hcFavGrupo .nav-item)::before{ content:""; position:absolute; left:-14px; top:-7px; width:11px; height:calc(50% + 7px); border-left:2px solid var(--line,rgba(127,127,127,.35)); border-bottom:2px solid var(--line,rgba(127,127,127,.35)); border-bottom-left-radius:7px; pointer-events:none; }
}

/* Estancias y sus apartados en el menú: la estancia a la izquierda y los apartados sangrados debajo, con línea guía, más grandes y con el nombre más grande */
#nav .hc-est-cab{ padding-left:10px; padding-right:10px; font-size:11.5px; font-weight:700; letter-spacing:.06em; }
#nav .hc-est-cab .fa-solid:first-child{ font-size:13px; }
#nav .hc-est-grupo{ padding-left:0; }
.sidebar.expanded #nav .hc-est-grupo, .sidebar.open #nav .hc-est-grupo{ margin-left:19px; border-left:2px solid rgba(127,127,127,.28); border-radius:0 0 0 2px; }
#nav .hc-est-grupo .nav-item{ font-size:14.5px; min-height:38px; padding-top:8px; padding-bottom:8px; }
body.menu-compacto #nav .hc-est-grupo .nav-item{ font-size:14.5px; min-height:37px; padding-top:7px; padding-bottom:7px; }
#nav .hc-est-grupo .nav-item i{ font-size:15px; width:19px; }
.sidebar.expanded #nav .hc-est-grupo .nav-item, .sidebar.open #nav .hc-est-grupo .nav-item{ padding-left:12px; padding-right:8px; gap:10px; }
@media (min-width:821px){ .sidebar:not(.expanded) #nav .hc-est-grupo{ margin-left:0; border-left:0; } }
@media (max-width:820px){
  #nav .hc-est-grupo .nav-item, body.menu-compacto #nav .hc-est-grupo .nav-item{ font-size:15.5px; min-height:44px; padding-top:10px; padding-bottom:10px; }
  #nav .hc-est-cab{ font-size:12px; min-height:36px; }
}
