/* ToolZonee GYM premium layer — reuses existing toolbox tokens.
   No new design system: same Archivo/Archivo Black, --sf/--ink/--mut/--bg,
   3px borders, 10-18px radius, hard shadows, #FF4F8B primary + #FFE14D hover.
   This file only adds GYM layout (beside-popover, day-by-day, dashboards). */
.gym-shell{max-width:100%;min-width:0}
.gym-hero{background:var(--sf);border:3px solid var(--ink);border-radius:18px;box-shadow:7px 7px 0 var(--ink);padding:22px 22px 18px;margin-bottom:18px;position:relative;overflow:hidden}
.gym-hero::after{content:"";position:absolute;right:-40px;top:-40px;width:180px;height:180px;border-radius:50%;background:#FFE14D;border:3px solid var(--ink);opacity:.5;pointer-events:none}
.gym-hero h2{font-family:"Archivo Black",sans-serif;font-weight:400;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.1;margin:0 0 6px;color:var(--ink)}
.gym-hero .ws-sub,.gym-hero p.gym-sub{color:var(--mut);font-size:.96rem;margin:0 0 12px;max-width:72ch}
.gym-hero-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.gym-badge{display:inline-flex;align-items:center;padding:4px 10px;border:2px solid var(--ink);border-radius:8px;background:#FFE14D;color:#16130A;font:800 .76rem/1.1 var(--f);box-shadow:2px 2px 0 var(--ink)}
.gym-badge.pink{background:#FF4F8B}
.gym-badge.mint{background:#D6FFEA}
.gym-grid{display:grid;gap:14px}
.gym-grid.dash{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.gym-grid.meals{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start}
.gym-card{background:var(--sf);border:3px solid var(--ink);border-radius:14px;box-shadow:5px 5px 0 var(--ink);padding:16px 18px;color:var(--ink);min-width:0}
.gym-card h3{font-family:"Archivo Black",sans-serif;font-weight:400;font-size:1.02rem;margin:0 0 8px}
.gym-card .note,.gym-note{font-size:.88rem;color:var(--mut)}
.gym-macro-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.gym-macro-num{font-family:"Archivo Black",sans-serif;font-size:1.5rem;line-height:1}
.gym-macro-lbl{font:800 .78rem/1.2 var(--f);text-transform:uppercase;letter-spacing:.04em}
.gym-progress{height:12px;background:#fff;border:2.5px solid #16130A;border-radius:99px;overflow:hidden;margin:6px 0 2px}
.gym-progress>i{display:block;height:100%;background:#FF4F8B;width:0%;transition:width .35s ease}
.gym-progress.mint>i{background:#0B7C80}
.gym-progress.yellow>i{background:#EAB308}
/* meal cards + food rows */
.gym-meal-card{background:var(--sf);border:3px solid var(--ink);border-radius:16px;box-shadow:6px 6px 0 var(--ink);padding:16px;color:var(--ink);min-width:0}
.gym-meal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px;padding-bottom:10px;border-bottom:3px solid var(--ink)}
.gym-meal-head b{font-family:"Archivo Black",sans-serif;font-weight:400;font-size:1.05rem}
.gym-meal-head .gym-kcal{font:800 .86rem/1.2 var(--f);background:#FFE14D;border:2px solid #16130A;border-radius:8px;padding:3px 9px;box-shadow:2px 2px 0 #16130A}
.gym-food-list{display:grid;gap:10px}
.gym-food-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;background:var(--surface-2,var(--sf));border:2.5px solid var(--ink);border-radius:12px;box-shadow:3px 3px 0 var(--ink);padding:10px 12px}
.gym-food-main{min-width:0}
.gym-food-name{font-weight:800;font-size:.94rem;line-height:1.3}
.gym-food-name button.btn-text{background:none;border:0;padding:0;font:inherit;font-weight:800;color:inherit;cursor:pointer;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:2px}
.gym-food-meta{font-size:.82rem;color:var(--mut);font-weight:600;margin-top:2px}
.gym-food-macros{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.gym-chip{display:inline-flex;align-items:center;padding:2px 8px;border:2px solid var(--ink);border-radius:99px;background:#fff;font:800 .74rem/1.2 var(--f)}
.gym-chip.p{background:#FFE14D}.gym-chip.c{background:#D6FFEA}.gym-chip.f{background:#FCE7F3}
.gym-food-actions{display:flex;gap:6px;align-items:center;flex:none}
.gym-icon-btn{display:inline-grid;place-items:center;min-width:38px;min-height:38px;padding:6px 10px;border:2.5px solid var(--ink);border-radius:10px;background:#fff;color:#16130A;font:800 .9rem/1 var(--f);box-shadow:2px 2px 0 var(--ink);cursor:pointer}
.gym-icon-btn:hover{background:#FFE14D}
.gym-replace-btn{background:#FF4F8B !important}
/* replace popover BESIDE selected food */
.gym-replace-pop{position:absolute;top:-6px;left:calc(100% + 12px);width:min(340px,90vw);max-height:420px;overflow:auto;background:var(--sf);border:3px solid var(--ink);border-radius:14px;box-shadow:7px 7px 0 var(--ink);padding:12px;z-index:40;animation:gymPopIn .18s ease}
.gym-food-row.pop-left .gym-replace-pop{left:auto;right:calc(100% + 12px)}
.gym-replace-pop::before{content:"";position:absolute;top:22px;left:-9px;width:14px;height:14px;background:var(--sf);border-left:3px solid var(--ink);border-bottom:3px solid var(--ink);transform:rotate(45deg)}
.gym-food-row.pop-left .gym-replace-pop::before{left:auto;right:-9px;border-left:0;border-right:3px solid var(--ink);border-bottom:3px solid var(--ink);border-top:3px solid transparent;transform:rotate(-45deg)}
@keyframes gymPopIn{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
.gym-replace-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.gym-replace-head b{font-size:.9rem}
.gym-replace-head .note{font-size:.76rem;color:var(--mut)}
.gym-sub-opt{display:grid;gap:4px;background:var(--surface-2,var(--bg));border:2.5px solid var(--ink);border-radius:12px;padding:10px 12px;margin:8px 0;box-shadow:3px 3px 0 var(--ink)}
.gym-sub-opt b{font-size:.9rem}
.gym-sub-opt .gym-food-meta{margin:2px 0}
.gym-sub-opt .toolbar{margin-top:8px}
.gym-pop-close{border:2px solid var(--ink);background:#fff;border-radius:8px;min-width:32px;min-height:32px;cursor:pointer;font-weight:800;box-shadow:2px 2px 0 var(--ink)}
/* 3D progress / challenge */
.gym-3d{background:linear-gradient(135deg,#FFE14D 0%,#FF4F8B 100%);border:3px solid var(--ink);border-radius:18px;box-shadow:7px 7px 0 var(--ink);padding:18px;color:#16130A}
.gym-3d h3{font-family:"Archivo Black",sans-serif;font-weight:400;margin:0 0 6px}
.gym-daynav{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between;background:var(--sf);border:3px solid var(--ink);border-radius:14px;box-shadow:5px 5px 0 var(--ink);padding:12px}
.gym-daynav .gym-nav-btns{display:flex;gap:8px;flex-wrap:wrap}
.gym-daygrid{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:8px}
.gym-daybtn{min-height:44px;border:2.5px solid var(--ink);border-radius:10px;background:#fff;color:#16130A;font:800 .88rem/1 var(--f);box-shadow:2px 2px 0 var(--ink);cursor:pointer;display:grid;place-items:center}
.gym-daybtn:hover{background:#FFE14D}
.gym-daybtn.done{background:#D6FFEA}
.gym-daybtn.current{background:#FF4F8B;transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}
.gym-daybtn.future{opacity:.85}
.gym-daybtn:focus-visible,.gym-icon-btn:focus-visible,.gym-replace-pop button:focus-visible{outline:3px solid #E5195E;outline-offset:2px}
.gym-ex-card{background:var(--sf);border:2.5px solid var(--ink);border-radius:12px;box-shadow:3px 3px 0 var(--ink);padding:12px 14px;margin:8px 0}
.gym-ex-card b{font-size:.95rem}
.gym-ex-meta{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0;font-size:.82rem;font-weight:700;color:var(--mut)}
.gym-ex-how{margin:6px 0 0;padding-left:20px;font-size:.86rem;list-style:decimal}
.gym-ex-alt{font-size:.82rem;color:var(--mut);margin-top:6px}
.gym-success{animation:gymSuccess .5s ease}
@keyframes gymSuccess{0%{transform:scale(.96)}40%{transform:scale(1.02)}100%{transform:scale(1)}}
.gym-toast{background:#16130A;color:#FFE14D;border:3px solid #16130A;border-radius:12px;padding:10px 14px;font-weight:800;box-shadow:4px 4px 0 rgba(0,0,0,.2)}
/* food DB table */
.gym-table-wrap{overflow-x:auto;border:3px solid var(--ink);border-radius:14px;background:var(--sf);box-shadow:5px 5px 0 var(--ink)}
.gym-table-wrap table{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
.gym-table-wrap th{text-align:left;border-bottom:3px solid var(--ink);padding:8px;background:#FFE14D;color:#16130A;font-weight:800}
.gym-table-wrap td{padding:8px;border-bottom:1px solid var(--line-soft,rgba(0,0,0,.12))}
/* inputs inside gym reuse field/inp but tighten */
.gym-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
/* tablet */
@media (max-width:1020px) and (min-width:721px){
  .gym-grid.meals{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .gym-replace-pop{width:min(300px,80vw)}
}
/* mobile: replace becomes bottom sheet attached to food */
@media (max-width:720px){
  .gym-grid.meals{grid-template-columns:minmax(0,1fr)}
  .gym-food-row{grid-template-columns:minmax(0,1fr)}
  .gym-food-actions{justify-content:stretch}
  .gym-food-actions .btn,.gym-food-actions .gym-icon-btn{flex:1;min-height:44px}
  .gym-replace-pop{position:fixed;left:12px;right:12px;bottom:12px;top:auto;width:auto;max-height:70vh;z-index:90}
  .gym-replace-pop::before{display:none}
  .gym-daygrid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .gym-hero::after{display:none}
  .gym-daynav{flex-direction:column;align-items:stretch}
}
@media (max-width:420px){.gym-daygrid{grid-template-columns:repeat(5,minmax(0,1fr))}}
/* dark mode — match toolbox overrides */
html[data-theme="dark"] .gym-hero,html[data-theme="dark"] .gym-card,html[data-theme="dark"] .gym-meal-card,html[data-theme="dark"] .gym-daynav,html[data-theme="dark"] .gym-table-wrap,html[data-theme="dark"] .gym-ex-card{border-color:#3A3548 !important;box-shadow:5px 5px 0 #09080C !important}
html[data-theme="dark"] .gym-food-row,html[data-theme="dark"] .gym-sub-opt{border-color:#3A3548 !important;box-shadow:3px 3px 0 #09080C !important}
html[data-theme="dark"] .gym-replace-pop{border-color:#3A3548 !important;box-shadow:7px 7px 0 #09080C !important}
html[data-theme="dark"] .gym-replace-pop::before{background:#1A1822;border-color:#3A3548}
html[data-theme="dark"] .gym-progress{background:#221F2B !important;border-color:#3A3548 !important}
html[data-theme="dark"] .gym-chip,html[data-theme="dark"] .gym-icon-btn,html[data-theme="dark"] .gym-daybtn{border-color:#3A3548 !important;box-shadow:2px 2px 0 #09080C !important}
html[data-theme="dark"] .gym-3d{border-color:#3A3548 !important;box-shadow:6px 6px 0 #09080C !important}
html[data-theme="dark"] .gym-table-wrap th{background:#2A2635 !important;color:#F7F3EA !important;border-color:#3A3548 !important}
/* reduced motion */
@media (prefers-reduced-motion:reduce){
  .gym-replace-pop,.gym-success,.gym-progress>i{animation:none !important;transition:none !important}
  .btn:hover,.gym-daybtn.current{transform:none !important}
}
