@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&family=Press+Start+2P&display=swap');

:root{
  --bg:#020914; --panel:#061321; --panel2:#081a2d; --line:#1767a7; --line2:#244d72;
  --text:#eaf7ff; --muted:#8fa9be; --blue:#47bfff; --green:#70e891; --red:#ff8799; --yellow:#ffd46b;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;min-height:100%}
body{padding:18px}
button,input,textarea,select{font:inherit}
button{touch-action:manipulation}
.hidden{display:none!important}
.screen{max-width:1180px;margin:0 auto}
.hero{display:flex;gap:18px;align-items:center;min-height:220px;border:2px solid var(--line);padding:26px;background:linear-gradient(180deg,#051423,#020914)}
.pixel-mark{font-family:'Press Start 2P';font-size:32px;border:3px solid var(--blue);padding:24px;color:var(--blue)}
.eyebrow,.panel-title,.subhead,label{font-family:'Press Start 2P',monospace;letter-spacing:.02em}
.eyebrow{font-size:9px;color:var(--blue)}
h1{font-family:'Press Start 2P';font-size:30px;line-height:1.35;margin:12px 0}
.muted{color:var(--muted)} .small{font-size:11px}
.landing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}
.big-action{min-height:130px;border:2px solid var(--line);background:#061321;color:var(--text);padding:18px;text-align:left;cursor:pointer}
.big-action.blue{background:#06253d;border-color:var(--blue)}
.big-action span{font-family:'Press Start 2P';font-size:11px;display:block;margin-bottom:12px}
.big-action small{color:var(--muted);line-height:1.5}
.panel{border:2px solid var(--line);background:var(--panel);padding:14px;margin-top:12px}
.panel-title{font-size:9px;color:#b9e8ff}
.panel-head{display:flex;justify-content:space-between;gap:14px;align-items:center}
.topbar{position:sticky;top:0;z-index:10;background:rgba(2,9,20,.97);border:2px solid var(--line);padding:10px;display:flex;justify-content:space-between;gap:10px;align-items:center}
.player-chip{display:flex;align-items:center;gap:10px;min-width:220px}
.avatar-badge{width:48px;height:48px;border:2px solid var(--blue);background:#0a243b;color:#fff;font-family:'Press Start 2P';font-size:9px;cursor:pointer}
.player-name{font-weight:800}
.top-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.btn{border:2px solid var(--line2);background:#071827;color:#dff5ff;padding:9px 10px;font-family:'Press Start 2P';font-size:7px;cursor:pointer;min-height:36px}
.btn.primary{border-color:var(--blue);background:#06365a}.btn.danger{border-color:#803346;background:#220b12;color:#ff9aaa}
.btn.mini{min-height:30px;padding:6px 8px;font-size:6px}
.dashboard{padding-bottom:40px}
.score-big{font-family:'Press Start 2P';font-size:22px;color:var(--blue);text-align:right}.score-big small{font-size:6px;display:block;color:var(--muted);margin-top:6px}
.rank-row{display:grid;grid-template-columns:42px 1fr 90px;gap:10px;align-items:center;border-top:1px solid #14324c;padding:11px 0;cursor:pointer}
.rank-pos{font-family:'Press Start 2P';color:var(--yellow);font-size:10px}
.rank-name{font-weight:800}.rank-score{text-align:right;font-family:'Press Start 2P';font-size:9px;color:var(--blue)}
.objective-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
.obj{border:2px solid var(--line2);padding:11px;background:#071827;text-align:center}
.obj b{font-family:'Press Start 2P';font-size:8px;display:block;margin:7px 0}.obj .pts{font-weight:800;color:var(--green)}
.summary-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:10px}
.summary-card{border:2px solid #173b5c;background:#071827;padding:10px;min-width:0}
.summary-card span{display:block;color:var(--muted);font-size:10px}.summary-card b{display:block;margin-top:7px;font-size:17px;white-space:nowrap}
.records-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}.subhead{font-size:7px;color:var(--muted);margin-bottom:6px}
.record{border:1px solid #204762;background:#071522;padding:10px;margin-bottom:7px}
.record-head{display:flex;justify-content:space-between;gap:8px}.record-title{font-weight:700}
.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.chip{border:1px solid #28506e;padding:4px 6px;font-size:10px;color:#bfe9ff}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:1000;background:#071827;border:2px solid var(--blue);padding:10px 14px;display:none;max-width:90vw}.toast.show{display:block}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.78);z-index:100;display:flex;align-items:center;justify-content:center;padding:16px}
.modal{width:min(760px,100%);max-height:92vh;overflow:auto;background:#050f1c;border:2px solid var(--blue);padding:14px}
.modal.wide{width:min(940px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.modal-head h2{font-family:'Press Start 2P';font-size:10px;margin:0;color:#b9e8ff}
.close{border:2px solid var(--line2);background:#071827;color:white;width:34px;height:34px;cursor:pointer}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}
label{font-size:6px;color:#86b6d8;line-height:1.5}
.input{width:100%;border:2px solid #214866;background:#03101c;color:#fff;padding:10px;min-height:42px;border-radius:0}
textarea.input{resize:vertical;min-height:100px}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;flex-wrap:wrap}
.code-box{font-family:'Press Start 2P';font-size:18px;color:var(--yellow);border:2px dashed var(--line2);padding:14px;text-align:center;margin:10px 0}
.session-card,.list-card{border:1px solid #214866;background:#071522;padding:10px;margin:7px 0;display:flex;justify-content:space-between;gap:10px;align-items:center}
.metric-row{display:grid;grid-template-columns:1fr repeat(4,85px) 40px;gap:6px;align-items:end;border:1px solid #204762;padding:8px;margin-bottom:7px}
.photo-preview{max-width:100%;max-height:260px;object-fit:contain;border:2px solid var(--line2);display:block;margin:8px auto}
.review-record{border:2px solid #214866;padding:10px;margin-top:8px}
.review-grid{display:grid;grid-template-columns:2fr repeat(5,1fr);gap:6px}
.help{font-size:11px;line-height:1.5;color:var(--muted);margin-top:8px}
@media(max-width:850px){
  body{padding:8px}.landing-grid{grid-template-columns:1fr}.topbar{position:relative;display:block}.top-actions{margin-top:9px;justify-content:flex-start}
  .objective-grid{grid-template-columns:repeat(2,1fr)}.summary-grid{grid-template-columns:repeat(3,1fr)}
  .records-columns{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}
  .metric-row{grid-template-columns:1fr 1fr 1fr}.metric-row .wide-mobile{grid-column:1/-1}
  .review-grid{grid-template-columns:1fr 1fr}.review-grid .desc{grid-column:1/-1}
}
@media(max-width:520px){
  h1{font-size:20px}.hero{padding:16px;min-height:180px}.pixel-mark{font-size:20px;padding:16px}
  .summary-grid{grid-template-columns:repeat(2,1fr)}.objective-grid{grid-template-columns:repeat(2,1fr)}
  .top-actions .btn{flex:1 1 46%}.rank-row{grid-template-columns:32px 1fr 72px}
}


/* ===== VISUAL PACK V3 ===== */
.visual-hero{position:relative;overflow:hidden;min-height:320px;padding:0;background:#020914}
.hero-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-overlay{position:absolute;left:0;right:0;bottom:0;padding:28px;background:linear-gradient(180deg,transparent,rgba(2,9,20,.92) 52%,#020914)}
.visual-hero h1{margin-bottom:6px;text-shadow:0 2px 0 #000}

.avatar-sprite{
  display:block;width:100%;aspect-ratio:4/5;
  background-image:url("./assets/avatars.webp");
  background-repeat:no-repeat;background-size:400% 200%;
  image-rendering:auto;background-color:transparent
}
.av-m1{background-position:0% 0%}.av-m2{background-position:33.333% 0%}.av-m3{background-position:66.666% 0%}.av-m4{background-position:100% 0%}
.av-f1{background-position:0% 100%}.av-f2{background-position:33.333% 100%}.av-f3{background-position:66.666% 100%}.av-f4{background-position:100% 100%}
.avatar-badge{padding:0;overflow:hidden;background:#071727}
.avatar-badge .avatar-sprite{width:100%;height:100%;aspect-ratio:auto;background-size:400% 200%}
.rank-avatar{width:38px;height:48px;overflow:hidden;border:2px solid #3a88bd;background:#071727}
.rank-avatar .avatar-sprite{width:100%;height:100%;aspect-ratio:auto}
.rank-row{grid-template-columns:34px 42px 1fr 90px}
.rank-name-wrap{min-width:0}
.avatar-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;grid-column:1/-1}
.avatar-pick{border:2px solid #214866;background:#04111e;padding:5px;color:#fff;cursor:pointer}
.avatar-pick.selected{border-color:#58c4ff;background:#07355a}
.avatar-pick .avatar-sprite{width:100%}.avatar-pick span:last-child{display:block;text-align:center;font-family:'Press Start 2P';font-size:6px;margin-top:4px}

.game-icon{width:28px;height:28px;display:inline-grid;place-items:center;color:#49b9ff;flex:0 0 auto}
.game-icon svg{width:100%;height:100%;fill:currentColor;stroke:currentColor}
.obj-icon{height:34px;display:grid;place-items:center}.obj-icon .game-icon{width:30px;height:30px}
.summary-top{display:flex;align-items:center;gap:7px}.summary-top .game-icon{width:20px;height:20px}
.obj span,.summary-card span{font-weight:700}

.weight-chart{margin-top:12px;border:2px solid #16476d;background:linear-gradient(180deg,#051626,#030d18);overflow:hidden}
.weight-chart svg{display:block;width:100%;height:auto}
.weight-legend{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0}
.weight-legend-item{display:flex;align-items:center;gap:5px;font-size:10px;color:#b7cee0}
.legend-avatar{width:22px;height:28px;overflow:hidden;border:1px solid #4c83a8}
.weight-point-label{font-size:10px;font-weight:800}
.empty-graphic{display:grid;place-items:center;min-height:220px;color:#7893aa;text-align:center;padding:20px}
.empty-graphic .game-icon{width:52px;height:52px;margin-bottom:10px;color:#2a6b9b}

@media(max-width:850px){
  .visual-hero{min-height:250px}
  .hero-overlay{padding:18px}
  .rank-row{grid-template-columns:28px 36px 1fr 70px}
  .rank-avatar{width:34px;height:43px}
}

.profile-avatar-locked{
  width:74px;
  height:74px;
  border:2px solid var(--blue);
  background:#071827;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  margin-top:4px;
}
.profile-avatar-locked .avatar-sprite,
.profile-avatar-locked img{
  width:100%;
  height:100%;
  object-fit:contain;
}


/* ===== UX PACK V5 ===== */
.boot-screen{position:fixed;inset:0;z-index:2000;background:#020914;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#7dccff;font-family:'Press Start 2P';font-size:8px;text-align:center}.boot-logo{border:3px solid #49b9ff;color:#49b9ff;font-size:24px;padding:18px}
.landing-shell{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);border:2px solid var(--line);background:#04111e;min-height:460px}
.landing-shell .visual-hero{border:0;margin:0;min-height:0;height:100%;background:#020914;display:flex;align-items:center;justify-content:center}
.landing-shell .hero-cover{position:static;width:100%;height:auto;max-height:none;object-fit:contain;display:block}
.landing-menu{padding:28px 22px;display:flex;flex-direction:column;justify-content:center;border-left:2px solid var(--line)}
.landing-menu h1{font-size:22px;margin:12px 0 6px}.landing-copy{margin:4px 0 18px}.landing-menu .landing-grid{grid-template-columns:1fr;margin:0;gap:9px}.landing-menu .big-action{min-height:96px}.landing-menu .big-action span{font-size:9px;margin-bottom:8px}
.competition-switch{display:inline-flex;align-items:center;justify-content:center;gap:6px}.switch-icon{font-family:Inter,sans-serif;font-size:17px;font-weight:900;line-height:0}
.command-input-wrap{position:relative}.command-menu{position:absolute;left:0;right:0;top:100%;z-index:300;background:#020b14;border:2px solid #3188c5;max-height:280px;overflow:auto;display:none}.command-menu.show{display:block}.command-option{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;border-bottom:1px solid #173b5c;background:#061522;color:#eaf7ff;padding:11px;text-align:left;cursor:pointer}.command-option:hover,.command-option.active{background:#0b2d48}.command-name{font-weight:800}.command-meta{font-size:10px;color:#8fb6d2;text-align:right}.command-empty{padding:12px;color:#7791a6;font-size:10px}
.player-detail-head{display:flex;align-items:center;gap:12px;border:2px solid #214866;background:#071827;padding:10px}.detail-avatar{width:48px;height:60px;overflow:hidden;border:2px solid #49b9ff}.detail-avatar .avatar-sprite{height:100%;aspect-ratio:auto}.detail-total{font-family:'Press Start 2P';font-size:18px;color:#58c4ff;margin-bottom:6px}.metric-score-list{display:grid;gap:7px;margin-top:10px}.metric-score-row{display:grid;grid-template-columns:34px minmax(110px,1fr) minmax(100px,1fr) 125px;gap:8px;align-items:center;border:1px solid #214866;background:#061522;padding:9px}.metric-score-icon .game-icon{width:24px;height:24px}.metric-score-name{font-family:'Press Start 2P';font-size:7px;color:#b9e8ff}.metric-score-value{font-weight:800}.metric-score-points{text-align:right;font-family:'Press Start 2P';font-size:8px;color:#70e891}.detail-secondary{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.detail-secondary>div{border:1px solid #173b5c;padding:9px;background:#071827}.detail-secondary span{color:#86a6bd;font-size:9px}.detail-secondary b{display:block;margin-top:4px}
.weight-chart{margin-top:14px}.weight-chart svg image{image-rendering:auto}
@media(max-width:850px){.landing-shell{grid-template-columns:1fr;min-height:0}.landing-shell .visual-hero{height:auto;aspect-ratio:780/456}.landing-menu{border-left:0;border-top:2px solid var(--line);padding:18px}.landing-menu h1{font-size:18px}.landing-menu .big-action{min-height:86px}.command-option{display:block}.command-meta{display:block;text-align:left;margin-top:5px}.metric-score-row{grid-template-columns:30px 1fr 100px}.metric-score-points{grid-column:2/-1;text-align:left;border-top:1px solid #163650;padding-top:6px}}
@media(max-width:520px){.landing-menu{padding:14px}.landing-menu h1{font-size:15px}.landing-menu .big-action span{font-size:8px}.metric-score-row{grid-template-columns:28px 1fr}.metric-score-value{grid-column:2}.metric-score-points{grid-column:2}.competition-switch{font-size:6px}}


/* ===== HEALTH BATTLE FIX PACK · V5 UX CONTINUATION ===== */
.today-points-inline{margin-top:5px;color:#7fa9c6;font-family:'Press Start 2P';font-size:6px;line-height:1.5}
.today-points-inline span{color:#58c4ff;font-size:10px}
.record-head-actions{display:flex;gap:6px;align-items:flex-start;flex-wrap:wrap;justify-content:flex-end}
.stored-record-total{border:2px solid #214866;background:#061522;padding:11px;margin-bottom:10px}
.stored-record-total>b{display:block;margin-bottom:8px}
.stored-food-list{display:grid;gap:8px}
.stored-food-item{border:1px solid #214866;background:#071827;padding:10px}
.stored-food-name{font-weight:800;margin-bottom:8px;color:#d9efff}
.stored-food-name span{color:#86a6bd;font-size:10px;font-weight:700}
.weight-lock-note{border:2px solid #7d6322;background:#211b08;color:#ffd46b;padding:11px;font-family:'Press Start 2P';font-size:7px;line-height:1.7;margin-bottom:12px}
/* La leyenda externa queda anulada: los avatares viven únicamente dentro del gráfico. */
.weight-legend{display:none!important}
@media(max-width:520px){.today-points-inline{font-size:5px}.today-points-inline span{font-size:8px}.record-head-actions{width:100%;justify-content:flex-start;margin-top:6px}}

/* ===== HEALTH BATTLE FIX3 · REGISTRO EXACTO -> ITEMS -> SUMA ===== */
.raw-record-input{border:2px solid #3188c5;background:#04111e;padding:11px;margin-bottom:10px;line-height:1.65;color:#eaf7ff}
.review-food-title{font-family:'Press Start 2P';font-size:7px;color:#58c4ff;line-height:1.7;margin:10px 0 8px}
.stored-food-source{font-size:9px;color:#7fa9c6;margin:-3px 0 7px;line-height:1.5}
.review-record .stored-food-list{grid-column:1/-1;margin-top:10px}
.review-record .stored-food-item{background:#04111e}


/* ===== HEALTH BATTLE FIX5 · TOTAL CALCULADO / ITEMS EDITABLES ===== */
.calculated-total{
  display:flex;
  align-items:center;
  min-height:43px;
  background:#020b14!important;
  color:#6bd0ff!important;
  border-color:#214866!important;
  font-weight:900;
  cursor:default;
  user-select:none;
}
.editable-food-list{gap:10px}
.editable-food-item{border:2px solid #214866!important;padding:10px!important}
.food-item-edit-grid{
  display:grid;
  grid-template-columns:minmax(170px,2fr) 110px 110px repeat(4,minmax(90px,1fr));
  gap:7px;
  align-items:end;
}
.food-name-field{min-width:0}
.food-item-edit-grid .field label{font-size:7px}
.food-item-edit-grid .input{min-width:0}
@media(max-width:900px){
  .food-item-edit-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .food-name-field{grid-column:1/-1}
}
@media(max-width:560px){
  .food-item-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .food-name-field{grid-column:1/-1}
}


/* ===== V5.6 · PROFILE ORDER + ADMIN CONTROL ===== */
.profile-layout{
  display:grid;
  grid-template-columns:170px minmax(0,1fr);
  gap:18px;
  align-items:start;
}
.profile-identity{
  border:1px solid #173b5c;
  background:#061522;
  padding:12px;
  min-height:100%;
}
.profile-targets{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.profile-targets .field{min-width:0}
.profile-targets .input{min-height:44px}
.profile-layout + .weight-lock-note{margin-top:14px;margin-bottom:0}

.admin-entry{border-color:#8a6a1d!important}
.admin-topbar{
  max-width:1180px;
  margin:0 auto 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border:2px solid var(--line);
  background:#04111e;
  padding:16px;
}
.admin-title{margin:7px 0 5px;font-size:18px}
.admin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.admin-main{max-width:1180px;margin:0 auto}
.admin-panel-head{align-items:center}
.admin-count{
  border:1px solid #214866;
  padding:8px 10px;
  color:#58c4ff;
  font-family:'Press Start 2P';
  font-size:7px;
}
.admin-competition-list{display:grid;gap:9px;margin-top:12px}
.admin-competition-card{
  display:grid;
  grid-template-columns:minmax(220px,1fr) 110px 110px 100px 82px;
  gap:10px;
  align-items:center;
  border:2px solid #214866;
  background:#061522;
  padding:12px;
}
.admin-competition-card.inactive{opacity:.65;border-color:#574c34}
.admin-competition-name{font-weight:900;font-size:15px}
.admin-competition-code{margin-top:5px;color:#86a6bd;font-size:10px}
.admin-competition-code b{color:#58c4ff;letter-spacing:1px}
.admin-stat{
  border-left:1px solid #173b5c;
  padding-left:10px;
}
.admin-stat span{
  display:block;
  color:#86a6bd;
  font-family:'Press Start 2P';
  font-size:6px;
  margin-bottom:6px;
}
.admin-stat b{font-size:18px}
.admin-status{
  text-align:center;
  border:1px solid;
  padding:8px 6px;
  font-family:'Press Start 2P';
  font-size:6px;
}
.admin-status.on{color:#70e891;border-color:#35785b;background:#07231a}
.admin-status.off{color:#ffb375;border-color:#81522e;background:#27150a}
.admin-toggle-row{
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid #214866;
  background:#061522;
  padding:12px;
  cursor:pointer;
}
.admin-toggle-row input{width:18px;height:18px}
.admin-warning{
  margin-top:12px;
  border:1px solid #7d6322;
  background:#211b08;
  color:#ffd46b;
  padding:10px;
  font-size:10px;
  line-height:1.5;
}
@media(max-width:850px){
  .profile-layout{grid-template-columns:1fr}
  .profile-identity{display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;align-items:start}
  .profile-targets{grid-template-columns:1fr 1fr}
  .admin-topbar{display:block}
  .admin-actions{justify-content:flex-start;margin-top:12px}
  .admin-competition-card{grid-template-columns:minmax(0,1fr) 80px 80px}
  .admin-status{grid-column:2}
  .admin-competition-card>.btn{grid-column:3}
}
@media(max-width:520px){
  .profile-targets{grid-template-columns:1fr}
  .profile-identity{grid-template-columns:76px minmax(0,1fr)}
  .admin-actions .btn{flex:1 1 46%}
  .admin-competition-card{grid-template-columns:1fr 1fr}
  .admin-competition-main{grid-column:1/-1}
  .admin-stat{border-left:0;border-top:1px solid #173b5c;padding:8px 0 0}
  .admin-status{grid-column:1}
  .admin-competition-card>.btn{grid-column:2}
}

.admin-top-entry{border-color:#8a6a1d;color:#ffd46b}


/* ===== HEALTH BATTLE FIX7 · PWA INSTALL ===== */
.install-app-card{
  display:grid;
  grid-template-columns:54px minmax(0,1fr) auto;
  align-items:center;
  gap:11px;
  border:2px solid #2d91cb;
  background:linear-gradient(135deg,#061b2c,#08263d);
  padding:10px;
  margin:0 0 12px;
}
.install-app-icon{
  width:54px;
  height:54px;
  display:block;
  object-fit:cover;
  border:2px solid #47bfff;
  background:#020914;
}
.install-app-copy{
  min-width:0;
}
.install-app-copy strong{
  display:block;
  font-family:'Press Start 2P',monospace;
  font-size:8px;
  color:#b9e8ff;
  line-height:1.5;
}
.install-app-copy span{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:10px;
  line-height:1.35;
}
.install-app-btn{
  border-color:#47bfff;
  background:#06365a;
  color:#fff;
  white-space:nowrap;
}
.install-app-btn.ready{
  border-color:#70e891;
  color:#c8ffd7;
}
.install-app-btn.installed{
  border-color:#31506a;
  color:#7893aa;
  background:#061321;
  cursor:default;
}
@media(max-width:520px){
  .install-app-card{
    grid-template-columns:48px 1fr;
  }
  .install-app-icon{
    width:48px;
    height:48px;
  }
  .install-app-btn{
    grid-column:1/-1;
    width:100%;
  }
}


/* ===== HEALTH BATTLE FIX9 · ADMIN PLAYERS ===== */
.admin-competition-card{grid-template-columns:minmax(220px,1fr) 110px 110px 100px minmax(180px,auto)}
.admin-card-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.admin-player-summary{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border:2px solid #214866;background:#061522;padding:10px;margin-bottom:10px}
.admin-player-summary span{color:#58c4ff;font-family:'Press Start 2P';font-size:6px}
.admin-player-list{display:grid;gap:8px}
.admin-player-card{display:grid;grid-template-columns:minmax(220px,1fr) 100px 100px minmax(175px,auto);gap:10px;align-items:center;border:2px solid #214866;background:#061522;padding:11px}
.admin-player-name{font-weight:900;font-size:14px;margin-bottom:5px}
.admin-player-edit-head{display:grid;grid-template-columns:1fr 1fr;gap:8px;border:2px solid #214866;background:#061522;padding:10px;margin-bottom:12px}
.admin-player-edit-grid{grid-template-columns:1fr 1fr}
.admin-pin-help{margin-top:10px;border:1px solid #7d6322;background:#211b08;color:#ffd46b;padding:10px}
@media(max-width:850px){
  .admin-competition-card{grid-template-columns:minmax(0,1fr) 80px 80px}
  .admin-card-actions{grid-column:2/4}
  .admin-player-card{grid-template-columns:minmax(0,1fr) 90px 90px}
  .admin-player-card>.btn{grid-column:2/4}
}
@media(max-width:520px){
  .admin-card-actions{grid-column:1/-1}
  .admin-card-actions .btn{flex:1}
  .admin-player-card{grid-template-columns:1fr 1fr}
  .admin-player-main{grid-column:1/-1}
  .admin-player-card>.btn{grid-column:1/-1}
  .admin-player-edit-head,.admin-player-edit-grid{grid-template-columns:1fr}
}


/* ===== HEALTH BATTLE FIX11 · ADMIN RECORDS / EXCEL ===== */
.admin-upload-label{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.admin-record-list{display:grid;gap:8px}
.admin-record-card{
  display:grid;grid-template-columns:minmax(220px,1fr) 100px minmax(180px,auto);
  gap:10px;align-items:center;border:2px solid #214866;background:#061522;padding:11px
}
.admin-record-title{font-weight:900;font-size:13px;margin-bottom:5px}
.admin-record-metric{border-left:1px solid #173b5c;padding-left:10px}
.admin-record-metric span{display:block;color:var(--muted);font-size:7px;font-family:'Press Start 2P';margin-bottom:5px}
.admin-record-metric b{font-size:15px}
.admin-record-editor-grid{grid-template-columns:1fr 1fr 1fr 1fr}
.admin-record-editor-grid .full{grid-column:1/-1}
.admin-record-editor-grid textarea{min-height:78px}
.admin-record-section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:14px 0 8px}
.admin-food-items{display:grid;gap:8px}
.admin-food-item{border:2px solid #214866;background:#061522;padding:10px}
.admin-food-item-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.admin-food-grid{display:grid;grid-template-columns:minmax(150px,1.5fr) 90px 90px repeat(4,minmax(80px,1fr));gap:7px}
.admin-food-grid .field label{font-size:6px}
.admin-food-totals{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
.admin-food-totals span{border:1px solid #2d91cb;background:#071827;color:#8fd4ff;padding:8px 10px;font-weight:900;font-size:11px}
.admin-import-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}
.admin-import-summary>div{border:2px solid #214866;background:#061522;padding:10px;text-align:center}
.admin-import-summary span{display:block;font-size:6px;font-family:'Press Start 2P';color:var(--muted);margin-bottom:7px}
.admin-import-summary b{font-size:20px;color:#8fd4ff}
.admin-import-errors{display:grid;gap:6px;max-height:320px;overflow:auto}
.admin-import-errors>div{display:grid;grid-template-columns:160px 1fr;gap:8px;border:1px solid #5f2c33;background:#210b10;padding:8px}
.admin-import-errors span{color:#ffb5bf}
@media(max-width:900px){
  .admin-record-editor-grid{grid-template-columns:1fr 1fr}
  .admin-food-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-food-grid .field:first-child{grid-column:1/-1}
}
@media(max-width:620px){
  .admin-record-card{grid-template-columns:1fr 90px}
  .admin-record-card .admin-card-actions{grid-column:1/-1}
  .admin-record-editor-grid{grid-template-columns:1fr}
  .admin-import-summary{grid-template-columns:1fr 1fr}
  .admin-import-errors>div{grid-template-columns:1fr}
}


/* ===== HEALTH BATTLE FIX12 · FILTROS / APROBACIONES ===== */
.admin-record-filters{display:grid;grid-template-columns:180px minmax(220px,1fr) auto;gap:9px;align-items:end;margin:12px 0 7px;padding:10px;border:2px solid #214866;background:#061522}
.admin-approvals-btn{position:relative}
.admin-approvals-btn #adminApprovalCount{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;margin-left:5px;border-radius:999px;background:#183149;color:#8fb1ca;font-weight:900}
.admin-approvals-btn.pending{border-color:#ffbf3f!important;background:#3d2a05!important;color:#ffe39b!important;box-shadow:0 0 0 2px rgba(255,191,63,.12)}
.admin-approvals-btn.pending #adminApprovalCount{background:#ffbf3f;color:#261800}
.approval-list{display:grid;gap:12px}
.approval-card{border:2px solid #315f7e;background:#061522;padding:12px}
.approval-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}
.approval-head>div:first-child{display:flex;flex-direction:column;gap:4px}.approval-head span{color:var(--muted);font-size:10px}
.approval-kind{font-family:'Press Start 2P';font-size:7px;padding:7px 9px;border:1px solid #ffbf3f;color:#ffe09a;background:#2d2109}
.approval-compare{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.approval-version{border:1px solid #214866;background:#07101b;padding:10px;min-width:0}
.approval-version-title{font-family:'Press Start 2P';font-size:7px;color:#78cbff;margin-bottom:9px}
.approval-record-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:10px;color:var(--muted)}
.approval-record-meta b{color:#fff}.approval-description{font-weight:900;font-size:12px;margin:9px 0;white-space:pre-wrap}
.approval-metrics{display:flex;gap:6px;flex-wrap:wrap}.approval-metrics span{border:1px solid #244b68;padding:6px;background:#081a29;font-size:10px}
.approval-food-lines{display:grid;gap:5px;margin-top:9px}.approval-food-lines>div{display:flex;justify-content:space-between;gap:8px;padding:6px;border-top:1px solid #18364d;font-size:9px}.approval-food-lines span{color:var(--muted);text-align:right}
.approval-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}
@media(max-width:720px){.admin-record-filters{grid-template-columns:1fr}.approval-compare{grid-template-columns:1fr}.approval-food-lines>div{display:grid}.approval-food-lines span{text-align:left}}


/* ===== HEALTH BATTLE FIX13 · COMPETENCIA RECORDADA ===== */
.login-memory-grid{align-items:end}
.competition-memory-select{min-height:43px;cursor:pointer}
.competition-memory-hint{margin-top:8px;padding:8px 10px;border:1px solid #173b5c;background:#05121e}
@media(max-width:620px){.login-memory-grid{grid-template-columns:1fr}.competition-memory-select{font-size:16px}}


/* ===== HEALTH BATTLE FIX14 · WEEK RECORDS / USER APPROVALS ===== */
.panel-head-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.week-record-summary{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;border:2px solid #214866;background:#061522;padding:10px;margin-bottom:10px}
.week-record-summary b{color:#8fd4ff}.week-record-summary span{color:var(--muted);font-size:10px}
.user-record-rule{border-left:3px solid #ffbf3f;padding-left:9px;margin:5px 0 10px}
.user-own-record{border-color:#2d91cb}.user-readonly-record{opacity:.78}
.record-readonly-label{display:inline-flex;align-items:center;min-height:32px;padding:0 8px;border:1px solid #29445b;color:#7391a9;font-size:8px;font-family:'Press Start 2P'}
@media(max-width:620px){.panel-head-actions{width:100%;justify-content:stretch}.panel-head-actions .btn{flex:1}.week-record-summary{display:grid}}


/* ===== HEALTH BATTLE FIX15 · PRIVATE WEEK RECORDS / PUBLIC YESTERDAY ===== */
.user-week-filters-own{grid-template-columns:minmax(190px,260px) auto!important;justify-content:start}
.player-detail-tabs{display:flex;gap:8px;margin-top:10px}
.player-detail-tabs .btn{flex:1}
.player-record-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;margin-left:6px;padding:0 5px;border:1px solid currentColor;font-size:8px}
.player-public-records{display:grid;gap:8px;margin-top:10px}
.player-public-record{border:1px solid #214866;background:#061522;padding:10px}
.player-public-record-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.player-public-record-head b{display:block;font-size:13px;line-height:1.35}
.player-public-record-head span{display:block;color:var(--muted);font-size:9px;margin-top:5px}
.player-public-record-total{font-family:'Press Start 2P';font-size:8px;color:#8fd4ff;white-space:nowrap;padding-top:2px}
.player-public-review{margin-top:8px}
@media(max-width:620px){.user-week-filters-own{grid-template-columns:1fr!important}.user-week-filters-own .btn{width:100%}.player-public-record-head{display:grid}.player-public-record-total{justify-self:start}}


/* FIX16 · registros del ranking en dos columnas */
.player-record-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;align-items:start}
.player-record-column{min-width:0;border:1px solid #214866;background:#04111e;padding:9px}
.player-record-column-title{display:flex;align-items:center;justify-content:space-between;gap:8px;font-family:'Press Start 2P';font-size:8px;color:#8fd4ff;margin-bottom:8px}
.player-record-column-title span{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 6px;border:1px solid #2d91cb;background:#071827;color:#fff}
.player-record-column .player-public-records{display:grid;gap:8px}
@media(max-width:680px){.player-record-columns{grid-template-columns:1fr}}
